<?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>10750</bug_id>
          
          <creation_ts>2006-09-06 02:53:10 -0700</creation_ts>
          <short_desc>SVG needs SVGAnimatedTypeNamePropertyName&lt;ClassName&gt; classes</short_desc>
          <delta_ts>2006-09-11 14:40:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>mjs</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54884</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-06 02:53:10 -0700</bug_when>
    <thetext>SVG needs SVGAnimatedTypeNamePropertyName&lt;ClassName&gt; classes

WildFox and Maciej and I have talked about this before, I&apos;m just now putting it down in the bug system for wider viewing:

In order to finally make the various SVGAnimated* types work again from the javascript bindings we will need to create a set of new classes to function as &quot;tear-offs&quot; from DOM objects, and to allow for proper integration with the exiting auto-bindings system.  The system of classes we have designed for these SVGAnimated* tear-off is as follows:

1.  Abstract base-classes for each of various SVGAnimated types.  (SVGAnimatedBoolean, SVGAnimatedString, etc).  These could be created based from a SVGAnimatedTemplate&lt;T&gt; similar to what we had with the old animation system.
2.  Per-property, per-class SVGAnimatedType subclass for each of the SVGAnimated* properties which we support.  A macro can be used to generate each of these.  They should be in the form SVGAnimatedTypeNamePropertyName&lt;ElementClassName&gt;.
3.  Extend the existing ANIMATED_PROPERTY macros to generate animatedPropertyName() functions to create and return the SVGAnimated* tear-off classes.
4.  Then we can just turn on all of the SVGAnimated*.idl files and viola! bindings should &quot;just work&quot;

These various SVGAnimatedTypeNamePropertyName classes will look something like this:

template&lt;TypeName&gt;
class SVGAnimatedTemplate&lt;TypeName&gt; : public RefPtr&lt;SVGAnimatedTemplate&lt;TypeName&gt; &gt; {
public:
    virtual TypeName baseVal() = 0;
    virtual setBaseVal(TypeName) = 0;
    virtual TypeName animVal() = 0;
    virtual setAnimVal(TypeName) = 0;
protected:
    RefPtr&lt;SVGElement&gt; m_element;
};

template &lt;ClassName&gt;
class SVGAnimatedTypeNamePropertyName&lt;ClassName&gt; : public SVGAnimatedTemplate&lt;TypeName&gt;  {
public:
    SVGAnimatedTypeNamePropertyName(SVGElement*);
    virtual ~ SVGAnimatedTypeNamePropertyName();
    virtual TypeName baseVal()
    {
            return (static_cast&lt;ClassName*&gt;(m_element)-&gt;propertyNameBaseValue();
    }
    virtual void setBaseVal(TypeName newBaseVal, ExceptionCode&amp;) // EC may be optional, depending
    {
           static_cast&lt;ClassName*&gt;(m_element)-&gt;setPropertyNameBaseVal(newBaseVal);
    }
    virtual TypeName animVal()
    {
            return static_cast&lt;ClassName*&gt;(m_element)-&gt;propertyName();
    }
    virtual void setAnimVal(TypeName newAnimVal, ExceptionCode&amp;) // EC may be optional, depending
    {
           static_cast&lt;ClassName*&gt;(m_element)-&gt;setPropertyName(newAnimVal);
    }
};

That should be about it.  This shouldn&apos;t take WildFox (or anyone else familiar with the JS system and templates) more than a few hours of work.  Turning on all of the SVGAnimated*.idl files can always be done at a later time.  However once this is complete, turning them all on should be possible.

We can either use a single manually-generated SVGAnimatedTypes.h file (which uses some Macros to write all these classes), or someone could write a little perl script to crawl the IDLs and generate these for us.  I&apos;m not sure which would be cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55061</commentid>
    <comment_count>1</comment_count>
      <attachid>10462</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-08 09:55:44 -0700</bug_when>
    <thetext>Created attachment 10462
Changes in SVGAnimatedTemplate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55062</commentid>
    <comment_count>2</comment_count>
      <attachid>10463</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-08 09:57:06 -0700</bug_when>
    <thetext>Created attachment 10463
Changes in the CodeGenerator&apos;s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55064</commentid>
    <comment_count>3</comment_count>
      <attachid>10464</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-08 09:58:13 -0700</bug_when>
    <thetext>Created attachment 10464
Remove all SVGAnimated*.cpp / .h files

This patch just removes files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55065</commentid>
    <comment_count>4</comment_count>
      <attachid>10465</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-08 09:59:11 -0700</bug_when>
    <thetext>Created attachment 10465
Changes in svg/SVG*.h files (new param in a macro)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55090</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-08 16:49:31 -0700</bug_when>
    <thetext>Ok it doesn&apos;t build on OSX, the same perl code which works nice on linux doesn&apos;t work on OSX. Hmpf, need to look into it tomorrow - please don&apos;t
land yet.

Will already incorporate some suggestions from Eric.
The new patch (coming tomorrow) will also be done in one single patch,
as Darin suggested (I&apos;m convinced it makes more sense :-).

Night, Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55220</commentid>
    <comment_count>6</comment_count>
      <attachid>10494</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-10 16:15:35 -0700</bug_when>
    <thetext>Created attachment 10494
Updated complete patch

Incorporated changes when discussing this with Eric.
JS generation is much nicer handled now, SVGLists work again etc. etc.
(See ChangeLog :-)

This includes OSX &amp; Qt platform build changes, works on both platforms.
No new regressions introduced, none fixed (will fix some tests, if the
element&apos;s idl files are actually generated - this is another patch)

As Darin suggested I&apos;ve put all in a single patch. Now it&apos;s quite large
I hope someone can find some time to review until Tuesday, which is
my last hacking day for the next week(s) :/

Thanks in advance to the brave souls crawling through the patch...
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55235</commentid>
    <comment_count>7</comment_count>
      <attachid>10494</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-10 23:44:43 -0700</bug_when>
    <thetext>Comment on attachment 10494
Updated complete patch

This is going to take a couple passes.  314k is a big patch to try and review in one go.

darin is never a fan of these comments (with ellipses):
+    # Start actual generation...

This should probably be a subroutine:
-        $implIncludes{&quot;${type}.h&quot;} = 1;
+        if ($type ne &quot;SVGRect&quot; and
+            $type ne &quot;SVGPoint&quot; and
+            $type ne &quot;SVGNumber&quot;) {
+            $implIncludes{&quot;${type}.h&quot;} = 1;
+        }

This also seems rather specific and probably should be a sub-routine:
-    push(@headerContent, &quot;class $implClassName;\n\n&quot;);
-    
+    push(@headerContent, &quot;class $implClassName;\n\n&quot;) unless($codeGenerator-&gt;IsSVGAnimatedType($implClassName));
+

Again, subroutine:

+  if ($className =~ /^JSSVGAnimated/) {
+    my $type = $interfaceName;
+    $type =~ s/SVGAnimated//; 
+
+    if ($type eq &quot;SVGRect&quot; or
+        $type eq &quot;SVGPoint&quot; or
+        $type eq &quot;SVGNumber&quot;) {
+      $implIncludes{&quot;JSSVG$type.h&quot;} = 1;
+    } else {
+      push(@implContentHeader, &quot;#include \&quot;PlatformString.h\&quot;\n&quot;) if($type eq &quot;String&quot;);
+    }
+  }

+    return 1 if $type eq &quot;SVGAnimatedAngle&quot; or
+                $type eq &quot;SVGAnimatedBoolean&quot; or
+                $type eq &quot;SVGAnimatedEnumeration&quot; or
+                $type eq &quot;SVGAnimatedInteger&quot; or


This would be easier written by using:
$type =~ s/SVGAnimated/
%w{ Angle Boolean Enumeration }.contains $type, or something similar.
(I think that works in perl, I know it does in ruby...)

Tabs:
+	JSSVGAnimatedAngle.h \
+	JSSVGAnimatedBoolean.h \


I don&apos;t understand what &quot;nodptr&quot; is.  Seems like a bad name if nothing else:
+  interface [nodptr, Conditional=SVG] SVGAnimatedPoints { 

darin prefers new Foo; in these sorts of cases (no ()):
+    , m_tableValues(new SVGNumberList())
Yet another thing which should be added to the style guidelines.

I&apos;ve been removing KSVG_ as well from these:
-#endif // KSVG_SVGPreserveAspectRatioImpl_H
+#endif // KSVG_SVGPreserveAspectRatio_H

since it&apos;s now sorta all WebCore (not that we don&apos;t like KSVG!)

No need for the argument name here:
+        SVGTransform* createSVGTransformFromMatrix(SVGMatrix* matrix) const;

What a fabulous change:
-    viewBoxBaseValue()-&gt;setX(x);
-    viewBoxBaseValue()-&gt;setY(y);
-    viewBoxBaseValue()-&gt;setWidth(w);
-    viewBoxBaseValue()-&gt;setHeight(h);
+    setViewBoxBaseValue(FloatRect(x, y, w, h));

Normally we do ! instead of == 0, also if( needs a space:
+    if(viewBoxRect.width() == 0 || viewBoxRect.height() == 0)

Conditional=SVG seems redundant if everything is inside module SVG:
+module svg
+{
+  interface [Conditional=SVG] SVGAnimatedRect { 


No need to explicitly initialize m_vector:

+        SVGListBase() : m_vector() { }


These are beautiful:
+	// Specialization for String...
+	template&lt;&gt;
+    class SVGList&lt;String&gt; : public SVGListBase&lt;String&gt;

This needs to move off of DeprecatedString, but not necessarily in this patch:

+void SVGStringList::reset(const DeprecatedString&amp; str)
 {

We need to have a good method of codifying this:
+             attribute core::DOMString baseVal;
+                         // raises DOMException on setting

I think you already have a FIXME in SVGAnimatedTemplate.  WE shoudl file a bug as well though.


again, confused by &quot;nodptr&quot;

+  interface [nodptr, Conditional=SVG] SVGAnimatedPathData { 

Seems silly to have a separate line for return here:
+    RefPtr&lt;ClassName::SVGAnimatedTemplate##UpperProperty&gt; ret; \
+    ret = new ClassName::SVGAnimatedTemplate##UpperProperty(context); \
+    return ret; \

here again:
+    RefPtr&lt;ClassName::SVGAnimatedTemplate##UpperProperty&gt; ret; \
+    ret = new ClassName::SVGAnimatedTemplate##UpperProperty(this); \
+    return ret; \

No need to create a new floatRect here on property at a time, or?
+            static_cast&lt;RenderSVGContainer*&gt;(renderer())-&gt;setViewBox(FloatRect(viewBox().x(), viewBox().y(), viewBox().width(), viewBox().height()));

and again:
+    rootContainer-&gt;setViewBox(FloatRect(viewBox().x(), viewBox().y(), viewBox().width(), viewBox().height()));

I&apos;m not sure why this is necessary:
+// Special handling for WebCore::FloatRect
+template&lt;&gt;
+inline FloatRect SVGDocumentExtensions::baseValue&lt;FloatRect&gt;(const SVGElement* element, const AtomicString&amp; propertyName) const

You can have pointer and non-pointer specializations.  Vector uses something like that.

This may be simply the most beautiful patch I have ever seen. :)

I would r+ it right here and now, but since you don&apos;t (yet!) have commit privileges, I think we should go one more round on this one to fix a few of the little issues I&apos;ve mentioned above.

I *can&apos;t wait* to see this land!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55236</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-10 23:46:59 -0700</bug_when>
    <thetext>Actually, my comments above were really really tiny issues.  This could be landed as-is.  Probably best still to give it another once-over before it&apos;s put to rest though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55252</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-11 10:42:10 -0700</bug_when>
    <thetext>Heya Eric,

thanks for the quick review.

&gt; darin is never a fan of these comments (with ellipses):
&gt; +    # Start actual generation...

Fixed all places where &quot;...&quot; was appended.
 
&gt; This should probably be a subroutine:
&gt; -        $implIncludes{&quot;${type}.h&quot;} = 1;
&gt; +        if ($type ne &quot;SVGRect&quot; and
&gt; +            $type ne &quot;SVGPoint&quot; and
&gt; +            $type ne &quot;SVGNumber&quot;) {
&gt; +            $implIncludes{&quot;${type}.h&quot;} = 1;
&gt; +        }

Fixed, now lives in &quot;AvoidInclusionOfType&quot; method.

&gt; This also seems rather specific and probably should be a sub-routine:
&gt; -    push(@headerContent, &quot;class $implClassName;\n\n&quot;);
&gt; -    
&gt; +    push(@headerContent, &quot;class $implClassName;\n\n&quot;)
&gt; unless($codeGenerator-&gt;IsSVGAnimatedType($implClassName));
&gt; +

Fixed, now lives in &quot;AddClassForwardIfNeeded&quot; method.
 
&gt; +  if ($className =~ /^JSSVGAnimated/) {
&gt; +    my $type = $interfaceName;
&gt; +    $type =~ s/SVGAnimated//; 
&gt; +
&gt; +    if ($type eq &quot;SVGRect&quot; or
&gt; +        $type eq &quot;SVGPoint&quot; or
&gt; +        $type eq &quot;SVGNumber&quot;) {
&gt; +      $implIncludes{&quot;JSSVG$type.h&quot;} = 1;
&gt; +    } else {
&gt; +      push(@implContentHeader, &quot;#include \&quot;PlatformString.h\&quot;\n&quot;) if($type eq
&gt; &quot;String&quot;);
&gt; +    }
&gt; +  }

Fixed, now lives in &quot;AddIncludesForSVGAnimatedType&quot; method.

&gt; 
&gt; +    return 1 if $type eq &quot;SVGAnimatedAngle&quot; or
&gt; +                $type eq &quot;SVGAnimatedBoolean&quot; or
&gt; +                $type eq &quot;SVGAnimatedEnumeration&quot; or
&gt; +                $type eq &quot;SVGAnimatedInteger&quot; or

Fixed using hashes, also converted IsPrimitiveType to use a hash.

&gt; Tabs:
&gt; +       JSSVGAnimatedAngle.h \
&gt; +       JSSVGAnimatedBoolean.h \

Fixed.

&gt; I don&apos;t understand what &quot;nodptr&quot; is.  Seems like a bad name if nothing else:
&gt; +  interface [nodptr, Conditional=SVG] SVGAnimatedPoints { 

Heh, that must have been a leftover in those IDLs from KDOM days, fixed.

 &gt; darin prefers new Foo; in these sorts of cases (no ()):
&gt; +    , m_tableValues(new SVGNumberList())
&gt; Yet another thing which should be added to the style guidelines.

Fixed all occourences of that.

&gt; I&apos;ve been removing KSVG_ as well from these:
&gt; -#endif // KSVG_SVGPreserveAspectRatioImpl_H
&gt; +#endif // KSVG_SVGPreserveAspectRatio_H

Ah ok, not doing that in this patch though.

&gt; No need for the argument name here:
&gt; +        SVGTransform* createSVGTransformFromMatrix(SVGMatrix* matrix) const;

Fixed.
 
&gt; Normally we do ! instead of == 0, also if( needs a space:
&gt; +    if(viewBoxRect.width() == 0 || viewBoxRect.height() == 0)
&gt; 
Fixed.

&gt; Conditional=SVG seems redundant if everything is inside module SVG:
&gt; +module svg
&gt; +{
&gt; +  interface [Conditional=SVG] SVGAnimatedRect { 

Hm, I wondered about that too, though not touching it now.
 
&gt; No need to explicitly initialize m_vector:
&gt; +        SVGListBase() : m_vector() { }

Fixed.

&gt; This needs to move off of DeprecatedString, but not necessarily in this patch:
&gt; 
&gt; +void SVGStringList::reset(const DeprecatedString&amp; str)

Sure, DeprecatedString is useless there. String will do.

&gt; We need to have a good method of codifying this:
&gt; +             attribute core::DOMString baseVal;
&gt; +                         // raises DOMException on setting
&gt; 
&gt; I think you already have a FIXME in SVGAnimatedTemplate.  WE shoudl file a bug
&gt; as well though.
Oh yes, bug fileing is your area, eh? :-)

&gt; Seems silly to have a separate line for return here:
&gt; +    RefPtr&lt;ClassName::SVGAnimatedTemplate##UpperProperty&gt; ret; \
&gt; +    ret = new ClassName::SVGAnimatedTemplate##UpperProperty(context); \
&gt; +    return ret; \
&gt; 
&gt; here again:
&gt; +    RefPtr&lt;ClassName::SVGAnimatedTemplate##UpperProperty&gt; ret; \
&gt; +    ret = new ClassName::SVGAnimatedTemplate##UpperProperty(this); \
&gt; +    return ret; \

Fixed, to directly return the RefPtr.

&gt; No need to create a new floatRect here on property at a time, or?
&gt; +           
&gt; static_cast&lt;RenderSVGContainer*&gt;(renderer())-&gt;setViewBox(FloatRect(viewBox().x(),
&gt; viewBox().y(), viewBox().width(), viewBox().height()));
&gt; 
&gt; and again:
&gt; +    rootContainer-&gt;setViewBox(FloatRect(viewBox().x(), viewBox().y(),
&gt; viewBox().width(), viewBox().height()));

Hehe, that&apos;s a leftover, good catch - fixed to just use viewBox().

&gt; I&apos;m not sure why this is necessary:
&gt; +// Special handling for WebCore::FloatRect
&gt; +template&lt;&gt;
&gt; +inline FloatRect SVGDocumentExtensions::baseValue&lt;FloatRect&gt;(const SVGElement*
&gt; element, const AtomicString&amp; propertyName) const
&gt; 
&gt; You can have pointer and non-pointer specializations.  Vector uses something
&gt; like that.

Hm, where does it use that? Maybe anyone can give some hints?
I needed these specializations - left them in for now.

&gt; This may be simply the most beautiful patch I have ever seen. :)
/me blushes. Thanks a lot.
 
&gt; I *can&apos;t wait* to see this land!!
Me too! I&apos;ll test the patch on OSX now, if it works, I&apos;ll upload it.
Expect the patch to be here in ~ 30 minutes :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55258</commentid>
    <comment_count>10</comment_count>
      <attachid>10503</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-09-11 11:40:27 -0700</bug_when>
    <thetext>Created attachment 10503
Final patch

Incorporated Eric&apos;s suggestions, all tests pass, no new regressions, build tested on Linux &amp; OSX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55260</commentid>
    <comment_count>11</comment_count>
      <attachid>10503</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-11 13:03:09 -0700</bug_when>
    <thetext>Comment on attachment 10503
Final patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10462</attachid>
            <date>2006-09-08 09:55:44 -0700</date>
            <delta_ts>2006-09-10 16:15:35 -0700</delta_ts>
            <desc>Changes in SVGAnimatedTemplate</desc>
            <filename>svg-animated-template.diff</filename>
            <type>text/plain</type>
            <size>41449</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjI2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDYtMDktMDggIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBwYXJ0cyBvZjogaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc1MAorCisgICAgICAgIEdlbmVyYXRlIHBlci1wcm9wZXJ0eSwgcGVyLWNs
YXNzIFNWR0FuaW1hdGVkVHlwZSBzdWJjbGFzc2VzCisgICAgICAgIGZvciBlYWNoIG9mIHRoZSBT
VkdBbmltYXRlZCogcHJvcGVydGllcyB3aGljaCB3ZSBzdXBwb3J0LgorCisgICAgICAgIFRoaXMg
aXMgdGhlIG1haW4gcGF0Y2ggZm9yIGZpeGluZyBidWcgMTA3NTAuIEl0IGNvbnRhaW5zIHRoZQor
ICAgICAgICBhY3R1YWwgbG9naWMgd2hpY2ggRXJpYyBkZXNjcmliZWQgaW4gYW4gZXhjZWxsZW50
IHdheSBpbiB0aGUgYnVnIHJlcG9ydC4KKworICAgICAgICBXZSBub3cgb2ZmZXIgdHdvIG5ldyBt
YWNyb3M6IEFOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04gLyBfREVGSU5JVElPTi4KKyAgICAg
ICAgTGV0J3MgdGFrZSBTVkdBbmltYXRlZExlbmd0aCBhcyBleGFtcGxlOiBTVkdSZWN0RWxlbWVu
dCBoYXMgdGhpcyB4L3kuLgorICAgICAgICBwcm9wZXJ0aWVzIHdoaWNoIGFyZSBkZWZpbmVkIHRv
IGJlIFNWR0FuaW1hdGVkTGVuZ3RoIGJ5IHRoZSBTVkcgc3BlYy4KKyAgICAgICAgVGhvdWdoIGlu
dGVybmFsbHkgd2Ugbm93IHVzZSBTVkdMZW5ndGgncyBvbmx5IHRvIHNhdmUgdGhlIG92ZXJoZWFk
LgorICAgICAgICAoc2VlIHByZXZpb3VzIHBhdGNoIGF0IGJ1ZyByZXBvcnQgMTA0OTApCisgICAg
ICAgIAorICAgICAgICBBcyB0aGUgY29kZSBnZW5lcmF0b3JzIChpZS4gb2JqYy9qcykgc2hvdWxk
IHN0YXkgY2xvc2UgdG8gdGhlIHNwZWMsCisgICAgICAgIHdlIG5lZWQgdG8gZ2VuZXJhdGUgdGVh
ci1vZmYgU1ZHQW5pbWF0ZWQqIGNsYXNzZXMsIHBlci1jbGFzcywgcGVyLXByb3BlcnR5LgorCisg
ICAgICAgIEZvciB0aGUgeCgpIHByb3BlcnR5IG9mIFNWR1JlY3RFbGVtZW50LCB3ZSB3aWxsIGdl
bmVyYXRlOiBTVkdBbmltYXRlZFRlbXBsYXRlU1ZHUmVjdEVsZW1lbnRYCisgICAgICAgIGNsYXNz
LCB3aGljaCBjYW4gYmUgY3JlYXRlZCBieSBjYWxsaW5nIG15UmVjdC0+eEFuaW1hdGVkKCkgKHJl
dHVybnMgUmVmUHRyIHRvIGl0KS4KKworICAgICAgICBUaGlzIHdpbGwgYmUgdXNlZCBieSB0aGUg
Q29kZUdlbmVyYXRvcnMsIHNlZSBDb2RlR2VuZXJhdG9ySlMucG0gYXMgZXhhbXBsZS4KKyAgICAg
ICAgCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdFbGVtZW50Lmg6IEFkanVzdGVkIHRvIHRoZSBuZXcgcHJvcGVydHlOYW1lQW5p
bWF0ZWQoKSBsb2dpYy4KKwogMjAwNi0wOS0wNyAgU2FtIFdlaW5pZyAgPHNhbS53ZWluaWdAZ21h
aWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIGFuZCBUaW0gSC4KSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuY3BwCShSZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5jcHAJKFJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjQxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFz
IFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKworICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiU1ZHRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKKworI2luY2x1ZGUgIlNWR0FF
bGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQ2lyY2xlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0Ns
aXBQYXRoRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQ3Vyc29yRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0Vs
bGlwc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5o
IgorI2luY2x1ZGUgIlNWR0ZFQmxlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5o
IgorI2luY2x1ZGUgIlNWR0ZFQ29tcG9zaXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oIgorI2luY2x1ZGUgIlNWR0ZFRmxvb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRkVJbWFnZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJTVkdGRUxpZ2h0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oIgorI2luY2x1ZGUgIlNWR0ZFT2Zmc2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdGRVRpbGVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0ZpbHRl
ckVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaCIKKyNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKKyNpbmNsdWRlICJTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0dyYWRpZW50RWxlbWVudC5oIgorI2luY2x1
ZGUgIlNWR0ltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR0xpbmVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHTWFya2VyRWxl
bWVudC5oIgorI2luY2x1ZGUgIlNWR01hc2tFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHUGF0aEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdQYXR0ZXJuRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR1JlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiU1ZHU3RvcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisj
aW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdT
VkdFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiU1ZHVGV4dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmgiCisjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU1ZHVXNlRWxlbWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElP
TihTVkdBRWxlbWVudCwgU3RyaW5nLCBUYXJnZXQsIHRhcmdldCkKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdDaXJjbGVFbGVtZW50LCBTVkdMZW5ndGgqLCBDeCwgY3gpCitBTklNQVRF
RF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHQ2lyY2xlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgQ3ksIGN5
KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0NpcmNsZUVsZW1lbnQsIFNWR0xlbmd0
aCosIFIsIHIpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHQ2xpcFBhdGhFbGVtZW50
LCBpbnQsIENsaXBQYXRoVW5pdHMsIGNsaXBQYXRoVW5pdHMpCitBTklNQVRFRF9CSU5ESU5HX0RF
RklOSVRJT04oU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIGludCwgVHlwZSwg
dHlwZSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudCwgU1ZHTnVtYmVyTGlzdCosIFRhYmxlVmFsdWVzLCB0YWJsZVZhbHVlcykK
K0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudCwgZG91YmxlLCBTbG9wZSwgc2xvcGUpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJ
T04oU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIGRvdWJsZSwgSW50ZXJjZXB0
LCBpbnRlcmNlcHQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQsIGRvdWJsZSwgQW1wbGl0dWRlLCBhbXBsaXR1ZGUpCitBTklN
QVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQsIGRvdWJsZSwgRXhwb25lbnQsIGV4cG9uZW50KQorQU5JTUFURURfQklORElOR19ERUZJTklU
SU9OKFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBkb3VibGUsIE9mZnNldCwg
b2Zmc2V0KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0N1cnNvckVsZW1lbnQsIFNW
R0xlbmd0aCosIFgsIHgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHQ3Vyc29yRWxl
bWVudCwgU1ZHTGVuZ3RoKiwgWSwgeSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdF
bGxpcHNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgQ3gsIGN4KQorQU5JTUFURURfQklORElOR19ERUZJ
TklUSU9OKFNWR0VsbGlwc2VFbGVtZW50LCBTVkdMZW5ndGgqLCBDeSwgY3kpCitBTklNQVRFRF9C
SU5ESU5HX0RFRklOSVRJT04oU1ZHRWxsaXBzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJ4LCByeCkK
K0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdFbGxpcHNlRWxlbWVudCwgU1ZHTGVuZ3Ro
KiwgUnksIHJ5KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVCbGVuZEVs
ZW1lbnQsIFN0cmluZywgSW4sIGluKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZF
QmxlbmRFbGVtZW50LCBTdHJpbmcsIEluMiwgaW4yKQorQU5JTUFURURfQklORElOR19ERUZJTklU
SU9OKFNWR0ZFQmxlbmRFbGVtZW50LCBpbnQsIE1vZGUsIG1vZGUpCitBTklNQVRFRF9CSU5ESU5H
X0RFRklOSVRJT04oU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQsIFN0cmluZywgSW4sIGluKQorQU5J
TUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LCBpbnQsIFR5
cGUsIHR5cGUpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQsIFNWR051bWJlckxpc3QqLCBWYWx1ZXMsIHZhbHVlcykKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCwgU3RyaW5nLCBJbiwgaW4p
CitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVDb21wb3NpdGVFbGVtZW50LCBTdHJp
bmcsIEluLCBpbikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQsIFN0cmluZywgSW4yLCBpbjIpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZH
RkVDb21wb3NpdGVFbGVtZW50LCBpbnQsIF9vcGVyYXRvciwgX29wZXJhdG9yKQorQU5JTUFURURf
QklORElOR19ERUZJTklUSU9OKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgZG91YmxlLCBLMSwgazEp
CitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVDb21wb3NpdGVFbGVtZW50LCBkb3Vi
bGUsIEsyLCBrMikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQsIGRvdWJsZSwgSzMsIGszKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZF
Q29tcG9zaXRlRWxlbWVudCwgZG91YmxlLCBLNCwgazQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBTdHJpbmcsIEluLCBpbikKK0FOSU1B
VEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIGRvdWJs
ZSwgRGlmZnVzZUNvbnN0YW50LCBkaWZmdXNlQ29uc3RhbnQpCitBTklNQVRFRF9CSU5ESU5HX0RF
RklOSVRJT04oU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIFN1cmZhY2VTY2Fs
ZSwgc3VyZmFjZVNjYWxlKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudCwgU1ZHQ29sb3IqLCBMaWdodGluZ0NvbG9yLCBsaWdodGluZ0NvbG9y
KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dCwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFgpCitBTklNQVRF
RF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBkb3VibGUs
IEtlcm5lbFVuaXRMZW5ndGhZLCBrZXJuZWxVbml0TGVuZ3RoWSkKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFN0cmluZywgSW4sIGluKQor
QU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwg
U3RyaW5nLCBJbjIsIGluMikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQsIGludCwgWENoYW5uZWxTZWxlY3RvciwgeENoYW5uZWxTZWxlY3Rv
cikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQsIGludCwgWUNoYW5uZWxTZWxlY3RvciwgeUNoYW5uZWxTZWxlY3RvcikKK0FOSU1BVEVEX0JJ
TkRJTkdfREVGSU5JVElPTihTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIGRvdWJsZSwgU2Nh
bGUsIHNjYWxlKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFRmxvb2RFbGVtZW50
LCBTdHJpbmcsIEluLCBpbikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQsIFN0cmluZywgSW4sIGluKQorQU5JTUFURURfQklORElOR19ERUZJTklU
SU9OKFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCwgZG91YmxlLCBTdGREZXZpYXRpb25YLCBzdGRE
ZXZpYXRpb25YKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudCwgZG91YmxlLCBTdGREZXZpYXRpb25ZLCBzdGREZXZpYXRpb25ZKQorQU5JTUFURURf
QklORElOR19ERUZJTklUSU9OKFNWR0ZFSW1hZ2VFbGVtZW50LCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKK0FOSU1BVEVE
X0JJTkRJTkdfREVGSU5JVElPTihTVkdGRUxpZ2h0RWxlbWVudCwgZG91YmxlLCBBemltdXRoLCBh
emltdXRoKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFTGlnaHRFbGVtZW50LCBk
b3VibGUsIEVsZXZhdGlvbiwgZWxldmF0aW9uKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9O
KFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIFgsIHgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgWSwgeSkKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdGRUxpZ2h0RWxlbWVudCwgZG91YmxlLCBaLCB6KQorQU5JTUFURURfQklO
RElOR19ERUZJTklUSU9OKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIFBvaW50c0F0WCwgcG9p
bnRzQXRYKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFTGlnaHRFbGVtZW50LCBk
b3VibGUsIFBvaW50c0F0WSwgcG9pbnRzQXRZKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9O
KFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIFBvaW50c0F0WiwgcG9pbnRzQXRaKQorQU5JTUFU
RURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIFNwZWN1bGFy
RXhwb25lbnQsIHNwZWN1bGFyRXhwb25lbnQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04o
U1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgTGltaXRpbmdDb25lQW5nbGUsIGxpbWl0aW5nQ29u
ZUFuZ2xlKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFTWVyZ2VOb2RlRWxlbWVu
dCwgU3RyaW5nLCBJbiwgaW4pCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVPZmZz
ZXRFbGVtZW50LCBTdHJpbmcsIEluLCBpbikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihT
VkdGRU9mZnNldEVsZW1lbnQsIGRvdWJsZSwgRHgsIGR4KQorQU5JTUFURURfQklORElOR19ERUZJ
TklUSU9OKFNWR0ZFT2Zmc2V0RWxlbWVudCwgZG91YmxlLCBEeSwgZHkpCitBTklNQVRFRF9CSU5E
SU5HX0RFRklOSVRJT04oU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgU3RyaW5nLCBJbiwg
aW4pCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudCwgZG91YmxlLCBTcGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckNvbnN0YW50KQorQU5JTUFU
RURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIGRvdWJs
ZSwgU3BlY3VsYXJFeHBvbmVudCwgc3BlY3VsYXJFeHBvbmVudCkKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIFN1cmZhY2VT
Y2FsZSwgc3VyZmFjZVNjYWxlKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQsIFNWR0NvbG9yKiwgTGlnaHRpbmdDb2xvciwgbGlnaHRpbmdD
b2xvcikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50LCBkb3VibGUsIEtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWCkKK0FO
SU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBk
b3VibGUsIEtlcm5lbFVuaXRMZW5ndGhZLCBrZXJuZWxVbml0TGVuZ3RoWSkKK0FOSU1BVEVEX0JJ
TkRJTkdfREVGSU5JVElPTihTVkdGRVRpbGVFbGVtZW50LCBTdHJpbmcsIEluLCBpbikKK0FOSU1B
VEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBkb3VibGUsIEJh
c2VGcmVxdWVuY3lYLCBiYXNlRnJlcXVlbmN5WCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElP
TihTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBkb3VibGUsIEJhc2VGcmVxdWVuY3lZLCBiYXNlRnJl
cXVlbmN5WSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50LCBpbnQsIE51bU9jdGF2ZXMsIG51bU9jdGF2ZXMpCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgZG91YmxlLCBTZWVkLCBzZWVkKQorQU5JTUFU
RURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIGludCwgU3RpdGNo
VGlsZXMsIHN0aXRjaFRpbGVzKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQsIGludCwgVHlwZSwgdHlwZSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5J
VElPTihTVkdGaWx0ZXJFbGVtZW50LCBpbnQsIEZpbHRlclVuaXRzLCBmaWx0ZXJVbml0cykKK0FO
SU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGaWx0ZXJFbGVtZW50LCBpbnQsIFByaW1pdGl2
ZVVuaXRzLCBwcmltaXRpdmVVbml0cykKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdG
aWx0ZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUZJTklU
SU9OKFNWR0ZpbHRlckVsZW1lbnQsIFNWR0xlbmd0aCosIFksIHkpCitBTklNQVRFRF9CSU5ESU5H
X0RFRklOSVRJT04oU1ZHRmlsdGVyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgV2lkdGgsIHdpZHRoKQor
QU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZpbHRlckVsZW1lbnQsIFNWR0xlbmd0aCos
IEhlaWdodCwgaGVpZ2h0KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZpbHRlckVs
ZW1lbnQsIGludCwgRmlsdGVyUmVzWCwgZmlsdGVyUmVzWCkKK0FOSU1BVEVEX0JJTkRJTkdfREVG
SU5JVElPTihTVkdGaWx0ZXJFbGVtZW50LCBpbnQsIEZpbHRlclJlc1ksIGZpbHRlclJlc1kpCitB
TklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLCBTVkdMZW5ndGgqLCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHTGVuZ3RoKiwgWSwgeSkKK0FO
SU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMsIFNWR0xlbmd0aCosIFdpZHRoLCB3aWR0aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5J
VElPTihTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0xlbmd0aCosIEhl
aWdodCwgaGVpZ2h0KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU3RyaW5nLCBSZXN1bHQsIHJlc3VsdCkKK0FOSU1BVEVE
X0JJTkRJTkdfREVGSU5JVElPTihTVkdGaXRUb1ZpZXdCb3gsIFNWR1JlY3QqLCBWaWV3Qm94LCB2
aWV3Qm94KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0ZpdFRvVmlld0JveCwgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpbyosIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0
UmF0aW8pCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQsIFNWR0xlbmd0aCosIFgsIHgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFksIHkpCitBTklNQVRFRF9CSU5ESU5HX0RF
RklOSVRJT04oU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFdpZHRoLCB3aWR0
aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwg
U1ZHTGVuZ3RoKiwgSGVpZ2h0LCBoZWlnaHQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04o
U1ZHR3JhZGllbnRFbGVtZW50LCBpbnQsIFNwcmVhZE1ldGhvZCwgc3ByZWFkTWV0aG9kKQorQU5J
TUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0dyYWRpZW50RWxlbWVudCwgaW50LCBHcmFkaWVu
dFVuaXRzLCBncmFkaWVudFVuaXRzKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR0dy
YWRpZW50RWxlbWVudCwgU1ZHVHJhbnNmb3JtTGlzdCosIEdyYWRpZW50VHJhbnNmb3JtLCBncmFk
aWVudFRyYW5zZm9ybSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdJbWFnZUVsZW1l
bnQsIFNWR0xlbmd0aCosIFgsIHgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHSW1h
Z2VFbGVtZW50LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9O
KFNWR0ltYWdlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgV2lkdGgsIHdpZHRoKQorQU5JTUFURURfQklO
RElOR19ERUZJTklUSU9OKFNWR0ltYWdlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgSGVpZ2h0LCBoZWln
aHQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHSW1hZ2VFbGVtZW50LCBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRp
bykKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQs
IFNWR0xlbmd0aCosIFgxLCB4MSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFkxLCB5MSkKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFgyLCB4MikK
K0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNW
R0xlbmd0aCosIFkyLCB5MikKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdMaW5lRWxl
bWVudCwgU1ZHTGVuZ3RoKiwgWDEsIHgxKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNW
R0xpbmVFbGVtZW50LCBTVkdMZW5ndGgqLCBZMSwgeTEpCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHTGluZUVsZW1lbnQsIFNWR0xlbmd0aCosIFgyLCB4MikKK0FOSU1BVEVEX0JJTkRJ
TkdfREVGSU5JVElPTihTVkdMaW5lRWxlbWVudCwgU1ZHTGVuZ3RoKiwgWTIsIHkyKQorQU5JTUFU
RURfQklORElOR19ERUZJTklUSU9OKFNWR01hcmtlckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlgs
IHJlZlgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHTWFya2VyRWxlbWVudCwgU1ZH
TGVuZ3RoKiwgUmVmWSwgcmVmWSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdNYXJr
ZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBNYXJrZXJXaWR0aCwgbWFya2VyV2lkdGgpCitBTklNQVRF
RF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHTWFya2VyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgTWFya2Vy
SGVpZ2h0LCBtYXJrZXJIZWlnaHQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHTWFy
a2VyRWxlbWVudCwgaW50LCBNYXJrZXJVbml0cywgbWFya2VyVW5pdHMpCitBTklNQVRFRF9CSU5E
SU5HX0RFRklOSVRJT04oU1ZHTWFya2VyRWxlbWVudCwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRU
eXBlKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR01hcmtlckVsZW1lbnQsIFNWR0Fu
Z2xlKiwgT3JpZW50QW5nbGUsIG9yaWVudEFuZ2xlKQorQU5JTUFURURfQklORElOR19ERUZJTklU
SU9OKFNWR01hc2tFbGVtZW50LCBTVkdMZW5ndGgqLCBYLCB4KQorQU5JTUFURURfQklORElOR19E
RUZJTklUSU9OKFNWR01hc2tFbGVtZW50LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklO
RElOR19ERUZJTklUSU9OKFNWR01hc2tFbGVtZW50LCBTVkdMZW5ndGgqLCBXaWR0aCwgd2lkdGgp
CitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHTWFza0VsZW1lbnQsIFNWR0xlbmd0aCos
IEhlaWdodCwgaGVpZ2h0KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1BhdGhFbGVt
ZW50LCBkb3VibGUsIFBhdGhMZW5ndGgsIHBhdGhMZW5ndGgpCitBTklNQVRFRF9CSU5ESU5HX0RF
RklOSVRJT04oU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFgsIHgpCitBTklNQVRFRF9C
SU5ESU5HX0RFRklOSVRJT04oU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFksIHkpCitB
TklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCos
IFdpZHRoLCB3aWR0aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdQYXR0ZXJuRWxl
bWVudCwgU1ZHTGVuZ3RoKiwgSGVpZ2h0LCBoZWlnaHQpCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHUGF0dGVybkVsZW1lbnQsIGludCwgUGF0dGVyblVuaXRzLCBwYXR0ZXJuVW5pdHMp
CitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHUGF0dGVybkVsZW1lbnQsIGludCwgUGF0
dGVybkNvbnRlbnRVbml0cywgcGF0dGVybkNvbnRlbnRVbml0cykKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHVHJhbnNmb3JtTGlzdCosIFBhdHRlcm5U
cmFuc2Zvcm0sIHBhdHRlcm5UcmFuc2Zvcm0pCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04o
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBDeCwgY3gpCitBTklNQVRFRF9C
SU5ESU5HX0RFRklOSVRJT04oU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBD
eSwgY3kpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LCBTVkdMZW5ndGgqLCBSLCByKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgRngsIGZ4KQorQU5JTUFURURfQklORElO
R19ERUZJTklUSU9OKFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgRnksIGZ5
KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1JlY3RFbGVtZW50LCBTVkdMZW5ndGgq
LCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1JlY3RFbGVtZW50LCBTVkdM
ZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1JlY3RFbGVtZW50
LCBTVkdMZW5ndGgqLCBXaWR0aCwgd2lkdGgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04o
U1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIEhlaWdodCwgaGVpZ2h0KQorQU5JTUFURURfQklO
RElOR19ERUZJTklUSU9OKFNWR1JlY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBSeCwgcngpCitBTklN
QVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJ5LCBy
eSkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdTdG9wRWxlbWVudCwgZG91YmxlLCBP
ZmZzZXQsIG9mZnNldCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdTdHlsZWRFbGVt
ZW50LCBTdHJpbmcsIENsYXNzTmFtZSwgY2xhc3NOYW1lKQorQU5JTUFURURfQklORElOR19ERUZJ
TklUSU9OKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LCBTVkdUcmFuc2Zvcm1MaXN0Kiwg
VHJhbnNmb3JtLCB0cmFuc2Zvcm0pCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHU1ZH
RWxlbWVudCwgU1ZHTGVuZ3RoKiwgWCwgeCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihT
VkdTVkdFbGVtZW50LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19ERUZJTklU
SU9OKFNWR1NWR0VsZW1lbnQsIFNWR0xlbmd0aCosIFdpZHRoLCB3aWR0aCkKK0FOSU1BVEVEX0JJ
TkRJTkdfREVGSU5JVElPTihTVkdTVkdFbGVtZW50LCBTVkdMZW5ndGgqLCBIZWlnaHQsIGhlaWdo
dCkKK0FOSU1BVEVEX0JJTkRJTkdfREVGSU5JVElPTihTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNW
R0xlbmd0aCosIFRleHRMZW5ndGgsIHRleHRMZW5ndGgpCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHVGV4dENvbnRlbnRFbGVtZW50LCBpbnQsIExlbmd0aEFkanVzdCwgbGVuZ3RoQWRq
dXN0KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1RleHRFbGVtZW50LCBTVkdUcmFu
c2Zvcm1MaXN0KiwgVHJhbnNmb3JtLCB0cmFuc2Zvcm0pCitBTklNQVRFRF9CSU5ESU5HX0RFRklO
SVRJT04oU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwgU1ZHTGVuZ3RoTGlzdCosIFgsIHgpCitB
TklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwgU1ZH
TGVuZ3RoTGlzdCosIFksIHkpCitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudCwgU1ZHTGVuZ3RoTGlzdCosIER4LCBkeCkKK0FOSU1BVEVEX0JJTkRJ
TkdfREVGSU5JVElPTihTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdMZW5ndGhMaXN0Kiwg
RHksIGR5KQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1RleHRQb3NpdGlvbmluZ0Vs
ZW1lbnQsIFNWR051bWJlckxpc3QqLCBSb3RhdGUsIHJvdGF0ZSkKK0FOSU1BVEVEX0JJTkRJTkdf
REVGSU5JVElPTihTVkdVUklSZWZlcmVuY2UsIFN0cmluZywgSHJlZiwgaHJlZikKK0FOSU1BVEVE
X0JJTkRJTkdfREVGSU5JVElPTihTVkdVc2VFbGVtZW50LCBTVkdMZW5ndGgqLCBYLCB4KQorQU5J
TUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1VzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFksIHkp
CitBTklNQVRFRF9CSU5ESU5HX0RFRklOSVRJT04oU1ZHVXNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwg
V2lkdGgsIHdpZHRoKQorQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKFNWR1VzZUVsZW1lbnQs
IFNWR0xlbmd0aCosIEhlaWdodCwgaGVpZ2h0KQorCit9CisKKy8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRlbXBsYXRlLmgJKFJldmlzaW9uIDE2MjY4
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oCShBcmJlaXRza29w
aWUpCkBAIC0yMCw4NiArMjAsMjI4IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
CiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRUZW1wbGF0ZV9ICi0jZGVmaW5lIEtTVkdf
U1ZHQW5pbWF0ZWRUZW1wbGF0ZV9ICisjaWZuZGVmIFNWR0FuaW1hdGVkVGVtcGxhdGVfSAorI2Rl
ZmluZSBTVkdBbmltYXRlZFRlbXBsYXRlX0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKLSNpbmNs
dWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2hhcmVkLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gVGhpcyBtYWNybyBh
aWRzIGluIGNyZWF0aW5nIHBlci1wcm9wZXJ0eSwgcGVyLWNsYXNzIFNWR0FuaW1hdGVkKiB0ZWFy
LW9mZiBjbGFzc2VzLAorLy8gdG8gYmUgdXNlZCBpbiB0aGUgT2JqQy9DKysvSlMvLi4gYmluZGlu
Z3MsIHdoaWNoIHN0YXkgY2xvc2UgdG8gdGhlIHNwZWNpZmljYXRpb24uCisjZGVmaW5lIEFOSU1B
VEVEX0JJTkRJTkdfREVDTEFSQVRJT04oQ2xhc3NOYW1lLCBTdG9yYWdlVHlwZSwgQW5pbWF0ZWRU
eXBlTmFtZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorICAgIGNsYXNzIENsYXNz
TmFtZTsgXAorICAgIGNsYXNzIFNWR0FuaW1hdGVkVGVtcGxhdGUjI0NsYXNzTmFtZSMjVXBwZXJQ
cm9wZXJ0eSBcCisgICAgOiBwdWJsaWMgU2hhcmVkPFNWR0FuaW1hdGVkVGVtcGxhdGUjI0NsYXNz
TmFtZSMjVXBwZXJQcm9wZXJ0eT4gXAorICAgIHsgXAorICAgIHB1YmxpYzogXAorICAgICAgICBT
VkdBbmltYXRlZFRlbXBsYXRlIyNDbGFzc05hbWUjI1VwcGVyUHJvcGVydHkoY29uc3QgQ2xhc3NO
YW1lKiBlbGVtZW50KTsgXAorICAgICAgICBBbmltYXRlZFR5cGVOYW1lIGJhc2VWYWwoKSBjb25z
dDsgXAorICAgICAgICB2b2lkIHNldEJhc2VWYWwoQW5pbWF0ZWRUeXBlTmFtZSBuZXdCYXNlVmFs
KTsgXAorICAgICAgICBBbmltYXRlZFR5cGVOYW1lIGFuaW1WYWwoKSBjb25zdDsgXAorICAgICAg
ICB2b2lkIHNldEFuaW1WYWwoQW5pbWF0ZWRUeXBlTmFtZSBuZXdBbmltVmFsKTsgXAorICAgIHBy
b3RlY3RlZDogXAorICAgICAgICBTdG9yYWdlVHlwZSBtX2VsZW1lbnQ7IFwKKyAgICB9OwogCi0g
ICAgLy8gU1ZHQW5pbWF0ZWRUZW1wbGF0ZQotICAgIC8vIC0gbGF6eSBjcmVhdGlvbiBvZiBiYXNl
VmFsL2FuaW1WYWwKLSAgICAvLyAgIChubyBtb3JlIHdhc3RlIG9mIG1vc3RseSB1bnVzZWQgYW5p
bVZhbCB2YXJpYWJsZSEpCi0gICAgLy8gLSBub3QgZGlyZWN0bHkgY3JlYXRhYmxlIChvbmx5IGJ5
IGNoaWxkIGNsYXNzZXMpCi0gICAgLy8gLSBubyBjb3B5IGN0b3Ivbm8gYXNzaWdubWVudCBvcGVy
YXRvciBhdmFpbGFibGUKLSAgICAvLyAgICgtPiBhIGNsYXNzIGZvciBvbmx5IGZvciBwb2ludGVy
IHVzYWdlKQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRUZW1w
bGF0ZSA6IHB1YmxpYyBTaGFyZWQ8U1ZHQW5pbWF0ZWRUZW1wbGF0ZTxUPiA+IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVGVtcGxhdGUoKQotICAgICAgICB7Ci0g
ICAgICAgIH0KKyNkZWZpbmUgQU5JTUFURURfQklORElOR19ERUZJTklUSU9OKENsYXNzTmFtZSwg
QW5pbWF0ZWRUeXBlTmFtZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorICAgIFNW
R0FuaW1hdGVkVGVtcGxhdGUjI0NsYXNzTmFtZSMjVXBwZXJQcm9wZXJ0eTo6U1ZHQW5pbWF0ZWRU
ZW1wbGF0ZSMjQ2xhc3NOYW1lIyNVcHBlclByb3BlcnR5KGNvbnN0IENsYXNzTmFtZSogZWxlbWVu
dCkgXAorICAgIDogbV9lbGVtZW50KGNvbnN0X2Nhc3Q8Q2xhc3NOYW1lKj4oZWxlbWVudCkpIHsg
fSBcCisgICAgQW5pbWF0ZWRUeXBlTmFtZSBTVkdBbmltYXRlZFRlbXBsYXRlIyNDbGFzc05hbWUj
I1VwcGVyUHJvcGVydHk6OmJhc2VWYWwoKSBjb25zdCBcCisgICAgeyBcCisgICAgICAgIHJldHVy
biBtX2VsZW1lbnQtPkxvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpOyBcCisgICAgfSBcCisgICAg
dm9pZCBTVkdBbmltYXRlZFRlbXBsYXRlIyNDbGFzc05hbWUjI1VwcGVyUHJvcGVydHk6OnNldEJh
c2VWYWwoQW5pbWF0ZWRUeXBlTmFtZSBuZXdCYXNlVmFsKSBcCisgICAgeyBcCisgICAgICAgIG1f
ZWxlbWVudC0+c2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUobmV3QmFzZVZhbCk7IFwKKyAg
ICB9XAorICAgIEFuaW1hdGVkVHlwZU5hbWUgU1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjQ2xhc3NOYW1l
IyNVcHBlclByb3BlcnR5OjphbmltVmFsKCkgY29uc3QgXAorICAgIHsgXAorICAgICAgICByZXR1
cm4gbV9lbGVtZW50LT5Mb3dlclByb3BlcnR5KCk7IFwKKyAgICB9IFwKKyAgICB2b2lkIFNWR0Fu
aW1hdGVkVGVtcGxhdGUjI0NsYXNzTmFtZSMjVXBwZXJQcm9wZXJ0eTo6c2V0QW5pbVZhbChBbmlt
YXRlZFR5cGVOYW1lIG5ld0FuaW1WYWwpIFwKKyAgICB7IFwKKyAgICAgICAgbV9lbGVtZW50LT5z
ZXQjI1VwcGVyUHJvcGVydHkobmV3QW5pbVZhbCk7IFwKKyAgICB9CiAKLSAgICAgICAgVCAqYmFz
ZVZhbCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKCFtX2Jhc2VWYWwpCi0gICAg
ICAgICAgICAgICAgbV9iYXNlVmFsID0gY3JlYXRlKCk7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSAgICAgICAgICAgIHJldHVybiBtX2Jhc2VWYWwuZ2V0KCk7Ci0gICAgICAgIH0KK2NsYXNzIFNW
R0FuZ2xlOworY2xhc3MgU1ZHQ29sb3I7CitjbGFzcyBTVkdMZW5ndGg7CitjbGFzcyBTVkdMZW5n
dGhMaXN0OworY2xhc3MgU1ZHTnVtYmVyTGlzdDsKK2NsYXNzIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW87CitjbGFzcyBTVkdSZWN0OworY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAotICAgICAgICB2
b2lkIHNldEJhc2VWYWwoVCAqYmFzZVZhbCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAg
bV9iYXNlVmFsID0gYmFzZVZhbDsKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHQUVs
ZW1lbnQsIFJlZlB0cjxTVkdBRWxlbWVudD4sIFN0cmluZywgVGFyZ2V0LCB0YXJnZXQpCitBTklN
QVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0NpcmNsZUVsZW1lbnQsIFJlZlB0cjxTVkdDaXJj
bGVFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgQ3gsIGN4KQorQU5JTUFURURfQklORElOR19ERUNMQVJB
VElPTihTVkdDaXJjbGVFbGVtZW50LCBSZWZQdHI8U1ZHQ2lyY2xlRWxlbWVudD4sIFNWR0xlbmd0
aCosIEN5LCBjeSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHQ2lyY2xlRWxlbWVu
dCwgUmVmUHRyPFNWR0NpcmNsZUVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBSLCByKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdDbGlwUGF0aEVsZW1lbnQsIFJlZlB0cjxTVkdDbGlwUGF0
aEVsZW1lbnQ+LCBpbnQsIENsaXBQYXRoVW5pdHMsIGNsaXBQYXRoVW5pdHMpCitBTklNQVRFRF9C
SU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBS
ZWZQdHI8U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ+LCBpbnQsIFR5cGUsIHR5
cGUpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0NvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb25FbGVtZW50LCBSZWZQdHI8U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ+
LCBTVkdOdW1iZXJMaXN0KiwgVGFibGVWYWx1ZXMsIHRhYmxlVmFsdWVzKQorQU5JTUFURURfQklO
RElOR19ERUNMQVJBVElPTihTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgUmVm
UHRyPFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50PiwgZG91YmxlLCBTbG9wZSwg
c2xvcGUpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50LCBSZWZQdHI8U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQ+LCBkb3VibGUsIEludGVyY2VwdCwgaW50ZXJjZXB0KQorQU5JTUFURURfQklORElOR19ERUNM
QVJBVElPTihTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgUmVmUHRyPFNWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50PiwgZG91YmxlLCBBbXBsaXR1ZGUsIGFtcGxp
dHVkZSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQsIFJlZlB0cjxTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVu
dD4sIGRvdWJsZSwgRXhwb25lbnQsIGV4cG9uZW50KQorQU5JTUFURURfQklORElOR19ERUNMQVJB
VElPTihTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgUmVmUHRyPFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50PiwgZG91YmxlLCBPZmZzZXQsIG9mZnNldCkKK0FO
SU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHQ3Vyc29yRWxlbWVudCwgUmVmUHRyPFNWR0N1
cnNvckVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUNMQVJB
VElPTihTVkdDdXJzb3JFbGVtZW50LCBSZWZQdHI8U1ZHQ3Vyc29yRWxlbWVudD4sIFNWR0xlbmd0
aCosIFksIHkpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0VsbGlwc2VFbGVtZW50
LCBSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBDeCwgY3gpCitBTklNQVRF
RF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0VsbGlwc2VFbGVtZW50LCBSZWZQdHI8U1ZHRWxsaXBz
ZUVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBDeSwgY3kpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFU
SU9OKFNWR0VsbGlwc2VFbGVtZW50LCBSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+LCBTVkdMZW5n
dGgqLCBSeCwgcngpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0VsbGlwc2VFbGVt
ZW50LCBSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBSeSwgcnkpCitBTklN
QVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQqLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorQU5JTUFURURfQklORElOR19ERUNMQVJB
VElPTihTVkdGRUJsZW5kRWxlbWVudCwgUmVmUHRyPFNWR0ZFQmxlbmRFbGVtZW50PiwgU3RyaW5n
LCBJbiwgaW4pCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQmxlbmRFbGVtZW50
LCBSZWZQdHI8U1ZHRkVCbGVuZEVsZW1lbnQ+LCBTdHJpbmcsIEluMiwgaW4yKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdGRUJsZW5kRWxlbWVudCwgUmVmUHRyPFNWR0ZFQmxlbmRF
bGVtZW50PiwgaW50LCBNb2RlLCBtb2RlKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihT
VkdGRUNvbG9yTWF0cml4RWxlbWVudCwgUmVmUHRyPFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Piwg
U3RyaW5nLCBJbiwgaW4pCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50LCBSZWZQdHI8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+LCBpbnQsIFR5cGUs
IHR5cGUpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50LCBSZWZQdHI8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+LCBTVkdOdW1iZXJMaXN0KiwgVmFs
dWVzLCB2YWx1ZXMpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50LCBSZWZQdHI8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+LCBT
dHJpbmcsIEluLCBpbikKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRkVDb21wb3Np
dGVFbGVtZW50LCBSZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiwgU3RyaW5nLCBJbiwgaW4p
CitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgUmVm
UHRyPFNWR0ZFQ29tcG9zaXRlRWxlbWVudD4sIFN0cmluZywgSW4yLCBpbjIpCitBTklNQVRFRF9C
SU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgUmVmUHRyPFNWR0ZFQ29t
cG9zaXRlRWxlbWVudD4sIGludCwgX29wZXJhdG9yLCBfb3BlcmF0b3IpCitBTklNQVRFRF9CSU5E
SU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgUmVmUHRyPFNWR0ZFQ29tcG9z
aXRlRWxlbWVudD4sIGRvdWJsZSwgSzEsIGsxKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElP
TihTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIFJlZlB0cjxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ+LCBk
b3VibGUsIEsyLCBrMikKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRkVDb21wb3Np
dGVFbGVtZW50LCBSZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiwgZG91YmxlLCBLMywgazMp
CitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgUmVm
UHRyPFNWR0ZFQ29tcG9zaXRlRWxlbWVudD4sIGRvdWJsZSwgSzQsIGs0KQorQU5JTUFURURfQklO
RElOR19ERUNMQVJBVElPTihTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIFJlZlB0cjxTVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ+LCBTdHJpbmcsIEluLCBpbikKK0FOSU1BVEVEX0JJTkRJ
TkdfREVDTEFSQVRJT04oU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBSZWZQdHI8U1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50PiwgZG91YmxlLCBEaWZmdXNlQ29uc3RhbnQsIGRpZmZ1c2VD
b25zdGFudCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LCBSZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50PiwgZG91YmxlLCBT
dXJmYWNlU2NhbGUsIHN1cmZhY2VTY2FsZSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04o
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBSZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50PiwgU1ZHQ29sb3IqLCBMaWdodGluZ0NvbG9yLCBsaWdodGluZ0NvbG9yKQorQU5JTUFU
RURfQklORElOR19ERUNMQVJBVElPTihTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIFJlZlB0
cjxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ+LCBkb3VibGUsIEtlcm5lbFVuaXRMZW5ndGhY
LCBrZXJuZWxVbml0TGVuZ3RoWCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LCBSZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
PiwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWSwga2VybmVsVW5pdExlbmd0aFkpCitBTklNQVRF
RF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgUmVmUHRy
PFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4sIFN0cmluZywgSW4sIGluKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFJlZlB0cjxT
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+LCBTdHJpbmcsIEluMiwgaW4yKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFJlZlB0cjxT
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+LCBpbnQsIFhDaGFubmVsU2VsZWN0b3IsIHhDaGFu
bmVsU2VsZWN0b3IpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFRGlzcGxhY2Vt
ZW50TWFwRWxlbWVudCwgUmVmUHRyPFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4sIGludCwg
WUNoYW5uZWxTZWxlY3RvciwgeUNoYW5uZWxTZWxlY3RvcikKK0FOSU1BVEVEX0JJTkRJTkdfREVD
TEFSQVRJT04oU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LCBSZWZQdHI8U1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50PiwgZG91YmxlLCBTY2FsZSwgc2NhbGUpCitBTklNQVRFRF9CSU5ESU5H
X0RFQ0xBUkFUSU9OKFNWR0ZFRmxvb2RFbGVtZW50LCBSZWZQdHI8U1ZHRkVGbG9vZEVsZW1lbnQ+
LCBTdHJpbmcsIEluLCBpbikKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LCBSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50PiwgU3RyaW5n
LCBJbiwgaW4pCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudCwgUmVmUHRyPFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudD4sIGRvdWJsZSwgU3RkRGV2
aWF0aW9uWCwgc3RkRGV2aWF0aW9uWCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LCBSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Piwg
ZG91YmxlLCBTdGREZXZpYXRpb25ZLCBzdGREZXZpYXRpb25ZKQorQU5JTUFURURfQklORElOR19E
RUNMQVJBVElPTihTVkdGRUltYWdlRWxlbWVudCwgUmVmUHRyPFNWR0ZFSW1hZ2VFbGVtZW50Piwg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNw
ZWN0UmF0aW8pCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFTGlnaHRFbGVtZW50
LCBSZWZQdHI8U1ZHRkVMaWdodEVsZW1lbnQ+LCBkb3VibGUsIEF6aW11dGgsIGF6aW11dGgpCitB
TklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFTGlnaHRFbGVtZW50LCBSZWZQdHI8U1ZH
RkVMaWdodEVsZW1lbnQ+LCBkb3VibGUsIEVsZXZhdGlvbiwgZWxldmF0aW9uKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdGRUxpZ2h0RWxlbWVudCwgUmVmUHRyPFNWR0ZFTGlnaHRF
bGVtZW50PiwgZG91YmxlLCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdG
RUxpZ2h0RWxlbWVudCwgUmVmUHRyPFNWR0ZFTGlnaHRFbGVtZW50PiwgZG91YmxlLCBZLCB5KQor
QU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRUxpZ2h0RWxlbWVudCwgUmVmUHRyPFNW
R0ZFTGlnaHRFbGVtZW50PiwgZG91YmxlLCBaLCB6KQorQU5JTUFURURfQklORElOR19ERUNMQVJB
VElPTihTVkdGRUxpZ2h0RWxlbWVudCwgUmVmUHRyPFNWR0ZFTGlnaHRFbGVtZW50PiwgZG91Ymxl
LCBQb2ludHNBdFgsIHBvaW50c0F0WCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZH
RkVMaWdodEVsZW1lbnQsIFJlZlB0cjxTVkdGRUxpZ2h0RWxlbWVudD4sIGRvdWJsZSwgUG9pbnRz
QXRZLCBwb2ludHNBdFkpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFTGlnaHRF
bGVtZW50LCBSZWZQdHI8U1ZHRkVMaWdodEVsZW1lbnQ+LCBkb3VibGUsIFBvaW50c0F0WiwgcG9p
bnRzQXRaKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRUxpZ2h0RWxlbWVudCwg
UmVmUHRyPFNWR0ZFTGlnaHRFbGVtZW50PiwgZG91YmxlLCBTcGVjdWxhckV4cG9uZW50LCBzcGVj
dWxhckV4cG9uZW50KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRUxpZ2h0RWxl
bWVudCwgUmVmUHRyPFNWR0ZFTGlnaHRFbGVtZW50PiwgZG91YmxlLCBMaW1pdGluZ0NvbmVBbmds
ZSwgbGltaXRpbmdDb25lQW5nbGUpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZF
TWVyZ2VOb2RlRWxlbWVudCwgUmVmUHRyPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4sIFN0cmluZywg
SW4sIGluKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRU9mZnNldEVsZW1lbnQs
IFJlZlB0cjxTVkdGRU9mZnNldEVsZW1lbnQ+LCBTdHJpbmcsIEluLCBpbikKK0FOSU1BVEVEX0JJ
TkRJTkdfREVDTEFSQVRJT04oU1ZHRkVPZmZzZXRFbGVtZW50LCBSZWZQdHI8U1ZHRkVPZmZzZXRF
bGVtZW50PiwgZG91YmxlLCBEeCwgZHgpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNW
R0ZFT2Zmc2V0RWxlbWVudCwgUmVmUHRyPFNWR0ZFT2Zmc2V0RWxlbWVudD4sIGRvdWJsZSwgRHks
IGR5KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50LCBSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4sIFN0cmluZywgSW4s
IGluKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50LCBSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4sIGRvdWJsZSwgU3Bl
Y3VsYXJDb25zdGFudCwgc3BlY3VsYXJDb25zdGFudCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFS
QVRJT04oU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgUmVmUHRyPFNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQ+LCBkb3VibGUsIFNwZWN1bGFyRXhwb25lbnQsIHNwZWN1bGFyRXhwb25l
bnQpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQsIFJlZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiwgZG91YmxlLCBTdXJm
YWNlU2NhbGUsIHN1cmZhY2VTY2FsZSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgUmVmUHRyPFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQ+LCBTVkdDb2xvciosIExpZ2h0aW5nQ29sb3IsIGxpZ2h0aW5nQ29sb3IpCitBTklNQVRF
RF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIFJlZlB0
cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3Ro
WCwga2VybmVsVW5pdExlbmd0aFgpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIFJlZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVt
ZW50PiwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWSwga2VybmVsVW5pdExlbmd0aFkpCitBTklN
QVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFVGlsZUVsZW1lbnQsIFJlZlB0cjxTVkdGRVRp
bGVFbGVtZW50PiwgU3RyaW5nLCBJbiwgaW4pCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9O
KFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIFJlZlB0cjxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Piwg
ZG91YmxlLCBCYXNlRnJlcXVlbmN5WCwgYmFzZUZyZXF1ZW5jeVgpCitBTklNQVRFRF9CSU5ESU5H
X0RFQ0xBUkFUSU9OKFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIFJlZlB0cjxTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50PiwgZG91YmxlLCBCYXNlRnJlcXVlbmN5WSwgYmFzZUZyZXF1ZW5jeVkpCitBTklN
QVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIFJlZlB0cjxT
VkdGRVR1cmJ1bGVuY2VFbGVtZW50PiwgaW50LCBOdW1PY3RhdmVzLCBudW1PY3RhdmVzKQorQU5J
TUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBSZWZQdHI8
U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4sIGRvdWJsZSwgU2VlZCwgc2VlZCkKK0FOSU1BVEVEX0JJ
TkRJTkdfREVDTEFSQVRJT04oU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgUmVmUHRyPFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQ+LCBpbnQsIFN0aXRjaFRpbGVzLCBzdGl0Y2hUaWxlcykKK0FOSU1BVEVE
X0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgUmVmUHRyPFNWR0ZF
VHVyYnVsZW5jZUVsZW1lbnQ+LCBpbnQsIFR5cGUsIHR5cGUpCitBTklNQVRFRF9CSU5ESU5HX0RF
Q0xBUkFUSU9OKFNWR0ZpbHRlckVsZW1lbnQsIFJlZlB0cjxTVkdGaWx0ZXJFbGVtZW50PiwgaW50
LCBGaWx0ZXJVbml0cywgZmlsdGVyVW5pdHMpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9O
KFNWR0ZpbHRlckVsZW1lbnQsIFJlZlB0cjxTVkdGaWx0ZXJFbGVtZW50PiwgaW50LCBQcmltaXRp
dmVVbml0cywgcHJpbWl0aXZlVW5pdHMpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNW
R0ZpbHRlckVsZW1lbnQsIFJlZlB0cjxTVkdGaWx0ZXJFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgWCwg
eCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRmlsdGVyRWxlbWVudCwgUmVmUHRy
PFNWR0ZpbHRlckVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19E
RUNMQVJBVElPTihTVkdGaWx0ZXJFbGVtZW50LCBSZWZQdHI8U1ZHRmlsdGVyRWxlbWVudD4sIFNW
R0xlbmd0aCosIFdpZHRoLCB3aWR0aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZH
RmlsdGVyRWxlbWVudCwgUmVmUHRyPFNWR0ZpbHRlckVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBIZWln
aHQsIGhlaWdodCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHRmlsdGVyRWxlbWVu
dCwgUmVmUHRyPFNWR0ZpbHRlckVsZW1lbnQ+LCBpbnQsIEZpbHRlclJlc1gsIGZpbHRlclJlc1gp
CitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZpbHRlckVsZW1lbnQsIFJlZlB0cjxT
VkdGaWx0ZXJFbGVtZW50PiwgaW50LCBGaWx0ZXJSZXNZLCBmaWx0ZXJSZXNZKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMs
IFJlZlB0cjxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+LCBTVkdMZW5ndGgq
LCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMsIFJlZlB0cjxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM+LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFJlZlB0cjxTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+LCBTVkdMZW5ndGgqLCBXaWR0aCwgd2lkdGgpCitBTklN
QVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcywgUmVmUHRyPFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz4sIFNWR0xl
bmd0aCosIEhlaWdodCwgaGVpZ2h0KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFJlZlB0cjxTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM+LCBTdHJpbmcsIFJlc3VsdCwgcmVzdWx0KQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveCosIFNW
R1JlY3QqLCBWaWV3Qm94LCB2aWV3Qm94KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihT
VkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveCosIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8q
LCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQorQU5JTUFURURfQklO
RElOR19ERUNMQVJBVElPTihTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwgUmVmUHRyPFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgWCwgeCkKK0FOSU1BVEVEX0JJTkRJTkdfREVD
TEFSQVRJT04oU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQsIFJlZlB0cjxTVkdGb3JlaWduT2JqZWN0
RWxlbWVudD4sIFNWR0xlbmd0aCosIFksIHkpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9O
KFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBSZWZQdHI8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+
LCBTVkdMZW5ndGgqLCBXaWR0aCwgd2lkdGgpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9O
KFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBSZWZQdHI8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+
LCBTVkdMZW5ndGgqLCBIZWlnaHQsIGhlaWdodCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJ
T04oU1ZHR3JhZGllbnRFbGVtZW50LCBSZWZQdHI8U1ZHR3JhZGllbnRFbGVtZW50PiwgaW50LCBT
cHJlYWRNZXRob2QsIHNwcmVhZE1ldGhvZCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04o
U1ZHR3JhZGllbnRFbGVtZW50LCBSZWZQdHI8U1ZHR3JhZGllbnRFbGVtZW50PiwgaW50LCBHcmFk
aWVudFVuaXRzLCBncmFkaWVudFVuaXRzKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihT
VkdHcmFkaWVudEVsZW1lbnQsIFJlZlB0cjxTVkdHcmFkaWVudEVsZW1lbnQ+LCBTVkdUcmFuc2Zv
cm1MaXN0KiwgR3JhZGllbnRUcmFuc2Zvcm0sIGdyYWRpZW50VHJhbnNmb3JtKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdJbWFnZUVsZW1lbnQsIFJlZlB0cjxTVkdJbWFnZUVsZW1l
bnQ+LCBTVkdMZW5ndGgqLCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdJ
bWFnZUVsZW1lbnQsIFJlZlB0cjxTVkdJbWFnZUVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBZLCB5KQor
QU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdJbWFnZUVsZW1lbnQsIFJlZlB0cjxTVkdJ
bWFnZUVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBXaWR0aCwgd2lkdGgpCitBTklNQVRFRF9CSU5ESU5H
X0RFQ0xBUkFUSU9OKFNWR0ltYWdlRWxlbWVudCwgUmVmUHRyPFNWR0ltYWdlRWxlbWVudD4sIFNW
R0xlbmd0aCosIEhlaWdodCwgaGVpZ2h0KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihT
VkdJbWFnZUVsZW1lbnQsIFJlZlB0cjxTVkdJbWFnZUVsZW1lbnQ+LCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKK0FOSU1B
VEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LCBSZWZQdHI8
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgWDEsIHgxKQorQU5JTUFURURf
QklORElOR19ERUNMQVJBVElPTihTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFJlZlB0cjxTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBZMSwgeTEpCitBTklNQVRFRF9CSU5E
SU5HX0RFQ0xBUkFUSU9OKFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCwgUmVmUHRyPFNWR0xpbmVh
ckdyYWRpZW50RWxlbWVudD4sIFNWR0xlbmd0aCosIFgyLCB4MikKK0FOSU1BVEVEX0JJTkRJTkdf
REVDTEFSQVRJT04oU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LCBSZWZQdHI8U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgWTIsIHkyKQorQU5JTUFURURfQklORElOR19ERUNM
QVJBVElPTihTVkdMaW5lRWxlbWVudCwgUmVmUHRyPFNWR0xpbmVFbGVtZW50PiwgU1ZHTGVuZ3Ro
KiwgWDEsIHgxKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdMaW5lRWxlbWVudCwg
UmVmUHRyPFNWR0xpbmVFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgWTEsIHkxKQorQU5JTUFURURfQklO
RElOR19ERUNMQVJBVElPTihTVkdMaW5lRWxlbWVudCwgUmVmUHRyPFNWR0xpbmVFbGVtZW50Piwg
U1ZHTGVuZ3RoKiwgWDIsIHgyKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdMaW5l
RWxlbWVudCwgUmVmUHRyPFNWR0xpbmVFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgWTIsIHkyKQorQU5J
TUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdNYXJrZXJFbGVtZW50LCBSZWZQdHI8U1ZHTWFy
a2VyRWxlbWVudD4sIFNWR0xlbmd0aCosIFJlZlgsIHJlZlgpCitBTklNQVRFRF9CSU5ESU5HX0RF
Q0xBUkFUSU9OKFNWR01hcmtlckVsZW1lbnQsIFJlZlB0cjxTVkdNYXJrZXJFbGVtZW50PiwgU1ZH
TGVuZ3RoKiwgUmVmWSwgcmVmWSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHTWFy
a2VyRWxlbWVudCwgUmVmUHRyPFNWR01hcmtlckVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBNYXJrZXJX
aWR0aCwgbWFya2VyV2lkdGgpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR01hcmtl
ckVsZW1lbnQsIFJlZlB0cjxTVkdNYXJrZXJFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgTWFya2VySGVp
Z2h0LCBtYXJrZXJIZWlnaHQpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR01hcmtl
ckVsZW1lbnQsIFJlZlB0cjxTVkdNYXJrZXJFbGVtZW50PiwgaW50LCBNYXJrZXJVbml0cywgbWFy
a2VyVW5pdHMpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR01hcmtlckVsZW1lbnQs
IFJlZlB0cjxTVkdNYXJrZXJFbGVtZW50PiwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBlKQor
QU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdNYXJrZXJFbGVtZW50LCBSZWZQdHI8U1ZH
TWFya2VyRWxlbWVudD4sIFNWR0FuZ2xlKiwgT3JpZW50QW5nbGUsIG9yaWVudEFuZ2xlKQorQU5J
TUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdNYXNrRWxlbWVudCwgUmVmUHRyPFNWR01hc2tF
bGVtZW50PiwgU1ZHTGVuZ3RoKiwgWCwgeCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04o
U1ZHTWFza0VsZW1lbnQsIFJlZlB0cjxTVkdNYXNrRWxlbWVudD4sIFNWR0xlbmd0aCosIFksIHkp
CitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR01hc2tFbGVtZW50LCBSZWZQdHI8U1ZH
TWFza0VsZW1lbnQ+LCBTVkdMZW5ndGgqLCBXaWR0aCwgd2lkdGgpCitBTklNQVRFRF9CSU5ESU5H
X0RFQ0xBUkFUSU9OKFNWR01hc2tFbGVtZW50LCBSZWZQdHI8U1ZHTWFza0VsZW1lbnQ+LCBTVkdM
ZW5ndGgqLCBIZWlnaHQsIGhlaWdodCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZH
UGF0aEVsZW1lbnQsIFJlZlB0cjxTVkdQYXRoRWxlbWVudD4sIGRvdWJsZSwgUGF0aExlbmd0aCwg
cGF0aExlbmd0aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHUGF0dGVybkVsZW1l
bnQsIFJlZlB0cjxTVkdQYXR0ZXJuRWxlbWVudD4sIFNWR0xlbmd0aCosIFgsIHgpCitBTklNQVRF
RF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1BhdHRlcm5FbGVtZW50LCBSZWZQdHI8U1ZHUGF0dGVy
bkVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElP
TihTVkdQYXR0ZXJuRWxlbWVudCwgUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50PiwgU1ZHTGVuZ3Ro
KiwgV2lkdGgsIHdpZHRoKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdQYXR0ZXJu
RWxlbWVudCwgUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50PiwgU1ZHTGVuZ3RoKiwgSGVpZ2h0LCBo
ZWlnaHQpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1BhdHRlcm5FbGVtZW50LCBS
ZWZQdHI8U1ZHUGF0dGVybkVsZW1lbnQ+LCBpbnQsIFBhdHRlcm5Vbml0cywgcGF0dGVyblVuaXRz
KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdQYXR0ZXJuRWxlbWVudCwgUmVmUHRy
PFNWR1BhdHRlcm5FbGVtZW50PiwgaW50LCBQYXR0ZXJuQ29udGVudFVuaXRzLCBwYXR0ZXJuQ29u
dGVudFVuaXRzKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdQYXR0ZXJuRWxlbWVu
dCwgUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50PiwgU1ZHVHJhbnNmb3JtTGlzdCosIFBhdHRlcm5U
cmFuc2Zvcm0sIHBhdHRlcm5UcmFuc2Zvcm0pCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9O
KFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCwgUmVmUHRyPFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dD4sIFNWR0xlbmd0aCosIEN4LCBjeCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LCBSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Piwg
U1ZHTGVuZ3RoKiwgQ3ksIGN5KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQsIFJlZlB0cjxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+LCBTVkdM
ZW5ndGgqLCBSLCByKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQsIFJlZlB0cjxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+LCBTVkdMZW5ndGgq
LCBGeCwgZngpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudCwgUmVmUHRyPFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudD4sIFNWR0xlbmd0aCosIEZ5
LCBmeSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHUmVjdEVsZW1lbnQsIFJlZlB0
cjxTVkdSZWN0RWxlbWVudD4sIFNWR0xlbmd0aCosIFgsIHgpCitBTklNQVRFRF9CSU5ESU5HX0RF
Q0xBUkFUSU9OKFNWR1JlY3RFbGVtZW50LCBSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+LCBTVkdMZW5n
dGgqLCBZLCB5KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdSZWN0RWxlbWVudCwg
UmVmUHRyPFNWR1JlY3RFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgV2lkdGgsIHdpZHRoKQorQU5JTUFU
RURfQklORElOR19ERUNMQVJBVElPTihTVkdSZWN0RWxlbWVudCwgUmVmUHRyPFNWR1JlY3RFbGVt
ZW50PiwgU1ZHTGVuZ3RoKiwgSGVpZ2h0LCBoZWlnaHQpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xB
UkFUSU9OKFNWR1JlY3RFbGVtZW50LCBSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+LCBTVkdMZW5ndGgq
LCBSeCwgcngpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1JlY3RFbGVtZW50LCBS
ZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+LCBTVkdMZW5ndGgqLCBSeSwgcnkpCitBTklNQVRFRF9CSU5E
SU5HX0RFQ0xBUkFUSU9OKFNWR1N0b3BFbGVtZW50LCBSZWZQdHI8U1ZHU3RvcEVsZW1lbnQ+LCBk
b3VibGUsIE9mZnNldCwgb2Zmc2V0KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdT
dHlsZWRFbGVtZW50LCBSZWZQdHI8U1ZHU3R5bGVkRWxlbWVudD4sIFN0cmluZywgQ2xhc3NOYW1l
LCBjbGFzc05hbWUpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LCBSZWZQdHI8U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ+LCBT
VkdUcmFuc2Zvcm1MaXN0KiwgVHJhbnNmb3JtLCB0cmFuc2Zvcm0pCitBTklNQVRFRF9CSU5ESU5H
X0RFQ0xBUkFUSU9OKFNWR1NWR0VsZW1lbnQsIFJlZlB0cjxTVkdTVkdFbGVtZW50PiwgU1ZHTGVu
Z3RoKiwgWCwgeCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHU1ZHRWxlbWVudCwg
UmVmUHRyPFNWR1NWR0VsZW1lbnQ+LCBTVkdMZW5ndGgqLCBZLCB5KQorQU5JTUFURURfQklORElO
R19ERUNMQVJBVElPTihTVkdTVkdFbGVtZW50LCBSZWZQdHI8U1ZHU1ZHRWxlbWVudD4sIFNWR0xl
bmd0aCosIFdpZHRoLCB3aWR0aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHU1ZH
RWxlbWVudCwgUmVmUHRyPFNWR1NWR0VsZW1lbnQ+LCBTVkdMZW5ndGgqLCBIZWlnaHQsIGhlaWdo
dCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVGV4dENvbnRlbnRFbGVtZW50LCBS
ZWZQdHI8U1ZHVGV4dENvbnRlbnRFbGVtZW50PiwgU1ZHTGVuZ3RoKiwgVGV4dExlbmd0aCwgdGV4
dExlbmd0aCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LCBSZWZQdHI8U1ZHVGV4dENvbnRlbnRFbGVtZW50PiwgaW50LCBMZW5ndGhBZGp1c3QsIGxl
bmd0aEFkanVzdCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVGV4dEVsZW1lbnQs
IFJlZlB0cjxTVkdUZXh0RWxlbWVudD4sIFNWR1RyYW5zZm9ybUxpc3QqLCBUcmFuc2Zvcm0sIHRy
YW5zZm9ybSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCwgUmVmUHRyPFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ+LCBTVkdMZW5ndGhMaXN0
KiwgWCwgeCkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCwgUmVmUHRyPFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ+LCBTVkdMZW5ndGhMaXN0
KiwgWSwgeSkKK0FOSU1BVEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCwgUmVmUHRyPFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ+LCBTVkdMZW5ndGhMaXN0
KiwgRHgsIGR4KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LCBSZWZQdHI8U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudD4sIFNWR0xlbmd0aExp
c3QqLCBEeSwgZHkpCitBTklNQVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnQsIFJlZlB0cjxTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50PiwgU1ZHTnVtYmVy
TGlzdCosIFJvdGF0ZSwgcm90YXRlKQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdV
UklSZWZlcmVuY2UsIFNWR1VSSVJlZmVyZW5jZSosIFN0cmluZywgSHJlZiwgaHJlZikKK0FOSU1B
VEVEX0JJTkRJTkdfREVDTEFSQVRJT04oU1ZHVXNlRWxlbWVudCwgUmVmUHRyPFNWR1VzZUVsZW1l
bnQ+LCBTVkdMZW5ndGgqLCBYLCB4KQorQU5JTUFURURfQklORElOR19ERUNMQVJBVElPTihTVkdV
c2VFbGVtZW50LCBSZWZQdHI8U1ZHVXNlRWxlbWVudD4sIFNWR0xlbmd0aCosIFksIHkpCitBTklN
QVRFRF9CSU5ESU5HX0RFQ0xBUkFUSU9OKFNWR1VzZUVsZW1lbnQsIFJlZlB0cjxTVkdVc2VFbGVt
ZW50PiwgU1ZHTGVuZ3RoKiwgV2lkdGgsIHdpZHRoKQorQU5JTUFURURfQklORElOR19ERUNMQVJB
VElPTihTVkdVc2VFbGVtZW50LCBSZWZQdHI8U1ZHVXNlRWxlbWVudD4sIFNWR0xlbmd0aCosIEhl
aWdodCwgaGVpZ2h0KQogCi0gICAgICAgICAgICBpZihtX2NvbnRleHQpCi0gICAgICAgICAgICAg
ICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKK30KIAotICAgICAgICAgICAg
c2V0QW5pbVZhbChiYXNlVmFsKTsKLSAgICAgICAgfQotCi0gICAgICAgIFQgKmFuaW1WYWwoKSBj
b25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBpZighbV9hbmltVmFsKQotICAgICAgICAgICAg
ICAgIG1fYW5pbVZhbCA9IGNyZWF0ZSgpOwotCi0gICAgICAgICAgICByZXR1cm4gbV9hbmltVmFs
LmdldCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBzZXRBbmltVmFsKFQgKmFuaW1WYWwp
IGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIG1fYW5pbVZhbCA9IGFuaW1WYWw7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIC8vIEkgdGhpbmsgdGhpcyBpcyBzdXBlcmZsdW91cy4uLiAt
LSBFQ1MgNC8yNS8wNQotICAgICAgICAgICAgaWYobV9jb250ZXh0KQotICAgICAgICAgICAgICAg
IG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICBTVkdBbmltYXRlZFRlbXBsYXRlKGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU2hhcmVkPFNWR0FuaW1hdGVkVGVtcGxhdGU+KCkKLSAg
ICAgICAgewotICAgICAgICAgICAgbV9jb250ZXh0ID0gY29udGV4dDsKLSAgICAgICAgfQotCi0g
ICAgICAgIC8vIFRoaXMgbWV0aG9kcyBuZWVkIHRvIGJlIHJlaW1wbGVtZW50ZWQuICAgICAgICAK
LSAgICAgICAgdmlydHVhbCBUICpjcmVhdGUoKSBjb25zdCA9IDA7Ci0gICAgICAgIC8vdmlydHVh
bCB2b2lkIGFzc2lnbihUICpzcmMsIFQgKmRzdCkgY29uc3QgPSAwOwotCi0gICAgICAgIC8vIEF0
dHJpYnV0ZSBub3RpZmljYXRpb24gY29udGV4dAotICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICptX2NvbnRleHQ7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTVkdBbmltYXRlZFRlbXBs
YXRlKGNvbnN0IFNWR0FuaW1hdGVkVGVtcGxhdGUgJikgeyB9Ci0gICAgICAgIFNWR0FuaW1hdGVk
VGVtcGxhdGU8VD4gJm9wZXJhdG9yPShjb25zdCBTVkdBbmltYXRlZFRlbXBsYXRlPFQ+ICYpIHsg
fQotICAgICAgICAKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8VD4gbV9iYXNlVmFsOwotICAgICAg
ICBtdXRhYmxlIFJlZlB0cjxUPiBtX2FuaW1WYWw7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZiAvLyBLU1ZHX1NWR0FuaW1h
dGVkVGVtcGxhdGVfSAorI2VuZGlmIC8vIFNWR0FuaW1hdGVkVGVtcGxhdGVfSAogCiAvLyB2aW06
dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtMjQsMTgg
KzI0LDIxIEBACiAjZGVmaW5lIEtTVkdfU1ZHRWxlbWVudEltcGxfSAogI2lmZGVmIFNWR19TVVBQ
T1JUCiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIK
KwogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5o
IgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAKIC8vIEZJWE1FOiBUZW1wbGF0aWZ5IGFzIG11Y2ggYXMgcG9zc2libGUgaGVyZSEKLSNk
ZWZpbmUgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKEJhcmVUeXBlLCBTdG9yYWdlVHlw
ZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorI2RlZmluZSBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoQ2xhc3NOYW1lLCBCYXJlVHlwZSwgU3RvcmFnZVR5cGUsIFVwcGVy
UHJvcGVydHksIExvd2VyUHJvcGVydHkpIFwKIHB1YmxpYzogXAogICAgIEJhcmVUeXBlIExvd2Vy
UHJvcGVydHkoKSBjb25zdDsgXAogICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5KEJhcmVUeXBl
IG5ld1ZhbHVlKTsgXAogICAgIEJhcmVUeXBlIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpIGNv
bnN0OyBcCiAgICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShCYXJlVHlwZSBu
ZXdWYWx1ZSk7IFwKKyAgICBQYXNzUmVmUHRyPFNWR0FuaW1hdGVkVGVtcGxhdGUjI0NsYXNzTmFt
ZSMjVXBwZXJQcm9wZXJ0eT4gTG93ZXJQcm9wZXJ0eSMjQW5pbWF0ZWQoKSBjb25zdDsgXAogcHJp
dmF0ZTogXAogICAgIFN0b3JhZ2VUeXBlIG1fIyNMb3dlclByb3BlcnR5OwogCkBAIC02NSw2ICs2
OCwxMiBAQAogICAgIGlmIChleHRlbnNpb25zICYmIGV4dGVuc2lvbnMtPmhhc0Jhc2VWYWx1ZTxC
YXJlVHlwZT4oY29udGV4dCwgQXR0ck5hbWUpKSBcCiAgICAgICAgIGV4dGVuc2lvbnMtPnNldEJh
c2VWYWx1ZTxCYXJlVHlwZT4oY29udGV4dCwgQXR0ck5hbWUsIG5ld1ZhbHVlKTsgXAogICAgIHNl
dCMjVXBwZXJQcm9wZXJ0eShuZXdWYWx1ZSk7IFwKK30gXAorUGFzc1JlZlB0cjxTVkdBbmltYXRl
ZFRlbXBsYXRlIyNDbGFzc05hbWUjI1VwcGVyUHJvcGVydHk+IENsYXNzTmFtZTo6TG93ZXJQcm9w
ZXJ0eSMjQW5pbWF0ZWQoKSBjb25zdCBcCit7IFwKKyAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRUZW1w
bGF0ZSMjQ2xhc3NOYW1lIyNVcHBlclByb3BlcnR5PiByZXQ7IFwKKyAgICByZXQgPSBuZXcgU1ZH
QW5pbWF0ZWRUZW1wbGF0ZSMjQ2xhc3NOYW1lIyNVcHBlclByb3BlcnR5KHRoaXMpOyBcCisgICAg
cmV0dXJuIHJldDsgXAogfQogCiAjZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05T
X1dJVEhfQ09OVEVYVChDbGFzc05hbWUsIEJhcmVUeXBlLCBVcHBlckNsYXNzTmFtZSwgTG93ZXJD
bGFzc05hbWUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHksIEF0dHJOYW1lLCBTdG9yYWdl
R2V0dGVyKSBcCg==
</data>
<flag name="review"
          id="3362"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10463</attachid>
            <date>2006-09-08 09:57:06 -0700</date>
            <delta_ts>2006-09-10 16:15:35 -0700</delta_ts>
            <desc>Changes in the CodeGenerator&apos;s</desc>
            <filename>svg-animated-generation.diff</filename>
            <type>text/plain</type>
            <size>16330</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjI2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDYtMDktMDggIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBwYXJ0cyBvZjogaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc1MAorCisgICAgICAgIEdlbmVyYXRlIHBlci1wcm9wZXJ0eSwgcGVyLWNs
YXNzIFNWR0FuaW1hdGVkVHlwZSBzdWJjbGFzc2VzCisgICAgICAgIGZvciBlYWNoIG9mIHRoZSBT
VkdBbmltYXRlZCogcHJvcGVydGllcyB3aGljaCB3ZSBzdXBwb3J0LgorCisgICAgICAgIFNwZWNp
ZmljIGNoYW5nZXMgaW4gQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgLSBBZGQgSXNTVkdBbmlt
YXRlZFR5cGUoKSBoZWxwZXIgdG8gZGV0ZWN0IHRoZSB2YXJpb3VzIFNWR0FuaW1hdGVkKiB0eXBl
cworICAgICAgICAKKyAgICAgICAgLSBSZW1vdmUgb2Jzb2xldGUgY29kZTogUmVjdXJzaXZlSW5o
ZXJpdGFuY2VIZWxwZXIgLyBBbGxDbGFzc2VzIC8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWxsQ2xhc3Nlc1doaWNoSW5oZXJpdEZyb20gLyBDbGFzc0hhc1dyaXRlYWJsZUF0dHJp
YnV0ZXMgLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaW5kVG9wQmFzZUNsYXNz
IChhbGwgbGVnYWN5IGtkb20gc3R1ZmYgLSBub3QgbmVlZGVkIGluIFdlYktpdCkKKyAgICAgICAg
CisgICAgICAgIC0gQWRkIG5ldyBtZXRob2Q6IEZpbmRBbGxQcm9wZXJ0aWVzVXNpbmdTVkdBbmlt
YXRlZFR5cGVzLiBJZiB0aGUgQ29kZUdlbmVyYXRvckpTCisgICAgICAgIGlzIGludm9rZWQgZm9y
IGllLiAiU1ZHQW5pbWF0ZWRMZW5ndGgiIGl0IHVzZXMgdGhpcyBtZXRob2QgdG8gZmluZCBhbGwg
cHJvcGVydGllcworICAgICAgICB3aGljaCB1c2UgdGhpcyBkYXRhdHlwZS4gSW5zdGVhZCBvZiBn
ZW5lcmF0aW5nIG9uZSBKU1NWR0FuaW1hdGVkTGVuZ3RoIGNsYXNzLCB0aGUKKyAgICAgICAgQ29k
ZUdlbmVyYXRvckpTIHdpbGwgZ2VuZXJhdGUgYWxsIG5lZWRlZCBKU1NWR0FuaW1hdGVkVGVtcGxh
dGVDbGFzc05hbWVQcm9wZXJ0eU5hbWUgd3JhcHBlcnMuCisKKyAgICAgICAgU3BlY2lmaWMgY2hh
bmdlcyBpbiBDb2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIC0gU3BlY2lhbCBsb2dpYyBmb3Ig
SlNTVkdBbmltYXRlZCogZ2VuZXJhdGlvbiwgaW4gdGhlIEdlbmVyYXRlSW50ZXJmYWNlIG1ldGhv
ZC4KKyAgICAgICAgICAoYXMgZGVzY3JpYmVkIGFib3ZlKQorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorCiAyMDA2LTA5LTA3ICBTYW0gV2VpbmlnICA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gYW5kIFRpbSBILgpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKFJldmlzaW9uIDE2MjY4
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKEFyYmVpdHNr
b3BpZSkKQEAgLTEwNCw3ICsxMDQsNiBAQAogCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAg
IG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICR0b3BCYXNlQ2xhc3MgPSAiIjsKIAogICAg
IG15IEBwYXJlbnRzID0gQHskZGF0YU5vZGUtPnBhcmVudHN9OwogICAgIG15ICRwYXJlbnRzTWF4
ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9OwpAQCAtMTcwLDEwMiArMTY5LDE1IEBACiAgICAgICAg
IH0KICAgICB9CiB9Ci0gCi0jIEhlbHBlciBmb3IgYWxsIENvZGVHZW5lcmF0b3IqKioucG0gbW9k
dWxlcwotc3ViIEZpbmRUb3BCYXNlQ2xhc3MKLXsKLSAgICAjIElmIHlvdSBhcmUgcHJvY2Vzc2lu
ZyB0aGUgJ0F0dHInIGludGVyZmFjZSwgaXQgaGFzIHRoZSBzaW5nbGUKLSAgICAjIHBhcmVudCBp
bnRlcmZhY2UgJ05vZGUnLCB3aGljaCBpcyB0aGUgdG9wbW9zdCBiYXNlIGNsYXNzLiBSZXR1cm4g
aXQuCi0gICAgIwotICAgICMgSXQgZ2V0cyB0cmlja2llciBmb3IgaWUuIHRoZSAnUGxhdGZvcm1N
b3VzZUV2ZW50JyBpbnRlcmZhY2UsIHdob3NlIHBhcmVudCBpcwotICAgICMgdGhlICdVSUV2ZW50
JyBpbnRlcmZhY2UsIHdob3NlIHBhcmVudCBpcyB0aGUgJ0V2ZW50JyBpbnRlcmZhY2UuIFJldHVy
biBpdC4KLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZSA9IFN0cmlw
TW9kdWxlKHNoaWZ0KTsKLSAgICBteSAkdG9wQmFzZUNsYXNzID0gIiI7Ci0gIAotICAgICMgTG9v
cCB1bnRpbCB3ZSBmb3VuZCB0aGUgdG9wIG1vc3QgYmFzZSBjbGFzcyBmb3IgJ2ludGVyZmFjZScK
LSAgICB3aGlsZSgkaW50ZXJmYWNlIG5lICIiKSB7Ci0gICAgICAgICMgU3RlcCAjMTogRmluZCB0
aGUgSURMIGZpbGUgYXNzb2NpYXRlZCB3aXRoICdpbnRlcmZhY2UnCi0gICAgICAgICRlbmRDb25k
aXRpb24gPSAwOyAkZm91bmRGaWxlbmFtZSA9ICIiOwogCi0gICAgICAgIGZvcmVhY2ggKEB7JHVz
ZURpcmVjdG9yaWVzfSkgewotICAgICAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiJGlu
dGVyZmFjZS5pZGwiLCAkXywgJF8sIDApIGlmICRmb3VuZEZpbGVuYW1lIGVxICIiOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKCRmb3VuZEZpbGVuYW1lIG5lICIiKSB7Ci0gICAgICAgICAgICBw
cmludCAiICB8ICB8PiAgUGFyc2luZyBwYXJlbnQgSURMIFwiJGZvdW5kRmlsZW5hbWVcIiBmb3Ig
aW50ZXJmYWNlIFwiJGludGVyZmFjZVwiXG4iOwotCi0gICAgICAgICAgICAjIFN0ZXAgIzI6IFBh
cnNlIHRoZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCi0gICAgICAgICAgICBteSAk
cGFyc2VyID0gSURMUGFyc2VyLT5uZXcoMSk7Ci0gICAgICAgICAgICBteSAkZG9jdW1lbnQgPSAk
cGFyc2VyLT5QYXJzZSgkZm91bmRGaWxlbmFtZSk7Ci0KLSAgICAgICAgICAgICMgU3RlcCAjMzog
Q2hlY2sgd2hldGVyIHRoZSBwYXJzZWQgSURMIGZpbGUgaGFzIHBhcmVudHMKLSAgICAgICAgICAg
IGZvcmVhY2ggbXkgJGNsYXNzIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKLSAgICAgICAgICAg
ICAgICBteSAkdXNlSW50ZXJmYWNlID0gJGludGVyZmFjZTsKLQotICAgICAgICAgICAgICAgIGlm
ICgkY2xhc3MtPm5hbWUgZXEgJHVzZUludGVyZmFjZSkgewotICAgICAgICAgICAgICAgICAgICBt
eSBAcGFyZW50cyA9IEB7JGNsYXNzLT5wYXJlbnRzfTsKLSAgICAgICAgICAgICAgICAgICAgbXkg
JHBhcmVudHNNYXggPSBAeyRjbGFzcy0+cGFyZW50c307Ci0KLSAgICAgICAgICAgICAgICAgICAg
JGludGVyZmFjZSA9ICIiOwotCi0gICAgICAgICAgICAgICAgICAgICMgRXhjZXB0aW9uOiBGb3Ig
dGhlIERPTSAnTm9kZScgaXMgb3VyIHRvcG1vc3QgYmFzZWNsYXNzLCBub3QgRXZlbnRUYXJnZXQu
Ci0gICAgICAgICAgICAgICAgICAgIGlmICgoJHBhcmVudHNNYXggPiAwKSBhbmQgKCRwYXJlbnRz
WzBdIG5lICJldmVudHM6OkV2ZW50VGFyZ2V0IikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICRpbnRlcmZhY2UgPSBTdHJpcE1vZHVsZSgkcGFyZW50c1swXSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCEkY2xhc3MtPm5vRFB0ckZsYWcpIHsgIyBJbmNsdWRlICdtb2R1bGUnIC4u
LgotICAgICAgICAgICAgICAgICAgICAgICAgJHRvcEJhc2VDbGFzcyA9ICRkb2N1bWVudC0+bW9k
dWxlIC4gIjo6IiAuICRjbGFzcy0+bmFtZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGRpZSgiQ291bGQgTk9UIGZpbmQgc3BlY2lmaWVkIHBhcmVudCBpbnRlcmZhY2UgXCIkaW50ZXJm
YWNlXCIhXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAkdG9wQmFzZUNsYXNz
OwotfQotCi0jIEhlbHBlciBmb3IgYWxsIElETENvZGVHZW5lcmF0b3IqKioucG0gbW9kdWxlcwot
c3ViIENsYXNzSGFzV3JpdGVhYmxlQXR0cmlidXRlcworc3ViIEZpbmRBbGxQcm9wZXJ0aWVzVXNp
bmdTVkdBbmltYXRlZFR5cGVzCiB7Ci0gICAgIyBEZXRlcm1pbmUgd2hldGVyIGEgZ2l2ZW4gaW50
ZXJmYWNlIGhhcyBhbnkgd3JpdGVhYmxlIGF0dHJpYnV0ZXMuLi4KLSAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZSA9IFN0cmlwTW9kdWxlKHNoaWZ0KTsKLSAgICBteSAk
aGFzV3JpdGVhYmxlQXR0cmlidXRlcyA9IDA7CisgICAgIyBGb3IgdGhlIHBhc3NlZCBpbnRlcmZh
Y2UsIHJlY3Vyc2l2ZWx5IHBhcnNlIGFsbCBJRExzCisgICAgIyBmaW5kIG91dCBhbGwgcHJvcGVy
dGllcyB1c2luZyBvZiBTVkdBbmltYXRlZCogdHlwZXMuCiAKLSAgICAjIFN0ZXAgIzE6IEZpbmQg
dGhlIElETCBmaWxlIGFzc29jaWF0ZWQgd2l0aCAnaW50ZXJmYWNlJwotICAgICRlbmRDb25kaXRp
b24gPSAwOwotICAgICRmb3VuZEZpbGVuYW1lID0gIiI7Ci0KLSAgICBmb3JlYWNoIChAeyR1c2VE
aXJlY3Rvcmllc30pIHsKLSAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiJGludGVyZmFj
ZS5pZGwiLCAkXywgJF8sIDApIGlmICRmb3VuZEZpbGVuYW1lIGVxICIiOwotICAgIH0KLQotICAg
ICMgU3RlcCAjMjogUGFyc2UgdGhlIGZvdW5kIElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KLSAg
ICBteSAkcGFyc2VyID0gSURMUGFyc2VyLT5uZXcoMSk7Ci0gICAgbXkgJGRvY3VtZW50ID0gJHBh
cnNlci0+UGFyc2UoJGZvdW5kRmlsZW5hbWUpOwotCi0gICAgIyBTdGVwICMzOiBDaGVjayB3aGV0
ZXIgdGhlIHBhcnNlZCBJREwgZmlsZSBoYXMgcGFyZW50cwotICAgIGZvcmVhY2ggbXkgJGNsYXNz
IChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKLSAgICAgICAgaWYgKCRjbGFzcy0+bmFtZSBlcSAk
aW50ZXJmYWNlKSB7Ci0gICAgICAgICAgICBmb3JlYWNoIChAeyRjbGFzcy0+YXR0cmlidXRlc30p
IHsKLSAgICAgICAgICAgICAgICAkaGFzV3JpdGVhYmxlQXR0cmlidXRlcyA9IDEgaWYgKCRfLT50
eXBlIG5lICJyZWFkb25seSBhdHRyaWJ1dGUiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIH0KLQotICAgIHJldHVybiAkaGFzV3JpdGVhYmxlQXR0cmlidXRlczsKLX0KLQotIyBIZWxw
ZXIgZm9yIGFsbCBJRExDb2RlR2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKLXN1YiBBbGxDbGFzc2Vz
V2hpY2hJbmhlcml0RnJvbQotewotICAgICMgRGV0ZXJtaW5lIHdoaWNoIGludGVyZmFjZXMgaW5o
ZXJpdCBmcm9tIHRoZSBwYXNzZWQgb25lLi4uCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAg
IG15ICRsb29rdXBUeXBlID0gc2hpZnQ7CiAKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0g
ICAgJGludGVyZmFjZSA9fiBzLyhbYS16QS1aMC05XSo6OikqLy87ICMgU3RyaXAgbmFtZXNwYWNl
KHMpLgotCiAgICAgIyBTdGVwICMxOiBMb29wIHRocm91Z2ggYWxsIGluY2x1ZGVkIGRpcmVjdG9y
aWVzIHRvIHNjYW4gZm9yIGFsbCBJREwgZmlsZXMuLi4KICAgICBteSBAYWxsSURMRmlsZXMgPSAo
KTsKICAgICBmb3JlYWNoIChAeyR1c2VEaXJlY3Rvcmllc30pIHsKQEAgLTI3MywxMjUgKzE4NSw0
MSBAQAogICAgICAgICBAZm91bmRGaWxlbmFtZXMgPSAoKTsKIAogICAgICAgICAkb2JqZWN0LT5T
Y2FuRGlyZWN0b3J5KCJhbGxpZGxzIiwgJF8sICRfLCAxKTsKKwogICAgICAgICBmb3JlYWNoIChA
Zm91bmRGaWxlbmFtZXMpIHsKLSAgICAgICAgICAgIHB1c2goQGFsbElETEZpbGVzLCAkXyk7Cisg
ICAgICAgICAgICBwdXNoKEBhbGxJRExGaWxlcywgJF8pIGlmICgkXyA9fiAvU1ZHLyk7CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICAjIFN0ZXAgIzI6IExvb3AgdGhyb3VnaCBhbGwgZm91bmQgSURM
IGZpbGVzLi4uCi0gICAgbXkgJWNsYXNzRGF0YUNhY2hlOwotICAgIGZvcmVhY2ggKEBhbGxJRExG
aWxlcykgewotICAgICAgICAjIFN0ZXAgIzM6IFBhcnNlIHRoZSBmb3VuZCBJREwgZmlsZSAoaW4g
cXVpZXQgbW9kZSkuCi0gICAgICAgIG15ICRwYXJzZXIgPSBJRExQYXJzZXItPm5ldygxKTsKLSAg
ICAgICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJF8pOwotCi0gICAgICAgICMgU3Rl
cCAjNDogQ2FjaGUgdGhlIHBhcnNlZCBJREwgZGF0YXN0cnVjdHVyZXMuCi0gICAgICAgIG15ICRj
YWNoZUhhbmRsZSA9ICRfOyAkY2FjaGVIYW5kbGUgPX4gcy8uKlwvKC4qKVwuaWRsLy87Ci0gICAg
ICAgICRjbGFzc0RhdGFDYWNoZXskMX0gPSAkZG9jdW1lbnQ7Ci0gICAgfQotCi0gICAgbXkgJWNs
YXNzRGF0YUNhY2hlQ29weSA9ICVjbGFzc0RhdGFDYWNoZTsgIyBQcm90ZWN0IQotCi0gICAgIyBT
dGVwICM1OiBMb29wIHRocm91Z2ggYWxsIGNhY2hlZCBJREwgZG9jdW1lbnRzLi4uCiAgICAgbXkg
QGNsYXNzTGlzdCA9ICgpOwotICAgIHdoaWxlIChteSgkbmFtZSwgJGRvY3VtZW50KSA9IGVhY2gg
JWNsYXNzRGF0YUNhY2hlKSB7Ci0gICAgICAgICRlbmRDb25kaXRpb24gPSAwOwogCi0gICAgICAg
ICMgU3RlcCAjNjogQ2hlY2sgd2hldGVyIHRoZSBwYXJzZWQgSURMIGZpbGUgaGFzIHBhcmVudHMu
Li4KLSAgICAgICAgJG9iamVjdC0+UmVjdXJzaXZlSW5oZXJpdGFuY2VIZWxwZXIoJGRvY3VtZW50
LCAkaW50ZXJmYWNlLCBcQGNsYXNzTGlzdCwgXCVjbGFzc0RhdGFDYWNoZUNvcHkpOwotICAgIH0K
LQotICAgICMgU3RlcCAjNzogUmV0dXJuIGxpc3Qgb2YgYWxsIGNsYXNzZXMgd2hpY2ggaW5oZXJp
dCBmcm9tIG1lIQotICAgIHJldHVybiBcQGNsYXNzTGlzdDsKLX0KLQotIyBIZWxwZXIgZm9yIGFs
bCBJRExDb2RlR2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKLXN1YiBBbGxDbGFzc2VzCi17Ci0gICAg
IyBEZXRlcm1pbmVzIGFsbCBpbnRlcmZhY2VzIHdpdGhpbiBhIHByb2plY3QuLi4KLSAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7Ci0KLSAgICAjIFN0ZXAgIzE6IExvb3AgdGhyb3VnaCBhbGwgaW5jbHVk
ZWQgZGlyZWN0b3JpZXMgdG8gc2NhbiBmb3IgYWxsIElETCBmaWxlcy4uLgotICAgIG15IEBhbGxJ
RExGaWxlcyA9ICgpOwotICAgIGZvcmVhY2ggKEB7JHVzZURpcmVjdG9yaWVzfSkgewotICAgICAg
ICAkZW5kQ29uZGl0aW9uID0gMDsKLSAgICAgICAgQGZvdW5kRmlsZW5hbWVzID0gKCk7Ci0KLSAg
ICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiYWxsaWRscyIsICRfLCAkXywgMSk7Ci0gICAg
ICAgIGZvcmVhY2ggKEBmb3VuZEZpbGVuYW1lcykgewotICAgICAgICAgICAgcHVzaChAYWxsSURM
RmlsZXMsICRfKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgICMgU3RlcCAjMjogTG9vcCB0aHJv
dWdoIGFsbCBmb3VuZCBJREwgZmlsZXMuLi4KLSAgICBteSBAY2xhc3NMaXN0ID0gKCk7CiAgICAg
Zm9yZWFjaCAoQGFsbElETEZpbGVzKSB7CiAgICAgICAgICMgU3RlcCAjMzogUGFyc2UgdGhlIGZv
dW5kIElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KICAgICAgICAgbXkgJHBhcnNlciA9IElETFBh
cnNlci0+bmV3KDEpOwotICAgICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkXyk7
CisgICAgICAgIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNlKCRfLCAiIik7CiAKLSAgICAg
ICAgIyBTdGVwICM0OiBDaGVjayBpZiBjbGFzcyBpcyBhIGJhc2VjbGFzcy4uLgorICAgICAgICAj
IFN0ZXAgIzQ6IENoZWNrIHdoZXRlciB0aGUgcGFyc2VkIElETCBmaWxlIGhhcyBhdHRyaWJ1dGVz
IHVzaW5nIFNWRyBBbmltYXRlZCB0eXBlcy4uLgogICAgICAgICBmb3JlYWNoIG15ICRjbGFzcyAo
QHskZG9jdW1lbnQtPmNsYXNzZXN9KSB7Ci0gICAgICAgICAgICBteSAkaWRlbnRpZmllciA9ICRj
bGFzcy0+bmFtZTsKLSAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkbW9kdWxlTmFtZXNwYWNl
SGFzaHskZG9jdW1lbnQtPm1vZHVsZX07Ci0gICAgICAgICAgICAkaWRlbnRpZmllciA9ICRuYW1l
c3BhY2UgLiAiOjoiIC4gJGlkZW50aWZpZXIgaWYgJG5hbWVzcGFjZSBuZSAiIjsKKyAgICAgICAg
ICAgIGZvcmVhY2ggKEB7JGNsYXNzLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgICAgIG15
ICRhdHRyaWJ1dGVUeXBlID0gJF8tPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAgICBt
eSAkYXR0cmlidXRlTmFtZSA9IHVjZmlyc3QoJF8tPnNpZ25hdHVyZS0+bmFtZSk7CiAKLSAgICAg
ICAgICAgIG15IEBhcnJheSA9IGdyZXAgeyAvXiRpZGVudGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsK
LQotICAgICAgICAgICAgbXkgJGFycmF5U2l6ZSA9IEBhcnJheTsKLSAgICAgICAgICAgIGlmICgk
YXJyYXlTaXplIGVxIDApIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBjbGFzc0xpc3QsICRpZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgICAgICAjIFN0ZXAgIzU6IElmIHdlIGVuY291bnRlciBhbiBh
bmltYXRlZCB0eXBlLCBjb25zdHJ1Y3QgdGhlIHJpZ2h0IFNWR0FuaW1hdGVkVGVtcGxhdGUgbmFt
ZS4uLgorICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlVHlwZSBlcSAkbG9va3VwVHlwZSkg
eworICAgICAgICAgICAgICAgICAgICBteSAkdGVtcGxhdGVOYW1lID0gIlNWR0FuaW1hdGVkVGVt
cGxhdGUiIC4gJGNsYXNzLT5uYW1lIC4gIjoiIC4gJGF0dHJpYnV0ZU5hbWU7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAjIFN0ZXAgIzY6IEFkZCB0byByZXN1bHRp
bmcgbGlzdC4KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY2xhc3NMaXN0LCAkdGVtcGxhdGVO
YW1lKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
Ci0KLSAgICAjIFN0ZXAgIzc6IFJldHVybiBsaXN0IG9mIGFsbCBiYXNlIGNsYXNzZXMhCisgICAg
CisgICAgIyBTdGVwICM3OiBSZXR1cm4gbGlzdCBvZiBTVkdBbmltYXRlZFRlbXBsYXRlIHR5cGVz
IHdoaWNoIG5lZWQgZ2VuZXJhdGlvbiEKICAgICByZXR1cm4gXEBjbGFzc0xpc3Q7CiB9CiAKLSMg
SW50ZXJuYWwgaGVscGVyIGZvciAnQWxsQ2xhc3Nlc1doaWNoSW5oZXJpdEZyb20nCi1zdWIgUmVj
dXJzaXZlSW5oZXJpdGFuY2VIZWxwZXIKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0KLSAg
ICBteSAkZG9jdW1lbnQgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAg
bXkgJGNsYXNzTGlzdCA9IHNoaWZ0OwotICAgIG15ICRjbGFzc0RhdGFDYWNoZSA9IHNoaWZ0Owot
Ci0gICAgcmV0dXJuIDEgaWYgJGVuZENvbmRpdGlvbiBlcSAxOwotCi0gICAgZm9yZWFjaCBteSAk
Y2xhc3MgKEB7JGRvY3VtZW50LT5jbGFzc2VzfSkgewotICAgICAgICBmb3JlYWNoIChAeyRjbGFz
cy0+cGFyZW50c30pIHsKLSAgICAgICAgICAgIG15ICRjYWNoZUhhbmRsZSA9IFN0cmlwTW9kdWxl
KCRfKTsKLQotICAgICAgICAgICAgaWYgKCRjYWNoZUhhbmRsZSBlcSAkaW50ZXJmYWNlKSB7Ci0g
ICAgICAgICAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkZG9jdW1lbnQtPm1vZHVsZSAuICI6OiIg
LiAkY2xhc3MtPm5hbWU7Ci0gICAgICAgICAgICAgICAgbXkgQGFycmF5ID0gZ3JlcCB7IC9eJGlk
ZW50aWZpZXIkLyB9IEAkY2xhc3NMaXN0OyBteSAkYXJyYXlTaXplID0gQGFycmF5OwotICAgICAg
ICAgICAgICAgIHB1c2goQCRjbGFzc0xpc3QsICRpZGVudGlmaWVyKSBpZiAkYXJyYXlTaXplIGVx
IDA7Ci0KLSAgICAgICAgICAgICAgICAkZW5kQ29uZGl0aW9uID0gMTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gJGVuZENvbmRpdGlvbjsKLSAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAg
ICAgICAgIG15ICVjYWNoZSA9ICV7JGNsYXNzRGF0YUNhY2hlfTsKLQotICAgICAgICAgICAgICAg
IG15ICRjaGVja0RvY3VtZW50ID0gJGNhY2hleyRjYWNoZUhhbmRsZX07Ci0gICAgICAgICAgICAg
ICAgJGVuZENvbmRpdGlvbiA9ICRvYmplY3QtPlJlY3Vyc2l2ZUluaGVyaXRhbmNlSGVscGVyKCRj
aGVja0RvY3VtZW50LCAkaW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2xhc3NMaXN0LCAkY2xhc3NE
YXRhQ2FjaGUpOwotICAgICAgICAgICAgICAgIGlmICgkZW5kQ29uZGl0aW9uIGVxIDEpIHsKLSAg
ICAgICAgICAgICAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkZG9jdW1lbnQtPm1vZHVsZSAuICI6
OiIgLiAkY2xhc3MtPm5hbWU7Ci0gICAgICAgICAgICAgICAgICAgIG15IEBhcnJheSA9IGdyZXAg
eyAvXiRpZGVudGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsgbXkgJGFycmF5U2l6ZSA9IEBhcnJheTsK
LSAgICAgICAgICAgICAgICAgICAgcHVzaChAJGNsYXNzTGlzdCwgJGlkZW50aWZpZXIpIGlmICRh
cnJheVNpemUgZXEgMDsKLQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGVuZENvbmRpdGlv
bjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICByZXR1cm4gJGVuZENvbmRpdGlvbjsKLX0KLQogIyBIZWxwZXIgZm9yIGFsbCBDb2RlR2Vu
ZXJhdG9yKioqLnBtIG1vZHVsZXMKIHN1YiBSZW1vdmVFeGNsdWRlZEF0dHJpYnV0ZXNBbmRGdW5j
dGlvbnMKIHsKQEAgLTQzMyw2ICsyNjEsMjEgQEAKICAgICByZXR1cm4gMDsKIH0KIAorc3ViIElz
U1ZHQW5pbWF0ZWRUeXBlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICR0eXBl
ID0gc2hpZnQ7CisKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRTdHJpbmci
IG9yCisgICAgICAgICAgICAgICAgJHR5cGUgZXEgIlNWR0FuaW1hdGVkQm9vbGVhbiIgb3IKKyAg
ICAgICAgICAgICAgICAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiIgb3IKKyAgICAg
ICAgICAgICAgICAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWROdW1iZXIiIG9yCisgICAgICAgICAgICAg
ICAgJHR5cGUgZXEgIlNWR0FuaW1hdGVkSW50ZWdlciIgb3IKKyAgICAgICAgICAgICAgICAkdHlw
ZSBlcSAiU1ZHQW5pbWF0ZWRMZW5ndGgiOworCisgICAgcmV0dXJuIDA7IAorfQorCiAjIEludGVy
bmFsIEhlbHBlcgogc3ViIFNjYW5EaXJlY3RvcnkKIHsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShBcmJlaXRza29waWUpCkBAIC05
MCwxMCArOTAsNiBAQAogCiAgICAgJGNvZGVHZW5lcmF0b3ItPlJlbW92ZUV4Y2x1ZGVkQXR0cmli
dXRlc0FuZEZ1bmN0aW9ucygkZGF0YU5vZGUsICJKUyIpOwogCi0gICAgIyBTdGFydCBhY3R1YWwg
Z2VuZXJhdGlvbi4uCi0gICAgJG9iamVjdC0+R2VuZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsKLSAg
ICAkb2JqZWN0LT5HZW5lcmF0ZUltcGxlbWVudGF0aW9uKCRkYXRhTm9kZSk7Ci0gICAgCiAgICAg
bXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CiAgICAgCiAgICAgIyBPcGVuIGZpbGVzIGZvciB3
cml0aW5nLi4uCkBAIC0xMDIsNiArOTgsNDcgQEAKICAgICAKICAgICBvcGVuKCRJTVBMLCAiPiRp
bXBsRmlsZU5hbWUiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsK
ICAgICBvcGVuKCRIRUFERVIsICI+JGhlYWRlckZpbGVOYW1lIikgfHwgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGhlYWRlckZpbGVOYW1lIjsKKworICAgICMgRXhjZXB0aW9uOiBXZSB3b24ndCBn
ZW5lcmF0ZSBhIEpTU1ZHQW5pbWF0ZWRGb28gY2xhc3MgZm9yIFNWR0FuaW1hdGVkRm9vLmlkbC4K
KyAgICAjIFdlIGNyYXdsIHRocm91Z2ggYWxsIElETHMgYW5kIGZpbmQgb3V0IGV2ZXJ5IHByb3Bl
cnR5IHdoaWNoIHVzZXMgU1ZHQW5pbWF0ZWRGb28sCisgICAgIyBhbmQgaW5zdGVhZCBnZW5lcmF0
ZSBwZXItcHJvcGVydHksIHBlci1jbGFzcyBKU1NWR0FuaW1hdGVkQ2xhc3NOYW1lVHlwZU5hbWUg
Y2xhc3Nlcy4KKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRuYW1l
KSkgeworICAgICAgICBteSAkY2xhc3NMaXN0ID0gJGNvZGVHZW5lcmF0b3ItPkZpbmRBbGxQcm9w
ZXJ0aWVzVXNpbmdTVkdBbmltYXRlZFR5cGVzKCRuYW1lKTsKKyAgICAgICAgZm9yZWFjaChAeyRj
bGFzc0xpc3R9KSB7CisgICAgICAgICAgICBteSAkY2xhc3NOYW1lID0gJF87CisgICAgICAgICAg
ICBteSAkdXNlckNsYXNzID0gJGNsYXNzTmFtZTsKKworICAgICAgICAgICAgIyBFeHRyYWN0IGNs
YXNzTmFtZS91c2VyQ2xhc3MuLi4KKyAgICAgICAgICAgICRjbGFzc05hbWUgPX4gcy86Ly87Cisg
ICAgICAgICAgICAkdXNlckNsYXNzID1+IHMvU1ZHQW5pbWF0ZWRUZW1wbGF0ZS8vOworICAgICAg
ICAgICAgJHVzZXJDbGFzcyA9IHN1YnN0cigkdXNlckNsYXNzLCAwLCBpbmRleCgkdXNlckNsYXNz
LCAiOiIpKTsKKworICAgICAgICAgICAgIyBDaGFuZ2UgZnJvbSBpZS4gU1ZHQW5pbWF0ZWRMZW5n
dGggdG8gU1ZHQW5pbWF0ZWRMZW5ndGhTVkdDbGFzc1Byb3BlcnR5TmFtZS4uLgorICAgICAgICAg
ICAgJGRhdGFOb2RlLT5uYW1lKCRjbGFzc05hbWUpOworCisgICAgICAgICAgICAjIFN0YXJ0IGFj
dHVhbCBnZW5lcmF0aW9uLi4uCisgICAgICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhlYWRlcigk
ZGF0YU5vZGUpOworICAgICAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVJbXBsZW1lbnRhdGlvbigk
ZGF0YU5vZGUsICJKUyRuYW1lIiwgJHVzZXJDbGFzcyk7CisgICAgICAgCisgICAgICAgICAgICAj
IFdyaXRlIHRvIGRpc2suLi4gICAgCisgICAgICAgICAgICAkb2JqZWN0LT5Xcml0ZURhdGEoKTsK
KyAgICAgICAgCisgICAgICAgICAgICAjIFJlb3BlbiBmaWxlcyBmb3Igd3JpdGluZyAtIGluIGFw
cGVuZCBtb2RlLi4uCisgICAgICAgICAgICBvcGVuKCRJTVBMLCAiPj4kaW1wbEZpbGVOYW1lIikg
fHwgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7CisgICAgICAgICAgICBv
cGVuKCRIRUFERVIsICI+PiRoZWFkZXJGaWxlTmFtZSIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBm
aWxlICRoZWFkZXJGaWxlTmFtZSI7CisgICAgICAgIH0KKworICAgICAgICAjIENsb3NlIGZpbGUg
aGFuZGxlcyBub3csIHRvIHByZXZlbnQgdGhlIG5leHQgV3JpdGVEYXRhKCkgY2FsbCB0byB3cml0
ZSBhbnl0aGluZy4uLgorICAgICAgICBjbG9zZSgkSU1QTCk7CisgICAgICAgIHVuZGVmKCRJTVBM
KTsKKworICAgICAgICBjbG9zZSgkSEVBREVSKTsKKyAgICAgICAgdW5kZWYoJEhFQURFUik7ICAg
ICAKKyAgICB9IGVsc2UgeworICAgICAgICAjIFN0YXJ0IGFjdHVhbCBnZW5lcmF0aW9uLi4uCisg
ICAgICAgICRvYmplY3QtPkdlbmVyYXRlSGVhZGVyKCRkYXRhTm9kZSk7CisgICAgICAgICRvYmpl
Y3QtPkdlbmVyYXRlSW1wbGVtZW50YXRpb24oJGRhdGFOb2RlKTsKKyAgICB9CiB9CiAKICMgUGFy
YW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdApAQCAtNDM5LDYgKzQ3NiwxMCBAQAogewogICBteSAk
b2JqZWN0ID0gc2hpZnQ7CiAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICMgVGhlc2UgcGFy
YW1zIGFyZSBvbmx5IHVzZWQgaW4gU1ZHQW5pbWF0ZWQqIGdlbmVyYXRpb24hCisgIG15ICRyZWFs
RGF0YU5vZGVOYW1lID0gc2hpZnQ7CisgIG15ICR1c2VyQ2xhc3MgPSBzaGlmdDsKICAgCiAgIG15
ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwogICBteSAkY2xhc3NOYW1lID0gIkpT
JGludGVyZmFjZU5hbWUiOwpAQCAtNDU2LDkgKzQ5NywxNSBAQAogICBwdXNoKEBpbXBsQ29udGVu
dEhlYWRlciwsICIjaW5jbHVkZSBcImNvbmZpZy5oXCJcblxuIik7CiAgIAogICBwdXNoKEBpbXBs
Q29udGVudEhlYWRlciwgIiNpZmRlZiAke2NvbmRpdGlvbmFsfV9TVVBQT1JUXG5cbiIpIGlmICRj
b25kaXRpb25hbDsKLSAgCi0gIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCIk
Y2xhc3NOYW1lLmhcIlxuXG4iKTsKIAorICBpZiAoJGNsYXNzTmFtZSA9fiAvU1ZHQW5pbWF0ZWRU
ZW1wbGF0ZS8pIHsKKyAgICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCJT
VkdBbmltYXRlZFRlbXBsYXRlLmhcIlxuIik7CisgICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRl
ciwgIiNpbmNsdWRlIFwiJHVzZXJDbGFzcy5oXCJcbiIpOworICAgICAgcHVzaChAaW1wbENvbnRl
bnRIZWFkZXIsICIjaW5jbHVkZSBcIiRyZWFsRGF0YU5vZGVOYW1lLmhcIlxuXG4iKTsKKyAgfSBl
bHNlIHsKKyAgICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCIkY2xhc3NO
YW1lLmhcIlxuXG4iKTsKKyAgfQorIAogICBBZGRJbmNsdWRlc0ZvclR5cGUoJGludGVyZmFjZU5h
bWUpOwogCiAgIEBpbXBsQ29udGVudCA9ICgpOwpAQCAtMTEwNSwyMiArMTE1Miw2IEBACiAgICAg
CiAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+
dHlwZSk7CiAKLSAgICAjIEZJWE1FOiBUZW1wb3JhcnkgaGFjayB1bnRpbCB3ZSBpbXBsZW1lbnQg
dGhlIEpTU1ZHQW5pbWF0ZWQqIHN0dWZmLgotCi0gICAgaWYoJHR5cGUgZXEgIlNWR0FuaW1hdGVk
U3RyaW5nIikgewotICAgICAgICAkdHlwZSA9ICJET01TdHJpbmciOwotICAgIH0gZWxzaWYoJHR5
cGUgZXEgIlNWR0FuaW1hdGVkQm9vbGVhbiIpIHsKLSAgICAgICAgJHR5cGUgPSAiYm9vbGVhbiI7
Ci0gICAgfSBlbHNpZigkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiIpIHsKLSAgICAg
ICAgJHR5cGUgPSAibG9uZyI7Ci0gICAgfSBlbHNpZigkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRJbnRl
Z2VyIikgewotICAgICAgICAkdHlwZSA9ICJsb25nIjsKLSAgICB9IGVsc2lmKCR0eXBlIGVxICJT
VkdBbmltYXRlZE51bWJlciIpIHsKLSAgICAgICAgJHR5cGUgPSAiZG91YmxlIjsKLSAgICB9IGVs
c2lmKCR0eXBlIGVxICJTVkdBbmltYXRlZExlbmd0aCIpIHsKLSAgICAgICAgJHR5cGUgPSAiU1ZH
TGVuZ3RoIjsKLSAgICB9Ci0KICAgICBpZiAoJHR5cGUgZXEgImJvb2xlYW4iKSB7CiAgICAgICAg
IHJldHVybiAianNCb29sZWFuKCR2YWx1ZSkiOwogICAgIH0gZWxzaWYgKCR0eXBlIGVxICJsb25n
IiBvcgpAQCAtMTIyNSw2ICsxMjU2LDEzIEBACiAgICAgICAgICRqb2luZWROYW1lID1+IHMvQWJz
fFJlbC8vOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyIkam9pbmVkTmFtZS5oIn0gPSAxOwogICAg
ICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7CisgICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICAkaW1wbEluY2x1ZGVz
eyJKUyR0eXBlLmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7
CisgICAgICAgICR0ZW1wVmFsdWUgPSAkdmFsdWU7CisgICAgICAgICR0ZW1wVmFsdWUgPX4gcy9c
KFwpLy87CisgICAgICAgICR0ZW1wVmFsdWUgLj0gIkFuaW1hdGVkKCkiOworICAgICAgICByZXR1
cm4gInRvSlMoZXhlYywgJHRlbXBWYWx1ZSkiOwogICAgIH0KIAogICAgICMgRGVmYXVsdCwgaW5j
bHVkZSBoZWFkZXIgd2l0aCBzYW1lIG5hbWUuCkBAIC0xNDA2LDcgKzE0NDQsNyBAQAogICAgICAg
ICBwcmludCAkSU1QTCBAaW1wbENvbnRlbnRIZWFkZXI7CiAgICAgICAgIAogICAgICAgICBmb3Jl
YWNoIG15ICRpbXBsSW5jbHVkZSAoc29ydCBrZXlzKCVpbXBsSW5jbHVkZXMpKSB7Ci0gICAgICAg
ICAgICBwcmludCAkSU1QTCAiI2luY2x1ZGUgXCIkaW1wbEluY2x1ZGVcIlxuIjsKKyAgICAgICAg
ICAgIHByaW50ICRJTVBMICIjaW5jbHVkZSBcIiRpbXBsSW5jbHVkZVwiXG4iIHVubGVzcygkaW1w
bEluY2x1ZGUgPX4gL15TVkdBbmltYXRlZC8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBwcmludCAkSU1QTCBAaW1wbENvbnRlbnQ7Cg==
</data>
<flag name="review"
          id="3363"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10464</attachid>
            <date>2006-09-08 09:58:13 -0700</date>
            <delta_ts>2006-09-10 16:15:35 -0700</delta_ts>
            <desc>Remove all SVGAnimated*.cpp / .h files</desc>
            <filename>svg-animated-cleanup.diff</filename>
            <type>text/plain</type>
            <size>52725</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjI2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMDYtMDktMDggIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBwYXJ0cyBvZjogaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc1MAorCisgICAgICAgIEdlbmVyYXRlIHBlci1wcm9wZXJ0eSwgcGVyLWNs
YXNzIFNWR0FuaW1hdGVkVHlwZSBzdWJjbGFzc2VzCisgICAgICAgIGZvciBlYWNoIG9mIHRoZSBT
VkdBbmltYXRlZCogcHJvcGVydGllcyB3aGljaCB3ZSBzdXBwb3J0LgorCisgICAgICAgIFJlbW92
ZSB1bm5lZWRlZCBsZWdhY3kgU1ZHQW5pbWF0ZWQqIGNvZGUuCisKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRCb29sZWFuLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRC
b29sZWFuLmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQ29sb3Iu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZENvbG9yLmg6IFJl
bW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHA6IFJlbW92
ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmg6IFJlbW92ZWQuCisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oOiBSZW1vdmVkLgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkTnVtYmVyTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkTnVtYmVyTGlzdC5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRSZWN0Lmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkU3RyaW5nLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRTdHJpbmcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0Lmg6IFJlbW92ZWQuCisKIDIwMDYtMDktMDcgIFNhbSBXZWluaWcgIDxz
YW0ud2VpbmlnQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBhbmQgVGlt
IEguCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaAkoUmV2
aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3Qu
aAkoQXJiZWl0c2tvcGllKQpAQCAtMSw0OCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVk
TnVtYmVyTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkTnVtYmVyTGlzdEltcGxf
SAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFRlbXBsYXRlLmgi
Ci0jaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAg
IGNsYXNzIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRl
PFNWR051bWJlckxpc3Q+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0
dWFsIH5TVkdBbmltYXRlZE51bWJlckxpc3QoKTsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAg
dmlydHVhbCBTVkdOdW1iZXJMaXN0ICpjcmVhdGUoKSBjb25zdDsKLSAgICAgICAgLy92aXJ0dWFs
IHZvaWQgYXNzaWduKFNWR051bWJlckxpc3QgKnNyYywgU1ZHTnVtYmVyTGlzdCAqZHN0KSBjb25z
dDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQ
UE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oCShBcmJlaXRza29waWUpCkBAIC0xLDU3
ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
Ci0qLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGxfSAotI2RlZmlu
ZSBLU1ZHX1NWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAot
Ci0jaW5jbHVkZSAiU2hhcmVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlCi17Ci0gICAgY2xhc3Mg
U1ZHU3R5bGVkRWxlbWVudDsKLQotICAgIGNsYXNzIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gOiBw
dWJsaWMgU2hhcmVkPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+Ci0gICAgewotICAgIHB1YmxpYzoK
LSAgICAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpj
b250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbigpOwotCi0g
ICAgICAgIHVuc2lnbmVkIHNob3J0IGJhc2VWYWwoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRC
YXNlVmFsKHVuc2lnbmVkIHNob3J0IGJhc2VWYWwpOwotCi0gICAgICAgIHVuc2lnbmVkIHNob3J0
IGFuaW1WYWwoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRBbmltVmFsKHVuc2lnbmVkIHNob3J0
IGFuaW1WYWwpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9iYXNl
VmFsOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCBtX2FuaW1WYWw7Ci0KLSAgICAgICAgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCAqbV9jb250ZXh0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9l
dApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCShSZXZpc2lv
biAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKEFy
YmVpdHNrb3BpZSkKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAg
ICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUg
aXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24s
IE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBT
VkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdB
bmltYXRlZEludGVnZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1h
dGVkSW50ZWdlcjo6U1ZHQW5pbWF0ZWRJbnRlZ2VyKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNv
bnRleHQpIDogU2hhcmVkPFNWR0FuaW1hdGVkSW50ZWdlcj4oKQotewotICAgIG1fYmFzZVZhbCA9
IDA7Ci0gICAgbV9hbmltVmFsID0gMDsKLQotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7Ci19Ci0K
LVNWR0FuaW1hdGVkSW50ZWdlcjo6flNWR0FuaW1hdGVkSW50ZWdlcigpCi17Ci19Ci0KLWxvbmcg
U1ZHQW5pbWF0ZWRJbnRlZ2VyOjpiYXNlVmFsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9iYXNl
VmFsOwotfQotCi12b2lkIFNWR0FuaW1hdGVkSW50ZWdlcjo6c2V0QmFzZVZhbChsb25nIGJhc2VW
YWwpCi17Ci0gICAgbV9iYXNlVmFsID0gYmFzZVZhbDsKLSAgICAKLSAgICAvLyBTcGVjOiBJZiB0
aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHByb3BlcnR5IGlzIG5vdCBjdXJyZW50bHkKLSAgICAvLyAg
ICAgICAgIGJlaW5nIGFuaW1hdGVkLCBjb250YWlucyB0aGUgc2FtZSB2YWx1ZSBhcyAnYmFzZVZh
bCcKLSAgICBtX2FuaW1WYWwgPSBiYXNlVmFsOwotCi0gICAgaWYobV9jb250ZXh0KQotICAgICAg
ICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi1sb25nIFNWR0FuaW1h
dGVkSW50ZWdlcjo6YW5pbVZhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYW5pbVZhbDsKLX0K
LQotdm9pZCBTVkdBbmltYXRlZEludGVnZXI6OnNldEFuaW1WYWwobG9uZyBhbmltVmFsKQotewot
ICAgIG1fYW5pbVZhbCA9IGFuaW1WYWw7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1f
Y29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQK
LSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZEFuZ2xlLmNwcAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1MyArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRBbmdsZTo6U1ZHQW5p
bWF0ZWRBbmdsZShjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQotOiBTVkdBbmltYXRl
ZFRlbXBsYXRlPFNWR0FuZ2xlPihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRlZEFuZ2xlOjp+
U1ZHQW5pbWF0ZWRBbmdsZSgpCi17Ci19Ci0KLVNWR0FuZ2xlICpTVkdBbmltYXRlZEFuZ2xlOjpj
cmVhdGUoKSBjb25zdAotewotICAgIHJldHVybiBuZXcgU1ZHQW5nbGUobV9jb250ZXh0KTsKLX0K
LQotdm9pZCBTVkdBbmltYXRlZEFuZ2xlOjphc3NpZ24oU1ZHQW5nbGUgKnNyYywgU1ZHQW5nbGUg
KmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8ICFkc3QpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGRzdC0+c2V0VmFsdWVBc1N0cmluZyhzcmMtPnZhbHVlQXNTdHJpbmcoKSk7Ci19Ci0KLS8v
IHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NyArMCwwIEBA
Ci0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdp
bGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1
aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAot
Ci0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQot
I2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkTnVtYmVySW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5p
bWF0ZWROdW1iZXJJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSAiU2hhcmVk
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsK
LQotICAgIGNsYXNzIFNWR0FuaW1hdGVkTnVtYmVyIDogcHVibGljIFNoYXJlZDxTVkdBbmltYXRl
ZE51bWJlcj4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZE51bWJlcihj
b25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5p
bWF0ZWROdW1iZXIoKTsKLQotICAgICAgICBmbG9hdCBiYXNlVmFsKCkgY29uc3Q7Ci0gICAgICAg
IHZvaWQgc2V0QmFzZVZhbChmbG9hdCBiYXNlVmFsKTsKLQotICAgICAgICBmbG9hdCBhbmltVmFs
KCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QW5pbVZhbChmbG9hdCBhbmltVmFsKTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIGZsb2F0IG1fYmFzZVZhbDsKLSAgICAgICAgZmxvYXQgbV9hbmlt
VmFsOwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLSAgICB9
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2Vu
ZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCShBcmJlaXRza29waWUpCkBAIC0x
LDU0ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmlt
bWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtE
RSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3Q6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpj
b250ZXh0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHVHJhbnNmb3JtTGlzdD4oY29udGV4dCkK
LXsKLX0KLQotU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Ojp+U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0KCkKLXsKLX0KLQotU1ZHVHJhbnNmb3JtTGlzdCAqU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
OjpjcmVhdGUoKSBjb25zdAotewotICAgIHJldHVybiBuZXcgU1ZHVHJhbnNmb3JtTGlzdChtX2Nv
bnRleHQpOwotfQotCi0vL3ZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Ojphc3NpZ24oU1ZH
VHJhbnNmb3JtTGlzdCAqc3JjLCBTVkdUcmFuc2Zvcm1MaXN0ICpkc3QpIGNvbnN0Ci0vL3sKLS8v
ICAgIGlmKCFzcmMgfHwgIWRzdCkKLS8vICAgICAgICByZXR1cm47Ci0vLyAgICAKLS8vICAgIC8v
IFVzZSBTVkdMaXN0PFNWR1RyYW5zZm9ybT46Om9wZXJhdG9yPQotLy8gICAgKmRzdCA9ICpzcmM7
Ci0vL30KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkoUmV2aXNpb24g
MTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCShB
cmJlaXRza29waWUpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAg
ICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9u
LCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYg
U1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdMZW5ndGhMaXN0LmgiCi0jaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmlt
YXRlZExlbmd0aExpc3Q6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICpjb250ZXh0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHTGVuZ3RoTGlzdD4oY29udGV4
dCkKLXsKLX0KLQotU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Ojp+U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
KCkKLXsKLX0KLQotU1ZHTGVuZ3RoTGlzdCAqU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0OjpjcmVhdGUo
KSBjb25zdAotewotICAgIHJldHVybiBuZXcgU1ZHTGVuZ3RoTGlzdChtX2NvbnRleHQpOwotfQot
Ci0vL3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Ojphc3NpZ24oU1ZHTGVuZ3RoTGlzdCAqc3Jj
LCBTVkdMZW5ndGhMaXN0ICpkc3QpIGNvbnN0Ci0vL3sKLS8vICAgIGlmKCFzcmMgfHwgIWRzdCkK
LS8vICAgICAgICByZXR1cm47Ci0vLwotLy8gICAgLy8gVXNlIFNWR0xpc3Q8U1ZHTGVuZ3RoPjo6
b3BlcmF0b3I9Ci0vLyAgICAqZHN0ID0gKnNyYzsKLS8vfQotCi0vLyB2aW06dHM9NDpub2V0Ci0j
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWROdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyLmNwcAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZE51bWJlci5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5v
cmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRl
IDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQu
aCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotU1ZHQW5pbWF0ZWROdW1iZXI6OlNWR0FuaW1hdGVkTnVtYmVyKGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU2hhcmVkPFNWR0FuaW1hdGVkTnVtYmVyPigpCi17Ci0g
ICAgbV9iYXNlVmFsID0gMDsKLSAgICBtX2FuaW1WYWwgPSAwOwotCi0gICAgbV9jb250ZXh0ID0g
Y29udGV4dDsKLX0KLQotU1ZHQW5pbWF0ZWROdW1iZXI6On5TVkdBbmltYXRlZE51bWJlcigpCi17
Ci19Ci0KLWZsb2F0IFNWR0FuaW1hdGVkTnVtYmVyOjpiYXNlVmFsKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9iYXNlVmFsOwotfQotCi12b2lkIFNWR0FuaW1hdGVkTnVtYmVyOjpzZXRCYXNlVmFs
KGZsb2F0IGJhc2VWYWwpCi17Ci0gICAgbV9iYXNlVmFsID0gYmFzZVZhbDsKLSAgICAKLSAgICAv
LyBTcGVjOiBJZiB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHByb3BlcnR5IGlzIG5vdCBjdXJyZW50
bHkKLSAgICAvLyAgICAgICAgIGJlaW5nIGFuaW1hdGVkLCBjb250YWlucyB0aGUgc2FtZSB2YWx1
ZSBhcyAnYmFzZVZhbCcKLSAgICBtX2FuaW1WYWwgPSBiYXNlVmFsOwotCi0gICAgaWYobV9jb250
ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi1m
bG9hdCBTVkdBbmltYXRlZE51bWJlcjo6YW5pbVZhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
YW5pbVZhbDsKLX0KLQotdm9pZCBTVkdBbmltYXRlZE51bWJlcjo6c2V0QW5pbVZhbChmbG9hdCBh
bmltVmFsKQotewotICAgIG1fYW5pbVZhbCA9IGFuaW1WYWw7Ci0KLSAgICBpZihtX2NvbnRleHQp
Ci0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLS8vIHZp
bTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5jcHAJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NSArMCwwIEBACi0v
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRSZWN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFJlY3Q6
OlNWR0FuaW1hdGVkUmVjdChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNWR0Fu
aW1hdGVkVGVtcGxhdGU8U1ZHUmVjdD4oY29udGV4dCkKLXsKLX0KLQotU1ZHQW5pbWF0ZWRSZWN0
Ojp+U1ZHQW5pbWF0ZWRSZWN0KCkKLXsKLX0KLQotU1ZHUmVjdCAqU1ZHQW5pbWF0ZWRSZWN0Ojpj
cmVhdGUoKSBjb25zdAotewotICAgIHJldHVybiBuZXcgU1ZHUmVjdChtX2NvbnRleHQpOwotfQot
Ci12b2lkIFNWR0FuaW1hdGVkUmVjdDo6YXNzaWduKFNWR1JlY3QgKnNyYywgU1ZHUmVjdCAqZHN0
KSBjb25zdAotewotICAgIGlmKCFzcmMgfHwgIWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAot
ICAgIGRzdC0+c2V0WChzcmMtPngoKSk7Ci0gICAgZHN0LT5zZXRZKHNyYy0+eSgpKTsKLSAgICBk
c3QtPnNldFdpZHRoKHNyYy0+d2lkdGgoKSk7Ci0gICAgZHN0LT5zZXRIZWlnaHQoc3JjLT5oZWln
aHQoKSk7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaAkoUmV2
aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw0NyArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
Ci0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFRl
bXBsYXRlLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QgOiBwdWJsaWMgU1ZH
QW5pbWF0ZWRUZW1wbGF0ZTxTVkdUcmFuc2Zvcm1MaXN0PiB7Ci0gICAgcHVibGljOgotICAgICAg
ICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4
dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCgpOwotCi0gICAg
cHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFNWR1RyYW5zZm9ybUxpc3QgKmNyZWF0ZSgpIGNv
bnN0OwotICAgICAgICAvL3ZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHVHJhbnNmb3JtTGlzdCAqc3Jj
LCBTVkdUcmFuc2Zvcm1MaXN0ICpkc3QpIGNvbnN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYgLy8gS1NWR19TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RJbXBsX0gKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNDcgKzAsMCBA
QAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3
aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
LQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ
bGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0K
LSNpZm5kZWYgS1NWR19TVkdBbmltYXRlZEFuZ2xlSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5p
bWF0ZWRBbmdsZUltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTVkdBbmds
ZS5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRBbmdsZSA6IHB1YmxpYyBTVkdBbmltYXRlZFRl
bXBsYXRlPFNWR0FuZ2xlPiB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZEFuZ2xl
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdB
bmltYXRlZEFuZ2xlKCk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHQW5n
bGUgKmNyZWF0ZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgYXNzaWduKFNWR0FuZ2xl
ICpzcmMsIFNWR0FuZ2xlICpkc3QpIGNvbnN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYgLy8gS1NWR19TVkdBbmltYXRl
ZEFuZ2xlSW1wbF9ICi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCShSZXZpc2lvbiAxNjI2
OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
CShBcmJlaXRza29waWUpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAg
ICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNoYXJl
ZC5oIgotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotI2luY2x1ZGUgIlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUZW1wbGF0
ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250
ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7
Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbyAqc3JjLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICpkc3QpIGNvbnN0Owot
ICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JU
Ci0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkTGVuZ3RoLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5v
cmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRl
IDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpZm5kZWYgS1NW
R19TVkdBbmltYXRlZExlbmd0aEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkTGVuZ3Ro
SW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAg
ICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNW
R0xlbmd0aD4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZExlbmd0aChj
b25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUgPSBMTV9VTktO
T1dOLCBjb25zdCBTVkdFbGVtZW50ICp2aWV3cG9ydCA9IDApOwotICAgICAgICB2aXJ0dWFsIH5T
VkdBbmltYXRlZExlbmd0aCgpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFNW
R0xlbmd0aCAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZH
TGVuZ3RoICpzcmMsIFNWR0xlbmd0aCAqZHN0KSBjb25zdDsKLQotICAgIHByaXZhdGU6Ci0gICAg
ICAgIExlbmd0aE1vZGUgbV9tb2RlOwotICAgICAgICBjb25zdCBTVkdFbGVtZW50ICptX3ZpZXdw
b3J0RWxlbWVudDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5oCShBcmJlaXRza29waWUpCkBAIC0xLDU3ICsw
LDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFu
biA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0q
LwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRJbnRlZ2VySW1wbF9ICi0jZGVmaW5lIEtTVkdf
U1ZHQW5pbWF0ZWRJbnRlZ2VySW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUg
IlNoYXJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFNWR1N0eWxlZEVs
ZW1lbnQ7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZEludGVnZXIgOiBwdWJsaWMgU2hhcmVkPFNW
R0FuaW1hdGVkSW50ZWdlcj4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRl
ZEludGVnZXIoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1
YWwgflNWR0FuaW1hdGVkSW50ZWdlcigpOwotCi0gICAgICAgIGxvbmcgYmFzZVZhbCgpIGNvbnN0
OwotICAgICAgICB2b2lkIHNldEJhc2VWYWwobG9uZyBiYXNlVmFsKTsKLQotICAgICAgICBsb25n
IGFuaW1WYWwoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRBbmltVmFsKGxvbmcgYW5pbVZhbCk7
Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBsb25nIG1fYmFzZVZhbDsKLSAgICAgICAgbG9uZyBt
X2FuaW1WYWw7Ci0KLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqbV9jb250ZXh0Owot
ICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JU
Ci0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nLmNwcAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRlZFN0cmluZy5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTQgKzAsMCBAQAotLyoK
LSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94
QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAt
IFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
U3RyaW5nLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFN0cmlu
Zzo6U1ZHQW5pbWF0ZWRTdHJpbmcoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBT
VkdBbmltYXRlZFRlbXBsYXRlPFN0cmluZ0ltcGw+KGNvbnRleHQpCi17Ci19Ci0KLVNWR0FuaW1h
dGVkU3RyaW5nOjp+U1ZHQW5pbWF0ZWRTdHJpbmcoKQotewotfQotCi1TdHJpbmdJbXBsICpTVkdB
bmltYXRlZFN0cmluZzo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICAvLyBUT0RPOiBEbyB3ZSBuZWVk
IG5vdGlmaWNhdGlvbnMgb24gc3RyaW5nIG1hbmlwdWxhdGlvbnM/IGllLiBhcHBlbmREYXRhKCk/
Ci0gICAgcmV0dXJuIG5ldyBTdHJpbmdJbXBsKCIiKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFN0
cmluZzo6YXNzaWduKFN0cmluZ0ltcGwgKnNyYywgU3RyaW5nSW1wbCAqZHN0KSBjb25zdAotewot
ICAgIGlmKCFzcmMgfHwgIWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGRzdC0+dHJ1
bmNhdGUoMCk7Ci0gICAgZHN0LT5pbnNlcnQoc3JjLT5jb3B5KCksIDApOwotfQotCi0vLyB2aW06
dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNDgg
KzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJt
YW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHBy
b2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl
bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4K
LSovCi0KLSNpZm5kZWYgS1NWR19TVkdBbmltYXRlZExlbmd0aExpc3RJbXBsX0gKLSNkZWZpbmUg
S1NWR19TVkdBbmltYXRlZExlbmd0aExpc3RJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0j
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aExpc3Qu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aExp
c3QgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdMZW5ndGhMaXN0PgotICAgIHsKLSAg
ICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdChjb25zdCBTVkdTdHlsZWRF
bGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
KCk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHTGVuZ3RoTGlzdCAqY3Jl
YXRlKCkgY29uc3Q7Ci0gICAgICAgIC8vdmlydHVhbCB2b2lkIGFzc2lnbihTVkdMZW5ndGhMaXN0
ICpzcmMsIFNWR0xlbmd0aExpc3QgKmRzdCkgY29uc3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZgotCi0vLyB2aW06dHM9
NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuaAkoUmV2aXNpb24gMTYy
NjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuaAkoQXJiZWl0c2tvcGll
KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkUmVjdEltcGxfSAotI2Rl
ZmluZSBLU1ZHX1NWR0FuaW1hdGVkUmVjdEltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNp
bmNsdWRlICJTVkdSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFNWR0FuaW1hdGVkUmVjdCA6IHB1YmxpYyBT
VkdBbmltYXRlZFRlbXBsYXRlPFNWR1JlY3Q+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAg
U1ZHQW5pbWF0ZWRSZWN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAg
ICB2aXJ0dWFsIH5TVkdBbmltYXRlZFJlY3QoKTsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAg
dmlydHVhbCBTVkdSZWN0ICpjcmVhdGUoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGFz
c2lnbihTVkdSZWN0ICpzcmMsIFNWR1JlY3QgKmRzdCkgY29uc3Q7Ci0gICAgfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZgotCi0vLyB2
aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
CShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3Ro
LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
Ci0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkTGVuZ3RoOjpTVkdBbmltYXRlZExl
bmd0aChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUsIGNv
bnN0IFNWR0VsZW1lbnQgKnZpZXdwb3J0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHTGVuZ3Ro
Pihjb250ZXh0KQotewotICAgIG1fbW9kZSA9IG1vZGU7Ci0gICAgbV92aWV3cG9ydEVsZW1lbnQg
PSB2aWV3cG9ydDsKLX0KLQotU1ZHQW5pbWF0ZWRMZW5ndGg6On5TVkdBbmltYXRlZExlbmd0aCgp
Ci17Ci19Ci0KLVNWR0xlbmd0aCAqU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG5ldyBTVkdMZW5ndGgobV9jb250ZXh0LCBtX21vZGUsIG1fdmlld3BvcnRF
bGVtZW50KTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZExlbmd0aDo6YXNzaWduKFNWR0xlbmd0aCAq
c3JjLCBTVkdMZW5ndGggKmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8ICFkc3QpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBkc3QtPnNldFZhbHVlQXNTdHJpbmcoc3JjLT52YWx1ZUFz
U3RyaW5nKCkpOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQK
LQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCShS
ZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlz
dC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAg
ICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAg
ICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR051bWJlckxpc3QuaCIKLSNpbmNsdWRl
ICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0K
LVNWR0FuaW1hdGVkTnVtYmVyTGlzdDo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0KGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdOdW1iZXJMaXN0
Pihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRlZE51bWJlckxpc3Q6On5TVkdBbmltYXRlZE51
bWJlckxpc3QoKQotewotfQotCi1TVkdOdW1iZXJMaXN0ICpTVkdBbmltYXRlZE51bWJlckxpc3Q6
OmNyZWF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBTVkdOdW1iZXJMaXN0KG1fY29udGV4
dCk7Ci19Ci0KLS8vdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3Q6OmFzc2lnbihTVkdOdW1iZXJM
aXN0ICpzcmMsIFNWR051bWJlckxpc3QgKmRzdCkgY29uc3QKLS8vewotLy8gICAgaWYoIXNyYyB8
fCAhZHN0KQotLy8gICAgICAgIHJldHVybjsKLS8vCi0vLyAgICAvLyBVc2UgU1ZHTGlzdDxTVkdO
dW1iZXI+OjpvcGVyYXRvcj0KLS8vICAgICpkc3QgPSAqc3JjOwotLy99Ci0KLS8vIHZpbTp0cz00
Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRlZFN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nLmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRTdHJpbmcuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw0NiArMCwwIEBACi0vKgotICAg
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2Rl
Lm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp
dGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBL
U1ZHX1NWR0FuaW1hdGVkU3RyaW5nSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRTdHJp
bmdJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1w
bGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZFN0
cmluZyA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFN0cmluZ0ltcGw+IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkU3RyaW5nKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNv
bnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFN0cmluZygpOwotCi0gICAgcHJv
dGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFN0cmluZ0ltcGwgKmNyZWF0ZSgpIGNvbnN0OwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgYXNzaWduKFN0cmluZ0ltcGwgKnNyYywgU3RyaW5nSW1wbCAqZHN0
KSBjb25zdDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBT
VkdfU1VQUE9SVAotI2VuZGlmIC8vIEtTVkdfU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsX0gKLQotLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJKEFyYmVpdHNrb3Bp
ZSkKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTEx
LTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4
dCkgOiBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+KGNvbnRleHQp
Ci17Ci19Ci0KLVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzo6flNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbygpCi17Ci19Ci0KLVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gKlNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8obV9jb250ZXh0KTsKLX0KLQotdm9pZCBTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OmFzc2lnbihTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICpz
cmMsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gKmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8
ICFkc3QpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBkc3QtPnNldEFsaWduKHNyYy0+YWxp
Z24oKSk7Ci0gICAgZHN0LT5zZXRNZWV0T3JTbGljZShzcmMtPm1lZXRPclNsaWNlKCkpOwotfQot
Ci0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNDkg
KzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJt
YW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA1IE9saXZlciBIdW50IDxv
amgxNkBzdHVkZW50LmNhbnRlcmJ1cnkuYWMubno+Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lm
ZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRDb2xvci5oIgotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRDb2xvcjo6U1ZHQW5pbWF0ZWRDb2xvcihj
b25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQotOiBTVkdBbmltYXRlZFRlbXBsYXRlPFNW
R0NvbG9yPihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRlZENvbG9yOjp+U1ZHQW5pbWF0ZWRD
b2xvcigpCi17Ci19Ci0KLVNWR0NvbG9yICpTVkdBbmltYXRlZENvbG9yOjpjcmVhdGUoKSBjb25z
dAotewotICAgIHJldHVybiBuZXcgU1ZHQ29sb3IoKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZENv
bG9yOjphc3NpZ24oU1ZHQ29sb3IgKnNyYywgU1ZHQ29sb3IgKmRzdCkgY29uc3QKLXsKLSAgICBp
ZiAoIXNyYyB8fCAhZHN0KQotICAgICAgICByZXR1cm47Ci0gICAgZHN0LT5zZXRDc3NUZXh0KHNy
Yy0+Y3NzVGV4dCgpKTsKLX0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKFJldmlzaW9uIDE2MjY4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkoQXJiZWl0c2tvcGllKQpAQCAt
MSw3NCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5j
bHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRCb29sZWFuOjpTVkdB
bmltYXRlZEJvb2xlYW4oY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTaGFyZWQ8
U1ZHQW5pbWF0ZWRCb29sZWFuPigpCi17Ci0gICAgbV9iYXNlVmFsID0gZmFsc2U7Ci0gICAgbV9h
bmltVmFsID0gZmFsc2U7Ci0KLSAgICBtX2NvbnRleHQgPSBjb250ZXh0OwotfQotCi1TVkdBbmlt
YXRlZEJvb2xlYW46On5TVkdBbmltYXRlZEJvb2xlYW4oKQotewotfQotCi1ib29sIFNWR0FuaW1h
dGVkQm9vbGVhbjo6YmFzZVZhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFzZVZhbDsKLX0K
LQotdm9pZCBTVkdBbmltYXRlZEJvb2xlYW46OnNldEJhc2VWYWwoYm9vbCBiYXNlVmFsKQotewot
ICAgIG1fYmFzZVZhbCA9IGJhc2VWYWw7Ci0KLSAgICAvLyBTcGVjOiBJZiB0aGUgZ2l2ZW4gYXR0
cmlidXRlIG9yIHByb3BlcnR5IGlzIG5vdCBjdXJyZW50bHkKLSAgICAvLyAgICAgICAgIGJlaW5n
IGFuaW1hdGVkLCBjb250YWlucyB0aGUgc2FtZSB2YWx1ZSBhcyAnYmFzZVZhbCcKLSAgICBtX2Fu
aW1WYWwgPSBiYXNlVmFsOwotICAgIAotICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250
ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKLX0KLQotYm9vbCBTVkdBbmltYXRlZEJvb2xl
YW46OmFuaW1WYWwoKSBjb25zdAotewotICAgIHJldHVybiBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQg
U1ZHQW5pbWF0ZWRCb29sZWFuOjpzZXRBbmltVmFsKGJvb2wgYW5pbVZhbCkKLXsKLSAgICBtX2Fu
aW1WYWwgPSBhbmltVmFsOwotICAgIAotICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250
ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKLX0KLQotLy8gdmltOnRzPTQ6bm9ldAotI2Vu
ZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
RW51bWVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkRW51bWVyYXRpb24uY3BwCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDc0ICswLDAg
QEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdT
dHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgotCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6U1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNoYXJl
ZDxTVkdBbmltYXRlZEVudW1lcmF0aW9uPigpCi17Ci0gICAgbV9iYXNlVmFsID0gMDsKLSAgICBt
X2FuaW1WYWwgPSAwOwotCi0gICAgbV9jb250ZXh0ID0gY29udGV4dDsKLX0KLQotU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbjo6flNWR0FuaW1hdGVkRW51bWVyYXRpb24oKQotewotfQotCi11bnNpZ25l
ZCBzaG9ydCBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpiYXNlVmFsKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9iYXNlVmFsOwotfQotCi12b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb246OnNldEJh
c2VWYWwodW5zaWduZWQgc2hvcnQgYmFzZVZhbCkKLXsKLSAgICBtX2Jhc2VWYWwgPSBiYXNlVmFs
OwotICAgIAotICAgIC8vIFNwZWM6IElmIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb3IgcHJvcGVydHkg
aXMgbm90IGN1cnJlbnRseQotICAgIC8vICAgICAgICAgYmVpbmcgYW5pbWF0ZWQsIGNvbnRhaW5z
IHRoZSBzYW1lIHZhbHVlIGFzICdiYXNlVmFsJwotICAgIG1fYW5pbVZhbCA9IGJhc2VWYWw7Ci0K
LSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hh
bmdlKCk7Ci19Ci0KLXVuc2lnbmVkIHNob3J0IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmFuaW1W
YWwoKSBjb25zdAotewotICAgIHJldHVybiBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbjo6c2V0QW5pbVZhbCh1bnNpZ25lZCBzaG9ydCBhbmltVmFsKQotewotICAg
IG1fYW5pbVZhbCA9IGFuaW1WYWw7Ci0gICAgCi0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBt
X2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi0vLyB2aW06dHM9NDpub2V0
Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
Q29sb3IuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZENvbG9yLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0g
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gICAg
ICAgICAgICAgICAgICAyMDA1IE9saXZlciBIdW50IDxvamgxNkBzdHVkZW50LmNhbnRlcmJ1cnku
YWMubno+Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
Ci0gKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkQ29sb3JJbXBsX0gKLSNkZWZpbmUgS1NW
R19TVkdBbmltYXRlZENvbG9ySW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xh
c3MgU1ZHQW5pbWF0ZWRDb2xvciA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR0NvbG9y
PgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkQ29sb3IoY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkQ29s
b3IoKTsKLSAgICAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHQ29sb3IgKmNy
ZWF0ZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgYXNzaWduKFNWR0NvbG9yICpzcmMs
IFNWR0NvbG9yICpkc3QpIGNvbnN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkQm9vbGVhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkQm9vbGVhbi5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkQm9vbGVhbi5oCShBcmJlaXRza29waWUpCkBAIC0xLDU2ICswLDAgQEAKLS8q
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZv
eEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug
LSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaWZu
ZGVmIEtTVkdfU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0
ZWRCb29sZWFuSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNoYXJlZC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50Owot
Ci0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRCb29sZWFuIDogcHVibGljIFNoYXJlZDxTVkdBbmltYXRl
ZEJvb2xlYW4+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkQm9vbGVhbihjb25z
dCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0
ZWRCb29sZWFuKCk7Ci0KLSAgICAgICAgYm9vbCBiYXNlVmFsKCkgY29uc3Q7Ci0gICAgICAgIHZv
aWQgc2V0QmFzZVZhbChib29sIGJhc2VWYWwpOwotCi0gICAgICAgIGJvb2wgYW5pbVZhbCgpIGNv
bnN0OwotICAgICAgICB2b2lkIHNldEFuaW1WYWwoYm9vbCBhbmltVmFsKTsKLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIGJvb2wgbV9iYXNlVmFsIDogMTsKLSAgICAgICAgYm9vbCBtX2FuaW1WYWwg
OiAxOwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLSAgICB9
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2Vu
ZGlmIC8vIEtTVkdfU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbF9ICi0KLS8vIHZpbTp0cz00Om5vZXQK
</data>
<flag name="review"
          id="3364"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10465</attachid>
            <date>2006-09-08 09:59:11 -0700</date>
            <delta_ts>2006-09-10 16:15:35 -0700</delta_ts>
            <desc>Changes in svg/SVG*.h files (new param in a macro)</desc>
            <filename>svg-animated-class-adjustments.diff</filename>
            <type>text/plain</type>
            <size>51952</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjI2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMDYtMDktMDggIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBwYXJ0cyBvZjogaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc1MAorCisgICAgICAgIEdlbmVyYXRlIHBlci1wcm9wZXJ0eSwgcGVyLWNs
YXNzIFNWR0FuaW1hdGVkVHlwZSBzdWJjbGFzc2VzCisgICAgICAgIGZvciBlYWNoIG9mIHRoZSBT
VkdBbmltYXRlZCogcHJvcGVydGllcyB3aGljaCB3ZSBzdXBwb3J0LgorCisgICAgICAgIEFkanVz
dCBzdmcgY2xhc3MgaGVhZGVycyB0byB0aGUgbWFjcm8gY2hhbmdlcy4KKworICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdBRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDaXJjbGVFbGVt
ZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVGbG9v
ZEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZF
TWVyZ2VOb2RlRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1l
bnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5o
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50Lmg6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Lmg6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHTWFza0VsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R1JlY3RFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdVUklSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5o
OgorCiAyMDA2LTA5LTA3ICBTYW0gV2VpbmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gYW5kIFRpbSBILgpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDEz
ICs0NiwxMyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4yLCBp
bjIpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgX29w
ZXJhdG9yLCBfb3BlcmF0b3IpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
Uyhkb3VibGUsIGRvdWJsZSwgSzEsIGsxKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEsyLCBrMikKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBLMywgazMpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgSzQsIGs0KQorICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb21wb3NpdGVFbGVtZW50LCBTdHJp
bmcsIFN0cmluZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRkVDb21wb3NpdGVFbGVtZW50LCBTdHJpbmcsIFN0cmluZywgSW4yLCBpbjIpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQs
IGludCwgaW50LCBfb3BlcmF0b3IsIF9vcGVyYXRvcikKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEsx
LCBrMSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9z
aXRlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEsyLCBrMikKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgZG91YmxlLCBkb3VibGUs
IEszLCBrMykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29t
cG9zaXRlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEs0LCBrNCkKICAgICAgICAgbXV0YWJsZSBL
Q2FudmFzRkVDb21wb3NpdGUgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCShBcmJlaXRza29waWUp
CkBAIC00NiwxMyArNDYsMTMgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4s
IGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJp
bmcsIEluMiwgaW4yKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50
LCBpbnQsIF9vcGVyYXRvciwgX29wZXJhdG9yKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEsxLCBrMSkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBLMiwgazIpCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgSzMsIGszKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEs0LCBrNCkK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxl
bWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluMiwg
aW4yKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb21wb3Np
dGVFbGVtZW50LCBpbnQsIGludCwgX29wZXJhdG9yLCBfb3BlcmF0b3IpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwg
ZG91YmxlLCBLMSwgazEpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLMiwgazIpCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJs
ZSwgZG91YmxlLCBLMywgazMpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLNCwgazQpCiAgICAgICAg
IG11dGFibGUgS0NhbnZhc0ZFQ29tcG9zaXRlICptX2ZpbHRlckVmZmVjdDsKICAgICB9OwogCklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdG9wRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtMzksNyAr
MzksNyBAQAogICAgICAgICAvLyAnU1ZHU3RvcGxlbWVudCcgZnVuY3Rpb25zCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpOwog
ICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3Vi
bGUsIGRvdWJsZSwgT2Zmc2V0LCBvZmZzZXQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdTdG9wRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIE9mZnNldCwgb2Zmc2V0
KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCShBcmJl
aXRza29waWUpCkBAIC00NSwxMiArNDUsMTIgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0
cmluZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91
YmxlLCBkb3VibGUsIERpZmZ1c2VDb25zdGFudCwgZGlmZnVzZUNvbnN0YW50KQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFN1cmZhY2VTY2Fs
ZSwgc3VyZmFjZVNjYWxlKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHQ29sb3IqLCBSZWZQdHI8U1ZHQ29sb3I+LCBMaWdodGluZ0NvbG9yLCBsaWdodGluZ0NvbG9y
KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUs
IEtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWCkKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWSwg
a2VybmVsVW5pdExlbmd0aFkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBEaWZmdXNlQ29uc3RhbnQsIGRpZmZ1c2VDb25zdGFu
dCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFN1cmZhY2VTY2FsZSwgc3VyZmFjZVNjYWxl
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50LCBTVkdDb2xvciosIFJlZlB0cjxTVkdDb2xvcj4sIExpZ2h0aW5nQ29sb3Is
IGxpZ2h0aW5nQ29sb3IpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLZXJuZWxVbml0TGVu
Z3RoWCwga2VybmVsVW5pdExlbmd0aFgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLZXJu
ZWxVbml0TGVuZ3RoWSwga2VybmVsVW5pdExlbmd0aFkpCiAgICAgICAgIC8vbmVlZCBvdGhlciBw
cm9wZXJ0aWVzIGhlcmUuLi4KICAgICAgICAgbXV0YWJsZSBLQ2FudmFzRkVEaWZmdXNlTGlnaHRp
bmcgKm1fZmlsdGVyRWZmZWN0OwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVt
ZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVu
dC5oCShBcmJlaXRza29waWUpCkBAIC0xMjYsMTAgKzEyNiwxMCBAQAogICAgIHByaXZhdGU6CiAg
ICAgICAgIHZvaWQgYWRkU1ZHV2luZG93RXZlbnRMaXN0bmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBBdHRyaWJ1dGUqIGF0dHIpOyAgIAogCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwg
eCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR1NWR0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU1ZHRWxlbWVudCwg
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTVkdFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHU1ZHRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdo
dCwgaGVpZ2h0KQogICAgICAgICBib29sIG1fdXNlQ3VycmVudFZpZXc7CiAgICAgICAgIFRpbWVT
Y2hlZHVsZXIqIG1fdGltZVNjaGVkdWxlcjsKICAgICB9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgJKEFyYmVp
dHNrb3BpZSkKQEAgLTQzLDExICs0MywxMSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3Ry
aW5nLCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJp
bmcsIFN0cmluZywgSW4yLCBpbjIpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhpbnQsIGludCwgWENoYW5uZWxTZWxlY3RvciwgeENoYW5uZWxTZWxlY3RvcikKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBZQ2hhbm5lbFNlbGVj
dG9yLCB5Q2hhbm5lbFNlbGVjdG9yKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoZG91YmxlLCBkb3VibGUsIFNjYWxlLCBzY2FsZSkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgU3RyaW5nLCBT
dHJpbmcsIEluLCBpbikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluMiwgaW4yKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50LCBpbnQsIGludCwgWENoYW5uZWxTZWxlY3RvciwgeENoYW5uZWxTZWxlY3RvcikKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudCwgaW50LCBpbnQsIFlDaGFubmVsU2VsZWN0b3IsIHlDaGFubmVsU2VsZWN0b3IpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBTY2FsZSwgc2NhbGUpCiAgICAgICAgIG11dGFibGUg
S0NhbnZhc0ZFRGlzcGxhY2VtZW50TWFwKiBtX2ZpbHRlckVmZmVjdDsKICAgICB9OwogCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXNrRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR01hc2tFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTWFza0VsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNjAsMTAgKzYw
LDEwIEBACiAgICAgcHJvdGVjdGVkOgogICAgICAgICBLQ2FudmFzSW1hZ2UgKmRyYXdNYXNrZXJD
b250ZW50KCk7CiAKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFza0VsZW1lbnQsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHTWFza0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5n
dGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFz
a0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQogCiAgICAgICAgIHZp
cnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
aGlzOyB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAkoUmV2aXNp
b24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCShBcmJl
aXRza29waWUpCkBAIC00Niw5ICs0Niw5IEBACiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2
YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJp
bmcsIEluLCBpbikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmlu
ZywgU3RyaW5nLCBJbjIsIGluMikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKGludCwgaW50LCBNb2RlLCBtb2RlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHRkVCbGVuZEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUJsZW5kRWxlbWVudCwgU3Ry
aW5nLCBTdHJpbmcsIEluMiwgaW4yKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHRkVCbGVuZEVsZW1lbnQsIGludCwgaW50LCBNb2RlLCBtb2RlKQogICAgICAgICBt
dXRhYmxlIEtDYW52YXNGRUJsZW5kICptX2ZpbHRlckVmZmVjdDsKICAgICB9OwogCkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAt
NTMsNyArNTMsNyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBDbGlwUGF0aFVuaXRzLCBj
bGlwUGF0aFVuaXRzKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
Q2xpcFBhdGhFbGVtZW50LCBpbnQsIGludCwgQ2xpcFBhdGhVbml0cywgY2xpcFBhdGhVbml0cykK
ICAgICAgICAgS0NhbnZhc0NsaXBwZXIgKm1fY2xpcHBlcjsKICAgICB9OwogCkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAkoQXJiZWl0
c2tvcGllKQpAQCAtNDcsOSArNDcsOSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5n
LCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGlu
dCwgVHlwZSwgdHlwZSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R051bWJlckxpc3QqLCBSZWZQdHI8U1ZHTnVtYmVyTGlzdD4sIFZhbHVlcywgdmFsdWVzKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdGRUNvbG9yTWF0cml4RWxlbWVudCwgaW50LCBpbnQsIFR5cGUsIHR5cGUp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbG9yTWF0cml4
RWxlbWVudCwgU1ZHTnVtYmVyTGlzdCosIFJlZlB0cjxTVkdOdW1iZXJMaXN0PiwgVmFsdWVzLCB2
YWx1ZXMpCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFQ29sb3JNYXRyaXggKm1fZmlsdGVyRWZm
ZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkoUmV2aXNp
b24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5oCShBcmJlaXRz
a29waWUpCkBAIC0xMDUsNyArMTA1LDcgQEAKIAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFi
bGUgUmVmUHRyPFNWR1BhdGhTZWdMaXN0PiBtX3BhdGhTZWdMaXN0OwotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFBhdGhMZW5ndGgsIHBhdGhM
ZW5ndGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXRoRWxl
bWVudCwgZG91YmxlLCBkb3VibGUsIFBhdGhMZW5ndGgsIHBhdGhMZW5ndGgpCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzdmdNb3ZlVG8oZG91YmxlIHgxLCBkb3VibGUgeTEsIGJvb2wgY2xvc2VkLCBi
b29sIGFicyA9IHRydWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3ZnTGluZVRvKGRvdWJsZSB4
MSwgZG91YmxlIHkxLCBib29sIGFicyA9IHRydWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3Zn
TGluZVRvSG9yaXpvbnRhbChkb3VibGUgeCwgYm9vbCBhYnMgPSB0cnVlKTsKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC03MiwxMSArNzIs
MTAgQEAKIAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPENTU1N0eWxlRGVj
bGFyYXRpb24+IG1fcGE7Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
dHJpbmcsIFN0cmluZywgQ2xhc3NOYW1lLCBjbGFzc05hbWUpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTdHlsZWRFbGVtZW50LCBTdHJpbmcsIFN0cmluZywgQ2xh
c3NOYW1lLCBjbGFzc05hbWUpCiAgICAgICAgIC8vIE9wdGltaXplZCB1cGRhdGluZyBsb2dpYwog
ICAgICAgICBib29sIG1fdXBkYXRlVmVjdG9yaWFsIDogMTsKICAgICB9OwotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaAkoUmV2aXNpb24gMTYyNjgpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgJKEFyYmVpdHNr
b3BpZSkKQEAgLTQxLDExICs0MSwxMSBAQAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGhMaXN0KiwgUmVmUHRy
PFNWR0xlbmd0aExpc3Q+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoTGlzdCosIFJlZlB0cjxTVkdMZW5ndGhMaXN0PiwgWSwgeSkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aExpc3QqLCBSZWZQdHI8
U1ZHTGVuZ3RoTGlzdD4sIER4LCBkeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0xlbmd0aExpc3QqLCBSZWZQdHI8U1ZHTGVuZ3RoTGlzdD4sIER5LCBkeSkKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR051bWJlckxpc3QqLCBSZWZQ
dHI8U1ZHTnVtYmVyTGlzdD4sIFJvdGF0ZSwgcm90YXRlKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwgU1ZHTGVuZ3RoTGlz
dCosIFJlZlB0cjxTVkdMZW5ndGhMaXN0PiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsIFNWR0xlbmd0aExpc3Qq
LCBSZWZQdHI8U1ZHTGVuZ3RoTGlzdD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdMZW5ndGhMaXN0Kiwg
UmVmUHRyPFNWR0xlbmd0aExpc3Q+LCBEeCwgZHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdMZW5ndGhMaXN0Kiwg
UmVmUHRyPFNWR0xlbmd0aExpc3Q+LCBEeSwgZHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdOdW1iZXJMaXN0Kiwg
UmVmUHRyPFNWR051bWJlckxpc3Q+LCBSb3RhdGUsIHJvdGF0ZSkKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAkoUmV2
aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAkoQXJi
ZWl0c2tvcGllKQpAQCAtNDgsOCArNDgsOCBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgPSAwOwogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JlY3QqLCBSZWZQdHI8U1ZHUmVj
dD4sIFZpZXdCb3gsIHZpZXdCb3gpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8+LCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQorICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdSZWN0Kiwg
UmVmUHRyPFNWR1JlY3Q+LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
KiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC02MCw3ICs2
MCw3IEBACiAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdNYXRyaXg+
IG1fbG9jYWxNYXRyaXg7Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBUcmFuc2Zvcm0sIHRy
YW5zZm9ybSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1RleHRF
bGVtZW50LCBTVkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBUcmFu
c2Zvcm0sIHRyYW5zZm9ybSkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTcsMTEgKzU3
LDEwIEBACiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZXJjZW50YWdlVmFsdWVzKCkgY29uc3Q7
CiAKICAgICBwcml2YXRlOgotCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWDEsIHgxKQotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFkx
LCB5MSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCos
IFJlZlB0cjxTVkdMZW5ndGg+LCBYMiwgeDIpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTIsIHkyKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZUVsZW1lbnQsIFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMSwgeDEpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFkxLCB5MSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xp
bmVFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWDIsIHgyKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZUVsZW1lbnQsIFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZMiwgeTIpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDExICs0NiwxMSBAQAogICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeCwgY3gpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgQ3ksIGN5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFIsIHIpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgRngsIGZ4KQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIEZ5LCBmeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIEN4LCBjeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN5LCBj
eSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFIsIHIpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQs
IFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBGeCwgZngpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBGeSwgZnkpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDEyICs0NiwxMiBAQAogICAgICAgICB2aXJ0
dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhp
czsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKGRvdWJsZSwgZG91YmxlLCBCYXNlRnJlcXVlbmN5WCwgYmFzZUZyZXF1ZW5jeVgpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgQmFzZUZy
ZXF1ZW5jeVksIGJhc2VGcmVxdWVuY3lZKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoaW50LCBpbnQsIE51bU9jdGF2ZXMsIG51bU9jdGF2ZXMpCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgU2VlZCwgc2VlZCkKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBTdGl0Y2hUaWxl
cywgc3RpdGNoVGlsZXMpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhp
bnQsIGludCwgVHlwZSwgdHlwZSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBCYXNlRnJlcXVlbmN5
WCwgYmFzZUZyZXF1ZW5jeVgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgQmFzZUZyZXF1ZW5jeVks
IGJhc2VGcmVxdWVuY3lZKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgaW50LCBpbnQsIE51bU9jdGF2ZXMsIG51bU9jdGF2ZXMp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU2VlZCwgc2VlZCkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIGludCwgaW50LCBTdGl0
Y2hUaWxlcywgc3RpdGNoVGlsZXMpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBpbnQsIGludCwgVHlwZSwgdHlwZSkKICAgICAg
ICAgbXV0YWJsZSBLQ2FudmFzRkVUdXJidWxlbmNlICptX2ZpbHRlckVmZmVjdDsKICAgICB9Owog
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpA
QCAtNDQsMTMgKzQ0LDEzIEBACiAgICAgICAgIEtDQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiB0
cmFuc2ZlckZ1bmN0aW9uKCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFR5cGUsIHR5cGUpCi0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdOdW1iZXJMaXN0KiwgUmVmUHRyPFNWR051
bWJlckxpc3Q+LCBUYWJsZVZhbHVlcywgdGFibGVWYWx1ZXMpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgU2xvcGUsIHNsb3BlKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEludGVyY2Vw
dCwgaW50ZXJjZXB0KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91
YmxlLCBkb3VibGUsIEFtcGxpdHVkZSwgYW1wbGl0dWRlKQotICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEV4cG9uZW50LCBleHBvbmVudCkKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBPZmZz
ZXQsIG9mZnNldCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBpbnQsIGludCwgVHlwZSwgdHlwZSkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50LCBTVkdOdW1iZXJMaXN0KiwgUmVmUHRyPFNWR051bWJlckxpc3Q+LCBU
YWJsZVZhbHVlcywgdGFibGVWYWx1ZXMpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgZG91YmxlLCBkb3Vi
bGUsIFNsb3BlLCBzbG9wZSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgSW50
ZXJjZXB0LCBpbnRlcmNlcHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEFt
cGxpdHVkZSwgYW1wbGl0dWRlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBF
eHBvbmVudCwgZXhwb25lbnQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIE9m
ZnNldCwgb2Zmc2V0KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAkoUmV2aXNpb24gMTYy
NjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCShBcmJl
aXRza29waWUpCkBAIC01NSwxMCArNTUsMTAgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgq
LCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBT
VkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBS
ZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBIZWlnaHQsIGhlaWdodCkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQUVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTcsNyArNTcsNyBAQAogICAg
ICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBUYXJnZXQsIHRhcmdldCkKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0FFbGVtZW50LCBTdHJpbmcsIFN0cmluZywg
VGFyZ2V0LCB0YXJnZXQpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTU5LDEz
ICs1OSwxMyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBSZWZYLCByZWZYKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJlZlksIHJlZlkpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgTWFy
a2VyV2lkdGgsIG1hcmtlcldpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIE1hcmtlckhlaWdodCwgbWFya2Vy
SGVpZ2h0KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQs
IE1hcmtlclVuaXRzLCBtYXJrZXJVbml0cykKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKGludCwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBlKQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQW5nbGUqLCBSZWZQdHI8U1ZHQW5nbGU+LCBP
cmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwg
UmVmWCwgcmVmWCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01h
cmtlckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSZWZZLCByZWZZKQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwg
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIE1hcmtlcldpZHRoLCBtYXJrZXJXaWR0aCkK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hcmtlckVsZW1lbnQs
IFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBNYXJrZXJIZWlnaHQsIG1hcmtlckhlaWdo
dCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hcmtlckVsZW1l
bnQsIGludCwgaW50LCBNYXJrZXJVbml0cywgbWFya2VyVW5pdHMpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBpbnQsIGludCwgT3JpZW50
VHlwZSwgb3JpZW50VHlwZSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR01hcmtlckVsZW1lbnQsIFNWR0FuZ2xlKiwgUmVmUHRyPFNWR0FuZ2xlPiwgT3JpZW50QW5n
bGUsIG9yaWVudEFuZ2xlKQogICAgICAgICBLQ2FudmFzTWFya2VyICptX21hcmtlcjsKICAgICB9
OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdVc2VFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNjAs
MTAgKzYwLDEwIEBACiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5n
dGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgp
Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQ
dHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdVc2VFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3Ro
PiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1VzZUVs
ZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVXNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVm
UHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR1VzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBIZWlnaHQsIGhlaWdodCkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAkoUmV2aXNpb24gMTYy
NjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAkoQXJiZWl0
c2tvcGllKQpAQCAtNDMsNyArNDMsNyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5n
LCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRU1l
cmdlTm9kZUVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAg
LTQ2LDcgKzQ2LDcgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCiAgICAgICAgIG11dGFibGUgS0Nh
bnZhc0ZFQ29tcG9uZW50VHJhbnNmZXIgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC01NCwx
NCArNTQsMTQgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgRmlsdGVyVW5pdHMsIGZpbHRl
clVuaXRzKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQs
IFByaW1pdGl2ZVVuaXRzLCBwcmltaXRpdmVVbml0cykKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFksIHkpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4s
IEhlaWdodCwgaGVpZ2h0KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
aW50LCBpbnQsIEZpbHRlclJlc1gsIGZpbHRlclJlc1gpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgRmlsdGVyUmVzWSwgZmlsdGVyUmVzWSkKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIGludCwg
aW50LCBGaWx0ZXJVbml0cywgZmlsdGVyVW5pdHMpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBpbnQsIGludCwgUHJpbWl0aXZlVW5pdHMs
IHByaW1pdGl2ZVVuaXRzKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHRmlsdGVyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBT
VkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwg
SGVpZ2h0LCBoZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGaWx0ZXJFbGVtZW50LCBpbnQsIGludCwgRmlsdGVyUmVzWCwgZmlsdGVyUmVzWCkKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIGludCwg
aW50LCBGaWx0ZXJSZXNZLCBmaWx0ZXJSZXNZKQogICAgICAgICBLQ2FudmFzRmlsdGVyICptX2Zp
bHRlcjsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAkoUmV2aXNpb24gMTYyNjgpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aAkoQXJiZWl0c2tvcGllKQpAQCAtNTAsMTEgKzUwLDExIEBACiAgICAgICAgIHZpcnR1YWwgY29u
c3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCi0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgUmVz
dWx0LCByZXN1bHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgWSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHTGVuZ3RoKiwg
UmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBT
dHJpbmcsIFN0cmluZywgUmVzdWx0LCByZXN1bHQpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgJKFJldmlz
aW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgJKEFy
YmVpdHNrb3BpZSkKQEAgLTU1LDkgKzU1LDkgQEAKICAgICAgICAgdm9pZCByZWJ1aWxkU3RvcHMo
KSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKGludCwgaW50LCBTcHJlYWRNZXRob2QsIHNwcmVhZE1ldGhvZCkKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBHcmFkaWVudFVuaXRzLCBn
cmFkaWVudFVuaXRzKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
VHJhbnNmb3JtTGlzdCosIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0PiwgR3JhZGllbnRUcmFuc2Zv
cm0sIGdyYWRpZW50VHJhbnNmb3JtKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHR3JhZGllbnRFbGVtZW50LCBpbnQsIGludCwgU3ByZWFkTWV0aG9kLCBzcHJlYWRN
ZXRob2QpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdHcmFkaWVu
dEVsZW1lbnQsIGludCwgaW50LCBHcmFkaWVudFVuaXRzLCBncmFkaWVudFVuaXRzKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHR3JhZGllbnRFbGVtZW50LCBTVkdU
cmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBHcmFkaWVudFRyYW5zZm9y
bSwgZ3JhZGllbnRUcmFuc2Zvcm0pCiAgICAgICAgIG11dGFibGUgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyR3JhZGllbnQgKm1fcmVzb3VyY2U7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTU3LDEwICs1NywxMCBAQAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVyY2VudGFnZVZhbHVlcygpIGNvbnN0OwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeCwgY3gpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgQ3ksIGN5KQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFJ4LCByeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeSwgcnkpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFbGxpcHNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVm
UHRyPFNWR0xlbmd0aD4sIEN4LCBjeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0VsbGlwc2VFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwg
Q3ksIGN5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRWxsaXBz
ZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFbGxpcHNlRWxlbWVudCwgU1ZHTGVu
Z3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJ5LCByeSkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdVUklSZWZlcmVuY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdVUklSZWZlcmVuY2UuaAkoUmV2aXNpb24g
MTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdVUklSZWZlcmVuY2UuaAkoQXJiZWl0c2tv
cGllKQpAQCAtNDYsNyArNDYsNyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50KCkgY29uc3QgPSAwOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVVJJUmVmZXJlbmNlLCBT
dHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgJKFJldmlzaW9uIDE2
MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAkoQXJiZWl0c2tv
cGllKQpAQCAtNDIsMTYgKzQyLDE2IEBACiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTogJ0VsZW1l
bnQnCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUgKmF0dHIpOyAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBBemltdXRoLCBhemltdXRoKQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEVsZXZh
dGlvbiwgZWxldmF0aW9uKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
ZG91YmxlLCBkb3VibGUsIFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhkb3VibGUsIGRvdWJsZSwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBaLCB6KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFBvaW50c0F0WCwgcG9pbnRzQXRYKQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFBvaW50
c0F0WSwgcG9pbnRzQXRZKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
ZG91YmxlLCBkb3VibGUsIFBvaW50c0F0WiwgcG9pbnRzQXRaKQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyRXhwb25lbnQsIHNw
ZWN1bGFyRXhwb25lbnQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhk
b3VibGUsIGRvdWJsZSwgTGltaXRpbmdDb25lQW5nbGUsIGxpbWl0aW5nQ29uZUFuZ2xlKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIGRv
dWJsZSwgZG91YmxlLCBBemltdXRoLCBhemltdXRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBFbGV2YXRp
b24sIGVsZXZhdGlvbikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgWCwgeCkKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwg
WSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRF
bGVtZW50LCBkb3VibGUsIGRvdWJsZSwgWiwgeikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgUG9pbnRzQXRY
LCBwb2ludHNBdFgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdG
RUxpZ2h0RWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFBvaW50c0F0WSwgcG9pbnRzQXRZKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIGRv
dWJsZSwgZG91YmxlLCBQb2ludHNBdFosIHBvaW50c0F0WikKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3Bl
Y3VsYXJFeHBvbmVudCwgc3BlY3VsYXJFeHBvbmVudCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgTGltaXRp
bmdDb25lQW5nbGUsIGxpbWl0aW5nQ29uZUFuZ2xlKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkoUmV2aXNpb24gMTYy
NjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdSZWN0RWxlbWVudC5oCShBcmJlaXRza29waWUp
CkBAIC01NywxMiArNTcsMTIgQEAKICAgICAgICAgdmlydHVhbCBib29sIGhhc1BlcmNlbnRhZ2VW
YWx1ZXMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBI
ZWlnaHQsIGhlaWdodCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUnksIHJ5
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVsZW1lbnQs
IFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lk
dGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxlbWVu
dCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFJ5LCByeSkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNDYsOCArNDYs
NyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLQotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFVGlsZUVsZW1lbnQsIFN0cmluZywg
U3RyaW5nLCBJbiwgaW4pCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFVGlsZSAqbV9maWx0ZXJF
ZmZlY3Q7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTU3LDggKzU3LDggQEAKICAgICAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBUZXh0TGVuZ3RoLCB0ZXh0TGVuZ3RoKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIExlbmd0aEFkanVzdCwg
bGVuZ3RoQWRqdXN0KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
VGV4dENvbnRlbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgVGV4dExl
bmd0aCwgdGV4dExlbmd0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR1RleHRDb250ZW50RWxlbWVudCwgaW50LCBpbnQsIExlbmd0aEFkanVzdCwgbGVuZ3RoQWRq
dXN0KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ltYWdlRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ltYWdlRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC02MywxMSArNjMsMTEgQEAKICAg
ICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBI
ZWlnaHQsIGhlaWdodCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8qLCBSZWZQdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4sIFBy
ZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdJbWFnZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHSW1hZ2VFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ltYWdlRWxlbWVudCwg
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ltYWdlRWxlbWVudCwgU1ZHTGVuZ3RoKiwg
UmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHSW1hZ2VFbGVtZW50LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
KiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKQogICAgICAgICBTVkdJbWFnZUxvYWRlciBtX2ltYWdlTG9hZGVy
OwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC02NCw3
ICs2NCw3IEBACiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR01h
dHJpeD4gbV9sb2NhbE1hdHJpeDsKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR1RyYW5zZm9ybUxpc3QqLCBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4sIFRyYW5zZm9y
bSwgdHJhbnNmb3JtKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQsIFNWR1RyYW5zZm9ybUxpc3QqLCBSZWZQdHI8U1ZH
VHJhbnNmb3JtTGlzdD4sIFRyYW5zZm9ybSwgdHJhbnNmb3JtKQogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00OCw5ICs0OCw5IEBACiAg
ICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBTdGREZXZpYXRpb25YLCBzdGRE
ZXZpYXRpb25YKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91Ymxl
LCBkb3VibGUsIFN0ZERldmlhdGlvblksIHN0ZERldmlhdGlvblkpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQsIFN0cmluZywg
U3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBTdGREZXZpYXRpb25YLCBz
dGREZXZpYXRpb25YKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3RkRGV2aWF0aW9uWSwgc3Rk
RGV2aWF0aW9uWSkKICAgICAgICAgbXV0YWJsZSBLQ2FudmFzRkVHYXVzc2lhbkJsdXIgKm1fZmls
dGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00NiwxMCArNDYs
MTAgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWDEs
IHgxKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwg
UmVmUHRyPFNWR0xlbmd0aD4sIFkxLCB5MSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMiwgeDIpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgWTIsIHkyKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWDEs
IHgxKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTEsIHkxKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWDIsIHgyKQorICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LCBTVkdM
ZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTIsIHkyKQogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgJKFJldmlz
aW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCShBcmJl
aXRza29waWUpCkBAIC01Nyw5ICs1Nyw5IEBACiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZXJj
ZW50YWdlVmFsdWVzKCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN4LCBj
eCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBDeSwgY3kpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUiwgcikKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NpcmNsZUVsZW1lbnQsIFNWR0xlbmd0aCos
IFJlZlB0cjxTVkdMZW5ndGg+LCBDeCwgY3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdDaXJjbGVFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3Ro
PiwgQ3ksIGN5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2ly
Y2xlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFIsIHIpCiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaAkoUmV2aXNpb24gMTYyNjgpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgJKEFyYmVpdHNrb3Bp
ZSkKQEAgLTUyLDcgKzUyLDcgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhib29sLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgYm9v
bCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
Q3Vyc29yRWxlbWVudC5oCShSZXZpc2lvbiAxNjI2OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTcsOCArNTcsOCBAQAogICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDdXJz
b3JFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0N1cnNvckVsZW1lbnQsIFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQogICAgICAgICBDYWNoZWRJbWFnZSAqbV9jYWNo
ZWRJbWFnZTsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUZsb29kRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50
LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1l
bnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNDYsNyArNDYsNyBAQAogICAgICAgICB2aXJ0dWFsIGNv
bnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0
cmluZywgU3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdGRUZsb29kRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKICAgICAgICAg
bXV0YWJsZSBLQ2FudmFzRkVGbG9vZCAqbV9maWx0ZXJFZmZlY3Q7CiAgICAgfTsKIApJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAko
UmV2aXNpb24gMTYyNjgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDEzICs0NiwxMyBAQAogICAgICAgICB2
aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
dGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgU3BlY3VsYXJDb25zdGFudCwgc3BlY3VsYXJD
b25zdGFudCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwg
ZG91YmxlLCBTcGVjdWxhckV4cG9uZW50LCBzcGVjdWxhckV4cG9uZW50KQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFN1cmZhY2VTY2FsZSwg
c3VyZmFjZVNjYWxlKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
Q29sb3IqLCBSZWZQdHI8U1ZHQ29sb3I+LCBMaWdodGluZ0NvbG9yLCBsaWdodGluZ0NvbG9yKQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEtl
cm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWCkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWSwga2Vy
bmVsVW5pdExlbmd0aFkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBTdHJpbmcsIFN0cmluZywgSW4sIGluKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1bGFyQ29uc3Rh
bnQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3BlY3VsYXJFeHBvbmVudCwgc3BlY3Vs
YXJFeHBvbmVudCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBTdXJmYWNlU2NhbGUsIHN1
cmZhY2VTY2FsZSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIFNWR0NvbG9yKiwgUmVmUHRyPFNWR0NvbG9yPiwgTGln
aHRpbmdDb2xvciwgbGlnaHRpbmdDb2xvcikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBL
ZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFgpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBkb3VibGUs
IGRvdWJsZSwgS2VybmVsVW5pdExlbmd0aFksIGtlcm5lbFVuaXRMZW5ndGhZKQogICAgICAgICAv
L25lZWQgb3RoZXIgcHJvcGVydGllcyBoZXJlLi4uCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZF
U3BlY3VsYXJMaWdodGluZyAqbV9maWx0ZXJFZmZlY3Q7CiAgICAgICAgIApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDkg
KzQ2LDkgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIER4LCBkeCkK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBE
eSwgZHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRU9mZnNl
dEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRU9mZnNldEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBEeCwg
ZHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRU9mZnNldEVs
ZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBEeSwgZHkpCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZF
T2Zmc2V0ICptX2ZpbHRlckVmZmVjdDsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1BhdHRlcm5FbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNzAsMTMgKzcwLDEzIEBACiAg
ICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4ICpnZXRDVE0oKSBjb25zdDsKIAogICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwg
V2lkdGgsIHdpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFBhdHRlcm5Vbml0cywgcGF0dGVy
blVuaXRzKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQs
IFBhdHRlcm5Db250ZW50VW5pdHMsIHBhdHRlcm5Db250ZW50VW5pdHMpCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1Ry
YW5zZm9ybUxpc3Q+LCBQYXR0ZXJuVHJhbnNmb3JtLCBwYXR0ZXJuVHJhbnNmb3JtKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
UGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lk
dGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXR0ZXJuRWxl
bWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIGlu
dCwgaW50LCBQYXR0ZXJuVW5pdHMsIHBhdHRlcm5Vbml0cykKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBpbnQsIGludCwgUGF0dGVybkNv
bnRlbnRVbml0cywgcGF0dGVybkNvbnRlbnRVbml0cykKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdUcmFuc2Zvcm1MaXN0KiwgUmVm
UHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBQYXR0ZXJuVHJhbnNmb3JtLCBwYXR0ZXJuVHJhbnNmb3Jt
KQogICAgICAgICBtdXRhYmxlIEtDYW52YXNJbWFnZSAqbV90aWxlOwogICAgICAgICBtdXRhYmxl
IGJvb2wgbV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzOwogICAgICAgICBtdXRhYmxlIEtSZW5kZXJp
bmdQYWludFNlcnZlclBhdHRlcm4gKm1fcGFpbnRTZXJ2ZXI7CkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmgJKFJldmlzaW9uIDE2MjY4KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTQsNyArNTQsNyBAQAog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qLCBSZWZQdHI8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbz4sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8p
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUltYWdlRWxlbWVu
dCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFJlZlB0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
PiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKICAgICAgICAgQ2Fj
aGVkSW1hZ2UgKm1fY2FjaGVkSW1hZ2U7CiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFSW1hZ2Ug
Km1fZmlsdGVyRWZmZWN0OwogICAgIH07Cg==
</data>
<flag name="review"
          id="3365"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10494</attachid>
            <date>2006-09-10 16:15:35 -0700</date>
            <delta_ts>2006-09-11 11:40:27 -0700</delta_ts>
            <desc>Updated complete patch</desc>
            <filename>svg-property-changes.diff</filename>
            <type>text/plain</type>
            <size>322209</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsMjQzIEBACisyMDA2LTA5LTExICBOaWtvbGFzIFppbW1lcm1hbm4gIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRml4ZXM6IGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NTAKKworICAgICAgICBUaGlzIGZpbmFsbHkgZml4ZXMgdGhlIFNWR0FuaW1hdGVkKiBj
bGFzc2VzIEpTIGJpbmRpbmdzIQorCisgICAgICAgIC0gTW92ZSBhbGwgU1ZHQW5pbWF0ZWQqLmlk
bCBmaWxlcyBmcm9tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcgdG8ga3N2ZzIvc3ZnCisgICAgICAg
IC0gQWRqdXN0IFhDb2RlL1F0IGJ1aWxkIGZpbGVzIHRvIGdlbmVyYXRlIHRoZSBuZXcgaWRsIGZp
bGVzCisKKyAgICAgICAgLSBSZW1vdmUgYWxsIFNWR0FuaW1hdGVkKiBwcmltaXRpdmVzIGNwcCBp
bXBsZW1lbnRhdGlvbnMgKEFuZ2xlL0Jvb2xlYW4vQ29sb3IvRW51bWVyYXRpb24vSW50ZWdlci9M
ZW5ndGgvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZW5ndGhMaXN0L051bWJlci9OdW1iZXJMaXN0L1ByZXNlcnZlQXNw
ZWN0UmF0aW8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZWN0L1N0cmluZy9UcmFuc2Zvcm1MaXN0KQorCisgICAgICAg
IC0gUmVtb3ZlIHVubmVlZGVkIG1ldGhvZHMgZnJvbSBDb2RlR2VuZXJhdG9yLnBtIGFuZCBhZGQg
bmV3IGhlbHBlciBmdW5jdGlvbjogSXNTVkdBbmltYXRlZFR5cGUKKyAgICAgICAgLSBBZGp1c3Qg
Q29kZUdlbmVyYXRvckpTLnBtIHRvIHRoZSBuZXcgU1ZHQW5pbWF0ZWQqIHRlYXItb2ZmIGNvbmNl
cHQKKworICAgICAgICAtIEFkZCB0d28gbmV3IG1hY3JvczogQU5JTUFURURfUFJPUEVSVFlfRU1Q
VFlfREVDTEFSQVRJT05TIC8gQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMu
CisgICAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGZpeCBtdWx0aXBsZS1pbmhlcml0YW5jZSBpc3N1
ZXMgaW4gU1ZHIHdpdGggcHJvcGVydGllcywKKyAgICAgICAgICBzaW1pbGFyIGxpa2UgU1ZHVGVz
dHM6OmlzVmFsaWQoKSB3YXMgZml4ZWQuCisKKyAgICAgICAgLSBSZXdyb3RlIFNWR0xpc3QgdXNp
bmcgV1RGOjpWZWN0b3IsIGluc3RlYWQgb2YgRGVwcmVjYXRlZFB0ckxpc3QgYW5kIGtpbGxlZCBE
T01MaXN0LgorICAgICAgICAgIChTVkdBbmltYXRlZCpMaXN0cyB3b3JrIGFnYWluIG5vdykKKwor
ICAgICAgICAtIEFkanVzdCBtYWNyb3MgaW4gU1ZHRWxlbWVudCB0byBjcmVhdGUgdGhlICIqQW5p
bWF0ZWQiIHRlYXItb2ZmIGNsYXNzZXMuCisKKyAgICAgICAgLSBBZGp1c3QgYWxsIFNWRyBjbGFz
c2VzIHdoaWNoIHVzZSB0aGUgQU5JTUFURUQgbWFjcm9zIHRvIGluY2x1ZGUgdGhlIENsYXNzTmFt
ZSBhcyBmaXJzdCBwYXJhbSBpbiB0aGUgaGVhZGVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAqIGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHSW1hZ2U6OmFkanVzdFJlY3RzRm9yQXNwZWN0UmF0aW8pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBhaW50KToKKyAgICAgICAgKiBrY2FudmFzL1Jl
bmRlclNWR1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6dHJhbnNs
YXRpb25Gb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9i
aW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsOiBSZW1vdmVkLgorICAg
ICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkUGF0aERh
dGEuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5p
bWF0ZWRQb2ludHMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkUmVjdC5pZGw6IFJlbW92ZWQuCisg
ICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGw6IFJl
bW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9rc3ZnLmg6CisgICAgICAgICog
a3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZs
b2F0UmVjdCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQW5n
bGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmg6
IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmg6IFJlbW92ZWQuCisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5pZGw6IEFkZGVkLgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkSW50ZWdlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRl
ZEludGVnZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5o
OiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5pZGw6IEFkZGVkLgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlk
bDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6IFJlbW92
ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdBbmltYXRlZFN0cmluZy5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdBbmltYXRlZFN0cmluZy5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmlt
YXRlZFRlbXBsYXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRlbXBsYXRlOjp+
U1ZHQW5pbWF0ZWRUZW1wbGF0ZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdC5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFNW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjpTVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudCk6CisgICAgICAgIChTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudDo6dHJhbnNmZXJGdW5jdGlvbik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0N1cnNv
ckVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnQuaDoKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdFbGVt
ZW50SW5zdGFuY2VMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnRJbnN0YW5j
ZUxpc3Q6OlNWR0VsZW1lbnRJbnN0YW5jZUxpc3QpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdF
bGVtZW50SW5zdGFuY2VMaXN0Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVt
ZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaDoKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQ6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50KToKKyAgICAgICAgKFNWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChTVkdG
RUNvbG9yTWF0cml4RWxlbWVudDo6ZmlsdGVyRWZmZWN0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVDb21w
b25lbnRUcmFuc2ZlckVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVDb21wb3Np
dGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaDoKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVt
ZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGRVRpbGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRv
Vmlld0JveDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0ZpdFRvVmlld0JveC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdHRWxlbWVudC5oOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZHR3JhZGllbnRFbGVt
ZW50OjpTVkdHcmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0hlbHBlcjo6UGVyY2VudGFnZU9mVmlld3BvcnQpOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGVuZ3Ro
LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpTVkdMZW5ndGhMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3Q6OnBhcnNlKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlz
dC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudC5oOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdEJhc2U6OlNWR0xpc3RCYXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RCYXNlOjp+U1ZHTGlzdEJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdEJhc2U6Om51bWJlck9mSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdEJhc2U6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RCYXNlOjppbml0
aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RCYXNlOjpnZXRGaXJzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMaXN0QmFzZTo6Z2V0TGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaXN0QmFzZTo6Z2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0QmFzZTo6aW5z
ZXJ0SXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0QmFzZTo6cmVwbGFjZUl0
ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdEJhc2U6OnJlbW92ZUl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdEJhc2U6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdDo6bnVsbEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTWFya2VyRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdOdW1iZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdOdW1iZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdC5j
cHA6CisgICAgICAgIChTVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKFNW
R051bWJlckxpc3Q6OnBhcnNlKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdC5o
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQYXRoRWxlbWVudDo6cGF0aFNlZ0xpc3QpOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdQYXRoRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6U1ZHUGF0aFNlZ0xpc3QpOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxlbWVu
dDo6U1ZHUGF0dGVybkVsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2ludC5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1BvaW50Lmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR1BvaW50TGlzdC5jcHA6CisgICAgICAgIChTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChTVkdQb2x5RWxlbWVudDo6cG9pbnRzKToK
KyAgICAgICAgKFNWR1BvbHlFbGVtZW50OjpzdmdQb2x5VG8pOgorICAgICAgICAoU1ZHUG9seUVs
ZW1lbnQ6Om5vdGlmeUF0dHJpYnV0ZUNoYW5nZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1Bv
bHlFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFNWR1BvbHlnb25FbGVtZW50Ojp0b1BhdGhEYXRhKToKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR1BvbHlsaW5lRWxlbWVu
dDo6dG9QYXRoRGF0YSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86Oik6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR1JlY3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdSZWN0
Lmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50Lmg6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdTdG9wRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHJpbmdM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3Q6OlNWR1N0cmluZ0xpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdDo6cmVzZXQpOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5j
cHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cDoKKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdUUmVmRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXN0cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6aXNWYWxpZCk6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6U1ZHVGV4dEVs
ZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQ6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQpOgorICAgICAg
ICAoU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuY3BwOgorICAgICAgICAoU1ZHVHJhbnNmb3JtTGlz
dDo6U1ZHVHJhbnNmb3JtTGlzdCk6CisgICAgICAgIChTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGVT
VkdUcmFuc2Zvcm1Gcm9tTWF0cml4KToKKyAgICAgICAgKFNWR1RyYW5zZm9ybUxpc3Q6OmNvbnNv
bGlkYXRlKToKKyAgICAgICAgKFNWR1RyYW5zZm9ybUxpc3Q6OmNvbmNhdGVuYXRlKToKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdVUklSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5oOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdWaWV3RWxlbWVudC5oOgorCiAyMDA2LTA5LTEwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAtIHRlc3QgZm9yIGh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDcKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkoUmV2aXNpb24gMTYyODgp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShBcmJlaXRz
a29waWUpCkBAIC05MCwxMiArOTAsMTIgQEAKIAogICAgICRjb2RlR2VuZXJhdG9yLT5SZW1vdmVF
eGNsdWRlZEF0dHJpYnV0ZXNBbmRGdW5jdGlvbnMoJGRhdGFOb2RlLCAiSlMiKTsKIAotICAgICMg
U3RhcnQgYWN0dWFsIGdlbmVyYXRpb24uLgorICAgICMgU3RhcnQgYWN0dWFsIGdlbmVyYXRpb24u
Li4KICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhlYWRlcigkZGF0YU5vZGUpOwogICAgICRvYmplY3Qt
PkdlbmVyYXRlSW1wbGVtZW50YXRpb24oJGRhdGFOb2RlKTsKLSAgICAKKwogICAgIG15ICRuYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOwotICAgIAorCiAgICAgIyBPcGVuIGZpbGVzIGZvciB3cml0aW5n
Li4uCiAgICAgbXkgJGhlYWRlckZpbGVOYW1lID0gIiRvdXRwdXREaXIvSlMkbmFtZS5oIjsKICAg
ICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvSlMkbmFtZS5jcHAiOwpAQCAtMTU5LDcg
KzE1OSwxMSBAQAogICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2pvaW5lZE5hbWV9LmgifSA9IDE7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBkZWZhdWx0LCBpbmNsdWRlIHRoZSBzYW1lIG5hbWVk
IGZpbGUKLSAgICAgICAgJGltcGxJbmNsdWRlc3siJHt0eXBlfS5oIn0gPSAxOworICAgICAgICBp
ZiAoJHR5cGUgbmUgIlNWR1JlY3QiIGFuZAorICAgICAgICAgICAgJHR5cGUgbmUgIlNWR1BvaW50
IiBhbmQKKyAgICAgICAgICAgICR0eXBlIG5lICJTVkdOdW1iZXIiKSB7CisgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyIke3R5cGV9LmgifSA9IDE7CisgICAgICAgIH0KICAgICB9CiAKICAgICAj
IGFkZGl0aW9uYWwgaW5jbHVkZXMgKHRoaW5ncyBuZWVkZWQgdG8gY29tcGlsZSB0aGUgYmluZGlu
Z3MgYnV0IG5vdCB0aGUgaGVhZGVyKQpAQCAtMTc5LDExICsxODMsMTEgQEAKIHsKICAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgCisKICAgICBt
eSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKICAgICBteSAkY2xhc3NOYW1lID0g
IkpTJGludGVyZmFjZU5hbWUiOwogICAgIG15ICRpbXBsQ2xhc3NOYW1lID0gJGludGVyZmFjZU5h
bWU7Ci0gICAgCisKICAgICAjIFdlIG9ubHkgc3VwcG9ydCBtdWx0aXBsZSBwYXJlbnRzIHdpdGgg
U1ZHIChmb3Igbm93KS4KICAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMSkgewogICAg
ICAgICBkaWUgIkEgY2xhc3MgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCIgdW5sZXNz
ICRpbnRlcmZhY2VOYW1lID1+IC9TVkcvOwpAQCAtMjI1LDggKzIyOSw4IEBACiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICAKICAgICAj
IEltcGxlbWVudGF0aW9uIGNsYXNzIGZvcndhcmQgZGVjbGFyYXRpb24KLSAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiY2xhc3MgJGltcGxDbGFzc05hbWU7XG5cbiIpOwotICAgIAorICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJjbGFzcyAkaW1wbENsYXNzTmFtZTtcblxuIikgdW5sZXNzKCRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW1wbENsYXNzTmFtZSkpOworCiAgICAgIyBD
bGFzcyBkZWNsYXJhdGlvbgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkY2xhc3NO
YW1lIDogcHVibGljICRwYXJlbnRDbGFzc05hbWUge1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgInB1YmxpYzpcbiIpOwpAQCAtNDM5LDcgKzQ0Myw3IEBACiB7CiAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gIAorCiAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGRhdGFOb2RlLT5uYW1lOwogICBteSAkY2xhc3NOYW1lID0gIkpTJGludGVyZmFjZU5h
bWUiOwogICBteSAkaW1wbENsYXNzTmFtZSA9ICRpbnRlcmZhY2VOYW1lOwpAQCAtNDU2LDkgKzQ2
MCwyMyBAQAogICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwsICIjaW5jbHVkZSBcImNvbmZpZy5o
XCJcblxuIik7CiAgIAogICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgIiNpZmRlZiAke2NvbmRp
dGlvbmFsfV9TVVBQT1JUXG5cbiIpIGlmICRjb25kaXRpb25hbDsKKworICBpZiAoJGNsYXNzTmFt
ZSA9fiAvXkpTU1ZHQW5pbWF0ZWQvKSB7CisgICAgbXkgJHR5cGUgPSAkaW50ZXJmYWNlTmFtZTsK
KyAgICAkdHlwZSA9fiBzL1NWR0FuaW1hdGVkLy87IAorCisgICAgaWYgKCR0eXBlIGVxICJTVkdS
ZWN0IiBvcgorICAgICAgICAkdHlwZSBlcSAiU1ZHUG9pbnQiIG9yCisgICAgICAgICR0eXBlIGVx
ICJTVkdOdW1iZXIiKSB7CisgICAgICAkaW1wbEluY2x1ZGVzeyJKU1NWRyR0eXBlLmgifSA9IDE7
CisgICAgfSBlbHNlIHsKKyAgICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUg
XCJQbGF0Zm9ybVN0cmluZy5oXCJcbiIpIGlmKCR0eXBlIGVxICJTdHJpbmciKTsKKyAgICB9Cisg
IH0KICAgCisgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCJTVkdBbmltYXRl
ZFRlbXBsYXRlLmhcIlxuIikgaWYoJGNsYXNzTmFtZSA9fiAvU1ZHLyk7CiAgIHB1c2goQGltcGxD
b250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCIkY2xhc3NOYW1lLmhcIlxuXG4iKTsKLQorIAogICBB
ZGRJbmNsdWRlc0ZvclR5cGUoJGludGVyZmFjZU5hbWUpOwogCiAgIEBpbXBsQ29udGVudCA9ICgp
OwpAQCAtMTEwNSwyMiArMTEyMyw2IEBACiAgICAgCiAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVy
YXRvci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+dHlwZSk7CiAKLSAgICAjIEZJWE1FOiBUZW1w
b3JhcnkgaGFjayB1bnRpbCB3ZSBpbXBsZW1lbnQgdGhlIEpTU1ZHQW5pbWF0ZWQqIHN0dWZmLgot
Ci0gICAgaWYoJHR5cGUgZXEgIlNWR0FuaW1hdGVkU3RyaW5nIikgewotICAgICAgICAkdHlwZSA9
ICJET01TdHJpbmciOwotICAgIH0gZWxzaWYoJHR5cGUgZXEgIlNWR0FuaW1hdGVkQm9vbGVhbiIp
IHsKLSAgICAgICAgJHR5cGUgPSAiYm9vbGVhbiI7Ci0gICAgfSBlbHNpZigkdHlwZSBlcSAiU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbiIpIHsKLSAgICAgICAgJHR5cGUgPSAibG9uZyI7Ci0gICAgfSBl
bHNpZigkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRJbnRlZ2VyIikgewotICAgICAgICAkdHlwZSA9ICJs
b25nIjsKLSAgICB9IGVsc2lmKCR0eXBlIGVxICJTVkdBbmltYXRlZE51bWJlciIpIHsKLSAgICAg
ICAgJHR5cGUgPSAiZG91YmxlIjsKLSAgICB9IGVsc2lmKCR0eXBlIGVxICJTVkdBbmltYXRlZExl
bmd0aCIpIHsKLSAgICAgICAgJHR5cGUgPSAiU1ZHTGVuZ3RoIjsKLSAgICB9Ci0KICAgICBpZiAo
JHR5cGUgZXEgImJvb2xlYW4iKSB7CiAgICAgICAgIHJldHVybiAianNCb29sZWFuKCR2YWx1ZSki
OwogICAgIH0gZWxzaWYgKCR0eXBlIGVxICJsb25nIiBvcgpAQCAtMTIyNSw2ICsxMjI3LDEzIEBA
CiAgICAgICAgICRqb2luZWROYW1lID1+IHMvQWJzfFJlbC8vOwogICAgICAgICAkaW1wbEluY2x1
ZGVzeyIkam9pbmVkTmFtZS5oIn0gPSAxOwogICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZh
bHVlKSI7CisgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0
eXBlKSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJKUyR0eXBlLmgifSA9IDE7CisgICAgICAg
ICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CisgICAgICAgICR0ZW1wVmFsdWUgPSAkdmFs
dWU7CisgICAgICAgICR0ZW1wVmFsdWUgPX4gcy9cKFwpLy87CisgICAgICAgICR0ZW1wVmFsdWUg
Lj0gIkFuaW1hdGVkKCkiOworICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJHRlbXBWYWx1ZSki
OwogICAgIH0KIAogICAgICMgRGVmYXVsdCwgaW5jbHVkZSBoZWFkZXIgd2l0aCBzYW1lIG5hbWUu
CkBAIC0xNDA2LDcgKzE0MTUsMTAgQEAKICAgICAgICAgcHJpbnQgJElNUEwgQGltcGxDb250ZW50
SGVhZGVyOwogICAgICAgICAKICAgICAgICAgZm9yZWFjaCBteSAkaW1wbEluY2x1ZGUgKHNvcnQg
a2V5cyglaW1wbEluY2x1ZGVzKSkgewotICAgICAgICAgICAgcHJpbnQgJElNUEwgIiNpbmNsdWRl
IFwiJGltcGxJbmNsdWRlXCJcbiI7CisgICAgICAgICAgICBteSAkY2hlY2tUeXBlID0gJGltcGxJ
bmNsdWRlOworICAgICAgICAgICAgJGNoZWNrVHlwZSA9fiBzL1wuaC8vOworICAgIAorICAgICAg
ICAgICAgcHJpbnQgJElNUEwgIiNpbmNsdWRlIFwiJGltcGxJbmNsdWRlXCJcbiIgdW5sZXNzKCRj
b2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkY2hlY2tUeXBlKSk7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHByaW50ICRJTVBMIEBpbXBsQ29udGVudDsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShSZXZpc2lvbiAxNjI4OCkKKysr
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShBcmJlaXRza29waWUp
CkBAIC0xMDQsNyArMTA0LDYgQEAKIAogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkdG9wQmFzZUNsYXNzID0gIiI7CiAKICAgICBteSBA
cGFyZW50cyA9IEB7JGRhdGFOb2RlLT5wYXJlbnRzfTsKICAgICBteSAkcGFyZW50c01heCA9IEB7
JGRhdGFOb2RlLT5wYXJlbnRzfTsKQEAgLTE3MCwyMjggKzE2OSw3IEBACiAgICAgICAgIH0KICAg
ICB9CiB9Ci0gCi0jIEhlbHBlciBmb3IgYWxsIENvZGVHZW5lcmF0b3IqKioucG0gbW9kdWxlcwot
c3ViIEZpbmRUb3BCYXNlQ2xhc3MKLXsKLSAgICAjIElmIHlvdSBhcmUgcHJvY2Vzc2luZyB0aGUg
J0F0dHInIGludGVyZmFjZSwgaXQgaGFzIHRoZSBzaW5nbGUKLSAgICAjIHBhcmVudCBpbnRlcmZh
Y2UgJ05vZGUnLCB3aGljaCBpcyB0aGUgdG9wbW9zdCBiYXNlIGNsYXNzLiBSZXR1cm4gaXQuCi0g
ICAgIwotICAgICMgSXQgZ2V0cyB0cmlja2llciBmb3IgaWUuIHRoZSAnUGxhdGZvcm1Nb3VzZUV2
ZW50JyBpbnRlcmZhY2UsIHdob3NlIHBhcmVudCBpcwotICAgICMgdGhlICdVSUV2ZW50JyBpbnRl
cmZhY2UsIHdob3NlIHBhcmVudCBpcyB0aGUgJ0V2ZW50JyBpbnRlcmZhY2UuIFJldHVybiBpdC4K
LSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZSA9IFN0cmlwTW9kdWxl
KHNoaWZ0KTsKLSAgICBteSAkdG9wQmFzZUNsYXNzID0gIiI7Ci0gIAotICAgICMgTG9vcCB1bnRp
bCB3ZSBmb3VuZCB0aGUgdG9wIG1vc3QgYmFzZSBjbGFzcyBmb3IgJ2ludGVyZmFjZScKLSAgICB3
aGlsZSgkaW50ZXJmYWNlIG5lICIiKSB7Ci0gICAgICAgICMgU3RlcCAjMTogRmluZCB0aGUgSURM
IGZpbGUgYXNzb2NpYXRlZCB3aXRoICdpbnRlcmZhY2UnCi0gICAgICAgICRlbmRDb25kaXRpb24g
PSAwOyAkZm91bmRGaWxlbmFtZSA9ICIiOwogCi0gICAgICAgIGZvcmVhY2ggKEB7JHVzZURpcmVj
dG9yaWVzfSkgewotICAgICAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiJGludGVyZmFj
ZS5pZGwiLCAkXywgJF8sIDApIGlmICRmb3VuZEZpbGVuYW1lIGVxICIiOwotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKCRmb3VuZEZpbGVuYW1lIG5lICIiKSB7Ci0gICAgICAgICAgICBwcmludCAi
ICB8ICB8PiAgUGFyc2luZyBwYXJlbnQgSURMIFwiJGZvdW5kRmlsZW5hbWVcIiBmb3IgaW50ZXJm
YWNlIFwiJGludGVyZmFjZVwiXG4iOwotCi0gICAgICAgICAgICAjIFN0ZXAgIzI6IFBhcnNlIHRo
ZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCi0gICAgICAgICAgICBteSAkcGFyc2Vy
ID0gSURMUGFyc2VyLT5uZXcoMSk7Ci0gICAgICAgICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2Vy
LT5QYXJzZSgkZm91bmRGaWxlbmFtZSk7Ci0KLSAgICAgICAgICAgICMgU3RlcCAjMzogQ2hlY2sg
d2hldGVyIHRoZSBwYXJzZWQgSURMIGZpbGUgaGFzIHBhcmVudHMKLSAgICAgICAgICAgIGZvcmVh
Y2ggbXkgJGNsYXNzIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKLSAgICAgICAgICAgICAgICBt
eSAkdXNlSW50ZXJmYWNlID0gJGludGVyZmFjZTsKLQotICAgICAgICAgICAgICAgIGlmICgkY2xh
c3MtPm5hbWUgZXEgJHVzZUludGVyZmFjZSkgewotICAgICAgICAgICAgICAgICAgICBteSBAcGFy
ZW50cyA9IEB7JGNsYXNzLT5wYXJlbnRzfTsKLSAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmVu
dHNNYXggPSBAeyRjbGFzcy0+cGFyZW50c307Ci0KLSAgICAgICAgICAgICAgICAgICAgJGludGVy
ZmFjZSA9ICIiOwotCi0gICAgICAgICAgICAgICAgICAgICMgRXhjZXB0aW9uOiBGb3IgdGhlIERP
TSAnTm9kZScgaXMgb3VyIHRvcG1vc3QgYmFzZWNsYXNzLCBub3QgRXZlbnRUYXJnZXQuCi0gICAg
ICAgICAgICAgICAgICAgIGlmICgoJHBhcmVudHNNYXggPiAwKSBhbmQgKCRwYXJlbnRzWzBdIG5l
ICJldmVudHM6OkV2ZW50VGFyZ2V0IikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICRpbnRl
cmZhY2UgPSBTdHJpcE1vZHVsZSgkcGFyZW50c1swXSk7Ci0gICAgICAgICAgICAgICAgICAgIH0g
ZWxzaWYgKCEkY2xhc3MtPm5vRFB0ckZsYWcpIHsgIyBJbmNsdWRlICdtb2R1bGUnIC4uLgotICAg
ICAgICAgICAgICAgICAgICAgICAgJHRvcEJhc2VDbGFzcyA9ICRkb2N1bWVudC0+bW9kdWxlIC4g
Ijo6IiAuICRjbGFzcy0+bmFtZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRpZSgi
Q291bGQgTk9UIGZpbmQgc3BlY2lmaWVkIHBhcmVudCBpbnRlcmZhY2UgXCIkaW50ZXJmYWNlXCIh
XG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAkdG9wQmFzZUNsYXNzOwotfQot
Ci0jIEhlbHBlciBmb3IgYWxsIElETENvZGVHZW5lcmF0b3IqKioucG0gbW9kdWxlcwotc3ViIENs
YXNzSGFzV3JpdGVhYmxlQXR0cmlidXRlcwotewotICAgICMgRGV0ZXJtaW5lIHdoZXRlciBhIGdp
dmVuIGludGVyZmFjZSBoYXMgYW55IHdyaXRlYWJsZSBhdHRyaWJ1dGVzLi4uCi0gICAgbXkgJG9i
amVjdCA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2UgPSBTdHJpcE1vZHVsZShzaGlmdCk7Ci0g
ICAgbXkgJGhhc1dyaXRlYWJsZUF0dHJpYnV0ZXMgPSAwOwotCi0gICAgIyBTdGVwICMxOiBGaW5k
IHRoZSBJREwgZmlsZSBhc3NvY2lhdGVkIHdpdGggJ2ludGVyZmFjZScKLSAgICAkZW5kQ29uZGl0
aW9uID0gMDsKLSAgICAkZm91bmRGaWxlbmFtZSA9ICIiOwotCi0gICAgZm9yZWFjaCAoQHskdXNl
RGlyZWN0b3JpZXN9KSB7Ci0gICAgICAgICRvYmplY3QtPlNjYW5EaXJlY3RvcnkoIiRpbnRlcmZh
Y2UuaWRsIiwgJF8sICRfLCAwKSBpZiAkZm91bmRGaWxlbmFtZSBlcSAiIjsKLSAgICB9Ci0KLSAg
ICAjIFN0ZXAgIzI6IFBhcnNlIHRoZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCi0g
ICAgbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOwotICAgIG15ICRkb2N1bWVudCA9ICRw
YXJzZXItPlBhcnNlKCRmb3VuZEZpbGVuYW1lKTsKLQotICAgICMgU3RlcCAjMzogQ2hlY2sgd2hl
dGVyIHRoZSBwYXJzZWQgSURMIGZpbGUgaGFzIHBhcmVudHMKLSAgICBmb3JlYWNoIG15ICRjbGFz
cyAoQHskZG9jdW1lbnQtPmNsYXNzZXN9KSB7Ci0gICAgICAgIGlmICgkY2xhc3MtPm5hbWUgZXEg
JGludGVyZmFjZSkgewotICAgICAgICAgICAgZm9yZWFjaCAoQHskY2xhc3MtPmF0dHJpYnV0ZXN9
KSB7Ci0gICAgICAgICAgICAgICAgJGhhc1dyaXRlYWJsZUF0dHJpYnV0ZXMgPSAxIGlmICgkXy0+
dHlwZSBuZSAicmVhZG9ubHkgYXR0cmlidXRlIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICByZXR1cm4gJGhhc1dyaXRlYWJsZUF0dHJpYnV0ZXM7Ci19Ci0KLSMgSGVs
cGVyIGZvciBhbGwgSURMQ29kZUdlbmVyYXRvcioqKi5wbSBtb2R1bGVzCi1zdWIgQWxsQ2xhc3Nl
c1doaWNoSW5oZXJpdEZyb20KLXsKLSAgICAjIERldGVybWluZSB3aGljaCBpbnRlcmZhY2VzIGlu
aGVyaXQgZnJvbSB0aGUgcGFzc2VkIG9uZS4uLgotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLQot
ICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKLSAgICAkaW50ZXJmYWNlID1+IHMvKFthLXpBLVow
LTldKjo6KSovLzsgIyBTdHJpcCBuYW1lc3BhY2UocykuCi0KLSAgICAjIFN0ZXAgIzE6IExvb3Ag
dGhyb3VnaCBhbGwgaW5jbHVkZWQgZGlyZWN0b3JpZXMgdG8gc2NhbiBmb3IgYWxsIElETCBmaWxl
cy4uLgotICAgIG15IEBhbGxJRExGaWxlcyA9ICgpOwotICAgIGZvcmVhY2ggKEB7JHVzZURpcmVj
dG9yaWVzfSkgewotICAgICAgICAkZW5kQ29uZGl0aW9uID0gMDsKLSAgICAgICAgQGZvdW5kRmls
ZW5hbWVzID0gKCk7Ci0KLSAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiYWxsaWRscyIs
ICRfLCAkXywgMSk7Ci0gICAgICAgIGZvcmVhY2ggKEBmb3VuZEZpbGVuYW1lcykgewotICAgICAg
ICAgICAgcHVzaChAYWxsSURMRmlsZXMsICRfKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgICMg
U3RlcCAjMjogTG9vcCB0aHJvdWdoIGFsbCBmb3VuZCBJREwgZmlsZXMuLi4KLSAgICBteSAlY2xh
c3NEYXRhQ2FjaGU7Ci0gICAgZm9yZWFjaCAoQGFsbElETEZpbGVzKSB7Ci0gICAgICAgICMgU3Rl
cCAjMzogUGFyc2UgdGhlIGZvdW5kIElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KLSAgICAgICAg
bXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOwotICAgICAgICBteSAkZG9jdW1lbnQgPSAk
cGFyc2VyLT5QYXJzZSgkXyk7Ci0KLSAgICAgICAgIyBTdGVwICM0OiBDYWNoZSB0aGUgcGFyc2Vk
IElETCBkYXRhc3RydWN0dXJlcy4KLSAgICAgICAgbXkgJGNhY2hlSGFuZGxlID0gJF87ICRjYWNo
ZUhhbmRsZSA9fiBzLy4qXC8oLiopXC5pZGwvLzsKLSAgICAgICAgJGNsYXNzRGF0YUNhY2hleyQx
fSA9ICRkb2N1bWVudDsKLSAgICB9Ci0KLSAgICBteSAlY2xhc3NEYXRhQ2FjaGVDb3B5ID0gJWNs
YXNzRGF0YUNhY2hlOyAjIFByb3RlY3QhCi0KLSAgICAjIFN0ZXAgIzU6IExvb3AgdGhyb3VnaCBh
bGwgY2FjaGVkIElETCBkb2N1bWVudHMuLi4KLSAgICBteSBAY2xhc3NMaXN0ID0gKCk7Ci0gICAg
d2hpbGUgKG15KCRuYW1lLCAkZG9jdW1lbnQpID0gZWFjaCAlY2xhc3NEYXRhQ2FjaGUpIHsKLSAg
ICAgICAgJGVuZENvbmRpdGlvbiA9IDA7Ci0KLSAgICAgICAgIyBTdGVwICM2OiBDaGVjayB3aGV0
ZXIgdGhlIHBhcnNlZCBJREwgZmlsZSBoYXMgcGFyZW50cy4uLgotICAgICAgICAkb2JqZWN0LT5S
ZWN1cnNpdmVJbmhlcml0YW5jZUhlbHBlcigkZG9jdW1lbnQsICRpbnRlcmZhY2UsIFxAY2xhc3NM
aXN0LCBcJWNsYXNzRGF0YUNhY2hlQ29weSk7Ci0gICAgfQotCi0gICAgIyBTdGVwICM3OiBSZXR1
cm4gbGlzdCBvZiBhbGwgY2xhc3NlcyB3aGljaCBpbmhlcml0IGZyb20gbWUhCi0gICAgcmV0dXJu
IFxAY2xhc3NMaXN0OwotfQotCi0jIEhlbHBlciBmb3IgYWxsIElETENvZGVHZW5lcmF0b3IqKiou
cG0gbW9kdWxlcwotc3ViIEFsbENsYXNzZXMKLXsKLSAgICAjIERldGVybWluZXMgYWxsIGludGVy
ZmFjZXMgd2l0aGluIGEgcHJvamVjdC4uLgotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLQotICAg
ICMgU3RlcCAjMTogTG9vcCB0aHJvdWdoIGFsbCBpbmNsdWRlZCBkaXJlY3RvcmllcyB0byBzY2Fu
IGZvciBhbGwgSURMIGZpbGVzLi4uCi0gICAgbXkgQGFsbElETEZpbGVzID0gKCk7Ci0gICAgZm9y
ZWFjaCAoQHskdXNlRGlyZWN0b3JpZXN9KSB7Ci0gICAgICAgICRlbmRDb25kaXRpb24gPSAwOwot
ICAgICAgICBAZm91bmRGaWxlbmFtZXMgPSAoKTsKLQotICAgICAgICAkb2JqZWN0LT5TY2FuRGly
ZWN0b3J5KCJhbGxpZGxzIiwgJF8sICRfLCAxKTsKLSAgICAgICAgZm9yZWFjaCAoQGZvdW5kRmls
ZW5hbWVzKSB7Ci0gICAgICAgICAgICBwdXNoKEBhbGxJRExGaWxlcywgJF8pOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgIyBTdGVwICMyOiBMb29wIHRocm91Z2ggYWxsIGZvdW5kIElETCBmaWxl
cy4uLgotICAgIG15IEBjbGFzc0xpc3QgPSAoKTsKLSAgICBmb3JlYWNoIChAYWxsSURMRmlsZXMp
IHsKLSAgICAgICAgIyBTdGVwICMzOiBQYXJzZSB0aGUgZm91bmQgSURMIGZpbGUgKGluIHF1aWV0
IG1vZGUpLgotICAgICAgICBteSAkcGFyc2VyID0gSURMUGFyc2VyLT5uZXcoMSk7Ci0gICAgICAg
IG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNlKCRfKTsKLQotICAgICAgICAjIFN0ZXAgIzQ6
IENoZWNrIGlmIGNsYXNzIGlzIGEgYmFzZWNsYXNzLi4uCi0gICAgICAgIGZvcmVhY2ggbXkgJGNs
YXNzIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKLSAgICAgICAgICAgIG15ICRpZGVudGlmaWVy
ID0gJGNsYXNzLT5uYW1lOwotICAgICAgICAgICAgbXkgJG5hbWVzcGFjZSA9ICRtb2R1bGVOYW1l
c3BhY2VIYXNoeyRkb2N1bWVudC0+bW9kdWxlfTsKLSAgICAgICAgICAgICRpZGVudGlmaWVyID0g
JG5hbWVzcGFjZSAuICI6OiIgLiAkaWRlbnRpZmllciBpZiAkbmFtZXNwYWNlIG5lICIiOwotCi0g
ICAgICAgICAgICBteSBAYXJyYXkgPSBncmVwIHsgL14kaWRlbnRpZmllciQvIH0gQCRjbGFzc0xp
c3Q7Ci0KLSAgICAgICAgICAgIG15ICRhcnJheVNpemUgPSBAYXJyYXk7Ci0gICAgICAgICAgICBp
ZiAoJGFycmF5U2l6ZSBlcSAwKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAY2xhc3NMaXN0LCAk
aWRlbnRpZmllcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAjIFN0
ZXAgIzc6IFJldHVybiBsaXN0IG9mIGFsbCBiYXNlIGNsYXNzZXMhCi0gICAgcmV0dXJuIFxAY2xh
c3NMaXN0OwotfQotCi0jIEludGVybmFsIGhlbHBlciBmb3IgJ0FsbENsYXNzZXNXaGljaEluaGVy
aXRGcm9tJwotc3ViIFJlY3Vyc2l2ZUluaGVyaXRhbmNlSGVscGVyCi17Ci0gICAgbXkgJG9iamVj
dCA9IHNoaWZ0OwotCi0gICAgbXkgJGRvY3VtZW50ID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFj
ZSA9IHNoaWZ0OwotICAgIG15ICRjbGFzc0xpc3QgPSBzaGlmdDsKLSAgICBteSAkY2xhc3NEYXRh
Q2FjaGUgPSBzaGlmdDsKLQotICAgIHJldHVybiAxIGlmICRlbmRDb25kaXRpb24gZXEgMTsKLQot
ICAgIGZvcmVhY2ggbXkgJGNsYXNzIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKLSAgICAgICAg
Zm9yZWFjaCAoQHskY2xhc3MtPnBhcmVudHN9KSB7Ci0gICAgICAgICAgICBteSAkY2FjaGVIYW5k
bGUgPSBTdHJpcE1vZHVsZSgkXyk7Ci0KLSAgICAgICAgICAgIGlmICgkY2FjaGVIYW5kbGUgZXEg
JGludGVyZmFjZSkgewotICAgICAgICAgICAgICAgIG15ICRpZGVudGlmaWVyID0gJGRvY3VtZW50
LT5tb2R1bGUgLiAiOjoiIC4gJGNsYXNzLT5uYW1lOwotICAgICAgICAgICAgICAgIG15IEBhcnJh
eSA9IGdyZXAgeyAvXiRpZGVudGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsgbXkgJGFycmF5U2l6ZSA9
IEBhcnJheTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkY2xhc3NMaXN0LCAkaWRlbnRpZmllcikg
aWYgJGFycmF5U2l6ZSBlcSAwOwotCi0gICAgICAgICAgICAgICAgJGVuZENvbmRpdGlvbiA9IDE7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuICRlbmRDb25kaXRpb247Ci0gICAgICAgICAgICB9IGVs
c2UgeyAKLSAgICAgICAgICAgICAgICBteSAlY2FjaGUgPSAleyRjbGFzc0RhdGFDYWNoZX07Ci0K
LSAgICAgICAgICAgICAgICBteSAkY2hlY2tEb2N1bWVudCA9ICRjYWNoZXskY2FjaGVIYW5kbGV9
OwotICAgICAgICAgICAgICAgICRlbmRDb25kaXRpb24gPSAkb2JqZWN0LT5SZWN1cnNpdmVJbmhl
cml0YW5jZUhlbHBlcigkY2hlY2tEb2N1bWVudCwgJGludGVyZmFjZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNs
YXNzTGlzdCwgJGNsYXNzRGF0YUNhY2hlKTsKLSAgICAgICAgICAgICAgICBpZiAoJGVuZENvbmRp
dGlvbiBlcSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIG15ICRpZGVudGlmaWVyID0gJGRvY3Vt
ZW50LT5tb2R1bGUgLiAiOjoiIC4gJGNsYXNzLT5uYW1lOwotICAgICAgICAgICAgICAgICAgICBt
eSBAYXJyYXkgPSBncmVwIHsgL14kaWRlbnRpZmllciQvIH0gQCRjbGFzc0xpc3Q7IG15ICRhcnJh
eVNpemUgPSBAYXJyYXk7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQCRjbGFzc0xpc3QsICRp
ZGVudGlmaWVyKSBpZiAkYXJyYXlTaXplIGVxIDA7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICRlbmRDb25kaXRpb247Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuICRlbmRDb25kaXRpb247Ci19Ci0KICMgSGVscGVy
IGZvciBhbGwgQ29kZUdlbmVyYXRvcioqKi5wbSBtb2R1bGVzCiBzdWIgUmVtb3ZlRXhjbHVkZWRB
dHRyaWJ1dGVzQW5kRnVuY3Rpb25zCiB7CkBAIC00MzMsNiArMjExLDI0IEBACiAgICAgcmV0dXJu
IDA7CiB9CiAKK3N1YiBJc1NWR0FuaW1hdGVkVHlwZQoreworICAgIG15ICRvYmplY3QgPSBzaGlm
dDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNW
R0FuaW1hdGVkQW5nbGUiIG9yCisgICAgICAgICAgICAgICAgJHR5cGUgZXEgIlNWR0FuaW1hdGVk
Qm9vbGVhbiIgb3IKKyAgICAgICAgICAgICAgICAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbiIgb3IKKyAgICAgICAgICAgICAgICAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRJbnRlZ2VyIiBv
cgorICAgICAgICAgICAgICAgICR0eXBlIGVxICJTVkdBbmltYXRlZExlbmd0aCIgb3IKKyAgICAg
ICAgICAgICAgICAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWROdW1iZXIiIG9yCisgICAgICAgICAgICAg
ICAgJHR5cGUgZXEgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyIgb3IKKyAgICAgICAg
ICAgICAgICAkdHlwZSBlcSAiU1ZHQW5pbWF0ZWRSZWN0IiBvcgorICAgICAgICAgICAgICAgICR0
eXBlIGVxICJTVkdBbmltYXRlZFN0cmluZyI7CisKKyAgICByZXR1cm4gMDsgCit9CisKICMgSW50
ZXJuYWwgSGVscGVyCiBzdWIgU2NhbkRpcmVjdG9yeQogewpJbmRleDogV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQko
UmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKEFyYmVpdHNr
b3BpZSkKQEAgLTIzMiw4ICsyMzIsMTYgQEAKICAgICBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IFwKICAgICBKU1JhbmdlLmggXAogICAgIEpTU1ZHQW5nbGUuaCBcCisJSlNTVkdBbmltYXRlZEFu
Z2xlLmggXAorCUpTU1ZHQW5pbWF0ZWRCb29sZWFuLmggXAorCUpTU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbi5oIFwKKwlKU1NWR0FuaW1hdGVkSW50ZWdlci5oIFwKICAgICBKU1NWR0FuaW1hdGVkTGVu
Z3RoLmggXAogICAgIEpTU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJSlNTVkdBbmltYXRlZFBvaW50
cy5oIFwKKwlKU1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlKU1NWR0FuaW1h
dGVkUmVjdC5oIFwKKwlKU1NWR0FuaW1hdGVkU3RyaW5nLmggXAogICAgIEpTU1ZHQ29sb3IuaCBc
CiAgICAgSlNTVkdEb2N1bWVudC5oIFwKICAgICBKU1NWR0VsZW1lbnQuaCBcCkBAIC0yNjIsNiAr
MjcwLDcgQEAKICAgICBKU1NWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCiAgICAgSlNTVkdQYXRoU2Vn
TW92ZXRvUmVsLmggXAogICAgIEpTU1ZHUG9pbnRUYWJsZS5jcHAgXAorCUpTU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oIFwKICAgICBKU1NWR1JlY3RUYWJsZS5jcHAgXAogICAgIEpTU1ZHU1ZHRWxl
bWVudC5oIFwKICAgICBKU1NWR1RyYW5zZm9ybS5oIFwKSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkoUmV2aXNpb24gMTYy
ODgpCisrKyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CShBcmJlaXRza29waWUpCkBAIC02NiwxNyAr
NjYsMzMgQEAKICMgcnVsZXMgZm9yIGdlbmVyYXRlZCBmaWxlcwogSUYgKFdFQktJVF9VU0VfU1ZH
X1NVUFBPUlQpCiBzZXQoSURMX0JJTkRJTkdTX1NWRworCisjIFRoZXNlIHRocmVlIGRvbid0IG5l
ZWQgZ2VuZXJhdGlvbiEKKyMKICMga3N2ZzIvc3ZnL1NWR051bWJlci5pZGwKICMga3N2ZzIvc3Zn
L1NWR1BvaW50LmlkbAogIyBrc3ZnMi9zdmcvU1ZHUmVjdC5pZGwKKworIyBUT0RPOiBGaXggZ2Vu
ZXJhdGlvbgogIyBrc3ZnMi9zdmcvU1ZHRXZlbnQuaWRsCiAKICAga3N2ZzIvc3ZnL1NWR0FuZ2xl
LmlkbAorICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwKKyAga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkQm9vbGVhbi5pZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRs
CisgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsCisgIGtzdmcyL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aC5pZGwgCisgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGwKKyMga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaWRsCisjIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBv
aW50cy5pZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwK
KyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5pZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
U3RyaW5nLmlkbAorCisgIAogICBrc3ZnMi9zdmcvU1ZHTWF0cml4LmlkbAogICBrc3ZnMi9zdmcv
U1ZHVHJhbnNmb3JtLmlkbAogICBrc3ZnMi9zdmcvU1ZHTGVuZ3RoLmlkbAotICBrc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguaWRsCi0gIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGwK
ICAga3N2ZzIvc3ZnL1NWR0VsZW1lbnQuaWRsCiAgIGtzdmcyL3N2Zy9TVkdDb2xvci5pZGwKICAg
a3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmlkbApAQCAtMTAzLDYgKzExOSw3IEBACiAgIGtzdmcyL3N2
Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRsCiAgIGtzdmcyL3N2Zy9TVkdQYXRoU2Vn
TW92ZXRvQWJzLmlkbAogICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ01vdmV0b1JlbC5pZGwKKyAga3N2
ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCiApCiBFTkRJRiAoV0VCS0lUX1VTRV9T
VkdfU1VQUE9SVCkKIApAQCAtMjQwLDggKzI1Nyw5IEBACiBjcmVhdGVfY3BwX2x1dChiaW5kaW5n
cy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFi
bGUuY3BwIGJpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwKQogCiBJRiAoV0VC
S0lUX1VTRV9TVkdfU1VQUE9SVCkKLSAgY3JlYXRlX2NwcF9sdXQoa3N2ZzIvYmluZGluZ3MvanMv
SlNTVkdQb2ludC5jcHAgSlNTVkdQb2ludFRhYmxlLmNwcCBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NW
R1BvaW50LmNwcCkKLSAgY3JlYXRlX2NwcF9sdXQoa3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0
LmNwcCBKU1NWR1JlY3RUYWJsZS5jcHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCkK
KyAgICBjcmVhdGVfY3BwX2x1dChrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5jcHAgSlNT
VkdOdW1iZXJUYWJsZS5jcHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwKQorICAg
IGNyZWF0ZV9jcHBfbHV0KGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3BwIEpTU1ZHUG9p
bnRUYWJsZS5jcHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdQb2ludC5jcHApCisgICAgY3JlYXRl
X2NwcF9sdXQoa3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCBKU1NWR1JlY3RUYWJsZS5j
cHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCkKIEVORElGIChXRUJLSVRfVVNFX1NW
R19TVVBQT1JUKQogCiBhZGRfY3VzdG9tX2NvbW1hbmQoT1VUUFVUICR7Q01BS0VfQ1VSUkVOVF9C
SU5BUllfRElSfS90b2tlbml6ZXIuY3BwCkBAIC0zNzksNyArMzk3LDYgQEAKICAgICBrc3ZnMi9z
dmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwCiAgICAga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKLSAgICBrc3Zn
Mi9zdmcvU1ZHUG9pbnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKICAg
ICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1VSSVJl
ZmVyZW5jZS5jcHAKQEAgLTM5MywyOSArNDEwLDI1IEBACiAgICAga3N2ZzIvc3ZnL1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHU3R5bGVk
TG9jYXRhYmxlRWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCi0g
ICAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1RyYW5z
Zm9ybS5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmNwcAogICAg
IGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcAotICAgIGtzdmcy
L3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCiAgICAga3N2ZzIvc3ZnL1NW
R01hc2tFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCiAgICAg
a3N2ZzIvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdMYW5nU3BhY2Uu
Y3BwCiAgICAga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuY3BwCi0gICAga3N2ZzIvc3ZnL1NW
R051bWJlci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHU3R5bGFibGUuY3BwCiAgICAga3N2ZzIvc3Zn
L1NWR1BvbHlFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAK
ICMgICBrc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5jcHAKICAgICBrc3ZnMi9zdmcv
U1ZHVFNwYW5FbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5jcHAK
LSAgICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZF
Rmxvb2RFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQb2ludExpc3QuY3BwCi0gICAga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCisgICAga3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkUG9pbnRzLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmNwcAogICAg
IGtzdmcyL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdOdW1iZXJMaXN0
LmNwcApAQCAtNDI5LDcgKzQ0Miw2IEBACiAgICAga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAogICAgIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdG
RU1lcmdlTm9kZUVsZW1lbnQuY3BwCi0gICAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlz
dC5jcHAKICAgICBrc3ZnMi9zdmcvc3ZncGF0aHBhcnNlci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuY3BwCkBAIC00MzcsNyArNDQ5LDYgQEAKICAgICBrc3ZnMi9zdmcvU1ZHRkVJbWFn
ZUVsZW1lbnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5j
cHAKICAgICBrc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGguY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdBbmdsZS5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWMuY3BwCkBAIC00NTAsMzYgKzQ2MSwyOCBAQAogICAgIGtzdmcyL3N2
Zy9TVkdTZXRFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAK
ICAgICBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCi0gICAga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAotICAg
IGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHU3RyaW5n
TGlzdC5jcHAKICMgICBrc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmNwcAotICAgIGtzdmcy
L3N2Zy9TVkdSZWN0LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAogICAg
IGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmNwcAogICAgIGtzdmcyL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3Bw
CiAgICAga3N2ZzIvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRDb2xvci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGFpbnQuY3BwCiAgICAga3N2ZzIvc3Zn
L1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAogICAg
IGtzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCiAgICAga3N2
ZzIvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAotICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3QuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwCiAgICAga3N2ZzIv
c3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQ
YXRoU2VnQXJjLmNwcAotICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCiAgICAg
a3N2ZzIvc3ZnL1NWR0Rlc2NFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1h
YmxlLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdEb2N1bWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRJbnRlZ2VyLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3Bw
CiAgICAga3N2ZzIvc3ZnL1NWR1BhdGhTZWdNb3ZldG8uY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0FF
bGVtZW50LmNwcApAQCAtNDg5LDcgKzQ5Miw2IEBACiAgICAga3N2ZzIvc3ZnL1NWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljU21vb3RoLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdFbGVtZW50LmNwcAog
ICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0
cml4RWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAogICAg
IGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApJbmRleDogV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKEFyYmVpdHNrb3BpZSkKQEAgLTE0MDYs
MzcgKzE0MDYsMTEgQEAKIAkJQTg4QUQ0MTQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuZ2xlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwMjA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5nbGUuaCAqLzsgfTsKIAkJQTg4QUQ0MTUwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MDMwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwICovOyB9OwogCQlBODhBRDQxNjA5NTI0OEYwMDAxREQx
OTYgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MDQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuaCAqLzsgfTsKLQkJQTg4QUQ0MTcwOTUyNDhGMDAwMUREMTk2IC8qIFNW
R0FuaW1hdGVkQW5nbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDMEY4MDUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQW5nbGUuY3Bw
ICovOyB9OwotCQlBODhBRDQxODA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRBbmdsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MDYw
ODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLzsgfTsKLQkJQTg4QUQ0MTkw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwNzA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCAqLzsgfTsKLQkJQTg4QUQ0MUEwOTUyNDhGMDAwMURE
MTk2IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MDgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVk
Qm9vbGVhbi5oICovOyB9OwotCQlBODhBRDQxQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0
ZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEMzMjk0QjA5M0JCNzhDMDAwQjlDQUMgLyogU1ZHQW5pbWF0ZWRDb2xvci5jcHAgKi87IH07
Ci0JCUE4OEFENDFDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZENvbG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMzMjk0QTA5M0JCNzhD
MDAwQjlDQUMgLyogU1ZHQW5pbWF0ZWRDb2xvci5oICovOyB9OwotCQlBODhBRDQxRDA5NTI0OEYw
MDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwOTA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgKi87IH07Ci0JCUE4OEFENDFFMDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5oICovOyB9OwotCQlBODhBRDQxRjA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGODBCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZEludGVn
ZXIuY3BwICovOyB9OwotCQlBODhBRDQyMDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjgwQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggKi87IH07Ci0J
CUE4OEFENDIxMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwRDA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovOyB9OwotCQlBODhBRDQyMjA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODBFMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdB
bmltYXRlZExlbmd0aC5oICovOyB9OwotCQlBODhBRDQyMzA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGODBGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZExlbmd0
aExpc3QuY3BwICovOyB9OwotCQlBODhBRDQyNDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEMwRjgxMDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Lmgg
Ki87IH07Ci0JCUE4OEFENDI1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZE51bWJlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgx
MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1iZXIuY3BwICovOyB9OwotCQlBODhB
RDQyNjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODEyMDg5NzAxRjMwMEJBNTEx
NCAvKiBTVkdBbmltYXRlZE51bWJlci5oICovOyB9OwotCQlBODhBRDQyNzA5NTI0OEYwMDAxREQx
OTYgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODEzMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmlt
YXRlZE51bWJlckxpc3QuY3BwICovOyB9OwotCQlBODhBRDQyODA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjgxNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmggKi87IH07CiAJCUE4OEFENDI5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRl
ZFBhdGhEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGODE1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCAq
LzsgfTsKIAkJQTg4QUQ0MkEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODE2
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggKi87IH07CiAJCUE4OEFE
NDJCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFBvaW50cy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgxNzA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHQW5pbWF0ZWRQb2ludHMuY3BwICovOyB9OwogCQlBODhBRDQyQzA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODE4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRl
ZFBvaW50cy5oICovOyB9OwotCQlBODhBRDQyRDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGODE5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwICovOyB9OwotCQlBODhBRDQyRTA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgxQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi87IH07Ci0JCUE4OEFENDJGMDk1MjQ4RjAw
MDFERDE5NiAvKiBTVkdBbmltYXRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MUIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1h
dGVkUmVjdC5jcHAgKi87IH07Ci0JCUE4OEFENDMwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmlt
YXRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGODFDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFJlY3QuaCAqLzsgfTsKLQkJ
QTg4QUQ0MzEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODFEMDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi87IH07Ci0JCUE4OEFENDMyMDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MUUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0Fu
aW1hdGVkU3RyaW5nLmggKi87IH07CiAJCUE4OEFENDMzMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdB
bmltYXRlZFRlbXBsYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgxRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5o
ICovOyB9OwotCQlBODhBRDQzNDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGODIwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3Bw
ICovOyB9OwotCQlBODhBRDQzNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjgyMTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi87
IH07CiAJCUE4OEFENDM2MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgyMjA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovOyB9OwogCQlBODhBRDQz
NzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODIzMDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdBbmltYXRlRWxlbWVudC5oICovOyB9OwogCQlBODhBRDQzODA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MjQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCAqLzsgfTsKQEAgLTE1NDIsOCArMTUxNiw2IEBACiAJ
CUE4OEFENEExMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdNYXJrZXJFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4MzA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHTWFya2VyRWxlbWVudC5oICovOyB9OwogCQlBODhBRDRBMjA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHTWF0cml4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGODg0MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdNYXRyaXguY3BwICov
OyB9OwogCQlBODhBRDRBMzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4NTA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHTWF0cml4LmggKi87IH07Ci0JCUE4OEFENEE0MDk1MjQ4RjAwMDFERDE5NiAv
KiBTVkdOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEY4ODYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlci5jcHAgKi87IH07Ci0J
CUE4OEFENEE1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODg3MDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdOdW1iZXIuaCAqLzsgfTsKIAkJQTg4QUQ0QTYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR051
bWJlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEY4ODgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlckxpc3QuY3BwICovOyB9Owog
CQlBODhBRDRBNzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4ODkwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR051bWJlckxpc3QuaCAqLzsgfTsKIAkJQTg4QUQ0QTgwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR1BhaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGODhBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYWludC5jcHAgKi87IH07CkBA
IC0xNTc4LDggKzE1NTAsNiBAQAogCQlBODhBRDRDNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0
aFNlZ01vdmV0by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEY4QTcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdGhTZWdNb3ZldG8uaCAqLzsgfTsK
IAkJQTg4QUQ0QzYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdHRlcm5FbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOEE4MDg5NzAx
RjQwMEJBNTExNCAvKiBTVkdQYXR0ZXJuRWxlbWVudC5jcHAgKi87IH07CiAJCUE4OEFENEM3MDk1
MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QTkwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1BhdHRlcm5FbGVtZW50LmggKi87IH07Ci0JCUE4OEFENEM4MDk1MjQ4RjAwMDFERDE5NiAvKiBT
VkdQb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEMwRjhBQTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnQuY3BwICovOyB9OwotCQlBODhB
RDRDOTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOEFCMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQ
b2ludC5oICovOyB9OwogCQlBODhBRDRDQTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnRMaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
OEFDMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludExpc3QuY3BwICovOyB9OwogCQlBODhBRDRD
QjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhBRDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZH
UG9pbnRMaXN0LmggKi87IH07CiAJCUE4OEFENENDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2x5
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEMwRjhBRTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9seUVsZW1lbnQuY3BwICovOyB9OwpA
QCAtMTU5NCw4ICsxNTY0LDYgQEAKIAkJQTg4QUQ0RDUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4QjcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5oICovOyB9OwogCQlBODhBRDRENjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUmVjdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY4QjgwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
QTg4QUQ0RDcwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhCOTA4OTcwMUY0MDBCQTUx
MTQgLyogU1ZHUmVjdEVsZW1lbnQuaCAqLzsgfTsKLQkJQTg4QUQ0RDgwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR1JlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEY4QkEwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3QuY3BwICovOyB9OwotCQlB
ODhBRDREOTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QkIwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1JlY3QuaCAqLzsgfTsKIAkJQTg4QUQ0REEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1NjcmlwdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY4QkMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwICovOyB9Owog
CQlBODhBRDREQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHU2NyaXB0RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QkQwODk3MDFGNDAw
QkE1MTE0IC8qIFNWR1NjcmlwdEVsZW1lbnQuaCAqLzsgfTsKIAkJQTg4QUQ0REMwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR1NldEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QkUwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NldEVsZW1l
bnQuY3BwICovOyB9OwpAQCAtMTY0Nyw3ICsxNjE1LDYgQEAKIAkJQTg4QUQ1MEIwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR1pvb21BbmRQYW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RUIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1pvb21BbmRQ
YW4uY3BwICovOyB9OwogCQlBODhBRDUwQzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHWm9vbUFuZFBh
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4
RUMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJQTg4QUQ1MEQw
OTUyNDhGMDAwMUREMTk2IC8qIGtzdmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGOEVEMDg5NzAxRjQwMEJBNTExNCAvKiBrc3ZnLmggKi87IH07
Ci0JCUE4OEFENTE3MDk1MjQ5OUYwMDFERDE5NiAvKiBET01MaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg0MjgzRDA5MzA4QzFDMDBCNkQ0NjEg
LyogRE9NTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE4OEFENTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QTJG
MDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJQTg4QUQ1
QUEwOTUyNTEzMTAwMUREMTk2IC8qIFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY2RkIwODk3MDFGMTAwQkE1
MTE0IC8qIFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwICovOyB9OwogCQlBOEM0QTdGRDA5RDU2MzI3
MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDNEE3RUIwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1l
bnQuaCAqLzsgfTsKQEAgLTE4MTcsNiArMTc4NCw0MiBAQAogCQlBQkRERkU3RTBBNUM2RTcwMDBB
M0UxMUQgLyogUmVuZGVyUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzgwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlclBv
cHVwTWVudU1hYy5tbSAqLzsgfTsKIAkJQUJFN0I1MjMwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJl
Y2F0ZWRSZW5kZXJTZWxlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUJFN0I1MjEwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJlY2F0ZWRSZW5kZXJT
ZWxlY3QuY3BwICovOyB9OwogCQlBQkU3QjUyNDBBNDg5RjgzMDAzMTg4MUMgLyogRGVwcmVjYXRl
ZFJlbmRlclNlbGVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUJFN0I1MjIwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJlY2F0ZWRSZW5kZXJTZWxlY3Qu
aCAqLzsgfTsKKwkJQjJFNzdFNjAwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkQW5nbGUu
aWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3
N0U1NDBBQjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi87IH07CisJCUIy
RTc3RTYxMEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaWRsIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U1NTBBQjREOEVE
MDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbCAqLzsgfTsKKwkJQjJFNzdFNjIwQUI0
RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U1NjBBQjREOEVEMDA3MTgz
NTAgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwgKi87IH07CisJCUIyRTc3RTYzMEFCNEQ4
RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZEludGVnZXIuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U1NzBBQjREOEVEMDA3MTgzNTAgLyog
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCAqLzsgfTsKKwkJQjJFNzdFNjQwQUI0RDhFRDAwNzE4MzUw
IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFNTgwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVk
TGVuZ3RoLmlkbCAqLzsgfTsKKwkJQjJFNzdFNjUwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1h
dGVkTnVtYmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJFNzdFNTkwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCAq
LzsgfTsKKwkJQjJFNzdFNjYwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEu
aWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3
N0U1QTBBQjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi87IH07CisJ
CUIyRTc3RTY3MEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZFBvaW50cy5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTVCMEFCNEQ4
RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZFBvaW50cy5pZGwgKi87IH07CisJCUIyRTc3RTY4MEFC
NEQ4RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U1QzBBQjRE
OEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLzsgfTsK
KwkJQjJFNzdFNjkwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkUmVjdC5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTVEMEFCNEQ4
RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZFJlY3QuaWRsICovOyB9OworCQlCMkU3N0U2QTBBQjRE
OEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U1RTBBQjREOEVEMDA3MTgzNTAgLyog
U1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovOyB9OworCQlCMkU3N0U4NzBBQjREOTEzMDA3MTgzNTAg
LyogU1ZHRXZlbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkU3N0U2RDBBQjREOTEzMDA3MTgzNTAgLyogU1ZHRXZlbnQuaWRsICovOyB9Owor
CQlCMkU3N0U4ODBBQjREOTEzMDA3MTgzNTAgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmlkbCBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFNkUwQUI0
RDkxMzAwNzE4MzUwIC8qIFNWR01ldGFkYXRhRWxlbWVudC5pZGwgKi87IH07CisJCUIyRTc3RTg5
MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTZGMEFCNEQ5MTMwMDcxODM1MCAv
KiBTVkdQYXRoRWxlbWVudC5pZGwgKi87IH07CisJCUIyRTc3RThBMEFCNEQ5MTMwMDcxODM1MCAv
KiBTVkdQYXRoU2VnLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjJFNzdFNzAwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWcuaWRsICovOyB9
OworCQlCMkU3N0U4QjBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0FyY0Ficy5pZGwgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTcxMEFC
NEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnQXJjQWJzLmlkbCAqLzsgfTsKKwkJQjJFNzdFOEMw
QUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdBcmNSZWwuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U3MjBBQjREOTEzMDA3MTgzNTAg
LyogU1ZHUGF0aFNlZ0FyY1JlbC5pZGwgKi87IH07CisJCUIyRTc3RThEMEFCNEQ5MTMwMDcxODM1
MCAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFNzMwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhT
ZWdDbG9zZVBhdGguaWRsICovOyB9OworCQlCMkU3N0U4RTBBQjREOTEzMDA3MTgzNTAgLyogU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTc0MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljQWJzLmlkbCAqLzsgfTsKKwkJQjJFNzdFOEYwQUI0RDkxMzAwNzE4MzUwIC8q
IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U3NTBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1JlbC5pZGwgKi87IH07CisJCUIyRTc3RTkwMEFCNEQ5MTMwMDcxODM1
MCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFNzYwQUI0RDkxMzAwNzE4MzUw
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRsICovOyB9OworCQlCMkU3N0U5
MTBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGwg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTc3
MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbCAq
LzsgfTsKKwkJQjJFNzdFOTIwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJFNzdFNzgwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljQWJzLmlkbCAqLzsgfTsKKwkJQjJFNzdFOTMwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFNzkwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCAqLzsgfTsKKwkJQjJFNzdFOTQwQUI0RDkxMzAwNzE4MzUw
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFN0EwQUI0RDkxMzAwNzE4
MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbCAqLzsgfTsKKwkJ
QjJFNzdFOTUwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjJFNzdFN0IwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoUmVsLmlkbCAqLzsgfTsKKwkJQjJFNzdFOTYwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1Bh
dGhTZWdMaW5ldG9BYnMuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMkU3N0U3QzBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0xpbmV0b0Fi
cy5pZGwgKi87IH07CisJCUIyRTc3RTk3MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbEFicy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyRTc3RTdEMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbEFicy5pZGwgKi87IH07CisJCUIyRTc3RTk4MEFCNEQ5MTMwMDcxODM1MCAvKiBT
VkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTc3RTdFMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwgKi87IH07CisJCUIyRTc3RTk5MEFCNEQ5MTMw
MDcxODM1MCAvKiBTVkdQYXRoU2VnTGluZXRvUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFN0YwQUI0RDkxMzAwNzE4MzUwIC8qIFNW
R1BhdGhTZWdMaW5ldG9SZWwuaWRsICovOyB9OworCQlCMkU3N0U5QTBBQjREOTEzMDA3MTgzNTAg
LyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFODAwQUI0RDkxMzAwNzE4MzUwIC8qIFNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5pZGwgKi87IH07CisJCUIyRTc3RTlCMEFCNEQ5MTMw
MDcxODM1MCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U4MTBBQjREOTEzMDA3MTgz
NTAgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmlkbCAqLzsgfTsKKwkJQjJFNzdFOUMw
QUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaXN0LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFNzdFODIwQUI0RDkxMzAwNzE4MzUwIC8q
IFNWR1BhdGhTZWdMaXN0LmlkbCAqLzsgfTsKKwkJQjJFNzdFOUQwQUI0RDkxMzAwNzE4MzUwIC8q
IFNWR1BhdGhTZWdNb3ZldG9BYnMuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMkU3N0U4MzBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ01v
dmV0b0Ficy5pZGwgKi87IH07CisJCUIyRTc3RTlFMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRo
U2VnTW92ZXRvUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjJFNzdFODQwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwu
aWRsICovOyB9OworCQlCMkU3N0U5RjBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyRTc3RTg1MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlk
bCAqLzsgfTsKIAkJQkMwNjZGNkYwOUZFQjJGQTAwQzU4OUE3IC8qIFdlYkNvcmVUZXh0UmVuZGVy
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDY2
RjZDMDlGRUIyRkEwMEM1ODlBNyAvKiBXZWJDb3JlVGV4dFJlbmRlcmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxQTM3QUQwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxQTM3OTcwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMUEzN0FFMDk3QzcxNUYwMDE5RjNE
OCAvKiBET00ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzFBMzc5ODA5N0M3MTVGMDAxOUYzRDggLyogRE9NLm1tICovOyB9OwpAQCAtMjAxNSw2ICsy
MDE4LDIzIEBACiAJCUZBRTA0MTkwMDk3NTk2QzkwMDA1NDBCRSAvKiBTVkdJbWFnZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkFFMDQxOEUw
OTc1OTZDOTAwMDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVyLmggKi87IH07CiAvKiBFbmQgUEJYQnVp
bGRGaWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYQnVpbGRTdHlsZSBzZWN0aW9uICovCisJ
CUIyRTc3RTREMEFCNEQ4MUIwMDcxODM1MCAvKiBEZXZlbG9wbWVudCAqLyA9IHsKKwkJCWlzYSA9
IFBCWEJ1aWxkU3R5bGU7CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPUFlfUEhBU0VfU1RS
SVAgPSBOTzsKKwkJCX07CisJCQluYW1lID0gRGV2ZWxvcG1lbnQ7CisJCX07CisJCUIyRTc3RTRF
MEFCNEQ4MUIwMDcxODM1MCAvKiBEZXBsb3ltZW50ICovID0geworCQkJaXNhID0gUEJYQnVpbGRT
dHlsZTsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IFlFUzsK
KwkJCX07CisJCQluYW1lID0gRGVwbG95bWVudDsKKwkJfTsKKy8qIEVuZCBQQlhCdWlsZFN0eWxl
IHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8K
IAkJREQwNDFGRjAwOUQ5RTMyNTAwMTBBRjJBIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKQEAgLTM0MDUsNyArMzQyNSw2IEBA
CiAJCUE4MzNDOTQ2MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGw7IHBh
dGggPSBzdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4MzNDOTQ3MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEludGVnZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZEludGVnZXIuaWRsOyBwYXRo
ID0gc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4MzNDOTQ4MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZExlbmd0aExpc3QuaWRsOyBwYXRo
ID0gc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4MzNDOTQ5MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZE51bWJlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkTnVtYmVyLmlkbDsgcGF0aCA9IHN2
Zy9TVkdBbmltYXRlZE51bWJlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MzNDOTRBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZE51bWJlckxpc3QuaWRsOyBwYXRoID0gc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4MzNDOTRCMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGw7IHBhdGggPSBzdmcv
U1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MzNDOTRDMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZFBvaW50cy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkUG9pbnRzLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmlt
YXRlZFBvaW50cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDIyLDcgKzM0
NDEsNiBAQAogCQlBODMzQzk1NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQ3Vyc29yRWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0N1cnNvckVsZW1lbnQuaWRsOyBwYXRoID0g
c3ZnL1NWR0N1cnNvckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODMzQzk1ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVmc0VsZW1lbnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBTVkdEZWZzRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRGVmc0VsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk1OTBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHRGVzY0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdE
ZXNjRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRGVzY0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk1QTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRE9NSW1w
bGVtZW50YXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdET01JbXBsZW1lbnRh
dGlvbi5pZGw7IHBhdGggPSBzdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk1QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRWxlbWVu
dEluc3RhbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRWxlbWVudEluc3RhbmNl
LmlkbDsgcGF0aCA9IHN2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODMzQzk1QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0VsZW1lbnRJbnN0YW5jZUxp
c3QuaWRsOyBwYXRoID0gc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk1RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRWxsaXBz
ZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdFbGxpcHNlRWxlbWVudC5p
ZGw7IHBhdGggPSBzdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMzQ2MCwxOSArMzQ3OCw2IEBACiAJCUE4MzNDOTdEMEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdNYXJrZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHTWFy
a2VyRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHTWFya2VyRWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDOTdFMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdOdW1i
ZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHTnVtYmVyTGlzdC5pZGw7IHBh
dGggPSBzdmcvU1ZHTnVtYmVyTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4MzNDOTdGMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYWludC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR1BhaW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdQYWludC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOTgwMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRo
RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhFbGVtZW50LmlkbDsg
cGF0aCA9IHN2Zy9TVkdQYXRoRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4MzNDOTgxMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZy5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZy5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOTgyMEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdQYXRoU2VnQXJjLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0Fy
Yy5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0FyYy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4MzNDOTgzMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRo
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGw7IHBh
dGggPSBzdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4MzNDOTg0MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5pZGw7
IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4MzNDOTg1MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aC5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOTg2MEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpYy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
MzNDOTg3MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOTg4MEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdQYXRoU2VnTGluZXRvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0
aFNlZ0xpbmV0by5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0xpbmV0by5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOTg5MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOThBMEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWwuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWwuaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhT
ZWdMaW5ldG9WZXJ0aWNhbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzND
OThCMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR1BhdGhTZWdMaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnTGlzdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNDOThDMEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdQYXRoU2VnTW92ZXRvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0
aFNlZ01vdmV0by5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ01vdmV0by5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDOThEMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXR0
ZXJuRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdHRlcm5FbGVtZW50
LmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MzNDOThFMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQb2ludExpc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQb2ludExpc3QuaWRsOyBwYXRoID0gc3ZnL1NW
R1BvaW50TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDOThGMEEy
Q0Y2ODcwMEQ1NzY2NCAvKiBTVkdQb2x5Z29uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1BvbHlnb25FbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdQb2x5Z29uRWxlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTcyLDcgKzM1NzcsNiBAQAog
CQlBODcxREZERjBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclJlcGxhY2VkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcldpZGdldC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZFMTBBMTUzNzZCMDBCMTJBNjggLyogUmVu
ZGVyV2lkZ2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJXaWRnZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODg0MjgzRDA5MzA4
QzFDMDBCNkQ0NjEgLyogRE9NTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IHBhdGggPSBET01MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODkwREYxQjA5MzA5NzQ4MDA1MTNGODgg
LyogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJQTg5MERGMUMwOTMwOTc0ODAwNTEzRjg4IC8qIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg5MERGMUQwOTMw
OTc0ODAwNTEzRjg4IC8qIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdTdHlsZWRMb2NhdGFibGVF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwpAQCAtMzU5OSwzNSArMzYwMywxMSBAQAogCQlBOEMwRjgwMjA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHQW5nbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdBbmdsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4MDMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0Fu
aW1hdGVDb2xvckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODA0
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQThDMEY4MDUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQW5nbGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdBbmltYXRlZEFuZ2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODA2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmlt
YXRlZEFuZ2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHQW5pbWF0ZWRBbmdsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MDcwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R0FuaW1hdGVkQm9vbGVhbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQm9vbGVhbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgwODA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMw
RjgwOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1h
dGVkRW51bWVyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MEEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgwQjA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4
QzBGODBDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZEludGVnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZEludGVn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07Ci0JCUE4QzBGODBEMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODBFMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmlt
YXRlZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0FuaW1hdGVkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgwRjA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBG
ODEwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZExlbmd0
aExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07Ci0JCUE4QzBGODExMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZE51bWJlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR0FuaW1hdGVkTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODEyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdB
bmltYXRlZE51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR0FuaW1hdGVkTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgxMzA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4
QzBGODE0MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZE51
bWJlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUE4QzBGODE1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhE
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgxNjA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUGF0aERhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODE3MDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBvaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9pbnRzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUE4QzBGODE4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBvaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9p
bnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwotCQlBOEMwRjgxOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODFB
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODFCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdB
bmltYXRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MUMwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR0FuaW1hdGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MUQwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThD
MEY4MUUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUE4QzBGODFGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFRlbXBsYXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKLQkJQThDMEY4MjAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgyMTA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlBOEMwRjgyMjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdBbmltYXRlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgyMzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5p
bWF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4MjQwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKQEAgLTM3MjIsOCArMzcwMiw2IEBACiAJCUE4QzBGODgzMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdNYXJrZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHTWFya2VyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4ODQwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR01hdHJpeC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNWR01hdHJpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjg4NTA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHTWF0cml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjg4NjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVt
YmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU1ZHTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODg3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1i
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUE4QzBGODg4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXJMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1ZHTnVtYmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjg4OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVtYmVy
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR051bWJlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODhBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYWludC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR1BhaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CkBAIC0zNzU4LDggKzM3MzYsNiBAQAogCQlBOEMwRjhBNzA4OTcwMUY0MDBC
QTUxMTQgLyogU1ZHUGF0aFNlZ01vdmV0by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdNb3ZldG8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGOEE4MDg5NzAx
RjQwMEJBNTExNCAvKiBTVkdQYXR0ZXJuRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdHRlcm5FbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUE4QzBGOEE5MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQYXR0ZXJuRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdHRlcm5FbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwotCQlBOEMwRjhBQTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQb2ludC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwotCQlBOEMwRjhBQjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQb2ludC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4
QUMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BvaW50TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BvaW50TGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlB
OEMwRjhBRDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnRMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUG9pbnRMaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMw
RjhBRTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9seUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQb2x5RWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwpAQCAtMzc3NCw4ICszNzUwLDYgQEAKIAkJQThDMEY4QjcwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4Qjgw
ODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUmVjdEVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
QThDMEY4QjkwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUmVjdEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4QzBGOEJBMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMw
RjhCQjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGOEJDMDg5NzAxRjQw
MEJBNTExNCAvKiBTVkdTY3JpcHRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHU2NyaXB0RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMw
RjhCRDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHU2NyaXB0RWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1NjcmlwdEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUE4QzBGOEJFMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdTZXRFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHU2V0RWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwpAQCAtMzg4MSw4ICszODU1LDYgQEAKIAkJQThDMzI5MzIwOTNCQjczMjAwMEI5Q0FDIC8q
IFdLU3BvdExpZ2h0RmlsdGVyLmNpa2VybmVsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV0tTcG90TGlnaHRGaWx0ZXIuY2lrZXJuZWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMzMjkzMzA5M0JCNzMy
MDAwQjlDQUMgLyogV0tTcG90TGlnaHRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Nwb3RMaWdodEZpbHRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMzI5MzQw
OTNCQjczMjAwMEI5Q0FDIC8qIFdLU3BvdExpZ2h0RmlsdGVyLm0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV0tTcG90TGlnaHRGaWx0ZXIubTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4QzMyOTRBMDkzQkI3OEMwMDBCOUNBQyAvKiBTVkdBbmltYXRlZENvbG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJQThDMzI5NEIwOTNCQjc4QzAwMEI5Q0FDIC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdB
bmltYXRlZENvbG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUE4QzMyOTVDMDkzQkI3QjIwMDBCOUNBQyAvKiBTVkdGRUxpZ2h0
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR0ZFTGlnaHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMzMjk1RDA5M0JCN0IyMDAwQjlDQUMgLyogU1ZH
RkVMaWdodEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdGRUxpZ2h0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMzMjk1RTA5M0JCN0Iy
MDAwQjlDQUMgLyogU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwpAQCAtNDA2NCw2ICs0MDM2LDQyIEBACiAJCUFCRERGRTc4MEE1QzZFNzAwMEEzRTExRCAvKiBS
ZW5kZXJQb3B1cE1lbnVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUmVuZGVyUG9wdXBNZW51TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBQkU3QjUyMTBBNDg5RjgzMDAzMTg4MUMgLyogRGVwcmVjYXRlZFJlbmRlclNlbGVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVwcmVjYXRlZFJlbmRlclNl
bGVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCRTdCNTIyMEE0ODlGODMw
MDMxODgxQyAvKiBEZXByZWNhdGVkUmVuZGVyU2VsZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZXByZWNhdGVkUmVuZGVyU2VsZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUIyRTc3RTU0MEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZEFuZ2xl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRBbmdsZS5pZGw7IHBhdGgg
PSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKKwkJQjJFNzdFNTUwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkQm9vbGVhbi5pZGw7IHBhdGgg
PSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OworCQlCMkU3N0U1NjBBQjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsOyBzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTU3MEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdB
bmltYXRlZEludGVnZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZElu
dGVnZXIuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGw7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFNzdFNTgwQUI0RDhFRDAwNzE4MzUwIC8qIFNW
R0FuaW1hdGVkTGVuZ3RoLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRM
ZW5ndGguaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbDsgc291cmNl
VHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U1OTBBQjREOEVEMDA3MTgzNTAgLyogU1ZH
QW5pbWF0ZWROdW1iZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZE51
bWJlci5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsOyBzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTVBMEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdB
bmltYXRlZFBhdGhEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRQ
YXRoRGF0YS5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGw7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFNzdFNUIwQUI0RDhFRDAwNzE4MzUwIC8q
IFNWR0FuaW1hdGVkUG9pbnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0
ZWRQb2ludHMuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmlkbDsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U1QzBBQjREOEVEMDA3MTgzNTAgLyog
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9T
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CisJCUIyRTc3RTVEMEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdBbmltYXRlZFJlY3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZFJlY3QuaWRsOyBwYXRoID0ga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
KwkJQjJFNzdFNUUwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkU3RyaW5nLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsOyBwYXRoID0ga3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owor
CQlCMkU3N0U2RDBBQjREOTEzMDA3MTgzNTAgLyogU1ZHRXZlbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBTVkdFdmVudC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHRXZlbnQuaWRsOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTZFMEFCNEQ5MTMwMDcxODM1MCAv
KiBTVkdNZXRhZGF0YUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdNZXRh
ZGF0YUVsZW1lbnQuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFNzdFNkYwQUI0RDkxMzAwNzE4MzUw
IC8qIFNWR1BhdGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aEVs
ZW1lbnQuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmlkbDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U3MDBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0
aFNlZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWcuaWRsOyBwYXRoID0g
a3N2ZzIvc3ZnL1NWR1BhdGhTZWcuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJ
CUIyRTc3RTcxMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnQXJjQWJzLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0FyY0Ficy5pZGw7IHBhdGggPSBrc3ZnMi9zdmcv
U1ZHUGF0aFNlZ0FyY0Ficy5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJF
NzdFNzIwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdBcmNSZWwuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQXJjUmVsLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdQ
YXRoU2VnQXJjUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U3
MzBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdDbG9zZVBhdGguaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NW
R1BhdGhTZWdDbG9zZVBhdGguaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIy
RTc3RTc0MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGw7IHBh
dGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGw7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFNzdFNzUwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljUmVsLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1
YmljUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U3NjBBQjRE
OTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRsOyBw
YXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRsOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTc3MEFCNEQ5MTMwMDcxODM1MCAvKiBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcv
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKKwkJQjJFNzdFNzgwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljQWJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljQWJzLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U3OTBB
QjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5pZGw7IHBh
dGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaWRsOyBzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTdBMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbDsgcGF0aCA9IGtzdmcy
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGw7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFNzdFN0IwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsOyBwYXRoID0ga3N2ZzIvc3Zn
L1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OworCQlCMkU3N0U3QzBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0xp
bmV0b0Ficy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdMaW5ldG9BYnMu
aWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9BYnMuaWRsOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTdEMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbEFicy5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJ
QjJFNzdFN0UwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxS
ZWwuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmlk
bDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U3RjBBQjREOTEzMDA3MTgz
NTAgLyogU1ZHUGF0aFNlZ0xpbmV0b1JlbC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNW
R1BhdGhTZWdMaW5ldG9SZWwuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9S
ZWwuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTgwMEFCNEQ5MTMw
MDcxODM1MCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsOyBwYXRoID0ga3N2ZzIv
c3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKKwkJQjJFNzdFODEwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaW5ldG9W
ZXJ0aWNhbFJlbC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdMaW5ldG9W
ZXJ0aWNhbFJlbC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
UmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U4MjBBQjREOTEz
MDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0xpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBT
VkdQYXRoU2VnTGlzdC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTc3RTgzMEFCNEQ5MTMwMDcxODM1MCAv
KiBTVkdQYXRoU2VnTW92ZXRvQWJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0
aFNlZ01vdmV0b0Ficy5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ01vdmV0b0Ficy5p
ZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFNzdFODQwQUI0RDkxMzAwNzE4
MzUwIC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBT
VkdQYXRoU2VnTW92ZXRvUmVsLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdQYXRoU2VnTW92ZXRv
UmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU3N0U4NTBBQjREOTEz
MDA3MTgzNTAgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUJD
MDY2RjZDMDlGRUIyRkEwMEM1ODlBNyAvKiBXZWJDb3JlVGV4dFJlbmRlcmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGV4dFJlbmRlcmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDZGMjQ5MDZEMThBN0UwMDRBNkZBMyAvKiBYU0xTdHls
ZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhTTFN0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEEwNkQxOEE3RTAwNEE2RkEzIC8q
IFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTU2NDcsNyArNTY1NSw2IEBACiAJCQkJQTgz
M0M5NDYwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsICovLAog
CQkJCUE4MzNDOTQ3MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEludGVnZXIuaWRsICov
LAogCQkJCUE4MzNDOTQ4MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3Qu
aWRsICovLAotCQkJCUE4MzNDOTQ5MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZE51bWJl
ci5pZGwgKi8sCiAJCQkJQTgzM0M5NEEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdC5pZGwgKi8sCiAJCQkJQTgzM0M5NEIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1h
dGVkUGF0aERhdGEuaWRsICovLAogCQkJCUE4MzNDOTRDMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdB
bmltYXRlZFBvaW50cy5pZGwgKi8sCkBAIC01NjY0LDcgKzU2NzEsNiBAQAogCQkJCUE4MzNDOTU3
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdDdXJzb3JFbGVtZW50LmlkbCAqLywKIAkJCQlBODMzQzk1
ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVmc0VsZW1lbnQuaWRsICovLAogCQkJCUE4MzNDOTU5
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdEZXNjRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgzM0M5NUEw
QTJDRjY4NzAwRDU3NjY0IC8qIFNWR0RPTUltcGxlbWVudGF0aW9uLmlkbCAqLywKIAkJCQlBODMz
Qzk1QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRWxlbWVudEluc3RhbmNlLmlkbCAqLywKIAkJCQlB
ODMzQzk1QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5pZGwgKi8s
CiAJCQkJQTgzM0M5NUQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0VsbGlwc2VFbGVtZW50LmlkbCAq
LywKQEAgLTU3MDIsMTkgKzU3MDgsNiBAQAogCQkJCUE4MzNDOTdEMEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdNYXJrZXJFbGVtZW50LmlkbCAqLywKIAkJCQlBODMzQzk3RTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHTnVtYmVyTGlzdC5pZGwgKi8sCiAJCQkJQTgzM0M5N0YwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1BhaW50LmlkbCAqLywKLQkJCQlBODMzQzk4MDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0
aEVsZW1lbnQuaWRsICovLAotCQkJCUE4MzNDOTgxMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRo
U2VnLmlkbCAqLywKLQkJCQlBODMzQzk4MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0Fy
Yy5pZGwgKi8sCi0JCQkJQTgzM0M5ODMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDbG9z
ZVBhdGguaWRsICovLAotCQkJCUE4MzNDOTg0MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljLmlkbCAqLywKLQkJCQlBODMzQzk4NTBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5pZGwgKi8sCi0JCQkJQTgzM0M5ODYwQTJDRjY4NzAw
RDU3NjY0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmlkbCAqLywKLQkJCQlBODMzQzk4
NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguaWRs
ICovLAotCQkJCUE4MzNDOTg4MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGluZXRvLmlk
bCAqLywKLQkJCQlBODMzQzk4OTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWwuaWRsICovLAotCQkJCUE4MzNDOThBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRo
U2VnTGluZXRvVmVydGljYWwuaWRsICovLAotCQkJCUE4MzNDOThCMEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdQYXRoU2VnTGlzdC5pZGwgKi8sCi0JCQkJQTgzM0M5OEMwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1BhdGhTZWdNb3ZldG8uaWRsICovLAogCQkJCUE4MzNDOThEMEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdQYXR0ZXJuRWxlbWVudC5pZGwgKi8sCiAJCQkJQTgzM0M5OEUwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR1BvaW50TGlzdC5pZGwgKi8sCiAJCQkJQTgzM0M5OEYwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1BvbHlnb25FbGVtZW50LmlkbCAqLywKQEAgLTU4MzQsNyArNTgyNyw2IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQlBQUM4REFBRjBBQTEwMDIwMDBEQzA5MDcgLyogU1ZHTWV0YWRhdGFFbGVt
ZW50LmNwcCAqLywKIAkJCQlBQUM4REFCMDBBQTEwMDIwMDBEQzA5MDcgLyogU1ZHTWV0YWRhdGFF
bGVtZW50LmggKi8sCi0JCQkJQTg4NDI4M0QwOTMwOEMxQzAwQjZENDYxIC8qIERPTUxpc3QuaCAq
LywKIAkJCQlBOEMwRjdGRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQUVsZW1lbnQuY3BwICovLAog
CQkJCUE4QzBGODAwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBRWxlbWVudC5oICovLAogCQkJCUE4
QzBGODAxMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmdsZS5jcHAgKi8sCkBAIC01ODQyLDM3ICs1
ODM0LDExIEBACiAJCQkJQTgzM0MwQTgwQTJDNEZFQzAwRDU3NjY0IC8qIFNWR0FuZ2xlLmlkbCAq
LywKIAkJCQlBOEMwRjgwMzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgKi8sCiAJCQkJQThDMEY4MDQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaCAqLywKLQkJCQlBOEMwRjgwNTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0
ZWRBbmdsZS5jcHAgKi8sCi0JCQkJQThDMEY4MDYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1h
dGVkQW5nbGUuaCAqLywKLQkJCQlBOEMwRjgwNzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0
ZWRCb29sZWFuLmNwcCAqLywKLQkJCQlBOEMwRjgwODA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5p
bWF0ZWRCb29sZWFuLmggKi8sCi0JCQkJQThDMzI5NEIwOTNCQjc4QzAwMEI5Q0FDIC8qIFNWR0Fu
aW1hdGVkQ29sb3IuY3BwICovLAotCQkJCUE4QzMyOTRBMDkzQkI3OEMwMDBCOUNBQyAvKiBTVkdB
bmltYXRlZENvbG9yLmggKi8sCi0JCQkJQThDMEY4MDkwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb24uY3BwICovLAotCQkJCUE4QzBGODBBMDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmggKi8sCi0JCQkJQThDMEY4MEIwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5jcHAgKi8sCi0JCQkJQThDMEY4MEMwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5oICovLAotCQkJCUE4QzBGODBEMDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgKi8sCi0JCQkJQThDMEY4MEUwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmggKi8sCi0JCQkJQThDMEY4MEYwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgKi8sCi0JCQkJQThDMEY4MTAw
ODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oICovLAotCQkJCUE4QzBG
ODExMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZE51bWJlci5jcHAgKi8sCi0JCQkJQThD
MEY4MTIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmggKi8sCi0JCQkJQThD
MEY4MTMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAgKi8sCi0J
CQkJQThDMEY4MTQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oICov
LAogCQkJCUE4QzBGODE1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmNw
cCAqLywKIAkJCQlBOEMwRjgxNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0
YS5oICovLAogCQkJCUE4QzBGODE3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBvaW50
cy5jcHAgKi8sCiAJCQkJQThDMEY4MTgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUG9p
bnRzLmggKi8sCi0JCQkJQThDMEY4MTkwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpby5jcHAgKi8sCi0JCQkJQThDMEY4MUEwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oICovLAotCQkJCUE4QzBGODFCMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFJlY3QuY3BwICovLAotCQkJCUE4QzBGODFDMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFJlY3QuaCAqLywKLQkJCQlBOEMwRjgxRDA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovLAotCQkJCUE4QzBGODFFMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFN0cmluZy5oICovLAogCQkJCUE4QzBGODFGMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFRlbXBsYXRlLmggKi8sCi0JCQkJQThDMEY4MjAwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAgKi8sCi0JCQkJQThD
MEY4MjEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAog
CQkJCUE4QzBGODIyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgKi8s
CiAJCQkJQThDMEY4MjMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVFbGVtZW50LmggKi8s
CiAJCQkJQThDMEY4MjQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmNwcCAqLywKQEAgLTU5OTIsOCArNTk1OCw2IEBACiAJCQkJQThDMEY4ODQwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR01hdHJpeC5jcHAgKi8sCiAJCQkJQThDMEY4ODUwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR01hdHJpeC5oICovLAogCQkJCUE4MzNCRUREMEEyQzM0NEIwMEQ1NzY2NCAvKiBTVkdN
YXRyaXguaWRsICovLAotCQkJCUE4QzBGODg2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXIu
Y3BwICovLAotCQkJCUE4QzBGODg3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXIuaCAqLywK
IAkJCQlBODMzQkVBMjBBMkMzMjkzMDBENTc2NjQgLyogU1ZHTnVtYmVyLmlkbCAqLywKIAkJCQlB
OEMwRjg4ODA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVtYmVyTGlzdC5jcHAgKi8sCiAJCQkJQThD
MEY4ODkwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlckxpc3QuaCAqLywKQEAgLTYwMjksOCAr
NTk5Myw2IEBACiAJCQkJQThDMEY4QTcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdGhTZWdNb3Zl
dG8uaCAqLywKIAkJCQlBOEMwRjhBODA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUGF0dGVybkVsZW1l
bnQuY3BwICovLAogCQkJCUE4QzBGOEE5MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQYXR0ZXJuRWxl
bWVudC5oICovLAotCQkJCUE4QzBGOEFBMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludC5jcHAg
Ki8sCi0JCQkJQThDMEY4QUIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BvaW50LmggKi8sCiAJCQkJ
QTgzM0JFQTEwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR1BvaW50LmlkbCAqLywKIAkJCQlBOEMwRjhB
QzA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnRMaXN0LmNwcCAqLywKIAkJCQlBOEMwRjhBRDA4
OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnRMaXN0LmggKi8sCkBAIC02MDQ0LDggKzYwMDYsNiBA
QAogCQkJCUE4QzBGOEI1MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmggKi8sCiAJCQkJQThDMEY4QjYwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAgKi8sCiAJCQkJQThDMEY4QjcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oICovLAotCQkJCUE4QzBGOEJBMDg5NzAxRjQwMEJBNTExNCAvKiBT
VkdSZWN0LmNwcCAqLywKLQkJCQlBOEMwRjhCQjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmVjdC5o
ICovLAogCQkJCUE4MzNCRUEwMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdSZWN0LmlkbCAqLywKIAkJ
CQlBOEMwRjhCODA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmVjdEVsZW1lbnQuY3BwICovLAogCQkJ
CUE4QzBGOEI5MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdSZWN0RWxlbWVudC5oICovLApAQCAtNjMy
Niw2ICs2Mjg2LDQyIEBACiAJCUJDQjE2QkZCMDk3OUMzODcwMDQ2Nzc0MSAvKiBsb2FkZXIgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUIyRTc3RTZEMEFC
NEQ5MTMwMDcxODM1MCAvKiBTVkdFdmVudC5pZGwgKi8sCisJCQkJQjJFNzdFNkUwQUI0RDkxMzAw
NzE4MzUwIC8qIFNWR01ldGFkYXRhRWxlbWVudC5pZGwgKi8sCisJCQkJQjJFNzdFNkYwQUI0RDkx
MzAwNzE4MzUwIC8qIFNWR1BhdGhFbGVtZW50LmlkbCAqLywKKwkJCQlCMkU3N0U3MDBBQjREOTEz
MDA3MTgzNTAgLyogU1ZHUGF0aFNlZy5pZGwgKi8sCisJCQkJQjJFNzdFNzEwQUI0RDkxMzAwNzE4
MzUwIC8qIFNWR1BhdGhTZWdBcmNBYnMuaWRsICovLAorCQkJCUIyRTc3RTcyMEFCNEQ5MTMwMDcx
ODM1MCAvKiBTVkdQYXRoU2VnQXJjUmVsLmlkbCAqLywKKwkJCQlCMkU3N0U3MzBBQjREOTEzMDA3
MTgzNTAgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgKi8sCisJCQkJQjJFNzdFNzQwQUI0RDkx
MzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaWRsICovLAorCQkJCUIyRTc3
RTc1MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmlkbCAqLywK
KwkJCQlCMkU3N0U3NjBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aEFicy5pZGwgKi8sCisJCQkJQjJFNzdFNzcwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaWRsICovLAorCQkJCUIyRTc3RTc4MEFCNEQ5MTMwMDcx
ODM1MCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5pZGwgKi8sCisJCQkJQjJFNzdF
NzkwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCAq
LywKKwkJCQlCMkU3N0U3QTBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNTbW9vdGhBYnMuaWRsICovLAorCQkJCUIyRTc3RTdCMEFCNEQ5MTMwMDcxODM1MCAvKiBT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5pZGwgKi8sCisJCQkJQjJFNzdFN0Mw
QUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaW5ldG9BYnMuaWRsICovLAorCQkJCUIyRTc3
RTdEMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwg
Ki8sCisJCQkJQjJFNzdFN0UwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsLmlkbCAqLywKKwkJCQlCMkU3N0U3RjBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0
aFNlZ0xpbmV0b1JlbC5pZGwgKi8sCisJCQkJQjJFNzdFODAwQUI0RDkxMzAwNzE4MzUwIC8qIFNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5pZGwgKi8sCisJCQkJQjJFNzdFODEwQUI0RDkxMzAw
NzE4MzUwIC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5pZGwgKi8sCisJCQkJQjJFNzdF
ODIwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaXN0LmlkbCAqLywKKwkJCQlCMkU3N0U4
MzBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5pZGwgKi8sCisJCQkJQjJF
NzdFODQwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaWRsICovLAorCQkJ
CUIyRTc3RTg1MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAq
LywKKwkJCQlCMkU3N0U1NDBBQjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwg
Ki8sCisJCQkJQjJFNzdFNTUwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5p
ZGwgKi8sCisJCQkJQjJFNzdFNTYwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkRW51bWVy
YXRpb24uaWRsICovLAorCQkJCUIyRTc3RTU3MEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdBbmltYXRl
ZEludGVnZXIuaWRsICovLAorCQkJCUIyRTc3RTU4MEFCNEQ4RUQwMDcxODM1MCAvKiBTVkdBbmlt
YXRlZExlbmd0aC5pZGwgKi8sCisJCQkJQjJFNzdFNTkwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0Fu
aW1hdGVkTnVtYmVyLmlkbCAqLywKKwkJCQlCMkU3N0U1QTBBQjREOEVEMDA3MTgzNTAgLyogU1ZH
QW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi8sCisJCQkJQjJFNzdFNUIwQUI0RDhFRDAwNzE4MzUwIC8q
IFNWR0FuaW1hdGVkUG9pbnRzLmlkbCAqLywKKwkJCQlCMkU3N0U1QzBBQjREOEVEMDA3MTgzNTAg
LyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKKwkJCQlCMkU3N0U1RDBB
QjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLywKKwkJCQlCMkU3N0U1RTBB
QjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovLAogCQkJCTUxMjZFNkI2
MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovLAogCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBB
MCAvKiBtYWMgKi8sCiAJCQkJQkNCMTZCRkUwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmNwcCAq
LywKQEAgLTcwNTUsMjIgKzcwNTEsOSBAQAogCQkJCUE4OEFENDEyMDk1MjQ4RjAwMDFERDE5NiAv
KiBTVkdBRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0MTQwOTUyNDhGMDAwMURE
MTk2IC8qIFNWR0FuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQxNjA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4
QUQ0MTgwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4OEFENDFBMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBp
biBIZWFkZXJzICovLAotCQkJCUE4OEFENDFDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRl
ZENvbG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDQxRTA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0MjAwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTg4QUQ0MjIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODhBRDQyNDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDQyNjA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
QW5pbWF0ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFENDI4MDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFE
NDJBMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODhBRDQyQzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4OEFENDJFMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFENDMwMDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFE
NDMyMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTg4QUQ0MzMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkVGVtcGxhdGUuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4OEFENDM1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENDM3MDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdBbmltYXRlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0Mzkw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODhBRDQzQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0aW9uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTI1LDcgKzcxMDgsNiBAQAogCQkJCUE4OEFENDlGMDk1
MjQ4RjAwMDFERDE5NiAvKiBTVkdMb2NhdGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFE
NEExMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdNYXJrZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODhBRDRBMzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAq
LywKLQkJCQlBODhBRDRBNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODhBRDRBNzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTnVtYmVyTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0QTkwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhaW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDRBQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzE0Myw3ICs3MTI1LDYgQEAKIAkJCQlBODhBRDRD
MzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4OEFENEM1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnTW92ZXRvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODhBRDRDNzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0dGVybkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFENEM5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2lu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0Q0IwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1Bv
aW50TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0Q0QwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR1BvbHlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDRDRjA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHUG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzE1MSw3ICs3
MTMyLDYgQEAKIAkJCQlBODhBRDREMzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0RDUwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0RDcw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlB
ODhBRDREOTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTg4QUQ0REIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1NjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4OEFENEREMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdTZXRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODhBRDRERjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHU3RvcEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzE3OCw3ICs3MTU4LDYgQEAKIAkJCQlBODhBRDUwQTA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHVmlld0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
OEFENTBDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdab29tQW5kUGFuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODhBRDUwRDA5NTI0OEYwMDAxREQxOTYgLyoga3N2Zy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTg4QUQ1MTcwOTUyNDk5RjAwMUREMTk2IC8qIERPTUxpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1NTJFN0FBMDk2QUExMUIwMDA2RjI0OCAvKiBXZWJDb3JlRnJhbWVOYW1lc3BhY2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODE2NTVENDA5NkJCRUFDMDA2MDEwNTggLyogS0NhbnZhc01h
c2tlclF1YXJ0ei5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxNjU1RTUwOTZCQzEzOTAwNjAxMDU4
IC8qIFNWR01hc2tFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTc5MjksNiArNzkwOCwxMiBA
QAogCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODQz
MDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2pl
Y3QgIldlYkNvcmUiICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQlidWlsZFN0
eWxlcyA9ICgKKwkJCQlCMkU3N0U0RDBBQjREODFCMDA3MTgzNTAgLyogRGV2ZWxvcG1lbnQgKi8s
CisJCQkJQjJFNzdFNEUwQUI0RDgxQjAwNzE4MzUwIC8qIERlcGxveW1lbnQgKi8sCisJCQkpOwog
CQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJ
RW5nbGlzaCwKQEAgLTc5ODYsNiArNzk3MSw0MiBAQAogCQkJCTFDRDQ0MThGMEE0Q0U3NkYwMEEw
MDdBQiAvKiBub3J0aFNvdXRoUmVzaXplQ3Vyc29yLnRpZmYgaW4gUmVzb3VyY2VzICovLAogCQkJ
CTFDRDQ0MTkwMEE0Q0U3NkYwMEEwMDdBQiAvKiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJz
b3IudGlmZiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNTExNTA5NUMwQTlDRTA0NzAwOTAxMDEzIC8q
IHVybEljb24udGlmZiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFNjAwQUI0RDhFRDAwNzE4
MzUwIC8qIFNWR0FuaW1hdGVkQW5nbGUuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U2
MTBBQjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJQjJFNzdFNjIwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRp
b24uaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U2MzBBQjREOEVEMDA3MTgzNTAgLyog
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFNjQwQUI0
RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJQjJFNzdFNjUwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFNjYwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1hdGVk
UGF0aERhdGEuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U2NzBBQjREOEVEMDA3MTgz
NTAgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U2
ODBBQjREOEVEMDA3MTgzNTAgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFNjkwQUI0RDhFRDAwNzE4MzUwIC8qIFNWR0FuaW1h
dGVkUmVjdC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RTZBMEFCNEQ4RUQwMDcxODM1
MCAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RTg3
MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdFdmVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIy
RTc3RTg4MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaWRsIGluIFJlc291
cmNlcyAqLywKKwkJCQlCMkU3N0U4OTBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aEVsZW1lbnQu
aWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U4QTBBQjREOTEzMDA3MTgzNTAgLyogU1ZH
UGF0aFNlZy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RThCMEFCNEQ5MTMwMDcxODM1
MCAvKiBTVkdQYXRoU2VnQXJjQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFOEMw
QUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdBcmNSZWwuaWRsIGluIFJlc291cmNlcyAqLywK
KwkJCQlCMkU3N0U4RDBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwg
aW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RThFMEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFOEYwQUI0
RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsIGluIFJlc291cmNl
cyAqLywKKwkJCQlCMkU3N0U5MDBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RTkxMEFCNEQ5MTMw
MDcxODM1MCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJQjJFNzdFOTIwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFOTMwQUI0RDkxMzAw
NzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJQjJFNzdFOTQwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFOTUwQUI0RDkx
MzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFOTYwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdM
aW5ldG9BYnMuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U5NzBBQjREOTEzMDA3MTgz
NTAgLyogU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMuaWRsIGluIFJlc291cmNlcyAqLywK
KwkJCQlCMkU3N0U5ODBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWxSZWwuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU3N0U5OTBBQjREOTEzMDA3MTgzNTAg
LyogU1ZHUGF0aFNlZ0xpbmV0b1JlbC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RTlB
MEFCNEQ5MTMwMDcxODM1MCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlCMkU3N0U5QjBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFNzdFOUMwQUI0RDkx
MzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdMaXN0LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJF
NzdFOUQwQUI0RDkxMzAwNzE4MzUwIC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaWRsIGluIFJlc291
cmNlcyAqLywKKwkJCQlCMkU3N0U5RTBBQjREOTEzMDA3MTgzNTAgLyogU1ZHUGF0aFNlZ01vdmV0
b1JlbC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTc3RTlGMEFCNEQ5MTMwMDcxODM1MCAv
KiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC04MTExLDIx
ICs4MTMyLDggQEAKIAkJCQlBODhBRDQxMTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0MTMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Fu
Z2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENDE1MDk1MjQ4RjAwMDFERDE5NiAvKiBT
VkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENDE3MDk1
MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4OEFENDE5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTg4QUQ0MUIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkQ29s
b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MUQwOTUyNDhGMDAwMUREMTk2IC8qIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MUYwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODhBRDQyMTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTg4QUQ0MjMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDQyNTA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MjcwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBODhBRDQyOTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODhBRDQyQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0
ZWRQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MkQwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODhBRDQyRjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRSZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4OEFENDMxMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDQzNDA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENDM2MDk1
MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODhBRDQzODA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0M0EwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Fu
aW1hdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTc3LDcgKzgxODUsNiBAQAog
CQkJCUE4OEFENDlFMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdMb2NhdGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTg4QUQ0QTAwOTUyNDhGMDAwMUREMTk2IC8qIFNWR01hcmtlckVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0QTIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR01h
dHJpeC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDRBNDA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENEE2MDk1MjQ4RjAwMDFERDE5
NiAvKiBTVkdOdW1iZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENEE4MDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdQYWludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRBQTA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04
MTk1LDcgKzgyMDIsNiBAQAogCQkJCUE4OEFENEMyMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRo
U2VnTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRDNDA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHUGF0aFNlZ01vdmV0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRDNjA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTg4QUQ0QzgwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BvaW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4OEFENENBMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2ludExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTg4QUQ0Q0MwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BvbHlFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENENFMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2x5
Z29uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgyMDMsNyArODIwOSw2IEBACiAJCQkJ
QTg4QUQ0RDIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0RDQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRENjA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHUmVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0RDgw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR1JlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0
REEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTg4QUQ0REMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1NldEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg4QUQ0REUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1N0b3BFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR0ltYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCShS
ZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva2NhbnZhcy9SZW5kZXJTVkdJbWFnZS5jcHAJKEFy
YmVpdHNrb3BpZSkKQEAgLTUwLDE5ICs1MCwxOSBAQAogewogICAgIGZsb2F0IG9yaWdEZXN0V2lk
dGggPSBkZXN0UmVjdC53aWR0aCgpOwogICAgIGZsb2F0IG9yaWdEZXN0SGVpZ2h0ID0gZGVzdFJl
Y3QuaGVpZ2h0KCk7Ci0gICAgaWYgKGFzcGVjdFJhdGlvLT5tZWV0T3JTbGljZSgpID09IFNWR19N
RUVUT1JTTElDRV9NRUVUKSB7CisgICAgaWYgKGFzcGVjdFJhdGlvLT5tZWV0T3JTbGljZSgpID09
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19NRUVUT1JTTElDRV9NRUVUKSB7CiAgICAgICAg
IGZsb2F0IHdpZHRoVG9IZWlnaHRNdWx0aXBsaWVyID0gc3JjUmVjdC5oZWlnaHQoKSAvIHNyY1Jl
Y3Qud2lkdGgoKTsKICAgICAgICAgaWYgKG9yaWdEZXN0SGVpZ2h0ID4gKG9yaWdEZXN0V2lkdGgg
KiB3aWR0aFRvSGVpZ2h0TXVsdGlwbGllcikpIHsKICAgICAgICAgICAgIGRlc3RSZWN0LnNldEhl
aWdodChvcmlnRGVzdFdpZHRoICogd2lkdGhUb0hlaWdodE11bHRpcGxpZXIpOwogICAgICAgICAg
ICAgc3dpdGNoKGFzcGVjdFJhdGlvLT5hbGlnbigpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBT
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRDoKLSAgICAgICAgICAgICAgICBjYXNlIFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQ6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRDoKKyAg
ICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSURZTUlEOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQ6CiAgICAgICAgICAgICAg
ICAgICAgIGRlc3RSZWN0LnNldFkob3JpZ0Rlc3RIZWlnaHQgLyAyIC0gZGVzdFJlY3QuaGVpZ2h0
KCkgLyAyKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1BWDoKLSAgICAgICAgICAgICAgICBjYXNl
IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYOgotICAgICAgICAgICAgICAgIGNhc2Ug
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVg6CisgICAgICAgICAgICAgICAgY2FzZSBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1BWDoK
KyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJW
RUFTUEVDVFJBVElPX1hNSURZTUFYOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVg6CiAgICAgICAgICAg
ICAgICAgICAgIGRlc3RSZWN0LnNldFkob3JpZ0Rlc3RIZWlnaHQgLSBkZXN0UmVjdC5oZWlnaHQo
KSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNzAsMzMg
KzcwLDMzIEBACiAgICAgICAgIGlmIChvcmlnRGVzdFdpZHRoID4gKG9yaWdEZXN0SGVpZ2h0IC8g
d2lkdGhUb0hlaWdodE11bHRpcGxpZXIpKSB7CiAgICAgICAgICAgICBkZXN0UmVjdC5zZXRXaWR0
aChvcmlnRGVzdEhlaWdodCAvIHdpZHRoVG9IZWlnaHRNdWx0aXBsaWVyKTsKICAgICAgICAgICAg
IHN3aXRjaChhc3BlY3RSYXRpby0+YWxpZ24oKSkgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU46Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU46CisgICAg
ICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlEWU1JRDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYOgogICAgICAgICAgICAgICAg
ICAgICBkZXN0UmVjdC5zZXRYKG9yaWdEZXN0V2lkdGggLyAyIC0gZGVzdFJlY3Qud2lkdGgoKSAv
IDIpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOOgorICAg
ICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1BWFlNSUQ6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWDoKICAgICAgICAgICAgICAg
ICAgICAgZGVzdFJlY3Quc2V0WChvcmlnRGVzdFdpZHRoIC0gZGVzdFJlY3Qud2lkdGgoKSk7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAg
fSBlbHNlIGlmIChhc3BlY3RSYXRpby0+bWVldE9yU2xpY2UoKSA9PSBTVkdfTUVFVE9SU0xJQ0Vf
U0xJQ0UpIHsKKyAgICB9IGVsc2UgaWYgKGFzcGVjdFJhdGlvLT5tZWV0T3JTbGljZSgpID09IFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19NRUVUT1JTTElDRV9TTElDRSkgewogICAgICAgICBm
bG9hdCB3aWR0aFRvSGVpZ2h0TXVsdGlwbGllciA9IHNyY1JlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0
LndpZHRoKCk7CiAgICAgICAgIC8vIGlmIHRoZSBkZXN0aW5hdGlvbiBoZWlnaHQgaXMgbGVzcyB0
aGFuIHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlIHdlJ2xsIGJlIGRyYXdpbmcKICAgICAgICAgaWYg
KG9yaWdEZXN0SGVpZ2h0IDwgKG9yaWdEZXN0V2lkdGggKiB3aWR0aFRvSGVpZ2h0TXVsdGlwbGll
cikpIHsKICAgICAgICAgICAgIGZsb2F0IGRlc3RUb1NyY011bHRpcGxpZXIgPSBzcmNSZWN0Lndp
ZHRoKCkgLyBkZXN0UmVjdC53aWR0aCgpOwogICAgICAgICAgICAgc3JjUmVjdC5zZXRIZWlnaHQo
ZGVzdFJlY3QuaGVpZ2h0KCkgKiBkZXN0VG9TcmNNdWx0aXBsaWVyKTsKICAgICAgICAgICAgIHN3
aXRjaChhc3BlY3RSYXRpby0+YWxpZ24oKSkgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BS
RVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVT
RVJWRUFTUEVDVFJBVElPX1hNQVhZTUlEOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQ6CisgICAgICAg
ICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlEWU1JRDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlEOgogICAgICAgICAgICAgICAgICAg
ICBzcmNSZWN0LnNldFkoaW1hZ2UoKS0+aGVpZ2h0KCkgLyAyIC0gc3JjUmVjdC5oZWlnaHQoKSAv
IDIpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUFYOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNQVg6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUFYOgorICAg
ICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1JRFlNQVg6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWDoKICAgICAgICAgICAgICAg
ICAgICAgc3JjUmVjdC5zZXRZKGltYWdlKCktPmhlaWdodCgpIC0gc3JjUmVjdC5oZWlnaHQoKSk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTA2LDE0ICsx
MDYsMTQgQEAKICAgICAgICAgICAgIGZsb2F0IGRlc3RUb1NyY011bHRpcGxpZXIgPSBzcmNSZWN0
LmhlaWdodCgpIC8gZGVzdFJlY3QuaGVpZ2h0KCk7CiAgICAgICAgICAgICBzcmNSZWN0LnNldFdp
ZHRoKGRlc3RSZWN0LndpZHRoKCkgKiBkZXN0VG9TcmNNdWx0aXBsaWVyKTsKICAgICAgICAgICAg
IHN3aXRjaChhc3BlY3RSYXRpby0+YWxpZ24oKSkgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU46Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU46CisgICAg
ICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlEWU1JRDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYOgogICAgICAgICAgICAgICAg
ICAgICBzcmNSZWN0LnNldFgoaW1hZ2UoKS0+d2lkdGgoKSAvIDIgLSBzcmNSZWN0LndpZHRoKCkg
LyAyKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBT
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTjoKLSAgICAgICAgICAgICAgICBjYXNlIFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlEOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVg6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTjoKKyAg
ICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNQVhZTUlEOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVg6CiAgICAgICAgICAgICAg
ICAgICAgIHNyY1JlY3Quc2V0WChpbWFnZSgpLT53aWR0aCgpIC0gc3JjUmVjdC53aWR0aCgpKTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNzEsNyArMTcx
LDcgQEAKICAgICAgICAgCiAgICAgU1ZHSW1hZ2VFbGVtZW50ICppbWFnZUVsdCA9IHN0YXRpY19j
YXN0PFNWR0ltYWdlRWxlbWVudCAqPihub2RlKCkpOwogICAgICAgICAKLSAgICBpZiAoaW1hZ2VF
bHQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKS0+YWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19OT05FKQorICAgIGlmIChpbWFnZUVsdC0+cHJlc2VydmVBc3BlY3RSYXRpbygpLT5hbGln
bigpID09IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX05P
TkUpCiAgICAgICAgIFJlbmRlckltYWdlOjpwYWludChwaSwgMCwgMCk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIEZsb2F0UmVjdCBkZXN0UmVjdChtX3gsIG1feSwgY29udGVudFdpZHRoKCksIGNvbnRl
bnRIZWlnaHQoKSk7CkluZGV4OiBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHVGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR1RleHQuY3BwCShSZXZpc2lvbiAx
NjI4OCkKKysrIFdlYkNvcmUva2NhbnZhcy9SZW5kZXJTVkdUZXh0LmNwcAkoQXJiZWl0c2tvcGll
KQpAQCAtNDksMTAgKzQ5LDExIEBACiB7CiAgICAgU1ZHVGV4dEVsZW1lbnQgKnRleHQgPSBzdGF0
aWNfY2FzdDxTVkdUZXh0RWxlbWVudCAqPihlbGVtZW50KCkpOwogCi0gICAgZmxvYXQgeE9mZnNl
dCA9IHRleHQtPngoKS0+Z2V0Rmlyc3QoKSA/IHRleHQtPngoKS0+Z2V0Rmlyc3QoKS0+dmFsdWUo
KSA6IDA7Ci0gICAgZmxvYXQgeU9mZnNldCA9IHRleHQtPnkoKS0+Z2V0Rmlyc3QoKSA/IHRleHQt
PnkoKS0+Z2V0Rmlyc3QoKS0+dmFsdWUoKSA6IDA7CisgICAgU1ZHTGVuZ3RoKiB4T2Zmc2V0ID0g
dGV4dC0+eCgpLT5nZXRGaXJzdCgpOworICAgIFNWR0xlbmd0aCogeU9mZnNldCA9IHRleHQtPnko
KS0+Z2V0Rmlyc3QoKTsKIAotICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKS50cmFuc2xhdGUo
eE9mZnNldCwgeU9mZnNldCk7CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpLnRyYW5zbGF0
ZSh4T2Zmc2V0ID8geE9mZnNldC0+dmFsdWUoKSA6IDAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB5T2Zmc2V0ID8geU9mZnNldC0+dmFsdWUoKSA6IDApOwogfQogCiB2
b2lkIFJlbmRlclNWR1RleHQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgcGFyZW50
WCwgaW50IHBhcmVudFkpCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmlkbAkoUmV2aXNpb24gMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1ByZXNl
cnZlQXNwZWN0UmF0aW8uaWRsCShSZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBz
dmcKK3sKKyAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8geyAKKyAgICAvLyBBbGlnbm1lbnQgVHlwZXMKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOICAgPSAwOworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX05PTkUgICAgID0gMTsKKyAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiA9IDI7CisgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU4gPSAz
OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZ
TUlOID0gNDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUlOWU1JRCA9IDU7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1JRFlNSUQgPSA2OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVT
RVJWRUFTUEVDVFJBVElPX1hNQVhZTUlEID0gNzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1BWCA9IDg7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNQVggPSA5OworICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYID0gMTA7CisgICAg
Ly8gTWVldC1vci1zbGljZSBUeXBlcworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVU
T1JTTElDRV9VTktOT1dOICAgPSAwOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVU
T1JTTElDRV9NRUVUICA9IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01FRVRPUlNM
SUNFX1NMSUNFID0gMjsKKyAgICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYWxp
Z247CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBz
ZXR0aW5nCisgICAgICAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNl
OworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0
dGluZworICB9OworfTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRlbXBsYXRl
LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUZW1w
bGF0ZS5oCShBcmJlaXRza29waWUpCkBAIC0yMCw4NiArMjAsNDYgQEAKICAgICBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdBbmltYXRlZFRlbXBsYXRl
X0gKLSNkZWZpbmUgS1NWR19TVkdBbmltYXRlZFRlbXBsYXRlX0gKKyNpZm5kZWYgU1ZHQW5pbWF0
ZWRUZW1wbGF0ZV9ICisjZGVmaW5lIFNWR0FuaW1hdGVkVGVtcGxhdGVfSAorCiAjaWZkZWYgU1ZH
X1NVUFBPUlQKIAotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFy
ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFNWR0FuZ2xlOworICAgIGNs
YXNzIFNWR0xlbmd0aDsKKyAgICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIGNs
YXNzIFN0cmluZzsKKyAgICBjbGFzcyBGbG9hdFJlY3Q7CiAKLSAgICAvLyBTVkdBbmltYXRlZFRl
bXBsYXRlCi0gICAgLy8gLSBsYXp5IGNyZWF0aW9uIG9mIGJhc2VWYWwvYW5pbVZhbAotICAgIC8v
ICAgKG5vIG1vcmUgd2FzdGUgb2YgbW9zdGx5IHVudXNlZCBhbmltVmFsIHZhcmlhYmxlISkKLSAg
ICAvLyAtIG5vdCBkaXJlY3RseSBjcmVhdGFibGUgKG9ubHkgYnkgY2hpbGQgY2xhc3NlcykKLSAg
ICAvLyAtIG5vIGNvcHkgY3Rvci9ubyBhc3NpZ25tZW50IG9wZXJhdG9yIGF2YWlsYWJsZQotICAg
IC8vICAgKC0+IGEgY2xhc3MgZm9yIG9ubHkgZm9yIHBvaW50ZXIgdXNhZ2UpCi0gICAgdGVtcGxh
dGU8Y2xhc3MgVD4KLSAgICBjbGFzcyBTVkdBbmltYXRlZFRlbXBsYXRlIDogcHVibGljIFNoYXJl
ZDxTVkdBbmltYXRlZFRlbXBsYXRlPFQ+ID4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhcmVU
eXBlPgorICAgIGNsYXNzIFNWR0FuaW1hdGVkVGVtcGxhdGUgOiBwdWJsaWMgU2hhcmVkPFNWR0Fu
aW1hdGVkVGVtcGxhdGU8QmFyZVR5cGU+ID4KKyAgICB7CiAgICAgcHVibGljOgotICAgICAgICB2
aXJ0dWFsIH5TVkdBbmltYXRlZFRlbXBsYXRlKCkKLSAgICAgICAgewotICAgICAgICB9CisgICAg
ICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVGVtcGxhdGUoKSB7IH0KIAotICAgICAgICBUICpiYXNl
VmFsKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgaWYoIW1fYmFzZVZhbCkKLSAgICAg
ICAgICAgICAgICBtX2Jhc2VWYWwgPSBjcmVhdGUoKTsKKyAgICAgICAgdmlydHVhbCBCYXJlVHlw
ZSBiYXNlVmFsKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0QmFzZVZhbChC
YXJlVHlwZSBuZXdCYXNlVmFsKSA9IDA7CiAKLSAgICAgICAgICAgIHJldHVybiBtX2Jhc2VWYWwu
Z2V0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHNldEJhc2VWYWwoVCAqYmFzZVZhbCkg
Y29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgbV9iYXNlVmFsID0gYmFzZVZhbDsKLQotICAg
ICAgICAgICAgaWYobV9jb250ZXh0KQotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5
QXR0cmlidXRlQ2hhbmdlKCk7Ci0KLSAgICAgICAgICAgIHNldEFuaW1WYWwoYmFzZVZhbCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBUICphbmltVmFsKCkgY29uc3QKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgICAgICBtX2FuaW1WYWwgPSBjcmVhdGUo
KTsKLQotICAgICAgICAgICAgcmV0dXJuIG1fYW5pbVZhbC5nZXQoKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZvaWQgc2V0QW5pbVZhbChUICphbmltVmFsKSBjb25zdAotICAgICAgICB7Ci0gICAg
ICAgICAgICBtX2FuaW1WYWwgPSBhbmltVmFsOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAv
LyBJIHRoaW5rIHRoaXMgaXMgc3VwZXJmbHVvdXMuLi4gLS0gRUNTIDQvMjUvMDUKLSAgICAgICAg
ICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSgpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgIHByb3RlY3RlZDoKLSAgICAg
ICAgU1ZHQW5pbWF0ZWRUZW1wbGF0ZShjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6
IFNoYXJlZDxTVkdBbmltYXRlZFRlbXBsYXRlPigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUaGlzIG1ldGhvZHMg
bmVlZCB0byBiZSByZWltcGxlbWVudGVkLiAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgVCAqY3Jl
YXRlKCkgY29uc3QgPSAwOwotICAgICAgICAvL3ZpcnR1YWwgdm9pZCBhc3NpZ24oVCAqc3JjLCBU
ICpkc3QpIGNvbnN0ID0gMDsKLQotICAgICAgICAvLyBBdHRyaWJ1dGUgbm90aWZpY2F0aW9uIGNv
bnRleHQKLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqbV9jb250ZXh0OwotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgU1ZHQW5pbWF0ZWRUZW1wbGF0ZShjb25zdCBTVkdBbmltYXRlZFRl
bXBsYXRlICYpIHsgfQotICAgICAgICBTVkdBbmltYXRlZFRlbXBsYXRlPFQ+ICZvcGVyYXRvcj0o
Y29uc3QgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxUPiAmKSB7IH0KLSAgICAgICAgCi0gICAgICAgIG11
dGFibGUgUmVmUHRyPFQ+IG1fYmFzZVZhbDsKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8VD4gbV9h
bmltVmFsOworICAgICAgICB2aXJ0dWFsIEJhcmVUeXBlIGFuaW1WYWwoKSBjb25zdCA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltVmFsKEJhcmVUeXBlIG5ld0FuaW1WYWwpID0gMDsK
ICAgICB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisgICAgLy8gQ29tbW9uIHR5cGUgZGVm
aW5pdGlvbnMsIHRvIGVhc2UgSURMIGdlbmVyYXRpb24uLi4KKyAgICB0eXBlZGVmIFNWR0FuaW1h
dGVkVGVtcGxhdGU8U1ZHQW5nbGUqPiBTVkdBbmltYXRlZEFuZ2xlOworICAgIHR5cGVkZWYgU1ZH
QW5pbWF0ZWRUZW1wbGF0ZTxib29sPiBTVkdBbmltYXRlZEJvb2xlYW47CisgICAgdHlwZWRlZiBT
VkdBbmltYXRlZFRlbXBsYXRlPGludD4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjsKKyAgICB0eXBl
ZGVmIFNWR0FuaW1hdGVkVGVtcGxhdGU8bG9uZz4gU1ZHQW5pbWF0ZWRJbnRlZ2VyOworICAgIHR5
cGVkZWYgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdMZW5ndGgqPiBTVkdBbmltYXRlZExlbmd0aDsK
KyAgICB0eXBlZGVmIFNWR0FuaW1hdGVkVGVtcGxhdGU8ZG91YmxlPiBTVkdBbmltYXRlZE51bWJl
cjsKKyAgICB0eXBlZGVmIFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
byo+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICB0eXBlZGVmIFNWR0FuaW1h
dGVkVGVtcGxhdGU8RmxvYXRSZWN0PiBTVkdBbmltYXRlZFJlY3Q7CisgICAgdHlwZWRlZiBTVkdB
bmltYXRlZFRlbXBsYXRlPFN0cmluZz4gU1ZHQW5pbWF0ZWRTdHJpbmc7Cit9CiAKICNlbmRpZiAv
LyBTVkdfU1VQUE9SVAotI2VuZGlmIC8vIEtTVkdfU1ZHQW5pbWF0ZWRUZW1wbGF0ZV9ICisjZW5k
aWYgLy8gU1ZHQW5pbWF0ZWRUZW1wbGF0ZV9ICiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR051bWJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHTnVtYmVyLmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdOdW1iZXIuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gICAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUu
b3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0
ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdOdW1iZXIuaCIKLSNp
bmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1TVkdOdW1iZXI6OlNWR051bWJlcihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6
IFNoYXJlZDxTVkdOdW1iZXI+KCkKLXsKLSAgICBtX3ZhbHVlID0gMC4wOwotICAgIG1fY29udGV4
dCA9IGNvbnRleHQ7Ci19Ci0KLVNWR051bWJlcjo6flNWR051bWJlcigpCi17Ci19Ci0KLWZsb2F0
IFNWR051bWJlcjo6dmFsdWUoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZhbHVlOwotfQotCi12
b2lkIFNWR051bWJlcjo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpCi17Ci0gICAgbV92YWx1ZSA9IHZh
bHVlOwotCi0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSgpOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTMwLDYgKzMwLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR1RyYW5zZm9ybTsKKyAgICBjbGFzcyBBZmZp
bmVUcmFuc2Zvcm07CiAKICAgICBjbGFzcyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCA6IHB1
YmxpYyBTVkdBbmltYXRpb25FbGVtZW50IHsKICAgICBwdWJsaWM6CkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaAkoQXJiZWl0c2tvcGllKQpAQCAt
MSw0OCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkTnVtYmVyTGlzdEltcGxfSAotI2Rl
ZmluZSBLU1ZHX1NWR0FuaW1hdGVkTnVtYmVyTGlzdEltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JU
Ci0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFRlbXBsYXRlLmgiCi0jaW5jbHVkZSAiU1ZHTnVtYmVy
TGlzdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR051bWJlckxpc3Q+Ci0gICAg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0KGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZE51bWJl
ckxpc3QoKTsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBTVkdOdW1iZXJMaXN0
ICpjcmVhdGUoKSBjb25zdDsKLSAgICAgICAgLy92aXJ0dWFsIHZvaWQgYXNzaWduKFNWR051bWJl
ckxpc3QgKnNyYywgU1ZHTnVtYmVyTGlzdCAqZHN0KSBjb25zdDsKLSAgICB9OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZp
bTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRl
RWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00NiwxMyArNDYsMTMgQEAKICAgICAgICAgdmly
dHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRo
aXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIEluMiwgaW4yKQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIF9vcGVyYXRvciwgX29wZXJhdG9yKQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEsxLCBr
MSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91Ymxl
LCBLMiwgazIpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUs
IGRvdWJsZSwgSzMsIGszKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
ZG91YmxlLCBkb3VibGUsIEs0LCBrNCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVu
dCwgU3RyaW5nLCBTdHJpbmcsIEluMiwgaW4yKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHRkVDb21wb3NpdGVFbGVtZW50LCBpbnQsIGludCwgX29wZXJhdG9yLCBf
b3BlcmF0b3IpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNv
bXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLMSwgazEpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwgZG91
YmxlLCBLMiwgazIpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdG
RUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLMywgazMpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGRvdWJsZSwg
ZG91YmxlLCBLNCwgazQpCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFQ29tcG9zaXRlICptX2Zp
bHRlckVmZmVjdDsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZEVudW1lcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbi5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkRW51bWVyYXRpb24uaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NyArMCwwIEBACi0v
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lm
bmRlZiBLU1ZHX1NWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdB
bmltYXRlZEVudW1lcmF0aW9uSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUg
IlNoYXJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFNWR1N0eWxlZEVs
ZW1lbnQ7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZEVudW1lcmF0aW9uIDogcHVibGljIFNoYXJl
ZDxTVkdBbmltYXRlZEVudW1lcmF0aW9uPgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24oY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0g
ICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkRW51bWVyYXRpb24oKTsKLQotICAgICAgICB1bnNp
Z25lZCBzaG9ydCBiYXNlVmFsKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QmFzZVZhbCh1bnNp
Z25lZCBzaG9ydCBiYXNlVmFsKTsKLQotICAgICAgICB1bnNpZ25lZCBzaG9ydCBhbmltVmFsKCkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QW5pbVZhbCh1bnNpZ25lZCBzaG9ydCBhbmltVmFsKTsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0IG1fYmFzZVZhbDsKLSAgICAg
ICAgdW5zaWduZWQgc2hvcnQgbV9hbmltVmFsOwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnQgKm1fY29udGV4dDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdTdG9wRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC0zOSw3ICszOSw3IEBA
CiAgICAgICAgIC8vICdTVkdTdG9wbGVtZW50JyBmdW5jdGlvbnMKICAgICAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cik7CiAgICAgcHJp
dmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91
YmxlLCBPZmZzZXQsIG9mZnNldCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR1N0b3BFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgT2Zmc2V0LCBvZmZzZXQpCiAgICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgJKEFyYmVpdHNrb3Bp
ZSkKQEAgLTQ1LDEyICs0NSwxMiBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBJ
biwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRv
dWJsZSwgRGlmZnVzZUNvbnN0YW50LCBkaWZmdXNlQ29uc3RhbnQpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgU3VyZmFjZVNjYWxlLCBzdXJm
YWNlU2NhbGUpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDb2xv
ciosIFJlZlB0cjxTVkdDb2xvcj4sIExpZ2h0aW5nQ29sb3IsIGxpZ2h0aW5nQ29sb3IpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgS2VybmVs
VW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhYKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEtlcm5lbFVuaXRMZW5ndGhZLCBrZXJuZWxV
bml0TGVuZ3RoWSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dCwgZG91YmxlLCBkb3VibGUsIERpZmZ1c2VDb25zdGFudCwgZGlmZnVzZUNvbnN0YW50KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3VyZmFjZVNjYWxlLCBzdXJmYWNlU2NhbGUpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQsIFNWR0NvbG9yKiwgUmVmUHRyPFNWR0NvbG9yPiwgTGlnaHRpbmdDb2xvciwgbGlnaHRp
bmdDb2xvcikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEtlcm5lbFVuaXRMZW5ndGhYLCBr
ZXJuZWxVbml0TGVuZ3RoWCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEtlcm5lbFVuaXRM
ZW5ndGhZLCBrZXJuZWxVbml0TGVuZ3RoWSkKICAgICAgICAgLy9uZWVkIG90aGVyIHByb3BlcnRp
ZXMgaGVyZS4uLgogICAgICAgICBtdXRhYmxlIEtDYW52YXNGRURpZmZ1c2VMaWdodGluZyAqbV9m
aWx0ZXJFZmZlY3Q7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRQb2ludHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
UG9pbnRzLmlkbAkoUmV2aXNpb24gMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
UG9pbnRzLmlkbAkoUmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7Cisg
IGludGVyZmFjZSBbbm9kcHRyLCBDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkUG9pbnRzIHsg
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCAgIHBvaW50czsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0ICAgYW5pbWF0ZWRQb2ludHM7CisgIH07Cit9OwpJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEyNiwxMCAr
MTI2LDE1IEBACiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBhZGRTVkdXaW5kb3dFdmVudExp
c3RuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IEF0dHJpYnV0ZSogYXR0
cik7ICAgCiAKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgV2lkdGgsIHdpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xB
UkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3
Qm94LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKKworICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHU1ZHRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTVkdFbGVtZW50LCBTVkdMZW5n
dGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR1NWR0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBXaWR0aCwgd2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdTVkdFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWln
aHQpCisKICAgICAgICAgYm9vbCBtX3VzZUN1cnJlbnRWaWV3OwogICAgICAgICBUaW1lU2NoZWR1
bGVyKiBtX3RpbWVTY2hlZHVsZXI7CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC01MSw2ICs1MSw5IEBACiAgICAgICAgIHZp
cnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
aGlzOyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJE
X0RFQ0xBUkFUSU9OUyhTVkdVUklSZWZlcmVuY2UsIFN0cmluZywgSHJlZiwgaHJlZikKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCkKKwogICAgICAgICBTdHJpbmcgbV90eXBlOwogICAgIH07CiAKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbAkoUmV2aXNpb24gMCkK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGwJKFJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZworeworICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFs
PVNWR10gU1ZHQW5pbWF0ZWRJbnRlZ2VyIHsgCisgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcg
YmFzZVZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9u
IG9uIHNldHRpbmcKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBhbmltVmFsOworICB9Owor
fTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCShBcmJlaXRz
a29waWUpCkBAIC0zOCw3ICszOCw3IEBACiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudDo6U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYykKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwg
ZG9jKQogICAgICwgbV90eXBlKDApCi0gICAgLCBtX3RhYmxlVmFsdWVzKG5ldyBTVkdOdW1iZXJM
aXN0KDApKQorICAgICwgbV90YWJsZVZhbHVlcyhuZXcgU1ZHTnVtYmVyTGlzdCgpKQogICAgICwg
bV9zbG9wZSgwLjApCiAgICAgLCBtX2ludGVyY2VwdCgwLjApCiAgICAgLCBtX2FtcGxpdHVkZSgw
LjApCkBAIC0xMDMsNyArMTAzLDcgQEAKICAgICBTVkdOdW1iZXJMaXN0ICpudW1iZXJzID0gdGFi
bGVWYWx1ZXMoKTsKICAgICB1bnNpZ25lZCBpbnQgbnIgPSBudW1iZXJzLT5udW1iZXJPZkl0ZW1z
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBucjsgaSsrKQotICAgICAgICBm
dW5jLnRhYmxlVmFsdWVzLmFwcGVuZChudW1iZXJzLT5nZXRJdGVtKGkpLT52YWx1ZSgpKTsKKyAg
ICAgICAgZnVuYy50YWJsZVZhbHVlcy5hcHBlbmQobnVtYmVycy0+Z2V0SXRlbShpKSk7CiAgICAg
cmV0dXJuIGZ1bmM7CiB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUHJl
c2VydmVBc3BlY3RSYXRpby5oCShBcmJlaXRza29waWUpCkBAIC0yMCwyMCArMjAsNDAgQEAKICAg
ICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b0ltcGxfSAorI2lmbmRlZiBLU1ZHX1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9fSAorI2RlZmluZSBL
U1ZHX1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9fSAorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogI2lu
Y2x1ZGUgIlNoYXJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBTdHJp
bmdJbXBsOwogICAgIGNsYXNzIFNWR01hdHJpeDsKICAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50
OwogCiAgICAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTaGFyZWQ8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpbz4geyAKICAgICBwdWJsaWM6CisgICAgICAgIGVudW0gU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1R5cGUgeworICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fVU5LTk9XTiAgICAgPSAwLAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
Tk9ORSAgICAgICAgPSAxLAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1J
TllNSU4gICAgPSAyLAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlN
SU4gICAgPSAzLAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSU4g
ICAgPSA0LAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQgICAg
PSA1LAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSUQgICAgPSA2
LAorICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQgICAgPSA3LAor
ICAgICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNQVggICAgPSA4LAorICAg
ICAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNQVggICAgPSA5LAorICAgICAg
ICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVggICAgPSAxMAorICAgICAgICB9
OworCisgICAgICAgIGVudW0gU1ZHTWVldE9yU2xpY2VUeXBlIHsKKyAgICAgICAgICAgIFNWR19N
RUVUT1JTTElDRV9VTktOT1dOICAgID0gMCwKKyAgICAgICAgICAgIFNWR19NRUVUT1JTTElDRV9N
RUVUICAgICAgID0gMSwKKyAgICAgICAgICAgIFNWR19NRUVUT1JTTElDRV9TTElDRSAgICAgID0g
MgorICAgICAgICB9OworCiAgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCAqY29udGV4dCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8oKTsKIApAQCAtNjEsNiArODEsNiBAQAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZiAvLyBLU1ZHX1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9JbXBsX0gKKyNlbmRpZiAvLyBLU1ZHX1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9fSAogCiAv
LyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNDMsMTEg
KzQzLDExIEBACiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBJbjIsIGlu
MikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBYQ2hh
bm5lbFNlbGVjdG9yLCB4Q2hhbm5lbFNlbGVjdG9yKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFlDaGFubmVsU2VsZWN0b3IsIHlDaGFubmVsU2VsZWN0
b3IpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJs
ZSwgU2NhbGUsIHNjYWxlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LCBTdHJpbmcsIFN0cmluZywgSW4sIGluKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50LCBTdHJpbmcsIFN0cmluZywgSW4yLCBpbjIpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIGludCwgaW50LCBY
Q2hhbm5lbFNlbGVjdG9yLCB4Q2hhbm5lbFNlbGVjdG9yKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LCBpbnQsIGludCwg
WUNoYW5uZWxTZWxlY3RvciwgeUNoYW5uZWxTZWxlY3RvcikKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgZG91YmxlLCBk
b3VibGUsIFNjYWxlLCBzY2FsZSkKICAgICAgICAgbXV0YWJsZSBLQ2FudmFzRkVEaXNwbGFjZW1l
bnRNYXAqIG1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDc0ICswLDAg
QEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdT
dHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRJbnRlZ2VyLmgiCi0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZEludGVnZXI6OlNWR0FuaW1hdGVkSW50
ZWdlcihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNoYXJlZDxTVkdBbmltYXRl
ZEludGVnZXI+KCkKLXsKLSAgICBtX2Jhc2VWYWwgPSAwOwotICAgIG1fYW5pbVZhbCA9IDA7Ci0K
LSAgICBtX2NvbnRleHQgPSBjb250ZXh0OwotfQotCi1TVkdBbmltYXRlZEludGVnZXI6On5TVkdB
bmltYXRlZEludGVnZXIoKQotewotfQotCi1sb25nIFNWR0FuaW1hdGVkSW50ZWdlcjo6YmFzZVZh
bCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFzZVZhbDsKLX0KLQotdm9pZCBTVkdBbmltYXRl
ZEludGVnZXI6OnNldEJhc2VWYWwobG9uZyBiYXNlVmFsKQotewotICAgIG1fYmFzZVZhbCA9IGJh
c2VWYWw7Ci0gICAgCi0gICAgLy8gU3BlYzogSWYgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvciBwcm9w
ZXJ0eSBpcyBub3QgY3VycmVudGx5Ci0gICAgLy8gICAgICAgICBiZWluZyBhbmltYXRlZCwgY29u
dGFpbnMgdGhlIHNhbWUgdmFsdWUgYXMgJ2Jhc2VWYWwnCi0gICAgbV9hbmltVmFsID0gYmFzZVZh
bDsKLQotICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1
dGVDaGFuZ2UoKTsKLX0KLQotbG9uZyBTVkdBbmltYXRlZEludGVnZXI6OmFuaW1WYWwoKSBjb25z
dAotewotICAgIHJldHVybiBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
OjpzZXRBbmltVmFsKGxvbmcgYW5pbVZhbCkKLXsKLSAgICBtX2FuaW1WYWwgPSBhbmltVmFsOwot
Ci0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNo
YW5nZSgpOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1JlY3QuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdSZWN0LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+
Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0K
LSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
MCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpZm5kZWYgS1NWR19T
VkdSZWN0SW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUmVjdEltcGxfSAotI2lmZGVmIFNWR19TVVBQ
T1JUCi0KLSNpbmNsdWRlICJTaGFyZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBj
bGFzcyBTVkdTdHlsZWRFbGVtZW50OwotICAgIGNsYXNzIFNWR1JlY3QgOiBwdWJsaWMgU2hhcmVk
PFNWR1JlY3Q+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUmVjdChjb25zdCBTVkdT
dHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHUmVjdCgpOwotCi0g
ICAgICAgIC8vICdTVkdSZWN0JyBmdW5jdGlvbnMKLSAgICAgICAgZG91YmxlIHgoKSBjb25zdDsK
LSAgICAgICAgdm9pZCBzZXRYKGRvdWJsZSB2YWx1ZSk7Ci0KLSAgICAgICAgZG91YmxlIHkoKSBj
b25zdDsKLSAgICAgICAgdm9pZCBzZXRZKGRvdWJsZSB2YWx1ZSk7Ci0KLSAgICAgICAgZG91Ymxl
IHdpZHRoKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0V2lkdGgoZG91YmxlIHZhbHVlKTsKLQot
ICAgICAgICBkb3VibGUgaGVpZ2h0KCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0SGVpZ2h0KGRv
dWJsZSB2YWx1ZSk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBkb3VibGUgbV94OwotICAgICAg
ICBkb3VibGUgbV95OwotICAgICAgICBkb3VibGUgbV93aWR0aDsKLSAgICAgICAgZG91YmxlIG1f
aGVpZ2h0OwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLSAg
ICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAot
I2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR01h
c2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTWFza0VsZW1l
bnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXNrRWxlbWVu
dC5oCShBcmJlaXRza29waWUpCkBAIC02MCwxMCArNjAsMTMgQEAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIEtDYW52YXNJbWFnZSAqZHJhd01hc2tlckNvbnRlbnQoKTsKIAotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4s
IFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgq
LCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCi0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8
U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZP
UldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkKQorIAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHTWFza0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBY
LCB4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFza0VsZW1l
bnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFza0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4s
IEhlaWdodCwgaGVpZ2h0KQogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHVHJhbnNmb3JtTGlzdC5oCShBcmJlaXRza29waWUpCkBAIC0yMCw4ICsyMCw5IEBACiAg
ICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHVHJh
bnNmb3JtTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR1RyYW5zZm9ybUxpc3RJbXBsX0gKKyNp
Zm5kZWYgS1NWR19TVkdUcmFuc2Zvcm1MaXN0X0gKKyNkZWZpbmUgS1NWR19TVkdUcmFuc2Zvcm1M
aXN0X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdMaXN0LmgiCkBAIC0y
OSwyMSArMzAsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU1ZHVHJh
bnNmb3JtTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR1RyYW5zZm9ybT4geworICAgIGNsYXNzIFNW
R1RyYW5zZm9ybUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxTVkdUcmFuc2Zvcm0qPgorICAgIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIFNWR1RyYW5zZm9ybUxpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCAqY29udGV4dCA9IDApOworICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0KCk7CiAgICAgICAgIHZp
cnR1YWwgflNWR1RyYW5zZm9ybUxpc3QoKTsKIAotICAgICAgICBTVkdUcmFuc2Zvcm0gKmNyZWF0
ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4ICptYXRyaXgpIGNvbnN0OwotICAgICAg
ICBTVkdUcmFuc2Zvcm0gKmNvbnNvbGlkYXRlKCk7CisgICAgICAgIFNWR1RyYW5zZm9ybSogY3Jl
YXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgqIG1hdHJpeCkgY29uc3Q7CisgICAg
ICAgIFNWR1RyYW5zZm9ybSogY29uc29saWRhdGUoKTsKIAogICAgICAgICAvLyBJbnRlcm5hbCB1
c2Ugb25seQotICAgICAgICBTVkdUcmFuc2Zvcm0gKmNvbmNhdGVuYXRlKCkgY29uc3Q7CisgICAg
ICAgIFNWR1RyYW5zZm9ybSogY29uY2F0ZW5hdGUoKSBjb25zdDsKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmIC8vIEtTVkdf
U1ZHVHJhbnNmb3JtTGlzdEltcGxfSAorI2VuZGlmIC8vIEtTVkdfU1ZHVHJhbnNmb3JtTGlzdF9I
CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQmxlbmRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1l
bnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUJsZW5kRWxl
bWVudC5oCShBcmJlaXRza29waWUpCkBAIC00Niw5ICs0Niw5IEBACiAgICAgICAgIHZpcnR1YWwg
Y29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U3RyaW5nLCBTdHJpbmcsIEluLCBpbikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFN0cmluZywgU3RyaW5nLCBJbjIsIGluMikKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKGludCwgaW50LCBNb2RlLCBtb2RlKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVCbGVuZEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJ
biwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUJsZW5k
RWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluMiwgaW4yKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVCbGVuZEVsZW1lbnQsIGludCwgaW50LCBNb2RlLCBtb2Rl
KQogICAgICAgICBtdXRhYmxlIEtDYW52YXNGRUJsZW5kICptX2ZpbHRlckVmZmVjdDsKICAgICB9
OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkoUmV2aXNpb24g
MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaWRsCShSZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcKK3sKKyAgaW50ZXJmYWNlIFtDb25kaXRpb25h
bD1TVkddIFNWR0FuaW1hdGVkQW5nbGUgeyAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5n
bGUgYmFzZVZhbDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5nbGUgYW5pbVZhbDsKKyAg
fTsKK307CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMzQsMTEgKzM0LDExIEBA
CiAKIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYykKICAgICA6IFNWR1Rl
eHRDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2MpCi0gICAgLCBtX3gobmV3IFNWR0xlbmd0aExp
c3QodGhpcykpCi0gICAgLCBtX3kobmV3IFNWR0xlbmd0aExpc3QodGhpcykpCi0gICAgLCBtX2R4
KG5ldyBTVkdMZW5ndGhMaXN0KHRoaXMpKQotICAgICwgbV9keShuZXcgU1ZHTGVuZ3RoTGlzdCh0
aGlzKSkKLSAgICAsIG1fcm90YXRlKG5ldyBTVkdOdW1iZXJMaXN0KHRoaXMpKQorICAgICwgbV94
KG5ldyBTVkdMZW5ndGhMaXN0KCkpCisgICAgLCBtX3kobmV3IFNWR0xlbmd0aExpc3QoKSkKKyAg
ICAsIG1fZHgobmV3IFNWR0xlbmd0aExpc3QoKSkKKyAgICAsIG1fZHkobmV3IFNWR0xlbmd0aExp
c3QoKSkKKyAgICAsIG1fcm90YXRlKG5ldyBTVkdOdW1iZXJMaXN0KCkpCiB7CiB9CiAKQEAgLTY1
LDcgKzY1LDcgQEAKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmR5QXR0
cikKICAgICAgICAgZHlCYXNlVmFsdWUoKS0+cGFyc2UodmFsdWUuZGVwcmVjYXRlZFN0cmluZygp
LCB0aGlzLCBMTV9IRUlHSFQpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1l
czo6cm90YXRlQXR0cikKLSAgICAgICAgcm90YXRlQmFzZVZhbHVlKCktPnBhcnNlKHZhbHVlLmRl
cHJlY2F0ZWRTdHJpbmcoKSwgdGhpcyk7CisgICAgICAgIHJvdGF0ZUJhc2VWYWx1ZSgpLT5wYXJz
ZSh2YWx1ZS5kZXByZWNhdGVkU3RyaW5nKCkpOwogICAgIGVsc2UKICAgICAgICAgU1ZHVGV4dENv
bnRlbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUG9pbnRMaXN0LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQb2ludExpc3QuY3BwCShBcmJlaXRza29waWUpCkBAIC0yMSwxMyArMjEsMTUgQEAK
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCisKICNpbmNs
dWRlICJTVkdQb2ludExpc3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVNWR1Bv
aW50TGlzdDo6U1ZHUG9pbnRMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06
IFNWR0xpc3Q8U1ZHUG9pbnQ+KGNvbnRleHQpCitTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCgp
CisgICAgOiBTVkdMaXN0PEZsb2F0UG9pbnQ+KCkKIHsKIH0KIApAQCAtMzUsNiArMzcsNiBAQAog
ewogfQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmlt
OnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkoUmV2aXNp
b24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKEFyYmVp
dHNrb3BpZSkKQEAgLTIyLDEzICsyMiwxNSBAQAogCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwog
I2lmZGVmIFNWR19TVVBQT1JUCisKICNpbmNsdWRlICJTVkdQYXRoU2VnTGlzdC5oIgogCi11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUGF0aFNlZ0xp
c3Q6OlNWR1BhdGhTZWdMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06IFNW
R0xpc3Q8U1ZHUGF0aFNlZz4oY29udGV4dCkKK1NWR1BhdGhTZWdMaXN0OjpTVkdQYXRoU2VnTGlz
dCgpCisgICAgOiBTVkdMaXN0PFNWR1BhdGhTZWcqPigpCiB7CiB9CiAKQEAgLTM2LDYgKzM4LDgg
QEAKIHsKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAorfQorCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQK
IAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTIyLDYgKzIyLDgg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmZGVmIFNWR19TVVBQT1JUCisKKyNpbmNsdWRl
ICJTVkdDb2xvci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCIKICNpbmNs
dWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAJKFJldmlzaW9uIDE2Mjg4KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAkoQXJiZWl0c2tvcGllKQpA
QCAtMjQsMTIgKzI0LDExIEBACiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUgIkF0dHIu
aCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmgiCi0jaW5jbHVkZSAiU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveC5o
IgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oIgotI2luY2x1ZGUgIlNWR1JlY3QuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgInN2Z3BhdGhwYXJzZXIuaCIKQEAgLTM3
LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHRml0VG9WaWV3Qm94OjpTVkdG
aXRUb1ZpZXdCb3goKQotICAgIDogbV92aWV3Qm94KG5ldyBTVkdSZWN0KDApKQorICAgIDogbV92
aWV3Qm94KCkKICAgICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhuZXcgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbygwKSkKIHsKIH0KQEAgLTQ2LDcgKzQ1LDcgQEAKIHsKIH0KIAotQU5JTUFURURfUFJP
UEVSVFlfREVGSU5JVElPTlNfV0lUSF9DT05URVhUKFNWR0ZpdFRvVmlld0JveCwgU1ZHUmVjdCos
IFJlY3QsIHJlY3QsIFZpZXdCb3gsIHZpZXdCb3gsIFNWR05hbWVzOjp2aWV3Qm94QXR0ci5sb2Nh
bE5hbWUoKSwgbV92aWV3Qm94LmdldCgpKQorQU5JTUFURURfUFJPUEVSVFlfREVGSU5JVElPTlNf
V0lUSF9DT05URVhUKFNWR0ZpdFRvVmlld0JveCwgRmxvYXRSZWN0LCBSZWN0LCByZWN0LCBWaWV3
Qm94LCB2aWV3Qm94LCBTVkdOYW1lczo6dmlld0JveEF0dHIubG9jYWxOYW1lKCksIG1fdmlld0Jv
eCkKIEFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX1dJVEhfQ09OVEVYVChTVkdGaXRUb1Zp
ZXdCb3gsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlv
LCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIubG9jYWxOYW1lKCksIG1fcHJlc2Vy
dmVBc3BlY3RSYXRpby5nZXQoKSkKIAogdm9pZCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0Jv
eChjb25zdCBTdHJpbmcmIHN0cikKQEAgLTc4LDEwICs3Nyw3IEBACiAgICAgaWYgKHAgPCBlbmQp
IC8vIG5vdGhpbmcgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhlIGxhc3QsIGZvdXJ0aCBudW1iZXIKICAg
ICAgICAgZ290byBiYWlsX291dDsKIAotICAgIHZpZXdCb3hCYXNlVmFsdWUoKS0+c2V0WCh4KTsK
LSAgICB2aWV3Qm94QmFzZVZhbHVlKCktPnNldFkoeSk7Ci0gICAgdmlld0JveEJhc2VWYWx1ZSgp
LT5zZXRXaWR0aCh3KTsKLSAgICB2aWV3Qm94QmFzZVZhbHVlKCktPnNldEhlaWdodChoKTsKKyAg
ICBzZXRWaWV3Qm94QmFzZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3LCBoKSk7CiAgICAgcmV0dXJu
OwogCiBiYWlsX291dDo7CkBAIC05MCwxMiArODYsMTIgQEAKIAogU1ZHTWF0cml4KiBTVkdGaXRU
b1ZpZXdCb3g6OnZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2
aWV3SGVpZ2h0KSBjb25zdAogewotICAgIFNWR1JlY3QqIHZpZXdCb3hSZWN0ID0gdmlld0JveCgp
OwotICAgIGlmKHZpZXdCb3hSZWN0LT53aWR0aCgpID09IDAgfHwgdmlld0JveFJlY3QtPmhlaWdo
dCgpID09IDApCisgICAgRmxvYXRSZWN0IHZpZXdCb3hSZWN0ID0gdmlld0JveCgpOworICAgIGlm
KHZpZXdCb3hSZWN0LndpZHRoKCkgPT0gMCB8fCB2aWV3Qm94UmVjdC5oZWlnaHQoKSA9PSAwKQog
ICAgICAgICByZXR1cm4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHTWF0cml4KCk7CiAKLSAgICBy
ZXR1cm4gcHJlc2VydmVBc3BlY3RSYXRpbygpLT5nZXRDVE0odmlld0JveFJlY3QtPngoKSwKLSAg
ICAgICAgICAgIHZpZXdCb3hSZWN0LT55KCksIHZpZXdCb3hSZWN0LT53aWR0aCgpLCB2aWV3Qm94
UmVjdC0+aGVpZ2h0KCksCisgICAgcmV0dXJuIHByZXNlcnZlQXNwZWN0UmF0aW8oKS0+Z2V0Q1RN
KHZpZXdCb3hSZWN0LngoKSwKKyAgICAgICAgICAgIHZpZXdCb3hSZWN0LnkoKSwgdmlld0JveFJl
Y3Qud2lkdGgoKSwgdmlld0JveFJlY3QuaGVpZ2h0KCksCiAgICAgICAgICAgICAwLCAwLCB2aWV3
V2lkdGgsIHZpZXdIZWlnaHQpOwogfQogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZEFuZ2xlLmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1MyArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRBbmdsZTo6U1ZHQW5p
bWF0ZWRBbmdsZShjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQotOiBTVkdBbmltYXRl
ZFRlbXBsYXRlPFNWR0FuZ2xlPihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRlZEFuZ2xlOjp+
U1ZHQW5pbWF0ZWRBbmdsZSgpCi17Ci19Ci0KLVNWR0FuZ2xlICpTVkdBbmltYXRlZEFuZ2xlOjpj
cmVhdGUoKSBjb25zdAotewotICAgIHJldHVybiBuZXcgU1ZHQW5nbGUobV9jb250ZXh0KTsKLX0K
LQotdm9pZCBTVkdBbmltYXRlZEFuZ2xlOjphc3NpZ24oU1ZHQW5nbGUgKnNyYywgU1ZHQW5nbGUg
KmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8ICFkc3QpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGRzdC0+c2V0VmFsdWVBc1N0cmluZyhzcmMtPnZhbHVlQXNTdHJpbmcoKSk7Ci19Ci0KLS8v
IHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCShSZXZp
c2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMzksNyArMzksNyBAQAogU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQ6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiAgICAgOiBTVkdTdHlsZWRMb2Nh
dGFibGVFbGVtZW50KHRhZ05hbWUsIGRvYykKICAgICAsIFNWR1RyYW5zZm9ybWFibGUoKQotICAg
ICwgbV90cmFuc2Zvcm0obmV3IFNWR1RyYW5zZm9ybUxpc3QodGhpcykpCisgICAgLCBtX3RyYW5z
Zm9ybShuZXcgU1ZHVHJhbnNmb3JtTGlzdCgpKQogewogfQogCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdBbmltYXRlZE51bWJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyLmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXIuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NyArMCwwIEBACi0v
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lm
bmRlZiBLU1ZHX1NWR0FuaW1hdGVkTnVtYmVySW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0
ZWROdW1iZXJJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSAiU2hhcmVkLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKLQot
ICAgIGNsYXNzIFNWR0FuaW1hdGVkTnVtYmVyIDogcHVibGljIFNoYXJlZDxTVkdBbmltYXRlZE51
bWJlcj4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZE51bWJlcihjb25z
dCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0
ZWROdW1iZXIoKTsKLQotICAgICAgICBmbG9hdCBiYXNlVmFsKCkgY29uc3Q7Ci0gICAgICAgIHZv
aWQgc2V0QmFzZVZhbChmbG9hdCBiYXNlVmFsKTsKLQotICAgICAgICBmbG9hdCBhbmltVmFsKCkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QW5pbVZhbChmbG9hdCBhbmltVmFsKTsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIGZsb2F0IG1fYmFzZVZhbDsKLSAgICAgICAgZmxvYXQgbV9hbmltVmFs
OwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLSAgICB9Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlm
Ci0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0dyYWRpZW50
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRF
bGVtZW50LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuY3BwCShBcmJlaXRza29waWUpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgLCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKCkKICAgICAsIG1fc3ByZWFkTWV0aG9kKDApCiAg
ICAgLCBtX2dyYWRpZW50VW5pdHMoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKLSAg
ICAsIG1fZ3JhZGllbnRUcmFuc2Zvcm0obmV3IFNWR1RyYW5zZm9ybUxpc3QodGhpcykpCisgICAg
LCBtX2dyYWRpZW50VHJhbnNmb3JtKG5ldyBTVkdUcmFuc2Zvcm1MaXN0KCkpCiB7CiAgICAgbV9y
ZXNvdXJjZSA9IDA7CiB9CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NCArMCww
IEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVj
dAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZH
VHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OjpT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkg
OiBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR1RyYW5zZm9ybUxpc3Q+KGNvbnRleHQpCi17Ci19Ci0K
LVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdDo6flNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCgpCi17
Ci19Ci0KLVNWR1RyYW5zZm9ybUxpc3QgKlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdDo6Y3JlYXRl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IFNWR1RyYW5zZm9ybUxpc3QobV9jb250ZXh0KTsK
LX0KLQotLy92b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdDo6YXNzaWduKFNWR1RyYW5zZm9y
bUxpc3QgKnNyYywgU1ZHVHJhbnNmb3JtTGlzdCAqZHN0KSBjb25zdAotLy97Ci0vLyAgICBpZigh
c3JjIHx8ICFkc3QpCi0vLyAgICAgICAgcmV0dXJuOwotLy8gICAgCi0vLyAgICAvLyBVc2UgU1ZH
TGlzdDxTVkdUcmFuc2Zvcm0+OjpvcGVyYXRvcj0KLS8vICAgICpkc3QgPSAqc3JjOwotLy99Ci0K
LS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKFJldmlzaW9uIDE2Mjg4KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkoQXJiZWl0c2tv
cGllKQpAQCAtMSw1NCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0OjpTVkdBbmltYXRlZExlbmd0aExpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29u
dGV4dCkgOiBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR0xlbmd0aExpc3Q+KGNvbnRleHQpCi17Ci19
Ci0KLVNWR0FuaW1hdGVkTGVuZ3RoTGlzdDo6flNWR0FuaW1hdGVkTGVuZ3RoTGlzdCgpCi17Ci19
Ci0KLVNWR0xlbmd0aExpc3QgKlNWR0FuaW1hdGVkTGVuZ3RoTGlzdDo6Y3JlYXRlKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbmV3IFNWR0xlbmd0aExpc3QobV9jb250ZXh0KTsKLX0KLQotLy92b2lk
IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdDo6YXNzaWduKFNWR0xlbmd0aExpc3QgKnNyYywgU1ZHTGVu
Z3RoTGlzdCAqZHN0KSBjb25zdAotLy97Ci0vLyAgICBpZighc3JjIHx8ICFkc3QpCi0vLyAgICAg
ICAgcmV0dXJuOwotLy8KLS8vICAgIC8vIFVzZSBTVkdMaXN0PFNWR0xlbmd0aD46Om9wZXJhdG9y
PQotLy8gICAgKmRzdCA9ICpzcmM7Ci0vL30KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8v
IFNWR19TVVBQT1JUCi0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5o
CShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oCShBcmJlaXRza29waWUpCkBAIC01Myw3ICs1MywxMCBAQAogICAgICAgICB2aXJ0dWFsIGNv
bnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGlu
dCwgaW50LCBDbGlwUGF0aFVuaXRzLCBjbGlwUGF0aFVuaXRzKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkKQorCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDbGlwUGF0
aEVsZW1lbnQsIGludCwgaW50LCBDbGlwUGF0aFVuaXRzLCBjbGlwUGF0aFVuaXRzKQorCiAgICAg
ICAgIEtDYW52YXNDbGlwcGVyICptX2NsaXBwZXI7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdBbmltYXRlZFJlY3QuaWRsCShSZXZpc2lvbiAwKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbAkoUmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1
bGUgc3ZnCit7CisgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZFJlY3Qg
eyAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUmVjdCBiYXNlVmFsOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdSZWN0IGFuaW1WYWw7CisgIH07Cit9OwpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNzQgKzAs
MCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5u
IDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNW
R1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgotCi11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWROdW1iZXI6OlNWR0FuaW1hdGVkTnVt
YmVyKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU2hhcmVkPFNWR0FuaW1hdGVk
TnVtYmVyPigpCi17Ci0gICAgbV9iYXNlVmFsID0gMDsKLSAgICBtX2FuaW1WYWwgPSAwOwotCi0g
ICAgbV9jb250ZXh0ID0gY29udGV4dDsKLX0KLQotU1ZHQW5pbWF0ZWROdW1iZXI6On5TVkdBbmlt
YXRlZE51bWJlcigpCi17Ci19Ci0KLWZsb2F0IFNWR0FuaW1hdGVkTnVtYmVyOjpiYXNlVmFsKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9iYXNlVmFsOwotfQotCi12b2lkIFNWR0FuaW1hdGVkTnVt
YmVyOjpzZXRCYXNlVmFsKGZsb2F0IGJhc2VWYWwpCi17Ci0gICAgbV9iYXNlVmFsID0gYmFzZVZh
bDsKLSAgICAKLSAgICAvLyBTcGVjOiBJZiB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHByb3BlcnR5
IGlzIG5vdCBjdXJyZW50bHkKLSAgICAvLyAgICAgICAgIGJlaW5nIGFuaW1hdGVkLCBjb250YWlu
cyB0aGUgc2FtZSB2YWx1ZSBhcyAnYmFzZVZhbCcKLSAgICBtX2FuaW1WYWwgPSBiYXNlVmFsOwot
Ci0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNo
YW5nZSgpOwotfQotCi1mbG9hdCBTVkdBbmltYXRlZE51bWJlcjo6YW5pbVZhbCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fYW5pbVZhbDsKLX0KLQotdm9pZCBTVkdBbmltYXRlZE51bWJlcjo6c2V0
QW5pbVZhbChmbG9hdCBhbmltVmFsKQotewotICAgIG1fYW5pbVZhbCA9IGFuaW1WYWw7Ci0KLSAg
ICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdl
KCk7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgJKFJldmlzaW9u
IDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAko
QXJiZWl0c2tvcGllKQpAQCAtNDcsOSArNDcsOSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywg
U3RyaW5nLCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhp
bnQsIGludCwgVHlwZSwgdHlwZSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR051bWJlckxpc3QqLCBSZWZQdHI8U1ZHTnVtYmVyTGlzdD4sIFZhbHVlcywgdmFsdWVz
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbG9yTWF0cml4RWxlbWVudCwgaW50LCBpbnQsIFR5cGUs
IHR5cGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbG9y
TWF0cml4RWxlbWVudCwgU1ZHTnVtYmVyTGlzdCosIFJlZlB0cjxTVkdOdW1iZXJMaXN0PiwgVmFs
dWVzLCB2YWx1ZXMpCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFQ29sb3JNYXRyaXggKm1fZmls
dGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
UmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0
LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJl
Y3QuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAg
ICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAg
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0g
ICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3QuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkUmVjdDo6U1ZHQW5pbWF0ZWRSZWN0
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxT
VkdSZWN0Pihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRlZFJlY3Q6On5TVkdBbmltYXRlZFJl
Y3QoKQotewotfQotCi1TVkdSZWN0ICpTVkdBbmltYXRlZFJlY3Q6OmNyZWF0ZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG5ldyBTVkdSZWN0KG1fY29udGV4dCk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0
ZWRSZWN0Ojphc3NpZ24oU1ZHUmVjdCAqc3JjLCBTVkdSZWN0ICpkc3QpIGNvbnN0Ci17Ci0gICAg
aWYoIXNyYyB8fCAhZHN0KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgZHN0LT5zZXRYKHNy
Yy0+eCgpKTsKLSAgICBkc3QtPnNldFkoc3JjLT55KCkpOwotICAgIGRzdC0+c2V0V2lkdGgoc3Jj
LT53aWR0aCgpKTsKLSAgICBkc3QtPnNldEhlaWdodChzcmMtPmhlaWdodCgpKTsKLX0KLQotLy8g
dmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0xlbmd0aExpc3QuY3BwCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0xlbmd0aExpc3QuY3BwCShBcmJlaXRza29waWUpCkBAIC0yMSw3ICsyMSw5IEBACiAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpZmRlZiBTVkdfU1VQUE9SVAorCiAjaW5jbHVkZSAi
RGVwcmVjYXRlZFN0cmluZ0xpc3QuaCIKIAogI2luY2x1ZGUgIlNWR01hdHJpeC5oIgpAQCAtMzAs
OCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR0xlbmd0aExpc3Q6OlNWR0xl
bmd0aExpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkKLSAgICA6IFNWR0xpc3Q8
U1ZHTGVuZ3RoPihjb250ZXh0KQorU1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCgpCisgICAg
OiBTVkdMaXN0PFNWR0xlbmd0aCo+KCkKIHsKIH0KIApAQCAtMzksMTEgKzQxLDExIEBACiB7CiB9
CiAKLXZvaWQgU1ZHTGVuZ3RoTGlzdDo6cGFyc2UoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmdmFs
dWUsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQsIExlbmd0aE1vZGUgbW9kZSkKK3Zv
aWQgU1ZHTGVuZ3RoTGlzdDo6cGFyc2UoY29uc3QgRGVwcmVjYXRlZFN0cmluZyYgdmFsdWUsIGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQsIExlbmd0aE1vZGUgbW9kZSkKIHsKICAgICBE
ZXByZWNhdGVkU3RyaW5nTGlzdCBsZW5ndGhzID0gRGVwcmVjYXRlZFN0cmluZ0xpc3Q6OnNwbGl0
KCcgJywgdmFsdWUpOwogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVuZ3Rocy5j
b3VudCgpOyBpKyspIHsKLSAgICAgICAgU1ZHTGVuZ3RoICpsZW5ndGggPSBuZXcgU1ZHTGVuZ3Ro
KGNvbnRleHQsIG1vZGUpOworICAgICAgICBTVkdMZW5ndGgqIGxlbmd0aCA9IG5ldyBTVkdMZW5n
dGgoY29udGV4dCwgbW9kZSk7CiAgICAgICAgIFN0cmluZyBzdHIobGVuZ3Roc1tpXSk7CiAgICAg
ICAgIGxlbmd0aC0+c2V0VmFsdWVBc1N0cmluZyhzdHIpOwogICAgICAgICBhcHBlbmRJdGVtKGxl
bmd0aCk7CkBAIC01Miw2ICs1NCw2IEBACiAKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlm
IC8vIFNWR19TVVBQT1JUCiAKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oCShBcmJlaXRza29waWUp
CkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwg
MjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0x
MzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1w
bF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbF9ICi0jaWZkZWYg
U1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLSNpbmNsdWRl
ICJTVkdUcmFuc2Zvcm1MaXN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNz
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNW
R1RyYW5zZm9ybUxpc3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVh
bCB+U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KCk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IHZpcnR1YWwgU1ZHVHJhbnNmb3JtTGlzdCAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIC8vdmly
dHVhbCB2b2lkIGFzc2lnbihTVkdUcmFuc2Zvcm1MaXN0ICpzcmMsIFNWR1RyYW5zZm9ybUxpc3Qg
KmRzdCkgY29uc3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKLSNlbmRpZiAvLyBLU1ZHX1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdElt
cGxfSAotCi0vLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTd2l0
Y2hFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3dpdGNoRWxl
bWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N3aXRjaEVs
ZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTIsNiArNTIsOCBAQAogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgbXV0YWJsZSBib29sIG1faW5zaWRlUmVuZGVyU2VjdGlvbjsKKworICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdMaXN0LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGlz
dC5oCShBcmJlaXRza29waWUpCkBAIC0yMiw3MSArMjIsMTMyIEBACiAKICNpZm5kZWYgS1NWR19T
VkdMaXN0X0gKICNkZWZpbmUgS1NWR19TVkdMaXN0X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAK
LSNpbmNsdWRlICJET01MaXN0LmgiCi0jaW5jbHVkZSA8a3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpbmNsdWRlICJTaGFyZWQuaCIKKyNp
bmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0gICAgdGVtcGxhdGU8Y2xhc3MgVD4KLSAgICBjbGFzcyBTVkdM
aXN0IDogcHVibGljIERPTUxpc3Q8VD4geworICAgIC8vIFRPRE86IFdlIHdpbGwgcHJvYmFibHkg
bmVlZCB0byBwYXNzIEV4Y2VwdGlvbkNvZGVzIGFyb3VuZCBoZXJlLi4uCisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBJdGVtPgorICAgIGNsYXNzIFNWR0xpc3RCYXNlIDogcHVibGljIFNoYXJlZDxTVkdM
aXN0QmFzZTxJdGVtPiA+CisgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHTGlzdChjb25z
dCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0ID0gMCkKLSAgICAgICAgOiBET01MaXN0PFQ+KCks
IG1fY29udGV4dChjb250ZXh0KSB7fQorICAgICAgICBTVkdMaXN0QmFzZSgpIDogbV92ZWN0b3Io
KSB7IH0KKyAgICAgICAgdmlydHVhbCB+U1ZHTGlzdEJhc2UoKSB7IH0KIAotICAgICAgICB2b2lk
IGNsZWFyKCkKKyAgICAgICAgdmlydHVhbCBJdGVtIG51bGxJdGVtKCkgY29uc3QgPSAwOworCisg
ICAgICAgIHVuc2lnbmVkIGludCBudW1iZXJPZkl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV92ZWN0
b3Iuc2l6ZSgpOyB9CisgICAgICAgIHZvaWQgY2xlYXIoKSB7IG1fdmVjdG9yLmNsZWFyKCk7IH0K
KworICAgICAgICBJdGVtIGluaXRpYWxpemUoSXRlbSBuZXdJdGVtKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBET01MaXN0PFQ+OjpjbGVhcigpOworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcHBlbmRJdGVtKG5ld0l0ZW0pOworICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSgpOworICAgICAgICBJdGVtIGdldEZpcnN0KCkgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKG1fdmVjdG9yLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbEl0ZW0oKTsKKworICAgICAgICAgICAgcmV0dXJuIG1fdmVjdG9yLmZpcnN0KCk7CiAg
ICAgICAgIH0KIAotICAgICAgICBUICppbnNlcnRJdGVtQmVmb3JlKFQgKm5ld0l0ZW0sIHVuc2ln
bmVkIGludCBpbmRleCkKKyAgICAgICAgSXRlbSBnZXRMYXN0KCkgY29uc3QKICAgICAgICAgewot
ICAgICAgICAgICAgVCAqcmV0ID0gRE9NTGlzdDxUPjo6aW5zZXJ0SXRlbUJlZm9yZShuZXdJdGVt
LCBpbmRleCk7CisgICAgICAgICAgICBpZiAobV92ZWN0b3IuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBudWxsSXRlbSgpOwogCi0gICAgICAgICAgICBpZihtX2NvbnRleHQpCi0g
ICAgICAgICAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX3ZlY3Rvci5sYXN0KCk7CisgICAgICAgIH0KIAotICAgICAgICAgICAg
cmV0dXJuIHJldDsKKyAgICAgICAgSXRlbSBnZXRJdGVtKHVuc2lnbmVkIGludCBpbmRleCkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKG1fdmVjdG9yLnNpemUoKSA8IGluZGV4KQorICAgICAg
ICAgICAgICAgIHJldHVybiBudWxsSXRlbSgpOworCisgICAgICAgICAgICByZXR1cm4gbV92ZWN0
b3IuYXQoaW5kZXgpOwogICAgICAgICB9CiAKLSAgICAgICAgVCAqcmVwbGFjZUl0ZW0oVCAqbmV3
SXRlbSwgdW5zaWduZWQgaW50IGluZGV4KQorICAgICAgICBjb25zdCBJdGVtIGdldEl0ZW0odW5z
aWduZWQgaW50IGluZGV4KSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBUICpyZXQgPSBE
T01MaXN0PFQ+OjpyZXBsYWNlSXRlbShuZXdJdGVtLCBpbmRleCk7CisgICAgICAgICAgICBpZiAo
bV92ZWN0b3Iuc2l6ZSgpIDwgaW5kZXgpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxJdGVt
KCk7CiAKLSAgICAgICAgICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgICAgICAgICBtX2NvbnRl
eHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOworICAgICAgICAgICAgcmV0dXJuIG1fdmVjdG9y
LmF0KGluZGV4KTsKKyAgICAgICAgfQogCi0gICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAg
ICBJdGVtIGluc2VydEl0ZW1CZWZvcmUoSXRlbSBuZXdJdGVtLCB1bnNpZ25lZCBpbnQgaW5kZXgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdmVjdG9yLmluc2VydChpbmRleCwgbmV3SXRlbSk7
CisgICAgICAgICAgICByZXR1cm4gbmV3SXRlbTsKICAgICAgICAgfQogCi0gICAgICAgIFQgKnJl
bW92ZUl0ZW0odW5zaWduZWQgaW50IGluZGV4KQorICAgICAgICBJdGVtIHJlcGxhY2VJdGVtKEl0
ZW0gbmV3SXRlbSwgdW5zaWduZWQgaW50IGluZGV4KQogICAgICAgICB7Ci0gICAgICAgICAgICBU
ICpyZXQgPSBET01MaXN0PFQ+OjpyZW1vdmVJdGVtKGluZGV4KTsKKyAgICAgICAgICAgIGlmICht
X3ZlY3Rvci5zaXplKCkgPCBpbmRleCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbEl0ZW0o
KTsKIAotICAgICAgICAgICAgaWYobV9jb250ZXh0KQotICAgICAgICAgICAgICAgIG1fY29udGV4
dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiByZXQ7Cisg
ICAgICAgICAgICBtX3ZlY3Rvci5hdChpbmRleCkgPSBuZXdJdGVtOworICAgICAgICAgICAgcmV0
dXJuIG5ld0l0ZW07CiAgICAgICAgIH0KIAotICAgICAgICBUICphcHBlbmRJdGVtKFQgKm5ld0l0
ZW0pCisgICAgICAgIEl0ZW0gcmVtb3ZlSXRlbSh1bnNpZ25lZCBpbnQgaW5kZXgpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIFQgKnJldCA9IERPTUxpc3Q8VD46OmFwcGVuZEl0ZW0obmV3SXRlbSk7
CisgICAgICAgICAgICBpZiAobV92ZWN0b3Iuc2l6ZSgpIDwgaW5kZXgpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGxJdGVtKCk7CiAKLSAgICAgICAgICAgIGlmKG1fY29udGV4dCkKLSAgICAg
ICAgICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOworICAgICAgICAg
ICAgSXRlbSBpdGVtID0gbV92ZWN0b3IuYXQoaW5kZXgpOworICAgICAgICAgICAgcmVtb3ZlKGlu
ZGV4KTsKKyAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAgICB9CiAKLSAgICAgICAgICAg
IHJldHVybiByZXQ7CisgICAgICAgIHZvaWQgcmVtb3ZlSXRlbShjb25zdCBJdGVtIGl0ZW0pCisg
ICAgICAgIHsKKyAgICAgICAgICAgIG1fdmVjdG9yLnJlbW92ZShpdGVtKTsKICAgICAgICAgfQog
Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICptX2NvbnRl
eHQ7CisgICAgICAgIEl0ZW0gYXBwZW5kSXRlbShJdGVtIG5ld0l0ZW0pCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fdmVjdG9yLmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgICAgIHJldHVybiBu
ZXdJdGVtOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBWZWN0b3I8SXRlbT4g
bV92ZWN0b3I7CiAgICAgfTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEl0ZW0+CisgICAgY2xhc3Mg
U1ZHTGlzdCA6IHB1YmxpYyBTVkdMaXN0QmFzZTxJdGVtPgorICAgIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHZpcnR1YWwgSXRlbSBudWxsSXRlbSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB9
OworCisJLy8gU3BlY2lhbGl6YXRpb24gZm9yIFN0cmluZy4uLgorCXRlbXBsYXRlPD4KKyAgICBj
bGFzcyBTVkdMaXN0PFN0cmluZz4gOiBwdWJsaWMgU1ZHTGlzdEJhc2U8U3RyaW5nPgorICAgIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIG51bGxJdGVtKCkgY29uc3QgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB9OworCisJLy8gU3BlY2lhbGl6YXRpb24gZm9yIEZsb2F0
UG9pbnQuLi4KKwl0ZW1wbGF0ZTw+CisgICAgY2xhc3MgU1ZHTGlzdDxGbG9hdFBvaW50PiA6IHB1
YmxpYyBTVkdMaXN0QmFzZTxGbG9hdFBvaW50PgorICAgIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHZpcnR1YWwgRmxvYXRQb2ludCBudWxsSXRlbSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UG9pbnQo
KTsgfQorICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR19T
VVBQT1JUCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCShSZXZpc2lvbiAx
NjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkoQXJiZWl0c2tv
cGllKQpAQCAtNDUsNiArNDUsMTAgQEAKICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZp
cnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
aGlzOyB9CisgCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05T
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpICAgICAgIAorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIEZsb2F0UmVj
dCwgVmlld0JveCwgdmlld0JveCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9E
RUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUHJl
c2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnQuY3BwCShSZXZpc2lvbiAxNjI4
OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAt
MSw5NCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5j
bHVkZSAiU1ZHUG9pbnQuaCIKLQotI2luY2x1ZGUgIlNWR01hdHJpeC5oIgotI2luY2x1ZGUgIlNW
R1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJJbnRQb2ludC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLVNWR1BvaW50OjpTVkdQb2ludChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250
ZXh0KQotewotICAgIG1feCA9IDAuMDsKLSAgICBtX3kgPSAwLjA7Ci0gICAgbV9jb250ZXh0ID0g
Y29udGV4dDsKLX0KLQotU1ZHUG9pbnQ6OlNWR1BvaW50KGZsb2F0IHgsIGZsb2F0IHksIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi17Ci0gICAgbV94ID0geDsKLSAgICBtX3kgPSB5
OwotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7Ci19Ci0KLVNWR1BvaW50OjpTVkdQb2ludChjb25z
dCBJbnRQb2ludCAmcCwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkKLXsKLSAgICBt
X3ggPSBwLngoKTsKLSAgICBtX3kgPSBwLnkoKTsKLSAgICBtX2NvbnRleHQgPSBjb250ZXh0Owot
fQotCi1TVkdQb2ludDo6flNWR1BvaW50KCkKLXsKLX0KLQotZmxvYXQgU1ZHUG9pbnQ6OngoKSBj
b25zdAotewotICAgIHJldHVybiBtX3g7Ci19Ci0KLWZsb2F0IFNWR1BvaW50Ojp5KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV95OwotfQotCi12b2lkIFNWR1BvaW50OjpzZXRYKGZsb2F0IHgpCi17
Ci0gICAgbV94ID0geDsKLQotICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5u
b3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKLX0KLQotdm9pZCBTVkdQb2ludDo6c2V0WShmbG9hdCB5
KQotewotICAgIG1feSA9IHk7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4
dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLVNWR1BvaW50ICpTVkdQb2ludDo6bWF0
cml4VHJhbnNmb3JtKFNWR01hdHJpeCAqIC8qIG1hdHJpeCAqLykKLXsKLSAgICAvLyBUT0RPOiBp
bXBsZW1lbnQgbWUhCi0gICAgcmV0dXJuIDA7Ci19Ci0KLX0KLQotLy8gdmltOnRzPTQ6bm9ldAot
I2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1Rlc3Rz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXN0cy5jcHAJKFJldmlz
aW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGVzdHMuY3BwCShBcmJlaXRza29w
aWUpCkBAIC03Myw3ICs3Myw3IEBACiAKICAgICBsaXN0ID0gc3lzdGVtTGFuZ3VhZ2UoKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgPCBsaXN0LT5udW1iZXJPZkl0ZW1zKCk7IGkr
KykKLSAgICAgICAgaWYgKCFlcXVhbChsaXN0LT5nZXRJdGVtKGkpLCBkZWZhdWx0TGFuZ3VhZ2Uo
KS5zdWJzdHJpbmcoMCwgMikuaW1wbCgpKSkKKyAgICAgICAgaWYgKGxpc3QtPmdldEl0ZW0oaSkg
IT0gZGVmYXVsdExhbmd1YWdlKCkuc3Vic3RyaW5nKDAsIDIpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgbGlzdCA9IHJlcXVpcmVkRXh0ZW5zaW9ucygpOwpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQYXRoRWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BhdGhFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEwNSw3ICsxMDUsMTEgQEAK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1BhdGhTZWdMaXN0PiBt
X3BhdGhTZWdMaXN0OwotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91
YmxlLCBkb3VibGUsIFBhdGhMZW5ndGgsIHBhdGhMZW5ndGgpCisKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKKyAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdGhF
bGVtZW50LCBkb3VibGUsIGRvdWJsZSwgUGF0aExlbmd0aCwgcGF0aExlbmd0aCkKKwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgc3ZnTW92ZVRvKGRvdWJsZSB4MSwgZG91YmxlIHkxLCBib29sIGNsb3Nl
ZCwgYm9vbCBhYnMgPSB0cnVlKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHN2Z0xpbmVUbyhkb3Vi
bGUgeDEsIGRvdWJsZSB5MSwgYm9vbCBhYnMgPSB0cnVlKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHN2Z0xpbmVUb0hvcml6b250YWwoZG91YmxlIHgsIGJvb2wgYWJzID0gdHJ1ZSk7CkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNzIsMTEg
KzcyLDEwIEBACiAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxDU1NTdHls
ZURlY2xhcmF0aW9uPiBtX3BhOwotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU3RyaW5nLCBTdHJpbmcsIENsYXNzTmFtZSwgY2xhc3NOYW1lKQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU3R5bGVkRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcs
IENsYXNzTmFtZSwgY2xhc3NOYW1lKQogICAgICAgICAvLyBPcHRpbWl6ZWQgdXBkYXRpbmcgbG9n
aWMKICAgICAgICAgYm9vbCBtX3VwZGF0ZVZlY3RvcmlhbCA6IDE7CiAgICAgfTsKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwCShSZXZpc2lvbiAx
NjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3Bw
CShBcmJlaXRza29waWUpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCi0jaW5jbHVkZSAiU1ZHUmVjdC5oIgogI2luY2x1
ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KIApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaAko
UmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQxLDExICs0MSwxMSBAQAogICAgICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdM
ZW5ndGhMaXN0KiwgUmVmUHRyPFNWR0xlbmd0aExpc3Q+LCBYLCB4KQotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoTGlzdCosIFJlZlB0cjxTVkdMZW5ndGhM
aXN0PiwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xl
bmd0aExpc3QqLCBSZWZQdHI8U1ZHTGVuZ3RoTGlzdD4sIER4LCBkeCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aExpc3QqLCBSZWZQdHI8U1ZHTGVuZ3Ro
TGlzdD4sIER5LCBkeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R051bWJlckxpc3QqLCBSZWZQdHI8U1ZHTnVtYmVyTGlzdD4sIFJvdGF0ZSwgcm90YXRlKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudCwgU1ZHTGVuZ3RoTGlzdCosIFJlZlB0cjxTVkdMZW5ndGhMaXN0PiwgWCwgeCkKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQsIFNWR0xlbmd0aExpc3QqLCBSZWZQdHI8U1ZHTGVuZ3RoTGlzdD4sIFksIHkpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LCBTVkdMZW5ndGhMaXN0KiwgUmVmUHRyPFNWR0xlbmd0aExpc3Q+LCBEeCwgZHgpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LCBTVkdMZW5ndGhMaXN0KiwgUmVmUHRyPFNWR0xlbmd0aExpc3Q+LCBEeSwgZHkpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LCBTVkdOdW1iZXJMaXN0KiwgUmVmUHRyPFNWR051bWJlckxpc3Q+LCBSb3RhdGUsIHJvdGF0ZSkK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdOdW1iZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdOdW1iZXIu
aAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdOdW1iZXIuaAkoQXJi
ZWl0c2tvcGllKQpAQCAtMSw1MiArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAg
ICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3Rvbiwg
TUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR051bWJlckltcGxfSAot
I2RlZmluZSBLU1ZHX1NWR051bWJlckltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNs
dWRlICJTaGFyZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdTdHls
ZWRFbGVtZW50OwotICAgIGNsYXNzIFNWR051bWJlciA6IHB1YmxpYyBTaGFyZWQ8U1ZHTnVtYmVy
PgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR051bWJlcihjb25zdCBTVkdTdHlsZWRF
bGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHTnVtYmVyKCk7Ci0KLSAgICAg
ICAgLy8gJ1NWR051bWJlcicgZnVuY3Rpb25zCi0gICAgICAgIGZsb2F0IHZhbHVlKCkgY29uc3Q7
Ci0gICAgICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQgdmFsdWUpOwotCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgZmxvYXQgbV92YWx1ZTsKLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqbV9j
b250ZXh0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNW
R19TVVBQT1JUCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRml0VG9WaWV3Qm94LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRml0VG9WaWV3Qm94LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTMwLDcgKzMwLDYgQEAKICAgICBj
bGFzcyBBdHRyaWJ1dGU7CiAgICAgY2xhc3MgU3RyaW5nSW1wbDsKICAgICBjbGFzcyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvOwotICAgIGNsYXNzIFNWR1JlY3Q7CiAgICAgY2xhc3MgU1ZHTWF0cml4
OwogCiAgICAgY2xhc3MgU1ZHRml0VG9WaWV3Qm94IHsKQEAgLTQ4LDggKzQ3LDggQEAKICAgICAg
ICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdSZWN0KiwgUmVmUHRyPFNWR1JlY3Q+LCBWaWV3Qm94LCB2aWV3Qm94KQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFJlZlB0
cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVB
c3BlY3RSYXRpbykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TX1dJVEhf
Q09OVEVYVChTVkdGaXRUb1ZpZXdCb3gsIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBWaWV3Qm94LCB2
aWV3Qm94KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlNfV0lUSF9DT05U
RVhUKFNWR0ZpdFRvVmlld0JveCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFJlZlB0cjxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvPiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RS
YXRpbykKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw0NyArMCwwIEBACi0v
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lm
bmRlZiBLU1ZHX1NWR0FuaW1hdGVkQW5nbGVJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdBbmltYXRl
ZEFuZ2xlSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNWR0FuZ2xlLmgi
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZEFuZ2xlIDogcHVibGljIFNWR0FuaW1hdGVkVGVtcGxh
dGU8U1ZHQW5nbGU+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkQW5nbGUoY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1h
dGVkQW5nbGUoKTsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBTVkdBbmdsZSAq
Y3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHQW5nbGUgKnNy
YywgU1ZHQW5nbGUgKmRzdCkgY29uc3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZiAvLyBLU1ZHX1NWR0FuaW1hdGVkQW5n
bGVJbXBsX0gKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
U3RyaW5nTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5n
TGlzdC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5n
TGlzdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTIxLDE1ICsyMSwxNiBAQAogKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKKwogI2luY2x1ZGUgIkRlcHJlY2F0
ZWRTdHJpbmdMaXN0LmgiCi0KICNpbmNsdWRlICJTVkdTdHJpbmdMaXN0LmgiCiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdTdHJpbmdMaXN0OjpT
VkdTdHJpbmdMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06IFNWR0xpc3Q8
U3RyaW5nSW1wbD4oY29udGV4dCkKK1NWR1N0cmluZ0xpc3Q6OlNWR1N0cmluZ0xpc3QoKQorICAg
IDogU1ZHTGlzdDxTdHJpbmc+KCkKIHsKIH0KIApAQCAtMzcsMjAgKzM4LDE5IEBACiB7CiB9CiAK
LXZvaWQgU1ZHU3RyaW5nTGlzdDo6cmVzZXQoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmc3RyKQor
dm9pZCBTVkdTdHJpbmdMaXN0OjpyZXNldChjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzdHIpCiB7
CiAgICAgRGVwcmVjYXRlZFN0cmluZ0xpc3QgbGlzdCA9IERlcHJlY2F0ZWRTdHJpbmdMaXN0Ojpz
cGxpdCgnICcsIHN0cik7CiAgICAgaWYgKGxpc3QuY291bnQoKSA9PSAwKSB7Ci0gICAgICAgIFN0
cmluZ0ltcGwgKml0ZW0gPSBuZXcgU3RyaW5nSW1wbChzdHIpOwotICAgICAgICBpdGVtLT5yZWYo
KTsKLSAgICAgICAgYXBwZW5kSXRlbShpdGVtKTsKLSAgICB9IGVsc2UgZm9yKERlcHJlY2F0ZWRT
dHJpbmdMaXN0OjpJdGVyYXRvciBpdCA9IGxpc3QuYmVnaW4oKTsgaXQgIT0gbGlzdC5lbmQoKTsg
KytpdCkgewotICAgICAgICBTdHJpbmdJbXBsICppdGVtID0gbmV3IFN0cmluZ0ltcGwoKCppdCkp
OwotICAgICAgICBpdGVtLT5yZWYoKTsKLSAgICAgICAgYXBwZW5kSXRlbShpdGVtKTsKKyAgICAg
ICAgYXBwZW5kSXRlbShTdHJpbmcoIiIpKTsgLy8gQ3JlYXRlIGVtcHR5IHN0cmluZy4uLgorICAg
IH0gZWxzZSB7CisgICAgICAgIGZvcihEZXByZWNhdGVkU3RyaW5nTGlzdDo6SXRlcmF0b3IgaXQg
PSBsaXN0LmJlZ2luKCk7IGl0ICE9IGxpc3QuZW5kKCk7ICsraXQpCisgICAgICAgICAgICBhcHBl
bmRJdGVtKFN0cmluZygqaXQpKTsKICAgICB9CiB9CiAKLS8vIHZpbTp0cz00Om5vZXQKK30KKwog
I2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCShSZXZp
c2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oCShBcmJlaXRza29waWUpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgot
ICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0g
ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
Ci0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtTVkdfU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1
ZGUgIlNoYXJlZC5oIgotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotI2luY2x1
ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAg
ICBjbGFzcyBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHQW5pbWF0
ZWRUZW1wbGF0ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPgotICAgIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvKCk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24o
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyAqc3JjLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICpkc3Qp
IGNvbnN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNW
R19TVVBQT1JUCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdUZXh0RWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1RleHRFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTYwLDcgKzYwLDcgQEAKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR01hdHJpeD4gbV9sb2NhbE1hdHJpeDsK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1RyYW5zZm9ybUxpc3Qq
LCBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4sIFRyYW5zZm9ybSwgdHJhbnNmb3JtKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVGV4dEVsZW1lbnQsIFNWR1RyYW5z
Zm9ybUxpc3QqLCBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4sIFRyYW5zZm9ybSwgdHJhbnNmb3Jt
KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0xpbmVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
TGluZUVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdM
aW5lRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC01NywxMSArNTcsMTIgQEAKICAgICAgICAg
dmlydHVhbCBib29sIGhhc1BlcmNlbnRhZ2VWYWx1ZXMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6
Ci0KLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBYMSwgeDEpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTEsIHkxKQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFgyLCB4MikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZMiwgeTIpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJv
b2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
CisgCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxlbWVu
dCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgxLCB4MSkKKyAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xpbmVFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQ
dHI8U1ZHTGVuZ3RoPiwgWTEsIHkxKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGluZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMiwg
eDIpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxlbWVu
dCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFkyLCB5MikKICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aC5jcHAJKFJldmlzaW9u
IDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoLmNwcAkoQXJiZWl0c2tvcGll
KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNW
R0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHUmVj
dC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgogCiAjaW5jbHVkZSA8bWF0aC5oPgpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVmlld0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTUxLDYgKzUxLDEw
IEBACiAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdTdHJpbmdMaXN0
PiBtX3ZpZXdUYXJnZXQ7CisKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNM
QVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBGbG9hdFJl
Y3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRf
REVDTEFSQVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFBy
ZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5o
CShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3Ro
LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQot
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBC
b3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpZm5kZWYgS1NWR19TVkdBbmltYXRl
ZExlbmd0aEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkTGVuZ3RoSW1wbF9ICi0jaWZk
ZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkVGVtcGxhdGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdB
bmltYXRlZExlbmd0aCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR0xlbmd0aD4KLSAg
ICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZExlbmd0aChjb25zdCBTVkdTdHls
ZWRFbGVtZW50ICpjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUgPSBMTV9VTktOT1dOLCBjb25zdCBT
VkdFbGVtZW50ICp2aWV3cG9ydCA9IDApOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZExl
bmd0aCgpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFNWR0xlbmd0aCAqY3Jl
YXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHTGVuZ3RoICpzcmMs
IFNWR0xlbmd0aCAqZHN0KSBjb25zdDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIExlbmd0aE1v
ZGUgbV9tb2RlOwotICAgICAgICBjb25zdCBTVkdFbGVtZW50ICptX3ZpZXdwb3J0RWxlbWVudDsK
LSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00
NiwxMSArNDYsMTEgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgQ3gsIGN4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN5LCBjeSkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSLCByKQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIEZ4LCBmeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBGeSwgZnkpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeCwgY3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBDeSwgY3kpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBSLCByKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgRngs
IGZ4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgRnksIGZ5KQogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1JlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3QuY3BwCShS
ZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3QuY3BwCShBcmJlaXRz
a29waWUpCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAw
MjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NV
UFBPUlQKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZWN0LmgiCi0jaW5j
bHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQot
U1ZHUmVjdDo6U1ZHUmVjdChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNoYXJl
ZDxTVkdSZWN0PigpCi17Ci0gICAgbV9jb250ZXh0ID0gY29udGV4dDsKLSAgICBtX3ggPSBtX3kg
PSBtX3dpZHRoID0gbV9oZWlnaHQgPSAwLjA7Ci19Ci0KLVNWR1JlY3Q6On5TVkdSZWN0KCkKLXsK
LX0KLQotZG91YmxlIFNWR1JlY3Q6OngoKSBjb25zdAotewotICAgIHJldHVybiBtX3g7Ci19Ci0K
LXZvaWQgU1ZHUmVjdDo6c2V0WChkb3VibGUgdmFsdWUpCi17Ci0gICAgbV94ID0gdmFsdWU7Ci0K
LSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hh
bmdlKCk7Ci19Ci0KLWRvdWJsZSBTVkdSZWN0Ojp5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV95
OwotfQotCi12b2lkIFNWR1JlY3Q6OnNldFkoZG91YmxlIHZhbHVlKQotewotICAgIG1feSA9IHZh
bHVlOwotCi0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSgpOwotfQotCi1kb3VibGUgU1ZHUmVjdDo6d2lkdGgoKSBjb25zdAotewotICAg
IHJldHVybiBtX3dpZHRoOwotfQotCi12b2lkIFNWR1JlY3Q6OnNldFdpZHRoKGRvdWJsZSB2YWx1
ZSkKLXsKLSAgICBtX3dpZHRoID0gdmFsdWU7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAgICAg
IG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLWRvdWJsZSBTVkdSZWN0
OjpoZWlnaHQoKSBjb25zdAotewotICAgIHJldHVybiBtX2hlaWdodDsKLX0KLQotdm9pZCBTVkdS
ZWN0OjpzZXRIZWlnaHQoZG91YmxlIHZhbHVlKQotewotICAgIG1faGVpZ2h0ID0gdmFsdWU7Ci0K
LSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hh
bmdlKCk7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsCShSZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsCShSZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKK21vZHVsZSBzdmcKK3sKKyAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1T
VkddIFNWR0FuaW1hdGVkU3RyaW5nIHsgCisgICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRP
TVN0cmluZyBiYXNlVmFsOworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01F
eGNlcHRpb24gb24gc2V0dGluZworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBjb3JlOjpET01TdHJp
bmcgYW5pbVZhbDsKKyAgfTsKK307CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZEludGVnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZElu
dGVnZXIuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZEludGVnZXIuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NyArMCwwIEBACi0vKgotICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
LSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMw
LAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NW
R0FuaW1hdGVkSW50ZWdlckltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkSW50ZWdlcklt
cGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTaGFyZWQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50OwotCi0gICAgY2xhc3Mg
U1ZHQW5pbWF0ZWRJbnRlZ2VyIDogcHVibGljIFNoYXJlZDxTVkdBbmltYXRlZEludGVnZXI+Ci0g
ICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyKGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZEludGVn
ZXIoKTsKLQotICAgICAgICBsb25nIGJhc2VWYWwoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRC
YXNlVmFsKGxvbmcgYmFzZVZhbCk7Ci0KLSAgICAgICAgbG9uZyBhbmltVmFsKCkgY29uc3Q7Ci0g
ICAgICAgIHZvaWQgc2V0QW5pbVZhbChsb25nIGFuaW1WYWwpOwotCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgbG9uZyBtX2Jhc2VWYWw7Ci0gICAgICAgIGxvbmcgbV9hbmltVmFsOwotCi0gICAgICAg
IGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLSAgICB9OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0
cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAko
UmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQu
Y3BwCShBcmJlaXRza29waWUpCkBAIC00NSwxMSArNDUsMTAgQEAKICAgICBpZihsZW4gPCAxKQog
ICAgICAgICByZXR1cm4gcG9seURhdGE7CiAKLSAgICBwb2x5RGF0YS5tb3ZlVG8oRmxvYXRQb2lu
dChwb2ludHMoKS0+Z2V0SXRlbSgwKS0+eCgpLCBwb2ludHMoKS0+Z2V0SXRlbSgwKS0+eSgpKSk7
Ci0gICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW47ICsraSkgewotICAgICAgICBTVkdQb2ludCAq
cCA9IHBvaW50cygpLT5nZXRJdGVtKGkpOwotICAgICAgICBwb2x5RGF0YS5hZGRMaW5lVG8oRmxv
YXRQb2ludChwLT54KCksIHAtPnkoKSkpOwotICAgIH0KKyAgICBwb2x5RGF0YS5tb3ZlVG8ocG9p
bnRzKCktPmdldEl0ZW0oMCkpOworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuOyArK2kpCisg
ICAgICAgIHBvbHlEYXRhLmFkZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRlbShpKSk7CisgICAgCiAg
ICAgcmV0dXJuIHBvbHlEYXRhOwogfQogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHJp
bmdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5nTGlzdC5o
CShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0cmluZ0xpc3QuaAko
QXJiZWl0c2tvcGllKQpAQCAtMjAsMjYgKzIwLDI5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0x
MzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHU3RyaW5nTGlzdEltcGxfSAotI2RlZmlu
ZSBLU1ZHX1NWR1N0cmluZ0xpc3RJbXBsX0gKKyNpZm5kZWYgS1NWR19TVkdTdHJpbmdMaXN0X0gK
KyNkZWZpbmUgS1NWR19TVkdTdHJpbmdMaXN0X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNp
bmNsdWRlICJTVkdMaXN0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU1ZHU3RyaW5nTGlzdCA6IHB1YmxpYyBTVkdMaXN0
PFN0cmluZ0ltcGw+IHsKKyAgICBjbGFzcyBTVkdTdHJpbmdMaXN0IDogcHVibGljIFNWR0xpc3Q8
U3RyaW5nPgorCXsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N0cmluZ0xpc3QoY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCAqY29udGV4dCA9IDApOworICAgICAgICBTVkdTdHJpbmdMaXN0KCk7CiAg
ICAgICAgIHZpcnR1YWwgflNWR1N0cmluZ0xpc3QoKTsKICAgICAgICAgCiAgICAgICAgIC8vIElu
dGVybmFsCi0gICAgICAgIHZvaWQgcmVzZXQoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmc3RyKTsK
KyAgICAgICAgdm9pZCByZXNldChjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzdHIpOwogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5k
aWYgLy8gS1NWR19TVkdTdHJpbmdMaXN0SW1wbF9ICisjZW5kaWYgLy8gS1NWR19TVkdTdHJpbmdM
aXN0X0gKIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkU3RyaW5nLmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZFN0cmluZy5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtk
ZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3Ry
aW5nLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFN0cmluZzo6
U1ZHQW5pbWF0ZWRTdHJpbmcoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTVkdB
bmltYXRlZFRlbXBsYXRlPFN0cmluZ0ltcGw+KGNvbnRleHQpCi17Ci19Ci0KLVNWR0FuaW1hdGVk
U3RyaW5nOjp+U1ZHQW5pbWF0ZWRTdHJpbmcoKQotewotfQotCi1TdHJpbmdJbXBsICpTVkdBbmlt
YXRlZFN0cmluZzo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICAvLyBUT0RPOiBEbyB3ZSBuZWVkIG5v
dGlmaWNhdGlvbnMgb24gc3RyaW5nIG1hbmlwdWxhdGlvbnM/IGllLiBhcHBlbmREYXRhKCk/Ci0g
ICAgcmV0dXJuIG5ldyBTdHJpbmdJbXBsKCIiKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFN0cmlu
Zzo6YXNzaWduKFN0cmluZ0ltcGwgKnNyYywgU3RyaW5nSW1wbCAqZHN0KSBjb25zdAotewotICAg
IGlmKCFzcmMgfHwgIWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGRzdC0+dHJ1bmNh
dGUoMCk7Ci0gICAgZHN0LT5pbnNlcnQoc3JjLT5jb3B5KCksIDApOwotfQotCi0vLyB2aW06dHM9
NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdIZWxwZXIu
Y3BwCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0hlbHBlci5jcHAJ
KEFyYmVpdHNrb3BpZSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCi0jaW5jbHVk
ZSAiU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdT
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAia3N2Zy5oIgpAQCAtNDcsOCArNDYsOCBAQAogICAgIGlm
ICh2aWV3cG9ydEVsZW1lbnQtPmlzU1ZHKCkpIHsKICAgICAgICAgY29uc3QgU1ZHU1ZHRWxlbWVu
dCogc3ZnID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU1ZHRWxlbWVudCo+KHZpZXdwb3J0RWxlbWVu
dCk7CiAgICAgICAgIGlmIChzdmctPmhhc0F0dHJpYnV0ZShTVkdOYW1lczo6dmlld0JveEF0dHIp
KSB7Ci0gICAgICAgICAgICB3aWR0aCA9IHN2Zy0+dmlld0JveCgpLT53aWR0aCgpOwotICAgICAg
ICAgICAgaGVpZ2h0ID0gc3ZnLT52aWV3Qm94KCktPmhlaWdodCgpOworICAgICAgICAgICAgd2lk
dGggPSBzdmctPnZpZXdCb3goKS53aWR0aCgpOworICAgICAgICAgICAgaGVpZ2h0ID0gc3ZnLT52
aWV3Qm94KCkuaGVpZ2h0KCk7CiAgICAgICAgIH0gZWxzZSBpZiAoc3ZnLT53aWR0aCgpLT51bml0
VHlwZSgpID09IFNWR0xlbmd0aDo6U1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSB8fAogICAgICAg
ICAgICAgICAgIHN2Zy0+aGVpZ2h0KCktPnVuaXRUeXBlKCkgPT0gU1ZHTGVuZ3RoOjpTVkdfTEVO
R1RIVFlQRV9QRVJDRU5UQUdFKSB7CiAgICAgICAgICAgICAvLyBUT0RPOiBTaG91bGRuJ3Qgdy9o
IGJlIG11bHRpcGxpZWQgd2l0aCB0aGUgcGVyY2VudGFnZSB2YWx1ZXM/IQpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHVFJlZkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdUUmVmRWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1RSZWZFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDYgKzQ2LDggQEAKICAg
ICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVm
KQorCiAgICAgICAgIHZvaWQgdXBkYXRlUmVmZXJlbmNlZFRleHQoKTsKICAgICB9OwogCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdOdW1iZXJMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR051bWJlckxpc3QuaAkoQXJiZWl0c2tvcGllKQpAQCAtMjAsMjIgKzIwLDIy
IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdf
U1ZHTnVtYmVyTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR051bWJlckxpc3RJbXBsX0gKKyNp
Zm5kZWYgS1NWR19TVkdOdW1iZXJMaXN0X0gKKyNkZWZpbmUgS1NWR19TVkdOdW1iZXJMaXN0X0gK
KwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdMaXN0LmgiCi0jaW5jbHVkZSAi
U1ZHTnVtYmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7Ci0gICAgY2xhc3MgU1ZHTnVtYmVy
TGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR051bWJlcj4KKyAgICBjbGFzcyBTVkdOdW1iZXJMaXN0
IDogcHVibGljIFNWR0xpc3Q8ZmxvYXQ+CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZH
TnVtYmVyTGlzdChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0ID0gMCk7CisgICAgICAg
IFNWR051bWJlckxpc3QoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHTnVtYmVyTGlzdCgpOwogCi0g
ICAgICAgIHZvaWQgcGFyc2UoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmdmFsdWUsIGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQgKmNvbnRleHQgPSAwKTsKKyAgICAgICAgdm9pZCBwYXJzZShjb25zdCBE
ZXByZWNhdGVkU3RyaW5nJiB2YWx1ZSk7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdQb2ludC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1BvaW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtk
ZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpZm5kZWYg
S1NWR19TVkdQb2ludEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR1BvaW50SW1wbF9ICi0jaWZkZWYg
U1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNoYXJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci1jbGFzcyBJbnRQb2ludDsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBT
VkdNYXRyaXg7Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKLSAgICBjbGFzcyBTVkdQb2lu
dCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUG9pbnQ+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAg
U1ZHUG9pbnQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCA9IDApOwotICAgICAgICBT
VkdQb2ludChmbG9hdCB4LCBmbG9hdCB5LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0
ID0gMCk7Ci0gICAgICAgIFNWR1BvaW50KGNvbnN0IEludFBvaW50ICZwLCBjb25zdCBTVkdTdHls
ZWRFbGVtZW50ICpjb250ZXh0ID0gMCk7Ci0gICAgICAgIH5TVkdQb2ludCgpOwotCi0gICAgICAg
IC8vICdTVkdQb2ludCcgZnVuY3Rpb25zCi0gICAgICAgIHZvaWQgc2V0WChmbG9hdCB4KTsKLSAg
ICAgICAgZmxvYXQgeCgpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgc2V0WShmbG9hdCB5KTsKLSAg
ICAgICAgZmxvYXQgeSgpIGNvbnN0OwotCi0gICAgICAgIFNWR1BvaW50ICptYXRyaXhUcmFuc2Zv
cm0oU1ZHTWF0cml4ICptYXRyaXgpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZmxvYXQgbV94
OwotICAgICAgICBmbG9hdCBtX3k7Ci0KLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAq
bV9jb250ZXh0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IFNWR19TVVBQT1JUCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdEZWZzRWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0RlZnNFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ3LDYgKzQ3LDkgQEAKICAgICAK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgJKFJldmlzaW9uIDE2
Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCShBcmJl
aXRza29waWUpCkBAIC00NiwxMiArNDYsMTIgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRv
dWJsZSwgQmFzZUZyZXF1ZW5jeVgsIGJhc2VGcmVxdWVuY3lYKQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEJhc2VGcmVxdWVuY3lZLCBiYXNl
RnJlcXVlbmN5WSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwg
aW50LCBOdW1PY3RhdmVzLCBudW1PY3RhdmVzKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFNlZWQsIHNlZWQpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgU3RpdGNoVGlsZXMsIHN0aXRjaFRpbGVz
KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFR5cGUs
IHR5cGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgQmFzZUZyZXF1ZW5jeVgsIGJhc2VGcmVxdWVu
Y3lYKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVUdXJidWxl
bmNlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEJhc2VGcmVxdWVuY3lZLCBiYXNlRnJlcXVlbmN5
WSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQsIGludCwgaW50LCBOdW1PY3RhdmVzLCBudW1PY3RhdmVzKQorICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgZG91Ymxl
LCBkb3VibGUsIFNlZWQsIHNlZWQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBpbnQsIGludCwgU3RpdGNoVGlsZXMsIHN0aXRj
aFRpbGVzKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudCwgaW50LCBpbnQsIFR5cGUsIHR5cGUpCiAgICAgICAgIG11dGFibGUgS0Nh
bnZhc0ZFVHVyYnVsZW5jZSAqbV9maWx0ZXJFZmZlY3Q7CiAgICAgfTsKIApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwJKFJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmlkbAkoUmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGludGVyZmFjZSBbbm9kcHRyLCBDb25kaXRpb25h
bD1TVkddIFNWR0FuaW1hdGVkUGF0aERhdGEgeyAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
UGF0aFNlZ0xpc3QgICBwYXRoU2VnTGlzdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUGF0
aFNlZ0xpc3QgICBub3JtYWxpemVkUGF0aFNlZ0xpc3Q7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR1BhdGhTZWdMaXN0ICAgYW5pbWF0ZWRQYXRoU2VnTGlzdDsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHUGF0aFNlZ0xpc3QgICBhbmltYXRlZE5vcm1hbGl6ZWRQYXRoU2VnTGlzdDsKKyAg
fTsKK307CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaAko
UmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aExp
c3QuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw0OCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
Ci0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1h
dGVkTGVuZ3RoTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkTGVuZ3RoTGlzdElt
cGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFRlbXBsYXRl
LmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewot
ICAgIGNsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBs
YXRlPFNWR0xlbmd0aExpc3Q+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2
aXJ0dWFsIH5TVkdBbmltYXRlZExlbmd0aExpc3QoKTsKLQotICAgIHByb3RlY3RlZDoKLSAgICAg
ICAgdmlydHVhbCBTVkdMZW5ndGhMaXN0ICpjcmVhdGUoKSBjb25zdDsKLSAgICAgICAgLy92aXJ0
dWFsIHZvaWQgYXNzaWduKFNWR0xlbmd0aExpc3QgKnNyYywgU1ZHTGVuZ3RoTGlzdCAqZHN0KSBj
b25zdDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdf
U1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCShBcmJlaXRza29waWUpCkBAIC02MCw3ICs2MCw3
IEBACiAgICAgLCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmlld3Bv
cnRFbGVtZW50KCkpKQogICAgICwgbV9wYXR0ZXJuVW5pdHMoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RC
T1VORElOR0JPWCkKICAgICAsIG1fcGF0dGVybkNvbnRlbnRVbml0cyhTVkdfVU5JVF9UWVBFX1VT
RVJTUEFDRU9OVVNFKQotICAgICwgbV9wYXR0ZXJuVHJhbnNmb3JtKG5ldyBTVkdUcmFuc2Zvcm1M
aXN0KHRoaXMpKQorICAgICwgbV9wYXR0ZXJuVHJhbnNmb3JtKG5ldyBTVkdUcmFuc2Zvcm1MaXN0
KCkpCiB7CiAgICAgbV90aWxlID0gMDsKICAgICBtX3BhaW50U2VydmVyID0gMDsKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00NCwxMyAr
NDQsMTMgQEAKICAgICAgICAgS0NDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHRyYW5zZmVyRnVu
Y3Rpb24oKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgVHlwZSwgdHlwZSkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR051bWJlckxpc3QqLCBSZWZQdHI8U1ZHTnVtYmVyTGlzdD4s
IFRhYmxlVmFsdWVzLCB0YWJsZVZhbHVlcykKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBTbG9wZSwgc2xvcGUpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgSW50ZXJjZXB0LCBpbnRlcmNl
cHQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJs
ZSwgQW1wbGl0dWRlLCBhbXBsaXR1ZGUpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgRXhwb25lbnQsIGV4cG9uZW50KQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIE9mZnNldCwgb2Zmc2V0
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQsIGludCwgaW50LCBUeXBlLCB0eXBlKQorICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVs
ZW1lbnQsIFNWR051bWJlckxpc3QqLCBSZWZQdHI8U1ZHTnVtYmVyTGlzdD4sIFRhYmxlVmFsdWVz
LCB0YWJsZVZhbHVlcykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU2xvcGUs
IHNsb3BlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBJbnRlcmNlcHQsIGlu
dGVyY2VwdCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgQW1wbGl0dWRlLCBh
bXBsaXR1ZGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEV4cG9uZW50LCBl
eHBvbmVudCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgT2Zmc2V0LCBvZmZz
ZXQpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkK
QEAgLTU1LDEwICs1NSwxMyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgs
IHdpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3Ro
KiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkKSAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZH
VVJJUmVmZXJlbmNlLCBTdHJpbmcsIEhyZWYsIGhyZWYpCisKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBS
ZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgWSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgs
IHdpZHRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhl
aWdodCkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0FFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQUVs
ZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTcsNyArNTcsMTAgQEAKICAgICAgICAgdmlydHVh
bCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7
IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTdHJpbmcsIFN0cmluZywgVGFyZ2V0LCB0YXJnZXQpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBo
cmVmKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdBRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIFRhcmdldCwgdGFyZ2V0
KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHTWFya2VyRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC01OSwxMyArNTksMTggQEAKICAg
ICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUmVmWCwgcmVmWCkK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBSZWZZLCByZWZZKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIE1hcmtlcldpZHRoLCBtYXJr
ZXJXaWR0aCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBNYXJrZXJIZWlnaHQsIG1hcmtlckhlaWdodCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBNYXJrZXJVbml0cywg
bWFya2VyVW5pdHMpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQs
IGludCwgT3JpZW50VHlwZSwgb3JpZW50VHlwZSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0FuZ2xlKiwgUmVmUHRyPFNWR0FuZ2xlPiwgT3JpZW50QW5nbGUsIG9y
aWVudEFuZ2xlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9O
UyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKSAKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBGbG9hdFJlY3QsIFZp
ZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFS
QVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFByZXNlcnZl
QXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCisKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR01hcmtlckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBSZWZYLCByZWZYKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJl
ZlksIHJlZlkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJr
ZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgTWFya2VyV2lkdGgsIG1h
cmtlcldpZHRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFy
a2VyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIE1hcmtlckhlaWdodCwg
bWFya2VySGVpZ2h0KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TWFya2VyRWxlbWVudCwgaW50LCBpbnQsIE1hcmtlclVuaXRzLCBtYXJrZXJVbml0cykKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hcmtlckVsZW1lbnQsIGludCwg
aW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHQW5nbGUqLCBSZWZQdHI8U1ZHQW5nbGU+
LCBPcmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCisKICAgICAgICAgS0NhbnZhc01hcmtlciAqbV9t
YXJrZXI7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5oCShSZXZp
c2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKEFyYmVp
dHNrb3BpZSkKQEAgLTYyLDYgKzYyLDggQEAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxTVkdQb2ludExpc3Q+IG1fcG9pbnRzOwogCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJv
b2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
CisKICAgICAgICAgdmlydHVhbCB2b2lkIHN2Z1BvbHlUbyhkb3VibGUgeDEsIGRvdWJsZSB5MSwg
aW50IG5yKSBjb25zdDsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZFJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJl
Y3QuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJl
Y3QuaAkoQXJiZWl0c2tvcGllKQpAQCAtMSw0OCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
Ci0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1h
dGVkUmVjdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkUmVjdEltcGxfSAotI2lmZGVm
IFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTVkdSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFNWR0FuaW1h
dGVkUmVjdCA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR1JlY3Q+Ci0gICAgewotICAg
IHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZWRSZWN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQg
KmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFJlY3QoKTsKLQotICAgIHBy
b3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBTVkdSZWN0ICpjcmVhdGUoKSBjb25zdDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGFzc2lnbihTVkdSZWN0ICpzcmMsIFNWR1JlY3QgKmRzdCkgY29uc3Q7
Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKLSNlbmRpZgotCi0vLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdVc2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVXNlRWxl
bWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1VzZUVsZW1l
bnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNjAsMTAgKzYwLDEzIEBACiAgICAgICAgIHZpcnR1YWwg
Y29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldB
UkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdVc2VFbGVtZW50LCBTVkdM
ZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1VzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5n
dGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVXNl
RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1VzZUVsZW1lbnQsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExl
bmd0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
TGVuZ3RoLmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMSw1NCArMCwwIEBACi0vKgotICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
LSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMw
LAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkTGVuZ3RoOjpTVkdBbmlt
YXRlZExlbmd0aChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0LCBMZW5ndGhNb2RlIG1v
ZGUsIGNvbnN0IFNWR0VsZW1lbnQgKnZpZXdwb3J0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZH
TGVuZ3RoPihjb250ZXh0KQotewotICAgIG1fbW9kZSA9IG1vZGU7Ci0gICAgbV92aWV3cG9ydEVs
ZW1lbnQgPSB2aWV3cG9ydDsKLX0KLQotU1ZHQW5pbWF0ZWRMZW5ndGg6On5TVkdBbmltYXRlZExl
bmd0aCgpCi17Ci19Ci0KLVNWR0xlbmd0aCAqU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBTVkdMZW5ndGgobV9jb250ZXh0LCBtX21vZGUsIG1fdmll
d3BvcnRFbGVtZW50KTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZExlbmd0aDo6YXNzaWduKFNWR0xl
bmd0aCAqc3JjLCBTVkdMZW5ndGggKmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8ICFkc3Qp
Ci0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBkc3QtPnNldFZhbHVlQXNTdHJpbmcoc3JjLT52
YWx1ZUFzU3RyaW5nKCkpOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NV
UFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3Qu
Y3BwCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTnVt
YmVyTGlzdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+
Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0K
LSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
MCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR051bWJlckxpc3QuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLVNWR0FuaW1hdGVkTnVtYmVyTGlzdDo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0KGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdOdW1i
ZXJMaXN0Pihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRlZE51bWJlckxpc3Q6On5TVkdBbmlt
YXRlZE51bWJlckxpc3QoKQotewotfQotCi1TVkdOdW1iZXJMaXN0ICpTVkdBbmltYXRlZE51bWJl
ckxpc3Q6OmNyZWF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBTVkdOdW1iZXJMaXN0KG1f
Y29udGV4dCk7Ci19Ci0KLS8vdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3Q6OmFzc2lnbihTVkdO
dW1iZXJMaXN0ICpzcmMsIFNWR051bWJlckxpc3QgKmRzdCkgY29uc3QKLS8vewotLy8gICAgaWYo
IXNyYyB8fCAhZHN0KQotLy8gICAgICAgIHJldHVybjsKLS8vCi0vLyAgICAvLyBVc2UgU1ZHTGlz
dDxTVkdOdW1iZXI+OjpvcGVyYXRvcj0KLS8vICAgICpkc3QgPSAqc3JjOwotLy99Ci0KLS8vIHZp
bTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQYXRoU2VnTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1BhdGhTZWdMaXN0LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
UGF0aFNlZ0xpc3QuaAkoQXJiZWl0c2tvcGllKQpAQCAtMjAsOCArMjAsOSBAQAogICAgIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR1BhdGhTZWdMaXN0
SW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHUGF0aFNlZ0xpc3RJbXBsX0gKKyNpZm5kZWYgS1NWR19T
VkdQYXRoU2VnTGlzdF9ICisjZGVmaW5lIEtTVkdfU1ZHUGF0aFNlZ0xpc3RfSAorCiAjaWZkZWYg
U1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUgIlNWR0xpc3QuaCIKQEAgLTI5LDEwICszMCwxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZQogewotICAgIGNsYXNzIFNWR1BhdGhTZWdMaXN0IDogcHVibGlj
IFNWR0xpc3Q8U1ZHUGF0aFNlZz4KKyAgICBjbGFzcyBTVkdQYXRoU2VnTGlzdCA6IHB1YmxpYyBT
VkdMaXN0PFNWR1BhdGhTZWcqPgogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1BhdGhT
ZWdMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQgPSAwKTsKKyAgICAgICAgU1ZH
UGF0aFNlZ0xpc3QoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZ0xpc3QoKTsKICAgICB9
OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCShS
ZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1l
bnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtMjYsNiArMjYsOCBAQAogCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0aW9uRWxlbWVudC5oIgogCitjbGFzcyBTVkdDb2xvcjsKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudCA6IHB1YmxpYyBTVkdBbmltYXRp
b25FbGVtZW50IHsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgICAgIHZpcnR1
YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlz
OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAko
QXJiZWl0c2tvcGllKQpAQCAtNDYsNyArNDYsNyBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywg
U3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKICAg
ICAgICAgbXV0YWJsZSBLQ2FudmFzRkVDb21wb25lbnRUcmFuc2ZlciAqbV9maWx0ZXJFZmZlY3Q7
CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAkoUmV2aXNp
b24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJKEFyYmVp
dHNrb3BpZSkKQEAgLTU0LDE0ICs1NCwxOCBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBG
aWx0ZXJVbml0cywgZmlsdGVyVW5pdHMpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhpbnQsIGludCwgUHJpbWl0aXZlVW5pdHMsIHByaW1pdGl2ZVVuaXRzKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xl
bmd0aD4sIFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdM
ZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lk
dGgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBS
ZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgRmlsdGVyUmVzWCwgZmlsdGVyUmVzWCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBGaWx0ZXJSZXNZLCBm
aWx0ZXJSZXNZKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9O
UyhTVkdVUklSZWZlcmVuY2UsIFN0cmluZywgSHJlZiwgaHJlZikKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKKyAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRl
ckVsZW1lbnQsIGludCwgaW50LCBGaWx0ZXJVbml0cywgZmlsdGVyVW5pdHMpCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBpbnQsIGludCwg
UHJpbWl0aXZlVW5pdHMsIHByaW1pdGl2ZVVuaXRzKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xl
bmd0aD4sIFgsIHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdG
aWx0ZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQ
dHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBpbnQsIGludCwgRmlsdGVyUmVzWCwgZmls
dGVyUmVzWCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRl
ckVsZW1lbnQsIGludCwgaW50LCBGaWx0ZXJSZXNZLCBmaWx0ZXJSZXNZKQorCiAgICAgICAgIEtD
YW52YXNGaWx0ZXIgKm1fZmlsdGVyOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCShS
ZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5oCShBcmJlaXRza29waWUpCkBAIC01MCwxMSArNTAsMTEgQEAKICAg
ICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBI
ZWlnaHQsIGhlaWdodCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0
cmluZywgU3RyaW5nLCBSZXN1bHQsIHJlc3VsdCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHTGVu
Z3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdM
ZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMsIFN0cmluZywgU3RyaW5nLCBSZXN1bHQsIHJlc3VsdCkKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTUsOSArNTUsMTMgQEAKICAgICAgICAg
dm9pZCByZWJ1aWxkU3RvcHMoKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBTcHJlYWRNZXRob2QsIHNwcmVh
ZE1ldGhvZCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50
LCBHcmFkaWVudFVuaXRzLCBncmFkaWVudFVuaXRzKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHVHJhbnNmb3JtTGlzdCosIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0
PiwgR3JhZGllbnRUcmFuc2Zvcm0sIGdyYWRpZW50VHJhbnNmb3JtKQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdVUklSZWZlcmVuY2UsIFN0cmluZywg
SHJlZiwgaHJlZikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElP
TlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0dyYWRpZW50RWxlbWVudCwgaW50LCBpbnQsIFNwcmVh
ZE1ldGhvZCwgc3ByZWFkTWV0aG9kKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHR3JhZGllbnRFbGVtZW50LCBpbnQsIGludCwgR3JhZGllbnRVbml0cywgZ3JhZGll
bnRVbml0cykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0dyYWRp
ZW50RWxlbWVudCwgU1ZHVHJhbnNmb3JtTGlzdCosIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0Piwg
R3JhZGllbnRUcmFuc2Zvcm0sIGdyYWRpZW50VHJhbnNmb3JtKQorCiAgICAgICAgIG11dGFibGUg
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQgKm1fcmVzb3VyY2U7CiAgICAgfTsKIApJbmRl
eDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAg
LTU3LDEwICs1NywxMiBAQAogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVyY2VudGFnZVZhbHVl
cygpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeCwgY3gpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgQ3ksIGN5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJ4LCByeCkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeSwgcnkp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCisgCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdFbGxpcHNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIEN4LCBjeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0Vs
bGlwc2VFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgQ3ksIGN5KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRWxsaXBzZUVsZW1lbnQsIFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFbGxpcHNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIFJ5LCByeSkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmgJKFJldmlzaW9uIDE2Mjg4KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaAkoQXJiZWl0c2tvcGllKQpA
QCAtMSw0NiArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFz
IFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
Ci0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkU3RyaW5nSW1wbF9ICi0jZGVm
aW5lIEtTVkdfU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0j
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LSAgICBjbGFzcyBTVkdBbmltYXRlZFN0cmluZyA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRl
PFN0cmluZ0ltcGw+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkU3RyaW5nKGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmlt
YXRlZFN0cmluZygpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFN0cmluZ0lt
cGwgKmNyZWF0ZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgYXNzaWduKFN0cmluZ0lt
cGwgKnNyYywgU3RyaW5nSW1wbCAqZHN0KSBjb25zdDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmIC8vIEtTVkdfU1ZHQW5p
bWF0ZWRTdHJpbmdJbXBsX0gKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCShSZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmlkbAkoUmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGlu
dGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8g
eyAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBiYXNlVmFs
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIGFuaW1WYWw7
CisgIH07Cit9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVVJJUmVmZXJlbmNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVVJJUmVmZXJlbmNlLmgJKFJldmlzaW9u
IDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVVJJUmVmZXJlbmNlLmgJKEFyYmVpdHNr
b3BpZSkKQEAgLTQ2LDcgKzQ2LDcgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TX1dJVEhfQ09OVEVYVChTVkdV
UklSZWZlcmVuY2UsIFN0cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR051bWJlckxpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR051bWJlckxpc3QuY3BwCShS
ZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR051bWJlckxpc3QuY3BwCShB
cmJlaXRza29waWUpCkBAIC0yMSwxOCArMjEsMTggQEAKICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiRGVwcmVjYXRlZFN0cmluZ0xpc3Qu
aCIKIAogI2luY2x1ZGUgIlNWR01hdHJpeC5oIgotI2luY2x1ZGUgIlNWR051bWJlci5oIgogI2lu
Y2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0LmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1TVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06IFNWR0xpc3Q8U1ZHTnVtYmVyPihjb250
ZXh0KQorU1ZHTnVtYmVyTGlzdDo6U1ZHTnVtYmVyTGlzdCgpCisJOiBTVkdMaXN0PGZsb2F0Pigp
CiB7CiB9CiAKQEAgLTQwLDE1ICs0MCwxMSBAQAogewogfQogCi12b2lkIFNWR051bWJlckxpc3Q6
OnBhcnNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcgJnZhbHVlLCBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICpjb250ZXh0KQordm9pZCBTVkdOdW1iZXJMaXN0OjpwYXJzZShjb25zdCBEZXByZWNhdGVk
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEZXByZWNhdGVkU3RyaW5nTGlzdCBudW1iZXJzID0gRGVw
cmVjYXRlZFN0cmluZ0xpc3Q6OnNwbGl0KCcgJywgdmFsdWUpOwotICAgIGZvcih1bnNpZ25lZCBp
bnQgaSA9IDA7aSA8IG51bWJlcnMuY291bnQoKTtpKyspCi0gICAgewotICAgICAgICBTVkdOdW1i
ZXIgKm51bWJlciA9IG5ldyBTVkdOdW1iZXIoY29udGV4dCk7Ci0gICAgICAgIG51bWJlci0+c2V0
VmFsdWUobnVtYmVyc1tpXS50b0RvdWJsZSgpKTsKLSAgICAgICAgYXBwZW5kSXRlbShudW1iZXIp
OwotICAgIH0KKyAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG51bWJlcnMuY291bnQo
KTsgaSsrKQorICAgICAgICBhcHBlbmRJdGVtKG51bWJlcnNbaV0udG9Eb3VibGUoKSk7CiB9CiAK
IC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcAkoUmV2
aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMb2NhdGFibGUuY3BwCShBcmJl
aXRza29waWUpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHTWF0cml4LmgiCi0jaW5jbHVkZSAiU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlNW
R1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KIApJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8uY3BwCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNTMgKzAsMCBAQAot
LyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxk
Zm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQot
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQot
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8oY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTVkdBbmltYXRlZFRlbXBs
YXRlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+KGNvbnRleHQpCi17Ci19Ci0KLVNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpbzo6flNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbygpCi17
Ci19Ci0KLVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gKlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbzo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8obV9jb250ZXh0KTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW86OmFzc2lnbihTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICpzcmMsIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8gKmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8ICFkc3QpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICBkc3QtPnNldEFsaWduKHNyYy0+YWxpZ24oKSk7Ci0gICAgZHN0LT5zZXRN
ZWV0T3JTbGljZShzcmMtPm1lZXRPclNsaWNlKCkpOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0j
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVMaWdo
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxl
bWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTGlnaHRF
bGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQyLDE2ICs0MiwxNiBAQAogICAgICAgICAvLyBE
ZXJpdmVkIGZyb206ICdFbGVtZW50JwogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsgICAgICAgIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgQXpp
bXV0aCwgYXppbXV0aCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRv
dWJsZSwgZG91YmxlLCBFbGV2YXRpb24sIGVsZXZhdGlvbikKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBYLCB4KQotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFksIHkpCi0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgWiwgeikKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBQb2ludHNB
dFgsIHBvaW50c0F0WCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRv
dWJsZSwgZG91YmxlLCBQb2ludHNBdFksIHBvaW50c0F0WSkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBQb2ludHNBdFosIHBvaW50c0F0WikK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBT
cGVjdWxhckV4cG9uZW50LCBzcGVjdWxhckV4cG9uZW50KQotICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIExpbWl0aW5nQ29uZUFuZ2xlLCBsaW1p
dGluZ0NvbmVBbmdsZSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgQXppbXV0aCwgYXppbXV0aCkKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3Vi
bGUsIGRvdWJsZSwgRWxldmF0aW9uLCBlbGV2YXRpb24pCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFgsIHgp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVu
dCwgZG91YmxlLCBkb3VibGUsIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFosIHopCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwgZG91Ymxl
LCBkb3VibGUsIFBvaW50c0F0WCwgcG9pbnRzQXRYKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBQb2ludHNB
dFksIHBvaW50c0F0WSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgUG9pbnRzQXRaLCBwb2ludHNBdFopCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwg
ZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyRXhwb25lbnQsIHNwZWN1bGFyRXhwb25lbnQpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwgZG91
YmxlLCBkb3VibGUsIExpbWl0aW5nQ29uZUFuZ2xlLCBsaW1pdGluZ0NvbmVBbmdsZSkKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMjEsNyArMjEsOSBAQAogKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKKwogI2luY2x1ZGUgIlNW
R01hdHJpeC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgogI2luY2x1ZGUgIlNWR1NWR0Vs
ZW1lbnQuaCIKQEAgLTI5LDggKzMxLDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVNWR1RyYW5zZm9ybUxpc3Q6OlNWR1RyYW5zZm9ybUxpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCAqY29udGV4dCkKLTogU1ZHTGlzdDxTVkdUcmFuc2Zvcm0+KGNvbnRleHQpCitTVkdUcmFuc2Zv
cm1MaXN0OjpTVkdUcmFuc2Zvcm1MaXN0KCkKKyAgICA6IFNWR0xpc3Q8U1ZHVHJhbnNmb3JtKj4o
KQogewogfQogCkBAIC0zOCwzNSArNDAsMjggQEAKIHsKIH0KIAotU1ZHVHJhbnNmb3JtICpTVkdU
cmFuc2Zvcm1MaXN0OjpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCAqbWF0
cml4KSBjb25zdAorU1ZHVHJhbnNmb3JtKiBTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGVTVkdUcmFu
c2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCogbWF0cml4KSBjb25zdAogewogICAgIHJldHVybiBT
VkdTVkdFbGVtZW50OjpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiB9CiAK
LVNWR1RyYW5zZm9ybSAqU1ZHVHJhbnNmb3JtTGlzdDo6Y29uc29saWRhdGUoKQorU1ZHVHJhbnNm
b3JtKiBTVkdUcmFuc2Zvcm1MaXN0Ojpjb25zb2xpZGF0ZSgpCiB7Ci0gICAgU1ZHVHJhbnNmb3Jt
ICpvYmogPSBjb25jYXRlbmF0ZSgpOwotICAgIGlmKCFvYmopCisgICAgU1ZHVHJhbnNmb3JtKiBv
YmogPSBjb25jYXRlbmF0ZSgpOworICAgIGlmICghb2JqKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIC8vIERpc2FibGUgbm90aWZpY2F0aW9ucyBoZXJlLi4uCi0gICAgY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCAqc2F2ZWRDb250ZXh0ID0gbV9jb250ZXh0OwotCi0gICAgbV9jb250ZXh0ID0gMDsK
LSAgICBTVkdUcmFuc2Zvcm0gKnJldCA9IGluaXRpYWxpemUob2JqKTsKLSAgICBtX2NvbnRleHQg
PSBzYXZlZENvbnRleHQ7Ci0gICAgCi0gICAgcmV0dXJuIHJldDsKKyAgICByZXR1cm4gaW5pdGlh
bGl6ZShvYmopOwogfQogCi1TVkdUcmFuc2Zvcm0gKlNWR1RyYW5zZm9ybUxpc3Q6OmNvbmNhdGVu
YXRlKCkgY29uc3QKK1NWR1RyYW5zZm9ybSogU1ZHVHJhbnNmb3JtTGlzdDo6Y29uY2F0ZW5hdGUo
KSBjb25zdAogewogICAgIHVuc2lnbmVkIGludCBsZW5ndGggPSBudW1iZXJPZkl0ZW1zKCk7Ci0g
ICAgaWYoIWxlbmd0aCkKKyAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
ICAgIAotICAgIFNWR1RyYW5zZm9ybSAqb2JqID0gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJh
bnNmb3JtKCk7Ci0gICAgU1ZHTWF0cml4ICptYXRyaXggPSBTVkdTVkdFbGVtZW50OjpjcmVhdGVT
VkdNYXRyaXgoKTsKKyAgICBTVkdUcmFuc2Zvcm0qIG9iaiA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0
ZVNWR1RyYW5zZm9ybSgpOworICAgIFNWR01hdHJpeCogbWF0cml4ID0gU1ZHU1ZHRWxlbWVudDo6
Y3JlYXRlU1ZHTWF0cml4KCk7CiAKICAgICBmb3IodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspCiAgICAgICAgIG1hdHJpeC0+bXVsdGlwbHkoZ2V0SXRlbShpKS0+bWF0cml4KCkp
OwpAQCAtNzUsNiArNzAsNiBAQAogICAgIHJldHVybiBvYmo7CiB9CiAKLS8vIHZpbTp0cz00Om5v
ZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdSZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTcsMTIgKzU3LDE0IEBA
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZXJjZW50YWdlVmFsdWVzKCkgY29uc3Q7CiAKICAg
ICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVu
Z3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBXaWR0aCwgd2lkdGgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgUngsIHJ4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJ5LCByeSkKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKKworICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVs
ZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHUmVjdEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0
aCwgd2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0
RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVsZW1lbnQsIFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFJ5LCByeSkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkoUmV2aXNpb24gMTYyODgpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkoQXJiZWl0c2tvcGllKQpA
QCAtMSw0OSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFz
IFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDUgT2xpdmVy
IEh1bnQgPG9qaDE2QHN0dWRlbnQuY2FudGVyYnVyeS5hYy5uej4KLQotICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwK
LSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdBbmltYXRlZENvbG9yLmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZENvbG9yOjpTVkdBbmltYXRl
ZENvbG9yKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06IFNWR0FuaW1hdGVkVGVt
cGxhdGU8U1ZHQ29sb3I+KGNvbnRleHQpCi17Ci19Ci0KLVNWR0FuaW1hdGVkQ29sb3I6On5TVkdB
bmltYXRlZENvbG9yKCkKLXsKLX0KLQotU1ZHQ29sb3IgKlNWR0FuaW1hdGVkQ29sb3I6OmNyZWF0
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBTVkdDb2xvcigpOwotfQotCi12b2lkIFNWR0Fu
aW1hdGVkQ29sb3I6OmFzc2lnbihTVkdDb2xvciAqc3JjLCBTVkdDb2xvciAqZHN0KSBjb25zdAot
ewotICAgIGlmICghc3JjIHx8ICFkc3QpCi0gICAgICAgIHJldHVybjsKLSAgICBkc3QtPnNldENz
c1RleHQoc3JjLT5jc3NUZXh0KCkpOwotfQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00Niw4
ICs0Niw3IEBACiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotCi0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVUaWxlRWxlbWVudCwgU3Ry
aW5nLCBTdHJpbmcsIEluLCBpbikKICAgICAgICAgbXV0YWJsZSBLQ2FudmFzRkVUaWxlICptX2Zp
bHRlckVmZmVjdDsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtNTcsOCArNTcsMTAgQEAKICAg
ICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSop
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBUZXh0TGVuZ3RoLCB0ZXh0TGVuZ3RoKQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIExlbmd0aEFk
anVzdCwgbGVuZ3RoQWRqdXN0KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RF
Q0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBUZXh0TGVuZ3RoLCB0ZXh0TGVuZ3RoKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVGV4dENvbnRlbnRFbGVtZW50LCBp
bnQsIGludCwgTGVuZ3RoQWRqdXN0LCBsZW5ndGhBZGp1c3QpCiAgICAgfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKFJldmlz
aW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKEFyYmVp
dHNrb3BpZSkKQEAgLTYzLDExICs2MywxNSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCos
IFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3Ro
PiwgV2lkdGgsIHdpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFJl
ZlB0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJB
VElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkgCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBI
cmVmLCBocmVmKQorCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdJ
bWFnZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHSW1hZ2VFbGVtZW50LCBTVkdMZW5n
dGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0ltYWdlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0ltYWdlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwg
aGVpZ2h0KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHSW1hZ2VF
bGVtZW50LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8+LCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQorCiAgICAg
ICAgIFNWR0ltYWdlTG9hZGVyIG1faW1hZ2VMb2FkZXI7CiAgICAgfTsKIApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oCShSZXZp
c2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTY0LDcgKzY0LDcgQEAKIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHTWF0cml4PiBtX2xvY2FsTWF0cml4OwotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVHJhbnNmb3JtTGlzdCosIFJl
ZlB0cjxTVkdUcmFuc2Zvcm1MaXN0PiwgVHJhbnNmb3JtLCB0cmFuc2Zvcm0pCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dCwgU1ZHVHJhbnNmb3JtTGlzdCosIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0PiwgVHJhbnNmb3Jt
LCB0cmFuc2Zvcm0pCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTI3LDcgKzI3
LDYgQEAKICNpbmNsdWRlICJrc3ZnLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhTZWdBcmMuaCIKICNpbmNsdWRlICJTVkdQYXRoU2Vn
TGlzdC5oIgpAQCAtMzUxLDcgKzM1MCw3IEBACiAKIFNWR1BhdGhTZWdMaXN0ICpTVkdQYXRoRWxl
bWVudDo6cGF0aFNlZ0xpc3QoKSBjb25zdAogewotICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdQ
YXRoU2VnTGlzdD4obV9wYXRoU2VnTGlzdCwgdGhpcyk7CisgICAgcmV0dXJuIGxhenlfY3JlYXRl
PFNWR1BhdGhTZWdMaXN0PihtX3BhdGhTZWdMaXN0KTsKIH0KIAogU1ZHUGF0aFNlZ0xpc3QgKlNW
R1BhdGhFbGVtZW50Ojpub3JtYWxpemVkUGF0aFNlZ0xpc3QoKSBjb25zdApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgJKEFyYmVp
dHNrb3BpZSkKQEAgLTQ4LDkgKzQ4LDkgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmlu
ZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91Ymxl
LCBkb3VibGUsIFN0ZERldmlhdGlvblgsIHN0ZERldmlhdGlvblgpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgU3RkRGV2aWF0aW9uWSwgc3Rk
RGV2aWF0aW9uWSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCwgZG91
YmxlLCBkb3VibGUsIFN0ZERldmlhdGlvblgsIHN0ZERldmlhdGlvblgpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQsIGRvdWJs
ZSwgZG91YmxlLCBTdGREZXZpYXRpb25ZLCBzdGREZXZpYXRpb25ZKQogICAgICAgICBtdXRhYmxl
IEtDYW52YXNGRUdhdXNzaWFuQmx1ciAqbV9maWx0ZXJFZmZlY3Q7CiAgICAgfTsKIApJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTM5LDcg
KzM5LDcgQEAKIFNWR1RleHRFbGVtZW50OjpTVkdUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKQogICAgIDogU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudCh0YWdOYW1lLCBkb2MpCiAgICAgLCBTVkdUcmFuc2Zvcm1hYmxlKCkKLSAgICAsIG1fdHJh
bnNmb3JtKG5ldyBTVkdUcmFuc2Zvcm1MaXN0KHRoaXMpKQorICAgICwgbV90cmFuc2Zvcm0obmV3
IFNWR1RyYW5zZm9ybUxpc3QoKSkKIHsKIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEyOSw2ICsxMjksOCBAQAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgbXV0YWJsZSBTVkdFbGVtZW50ICptX3RhcmdldEVsZW1l
bnQ7CiAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKwogICAgICAgICBib29sIG1fY29ubmVjdGVk
IDogMTsKICAgICAgICAgCiAgICAgICAgIGRvdWJsZSBtX2N1cnJlbnRUaW1lOwpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcAkoUmV2aXNpb24gMTYyODgpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAg
LTQ1LDE0ICs0NSwxMSBAQAogICAgIGlmKGxlbiA8IDEpCiAgICAgICAgIHJldHVybiBwb2x5RGF0
YTsKICAgICAKLSAgICBwb2x5RGF0YS5tb3ZlVG8oRmxvYXRQb2ludChwb2ludHMoKS0+Z2V0SXRl
bSgwKS0+eCgpLCBwb2ludHMoKS0+Z2V0SXRlbSgwKS0+eSgpKSk7Ci0gICAgZm9yIChpbnQgaSA9
IDE7IGkgPCBsZW47ICsraSkgewotICAgICAgICBTVkdQb2ludCAqcCA9IHBvaW50cygpLT5nZXRJ
dGVtKGkpOwotICAgICAgICBwb2x5RGF0YS5hZGRMaW5lVG8oRmxvYXRQb2ludChwLT54KCksIHAt
PnkoKSkpOwotICAgIH0KKyAgICBwb2x5RGF0YS5tb3ZlVG8ocG9pbnRzKCktPmdldEl0ZW0oMCkp
OworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuOyArK2kpCisgICAgICAgIHBvbHlEYXRhLmFk
ZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRlbShpKSk7CiAKICAgICBwb2x5RGF0YS5jbG9zZVN1YnBh
dGgoKTsKLQogICAgIHJldHVybiBwb2x5RGF0YTsKIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJKEFyYmVpdHNrb3BpZSkK
QEAgLTQ2LDEwICs0NiwxMCBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBYMSwgeDEpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTEsIHkxKQotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgy
LCB4MikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCos
IFJlZlB0cjxTVkdMZW5ndGg+LCBZMiwgeTIpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBYMSwgeDEpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBZMSwgeTEpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMiwgeDIp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZMiwgeTIpCiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRCb29sZWFuLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZEJvb2xlYW4uaWRsCShSZXZpc2lvbiAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRCb29sZWFuLmlkbAkoUmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3Zn
Cit7CisgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZEJvb2xlYW4geyAK
KyAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBiYXNlVmFsOworICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGFuaW1WYWw7CisgIH07Cit9OwpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwJKFJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbAkoUmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
XSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHsgCisgICAgICAgICAgICAgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0IGJhc2VWYWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERP
TUV4Y2VwdGlvbiBvbiBzZXR0aW5nCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNo
b3J0IGFuaW1WYWw7CisgIH07Cit9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ2lyY2xl
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDaXJjbGVFbGVt
ZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTU3LDkgKzU3LDExIEBACiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBoYXNQZXJjZW50YWdlVmFsdWVzKCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xl
bmd0aD4sIEN4LCBjeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeSwgY3kpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUiwgcikK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKworICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHQ2lyY2xlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4s
IEN4LCBjeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NpcmNs
ZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeSwgY3kpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDaXJjbGVFbGVtZW50LCBTVkdMZW5n
dGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUiwgcikKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKFJl
dmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNw
cAkoQXJiZWl0c2tvcGllKQpAQCAtMSw3NCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lm
ZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkQm9vbGVhbi5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZH
QW5pbWF0ZWRCb29sZWFuOjpTVkdBbmltYXRlZEJvb2xlYW4oY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHQW5pbWF0ZWRCb29sZWFuPigpCi17Ci0gICAgbV9iYXNl
VmFsID0gZmFsc2U7Ci0gICAgbV9hbmltVmFsID0gZmFsc2U7Ci0KLSAgICBtX2NvbnRleHQgPSBj
b250ZXh0OwotfQotCi1TVkdBbmltYXRlZEJvb2xlYW46On5TVkdBbmltYXRlZEJvb2xlYW4oKQot
ewotfQotCi1ib29sIFNWR0FuaW1hdGVkQm9vbGVhbjo6YmFzZVZhbCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fYmFzZVZhbDsKLX0KLQotdm9pZCBTVkdBbmltYXRlZEJvb2xlYW46OnNldEJhc2VW
YWwoYm9vbCBiYXNlVmFsKQotewotICAgIG1fYmFzZVZhbCA9IGJhc2VWYWw7Ci0KLSAgICAvLyBT
cGVjOiBJZiB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHByb3BlcnR5IGlzIG5vdCBjdXJyZW50bHkK
LSAgICAvLyAgICAgICAgIGJlaW5nIGFuaW1hdGVkLCBjb250YWlucyB0aGUgc2FtZSB2YWx1ZSBh
cyAnYmFzZVZhbCcKLSAgICBtX2FuaW1WYWwgPSBiYXNlVmFsOwotICAgIAotICAgIGlmKG1fY29u
dGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKLX0KLQot
Ym9vbCBTVkdBbmltYXRlZEJvb2xlYW46OmFuaW1WYWwoKSBjb25zdAotewotICAgIHJldHVybiBt
X2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuOjpzZXRBbmltVmFsKGJvb2wg
YW5pbVZhbCkKLXsKLSAgICBtX2FuaW1WYWwgPSBhbmltVmFsOwotICAgIAotICAgIGlmKG1fY29u
dGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKLX0KLQot
Ly8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgJKFJldmlzaW9u
IDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZC5oCShBcmJlaXRza29waWUpCkBAIC01Miw3ICs1Miw3IEBACiAgICAgICAgIHZpcnR1YWwgY29u
c3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCA9IDA7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoYm9vbCwgYm9vbCwgRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TX1dJVEhfQ09OVEVYVChTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
Y3BwCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51
bWVyYXRpb24uY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgot
Ci0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6U1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNoYXJlZDxTVkdBbmltYXRlZEVu
dW1lcmF0aW9uPigpCi17Ci0gICAgbV9iYXNlVmFsID0gMDsKLSAgICBtX2FuaW1WYWwgPSAwOwot
Ci0gICAgbV9jb250ZXh0ID0gY29udGV4dDsKLX0KLQotU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6
flNWR0FuaW1hdGVkRW51bWVyYXRpb24oKQotewotfQotCi11bnNpZ25lZCBzaG9ydCBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uOjpiYXNlVmFsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9iYXNlVmFs
OwotfQotCi12b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb246OnNldEJhc2VWYWwodW5zaWduZWQg
c2hvcnQgYmFzZVZhbCkKLXsKLSAgICBtX2Jhc2VWYWwgPSBiYXNlVmFsOwotICAgIAotICAgIC8v
IFNwZWM6IElmIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb3IgcHJvcGVydHkgaXMgbm90IGN1cnJlbnRs
eQotICAgIC8vICAgICAgICAgYmVpbmcgYW5pbWF0ZWQsIGNvbnRhaW5zIHRoZSBzYW1lIHZhbHVl
IGFzICdiYXNlVmFsJwotICAgIG1fYW5pbVZhbCA9IGJhc2VWYWw7Ci0KLSAgICBpZihtX2NvbnRl
eHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLXVu
c2lnbmVkIHNob3J0IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmFuaW1WYWwoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6
c2V0QW5pbVZhbCh1bnNpZ25lZCBzaG9ydCBhbmltVmFsKQotewotICAgIG1fYW5pbVZhbCA9IGFu
aW1WYWw7Ci0gICAgCi0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlm
eUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZH
X1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0LmgJKFJldmlzaW9uIDE2Mjg4
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0LmgJKEFyYmVpdHNrb3BpZSkKQEAg
LTIyLDE3ICsyMiwxOCBAQAogCiAjaWZuZGVmIEtTVkdfU1ZHUG9pbnRMaXN0SW1wbF9ICiAjZGVm
aW5lIEtTVkdfU1ZHUG9pbnRMaXN0SW1wbF9ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5j
bHVkZSAiU1ZHTGlzdC5oIgotI2luY2x1ZGUgIlNWR1BvaW50LmgiCisjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZQogewotICAgIGNsYXNzIFNWR1BvaW50TGlzdCA6
IHB1YmxpYyBTVkdMaXN0PFNWR1BvaW50PgorICAgIGNsYXNzIFNWR1BvaW50TGlzdCA6IHB1Ymxp
YyBTVkdMaXN0PEZsb2F0UG9pbnQ+CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUG9p
bnRMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQgPSAwKTsKKyAgICAgICAgU1ZH
UG9pbnRMaXN0KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BvaW50TGlzdCgpOwogICAgIH07CiAK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgJKFJldmlzaW9uIDE2Mjg4KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBA
IC01Nyw4ICs1NywxMiBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJv
b2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJl
ZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdDdXJzb3JFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0N1
cnNvckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorCiAgICAg
ICAgIENhY2hlZEltYWdlICptX2NhY2hlZEltYWdlOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShBcmJlaXRza29waWUpCkBAIC00Myw3ICs0Myw3IEBA
CiAKIFNWR1BvaW50TGlzdCAqU1ZHUG9seUVsZW1lbnQ6OnBvaW50cygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGxhenlfY3JlYXRlPFNWR1BvaW50TGlzdD4obV9wb2ludHMsIHRoaXMpOworICAgIHJl
dHVybiBsYXp5X2NyZWF0ZTxTVkdQb2ludExpc3Q+KG1fcG9pbnRzKTsKIH0KIAogU1ZHUG9pbnRM
aXN0ICpTVkdQb2x5RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMoKSBjb25zdApAQCAtNjYsNyArNjYs
NyBAQAogCiB2b2lkIFNWR1BvbHlFbGVtZW50OjpzdmdQb2x5VG8oZG91YmxlIHgxLCBkb3VibGUg
eTEsIGludCkgY29uc3QKIHsKLSAgICBwb2ludHMoKS0+YXBwZW5kSXRlbShuZXcgU1ZHUG9pbnQo
eDEsIHkxLCB0aGlzKSk7CisgICAgcG9pbnRzKCktPmFwcGVuZEl0ZW0oRmxvYXRQb2ludCh4MSwg
eTEpKTsKIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCkg
Y29uc3QKQEAgLTgzLDggKzgzLDggQEAKICAgICBTdHJpbmcgX3BvaW50czsKICAgICBpbnQgbGVu
ID0gcG9pbnRzKCktPm51bWJlck9mSXRlbXMoKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxl
bjsgKytpKSB7Ci0gICAgICAgIFNWR1BvaW50ICpwID0gcG9pbnRzKCktPmdldEl0ZW0oaSk7Ci0g
ICAgICAgIF9wb2ludHMgKz0gU3RyaW5nOjpzcHJpbnRmKCIlLjZsZyAlLjZsZyAiLCBwLT54KCks
IHAtPnkoKSk7CisgICAgICAgIEZsb2F0UG9pbnQgcCA9IHBvaW50cygpLT5nZXRJdGVtKGkpOwor
ICAgICAgICBfcG9pbnRzICs9IFN0cmluZzo6c3ByaW50ZigiJS42bGcgJS42bGcgIiwgcC54KCks
IHAueSgpKTsKICAgICB9CiAKICAgICBTdHJpbmcgcCgicG9pbnRzIik7CkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRWxlbWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Vs
ZW1lbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtMjQsMjIgKzI0LDcwIEBACiAjZGVmaW5lIEtTVkdf
U1ZHRWxlbWVudEltcGxfSAogI2lmZGVmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIK
KwogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5o
IgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAKLS8vIEZJWE1FOiBUZW1wbGF0aWZ5IGFzIG11Y2ggYXMgcG9zc2libGUgaGVyZSEKLSNk
ZWZpbmUgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKEJhcmVUeXBlLCBTdG9yYWdlVHlw
ZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorI2RlZmluZSBBTklNQVRFRF9QUk9Q
RVJUWV9FTVBUWV9ERUNMQVJBVElPTlMoQmFyZVR5cGUsIE51bGxUeXBlLCBVcHBlclByb3BlcnR5
LCBMb3dlclByb3BlcnR5KSBcCiBwdWJsaWM6IFwKKyAgICB2aXJ0dWFsIEJhcmVUeXBlIExvd2Vy
UHJvcGVydHkoKSBjb25zdCB7IEFTU0VSVChmYWxzZSk7IHJldHVybiBOdWxsVHlwZTsgfSBcCisg
ICAgdmlydHVhbCB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eShCYXJlVHlwZSBuZXdWYWx1ZSkgeyBB
U1NFUlQoZmFsc2UpOyB9XAorICAgIHZpcnR1YWwgQmFyZVR5cGUgTG93ZXJQcm9wZXJ0eSMjQmFz
ZVZhbHVlKCkgY29uc3QgeyBBU1NFUlQoZmFsc2UpOyByZXR1cm4gTnVsbFR5cGU7IH0gXAorICAg
IHZpcnR1YWwgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShCYXJlVHlwZSBuZXdW
YWx1ZSkgeyBBU1NFUlQoZmFsc2UpOyB9CisKKyNkZWZpbmUgQU5JTUFURURfUFJPUEVSVFlfRk9S
V0FSRF9ERUNMQVJBVElPTlMoRm9yd2FyZENsYXNzLCBCYXJlVHlwZSwgVXBwZXJQcm9wZXJ0eSwg
TG93ZXJQcm9wZXJ0eSkgXAorcHVibGljOiBcCisgICAgdmlydHVhbCBCYXJlVHlwZSBMb3dlclBy
b3BlcnR5KCkgY29uc3QgeyByZXR1cm4gRm9yd2FyZENsYXNzOjpMb3dlclByb3BlcnR5KCk7IH0g
XAorICAgIHZpcnR1YWwgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkoQmFyZVR5cGUgbmV3VmFsdWUp
IHsgRm9yd2FyZENsYXNzOjpzZXQjI1VwcGVyUHJvcGVydHkobmV3VmFsdWUpOyB9IFwKKyAgICB2
aXJ0dWFsIEJhcmVUeXBlIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IEZvcndhcmRDbGFzczo6TG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCk7IH0gXAorICAgIHZpcnR1
YWwgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShCYXJlVHlwZSBuZXdWYWx1ZSkg
eyBGb3J3YXJkQ2xhc3M6OnNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKG5ld1ZhbHVlKTsg
fQorCisjZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OU19JTlRFUk5BTChDbGFz
c1R5cGUsIENsYXNzU3RvcmFnZVR5cGUsIEJhcmVUeXBlLCBTdG9yYWdlVHlwZSwgVXBwZXJQcm9w
ZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorY2xhc3MgU1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQ
cm9wZXJ0eSBcCis6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPEJhcmVUeXBlPiBcCit7IFwK
K3B1YmxpYzogXAorICAgIFNWR0FuaW1hdGVkVGVtcGxhdGUjI1VwcGVyUHJvcGVydHkoY29uc3Qg
Q2xhc3NUeXBlKiBlbGVtZW50KTsgXAorICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVGVtcGxhdGUj
I1VwcGVyUHJvcGVydHkoKSB7IH0gXAorICAgIHZpcnR1YWwgQmFyZVR5cGUgYmFzZVZhbCgpIGNv
bnN0OyBcCisgICAgdmlydHVhbCB2b2lkIHNldEJhc2VWYWwoQmFyZVR5cGUgbmV3QmFzZVZhbCk7
IFwKKyAgICB2aXJ0dWFsIEJhcmVUeXBlIGFuaW1WYWwoKSBjb25zdDsgXAorICAgIHZpcnR1YWwg
dm9pZCBzZXRBbmltVmFsKEJhcmVUeXBlIG5ld0FuaW1WYWwpOyBcCitwcm90ZWN0ZWQ6IFwKKyAg
ICBDbGFzc1N0b3JhZ2VUeXBlIG1fZWxlbWVudDsgXAorfTsgXAorcHVibGljOiBcCiAgICAgQmFy
ZVR5cGUgTG93ZXJQcm9wZXJ0eSgpIGNvbnN0OyBcCiAgICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVy
dHkoQmFyZVR5cGUgbmV3VmFsdWUpOyBcCiAgICAgQmFyZVR5cGUgTG93ZXJQcm9wZXJ0eSMjQmFz
ZVZhbHVlKCkgY29uc3Q7IFwKICAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVl
KEJhcmVUeXBlIG5ld1ZhbHVlKTsgXAorICAgIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRUZW1wbGF0
ZSMjVXBwZXJQcm9wZXJ0eT4gTG93ZXJQcm9wZXJ0eSMjQW5pbWF0ZWQoKSBjb25zdDsgXAogcHJp
dmF0ZTogXAogICAgIFN0b3JhZ2VUeXBlIG1fIyNMb3dlclByb3BlcnR5OwogCi0jZGVmaW5lIEFO
SU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX0lOVEVSTkFMKENsYXNzTmFtZSwgQmFyZVR5cGUs
IFVwcGVyQ2xhc3NOYW1lLCBMb3dlckNsYXNzTmFtZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9w
ZXJ0eSwgQXR0ck5hbWUsIFN0b3JhZ2VHZXR0ZXIsIENvbnRleHRFbGVtZW50KSBcCisjZGVmaW5l
IEFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX0lOVEVSTkFMKENsYXNzTmFtZSwgQ2xhc3NU
eXBlLCBCYXJlVHlwZSwgVXBwZXJDbGFzc05hbWUsIExvd2VyQ2xhc3NOYW1lLCBVcHBlclByb3Bl
cnR5LCBMb3dlclByb3BlcnR5LCBBdHRyTmFtZSwgU3RvcmFnZUdldHRlciwgQ29udGV4dEVsZW1l
bnQpIFwKK0NsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eTo6U1ZH
QW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eShjb25zdCBDbGFzc1R5cGUqIGVsZW1lbnQp
IFwKKzogbV9lbGVtZW50KGNvbnN0X2Nhc3Q8Q2xhc3NUeXBlKj4oZWxlbWVudCkpIHsgfSBcCitC
YXJlVHlwZSBDbGFzc05hbWU6OlNWR0FuaW1hdGVkVGVtcGxhdGUjI1VwcGVyUHJvcGVydHk6OmJh
c2VWYWwoKSBjb25zdCBcCit7IFwKKyAgICByZXR1cm4gbV9lbGVtZW50LT5Mb3dlclByb3BlcnR5
IyNCYXNlVmFsdWUoKTsgXAorfSBcCit2b2lkIENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0
ZSMjVXBwZXJQcm9wZXJ0eTo6c2V0QmFzZVZhbChCYXJlVHlwZSBuZXdCYXNlVmFsKSBcCit7IFwK
KyAgICBtX2VsZW1lbnQtPnNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKG5ld0Jhc2VWYWwp
OyBcCit9IFwKK0JhcmVUeXBlIENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQ
cm9wZXJ0eTo6YW5pbVZhbCgpIGNvbnN0IFwKK3sgXAorICAgIHJldHVybiBtX2VsZW1lbnQtPkxv
d2VyUHJvcGVydHkoKTsgXAorfVwKK3ZvaWQgQ2xhc3NOYW1lOjpTVkdBbmltYXRlZFRlbXBsYXRl
IyNVcHBlclByb3BlcnR5OjpzZXRBbmltVmFsKEJhcmVUeXBlIG5ld0FuaW1WYWwpIFwKK3sgXAor
ICAgIG1fZWxlbWVudC0+c2V0IyNVcHBlclByb3BlcnR5KG5ld0FuaW1WYWwpOyBcCit9IFwKIEJh
cmVUeXBlIENsYXNzTmFtZTo6TG93ZXJQcm9wZXJ0eSgpIGNvbnN0IFwKIHsgXAogICAgIHJldHVy
biBTdG9yYWdlR2V0dGVyOyBcCkBAIC02NywxNSArMTE1LDM3IEBACiAgICAgc2V0IyNVcHBlclBy
b3BlcnR5KG5ld1ZhbHVlKTsgXAogfQogCisvLyBUaGVzZSBhcmUgdGhlIG1hY3JvcyB3aGljaCB3
aWxsIGJlIHVzZWQgdG8gZGVjbGFyZS9pbXBsZW1lbnQgdGhlIHN2ZyBhbmltYXRlZCBwcm9wZXJ0
aWVzLi4uCisjZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OU19XSVRIX0NPTlRF
WFQoQ2xhc3NOYW1lLCBCYXJlVHlwZSwgU3RvcmFnZVR5cGUsIFVwcGVyUHJvcGVydHksIExvd2Vy
UHJvcGVydHkpIFwKK0FOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OU19JTlRFUk5BTChTVkdF
bGVtZW50LCBSZWZQdHI8U1ZHRWxlbWVudD4sIEJhcmVUeXBlLCBTdG9yYWdlVHlwZSwgVXBwZXJQ
cm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkKKworI2RlZmluZSBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoQ2xhc3NOYW1lLCBCYXJlVHlwZSwgU3RvcmFnZVR5cGUsIFVwcGVyUHJvcGVydHks
IExvd2VyUHJvcGVydHkpIFwKK0FOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OU19JTlRFUk5B
TChDbGFzc05hbWUsIFJlZlB0cjxDbGFzc05hbWU+LCBCYXJlVHlwZSwgU3RvcmFnZVR5cGUsIFVw
cGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCisKICNkZWZpbmUgQU5JTUFURURfUFJPUEVSVFlf
REVGSU5JVElPTlNfV0lUSF9DT05URVhUKENsYXNzTmFtZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NO
YW1lLCBMb3dlckNsYXNzTmFtZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5h
bWUsIFN0b3JhZ2VHZXR0ZXIpIFwKLUFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX0lOVEVS
TkFMKENsYXNzTmFtZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NOYW1lLCBMb3dlckNsYXNzTmFtZSwg
VXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5hbWUsIFN0b3JhZ2VHZXR0ZXIsIGNv
bnRleHRFbGVtZW50KCkpCitBTklNQVRFRF9QUk9QRVJUWV9ERUZJTklUSU9OU19JTlRFUk5BTChD
bGFzc05hbWUsIFNWR0VsZW1lbnQsIEJhcmVUeXBlLCBVcHBlckNsYXNzTmFtZSwgTG93ZXJDbGFz
c05hbWUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHksIEF0dHJOYW1lLCBTdG9yYWdlR2V0
dGVyLCBjb250ZXh0RWxlbWVudCgpKSBcCitQYXNzUmVmUHRyPENsYXNzTmFtZTo6U1ZHQW5pbWF0
ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eT4gQ2xhc3NOYW1lOjpMb3dlclByb3BlcnR5IyNBbmlt
YXRlZCgpIGNvbnN0IFwKK3sgXAorICAgIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHQgPSBjb250
ZXh0RWxlbWVudCgpOyBcCisgICAgQVNTRVJUKGNvbnRleHQgIT0gMCk7IFwKKyAgICBSZWZQdHI8
Q2xhc3NOYW1lOjpTVkdBbmltYXRlZFRlbXBsYXRlIyNVcHBlclByb3BlcnR5PiByZXQ7IFwKKyAg
ICByZXQgPSBuZXcgQ2xhc3NOYW1lOjpTVkdBbmltYXRlZFRlbXBsYXRlIyNVcHBlclByb3BlcnR5
KGNvbnRleHQpOyBcCisgICAgcmV0dXJuIHJldDsgXAorfQogCiAjZGVmaW5lIEFOSU1BVEVEX1BS
T1BFUlRZX0RFRklOSVRJT05TKENsYXNzTmFtZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NOYW1lLCBM
b3dlckNsYXNzTmFtZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5hbWUsIFN0
b3JhZ2VHZXR0ZXIpIFwKLUFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX0lOVEVSTkFMKENs
YXNzTmFtZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NOYW1lLCBMb3dlckNsYXNzTmFtZSwgVXBwZXJQ
cm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5hbWUsIFN0b3JhZ2VHZXR0ZXIsIHRoaXMpCitB
TklNQVRFRF9QUk9QRVJUWV9ERUZJTklUSU9OU19JTlRFUk5BTChDbGFzc05hbWUsIENsYXNzTmFt
ZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NOYW1lLCBMb3dlckNsYXNzTmFtZSwgVXBwZXJQcm9wZXJ0
eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5hbWUsIFN0b3JhZ2VHZXR0ZXIsIHRoaXMpIFwKK1Bhc3NS
ZWZQdHI8Q2xhc3NOYW1lOjpTVkdBbmltYXRlZFRlbXBsYXRlIyNVcHBlclByb3BlcnR5PiBDbGFz
c05hbWU6Okxvd2VyUHJvcGVydHkjI0FuaW1hdGVkKCkgY29uc3QgXAoreyBcCisgICAgUmVmUHRy
PENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eT4gcmV0OyBcCisg
ICAgcmV0ID0gbmV3IENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0
eSh0aGlzKTsgXAorICAgIHJldHVybiByZXQ7IFwKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIERvY3VtZW50UHRyOwogICAgIGNsYXNzIEVjbWE7CisgICAgY2xhc3MgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzsKICAgICBjbGFzcyBTVkdNYXRyaXg7CiAgICAgY2xhc3MgU1ZHU3R5
bGVkRWxlbWVudDsKICAgICBjbGFzcyBTVkdTVkdFbGVtZW50OwpAQCAtMTA5LDE2ICsxNzksMjgg
QEAKICAgICAgICAgdmlydHVhbCBib29sIGlzU1ZHKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzR3JhZGllbnRTdG9wKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICAgICAgCisKICAgICAgICAgLy8gRm9yIFNWR1Rlc3RzCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICAK
KyAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSopIGNv
bnN0OwotICAgICAgICAKKwogICAgICAgICB2b2lkIHNlbmRTVkdMb2FkRXZlbnRJZlBvc3NpYmxl
KGJvb2wgc2VuZFBhcmVudExvYWRFdmVudHMgPSBmYWxzZSk7CiAKKyAgICAgICAgLy8gRm9yd2Fy
ZGVkIHByb3BlcnRpZXMgKGRlY2xhcmVkL2RlZmluZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgaW5o
ZXJpdGFuY2Ugc3RydWN0dXJlKQorCisgICAgICAgIC8vIC0+IEZvciBTVkdVUklSZWZlcmVuY2UK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRU1QVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3Ry
aW5nKCksIEhyZWYsIGhyZWYpCisKKyAgICAgICAgLy8gLT4gRm9yIFNWR0ZpdFRvVmlld0JveAor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9FTVBUWV9ERUNMQVJBVElPTlMoRmxvYXRSZWN0LCBG
bG9hdFJlY3QoKSwgVmlld0JveCwgdmlld0JveCkgICAgCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0VNUFRZX0RFQ0xBUkFUSU9OUyhTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgMCwgUHJlc2Vy
dmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKKworICAgICAgICAvLyAtPiBGb3Ig
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9F
TVBUWV9ERUNMQVJBVElPTlMoYm9vbCwgZmFsc2UsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lk
IGFkZFNWR0V2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0
IEF0dHJpYnV0ZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGF2ZUxvYWRlZFJlcXVpcmVkUmVz
b3VyY2VzKCk7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkoUmV2aXNpb24g
MTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkoQXJiZWl0c2tv
cGllKQpAQCAtMzQsMTAgKzM0LDggQEAKICNpbmNsdWRlICJTVkdBbmdsZS5oIgogI2luY2x1ZGUg
IlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCIKLSNpbmNs
dWRlICJTVkdSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjaW5j
bHVkZSAiU1ZHTWF0cml4LmgiCi0jaW5jbHVkZSAiU1ZHTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZH
VHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAjaW5jbHVkZSAia3N2Zy5o
IgpAQCAtNjEsNyArNTksNyBAQAogICAgICwgbV90aW1lU2NoZWR1bGVyKG5ldyBUaW1lU2NoZWR1
bGVyKGRvYykpCiB7CiAgICAgY29uc3QgU1ZHRWxlbWVudCogdmlld3BvcnQgPSBvd25lckRvY3Vt
ZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMgPyB0aGlzIDogdmlld3BvcnRFbGVtZW50
KCk7Ci0gICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCo+KG93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVt
ZW50KCkgPT0gdGhpcyA/IDAgOiB0aGlzKTsKKyAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBj
b250ZXh0ID0gb3duZXJEb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSB0aGlzID8gMCA6
IHRoaXM7CiAKICAgICBtX3ggPSBuZXcgU1ZHTGVuZ3RoKGNvbnRleHQsIExNX1dJRFRILCB2aWV3
cG9ydCk7CiAgICAgbV95ID0gbmV3IFNWR0xlbmd0aChjb250ZXh0LCBMTV9IRUlHSFQsIHZpZXdw
b3J0KTsKQEAgLTIzMSw3ICsyMjksNyBAQAogICAgICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGlmIChTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpICYmIHJlbmRlcmVyKCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJTVkdDb250
YWluZXIqPihyZW5kZXJlcigpKS0+c2V0Vmlld0JveChGbG9hdFJlY3Qodmlld0JveCgpLT54KCks
IHZpZXdCb3goKS0+eSgpLCB2aWV3Qm94KCktPndpZHRoKCksIHZpZXdCb3goKS0+aGVpZ2h0KCkp
KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclNWR0NvbnRhaW5lcio+KHJlbmRlcmVy
KCkpLT5zZXRWaWV3Qm94KEZsb2F0UmVjdCh2aWV3Qm94KCkueCgpLCB2aWV3Qm94KCkueSgpLCB2
aWV3Qm94KCkud2lkdGgoKSwgdmlld0JveCgpLmhlaWdodCgpKSk7CiAgICAgICAgIGlmIChTVkda
b29tQW5kUGFuOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVy
bjsKIApAQCAtMzgwLDkgKzM3OCw5IEBACiAgICAgZmxvYXQgX2hlaWdodCA9IGhlaWdodCgpLT52
YWx1ZSgpOwogCiAgICAgcm9vdENvbnRhaW5lci0+c2V0Vmlld3BvcnQoRmxvYXRSZWN0KF94LCBf
eSwgX3dpZHRoLCBfaGVpZ2h0KSk7Ci0gICAgcm9vdENvbnRhaW5lci0+c2V0Vmlld0JveChGbG9h
dFJlY3Qodmlld0JveCgpLT54KCksIHZpZXdCb3goKS0+eSgpLCB2aWV3Qm94KCktPndpZHRoKCks
IHZpZXdCb3goKS0+aGVpZ2h0KCkpKTsKKyAgICByb290Q29udGFpbmVyLT5zZXRWaWV3Qm94KEZs
b2F0UmVjdCh2aWV3Qm94KCkueCgpLCB2aWV3Qm94KCkueSgpLCB2aWV3Qm94KCkud2lkdGgoKSwg
dmlld0JveCgpLmhlaWdodCgpKSk7CiAgICAgcm9vdENvbnRhaW5lci0+c2V0QWxpZ24oS0NBbGln
bihwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPmFsaWduKCkgLSAxKSk7Ci0gICAgcm9vdENvbnRhaW5l
ci0+c2V0U2xpY2UocHJlc2VydmVBc3BlY3RSYXRpbygpLT5tZWV0T3JTbGljZSgpID09IFNWR19N
RUVUT1JTTElDRV9TTElDRSk7CisgICAgcm9vdENvbnRhaW5lci0+c2V0U2xpY2UocHJlc2VydmVB
c3BlY3RSYXRpbygpLT5tZWV0T3JTbGljZSgpID09IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNW
R19NRUVUT1JTTElDRV9TTElDRSk7CiAgICAgCiAgICAgcmV0dXJuIHJvb3RDb250YWluZXI7CiB9
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcAko
UmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VM
aXN0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMjEsMTMgKzIxLDE1IEBACiAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCisKICNpZmRlZiBTVkdfU1VQUE9SVAorCiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dEluc3RhbmNlTGlzdC5oIgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotU1ZHRWxlbWVudEluc3RhbmNlTGlzdDo6U1ZHRWxlbWVudEluc3RhbmNlTGlz
dChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQotOiBTVkdMaXN0PFNWR0VsZW1lbnRJ
bnN0YW5jZT4oY29udGV4dCkKK1NWR0VsZW1lbnRJbnN0YW5jZUxpc3Q6OlNWR0VsZW1lbnRJbnN0
YW5jZUxpc3QoKQorCTogU1ZHTGlzdDxTVkdFbGVtZW50SW5zdGFuY2UqPigpCiB7CiB9CiAKQEAg
LTM1LDYgKzM3LDggQEAKIHsKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAorfQorCiAjZW5kaWYgLy8g
U1ZHX1NVUFBPUlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkQ29sb3IuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZENvbG9yLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5v
cmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
Ci0gICAgICAgICAgICAgICAgICAyMDA1IE9saXZlciBIdW50IDxvamgxNkBzdHVkZW50LmNhbnRl
cmJ1cnkuYWMubno+Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0K
LSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3
LCBVU0EuCi0gKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkQ29sb3JJbXBsX0gKLSNkZWZp
bmUgS1NWR19TVkdBbmltYXRlZENvbG9ySW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0g
ICAgY2xhc3MgU1ZHQW5pbWF0ZWRDb2xvciA6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBsYXRlPFNW
R0NvbG9yPgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkQ29sb3IoY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1h
dGVkQ29sb3IoKTsKLSAgICAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHQ29s
b3IgKmNyZWF0ZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgYXNzaWduKFNWR0NvbG9y
ICpzcmMsIFNWR0NvbG9yICpkc3QpIGNvbnN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5oCShBcmJlaXRza29waWUpCkBAIC0xLDU2ICswLDAg
QEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwot
Ci0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZH
QW5pbWF0ZWRCb29sZWFuSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNo
YXJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTVkdTdHlsZWRFbGVt
ZW50OwotCi0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRCb29sZWFuIDogcHVibGljIFNoYXJlZDxTVkdB
bmltYXRlZEJvb2xlYW4+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkQm9vbGVh
bihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZH
QW5pbWF0ZWRCb29sZWFuKCk7Ci0KLSAgICAgICAgYm9vbCBiYXNlVmFsKCkgY29uc3Q7Ci0gICAg
ICAgIHZvaWQgc2V0QmFzZVZhbChib29sIGJhc2VWYWwpOwotCi0gICAgICAgIGJvb2wgYW5pbVZh
bCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldEFuaW1WYWwoYm9vbCBhbmltVmFsKTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIGJvb2wgbV9iYXNlVmFsIDogMTsKLSAgICAgICAgYm9vbCBtX2Fu
aW1WYWwgOiAxOwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsK
LSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotI2VuZGlmIC8vIEtTVkdfU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbF9ICi0KLS8vIHZpbTp0cz00
Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHAJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuY3BwCShBcmJlaXRza29waWUpCkBAIC00Myw3ICs0Myw3IEBACiBTVkdGRUNv
bG9yTWF0cml4RWxlbWVudDo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYykKICAgICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2MpCiAgICAgLCBtX3R5cGUoMCkKLSAgICAsIG1f
dmFsdWVzKG5ldyBTVkdOdW1iZXJMaXN0KDApKQorICAgICwgbV92YWx1ZXMobmV3IFNWR051bWJl
ckxpc3QoKSkKICAgICAsIG1fZmlsdGVyRWZmZWN0KDApCiB7CiB9CkBAIC03Myw3ICs3Myw3IEBA
CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjppbkF0dHIpCiAgICAgICAg
IHNldEluQmFzZVZhbHVlKHZhbHVlKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZH
TmFtZXM6OnZhbHVlc0F0dHIpCi0gICAgICAgIHZhbHVlc0Jhc2VWYWx1ZSgpLT5wYXJzZSh2YWx1
ZS5kZXByZWNhdGVkU3RyaW5nKCksIHRoaXMpOworICAgICAgICB2YWx1ZXNCYXNlVmFsdWUoKS0+
cGFyc2UodmFsdWUuZGVwcmVjYXRlZFN0cmluZygpKTsKICAgICBlbHNlCiAgICAgICAgIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0
cik7CiB9CkBAIC05MSw3ICs5MSw3IEBACiAgICAgU1ZHTnVtYmVyTGlzdCAqbnVtYmVycyA9IHZh
bHVlcygpOwogICAgIHVuc2lnbmVkIGludCBuciA9IG51bWJlcnMtPm51bWJlck9mSXRlbXMoKTsK
ICAgICBmb3IodW5zaWduZWQgaW50IGkgPSAwO2kgPCBucjtpKyspCi0gICAgICAgIF92YWx1ZXMu
YXBwZW5kKG51bWJlcnMtPmdldEl0ZW0oaSktPnZhbHVlKCkpOworICAgICAgICBfdmFsdWVzLmFw
cGVuZChudW1iZXJzLT5nZXRJdGVtKGkpKTsKICAgICBtX2ZpbHRlckVmZmVjdC0+c2V0VmFsdWVz
KF92YWx1ZXMpOwogICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRUeXBlKChLQ0NvbG9yTWF0cml4VHlw
ZSkodHlwZSgpIC0gMSkpOwogICAgIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVGbG9v
ZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUZsb29kRWxl
bWVudC5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRmxvb2RF
bGVtZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTQ2LDcgKzQ2LDcgQEAKICAgICAgICAgdmlydHVh
bCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7
IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHRkVGbG9vZEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCiAgICAg
ICAgIG11dGFibGUgS0NhbnZhc0ZFRmxvb2QgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00NiwxMyArNDYsMTMgQEAKICAgICAg
ICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1
bGFyQ29uc3RhbnQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3Vi
bGUsIGRvdWJsZSwgU3BlY3VsYXJFeHBvbmVudCwgc3BlY3VsYXJFeHBvbmVudCkKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBTdXJmYWNlU2Nh
bGUsIHN1cmZhY2VTY2FsZSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0NvbG9yKiwgUmVmUHRyPFNWR0NvbG9yPiwgTGlnaHRpbmdDb2xvciwgbGlnaHRpbmdDb2xv
cikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91Ymxl
LCBLZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFgpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgS2VybmVsVW5pdExlbmd0aFks
IGtlcm5lbFVuaXRMZW5ndGhZKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBTcGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckNv
bnN0YW50KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyRXhwb25lbnQsIHNw
ZWN1bGFyRXhwb25lbnQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3VyZmFjZVNjYWxl
LCBzdXJmYWNlU2NhbGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBTVkdDb2xvciosIFJlZlB0cjxTVkdDb2xvcj4s
IExpZ2h0aW5nQ29sb3IsIGxpZ2h0aW5nQ29sb3IpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIGRvdWJs
ZSwgS2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhYKQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgZG91
YmxlLCBkb3VibGUsIEtlcm5lbFVuaXRMZW5ndGhZLCBrZXJuZWxVbml0TGVuZ3RoWSkKICAgICAg
ICAgLy9uZWVkIG90aGVyIHByb3BlcnRpZXMgaGVyZS4uLgogICAgICAgICBtdXRhYmxlIEtDYW52
YXNGRVNwZWN1bGFyTGlnaHRpbmcgKm1fZmlsdGVyRWZmZWN0OwogICAgICAgICAKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHR0VsZW1lbnQuaAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdHRWxlbWVudC5oCShBcmJlaXRza29waWUpCkBAIC00OSw3ICs0OSwxMCBAQAogCiAgICAg
cHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotICAgIH07CisgCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCkgCisgICAgIH07CiAKICAgICBjbGFzcyBTVkdEdW1teUVsZW1l
bnQgOiBwdWJsaWMgU1ZHR0VsZW1lbnQgewogICAgIHB1YmxpYzoKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oCShBcmJlaXRza29waWUpCkBA
IC0yMCw4ICsyMCw5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0j
aWZuZGVmIEtTVkdfU1ZHRWxlbWVudEluc3RhbmNlTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NW
R0VsZW1lbnRJbnN0YW5jZUxpc3RJbXBsX0gKKyNpZm5kZWYgS1NWR19TVkdFbGVtZW50SW5zdGFu
Y2VMaXN0X0gKKyNkZWZpbmUgS1NWR19TVkdFbGVtZW50SW5zdGFuY2VMaXN0X0gKKwogI2lmZGVm
IFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdMaXN0LmgiCkBAIC0yOSwxMCArMzAsMTAgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKLSAgICBjbGFzcyBTVkdFbGVtZW50SW5zdGFuY2VMaXN0
IDogcHVibGljIFNWR0xpc3Q8U1ZHRWxlbWVudEluc3RhbmNlPgorICAgIGNsYXNzIFNWR0VsZW1l
bnRJbnN0YW5jZUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxTVkdFbGVtZW50SW5zdGFuY2UqPgogICAg
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QoY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCAqY29udGV4dCA9IDApOworICAgICAgICBTVkdFbGVtZW50SW5zdGFuY2VM
aXN0KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR0VsZW1lbnRJbnN0YW5jZUxpc3QoKTsKICAgICB9
OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAkoUmV2aXNpb24g
MTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAkoQXJiZWl0
c2tvcGllKQpAQCAtNDYsOSArNDYsOSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5n
LCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUs
IGRvdWJsZSwgRHgsIGR4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
ZG91YmxlLCBkb3VibGUsIER5LCBkeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZFT2Zmc2V0RWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFT2Zmc2V0RWxlbWVudCwgZG91
YmxlLCBkb3VibGUsIER4LCBkeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0ZFT2Zmc2V0RWxlbWVudCwgZG91YmxlLCBkb3VibGUsIER5LCBkeSkKICAgICAgICAg
bXV0YWJsZSBLQ2FudmFzRkVPZmZzZXQgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKFJldmlzaW9uIDE2Mjg4KQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdC5oCShBcmJlaXRza29waWUpCkBAIC0yMCw4ICsyMCw5IEBA
CiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZH
TGVuZ3RoTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0xlbmd0aExpc3RJbXBsX0gKKyNpZm5k
ZWYgS1NWR19TVkdMZW5ndGhMaXN0X0gKKyNkZWZpbmUgS1NWR19TVkdMZW5ndGhMaXN0X0gKKwog
I2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdMaXN0LmgiCkBAIC0yOSwxMyArMzAs
MTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKLSAgICBjbGFzcyBTVkdMZW5ndGhMaXN0IDog
cHVibGljIFNWR0xpc3Q8U1ZHTGVuZ3RoPgorICAgIGNsYXNzIFNWR0xlbmd0aExpc3QgOiBwdWJs
aWMgU1ZHTGlzdDxTVkdMZW5ndGgqPgogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0xl
bmd0aExpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCA9IDApOworICAgICAgICBT
VkdMZW5ndGhMaXN0KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR0xlbmd0aExpc3QoKTsKIAotICAg
ICAgICB2b2lkIHBhcnNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcgJnZhbHVlLCBjb25zdCBTVkdT
dHlsZWRFbGVtZW50ICpjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUpOworICAgICAgICB2b2lkIHBh
cnNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcmIHZhbHVlLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50
KiBjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkoUmV2aXNpb24g
MTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCShBcmJlaXRz
a29waWUpCkBAIC03MCwxMyArNzAsMTkgQEAKICAgICAgICAgdmlydHVhbCBTVkdNYXRyaXggKmdl
dENUTSgpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwg
SGVpZ2h0LCBoZWlnaHQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhp
bnQsIGludCwgUGF0dGVyblVuaXRzLCBwYXR0ZXJuVW5pdHMpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgUGF0dGVybkNvbnRlbnRVbml0cywgcGF0dGVy
bkNvbnRlbnRVbml0cykKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R1RyYW5zZm9ybUxpc3QqLCBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4sIFBhdHRlcm5UcmFuc2Zv
cm0sIHBhdHRlcm5UcmFuc2Zvcm0pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRf
REVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xB
UkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3
Qm94LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKKworICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQs
IFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIEhlaWdodCwgaGVpZ2h0KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHUGF0dGVybkVsZW1lbnQsIGludCwgaW50LCBQYXR0ZXJuVW5pdHMsIHBhdHRlcm5Vbml0
cykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVt
ZW50LCBpbnQsIGludCwgUGF0dGVybkNvbnRlbnRVbml0cywgcGF0dGVybkNvbnRlbnRVbml0cykK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50
LCBTVkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBQYXR0ZXJuVHJh
bnNmb3JtLCBwYXR0ZXJuVHJhbnNmb3JtKQorCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ltYWdl
ICptX3RpbGU7CiAgICAgICAgIG11dGFibGUgYm9vbCBtX2lnbm9yZUF0dHJpYnV0ZUNoYW5nZXM7
CiAgICAgICAgIG11dGFibGUgS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybiAqbV9wYWludFNl
cnZlcjsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAkoUmV2aXNpb24g
MTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCShBcmJlaXRz
a29waWUpCkBAIC01NCw3ICs1NCwxMSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8qLCBSZWZQdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4sIFByZXNlcnZlQXNwZWN0
UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZP
UldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkKQorIAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHRkVJbWFnZUVsZW1lbnQsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qLCBSZWZQ
dHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZl
QXNwZWN0UmF0aW8pCisKICAgICAgICAgQ2FjaGVkSW1hZ2UgKm1fY2FjaGVkSW1hZ2U7CiAgICAg
ICAgIG11dGFibGUgS0NhbnZhc0ZFSW1hZ2UgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CkluZGV4
OiBXZWJDb3JlL2tzdmcyL2tzdmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2tzdmcu
aAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL2tzdmcuaAkoQXJiZWl0c2tvcGll
KQpAQCAtNjYsMjYgKzY2LDYgQEAKICAgICAgICAgQ09MT1JfUFJPRklMRV9SVUxFID0gNwogICAg
IH07CiAKLSAgICBlbnVtIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9UeXBlIHsKLSAgICAgICAgU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTiAgICAgPSAwLAotICAgICAgICBTVkdfUFJFU0VS
VkVBU1BFQ1RSQVRJT19OT05FICAgICAgICA9IDEsCi0gICAgICAgIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNSU5ZTUlOICAgID0gMiwKLSAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1JRFlNSU4gICAgPSAzLAotICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1J
TiAgICA9IDQsCi0gICAgICAgIFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlEICAgID0g
NSwKLSAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSUQgICAgPSA2LAotICAg
ICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JRCAgICA9IDcsCi0gICAgICAgIFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUFYICAgID0gOCwKLSAgICAgICAgU1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1JRFlNQVggICAgPSA5LAotICAgICAgICBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUFYWU1BWCAgICA9IDEwCi0gICAgfTsKLQotICAgIGVudW0gU1ZHTWVldE9yU2xp
Y2VUeXBlIHsKLSAgICAgICAgU1ZHX01FRVRPUlNMSUNFX1VOS05PV04gICAgPSAwLAotICAgICAg
ICBTVkdfTUVFVE9SU0xJQ0VfTUVFVCAgICAgICA9IDEsCi0gICAgICAgIFNWR19NRUVUT1JTTElD
RV9TTElDRSAgICAgID0gMgotICAgIH07Ci0KICAgICBlbnVtIFNWR0xlbmd0aEFkanVzdFR5cGUg
ewogICAgICAgICBMRU5HVEhBREpVU1RfVU5LTk9XTiAgICAgICAgICAgID0gMCwKICAgICAgICAg
TEVOR1RIQURKVVNUX1NQQUNJTkcgICAgICAgICAgICA9IDEsCkluZGV4OiBXZWJDb3JlL2tzdmcy
L21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNv
cmUva3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAkoQXJiZWl0c2tvcGllKQpAQCAt
MjcsNiArMjcsOCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCisjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKICNp
bmNsdWRlICJBdG9taWNTdHJpbmcuaCIKQEAgLTExNSw2ICsxMTcsMTcgQEAKICAgICByZXR1cm4g
U3RyaW5nKCk7CiB9CiAKKy8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIFdlYkNvcmU6OkZsb2F0UmVj
dAordGVtcGxhdGU8PgoraW5saW5lIEZsb2F0UmVjdCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmJh
c2VWYWx1ZTxGbG9hdFJlY3Q+KGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEF0b21p
Y1N0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAoreworICAgIEhhc2hNYXA8U3RyaW5nSW1wbCos
IEZsb2F0UmVjdD4qIHByb3BlcnR5TWFwID0gYmFzZVZhbHVlTWFwPEZsb2F0UmVjdD4oKS5nZXQo
ZWxlbWVudCk7CisgICAgaWYgKHByb3BlcnR5TWFwKQorICAgICAgICByZXR1cm4gcHJvcGVydHlN
YXAtPmdldChwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKworICAgIHJldHVybiBGbG9hdFJlY3QoKTsK
K30KKwogLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgYm9vbGVhbnMKIHRlbXBsYXRlPD4KIGlubGlu
ZSBib29sIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6YmFzZVZhbHVlPGJvb2w+KGNvbnN0IFNWR0Vs
ZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmlt
YXRlZFBhdGhEYXRhLmlkbAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRp
bmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwJKEFyYmVpdHNrb3BpZSkKQEAgLTEs
MzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi1tb2R1bGUgc3ZnCi17Ci0gIGludGVyZmFjZSBbbm9kcHRyLCBDb25kaXRpb25h
bD1TVkddIFNWR0FuaW1hdGVkUGF0aERhdGEgeyAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
UGF0aFNlZ0xpc3QgICBwYXRoU2VnTGlzdDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUGF0
aFNlZ0xpc3QgICBub3JtYWxpemVkUGF0aFNlZ0xpc3Q7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR1BhdGhTZWdMaXN0ICAgYW5pbWF0ZWRQYXRoU2VnTGlzdDsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHUGF0aFNlZ0xpc3QgICBhbmltYXRlZE5vcm1hbGl6ZWRQYXRoU2VnTGlzdDsKLSAg
fTsKLX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNv
cmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAkoQXJi
ZWl0c2tvcGllKQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFtD
b25kaXRpb25hbD1TVkddIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8geyAKLSAgICAvLyBBbGlnbm1l
bnQgVHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19VTktOT1dOICAgPSAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX05PTkUgICAgID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU4gPSAzOwotICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOID0gNDsKLSAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRCA9IDU7Ci0gICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSUQgPSA2
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZ
TUlEID0gNzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUlOWU1BWCA9IDg7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1JRFlNQVggPSA5OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVT
RVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYID0gMTA7Ci0gICAgLy8gTWVldC1vci1zbGljZSBUeXBl
cwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9VTktOT1dOICAgPSAw
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9NRUVUICA9IDE7Ci0g
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01FRVRPUlNMSUNFX1NMSUNFID0gMjsKLSAgICAg
ICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYWxpZ247Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAgICAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICB9OwotfTsKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmlkbAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsCShBcmJlaXRza29waWUpCkBAIC0xLDMyICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
bW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgW25vZHB0ciwgQ29uZGl0aW9uYWw9U1ZHXSBTVkdB
bmltYXRlZFBvaW50cyB7IAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludExpc3QgICBw
b2ludHM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCAgIGFuaW1hdGVkUG9p
bnRzOwotICB9OwotfTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdB
bmltYXRlZEJvb2xlYW4uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3Mv
aWRsL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaWRsCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNv
cmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaWRsCShBcmJlaXRz
a29waWUpCkBAIC0xLDMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgW0NvbmRp
dGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRCb29sZWFuIHsgCi0gICAgICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gYmFzZVZhbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9N
RXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhbmlt
VmFsOwotICB9OwotfTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdB
bmltYXRlZEVudW1lcmF0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRp
bmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwJKFJldmlzaW9uIDE2Mjg4KQor
KysgV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
aWRsCShBcmJlaXRza29waWUpCkBAIC0xLDMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2ZwotewotICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB7IAotICAgICAg
ICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBiYXNlVmFsOwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBhbmltVmFsOwotICB9OwotfTsKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZEludGVnZXIu
aWRsCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuaWRsCShBcmJlaXRza29waWUpCkBAIC0xLDMzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9k
dWxlIHN2ZwotewotICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRJbnRl
Z2VyIHsgCi0gICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgYmFzZVZhbDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyBhbmltVmFsOwotICB9OwotfTsKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwJKFJldmlz
aW9uIDE2Mjg4KQorKysgV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuaWRsCShBcmJlaXRza29waWUpCkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2Zwotewot
ICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRBbmdsZSB7IAotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmdsZSBiYXNlVmFsOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmdsZSBhbmltVmFsOwotICB9OwotfTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uaWRsCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3Mv
aWRsL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCShBcmJlaXRza29waWUp
CkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFs
PVNWR10gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsgCi0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gYmFzZVZhbDsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBhbmltVmFsOwotICB9OwotfTsKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkU3RyaW5n
LmlkbAkoUmV2aXNpb24gMTYyODgpCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
U1ZHQW5pbWF0ZWRTdHJpbmcuaWRsCShBcmJlaXRza29waWUpCkBAIC0xLDMzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9k
dWxlIHN2ZwotewotICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRTdHJp
bmcgeyAKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nIGJhc2VWYWw7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5n
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyBhbmltVmFsOwotICB9Owot
fTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZFJlY3Qu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmlt
YXRlZFJlY3QuaWRsCShSZXZpc2lvbiAxNjI4OCkKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3Mv
aWRsL3N2Zy9TVkdBbmltYXRlZFJlY3QuaWRsCShBcmJlaXRza29waWUpCkBAIC0xLDMyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0
ZWRSZWN0IHsgCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3QgYmFzZVZhbDsKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHUmVjdCBhbmltVmFsOwotICB9OwotfTsK
</data>
<flag name="review"
          id="3386"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10503</attachid>
            <date>2006-09-11 11:40:27 -0700</date>
            <delta_ts>2006-09-11 13:03:09 -0700</delta_ts>
            <desc>Final patch</desc>
            <filename>svg-property.diff</filename>
            <type>text/plain</type>
            <size>333697</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkzIEBACisyMDA2LTA5LTExICBOaWtvbGFzIFppbW1lcm1hbm4gIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRml4ZXM6IGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NTAKKworICAgICAgICBUaGlzIGZpbmFsbHkgZml4ZXMgdGhlIFNWR0FuaW1hdGVkKiBj
bGFzc2VzIEpTIGJpbmRpbmdzIQorCisgICAgICAgIC0gTW92ZSBhbGwgU1ZHQW5pbWF0ZWQqLmlk
bCBmaWxlcyBmcm9tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcgdG8ga3N2ZzIvc3ZnCisgICAgICAg
IC0gQWRqdXN0IFhDb2RlL1F0IGJ1aWxkIGZpbGVzIHRvIGdlbmVyYXRlIHRoZSBuZXcgaWRsIGZp
bGVzCisKKyAgICAgICAgLSBSZW1vdmUgYWxsIFNWR0FuaW1hdGVkKiBwcmltaXRpdmVzIGNwcCBp
bXBsZW1lbnRhdGlvbnMgKEFuZ2xlL0Jvb2xlYW4vQ29sb3IvRW51bWVyYXRpb24vSW50ZWdlci9M
ZW5ndGgvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZW5ndGhMaXN0L051bWJlci9OdW1iZXJMaXN0L1ByZXNlcnZlQXNw
ZWN0UmF0aW8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZWN0L1N0cmluZy9UcmFuc2Zvcm1MaXN0KQorCisgICAgICAg
IC0gUmVtb3ZlIHVubmVlZGVkIG1ldGhvZHMgZnJvbSBDb2RlR2VuZXJhdG9yLnBtIGFuZCBhZGQg
bmV3IGhlbHBlciBmdW5jdGlvbjogSXNTVkdBbmltYXRlZFR5cGUKKyAgICAgICAgLSBBZGp1c3Qg
Q29kZUdlbmVyYXRvckpTLnBtIHRvIHRoZSBuZXcgU1ZHQW5pbWF0ZWQqIHRlYXItb2ZmIGNvbmNl
cHQKKworICAgICAgICAtIEFkZCB0d28gbmV3IG1hY3JvczogQU5JTUFURURfUFJPUEVSVFlfRU1Q
VFlfREVDTEFSQVRJT05TIC8gQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMu
CisgICAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGZpeCBtdWx0aXBsZS1pbmhlcml0YW5jZSBpc3N1
ZXMgaW4gU1ZHIHdpdGggcHJvcGVydGllcywKKyAgICAgICAgICBzaW1pbGFyIGxpa2UgU1ZHVGVz
dHM6OmlzVmFsaWQoKSB3YXMgZml4ZWQuCisKKyAgICAgICAgLSBSZXdyb3RlIFNWR0xpc3QgdXNp
bmcgV1RGOjpWZWN0b3IsIGluc3RlYWQgb2YgRGVwcmVjYXRlZFB0ckxpc3QgYW5kIGtpbGxlZCBE
T01MaXN0LgorICAgICAgICAgIChTVkdBbmltYXRlZCpMaXN0cyB3b3JrIGFnYWluIG5vdykKKwor
ICAgICAgICAtIEFkanVzdCBtYWNyb3MgaW4gU1ZHRWxlbWVudCB0byBjcmVhdGUgdGhlICIqQW5p
bWF0ZWQiIHRlYXItb2ZmIGNsYXNzZXMuCisKKyAgICAgICAgLSBBZGp1c3QgYWxsIFNWRyBjbGFz
c2VzIHdoaWNoIHVzZSB0aGUgQU5JTUFURUQgbWFjcm9zIHRvIGluY2x1ZGUgdGhlIENsYXNzTmFt
ZSBhcyBmaXJzdCBwYXJhbSBpbiB0aGUgaGVhZGVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAqIGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHSW1hZ2U6OmFkanVzdFJlY3RzRm9yQXNwZWN0UmF0aW8pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBhaW50KToKKyAgICAgICAgKiBrY2FudmFzL1Jl
bmRlclNWR1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6dHJhbnNs
YXRpb25Gb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBrc3ZnMi9rc3ZnLmg6CisgICAgICAgICog
a3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZs
b2F0UmVjdCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVt
cGxhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVGVtcGxhdGU6On5TVkdBbmlt
YXRlZFRlbXBsYXRlKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5o
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQpOgorICAgICAgICAoU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OnRyYW5z
ZmVyRnVuY3Rpb24pOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50Lmg6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNl
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50SW5zdGFuY2VMaXN0OjpTVkdF
bGVtZW50SW5zdGFuY2VMaXN0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmg6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudCk6CisgICAgICAgIChTVkdGRUNvbG9yTWF0cml4
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQ6OmZpbHRlckVmZmVjdCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5o
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Lmg6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50Lmg6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1Zp
ZXdCb3g6OlNWR0ZpdFRvVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdC
b3g6OnBhcnNlVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnZp
ZXdCb3hUb1ZpZXdUcmFuc2Zvcm0pOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR0dyYWRpZW50RWxlbWVudDo6U1ZHR3Jh
ZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50Lmg6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdIZWxwZXI6OlBlcmNlbnRhZ2VPZlZpZXdwb3J0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
SW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xlbmd0aC5jcHA6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhM
aXN0OjpwYXJzZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xpc3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RCYXNlOjpTVkdMaXN0QmFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0QmFzZTo6flNWR0xpc3RCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RCYXNlOjpudW1iZXJPZkl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RCYXNl
OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0QmFzZTo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0QmFzZTo6Z2V0Rmlyc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdEJhc2U6OmdldExhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdEJhc2U6
OmdldEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdEJhc2U6Omluc2VydEl0ZW1CZWZv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdEJhc2U6OnJlcGxhY2VJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xpc3RCYXNlOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RCYXNlOjphcHBlbmRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3Q6Om51
bGxJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xv
Y2F0YWJsZS5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHTWFza0VsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHTnVtYmVyTGlzdC5jcHA6CisgICAgICAgIChTVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0
KToKKyAgICAgICAgKFNWR051bWJlckxpc3Q6OnBhcnNlKToKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHTnVtYmVyTGlzdC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6cGF0aFNlZ0xpc3QpOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQ
YXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6U1ZHUGF0
aFNlZ0xpc3QpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXR0ZXJuRWxlbWVudDo6U1ZHUGF0dGVybkVsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2ludExpc3Qu
Y3BwOgorICAgICAgICAoU1ZHUG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdQb2ludExpc3QuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUG9seUVsZW1l
bnQuY3BwOgorICAgICAgICAoU1ZHUG9seUVsZW1lbnQ6OnBvaW50cyk6CisgICAgICAgIChTVkdQ
b2x5RWxlbWVudDo6c3ZnUG9seVRvKToKKyAgICAgICAgKFNWR1BvbHlFbGVtZW50Ojpub3RpZnlB
dHRyaWJ1dGVDaGFuZ2UpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5oOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHA6CisgICAgICAgIChTVkdQ
b2x5Z29uRWxlbWVudDo6dG9QYXRoRGF0YSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvbHls
aW5lRWxlbWVudC5jcHA6CisgICAgICAgIChTVkdQb2x5bGluZUVsZW1lbnQ6OnRvUGF0aERhdGEp
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjopOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUmVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTY3JpcHRFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR1N0cmluZ0xpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlz
dDo6U1ZHU3RyaW5nTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0OjpyZXNl
dCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnQ6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
U3dpdGNoRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RSZWZFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR1Rlc3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjppc1ZhbGlkKToK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRF
bGVtZW50OjpTVkdUZXh0RWxlbWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRFbGVt
ZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3Bw
OgorICAgICAgICAoU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCk6CisgICAgICAgIChTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAg
IChTVkdUcmFuc2Zvcm1MaXN0OjpTVkdUcmFuc2Zvcm1MaXN0KToKKyAgICAgICAgKFNWR1RyYW5z
Zm9ybUxpc3Q6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgpOgorICAgICAgICAoU1ZHVHJh
bnNmb3JtTGlzdDo6Y29uc29saWRhdGUpOgorICAgICAgICAoU1ZHVHJhbnNmb3JtTGlzdDo6Y29u
Y2F0ZW5hdGUpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1VSSVJlZmVyZW5jZS5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdVc2VFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6CisK
IDIwMDYtMDktMTEgIFZsYWRpbWlyIE9sZXhhICA8dmxhZGltaXIub2xleGFAZ21haWwuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTg4LDEz
ICs4OCwxMyBAQAogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogICAgIG15ICRkZWZpbmVzID0g
c2hpZnQ7CiAKLSAgICAjIFN0YXJ0IGFjdHVhbCBnZW5lcmF0aW9uLi4KKyAgICAjIFN0YXJ0IGFj
dHVhbCBnZW5lcmF0aW9uCiAgICAgJG9iamVjdC0+R2VuZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsK
ICAgICAkb2JqZWN0LT5HZW5lcmF0ZUltcGxlbWVudGF0aW9uKCRkYXRhTm9kZSk7Ci0gICAgCisK
ICAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAgICAKLSAgICAjIE9wZW4gZmlsZXMg
Zm9yIHdyaXRpbmcuLi4KKworICAgICMgT3BlbiBmaWxlcyBmb3Igd3JpdGluZwogICAgIG15ICRo
ZWFkZXJGaWxlTmFtZSA9ICIkb3V0cHV0RGlyL0pTJG5hbWUuaCI7CiAgICAgbXkgJGltcGxGaWxl
TmFtZSA9ICIkb3V0cHV0RGlyL0pTJG5hbWUuY3BwIjsKICAgICAKQEAgLTE0Myw2ICsxNDMsMjAg
QEAKICAgICB9CiB9CiAKK3N1YiBBdm9pZEluY2x1c2lvbk9mVHlwZQoreworICAgIG15ICR0eXBl
ID0gc2hpZnQ7CisKKyAgICAjIFNwZWNpYWwgY2FzZTogU1ZHUmVjdC5oIC8gU1ZHUG9pbnQuaCAv
IFNWR051bWJlci5oIGRvIG5vdCBleGlzdC4KKyAgICBpZiAoJHR5cGUgZXEgIlNWR1JlY3QiIG9y
CisgICAgICAgICR0eXBlIGVxICJTVkdQb2ludCIgb3IKKyAgICAgICAgJHR5cGUgZXEgIlNWR051
bWJlciIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9Cisg
CiBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiB7CiAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoc2hpZnQpOwpAQCAtMTU3LDcgKzE3MSw3IEBACiAgICAgICAgICRpbXBs
SW5jbHVkZXN7IiR7am9pbmVkTmFtZX0uaCJ9ID0gMTsKICAgICB9IGVsc2UgewogICAgICAgICAj
IGRlZmF1bHQsIGluY2x1ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZQotICAgICAgICAkaW1wbEluY2x1
ZGVzeyIke3R5cGV9LmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7dHlwZX0uaCJ9
ID0gMSB1bmxlc3MoQXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpKTsKICAgICB9CiAKICAgICAj
IGFkZGl0aW9uYWwgaW5jbHVkZXMgKHRoaW5ncyBuZWVkZWQgdG8gY29tcGlsZSB0aGUgYmluZGlu
Z3MgYnV0IG5vdCB0aGUgaGVhZGVyKQpAQCAtMTczLDE1ICsxODcsMzcgQEAKICAgICB9CiB9CiAK
K3N1YiBBZGRJbmNsdWRlc0ZvclNWR0FuaW1hdGVkVHlwZQoreworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisgICAgJHR5cGUgPX4gcy9TVkdBbmltYXRlZC8vOyAKKworICAgIGlmICgkdHlwZSBlcSAi
U1ZHUmVjdCIgb3IKKyAgICAgICAgJHR5cGUgZXEgIlNWR1BvaW50IiBvcgorICAgICAgICAkdHlw
ZSBlcSAiU1ZHTnVtYmVyIikgeworICAgICAgJGltcGxJbmNsdWRlc3siSlNTVkckdHlwZS5oIn0g
PSAxOworICAgIH0gZWxzZSB7CisgICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgIiNpbmNs
dWRlIFwiUGxhdGZvcm1TdHJpbmcuaFwiXG4iKSBpZigkdHlwZSBlcSAiU3RyaW5nIik7CisgICAg
fQorfQorCitzdWIgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKK3sKKyAgICBteSAkaW1wbENsYXNz
TmFtZSA9IHNoaWZ0OworCisgICAgIyBTVkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLi4gYXJl
IHR5cGVkZWZzIHRvIFNWR0FuaW10YXRlZFRlbXBsYXRlLCBzbyBkb24ndCB1c2UgY2xhc3MgZm9y
d2FyZHMgZm9yIHRoZW0hCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICRpbXBsQ2xh
c3NOYW1lO1xuXG4iKSB1bmxlc3MoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRp
bXBsQ2xhc3NOYW1lKSk7Cit9CisKIHN1YiBHZW5lcmF0ZUhlYWRlcgogewogICAgIG15ICRvYmpl
Y3QgPSBzaGlmdDsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICAKKwogICAgIG15ICRp
bnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSAiSlMk
aW50ZXJmYWNlTmFtZSI7CiAgICAgbXkgJGltcGxDbGFzc05hbWUgPSAkaW50ZXJmYWNlTmFtZTsK
LSAgICAKKwogICAgICMgV2Ugb25seSBzdXBwb3J0IG11bHRpcGxlIHBhcmVudHMgd2l0aCBTVkcg
KGZvciBub3cpLgogICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAxKSB7CiAgICAgICAg
IGRpZSAiQSBjbGFzcyBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUgcGFyZW50IiB1bmxlc3MgJGlu
dGVyZmFjZU5hbWUgPX4gL1NWRy87CkBAIC0yMjMsOCArMjU5LDggQEAKICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiXG5uYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIpOwogICAgIAogICAgICMgSW1w
bGVtZW50YXRpb24gY2xhc3MgZm9yd2FyZCBkZWNsYXJhdGlvbgotICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJjbGFzcyAkaW1wbENsYXNzTmFtZTtcblxuIik7Ci0gICAgCisgICAgQWRkQ2xhc3NG
b3J3YXJkSWZOZWVkZWQoJGltcGxDbGFzc05hbWUpOworCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlv
bgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkY2xhc3NOYW1lIDogcHVibGljICRw
YXJlbnRDbGFzc05hbWUge1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpc
biIpOwpAQCAtNDM3LDcgKzQ3Myw3IEBACiB7CiAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgbXkg
JGRhdGFOb2RlID0gc2hpZnQ7Ci0gIAorCiAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2Rl
LT5uYW1lOwogICBteSAkY2xhc3NOYW1lID0gIkpTJGludGVyZmFjZU5hbWUiOwogICBteSAkaW1w
bENsYXNzTmFtZSA9ICRpbnRlcmZhY2VOYW1lOwpAQCAtNDU0LDkgKzQ5MCwxNCBAQAogICBwdXNo
KEBpbXBsQ29udGVudEhlYWRlciwsICIjaW5jbHVkZSBcImNvbmZpZy5oXCJcblxuIik7CiAgIAog
ICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgIiNpZmRlZiAke2NvbmRpdGlvbmFsfV9TVVBQT1JU
XG5cbiIpIGlmICRjb25kaXRpb25hbDsKKworICBpZiAoJGNsYXNzTmFtZSA9fiAvXkpTU1ZHQW5p
bWF0ZWQvKSB7CisgICAgQWRkSW5jbHVkZXNGb3JTVkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5h
bWUpOworICB9CiAgIAorICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgIiNpbmNsdWRlIFwiU1ZH
QW5pbWF0ZWRUZW1wbGF0ZS5oXCJcbiIpIGlmKCRjbGFzc05hbWUgPX4gL1NWRy8pOwogICBwdXNo
KEBpbXBsQ29udGVudEhlYWRlciwgIiNpbmNsdWRlIFwiJGNsYXNzTmFtZS5oXCJcblxuIik7Ci0K
KyAKICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRpbnRlcmZhY2VOYW1lKTsKIAogICBAaW1wbENvbnRl
bnQgPSAoKTsKQEAgLTExMDMsMjIgKzExNDQsNiBAQAogICAgIAogICAgIG15ICR0eXBlID0gJGNv
ZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRzaWduYXR1cmUtPnR5cGUpOwogCi0gICAgIyBGSVhN
RTogVGVtcG9yYXJ5IGhhY2sgdW50aWwgd2UgaW1wbGVtZW50IHRoZSBKU1NWR0FuaW1hdGVkKiBz
dHVmZi4KLQotICAgIGlmKCR0eXBlIGVxICJTVkdBbmltYXRlZFN0cmluZyIpIHsKLSAgICAgICAg
JHR5cGUgPSAiRE9NU3RyaW5nIjsKLSAgICB9IGVsc2lmKCR0eXBlIGVxICJTVkdBbmltYXRlZEJv
b2xlYW4iKSB7Ci0gICAgICAgICR0eXBlID0gImJvb2xlYW4iOwotICAgIH0gZWxzaWYoJHR5cGUg
ZXEgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24iKSB7Ci0gICAgICAgICR0eXBlID0gImxvbmciOwot
ICAgIH0gZWxzaWYoJHR5cGUgZXEgIlNWR0FuaW1hdGVkSW50ZWdlciIpIHsKLSAgICAgICAgJHR5
cGUgPSAibG9uZyI7Ci0gICAgfSBlbHNpZigkdHlwZSBlcSAiU1ZHQW5pbWF0ZWROdW1iZXIiKSB7
Ci0gICAgICAgICR0eXBlID0gImRvdWJsZSI7Ci0gICAgfSBlbHNpZigkdHlwZSBlcSAiU1ZHQW5p
bWF0ZWRMZW5ndGgiKSB7Ci0gICAgICAgICR0eXBlID0gIlNWR0xlbmd0aCI7Ci0gICAgfQotCiAg
ICAgaWYgKCR0eXBlIGVxICJib29sZWFuIikgewogICAgICAgICByZXR1cm4gImpzQm9vbGVhbigk
dmFsdWUpIjsKICAgICB9IGVsc2lmICgkdHlwZSBlcSAibG9uZyIgb3IKQEAgLTEyMjMsNiArMTI0
OCwxMyBAQAogICAgICAgICAkam9pbmVkTmFtZSA9fiBzL0Fic3xSZWwvLzsKICAgICAgICAgJGlt
cGxJbmNsdWRlc3siJGpvaW5lZE5hbWUuaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuICJ0b0pTKGV4
ZWMsICR2YWx1ZSkiOworICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVk
VHlwZSgkdHlwZSkpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAxOwor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOworICAgICAgICAkdGVtcFZhbHVl
ID0gJHZhbHVlOworICAgICAgICAkdGVtcFZhbHVlID1+IHMvXChcKS8vOworICAgICAgICAkdGVt
cFZhbHVlIC49ICJBbmltYXRlZCgpIjsKKyAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICR0ZW1w
VmFsdWUpIjsKICAgICB9CiAKICAgICAjIERlZmF1bHQsIGluY2x1ZGUgaGVhZGVyIHdpdGggc2Ft
ZSBuYW1lLgpAQCAtMTI1MSw3ICsxMjgzLDcgQEAKICAgICBteSAkY29sbGlzaW9ucyA9IDA7CiAg
ICAgbXkgJG51bUVudHJpZXMgPSAkc2l6ZTsKICAgICAKLSAgICAjIENvbGxlY3QgaGFzaHRhYmxl
IGluZm9ybWF0aW9uLi4uCisgICAgIyBDb2xsZWN0IGhhc2h0YWJsZSBpbmZvcm1hdGlvbgogICAg
IG15ICRpID0gMDsKICAgICBmb3JlYWNoKEB7JGtleXN9KSB7CiAgICAgICAgIG15ICRkZXB0aCA9
IDA7CkBAIC0xMjgwLDcgKzEzMTIsNyBAQAogICAgICAgICAkI3RhYmxlID0gJHNpemUgLSAxOwog
ICAgIH0KICAgICAKLSAgICAjIFN0YXJ0IG91dHB1dGluZyB0aGUgaGFzaHRhYmxlcy4uLgorICAg
ICMgU3RhcnQgb3V0cHV0aW5nIHRoZSBoYXNodGFibGVzCiAgICAgbXkgJG5hbWVFbnRyaWVzID0g
IiR7bmFtZX1FbnRyaWVzIjsKICAgICAkbmFtZUVudHJpZXMgPX4gcy86L18vZzsKICAgICAKQEAg
LTEzMDMsNyArMTMzNSw3IEBACiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLyogSGFzaCB0
YWJsZSAqL1xuIik7CiAgICAgfQogICAgIAotICAgICMgRHVtcCB0aGUgaGFzaCB0YWJsZS4uLgor
ICAgICMgRHVtcCB0aGUgaGFzaCB0YWJsZQogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5zdGF0
aWMgY29uc3QgSGFzaEVudHJ5ICRuYW1lRW50cmllc1xbXF0gPVxuXHtcbiIpOwogICAgIAogICAg
ICRpID0gMDsKQEAgLTE0MDQsNyArMTQzNiwxMCBAQAogICAgICAgICBwcmludCAkSU1QTCBAaW1w
bENvbnRlbnRIZWFkZXI7CiAgICAgICAgIAogICAgICAgICBmb3JlYWNoIG15ICRpbXBsSW5jbHVk
ZSAoc29ydCBrZXlzKCVpbXBsSW5jbHVkZXMpKSB7Ci0gICAgICAgICAgICBwcmludCAkSU1QTCAi
I2luY2x1ZGUgXCIkaW1wbEluY2x1ZGVcIlxuIjsKKyAgICAgICAgICAgIG15ICRjaGVja1R5cGUg
PSAkaW1wbEluY2x1ZGU7CisgICAgICAgICAgICAkY2hlY2tUeXBlID1+IHMvXC5oLy87CisgICAg
CisgICAgICAgICAgICBwcmludCAkSU1QTCAiI2luY2x1ZGUgXCIkaW1wbEluY2x1ZGVcIlxuIiB1
bmxlc3MoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRjaGVja1R5cGUpKTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgcHJpbnQgJElNUEwgQGltcGxDb250ZW50OwpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJldmlzaW9uIDE2
MzAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtp
bmcgY29weSkKQEAgLTMyLDEyICszMiwxNyBAQAogCiBteSAkY29kZUdlbmVyYXRvciA9IDA7CiAK
LSMgVXNlZCB0byBtYXAgYmV0d2VlbiBtb2R1bGVzICYgbmFtZXNwYWNlcwotbXkgJW1vZHVsZU5h
bWVzcGFjZUhhc2g7CitteSAlcHJpbWl0aXZlVHlwZUhhc2ggPSAoImludCIgPT4gMSwgInNob3J0
IiA9PiAxLCAibG9uZyIgPT4gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgInVuc2lnbmVk
IGludCIgPT4gMSwgInVuc2lnbmVkIHNob3J0IiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICJ1bnNpZ25lZCBsb25nIiA9PiAxLCAiZmxvYXQiID0+IDEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgImRvdWJsZSIgPT4gMSwgImJvb2xlYW4iID0+IDEsICJ2b2lkIiA9PiAxKTsKIAot
IyBVc2VkIHRvIG1hcCBiZXR3ZWVuIG1vZHVsZXMgYW5kIHRoZWlyIGltcGxlbWVudGF0aW9uIG5h
bWVzcGFjZXMKLW15ICVtb2R1bGVJbXBsZW1lbnRhdGlvbk5hbWVzcGFjZUhhc2g7Ci0KK215ICVz
dmdBbmltYXRlZFR5cGVIYXNoID0gKCJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0
ZWRCb29sZWFuIiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVk
RW51bWVyYXRpb24iID0+IDEsICJTVkdBbmltYXRlZEludGVnZXIiID0+IDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWRMZW5ndGgiID0+IDEsICJTVkdBbmltYXRlZE51
bWJlciIgPT4gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8iID0+IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ZHQW5p
bWF0ZWRSZWN0IiA9PiAxLCAiU1ZHQW5pbWF0ZWRTdHJpbmciID0+IDEpOworICAgIAogIyBIZWxw
ZXJzIGZvciAnU2NhbkRpcmVjdG9yeScKIG15ICRlbmRDb25kaXRpb24gPSAwOwogbXkgJGZvdW5k
RmlsZW5hbWUgPSAiIjsKQEAgLTc0LDcgKzc5LDcgQEAKICAgCiAgICAgbXkgJGlmYWNlTmFtZSA9
ICJDb2RlR2VuZXJhdG9yIiAuICR1c2VHZW5lcmF0b3I7CiAKLSAgICAjIER5bmFtaWNhbGx5IGxv
YWQgZXh0ZXJuYWwgY29kZSBnZW5lcmF0aW9uIHBlcmwgbW9kdWxlLi4uCisgICAgIyBEeW5hbWlj
YWxseSBsb2FkIGV4dGVybmFsIGNvZGUgZ2VuZXJhdGlvbiBwZXJsIG1vZHVsZQogICAgIHJlcXVp
cmUgJGlmYWNlTmFtZSAuICIucG0iOwogICAgICRjb2RlR2VuZXJhdG9yID0gJGlmYWNlTmFtZS0+
bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXllck9uVG9wKTsKICAgICB1bmxlc3Mg
KGRlZmluZWQoJGNvZGVHZW5lcmF0b3IpKSB7CkBAIC0xMDQsNyArMTA5LDYgQEAKIAogICAgIG15
ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkdG9w
QmFzZUNsYXNzID0gIiI7CiAKICAgICBteSBAcGFyZW50cyA9IEB7JGRhdGFOb2RlLT5wYXJlbnRz
fTsKICAgICBteSAkcGFyZW50c01heCA9IEB7JGRhdGFOb2RlLT5wYXJlbnRzfTsKQEAgLTE0Miwx
NCArMTQ2LDE0IEBACiAgICAgICAgICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgk
Zm91bmRGaWxlbmFtZSwgIiIpOwogCiAgICAgICAgICAgICBmb3JlYWNoIG15ICRjbGFzcyAoQHsk
ZG9jdW1lbnQtPmNsYXNzZXN9KSB7Ci0gICAgICAgICAgICAgICAgIyBTdGVwICMzOiBDb2xsZWN0
IGNvbnN0YW50cyAmIGZ1bmN0aW9ucyAmIGF0dHJpYnV0ZXMgb2YgdGhpcyBwYXJlbnQtY2xhc3Mu
Li4KKyAgICAgICAgICAgICAgICAjIFN0ZXAgIzM6IENvbGxlY3QgY29uc3RhbnRzICYgZnVuY3Rp
b25zICYgYXR0cmlidXRlcyBvZiB0aGlzIHBhcmVudC1jbGFzcwogICAgICAgICAgICAgICAgIG15
ICRjb25zdGFudHNNYXggPSBAeyRjbGFzcy0+Y29uc3RhbnRzfTsKICAgICAgICAgICAgICAgICBt
eSAkZnVuY3Rpb25zTWF4ID0gQHskY2xhc3MtPmZ1bmN0aW9uc307CiAgICAgICAgICAgICAgICAg
bXkgJGF0dHJpYnV0ZXNNYXggPSBAeyRjbGFzcy0+YXR0cmlidXRlc307CiAKICAgICAgICAgICAg
ICAgICBwcmludCAiICB8ICB8PiAgLT4gSW5oZXJ0aW5nICRjb25zdGFudHNNYXggY29uc3RhbnRz
LCAkZnVuY3Rpb25zTWF4IGZ1bmN0aW9ucywgJGF0dHJpYnV0ZXNNYXggYXR0cmlidXRlcy4uLlxu
ICB8ICB8PlxuIjsKIAotICAgICAgICAgICAgICAgICMgU3RlcCAjNDogQ29uY2F0ZW5hdGUgZGF0
YS4uLgorICAgICAgICAgICAgICAgICMgU3RlcCAjNDogQ29uY2F0ZW5hdGUgZGF0YQogICAgICAg
ICAgICAgICAgIGZvcmVhY2ggKEB7JGNsYXNzLT5jb25zdGFudHN9KSB7CiAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQCRjb25zdGFudHNSZWYsICRfKTsKICAgICAgICAgICAgICAgICB9CkBAIC0x
NjIsNyArMTY2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgcHVzaChAJGF0dHJpYnV0ZXNSZWYs
ICRfKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAjIFN0ZXAgIzQ6IEVu
dGVyIHJlY3Vyc2l2ZSBwYXJlbnQgc2VhcmNoLi4uCisgICAgICAgICAgICAgICAgIyBTdGVwICM0
OiBFbnRlciByZWN1cnNpdmUgcGFyZW50IHNlYXJjaAogICAgICAgICAgICAgICAgIEFkZE1ldGhv
ZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJG9iamVjdCwgJGNsYXNz
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKQEAgLTE3MCwyMzkgKzE3NCwyNCBA
QAogICAgICAgICB9CiAgICAgfQogfQotIAorCiAjIEhlbHBlciBmb3IgYWxsIENvZGVHZW5lcmF0
b3IqKioucG0gbW9kdWxlcwotc3ViIEZpbmRUb3BCYXNlQ2xhc3MKK3N1YiBJc1ByaW1pdGl2ZVR5
cGUKIHsKLSAgICAjIElmIHlvdSBhcmUgcHJvY2Vzc2luZyB0aGUgJ0F0dHInIGludGVyZmFjZSwg
aXQgaGFzIHRoZSBzaW5nbGUKLSAgICAjIHBhcmVudCBpbnRlcmZhY2UgJ05vZGUnLCB3aGljaCBp
cyB0aGUgdG9wbW9zdCBiYXNlIGNsYXNzLiBSZXR1cm4gaXQuCi0gICAgIwotICAgICMgSXQgZ2V0
cyB0cmlja2llciBmb3IgaWUuIHRoZSAnUGxhdGZvcm1Nb3VzZUV2ZW50JyBpbnRlcmZhY2UsIHdo
b3NlIHBhcmVudCBpcwotICAgICMgdGhlICdVSUV2ZW50JyBpbnRlcmZhY2UsIHdob3NlIHBhcmVu
dCBpcyB0aGUgJ0V2ZW50JyBpbnRlcmZhY2UuIFJldHVybiBpdC4KICAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZSA9IFN0cmlwTW9kdWxlKHNoaWZ0KTsKLSAgICBteSAk
dG9wQmFzZUNsYXNzID0gIiI7Ci0gIAotICAgICMgTG9vcCB1bnRpbCB3ZSBmb3VuZCB0aGUgdG9w
IG1vc3QgYmFzZSBjbGFzcyBmb3IgJ2ludGVyZmFjZScKLSAgICB3aGlsZSgkaW50ZXJmYWNlIG5l
ICIiKSB7Ci0gICAgICAgICMgU3RlcCAjMTogRmluZCB0aGUgSURMIGZpbGUgYXNzb2NpYXRlZCB3
aXRoICdpbnRlcmZhY2UnCi0gICAgICAgICRlbmRDb25kaXRpb24gPSAwOyAkZm91bmRGaWxlbmFt
ZSA9ICIiOworICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICAgICAgZm9yZWFjaCAoQHskdXNl
RGlyZWN0b3JpZXN9KSB7Ci0gICAgICAgICAgICAkb2JqZWN0LT5TY2FuRGlyZWN0b3J5KCIkaW50
ZXJmYWNlLmlkbCIsICRfLCAkXywgMCkgaWYgJGZvdW5kRmlsZW5hbWUgZXEgIiI7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoJGZvdW5kRmlsZW5hbWUgbmUgIiIpIHsKLSAgICAgICAgICAgIHBy
aW50ICIgIHwgIHw+ICBQYXJzaW5nIHBhcmVudCBJREwgXCIkZm91bmRGaWxlbmFtZVwiIGZvciBp
bnRlcmZhY2UgXCIkaW50ZXJmYWNlXCJcbiI7Ci0KLSAgICAgICAgICAgICMgU3RlcCAjMjogUGFy
c2UgdGhlIGZvdW5kIElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KLSAgICAgICAgICAgIG15ICRw
YXJzZXIgPSBJRExQYXJzZXItPm5ldygxKTsKLSAgICAgICAgICAgIG15ICRkb2N1bWVudCA9ICRw
YXJzZXItPlBhcnNlKCRmb3VuZEZpbGVuYW1lKTsKLQotICAgICAgICAgICAgIyBTdGVwICMzOiBD
aGVjayB3aGV0ZXIgdGhlIHBhcnNlZCBJREwgZmlsZSBoYXMgcGFyZW50cwotICAgICAgICAgICAg
Zm9yZWFjaCBteSAkY2xhc3MgKEB7JGRvY3VtZW50LT5jbGFzc2VzfSkgewotICAgICAgICAgICAg
ICAgIG15ICR1c2VJbnRlcmZhY2UgPSAkaW50ZXJmYWNlOwotCi0gICAgICAgICAgICAgICAgaWYg
KCRjbGFzcy0+bmFtZSBlcSAkdXNlSW50ZXJmYWNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG15
IEBwYXJlbnRzID0gQHskY2xhc3MtPnBhcmVudHN9OwotICAgICAgICAgICAgICAgICAgICBteSAk
cGFyZW50c01heCA9IEB7JGNsYXNzLT5wYXJlbnRzfTsKLQotICAgICAgICAgICAgICAgICAgICAk
aW50ZXJmYWNlID0gIiI7Ci0KLSAgICAgICAgICAgICAgICAgICAgIyBFeGNlcHRpb246IEZvciB0
aGUgRE9NICdOb2RlJyBpcyBvdXIgdG9wbW9zdCBiYXNlY2xhc3MsIG5vdCBFdmVudFRhcmdldC4K
LSAgICAgICAgICAgICAgICAgICAgaWYgKCgkcGFyZW50c01heCA+IDApIGFuZCAoJHBhcmVudHNb
MF0gbmUgImV2ZW50czo6RXZlbnRUYXJnZXQiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
JGludGVyZmFjZSA9IFN0cmlwTW9kdWxlKCRwYXJlbnRzWzBdKTsKLSAgICAgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoISRjbGFzcy0+bm9EUHRyRmxhZykgeyAjIEluY2x1ZGUgJ21vZHVsZScgLi4u
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkdG9wQmFzZUNsYXNzID0gJGRvY3VtZW50LT5tb2R1
bGUgLiAiOjoiIC4gJGNsYXNzLT5uYW1lOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZGllKCJDb3VsZCBOT1QgZmluZCBzcGVjaWZpZWQgcGFyZW50IGludGVyZmFjZSBcIiRpbnRlcmZh
Y2VcIiFcbiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuICR0b3BCYXNlQ2xhc3M7
CisgICAgcmV0dXJuIDEgaWYgKCRwcmltaXRpdmVUeXBlSGFzaHskdHlwZX0pOworICAgIHJldHVy
biAwOwogfQogCi0jIEhlbHBlciBmb3IgYWxsIElETENvZGVHZW5lcmF0b3IqKioucG0gbW9kdWxl
cwotc3ViIENsYXNzSGFzV3JpdGVhYmxlQXR0cmlidXRlcworc3ViIElzU1ZHQW5pbWF0ZWRUeXBl
CiB7Ci0gICAgIyBEZXRlcm1pbmUgd2hldGVyIGEgZ2l2ZW4gaW50ZXJmYWNlIGhhcyBhbnkgd3Jp
dGVhYmxlIGF0dHJpYnV0ZXMuLi4KICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGlu
dGVyZmFjZSA9IFN0cmlwTW9kdWxlKHNoaWZ0KTsKLSAgICBteSAkaGFzV3JpdGVhYmxlQXR0cmli
dXRlcyA9IDA7Ci0KLSAgICAjIFN0ZXAgIzE6IEZpbmQgdGhlIElETCBmaWxlIGFzc29jaWF0ZWQg
d2l0aCAnaW50ZXJmYWNlJwotICAgICRlbmRDb25kaXRpb24gPSAwOwotICAgICRmb3VuZEZpbGVu
YW1lID0gIiI7Ci0KLSAgICBmb3JlYWNoIChAeyR1c2VEaXJlY3Rvcmllc30pIHsKLSAgICAgICAg
JG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiJGludGVyZmFjZS5pZGwiLCAkXywgJF8sIDApIGlmICRm
b3VuZEZpbGVuYW1lIGVxICIiOwotICAgIH0KLQotICAgICMgU3RlcCAjMjogUGFyc2UgdGhlIGZv
dW5kIElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KLSAgICBteSAkcGFyc2VyID0gSURMUGFyc2Vy
LT5uZXcoMSk7Ci0gICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGZvdW5kRmlsZW5h
bWUpOwotCi0gICAgIyBTdGVwICMzOiBDaGVjayB3aGV0ZXIgdGhlIHBhcnNlZCBJREwgZmlsZSBo
YXMgcGFyZW50cwotICAgIGZvcmVhY2ggbXkgJGNsYXNzIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30p
IHsKLSAgICAgICAgaWYgKCRjbGFzcy0+bmFtZSBlcSAkaW50ZXJmYWNlKSB7Ci0gICAgICAgICAg
ICBmb3JlYWNoIChAeyRjbGFzcy0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgICAgICAgICAkaGFz
V3JpdGVhYmxlQXR0cmlidXRlcyA9IDEgaWYgKCRfLT50eXBlIG5lICJyZWFkb25seSBhdHRyaWJ1
dGUiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAkaGFz
V3JpdGVhYmxlQXR0cmlidXRlczsKLX0KLQotIyBIZWxwZXIgZm9yIGFsbCBJRExDb2RlR2VuZXJh
dG9yKioqLnBtIG1vZHVsZXMKLXN1YiBBbGxDbGFzc2VzV2hpY2hJbmhlcml0RnJvbQotewotICAg
ICMgRGV0ZXJtaW5lIHdoaWNoIGludGVyZmFjZXMgaW5oZXJpdCBmcm9tIHRoZSBwYXNzZWQgb25l
Li4uCi0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotCi0gICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0
OwotICAgICRpbnRlcmZhY2UgPX4gcy8oW2EtekEtWjAtOV0qOjopKi8vOyAjIFN0cmlwIG5hbWVz
cGFjZShzKS4KLQotICAgICMgU3RlcCAjMTogTG9vcCB0aHJvdWdoIGFsbCBpbmNsdWRlZCBkaXJl
Y3RvcmllcyB0byBzY2FuIGZvciBhbGwgSURMIGZpbGVzLi4uCi0gICAgbXkgQGFsbElETEZpbGVz
ID0gKCk7Ci0gICAgZm9yZWFjaCAoQHskdXNlRGlyZWN0b3JpZXN9KSB7Ci0gICAgICAgICRlbmRD
b25kaXRpb24gPSAwOwotICAgICAgICBAZm91bmRGaWxlbmFtZXMgPSAoKTsKLQotICAgICAgICAk
b2JqZWN0LT5TY2FuRGlyZWN0b3J5KCJhbGxpZGxzIiwgJF8sICRfLCAxKTsKLSAgICAgICAgZm9y
ZWFjaCAoQGZvdW5kRmlsZW5hbWVzKSB7Ci0gICAgICAgICAgICBwdXNoKEBhbGxJRExGaWxlcywg
JF8pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgIyBTdGVwICMyOiBMb29wIHRocm91Z2ggYWxs
IGZvdW5kIElETCBmaWxlcy4uLgotICAgIG15ICVjbGFzc0RhdGFDYWNoZTsKLSAgICBmb3JlYWNo
IChAYWxsSURMRmlsZXMpIHsKLSAgICAgICAgIyBTdGVwICMzOiBQYXJzZSB0aGUgZm91bmQgSURM
IGZpbGUgKGluIHF1aWV0IG1vZGUpLgotICAgICAgICBteSAkcGFyc2VyID0gSURMUGFyc2VyLT5u
ZXcoMSk7Ci0gICAgICAgIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNlKCRfKTsKLQotICAg
ICAgICAjIFN0ZXAgIzQ6IENhY2hlIHRoZSBwYXJzZWQgSURMIGRhdGFzdHJ1Y3R1cmVzLgotICAg
ICAgICBteSAkY2FjaGVIYW5kbGUgPSAkXzsgJGNhY2hlSGFuZGxlID1+IHMvLipcLyguKilcLmlk
bC8vOwotICAgICAgICAkY2xhc3NEYXRhQ2FjaGV7JDF9ID0gJGRvY3VtZW50OwotICAgIH0KLQot
ICAgIG15ICVjbGFzc0RhdGFDYWNoZUNvcHkgPSAlY2xhc3NEYXRhQ2FjaGU7ICMgUHJvdGVjdCEK
LQotICAgICMgU3RlcCAjNTogTG9vcCB0aHJvdWdoIGFsbCBjYWNoZWQgSURMIGRvY3VtZW50cy4u
LgotICAgIG15IEBjbGFzc0xpc3QgPSAoKTsKLSAgICB3aGlsZSAobXkoJG5hbWUsICRkb2N1bWVu
dCkgPSBlYWNoICVjbGFzc0RhdGFDYWNoZSkgewotICAgICAgICAkZW5kQ29uZGl0aW9uID0gMDsK
LQotICAgICAgICAjIFN0ZXAgIzY6IENoZWNrIHdoZXRlciB0aGUgcGFyc2VkIElETCBmaWxlIGhh
cyBwYXJlbnRzLi4uCi0gICAgICAgICRvYmplY3QtPlJlY3Vyc2l2ZUluaGVyaXRhbmNlSGVscGVy
KCRkb2N1bWVudCwgJGludGVyZmFjZSwgXEBjbGFzc0xpc3QsIFwlY2xhc3NEYXRhQ2FjaGVDb3B5
KTsKLSAgICB9Ci0KLSAgICAjIFN0ZXAgIzc6IFJldHVybiBsaXN0IG9mIGFsbCBjbGFzc2VzIHdo
aWNoIGluaGVyaXQgZnJvbSBtZSEKLSAgICByZXR1cm4gXEBjbGFzc0xpc3Q7Ci19Ci0KLSMgSGVs
cGVyIGZvciBhbGwgSURMQ29kZUdlbmVyYXRvcioqKi5wbSBtb2R1bGVzCi1zdWIgQWxsQ2xhc3Nl
cwotewotICAgICMgRGV0ZXJtaW5lcyBhbGwgaW50ZXJmYWNlcyB3aXRoaW4gYSBwcm9qZWN0Li4u
Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotCi0gICAgIyBTdGVwICMxOiBMb29wIHRocm91Z2gg
YWxsIGluY2x1ZGVkIGRpcmVjdG9yaWVzIHRvIHNjYW4gZm9yIGFsbCBJREwgZmlsZXMuLi4KLSAg
ICBteSBAYWxsSURMRmlsZXMgPSAoKTsKLSAgICBmb3JlYWNoIChAeyR1c2VEaXJlY3Rvcmllc30p
IHsKLSAgICAgICAgJGVuZENvbmRpdGlvbiA9IDA7Ci0gICAgICAgIEBmb3VuZEZpbGVuYW1lcyA9
ICgpOwotCi0gICAgICAgICRvYmplY3QtPlNjYW5EaXJlY3RvcnkoImFsbGlkbHMiLCAkXywgJF8s
IDEpOwotICAgICAgICBmb3JlYWNoIChAZm91bmRGaWxlbmFtZXMpIHsKLSAgICAgICAgICAgIHB1
c2goQGFsbElETEZpbGVzLCAkXyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAjIFN0ZXAgIzI6
IExvb3AgdGhyb3VnaCBhbGwgZm91bmQgSURMIGZpbGVzLi4uCi0gICAgbXkgQGNsYXNzTGlzdCA9
ICgpOwotICAgIGZvcmVhY2ggKEBhbGxJRExGaWxlcykgewotICAgICAgICAjIFN0ZXAgIzM6IFBh
cnNlIHRoZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCi0gICAgICAgIG15ICRwYXJz
ZXIgPSBJRExQYXJzZXItPm5ldygxKTsKLSAgICAgICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+
UGFyc2UoJF8pOwotCi0gICAgICAgICMgU3RlcCAjNDogQ2hlY2sgaWYgY2xhc3MgaXMgYSBiYXNl
Y2xhc3MuLi4KLSAgICAgICAgZm9yZWFjaCBteSAkY2xhc3MgKEB7JGRvY3VtZW50LT5jbGFzc2Vz
fSkgewotICAgICAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkY2xhc3MtPm5hbWU7Ci0gICAgICAg
ICAgICBteSAkbmFtZXNwYWNlID0gJG1vZHVsZU5hbWVzcGFjZUhhc2h7JGRvY3VtZW50LT5tb2R1
bGV9OwotICAgICAgICAgICAgJGlkZW50aWZpZXIgPSAkbmFtZXNwYWNlIC4gIjo6IiAuICRpZGVu
dGlmaWVyIGlmICRuYW1lc3BhY2UgbmUgIiI7Ci0KLSAgICAgICAgICAgIG15IEBhcnJheSA9IGdy
ZXAgeyAvXiRpZGVudGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsKLQotICAgICAgICAgICAgbXkgJGFy
cmF5U2l6ZSA9IEBhcnJheTsKLSAgICAgICAgICAgIGlmICgkYXJyYXlTaXplIGVxIDApIHsKLSAg
ICAgICAgICAgICAgICBwdXNoKEBjbGFzc0xpc3QsICRpZGVudGlmaWVyKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgICMgU3RlcCAjNzogUmV0dXJuIGxpc3Qgb2YgYWxs
IGJhc2UgY2xhc3NlcyEKLSAgICByZXR1cm4gXEBjbGFzc0xpc3Q7Ci19Ci0KLSMgSW50ZXJuYWwg
aGVscGVyIGZvciAnQWxsQ2xhc3Nlc1doaWNoSW5oZXJpdEZyb20nCi1zdWIgUmVjdXJzaXZlSW5o
ZXJpdGFuY2VIZWxwZXIKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0KLSAgICBteSAkZG9j
dW1lbnQgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgbXkgJGNsYXNz
TGlzdCA9IHNoaWZ0OwotICAgIG15ICRjbGFzc0RhdGFDYWNoZSA9IHNoaWZ0OwotCi0gICAgcmV0
dXJuIDEgaWYgJGVuZENvbmRpdGlvbiBlcSAxOwotCi0gICAgZm9yZWFjaCBteSAkY2xhc3MgKEB7
JGRvY3VtZW50LT5jbGFzc2VzfSkgewotICAgICAgICBmb3JlYWNoIChAeyRjbGFzcy0+cGFyZW50
c30pIHsKLSAgICAgICAgICAgIG15ICRjYWNoZUhhbmRsZSA9IFN0cmlwTW9kdWxlKCRfKTsKLQot
ICAgICAgICAgICAgaWYgKCRjYWNoZUhhbmRsZSBlcSAkaW50ZXJmYWNlKSB7Ci0gICAgICAgICAg
ICAgICAgbXkgJGlkZW50aWZpZXIgPSAkZG9jdW1lbnQtPm1vZHVsZSAuICI6OiIgLiAkY2xhc3Mt
Pm5hbWU7Ci0gICAgICAgICAgICAgICAgbXkgQGFycmF5ID0gZ3JlcCB7IC9eJGlkZW50aWZpZXIk
LyB9IEAkY2xhc3NMaXN0OyBteSAkYXJyYXlTaXplID0gQGFycmF5OwotICAgICAgICAgICAgICAg
IHB1c2goQCRjbGFzc0xpc3QsICRpZGVudGlmaWVyKSBpZiAkYXJyYXlTaXplIGVxIDA7Ci0KLSAg
ICAgICAgICAgICAgICAkZW5kQ29uZGl0aW9uID0gMTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
JGVuZENvbmRpdGlvbjsKLSAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgIG15
ICVjYWNoZSA9ICV7JGNsYXNzRGF0YUNhY2hlfTsKLQotICAgICAgICAgICAgICAgIG15ICRjaGVj
a0RvY3VtZW50ID0gJGNhY2hleyRjYWNoZUhhbmRsZX07Ci0gICAgICAgICAgICAgICAgJGVuZENv
bmRpdGlvbiA9ICRvYmplY3QtPlJlY3Vyc2l2ZUluaGVyaXRhbmNlSGVscGVyKCRjaGVja0RvY3Vt
ZW50LCAkaW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2xhc3NMaXN0LCAkY2xhc3NEYXRhQ2FjaGUp
OwotICAgICAgICAgICAgICAgIGlmICgkZW5kQ29uZGl0aW9uIGVxIDEpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkZG9jdW1lbnQtPm1vZHVsZSAuICI6OiIgLiAkY2xh
c3MtPm5hbWU7Ci0gICAgICAgICAgICAgICAgICAgIG15IEBhcnJheSA9IGdyZXAgeyAvXiRpZGVu
dGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsgbXkgJGFycmF5U2l6ZSA9IEBhcnJheTsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAJGNsYXNzTGlzdCwgJGlkZW50aWZpZXIpIGlmICRhcnJheVNpemUg
ZXEgMDsKLQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGVuZENvbmRpdGlvbjsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1
cm4gJGVuZENvbmRpdGlvbjsKLX0KLQotIyBIZWxwZXIgZm9yIGFsbCBDb2RlR2VuZXJhdG9yKioq
LnBtIG1vZHVsZXMKLXN1YiBJc1ByaW1pdGl2ZVR5cGUKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJp
bnQiIG9yICR0eXBlIGVxICJzaG9ydCIgb3IgJHR5cGUgZXEgImxvbmciIAotICAgICAgICAgICAg
ICAgIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9y
dCIKLSAgICAgICAgICAgICAgICBvciAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUg
ZXEgImZsb2F0IiBvciAkdHlwZSBlcSAiZG91YmxlIgotICAgICAgICAgICAgICAgIG9yICR0eXBl
IGVxICJib29sZWFuIiBvciAkdHlwZSBlcSAidm9pZCI7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIDEgaWYgKCRzdmdBbmltYXRlZFR5cGVIYXNoeyR0eXBlfSk7CisgICAgcmV0dXJuIDA7IAog
fQogCiAjIEludGVybmFsIEhlbHBlcgpAQCAtNDI4LDEzICsyMTcsMTMgQEAKICAgICAgICAgIyBp
ZiB3ZSBlbmNvdW50ZXIgJ2V4b3RpYycgc3R1ZmYgKGllLiAnLicsICcuLicsICcuc3ZuJykKICAg
ICAgICAgbmV4dCBpZiAoJGVuZENvbmRpdGlvbiBlcSAxKSBvciAoJG5hbWUgPX4gL15cLi8pOwog
Ci0gICAgICAgICMgUmVjdXJpc3ZlbHkgZW50ZXIgZGlyZWN0b3J5Li4uCisgICAgICAgICMgUmVj
dXJpc3ZlbHkgZW50ZXIgZGlyZWN0b3J5CiAgICAgICAgIGlmICgtZCAkbmFtZSkgewogICAgICAg
ICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgkaW50ZXJmYWNlLCAkbmFtZSwgJHVzZURpcmVj
dG9yeSwgJHJlcG9ydEFsbEZpbGVzKTsKICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgIH0KIAot
ICAgICAgICAjIENoZWNrIHdoZXRlciB3ZSBmb3VuZCB0aGUgZGVzaXJlZCBmaWxlLi4uCisgICAg
ICAgICMgQ2hlY2sgd2hldGVyIHdlIGZvdW5kIHRoZSBkZXNpcmVkIGZpbGUKICAgICAgICAgbXkg
JGNvbmRpdGlvbiA9ICgkbmFtZSBlcSAkaW50ZXJmYWNlKTsKICAgICAgICAgJGNvbmRpdGlvbiA9
IDEgaWYgKCRpbnRlcmZhY2UgZXEgImFsbGlkbHMiKSBhbmQgKCRuYW1lID1+IC9cLmlkbCQvKTsK
IApJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIzMiw4ICsyMzIsMTYgQEAKICAgICBK
U1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKICAgICBKU1JhbmdlLmggXAogICAgIEpTU1ZHQW5n
bGUuaCBcCisgICAgSlNTVkdBbmltYXRlZEFuZ2xlLmggXAorICAgIEpTU1ZHQW5pbWF0ZWRCb29s
ZWFuLmggXAorICAgIEpTU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKyAgICBKU1NWR0FuaW1h
dGVkSW50ZWdlci5oIFwKICAgICBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggXAogICAgIEpTU1ZHQW5p
bWF0ZWROdW1iZXIuaCBcCisgICAgSlNTVkdBbmltYXRlZFBvaW50cy5oIFwKKyAgICBKU1NWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKyAgICBKU1NWR0FuaW1hdGVkUmVjdC5oIFwK
KyAgICBKU1NWR0FuaW1hdGVkU3RyaW5nLmggXAogICAgIEpTU1ZHQ29sb3IuaCBcCiAgICAgSlNT
VkdEb2N1bWVudC5oIFwKICAgICBKU1NWR0VsZW1lbnQuaCBcCkBAIC0yNjIsNiArMjcwLDcgQEAK
ICAgICBKU1NWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCiAgICAgSlNTVkdQYXRoU2VnTW92ZXRvUmVs
LmggXAogICAgIEpTU1ZHUG9pbnRUYWJsZS5jcHAgXAorICAgIEpTU1ZHUHJlc2VydmVBc3BlY3RS
YXRpby5oIFwKICAgICBKU1NWR1JlY3RUYWJsZS5jcHAgXAogICAgIEpTU1ZHU1ZHRWxlbWVudC5o
IFwKICAgICBKU1NWR1RyYW5zZm9ybS5oIFwKSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTYzMDApCisr
KyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNyArNjYsMzMg
QEAKICMgcnVsZXMgZm9yIGdlbmVyYXRlZCBmaWxlcwogSUYgKFdFQktJVF9VU0VfU1ZHX1NVUFBP
UlQpCiBzZXQoSURMX0JJTkRJTkdTX1NWRworCisjIFRoZXNlIHRocmVlIGRvbid0IG5lZWQgZ2Vu
ZXJhdGlvbiEKKyMKICMga3N2ZzIvc3ZnL1NWR051bWJlci5pZGwKICMga3N2ZzIvc3ZnL1NWR1Bv
aW50LmlkbAogIyBrc3ZnMi9zdmcvU1ZHUmVjdC5pZGwKKworIyBUT0RPOiBGaXggZ2VuZXJhdGlv
bgogIyBrc3ZnMi9zdmcvU1ZHRXZlbnQuaWRsCiAKICAga3N2ZzIvc3ZnL1NWR0FuZ2xlLmlkbAor
ICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
Qm9vbGVhbi5pZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsCisgIGtz
dmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsCisgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZExl
bmd0aC5pZGwgCisgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGwKKyMga3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkUGF0aERhdGEuaWRsCisjIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5p
ZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwKKyAga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5pZGwKKyAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkU3RyaW5n
LmlkbAorCisgIAogICBrc3ZnMi9zdmcvU1ZHTWF0cml4LmlkbAogICBrc3ZnMi9zdmcvU1ZHVHJh
bnNmb3JtLmlkbAogICBrc3ZnMi9zdmcvU1ZHTGVuZ3RoLmlkbAotICBrc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGguaWRsCi0gIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGwKICAga3N2
ZzIvc3ZnL1NWR0VsZW1lbnQuaWRsCiAgIGtzdmcyL3N2Zy9TVkdDb2xvci5pZGwKICAga3N2ZzIv
c3ZnL1NWR0RvY3VtZW50LmlkbApAQCAtMTAzLDYgKzExOSw3IEBACiAgIGtzdmcyL3N2Zy9TVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRsCiAgIGtzdmcyL3N2Zy9TVkdQYXRoU2VnTW92ZXRv
QWJzLmlkbAogICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ01vdmV0b1JlbC5pZGwKKyAga3N2ZzIvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCiApCiBFTkRJRiAoV0VCS0lUX1VTRV9TVkdfU1VQ
UE9SVCkKIApAQCAtMjQwLDggKzI1Nyw5IEBACiBjcmVhdGVfY3BwX2x1dChiaW5kaW5ncy9qcy9K
U0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUuY3Bw
IGJpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwKQogCiBJRiAoV0VCS0lUX1VT
RV9TVkdfU1VQUE9SVCkKLSAgY3JlYXRlX2NwcF9sdXQoa3N2ZzIvYmluZGluZ3MvanMvSlNTVkdQ
b2ludC5jcHAgSlNTVkdQb2ludFRhYmxlLmNwcCBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50
LmNwcCkKLSAgY3JlYXRlX2NwcF9sdXQoa3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCBK
U1NWR1JlY3RUYWJsZS5jcHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCkKKyAgICBj
cmVhdGVfY3BwX2x1dChrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5jcHAgSlNTVkdOdW1i
ZXJUYWJsZS5jcHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwKQorICAgIGNyZWF0
ZV9jcHBfbHV0KGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3BwIEpTU1ZHUG9pbnRUYWJs
ZS5jcHAga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdQb2ludC5jcHApCisgICAgY3JlYXRlX2NwcF9s
dXQoa3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCBKU1NWR1JlY3RUYWJsZS5jcHAga3N2
ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcCkKIEVORElGIChXRUJLSVRfVVNFX1NWR19TVVBQ
T1JUKQogCiBhZGRfY3VzdG9tX2NvbW1hbmQoT1VUUFVUICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllf
RElSfS90b2tlbml6ZXIuY3BwCkBAIC0zNzksNyArMzk3LDYgQEAKICAgICBrc3ZnMi9zdmcvU1ZH
RE9NSW1wbGVtZW50YXRpb24uY3BwCiAgICAga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3Bw
CiAgICAga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcv
U1ZHUG9pbnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKICAgICBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1VSSVJlZmVyZW5j
ZS5jcHAKQEAgLTM5MywyOSArNDEwLDI1IEBACiAgICAga3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCi0gICAga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybS5j
cHAKICAgICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmNwcAogICAgIGtzdmcy
L3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcAotICAgIGtzdmcyL3N2Zy9T
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCiAgICAga3N2ZzIvc3ZnL1NWR01hc2tF
bGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCiAgICAga3N2ZzIv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCiAg
ICAga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuY3BwCi0gICAga3N2ZzIvc3ZnL1NWR051bWJl
ci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHU3R5bGFibGUuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAKICMgICBr
c3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHVFNw
YW5FbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5jcHAKLSAgICBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZFRmxvb2RF
bGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQb2ludExpc3QuY3BwCi0gICAga3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCisgICAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmNwcAogICAgIGtzdmcy
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdOdW1iZXJMaXN0LmNwcApA
QCAtNDI5LDcgKzQ0Miw2IEBACiAgICAga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAogICAg
IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRU1lcmdl
Tm9kZUVsZW1lbnQuY3BwCi0gICAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAK
ICAgICBrc3ZnMi9zdmcvc3ZncGF0aHBhcnNlci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwCkBAIC00MzcsNyArNDQ5LDYgQEAKICAgICBrc3ZnMi9zdmcvU1ZHRkVJbWFnZUVsZW1l
bnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKICAg
ICBrc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRMZW5ndGguY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAog
ICAgIGtzdmcyL3N2Zy9TVkdBbmdsZS5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWMuY3BwCkBAIC00NTAsMzYgKzQ2MSwyOCBAQAogICAgIGtzdmcyL3N2Zy9TVkdT
ZXRFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKICAgICBr
c3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCi0gICAga3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
U3RyaW5nLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAotICAgIGtzdmcy
L3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHU3RyaW5nTGlzdC5j
cHAKICMgICBrc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmNwcAotICAgIGtzdmcyL3N2Zy9T
VkdSZWN0LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAogICAgIGtzdmcy
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCiAgICAg
a3N2ZzIvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRD
b2xvci5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHUGFpbnQuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAogICAgIGtzdmcy
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdTY3JpcHRF
bGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCiAgICAga3N2ZzIvc3Zn
L1NWR1ZpZXdFbGVtZW50LmNwcAotICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwCiAgICAga3N2ZzIvc3ZnL1NW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdQYXRoU2Vn
QXJjLmNwcAotICAgIGtzdmcyL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCiAgICAga3N2ZzIv
c3ZnL1NWR0Rlc2NFbGVtZW50LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNw
cAogICAgIGtzdmcyL3N2Zy9TVkdEb2N1bWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRJbnRlZ2VyLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCiAgICAg
a3N2ZzIvc3ZnL1NWR1BhdGhTZWdNb3ZldG8uY3BwCiAgICAga3N2ZzIvc3ZnL1NWR0FFbGVtZW50
LmNwcApAQCAtNDg5LDcgKzQ5Miw2IEBACiAgICAga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoLmNwcAogICAgIGtzdmcyL3N2Zy9TVkdFbGVtZW50LmNwcAogICAgIGtz
dmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKLSAgICBrc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0LmNwcAogICAgIGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxl
bWVudC5jcHAKICAgICBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAogICAgIGtzdmcy
L3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0MDcsMzcgKzE0
MDcsMTEgQEAKIAkJQTg4QUQ0MTQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuZ2xlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwMjA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHQW5nbGUuaCAqLzsgfTsKIAkJQTg4QUQ0MTUwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MDMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuY3BwICovOyB9OwogCQlBODhBRDQxNjA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThDMEY4MDQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaCAqLzsgfTsKLQkJQTg4QUQ0MTcwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1h
dGVkQW5nbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEY4MDUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQW5nbGUuY3BwICovOyB9
OwotCQlBODhBRDQxODA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MDYwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLzsgfTsKLQkJQTg4QUQ0MTkwOTUyNDhG
MDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwNzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
QW5pbWF0ZWRCb29sZWFuLmNwcCAqLzsgfTsKLQkJQTg4QUQ0MUEwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR0FuaW1hdGVkQm9vbGVhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4MDgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQm9vbGVh
bi5oICovOyB9OwotCQlBODhBRDQxQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRDb2xv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMz
Mjk0QjA5M0JCNzhDMDAwQjlDQUMgLyogU1ZHQW5pbWF0ZWRDb2xvci5jcHAgKi87IH07Ci0JCUE4
OEFENDFDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZENvbG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMzMjk0QTA5M0JCNzhDMDAwQjlD
QUMgLyogU1ZHQW5pbWF0ZWRDb2xvci5oICovOyB9OwotCQlBODhBRDQxRDA5NTI0OEYwMDAxREQx
OTYgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5jcHAgKi87IH07Ci0JCUE4OEFENDFFMDk1MjQ4RjAwMDFERDE5NiAv
KiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5oICovOyB9OwotCQlBODhBRDQxRjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5p
bWF0ZWRJbnRlZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGODBCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZEludGVnZXIuY3Bw
ICovOyB9OwotCQlBODhBRDQyMDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgw
QzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggKi87IH07Ci0JCUE4OEFE
NDIxMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwRDA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovOyB9OwotCQlBODhBRDQyMjA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODBFMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRl
ZExlbmd0aC5oICovOyB9OwotCQlBODhBRDQyMzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGODBGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3Qu
Y3BwICovOyB9OwotCQlBODhBRDQyNDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjgxMDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggKi87IH07
Ci0JCUE4OEFENDI1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZE51bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgxMTA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1iZXIuY3BwICovOyB9OwotCQlBODhBRDQyNjA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODEyMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdBbmltYXRlZE51bWJlci5oICovOyB9OwotCQlBODhBRDQyNzA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGODEzMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwICovOyB9OwotCQlBODhBRDQyODA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgxNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
LmggKi87IH07CiAJCUE4OEFENDI5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFBhdGhE
YXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGODE1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCAqLzsgfTsK
IAkJQTg4QUQ0MkEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODE2MDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggKi87IH07CiAJCUE4OEFENDJCMDk1
MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgxNzA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHQW5pbWF0ZWRQb2ludHMuY3BwICovOyB9OwogCQlBODhBRDQyQzA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHQW5pbWF0ZWRQb2ludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGODE4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBvaW50
cy5oICovOyB9OwotCQlBODhBRDQyRDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGODE5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uY3BwICovOyB9OwotCQlBODhBRDQyRTA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgxQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi87IH07Ci0JCUE4OEFENDJGMDk1MjQ4RjAwMDFERDE5
NiAvKiBTVkdBbmltYXRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThDMEY4MUIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUmVj
dC5jcHAgKi87IH07Ci0JCUE4OEFENDMwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFJl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
ODFDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFJlY3QuaCAqLzsgfTsKLQkJQTg4QUQ0
MzEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODFEMDg5NzAxRjMwMEJBNTEx
NCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi87IH07Ci0JCUE4OEFENDMyMDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdBbmltYXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MUUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVk
U3RyaW5nLmggKi87IH07CiAJCUE4OEFENDMzMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRl
ZFRlbXBsYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEMwRjgxRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oICovOyB9
OwotCQlBODhBRDQzNDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
ODIwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwICovOyB9
OwotCQlBODhBRDQzNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgy
MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi87IH07CiAJ
CUE4OEFENDM2MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgyMjA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovOyB9OwogCQlBODhBRDQzNzA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODIzMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdB
bmltYXRlRWxlbWVudC5oICovOyB9OwogCQlBODhBRDQzODA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MjQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmNwcCAqLzsgfTsKQEAgLTE1NDMsOCArMTUxNyw2IEBACiAJCUE4OEFE
NEExMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdNYXJrZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4MzA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHTWFya2VyRWxlbWVudC5oICovOyB9OwogCQlBODhBRDRBMjA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHTWF0cml4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGODg0MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdNYXRyaXguY3BwICovOyB9Owog
CQlBODhBRDRBMzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4NTA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHTWF0cml4LmggKi87IH07Ci0JCUE4OEFENEE0MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdO
dW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY4ODYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlci5jcHAgKi87IH07Ci0JCUE4OEFE
NEE1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODg3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdO
dW1iZXIuaCAqLzsgfTsKIAkJQTg4QUQ0QTYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR051bWJlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY4ODgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlckxpc3QuY3BwICovOyB9OwogCQlBODhB
RDRBNzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4ODkwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR051bWJlckxpc3QuaCAqLzsgfTsKIAkJQTg4QUQ0QTgwOTUyNDhGMDAwMUREMTk2IC8qIFNW
R1BhaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGODhBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYWludC5jcHAgKi87IH07CkBAIC0xNTc5
LDggKzE1NTEsNiBAQAogCQlBODhBRDRDNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ01v
dmV0by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY4QTcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdGhTZWdNb3ZldG8uaCAqLzsgfTsKIAkJQTg4
QUQ0QzYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdHRlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOEE4MDg5NzAxRjQwMEJB
NTExNCAvKiBTVkdQYXR0ZXJuRWxlbWVudC5jcHAgKi87IH07CiAJCUE4OEFENEM3MDk1MjQ4RjAw
MDFERDE5NiAvKiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QTkwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdHRl
cm5FbGVtZW50LmggKi87IH07Ci0JCUE4OEFENEM4MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2lu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
RjhBQTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnQuY3BwICovOyB9OwotCQlBODhBRDRDOTA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOEFCMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludC5o
ICovOyB9OwogCQlBODhBRDRDQTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnRMaXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOEFDMDg5
NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludExpc3QuY3BwICovOyB9OwogCQlBODhBRDRDQjA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhBRDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnRM
aXN0LmggKi87IH07CiAJCUE4OEFENENDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2x5RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
RjhBRTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9seUVsZW1lbnQuY3BwICovOyB9OwpAQCAtMTU5
NSw4ICsxNTY1LDYgQEAKIAkJQTg4QUQ0RDUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEY4QjcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oICovOyB9OwogCQlBODhBRDRENjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUmVjdEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4
QjgwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTg4QUQ0
RDcwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhCOTA4OTcwMUY0MDBCQTUxMTQgLyog
U1ZHUmVjdEVsZW1lbnQuaCAqLzsgfTsKLQkJQTg4QUQ0RDgwOTUyNDhGMDAwMUREMTk2IC8qIFNW
R1JlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY4QkEwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3QuY3BwICovOyB9OwotCQlBODhBRDRE
OTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QkIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3Qu
aCAqLzsgfTsKIAkJQTg4QUQ0REEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1NjcmlwdEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4
QkMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwICovOyB9OwogCQlBODhB
RDREQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4QkQwODk3MDFGNDAwQkE1MTE0
IC8qIFNWR1NjcmlwdEVsZW1lbnQuaCAqLzsgfTsKIAkJQTg4QUQ0REMwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR1NldEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4QkUwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NldEVsZW1lbnQuY3Bw
ICovOyB9OwpAQCAtMTY0OCw3ICsxNjE2LDYgQEAKIAkJQTg4QUQ1MEIwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR1pvb21BbmRQYW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4RUIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1pvb21BbmRQYW4uY3Bw
ICovOyB9OwogCQlBODhBRDUwQzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHWm9vbUFuZFBhbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RUMwODk3
MDFGNDAwQkE1MTE0IC8qIFNWR1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJQTg4QUQ1MEQwOTUyNDhG
MDAwMUREMTk2IC8qIGtzdmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGOEVEMDg5NzAxRjQwMEJBNTExNCAvKiBrc3ZnLmggKi87IH07Ci0JCUE4
OEFENTE3MDk1MjQ5OUYwMDFERDE5NiAvKiBET01MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg0MjgzRDA5MzA4QzFDMDBCNkQ0NjEgLyogRE9N
TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE4OEFENTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVC
QTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJQTg4QUQ1QUEwOTUy
NTEzMTAwMUREMTk2IC8qIFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY2RkIwODk3MDFGMTAwQkE1MTE0IC8q
IFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwICovOyB9OwogCQlBOEM0QTdGRDA5RDU2MzI3MDAwM0FD
OEQgLyogU3R5bGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDNEE3RUIwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuaCAq
LzsgfTsKQEAgLTE4MTgsNiArMTc4NSw0MSBAQAogCQlBQkRERkU3RTBBNUM2RTcwMDBBM0UxMUQg
LyogUmVuZGVyUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUJEREZFNzgwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlclBvcHVwTWVu
dU1hYy5tbSAqLzsgfTsKIAkJQUJFN0I1MjMwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJlY2F0ZWRS
ZW5kZXJTZWxlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUJFN0I1MjEwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJlY2F0ZWRSZW5kZXJTZWxlY3Qu
Y3BwICovOyB9OwogCQlBQkU3QjUyNDBBNDg5RjgzMDAzMTg4MUMgLyogRGVwcmVjYXRlZFJlbmRl
clNlbGVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUJFN0I1MjIwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJlY2F0ZWRSZW5kZXJTZWxlY3QuaCAqLzsg
fTsKKwkJQjJFOTU0NkMwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2MTBB
QjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi87IH07CisJCUIyRTk1NDZE
MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2MjBBQjVGQjdGMDA3NkRF
MzcgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbCAqLzsgfTsKKwkJQjJFOTU0NkUwQUI1RkI3RjAw
NzZERTM3IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2MzBBQjVGQjdGMDA3NkRFMzcgLyog
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwgKi87IH07CisJCUIyRTk1NDZGMEFCNUZCN0YwMDc2
REUzNyAvKiBTVkdBbmltYXRlZEludGVnZXIuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2NDBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5p
bWF0ZWRJbnRlZ2VyLmlkbCAqLzsgfTsKKwkJQjJFOTU0NzAwQUI1RkI3RjAwNzZERTM3IC8qIFNW
R0FuaW1hdGVkTGVuZ3RoLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjJFOTU0NjUwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkTGVuZ3Ro
LmlkbCAqLzsgfTsKKwkJQjJFOTU0NzEwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkTnVt
YmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJFOTU0NjYwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCAqLzsgfTsK
KwkJQjJFOTU0NzIwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2NzBB
QjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi87IH07CisJCUIyRTk1
NDczMEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZFBvaW50cy5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTk1NDY4MEFCNUZCN0YwMDc2
REUzNyAvKiBTVkdBbmltYXRlZFBvaW50cy5pZGwgKi87IH07CisJCUIyRTk1NDc0MEFCNUZCN0Yw
MDc2REUzNyAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2OTBBQjVGQjdGMDA3
NkRFMzcgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLzsgfTsKKwkJQjJF
OTU0NzUwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkUmVjdC5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTk1NDZBMEFCNUZCN0YwMDc2
REUzNyAvKiBTVkdBbmltYXRlZFJlY3QuaWRsICovOyB9OworCQlCMkU5NTQ3NjBBQjVGQjdGMDA3
NkRFMzcgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ2QjBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5p
bWF0ZWRTdHJpbmcuaWRsICovOyB9OworCQlCMkU5NTQ4RjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZH
TWV0YWRhdGFFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjJFOTU0NzcwQUI1RkJBMzAwNzZERTM3IC8qIFNWR01ldGFkYXRhRWxlbWVu
dC5pZGwgKi87IH07CisJCUIyRTk1NDkwMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoRWxlbWVu
dC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
RTk1NDc4MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoRWxlbWVudC5pZGwgKi87IH07CisJCUIy
RTk1NDkxMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnLmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0NzkwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR1BhdGhTZWcuaWRsICovOyB9OworCQlCMkU5NTQ5MjBBQjVGQkEzMDA3NkRFMzcgLyog
U1ZHUGF0aFNlZ0FyY0Ficy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyRTk1NDdBMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQXJjQWJz
LmlkbCAqLzsgfTsKKwkJQjJFOTU0OTMwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdBcmNS
ZWwuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MkU5NTQ3QjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0FyY1JlbC5pZGwgKi87IH07CisJ
CUIyRTk1NDk0MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbCBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0N0MwQUI1
RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaWRsICovOyB9OworCQlCMkU5NTQ5
NTBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTk1NDdEMEFCNUZC
QTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmlkbCAqLzsgfTsKKwkJQjJF
OTU0OTYwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ3RTBB
QjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5pZGwgKi87IH07CisJ
CUIyRTk1NDk3MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJFOTU0N0YwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhB
YnMuaWRsICovOyB9OworCQlCMkU5NTQ5ODBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aFJlbC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyRTk1NDgwMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoUmVsLmlkbCAqLzsgfTsKKwkJQjJFOTU0OTkwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0ODEwQUI1RkJBMzAwNzZERTM3IC8q
IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmlkbCAqLzsgfTsKKwkJQjJFOTU0OUEwQUI1
RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0ODIwQUI1RkJB
MzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCAqLzsgfTsKKwkJ
QjJFOTU0OUIwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjJFOTU0ODMwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoQWJzLmlkbCAqLzsgfTsKKwkJQjJFOTU0OUMwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0ODQwQUI1RkJBMzAwNzZERTM3IC8qIFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbCAqLzsgfTsKKwkJQjJFOTU0OUQw
QUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9BYnMuaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ4NTBBQjVGQkEzMDA3NkRF
MzcgLyogU1ZHUGF0aFNlZ0xpbmV0b0Ficy5pZGwgKi87IH07CisJCUIyRTk1NDlFMEFCNUZCQTMw
MDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTk1NDg2MEFCNUZCQTMwMDc2
REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwgKi87IH07CisJCUIyRTk1
NDlGMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTk1NDg3
MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwgKi87
IH07CisJCUIyRTk1NEEwMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvUmVsLmlk
bCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0
ODgwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9SZWwuaWRsICovOyB9OworCQlC
MkU5NTRBMTBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmlk
bCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0
ODkwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5pZGwgKi87
IH07CisJCUIyRTk1NEEyMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxSZWwuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkU5NTQ4QTBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmlkbCAqLzsgfTsKKwkJQjJFOTU0QTMwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaXN0
LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJF
OTU0OEIwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaXN0LmlkbCAqLzsgfTsKKwkJQjJF
OTU0QTQwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaWRsIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkU5NTQ4QzBBQjVGQkEz
MDA3NkRFMzcgLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5pZGwgKi87IH07CisJCUIyRTk1NEE1MEFC
NUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFOTU0OEQwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaWRsICovOyB9OworCQlCMkU5NTRBNjBBQjVGQkEzMDA3
NkRFMzcgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTk1NDhFMEFCNUZCQTMwMDc2REUzNyAvKiBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLzsgfTsKIAkJQkMwNjZGNkYwOUZFQjJGQTAwQzU4
OUE3IC8qIFdlYkNvcmVUZXh0UmVuZGVyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDY2RjZDMDlGRUIyRkEwMEM1ODlBNyAvKiBXZWJDb3JlVGV4
dFJlbmRlcmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQkMxQTM3QUQwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3OTcwOTdDNzE1RjAwMTlGM0Q4IC8q
IERPTS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDMUEzN0FFMDk3QzcxNUYwMDE5RjNEOCAvKiBET00ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzc5ODA5N0M3MTVGMDAxOUYzRDggLyogRE9N
Lm1tICovOyB9OwpAQCAtMjAxNiw2ICsyMDE4LDIzIEBACiAJCUZBRTA0MTkwMDk3NTk2QzkwMDA1
NDBCRSAvKiBTVkdJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkFFMDQxOEUwOTc1OTZDOTAwMDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVy
LmggKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJY
QnVpbGRTdHlsZSBzZWN0aW9uICovCisJCUIyRTk1NDVEMEFCNUZBNTkwMDc2REUzNyAvKiBEZXZl
bG9wbWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEJ1aWxkU3R5bGU7CisJCQlidWlsZFNldHRpbmdz
ID0geworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCX07CisJCQluYW1lID0gRGV2ZWxv
cG1lbnQ7CisJCX07CisJCUIyRTk1NDVFMEFCNUZBNTkwMDc2REUzNyAvKiBEZXBsb3ltZW50ICov
ID0geworCQkJaXNhID0gUEJYQnVpbGRTdHlsZTsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
Q09QWV9QSEFTRV9TVFJJUCA9IFlFUzsKKwkJCX07CisJCQluYW1lID0gRGVwbG95bWVudDsKKwkJ
fTsKKy8qIEVuZCBQQlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYQ29udGFp
bmVySXRlbVByb3h5IHNlY3Rpb24gKi8KIAkJREQwNDFGRjAwOUQ5RTMyNTAwMTBBRjJBIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94
eTsKQEAgLTM0MDIsMTggKzM0MjEsNyBAQAogCQlBODMzQzk0MTBBMkNGNjg3MDBENTc2NjQgLyog
R2V0U1ZHRG9jdW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBHZXRTVkdEb2N1bWVu
dC5pZGw7IHBhdGggPSBzdmcvR2V0U1ZHRG9jdW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBODMzQzk0MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQUVsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHQUVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk0MzBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR0FuaW1hdGVD
b2xvckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0NDBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR0FuaW1hdGVkQW5nbGUuaWRsOyBwYXRoID0gc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0NTBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZH
QW5pbWF0ZWRCb29sZWFuLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0NjBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0Fu
aW1hdGVkRW51bWVyYXRpb24uaWRsOyBwYXRoID0gc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0NzBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZH
QW5pbWF0ZWRJbnRlZ2VyLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0ODBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0OTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHQW5pbWF0ZWROdW1iZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmlt
YXRlZE51bWJlci5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk0QTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
QW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVk
UGF0aERhdGEuaWRsOyBwYXRoID0gc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5p
bWF0ZWRQb2ludHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZFBvaW50
cy5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBODMzQzk0RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0RTBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHQW5pbWF0ZWRSZWN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZFJlY3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzk0RjBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRl
ZFN0cmluZy5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk1MDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk1MTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmlt
YXRlRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzk1MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQyNCw3ICszNDMyLDYg
QEAKIAkJQTgzM0M5NTcwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0N1cnNvckVsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdDdXJzb3JFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9T
VkdDdXJzb3JFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5
NTgwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0RlZnNFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gU1ZHRGVmc0VsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR0RlZnNFbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5NTkwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR0Rlc2NFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRGVzY0Vs
ZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR0Rlc2NFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTgzM0M5NUEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0RPTUltcGxlbWVu
dGF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRE9NSW1wbGVtZW50YXRpb24u
aWRsOyBwYXRoID0gc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTgzM0M5NUIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0VsZW1lbnRJbnN0
YW5jZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0VsZW1lbnRJbnN0YW5jZS5pZGw7
IHBhdGggPSBzdmcvU1ZHRWxlbWVudEluc3RhbmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgzM0M5NUMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxp
c3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdFbGVtZW50SW5zdGFuY2VMaXN0Lmlk
bDsgcGF0aCA9IHN2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTgzM0M5NUQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0VsbGlwc2VFbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRWxsaXBzZUVsZW1lbnQuaWRsOyBw
YXRoID0gc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTM0NjIsMjQgKzM0NjksMTAgQEAKIAkJQTgzM0M5N0QwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR01hcmtlckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdNYXJrZXJF
bGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdNYXJrZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5N0UwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR051bWJlckxp
c3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdOdW1iZXJMaXN0LmlkbDsgcGF0aCA9
IHN2Zy9TVkdOdW1iZXJMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgz
M0M5N0YwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhaW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gU1ZHUGFpbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1BhaW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5ODAwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhFbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aEVsZW1lbnQuaWRsOyBwYXRo
ID0gc3ZnL1NWR1BhdGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTgzM0M5ODEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWcuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBTVkdQYXRoU2VnLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5ODIwQTJDRjY4NzAwRDU3NjY0IC8qIFNW
R1BhdGhTZWdBcmMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQXJjLmlk
bDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnQXJjLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQTgzM0M5ODMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbDsgcGF0aCA9
IHN2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTgzM0M5ODQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmlkbDsgcGF0
aCA9IHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQTgzM0M5ODUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5ODYwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5
ODcwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9v
dGguaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5ODgwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1BhdGhTZWdMaW5ldG8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2Vn
TGluZXRvLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnTGluZXRvLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5ODkwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdM
aW5ldG9Ib3Jpem9udGFsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWwuaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFs
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5OEEwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5OEIw
QTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gU1ZHUGF0aFNlZ0xpc3QuaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5OEMwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1BhdGhTZWdNb3ZldG8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2Vn
TW92ZXRvLmlkbDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnTW92ZXRvLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5OEQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdHRlcm5F
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0dGVybkVsZW1lbnQuaWRs
OyBwYXRoID0gc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgzM0M5OEUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BvaW50TGlzdC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BvaW50TGlzdC5pZGw7IHBhdGggPSBzdmcvU1ZHUG9p
bnRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5OEYwQTJDRjY4
NzAwRDU3NjY0IC8qIFNWR1BvbHlnb25FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHUG9seWdvbkVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1BvbHlnb25FbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5OTAwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR1BvbHlsaW5lRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1Bv
bHlsaW5lRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgzM0M5OTEwQTJDRjY4NzAwRDU3NjY0IC8qIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmlkbDsgcGF0aCA9IHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5OTIwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5OTMwQTJD
RjY4NzAwRDU3NjY0IC8qIFNWR1JlY3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHUmVjdEVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1JlY3RFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M5OTQwQTJDRjY4NzAwRDU3NjY0IC8qIFNW
R1JlbmRlcmluZ0ludGVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1JlbmRlcmlu
Z0ludGVudC5pZGw7IHBhdGggPSBzdmcvU1ZHUmVuZGVyaW5nSW50ZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzQsNyArMzU2Nyw2IEBACiAJCUE4NzFERkRGMEExNTM3
NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyUmVwbGFjZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTg3MURGRTAwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyV2lkZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4NzFERkUxMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcldpZGdldC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4ODQyODNEMDkzMDhDMUMwMEI2RDQ2MSAvKiBE
T01MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgcGF0
aCA9IERPTUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUE4OTBERjFCMDkzMDk3NDgwMDUxM0Y4OCAvKiBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODkwREYxQzA5
MzA5NzQ4MDA1MTNGODggLyogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODkwREYxRDA5MzA5NzQ4MDA1MTNGODggLyog
U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0zNjAx
LDM1ICszNTkzLDExIEBACiAJCUE4QzBGODAyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmdsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0Fu
Z2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlBOEMwRjgwMzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4MDQwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgw
NTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQW5nbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJQThDMEY4MDYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRl
ZEFuZ2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwotCQlBOEMwRjgwNzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRCb29sZWFu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODA4MDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdBbmltYXRlZEJvb2xlYW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZEJvb2xlYW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODA5MDg5NzAxRjMwMEJB
NTExNCAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwotCQlBOEMwRjgwQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0Fu
aW1hdGVkRW51bWVyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODBCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmlt
YXRlZEludGVnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZEludGVnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MEMwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkSW50ZWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MEQw
ODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGgu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJQThDMEY4MEUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
ZWRMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCUE4QzBGODBGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZExlbmd0
aExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MTAwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4
MTEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1i
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQThDMEY4MTIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5p
bWF0ZWROdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07Ci0JCUE4QzBGODEzMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdBbmltYXRlZE51bWJlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MTQwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThD
MEY4MTUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
ZFBhdGhEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUE4QzBGODE2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBh
dGhEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4MTcwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R0FuaW1hdGVkUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4MTgwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODE5
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MUEwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQThDMEY4MUIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUmVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgxQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0
ZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgxRDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5p
bWF0ZWRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjgxRTA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFN0cmluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4MUYwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkVGVtcGxhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFRlbXBsYXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlB
OEMwRjgyMDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODIxMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODIy
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCUE4QzBGODIzMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1h
dGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlBOEMwRjgyNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMzcyNCw4ICsz
NjkyLDYgQEAKIAkJQThDMEY4ODMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR01hcmtlckVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdN
YXJrZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlBOEMwRjg4NDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTWF0cml4LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1ZHTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUE4QzBGODg1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdNYXRyaXguaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdNYXRy
aXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07Ci0JCUE4QzBGODg2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdOdW1iZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJQThDMEY4ODcwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR051bWJlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThD
MEY4ODgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlckxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdOdW1iZXJMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUE4QzBGODg5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXJMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTnVtYmVyTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJQThDMEY4OEEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhaW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGFpbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAg
LTM3NjAsOCArMzcyNiw2IEBACiAJCUE4QzBGOEE3MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQYXRo
U2VnTW92ZXRvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHUGF0aFNlZ01vdmV0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4QTgwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1BhdHRlcm5FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0dGVybkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4QTkwODk3MDFG
NDAwQkE1MTE0IC8qIFNWR1BhdHRlcm5FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0dGVybkVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGOEFB
MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BvaW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGOEFCMDg5
NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjhBQzA4OTcwMUY0MDBCQTUx
MTQgLyogU1ZHUG9pbnRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUG9pbnRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGOEFEMDg5NzAxRjQw
MEJBNTExNCAvKiBTVkdQb2ludExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQb2ludExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGOEFFMDg5NzAxRjQwMEJB
NTExNCAvKiBTVkdQb2x5RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BvbHlFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0zNzc2LDggKzM3
NDAsNiBAQAogCQlBOEMwRjhCNzA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjhCODA4OTcwMUY0MDBCQTUxMTQg
LyogU1ZHUmVjdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdSZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjhCOTA4OTcwMUY0
MDBCQTUxMTQgLyogU1ZHUmVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdSZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4QkEwODk3MDFG
NDAwQkE1MTE0IC8qIFNWR1JlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGOEJCMDg5NzAxRjQwMEJB
NTExNCAvKiBTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4QkMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Nj
cmlwdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdTY3JpcHRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGOEJEMDg5NzAxRjQwMEJB
NTExNCAvKiBTVkdTY3JpcHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHU2NyaXB0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4QkUwODk3MDFG
NDAwQkE1MTE0IC8qIFNWR1NldEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdTZXRFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0zODgzLDgg
KzM4NDUsNiBAQAogCQlBOEMzMjkzMjA5M0JCNzMyMDAwQjlDQUMgLyogV0tTcG90TGlnaHRGaWx0
ZXIuY2lrZXJuZWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXS1Nw
b3RMaWdodEZpbHRlci5jaWtlcm5lbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzMyOTMzMDkzQkI3MzIwMDBCOUNBQyAvKiBXS1Nw
b3RMaWdodEZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLU3BvdExpZ2h0RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMzMjkzNDA5M0JCNzMyMDAwQjlDQUMg
LyogV0tTcG90TGlnaHRGaWx0ZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLm9iamM7IHBhdGggPSBXS1Nwb3RMaWdodEZpbHRlci5tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMzI5NEEwOTNCQjc4
QzAwMEI5Q0FDIC8qIFNWR0FuaW1hdGVkQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMzMjk0QjA5
M0JCNzhDMDAwQjlDQUMgLyogU1ZHQW5pbWF0ZWRDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJQThDMzI5NUMwOTNCQjdCMjAwMEI5Q0FDIC8qIFNWR0ZFTGlnaHRFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRkVMaWdodEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCUE4QzMyOTVEMDkzQkI3QjIwMDBCOUNBQyAvKiBTVkdGRUxpZ2h0RWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR0ZFTGlnaHRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzMyOTVFMDkzQkI3QjIwMDBCOUNBQyAvKiBTVkdG
RURpc3RhbnRMaWdodEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC00MDY2LDYgKzQw
MjYsNDEgQEAKIAkJQUJEREZFNzgwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlclBvcHVwTWVudU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJQb3B1
cE1lbnVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCRTdCNTIxMEE0ODlG
ODMwMDMxODgxQyAvKiBEZXByZWNhdGVkUmVuZGVyU2VsZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXByZWNhdGVkUmVuZGVyU2VsZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUJFN0I1MjIwQTQ4OUY4MzAwMzE4ODFDIC8qIERlcHJl
Y2F0ZWRSZW5kZXJTZWxlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
cHJlY2F0ZWRSZW5kZXJTZWxlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjJF
OTU0NjEwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZEFuZ2xlLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5NTQ2
MjBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdB
bmltYXRlZEJvb2xlYW4uaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1
NDYzMEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGw7IHBhdGggPSBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKKwkJQjJFOTU0NjQwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkSW50ZWdlci5pZGw7IHBhdGgg
PSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OworCQlCMkU5NTQ2NTBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRMZW5ndGgu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZExlbmd0aC5pZGw7IHBhdGgg
PSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CisJCUIyRTk1NDY2MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZE51bWJlci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkTnVtYmVyLmlkbDsgcGF0aCA9
IGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKKwkJQjJFOTU0NjcwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZFBhdGhEYXRhLmlkbDsgcGF0
aCA9IGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmlkbDsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OworCQlCMkU5NTQ2ODBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRQb2lu
dHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZFBvaW50cy5pZGw7IHBh
dGggPSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CisJCUIyRTk1NDY5MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0
NkEwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkUmVjdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR0FuaW1hdGVkUmVjdC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRSZWN0LmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5NTQ2QjBBQjVG
QjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTVkdBbmltYXRlZFN0cmluZy5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRT
dHJpbmcuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1NDc3MEFCNUZC
QTMwMDc2REUzNyAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTVkdNZXRhZGF0YUVsZW1lbnQuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR01ldGFkYXRh
RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0NzgwQUI1
RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHUGF0aEVsZW1lbnQuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5NTQ3OTBBQjVGQkEzMDA3NkRF
MzcgLyogU1ZHUGF0aFNlZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWcu
aWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWcuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CisJCUIyRTk1NDdBMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQXJjQWJz
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0FyY0Ficy5pZGw7IHBhdGgg
PSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0FyY0Ficy5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKKwkJQjJFOTU0N0IwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdBcmNSZWwuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQXJjUmVsLmlkbDsgcGF0aCA9IGtz
dmcyL3N2Zy9TVkdQYXRoU2VnQXJjUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9
OworCQlCMkU5NTQ3QzBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdDbG9zZVBhdGguaWRsOyBwYXRoID0g
a3N2ZzIvc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CisJCUIyRTk1NDdEMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1
YmljQWJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y0Ficy5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGw7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0N0UwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdQYXRo
U2VnQ3VydmV0b0N1YmljUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlC
MkU5NTQ3RjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFi
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhBYnMuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhB
YnMuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1NDgwMEFCNUZCQTMw
MDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGw7IHBhdGgg
PSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGw7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0ODEwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owor
CQlCMkU5NTQ4MjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNS
ZWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1JlbC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwu
aWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1NDgzMEFCNUZCQTMwMDc2
REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbDsg
cGF0aCA9IGtzdmcyL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGw7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0ODQwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsOyBwYXRo
ID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbDsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5NTQ4NTBBQjVGQkEzMDA3NkRFMzcgLyog
U1ZHUGF0aFNlZ0xpbmV0b0Ficy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhT
ZWdMaW5ldG9BYnMuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9BYnMuaWRs
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1NDg2MEFCNUZCQTMwMDc2REUz
NyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmlkbDsgcGF0aCA9IGtzdmcyL3N2
Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKKwkJQjJFOTU0ODcwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsUmVsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5NTQ4ODBB
QjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0xpbmV0b1JlbC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR1BhdGhTZWdMaW5ldG9SZWwuaWRsOyBwYXRoID0ga3N2ZzIvc3ZnL1NWR1Bh
dGhTZWdMaW5ldG9SZWwuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1
NDg5MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsOyBw
YXRoID0ga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5pZGw7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0OEEwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1Bh
dGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1Bh
dGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5
NTQ4QjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0xpc3QuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBTVkdQYXRoU2VnTGlzdC5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNl
Z0xpc3QuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUIyRTk1NDhDMEFCNUZC
QTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gU1ZHUGF0aFNlZ01vdmV0b0Ficy5pZGw7IHBhdGggPSBrc3ZnMi9zdmcvU1ZHUGF0aFNl
Z01vdmV0b0Ficy5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQjJFOTU0OEQw
QUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBTVkdQYXRoU2VnTW92ZXRvUmVsLmlkbDsgcGF0aCA9IGtzdmcyL3N2Zy9TVkdQ
YXRoU2VnTW92ZXRvUmVsLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlCMkU5
NTQ4RTBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBwYXRoID0ga3N2
ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CiAJCUJDMDY2RjZDMDlGRUIyRkEwMEM1ODlBNyAvKiBXZWJDb3JlVGV4dFJlbmRlcmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGV4dFJlbmRlcmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDZGMjQ5MDZEMThBN0UwMDRBNkZB
MyAvKiBYU0xTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFN0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEEwNkQxOEE3
RTAwNEE2RkEzIC8qIFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTQ4NDgsNiArNDg0Myw0
MSBAQAogCQk2NUJGMDIxODA5NzQ4MDYzMDBDNDMxOTYgLyogcGFnZSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQjJFOTU0NzcwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR01ldGFkYXRhRWxlbWVudC5pZGwgKi8sCisJCQkJQjJFOTU0NzgwQUI1RkJBMzAwNzZE
RTM3IC8qIFNWR1BhdGhFbGVtZW50LmlkbCAqLywKKwkJCQlCMkU5NTQ3OTBBQjVGQkEzMDA3NkRF
MzcgLyogU1ZHUGF0aFNlZy5pZGwgKi8sCisJCQkJQjJFOTU0N0EwQUI1RkJBMzAwNzZERTM3IC8q
IFNWR1BhdGhTZWdBcmNBYnMuaWRsICovLAorCQkJCUIyRTk1NDdCMEFCNUZCQTMwMDc2REUzNyAv
KiBTVkdQYXRoU2VnQXJjUmVsLmlkbCAqLywKKwkJCQlCMkU5NTQ3QzBBQjVGQkEzMDA3NkRFMzcg
LyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgKi8sCisJCQkJQjJFOTU0N0QwQUI1RkJBMzAwNzZE
RTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaWRsICovLAorCQkJCUIyRTk1NDdFMEFC
NUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmlkbCAqLywKKwkJCQlC
MkU5NTQ3RjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFi
cy5pZGwgKi8sCisJCQkJQjJFOTU0ODAwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhSZWwuaWRsICovLAorCQkJCUIyRTk1NDgxMEFCNUZCQTMwMDc2REUzNyAv
KiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5pZGwgKi8sCisJCQkJQjJFOTU0ODIwQUI1
RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbCAqLywKKwkJ
CQlCMkU5NTQ4MzBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNT
bW9vdGhBYnMuaWRsICovLAorCQkJCUIyRTk1NDg0MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5pZGwgKi8sCisJCQkJQjJFOTU0ODUwQUI1RkJB
MzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9BYnMuaWRsICovLAorCQkJCUIyRTk1NDg2MEFC
NUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwgKi8sCisJ
CQkJQjJFOTU0ODcwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFs
UmVsLmlkbCAqLywKKwkJCQlCMkU5NTQ4ODBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0xp
bmV0b1JlbC5pZGwgKi8sCisJCQkJQjJFOTU0ODkwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhT
ZWdMaW5ldG9WZXJ0aWNhbEFicy5pZGwgKi8sCisJCQkJQjJFOTU0OEEwQUI1RkJBMzAwNzZERTM3
IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5pZGwgKi8sCisJCQkJQjJFOTU0OEIwQUI1
RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaXN0LmlkbCAqLywKKwkJCQlCMkU5NTQ4QzBBQjVG
QkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5pZGwgKi8sCisJCQkJQjJFOTU0OEQw
QUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaWRsICovLAorCQkJCUIyRTk1
NDhFMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKKwkJ
CQlCMkU5NTQ2MTBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi8sCisJ
CQkJQjJFOTU0NjIwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5pZGwgKi8s
CisJCQkJQjJFOTU0NjMwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aWRsICovLAorCQkJCUIyRTk1NDY0MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZEludGVn
ZXIuaWRsICovLAorCQkJCUIyRTk1NDY1MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZExl
bmd0aC5pZGwgKi8sCisJCQkJQjJFOTU0NjYwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVk
TnVtYmVyLmlkbCAqLywKKwkJCQlCMkU5NTQ2NzBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5pZGwgKi8sCisJCQkJQjJFOTU0NjgwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0Fu
aW1hdGVkUG9pbnRzLmlkbCAqLywKKwkJCQlCMkU5NTQ2OTBBQjVGQjdGMDA3NkRFMzcgLyogU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKKwkJCQlCMkU5NTQ2QTBBQjVGQjdG
MDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLywKKwkJCQlCMkU5NTQ2QjBBQjVGQjdG
MDA3NkRFMzcgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovLAogCQkJCTE0MDNCOTk2MDlFQjEz
QUYwMDc5N0M3RiAvKiBET01XaW5kb3cuY3BwICovLAogCQkJCTE0MDNCOTk1MDlFQjEzQUYwMDc5
N0M3RiAvKiBET01XaW5kb3cuaCAqLywKIAkJCQkxNDAzQjkwQzA5RUIxMjQ1MDA3OTdDN0YgLyog
RE9NV2luZG93LmlkbCAqLywKQEAgLTU2NDQsMTggKzU2NzQsNyBAQAogCQkJCUE4MzNDOTQxMEEy
Q0Y2ODcwMEQ1NzY2NCAvKiBHZXRTVkdEb2N1bWVudC5pZGwgKi8sCiAJCQkJQTgzM0M5NDIwQTJD
RjY4NzAwRDU3NjY0IC8qIFNWR0FFbGVtZW50LmlkbCAqLywKIAkJCQlBODMzQzk0MzBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgzM0M5NDQw
QTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkQW5nbGUuaWRsICovLAotCQkJCUE4MzNDOTQ1
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaWRsICovLAotCQkJCUE4MzND
OTQ2MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLywKLQkJ
CQlBODMzQzk0NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCAqLywK
LQkJCQlBODMzQzk0ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Lmlk
bCAqLywKLQkJCQlBODMzQzk0OTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWROdW1iZXIu
aWRsICovLAogCQkJCUE4MzNDOTRBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZE51bWJl
ckxpc3QuaWRsICovLAotCQkJCUE4MzNDOTRCMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRl
ZFBhdGhEYXRhLmlkbCAqLywKLQkJCQlBODMzQzk0QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5p
bWF0ZWRQb2ludHMuaWRsICovLAotCQkJCUE4MzNDOTREMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsICovLAotCQkJCUE4MzNDOTRFMEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdBbmltYXRlZFJlY3QuaWRsICovLAotCQkJCUE4MzNDOTRGMEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi8sCiAJCQkJQTgzM0M5NTAwQTJDRjY4
NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8sCiAJCQkJQTgzM0M5
NTEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVFbGVtZW50LmlkbCAqLywKIAkJCQlBODMz
Qzk1MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRsICov
LApAQCAtNTY2Niw3ICs1Njg1LDYgQEAKIAkJCQlBODMzQzk1NzBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHQ3Vyc29yRWxlbWVudC5pZGwgKi8sCiAJCQkJQTgzM0M5NTgwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR0RlZnNFbGVtZW50LmlkbCAqLywKIAkJCQlBODMzQzk1OTBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHRGVzY0VsZW1lbnQuaWRsICovLAotCQkJCUE4MzNDOTVBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdET01JbXBsZW1lbnRhdGlvbi5pZGwgKi8sCiAJCQkJQTgzM0M5NUIwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5pZGwgKi8sCiAJCQkJQTgzM0M5NUMwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsICovLAogCQkJCUE4MzNDOTVEMEEyQ0Y2
ODcwMEQ1NzY2NCAvKiBTVkdFbGxpcHNlRWxlbWVudC5pZGwgKi8sCkBAIC01NzA0LDI0ICs1NzIy
LDEwIEBACiAJCQkJQTgzM0M5N0QwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR01hcmtlckVsZW1lbnQu
aWRsICovLAogCQkJCUE4MzNDOTdFMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdOdW1iZXJMaXN0Lmlk
bCAqLywKIAkJCQlBODMzQzk3RjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGFpbnQuaWRsICovLAot
CQkJCUE4MzNDOTgwMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoRWxlbWVudC5pZGwgKi8sCi0J
CQkJQTgzM0M5ODEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWcuaWRsICovLAotCQkJCUE4
MzNDOTgyMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQXJjLmlkbCAqLywKLQkJCQlBODMz
Qzk4MzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgKi8sCi0JCQkJ
QTgzM0M5ODQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaWRsICov
LAotCQkJCUE4MzNDOTg1MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoLmlkbCAqLywKLQkJCQlBODMzQzk4NjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWMuaWRsICovLAotCQkJCUE4MzNDOTg3MEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5pZGwgKi8sCi0JCQkJQTgzM0M5ODgw
QTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG8uaWRsICovLAotCQkJCUE4MzNDOTg5
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbC5pZGwgKi8sCi0J
CQkJQTgzM0M5OEEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5p
ZGwgKi8sCi0JCQkJQTgzM0M5OEIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaXN0Lmlk
bCAqLywKLQkJCQlBODMzQzk4QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ01vdmV0by5p
ZGwgKi8sCiAJCQkJQTgzM0M5OEQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdHRlcm5FbGVtZW50
LmlkbCAqLywKIAkJCQlBODMzQzk4RTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUG9pbnRMaXN0Lmlk
bCAqLywKIAkJCQlBODMzQzk4RjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUG9seWdvbkVsZW1lbnQu
aWRsICovLAogCQkJCUE4MzNDOTkwMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQb2x5bGluZUVsZW1l
bnQuaWRsICovLAotCQkJCUE4MzNDOTkxMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmlkbCAqLywKIAkJCQlBODMzQzk5MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmlkbCAqLywKIAkJCQlBODMzQzk5MzBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHUmVjdEVsZW1lbnQuaWRsICovLAogCQkJCUE4MzNDOTk0MEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdSZW5kZXJpbmdJbnRlbnQuaWRsICovLApAQCAtNTgzNiw3ICs1ODQwLDYgQEAKIAkJCWNo
aWxkcmVuID0gKAogCQkJCUFBQzhEQUFGMEFBMTAwMjAwMERDMDkwNyAvKiBTVkdNZXRhZGF0YUVs
ZW1lbnQuY3BwICovLAogCQkJCUFBQzhEQUIwMEFBMTAwMjAwMERDMDkwNyAvKiBTVkdNZXRhZGF0
YUVsZW1lbnQuaCAqLywKLQkJCQlBODg0MjgzRDA5MzA4QzFDMDBCNkQ0NjEgLyogRE9NTGlzdC5o
ICovLAogCQkJCUE4QzBGN0ZGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBRWxlbWVudC5jcHAgKi8s
CiAJCQkJQThDMEY4MDAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FFbGVtZW50LmggKi8sCiAJCQkJ
QThDMEY4MDEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuZ2xlLmNwcCAqLywKQEAgLTU4NDQsMzcg
KzU4NDcsMTEgQEAKIAkJCQlBODMzQzBBODBBMkM0RkVDMDBENTc2NjQgLyogU1ZHQW5nbGUuaWRs
ICovLAogCQkJCUE4QzBGODAzMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmNwcCAqLywKIAkJCQlBOEMwRjgwNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5oICovLAotCQkJCUE4QzBGODA1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmlt
YXRlZEFuZ2xlLmNwcCAqLywKLQkJCQlBOEMwRjgwNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5p
bWF0ZWRBbmdsZS5oICovLAotCQkJCUE4QzBGODA3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmlt
YXRlZEJvb2xlYW4uY3BwICovLAotCQkJCUE4QzBGODA4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdB
bmltYXRlZEJvb2xlYW4uaCAqLywKLQkJCQlBOEMzMjk0QjA5M0JCNzhDMDAwQjlDQUMgLyogU1ZH
QW5pbWF0ZWRDb2xvci5jcHAgKi8sCi0JCQkJQThDMzI5NEEwOTNCQjc4QzAwMEI5Q0FDIC8qIFNW
R0FuaW1hdGVkQ29sb3IuaCAqLywKLQkJCQlBOEMwRjgwOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgKi8sCi0JCQkJQThDMEY4MEEwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCAqLywKLQkJCQlBOEMwRjgwQjA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCAqLywKLQkJCQlBOEMwRjgwQzA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggKi8sCi0JCQkJQThDMEY4MEQwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCAqLywKLQkJCQlBOEMwRjgwRTA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCAqLywKLQkJCQlBOEMwRjgwRjA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCAqLywKLQkJCQlBOEMwRjgx
MDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggKi8sCi0JCQkJQThD
MEY4MTEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmNwcCAqLywKLQkJCQlB
OEMwRjgxMjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaCAqLywKLQkJCQlB
OEMwRjgxMzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCAqLywK
LQkJCQlBOEMwRjgxNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0Lmgg
Ki8sCiAJCQkJQThDMEY4MTUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEu
Y3BwICovLAogCQkJCUE4QzBGODE2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFBhdGhE
YXRhLmggKi8sCiAJCQkJQThDMEY4MTcwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUG9p
bnRzLmNwcCAqLywKIAkJCQlBOEMwRjgxODA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRQ
b2ludHMuaCAqLywKLQkJCQlBOEMwRjgxOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCAqLywKLQkJCQlBOEMwRjgxQTA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi8sCi0JCQkJQThDMEY4MUIwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUmVjdC5jcHAgKi8sCi0JCQkJQThDMEY4MUMwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkUmVjdC5oICovLAotCQkJCUE4QzBGODFEMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi8sCi0JCQkJQThDMEY4MUUwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmggKi8sCiAJCQkJQThDMEY4MUYwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVkVGVtcGxhdGUuaCAqLywKLQkJCQlBOEMwRjgyMDA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAqLywKLQkJCQlB
OEMwRjgyMTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi8s
CiAJCQkJQThDMEY4MjIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCAq
LywKIAkJCQlBOEMwRjgyMzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCAq
LywKIAkJCQlBOEMwRjgyNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuY3BwICovLApAQCAtNTk5NCw4ICs1OTcxLDYgQEAKIAkJCQlBOEMwRjg4NDA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHTWF0cml4LmNwcCAqLywKIAkJCQlBOEMwRjg4NTA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHTWF0cml4LmggKi8sCiAJCQkJQTgzM0JFREQwQTJDMzQ0QjAwRDU3NjY0IC8qIFNW
R01hdHJpeC5pZGwgKi8sCi0JCQkJQThDMEY4ODYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJl
ci5jcHAgKi8sCi0JCQkJQThDMEY4ODcwODk3MDFGMzAwQkE1MTE0IC8qIFNWR051bWJlci5oICov
LAogCQkJCUE4MzNCRUEyMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdOdW1iZXIuaWRsICovLAogCQkJ
CUE4QzBGODg4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXJMaXN0LmNwcCAqLywKIAkJCQlB
OEMwRjg4OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVtYmVyTGlzdC5oICovLApAQCAtNjAzMSw4
ICs2MDA2LDYgQEAKIAkJCQlBOEMwRjhBNzA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUGF0aFNlZ01v
dmV0by5oICovLAogCQkJCUE4QzBGOEE4MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQYXR0ZXJuRWxl
bWVudC5jcHAgKi8sCiAJCQkJQThDMEY4QTkwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdHRlcm5F
bGVtZW50LmggKi8sCi0JCQkJQThDMEY4QUEwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BvaW50LmNw
cCAqLywKLQkJCQlBOEMwRjhBQjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnQuaCAqLywKIAkJ
CQlBODMzQkVBMTBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUG9pbnQuaWRsICovLAogCQkJCUE4QzBG
OEFDMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludExpc3QuY3BwICovLAogCQkJCUE4QzBGOEFE
MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludExpc3QuaCAqLywKQEAgLTYwNDYsOCArNjAxOSw2
IEBACiAJCQkJQThDMEY4QjUwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaCAqLywKIAkJCQlBOEMwRjhCNjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmNwcCAqLywKIAkJCQlBOEMwRjhCNzA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmggKi8sCi0JCQkJQThDMEY4QkEwODk3MDFGNDAwQkE1MTE0IC8q
IFNWR1JlY3QuY3BwICovLAotCQkJCUE4QzBGOEJCMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdSZWN0
LmggKi8sCiAJCQkJQTgzM0JFQTAwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR1JlY3QuaWRsICovLAog
CQkJCUE4QzBGOEI4MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdSZWN0RWxlbWVudC5jcHAgKi8sCiAJ
CQkJQThDMEY4QjkwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmggKi8sCkBAIC03
MDU4LDIyICs3MDI5LDkgQEAKIAkJCQlBODhBRDQxMjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENDE0MDk1MjQ4RjAwMDFERDE5NiAvKiBT
VkdBbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0MTYwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFENDE4MDk1
MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
ODhBRDQxQTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODhBRDQxQzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRDb2xvci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0MUUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFENDIwMDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdBbmltYXRlZEludGVnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFENDIy
MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTg4QUQ0MjQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0MjYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVk
TnVtYmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDQyODA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQyQTA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTg4QUQ0MkMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkUG9pbnRzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODhBRDQyRTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDQzMDA5NTI0OEYwMDAxREQx
OTYgLyogU1ZHQW5pbWF0ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDQzMjA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
OEFENDMzMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZFRlbXBsYXRlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODhBRDQzNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQzNzA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENDM5MDk1MjQ4RjAw
MDFERDE5NiAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTg4QUQ0M0IwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzEyOCw3ICs3MDg2LDYgQEAKIAkJCQlBODhBRDQ5RjA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDRBMTA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHTWFya2VyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4
QUQ0QTMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTg4QUQ0QTUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTg4QUQ0QTcwOTUyNDhGMDAwMUREMTk2IC8qIFNWR051bWJlckxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4OEFENEE5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYWludC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg4QUQ0QUIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTcxNDYsNyArNzEwMyw2IEBACiAJCQkJQTg4QUQ0QzMwOTUyNDhG
MDAwMUREMTk2IC8qIFNWR1BhdGhTZWdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDRD
NTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ01vdmV0by5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTg4QUQ0QzcwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBODhBRDRDOTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4OEFENENCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2ludExpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENENEMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2x5
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0Q0YwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTcxNTQsNyArNzExMCw2IEBA
CiAJCQkJQTg4QUQ0RDMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8u
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENEQ1MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENEQ3MDk1MjQ4RjAw
MDFERDE5NiAvKiBTVkdSZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0RDkw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENERC
MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdTY3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODhBRDRERDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHU2V0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTg4QUQ0REYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1N0b3BFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTcxODEsNyArNzEzNiw2IEBACiAJCQkJQTg4QUQ1MEEwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR1ZpZXdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDUwQzA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHWm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4
QUQ1MEQwOTUyNDhGMDAwMUREMTk2IC8qIGtzdmcuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFE
NTE3MDk1MjQ5OUYwMDFERDE5NiAvKiBET01MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUy
RTdBQTA5NkFBMTFCMDAwNkYyNDggLyogV2ViQ29yZUZyYW1lTmFtZXNwYWNlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgxNjU1RDQwOTZCQkVBQzAwNjAxMDU4IC8qIEtDYW52YXNNYXNrZXJRdWFy
dHouaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTY1NUU1MDk2QkMxMzkwMDYwMTA1OCAvKiBTVkdN
YXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC03OTMzLDYgKzc4ODcsMTIgQEAKIAkJMDg2
N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0gewogCQkJaXNhID0g
UEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjEx
MDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJD
b3JlIiAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJYnVpbGRTdHlsZXMgPSAo
CisJCQkJQjJFOTU0NUQwQUI1RkE1OTAwNzZERTM3IC8qIERldmVsb3BtZW50ICovLAorCQkJCUIy
RTk1NDVFMEFCNUZBNTkwMDc2REUzNyAvKiBEZXBsb3ltZW50ICovLAorCQkJKTsKIAkJCWhhc1Nj
YW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gs
CkBAIC03OTkwLDYgKzc5NTAsNDEgQEAKIAkJCQkxQ0Q0NDE4RjBBNENFNzZGMDBBMDA3QUIgLyog
bm9ydGhTb3V0aFJlc2l6ZUN1cnNvci50aWZmIGluIFJlc291cmNlcyAqLywKIAkJCQkxQ0Q0NDE5
MDBBNENFNzZGMDBBMDA3QUIgLyogbm9ydGhXZXN0U291dGhFYXN0UmVzaXplQ3Vyc29yLnRpZmYg
aW4gUmVzb3VyY2VzICovLAogCQkJCTUxMTUwOTVDMEE5Q0UwNDcwMDkwMTAxMyAvKiB1cmxJY29u
LnRpZmYgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NDZDMEFCNUZCN0YwMDc2REUzNyAvKiBT
VkdBbmltYXRlZEFuZ2xlLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0NkQwQUI1RkI3
RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUIyRTk1NDZFMEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbCBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0NkYwQUI1RkI3RjAwNzZERTM3IC8qIFNWR0FuaW1h
dGVkSW50ZWdlci5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NDcwMEFCNUZCN0YwMDc2
REUzNyAvKiBTVkdBbmltYXRlZExlbmd0aC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1
NDcxMEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZE51bWJlci5pZGwgaW4gUmVzb3VyY2Vz
ICovLAorCQkJCUIyRTk1NDcyMEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZFBhdGhEYXRh
LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0NzMwQUI1RkI3RjAwNzZERTM3IC8qIFNW
R0FuaW1hdGVkUG9pbnRzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0NzQwQUI1RkI3
RjAwNzZERTM3IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgaW4gUmVzb3Vy
Y2VzICovLAorCQkJCUIyRTk1NDc1MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZFJlY3Qu
aWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU5NTQ3NjBBQjVGQjdGMDA3NkRFMzcgLyogU1ZH
QW5pbWF0ZWRTdHJpbmcuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU5NTQ4RjBBQjVGQkEz
MDA3NkRFMzcgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
QjJFOTU0OTAwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhFbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJQjJFOTU0OTEwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWcuaWRsIGlu
IFJlc291cmNlcyAqLywKKwkJCQlCMkU5NTQ5MjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNl
Z0FyY0Ficy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NDkzMEFCNUZCQTMwMDc2REUz
NyAvKiBTVkdQYXRoU2VnQXJjUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0OTQw
QUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlCMkU5NTQ5NTBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y0Ficy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NDk2MEFCNUZCQTMwMDc2REUzNyAv
KiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJF
OTU0OTcwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMu
aWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU5NTQ5ODBBQjVGQkEzMDA3NkRFMzcgLyogU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIy
RTk1NDk5MEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5p
ZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NDlBMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1
NDlCMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFi
cy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NDlDMEFCNUZCQTMwMDc2REUzNyAvKiBT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5pZGwgaW4gUmVzb3VyY2VzICovLAor
CQkJCUIyRTk1NDlEMEFCNUZCQTMwMDc2REUzNyAvKiBTVkdQYXRoU2VnTGluZXRvQWJzLmlkbCBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0OUUwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0OUYw
QUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQjJFOTU0QTAwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdM
aW5ldG9SZWwuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlCMkU5NTRBMTBBQjVGQkEzMDA3NkRF
MzcgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJQjJFOTU0QTIwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJl
bC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NEEzMEFCNUZCQTMwMDc2REUzNyAvKiBT
VkdQYXRoU2VnTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUIyRTk1NEE0MEFCNUZCQTMw
MDc2REUzNyAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
QjJFOTU0QTUwQUI1RkJBMzAwNzZERTM3IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlCMkU5NTRBNjBBQjVGQkEzMDA3NkRFMzcgLyogU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtODExNSwyMSArODExMCw4IEBACiAJ
CQkJQTg4QUQ0MTEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4OEFENDEzMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmdsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODhBRDQxNTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDQxNzA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDQxOTA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4OEFENDFCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4OEFENDFEMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZEVudW1l
cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENDFGMDk1MjQ4RjAwMDFERDE5NiAv
KiBTVkdBbmltYXRlZEludGVnZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MjEwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4OEFENDIzMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MjUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVk
TnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENDI3MDk1MjQ4RjAwMDFERDE5NiAv
KiBTVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0Mjkw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTg4QUQ0MkIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkUG9pbnRzLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4OEFENDJEMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQ0MkYwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlB
ODhBRDQzMTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQTg4QUQ0MzQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDQzNjA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0MzgwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4OEFENDNBMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdBbmltYXRpb25FbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODE4MSw3ICs4MTYzLDYgQEAKIAkJCQlBODhBRDQ5RTA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHTG9jYXRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
OEFENEEwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdNYXJrZXJFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4OEFENEEyMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdNYXRyaXguY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTg4QUQ0QTQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR051bWJlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRBNjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTnVtYmVy
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRBODA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHUGFpbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0QUEwOTUyNDhGMDAwMUREMTk2
IC8qIFNWR1BhdGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODE5OSw3ICs4MTgwLDYg
QEAKIAkJCQlBODhBRDRDMjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ0xpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0QzQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhTZWdN
b3ZldG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0QzYwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR1BhdHRlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENEM4MDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDRDQTA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9pbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
OEFENENDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQb2x5RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODhBRDRDRTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUG9seWdvbkVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC04MjA3LDcgKzgxODcsNiBAQAogCQkJCUE4OEFENEQyMDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4OEFENEQ0MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0RDYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1Jl
Y3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENEQ4MDk1MjQ4RjAwMDFERDE5
NiAvKiBTVkdSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENERBMDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdTY3JpcHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENERD
MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdTZXRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4OEFENERFMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdTdG9wRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFdlYkNvcmUva2NhbnZhcy9SZW5kZXJTVkdJbWFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR0ltYWdlLmNwcAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MCwxOSArNTAsMTkgQEAKIHsKICAgICBmbG9hdCBvcmlnRGVzdFdpZHRoID0gZGVzdFJlY3Qu
d2lkdGgoKTsKICAgICBmbG9hdCBvcmlnRGVzdEhlaWdodCA9IGRlc3RSZWN0LmhlaWdodCgpOwot
ICAgIGlmIChhc3BlY3RSYXRpby0+bWVldE9yU2xpY2UoKSA9PSBTVkdfTUVFVE9SU0xJQ0VfTUVF
VCkgeworICAgIGlmIChhc3BlY3RSYXRpby0+bWVldE9yU2xpY2UoKSA9PSBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvOjpTVkdfTUVFVE9SU0xJQ0VfTUVFVCkgewogICAgICAgICBmbG9hdCB3aWR0aFRv
SGVpZ2h0TXVsdGlwbGllciA9IHNyY1JlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0LndpZHRoKCk7CiAg
ICAgICAgIGlmIChvcmlnRGVzdEhlaWdodCA+IChvcmlnRGVzdFdpZHRoICogd2lkdGhUb0hlaWdo
dE11bHRpcGxpZXIpKSB7CiAgICAgICAgICAgICBkZXN0UmVjdC5zZXRIZWlnaHQob3JpZ0Rlc3RX
aWR0aCAqIHdpZHRoVG9IZWlnaHRNdWx0aXBsaWVyKTsKICAgICAgICAgICAgIHN3aXRjaChhc3Bl
Y3RSYXRpby0+YWxpZ24oKSkgewotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1JTllNSUQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlEWU1JRDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNQVhZTUlEOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQ6CisgICAgICAgICAgICAgICAg
Y2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlE
WU1JRDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlEOgogICAgICAgICAgICAgICAgICAgICBkZXN0UmVj
dC5zZXRZKG9yaWdEZXN0SGVpZ2h0IC8gMiAtIGRlc3RSZWN0LmhlaWdodCgpIC8gMik7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JTllNQVg6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVB
U1BFQ1RSQVRJT19YTUlEWU1BWDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNQVhZTUFYOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNQVg6CisgICAgICAgICAgICAg
ICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19Y
TUlEWU1BWDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYOgogICAgICAgICAgICAgICAgICAgICBkZXN0
UmVjdC5zZXRZKG9yaWdEZXN0SGVpZ2h0IC0gZGVzdFJlY3QuaGVpZ2h0KCkpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTcwLDMzICs3MCwzMyBAQAogICAg
ICAgICBpZiAob3JpZ0Rlc3RXaWR0aCA+IChvcmlnRGVzdEhlaWdodCAvIHdpZHRoVG9IZWlnaHRN
dWx0aXBsaWVyKSkgewogICAgICAgICAgICAgZGVzdFJlY3Quc2V0V2lkdGgob3JpZ0Rlc3RIZWln
aHQgLyB3aWR0aFRvSGVpZ2h0TXVsdGlwbGllcik7CiAgICAgICAgICAgICBzd2l0Y2goYXNwZWN0
UmF0aW8tPmFsaWduKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNSURZTUlOOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JRFlNSUQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlEWU1BWDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOOgorICAgICAgICAgICAgICAgIGNh
c2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlN
SUQ6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1BWDoKICAgICAgICAgICAgICAgICAgICAgZGVzdFJlY3Qu
c2V0WChvcmlnRGVzdFdpZHRoIC8gMiAtIGRlc3RSZWN0LndpZHRoKCkgLyAyKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUFYWU1JTjoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNQVhZTUlEOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1BWFlNQVg6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTjoKKyAgICAgICAgICAgICAgICBj
YXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZ
TUlEOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BS
RVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVg6CiAgICAgICAgICAgICAgICAgICAgIGRlc3RSZWN0
LnNldFgob3JpZ0Rlc3RXaWR0aCAtIGRlc3RSZWN0LndpZHRoKCkpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoYXNw
ZWN0UmF0aW8tPm1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX1NMSUNFKSB7CisgICAg
fSBlbHNlIGlmIChhc3BlY3RSYXRpby0+bWVldE9yU2xpY2UoKSA9PSBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvOjpTVkdfTUVFVE9SU0xJQ0VfU0xJQ0UpIHsKICAgICAgICAgZmxvYXQgd2lkdGhUb0hl
aWdodE11bHRpcGxpZXIgPSBzcmNSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC53aWR0aCgpOwogICAg
ICAgICAvLyBpZiB0aGUgZGVzdGluYXRpb24gaGVpZ2h0IGlzIGxlc3MgdGhhbiB0aGUgaGVpZ2h0
IG9mIHRoZSBpbWFnZSB3ZSdsbCBiZSBkcmF3aW5nCiAgICAgICAgIGlmIChvcmlnRGVzdEhlaWdo
dCA8IChvcmlnRGVzdFdpZHRoICogd2lkdGhUb0hlaWdodE11bHRpcGxpZXIpKSB7CiAgICAgICAg
ICAgICBmbG9hdCBkZXN0VG9TcmNNdWx0aXBsaWVyID0gc3JjUmVjdC53aWR0aCgpIC8gZGVzdFJl
Y3Qud2lkdGgoKTsKICAgICAgICAgICAgIHNyY1JlY3Quc2V0SGVpZ2h0KGRlc3RSZWN0LmhlaWdo
dCgpICogZGVzdFRvU3JjTXVsdGlwbGllcik7CiAgICAgICAgICAgICBzd2l0Y2goYXNwZWN0UmF0
aW8tPmFsaWduKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVDVFJB
VElPX1hNSU5ZTUlEOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fWE1JRFlNSUQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUFYWU1JRDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86
OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlEOgorICAgICAgICAgICAgICAgIGNhc2Ug
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSUQ6
CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VS
VkVBU1BFQ1RSQVRJT19YTUFYWU1JRDoKICAgICAgICAgICAgICAgICAgICAgc3JjUmVjdC5zZXRZ
KGltYWdlKCktPmhlaWdodCgpIC8gMiAtIHNyY1JlY3QuaGVpZ2h0KCkgLyAyKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlOWU1BWDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNSURZTUFYOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1BWFlNQVg6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1BWDoKKyAgICAgICAgICAgICAgICBj
YXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZ
TUFYOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BS
RVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVg6CiAgICAgICAgICAgICAgICAgICAgIHNyY1JlY3Qu
c2V0WShpbWFnZSgpLT5oZWlnaHQoKSAtIHNyY1JlY3QuaGVpZ2h0KCkpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTEwNiwxNCArMTA2LDE0IEBACiAgICAg
ICAgICAgICBmbG9hdCBkZXN0VG9TcmNNdWx0aXBsaWVyID0gc3JjUmVjdC5oZWlnaHQoKSAvIGRl
c3RSZWN0LmhlaWdodCgpOwogICAgICAgICAgICAgc3JjUmVjdC5zZXRXaWR0aChkZXN0UmVjdC53
aWR0aCgpICogZGVzdFRvU3JjTXVsdGlwbGllcik7CiAgICAgICAgICAgICBzd2l0Y2goYXNwZWN0
UmF0aW8tPmFsaWduKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNSURZTUlOOgotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JRFlNSUQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlEWU1BWDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW86OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOOgorICAgICAgICAgICAgICAgIGNh
c2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlN
SUQ6CisgICAgICAgICAgICAgICAgY2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1BWDoKICAgICAgICAgICAgICAgICAgICAgc3JjUmVjdC5z
ZXRYKGltYWdlKCktPndpZHRoKCkgLyAyIC0gc3JjUmVjdC53aWR0aCgpIC8gMik7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1BWFlNSU46Ci0gICAgICAgICAgICAgICAgY2FzZSBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUFYWU1JRDoKLSAgICAgICAgICAgICAgICBjYXNlIFNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNQVhZTUFYOgorICAgICAgICAgICAgICAgIGNhc2UgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSU46CisgICAgICAgICAgICAgICAg
Y2FzZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFY
WU1JRDoKKyAgICAgICAgICAgICAgICBjYXNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYOgogICAgICAgICAgICAgICAgICAgICBzcmNSZWN0
LnNldFgoaW1hZ2UoKS0+d2lkdGgoKSAtIHNyY1JlY3Qud2lkdGgoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTcxLDcgKzE3MSw3IEBACiAgICAgICAg
IAogICAgIFNWR0ltYWdlRWxlbWVudCAqaW1hZ2VFbHQgPSBzdGF0aWNfY2FzdDxTVkdJbWFnZUVs
ZW1lbnQgKj4obm9kZSgpKTsKICAgICAgICAgCi0gICAgaWYgKGltYWdlRWx0LT5wcmVzZXJ2ZUFz
cGVjdFJhdGlvKCktPmFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fTk9ORSkKKyAg
ICBpZiAoaW1hZ2VFbHQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKS0+YWxpZ24oKSA9PSBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19OT05FKQogICAgICAgICBS
ZW5kZXJJbWFnZTo6cGFpbnQocGksIDAsIDApOwogICAgIGVsc2UgewogICAgICAgICBGbG9hdFJl
Y3QgZGVzdFJlY3QobV94LCBtX3ksIGNvbnRlbnRXaWR0aCgpLCBjb250ZW50SGVpZ2h0KCkpOwpJ
bmRleDogV2ViQ29yZS9rY2FudmFzL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva2NhbnZhcy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJD
b3JlL2tjYW52YXMvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDEwICs0
OSwxMSBAQAogewogICAgIFNWR1RleHRFbGVtZW50ICp0ZXh0ID0gc3RhdGljX2Nhc3Q8U1ZHVGV4
dEVsZW1lbnQgKj4oZWxlbWVudCgpKTsKIAotICAgIGZsb2F0IHhPZmZzZXQgPSB0ZXh0LT54KCkt
PmdldEZpcnN0KCkgPyB0ZXh0LT54KCktPmdldEZpcnN0KCktPnZhbHVlKCkgOiAwOwotICAgIGZs
b2F0IHlPZmZzZXQgPSB0ZXh0LT55KCktPmdldEZpcnN0KCkgPyB0ZXh0LT55KCktPmdldEZpcnN0
KCktPnZhbHVlKCkgOiAwOworICAgIFNWR0xlbmd0aCogeE9mZnNldCA9IHRleHQtPngoKS0+Z2V0
Rmlyc3QoKTsKKyAgICBTVkdMZW5ndGgqIHlPZmZzZXQgPSB0ZXh0LT55KCktPmdldEZpcnN0KCk7
CiAKLSAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCkudHJhbnNsYXRlKHhPZmZzZXQsIHlPZmZz
ZXQpOworICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKS50cmFuc2xhdGUoeE9mZnNldCA/IHhP
ZmZzZXQtPnZhbHVlKCkgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeU9mZnNldCA/IHlPZmZzZXQtPnZhbHVlKCkgOiAwKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdU
ZXh0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZ
KQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGludGVy
ZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsgCisgICAgLy8g
QWxpZ25tZW50IFR5cGVzCisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fVU5LTk9XTiAgID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19OT05FICAgICA9IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gPSAyOworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOID0gMzsKKyAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTiA9IDQ7CisgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQgPSA1
OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZ
TUlEID0gNjsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUFYWU1JRCA9IDc7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1JTllNQVggPSA4OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVT
RVJWRUFTUEVDVFJBVElPX1hNSURZTUFYID0gOTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCA9IDEwOworICAgIC8vIE1lZXQtb3Itc2xp
Y2UgVHlwZXMKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfVU5LTk9X
TiAgID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfTUVFVCAg
PSAxOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9TTElDRSA9IDI7
CisgICAgICAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGFsaWduOworICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZworICAgICAg
ICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKKyAgfTsKK307
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRlbXBsYXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oCShyZXZpc2lvbiAx
NjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAsODYgKzIwLDQ2IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRUZW1wbGF0ZV9ICi0jZGVmaW5lIEtT
VkdfU1ZHQW5pbWF0ZWRUZW1wbGF0ZV9ICisjaWZuZGVmIFNWR0FuaW1hdGVkVGVtcGxhdGVfSAor
I2RlZmluZSBTVkdBbmltYXRlZFRlbXBsYXRlX0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKLSNp
bmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2hhcmVkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBTVkdBbmdsZTsKKyAgICBjbGFzcyBTVkdMZW5ndGg7
CisgICAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBjbGFzcyBTdHJpbmc7Cisg
ICAgY2xhc3MgRmxvYXRSZWN0OwogCi0gICAgLy8gU1ZHQW5pbWF0ZWRUZW1wbGF0ZQotICAgIC8v
IC0gbGF6eSBjcmVhdGlvbiBvZiBiYXNlVmFsL2FuaW1WYWwKLSAgICAvLyAgIChubyBtb3JlIHdh
c3RlIG9mIG1vc3RseSB1bnVzZWQgYW5pbVZhbCB2YXJpYWJsZSEpCi0gICAgLy8gLSBub3QgZGly
ZWN0bHkgY3JlYXRhYmxlIChvbmx5IGJ5IGNoaWxkIGNsYXNzZXMpCi0gICAgLy8gLSBubyBjb3B5
IGN0b3Ivbm8gYXNzaWdubWVudCBvcGVyYXRvciBhdmFpbGFibGUKLSAgICAvLyAgICgtPiBhIGNs
YXNzIGZvciBvbmx5IGZvciBwb2ludGVyIHVzYWdlKQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0g
ICAgY2xhc3MgU1ZHQW5pbWF0ZWRUZW1wbGF0ZSA6IHB1YmxpYyBTaGFyZWQ8U1ZHQW5pbWF0ZWRU
ZW1wbGF0ZTxUPiA+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYXJlVHlwZT4KKyAgICBjbGFz
cyBTVkdBbmltYXRlZFRlbXBsYXRlIDogcHVibGljIFNoYXJlZDxTVkdBbmltYXRlZFRlbXBsYXRl
PEJhcmVUeXBlPiA+CisgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5p
bWF0ZWRUZW1wbGF0ZSgpCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICB2aXJ0dWFsIH5T
VkdBbmltYXRlZFRlbXBsYXRlKCkgeyB9CiAKLSAgICAgICAgVCAqYmFzZVZhbCgpIGNvbnN0Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmKCFtX2Jhc2VWYWwpCi0gICAgICAgICAgICAgICAgbV9i
YXNlVmFsID0gY3JlYXRlKCk7CisgICAgICAgIHZpcnR1YWwgQmFyZVR5cGUgYmFzZVZhbCgpIGNv
bnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldEJhc2VWYWwoQmFyZVR5cGUgbmV3QmFz
ZVZhbCkgPSAwOwogCi0gICAgICAgICAgICByZXR1cm4gbV9iYXNlVmFsLmdldCgpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdm9pZCBzZXRCYXNlVmFsKFQgKmJhc2VWYWwpIGNvbnN0Ci0gICAgICAg
IHsKLSAgICAgICAgICAgIG1fYmFzZVZhbCA9IGJhc2VWYWw7Ci0KLSAgICAgICAgICAgIGlmKG1f
Y29udGV4dCkKLSAgICAgICAgICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5n
ZSgpOwotCi0gICAgICAgICAgICBzZXRBbmltVmFsKGJhc2VWYWwpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgVCAqYW5pbVZhbCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKCFtX2Fu
aW1WYWwpCi0gICAgICAgICAgICAgICAgbV9hbmltVmFsID0gY3JlYXRlKCk7Ci0KLSAgICAgICAg
ICAgIHJldHVybiBtX2FuaW1WYWwuZ2V0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHNl
dEFuaW1WYWwoVCAqYW5pbVZhbCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgbV9hbmlt
VmFsID0gYW5pbVZhbDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gSSB0aGluayB0aGlz
IGlzIHN1cGVyZmx1b3VzLi4uIC0tIEVDUyA0LzI1LzA1Ci0gICAgICAgICAgICBpZihtX2NvbnRl
eHQpCi0gICAgICAgICAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNWR0FuaW1hdGVk
VGVtcGxhdGUoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHQW5p
bWF0ZWRUZW1wbGF0ZT4oKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2NvbnRleHQgPSBjb250
ZXh0OwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVGhpcyBtZXRob2RzIG5lZWQgdG8gYmUgcmVp
bXBsZW1lbnRlZC4gICAgICAgIAotICAgICAgICB2aXJ0dWFsIFQgKmNyZWF0ZSgpIGNvbnN0ID0g
MDsKLSAgICAgICAgLy92aXJ0dWFsIHZvaWQgYXNzaWduKFQgKnNyYywgVCAqZHN0KSBjb25zdCA9
IDA7Ci0KLSAgICAgICAgLy8gQXR0cmlidXRlIG5vdGlmaWNhdGlvbiBjb250ZXh0Ci0gICAgICAg
IGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLQotICAgIHByaXZhdGU6Ci0gICAg
ICAgIFNWR0FuaW1hdGVkVGVtcGxhdGUoY29uc3QgU1ZHQW5pbWF0ZWRUZW1wbGF0ZSAmKSB7IH0K
LSAgICAgICAgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxUPiAmb3BlcmF0b3I9KGNvbnN0IFNWR0FuaW1h
dGVkVGVtcGxhdGU8VD4gJikgeyB9Ci0gICAgICAgIAotICAgICAgICBtdXRhYmxlIFJlZlB0cjxU
PiBtX2Jhc2VWYWw7Ci0gICAgICAgIG11dGFibGUgUmVmUHRyPFQ+IG1fYW5pbVZhbDsKKyAgICAg
ICAgdmlydHVhbCBCYXJlVHlwZSBhbmltVmFsKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0QW5pbVZhbChCYXJlVHlwZSBuZXdBbmltVmFsKSA9IDA7CiAgICAgfTsKIAotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorICAgIC8vIENvbW1vbiB0eXBlIGRlZmluaXRpb25zLCB0byBl
YXNlIElETCBnZW5lcmF0aW9uLi4uCisgICAgdHlwZWRlZiBTVkdBbmltYXRlZFRlbXBsYXRlPFNW
R0FuZ2xlKj4gU1ZHQW5pbWF0ZWRBbmdsZTsKKyAgICB0eXBlZGVmIFNWR0FuaW1hdGVkVGVtcGxh
dGU8Ym9vbD4gU1ZHQW5pbWF0ZWRCb29sZWFuOworICAgIHR5cGVkZWYgU1ZHQW5pbWF0ZWRUZW1w
bGF0ZTxpbnQ+IFNWR0FuaW1hdGVkRW51bWVyYXRpb247CisgICAgdHlwZWRlZiBTVkdBbmltYXRl
ZFRlbXBsYXRlPGxvbmc+IFNWR0FuaW1hdGVkSW50ZWdlcjsKKyAgICB0eXBlZGVmIFNWR0FuaW1h
dGVkVGVtcGxhdGU8U1ZHTGVuZ3RoKj4gU1ZHQW5pbWF0ZWRMZW5ndGg7CisgICAgdHlwZWRlZiBT
VkdBbmltYXRlZFRlbXBsYXRlPGRvdWJsZT4gU1ZHQW5pbWF0ZWROdW1iZXI7CisgICAgdHlwZWRl
ZiBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qPiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgdHlwZWRlZiBTVkdBbmltYXRlZFRlbXBsYXRlPEZs
b2F0UmVjdD4gU1ZHQW5pbWF0ZWRSZWN0OworICAgIHR5cGVkZWYgU1ZHQW5pbWF0ZWRUZW1wbGF0
ZTxTdHJpbmc+IFNWR0FuaW1hdGVkU3RyaW5nOworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQK
LSNlbmRpZiAvLyBLU1ZHX1NWR0FuaW1hdGVkVGVtcGxhdGVfSAorI2VuZGlmIC8vIFNWR0FuaW1h
dGVkVGVtcGxhdGVfSAogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdOdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR051bWJl
ci5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTnVtYmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1NSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lm
ZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHTnVtYmVyLmgiCi0jaW5jbHVkZSAiU1ZHU3R5
bGVkRWxlbWVudC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHTnVtYmVyOjpT
VkdOdW1iZXIoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHTnVt
YmVyPigpCi17Ci0gICAgbV92YWx1ZSA9IDAuMDsKLSAgICBtX2NvbnRleHQgPSBjb250ZXh0Owot
fQotCi1TVkdOdW1iZXI6On5TVkdOdW1iZXIoKQotewotfQotCi1mbG9hdCBTVkdOdW1iZXI6OnZh
bHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92YWx1ZTsKLX0KLQotdm9pZCBTVkdOdW1iZXI6
OnNldFZhbHVlKGZsb2F0IHZhbHVlKQotewotICAgIG1fdmFsdWUgPSB2YWx1ZTsKLQotICAgIGlm
KG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsK
LX0KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAkocmV2aXNp
b24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBTVkdUcmFuc2Zvcm07CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgOiBwdWJsaWMgU1ZHQW5pbWF0
aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEzICs0NiwxMyBA
QAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4yLCBpbjIpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgX29wZXJhdG9yLCBf
b3BlcmF0b3IpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUs
IGRvdWJsZSwgSzEsIGsxKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
ZG91YmxlLCBkb3VibGUsIEsyLCBrMikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKGRvdWJsZSwgZG91YmxlLCBLMywgazMpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgSzQsIGs0KQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb21wb3NpdGVFbGVtZW50LCBTdHJpbmcsIFN0cmlu
ZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVD
b21wb3NpdGVFbGVtZW50LCBTdHJpbmcsIFN0cmluZywgSW4yLCBpbjIpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIGludCwgaW50
LCBfb3BlcmF0b3IsIF9vcGVyYXRvcikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEsxLCBrMSkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVu
dCwgZG91YmxlLCBkb3VibGUsIEsyLCBrMikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIEszLCBrMykK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9zaXRlRWxl
bWVudCwgZG91YmxlLCBkb3VibGUsIEs0LCBrNCkKICAgICAgICAgbXV0YWJsZSBLQ2FudmFzRkVD
b21wb3NpdGUgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4
ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
Ci0qLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWROdW1iZXJMaXN0SW1wbF9ICi0jZGVmaW5l
IEtTVkdfU1ZHQW5pbWF0ZWROdW1iZXJMaXN0SW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQot
I2luY2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLSNpbmNsdWRlICJTVkdOdW1iZXJMaXN0
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0IDogcHVibGljIFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHTnVtYmVyTGlzdD4KLSAgICB7Ci0g
ICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZE51bWJlckxpc3QoY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkTnVtYmVyTGlz
dCgpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFNWR051bWJlckxpc3QgKmNy
ZWF0ZSgpIGNvbnN0OwotICAgICAgICAvL3ZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHTnVtYmVyTGlz
dCAqc3JjLCBTVkdOdW1iZXJMaXN0ICpkc3QpIGNvbnN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQotLy8gdmltOnRz
PTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
aAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0g
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwK
LSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpZm5kZWYgS1NWR19TVkdB
bmltYXRlZEVudW1lcmF0aW9uSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTaGFyZWQuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50OwotCi0gICAg
Y2xhc3MgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiA6IHB1YmxpYyBTaGFyZWQ8U1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbj4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZEVudW1l
cmF0aW9uKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFs
IH5TVkdBbmltYXRlZEVudW1lcmF0aW9uKCk7Ci0KLSAgICAgICAgdW5zaWduZWQgc2hvcnQgYmFz
ZVZhbCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldEJhc2VWYWwodW5zaWduZWQgc2hvcnQgYmFz
ZVZhbCk7Ci0KLSAgICAgICAgdW5zaWduZWQgc2hvcnQgYW5pbVZhbCgpIGNvbnN0OwotICAgICAg
ICB2b2lkIHNldEFuaW1WYWwodW5zaWduZWQgc2hvcnQgYW5pbVZhbCk7Ci0KLSAgICBwcml2YXRl
OgotICAgICAgICB1bnNpZ25lZCBzaG9ydCBtX2Jhc2VWYWw7Ci0gICAgICAgIHVuc2lnbmVkIHNo
b3J0IG1fYW5pbVZhbDsKLQotICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICptX2NvbnRl
eHQ7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NV
UFBPUlQKLSNlbmRpZgotCi0vLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTdG9wRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0
b3BFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3Rv
cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogICAgICAgICAvLyAn
U1ZHU3RvcGxlbWVudCcgZnVuY3Rpb25zCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpOwogICAgIHByaXZhdGU6Ci0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgT2Zmc2V0LCBv
ZmZzZXQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTdG9wRWxl
bWVudCwgZG91YmxlLCBkb3VibGUsIE9mZnNldCwgb2Zmc2V0KQogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMiAr
NDUsMTIgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIERpZmZ1c2VD
b25zdGFudCwgZGlmZnVzZUNvbnN0YW50KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFN1cmZhY2VTY2FsZSwgc3VyZmFjZVNjYWxlKQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ29sb3IqLCBSZWZQdHI8U1ZH
Q29sb3I+LCBMaWdodGluZ0NvbG9yLCBsaWdodGluZ0NvbG9yKQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEtlcm5lbFVuaXRMZW5ndGhYLCBr
ZXJuZWxVbml0TGVuZ3RoWCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KGRvdWJsZSwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWSwga2VybmVsVW5pdExlbmd0aFkpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91
YmxlLCBEaWZmdXNlQ29uc3RhbnQsIGRpZmZ1c2VDb25zdGFudCkKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCwgZG91Ymxl
LCBkb3VibGUsIFN1cmZhY2VTY2FsZSwgc3VyZmFjZVNjYWxlKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBTVkdDb2xv
ciosIFJlZlB0cjxTVkdDb2xvcj4sIExpZ2h0aW5nQ29sb3IsIGxpZ2h0aW5nQ29sb3IpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0
aFgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBLZXJuZWxVbml0TGVuZ3RoWSwga2VybmVs
VW5pdExlbmd0aFkpCiAgICAgICAgIC8vbmVlZCBvdGhlciBwcm9wZXJ0aWVzIGhlcmUuLi4KICAg
ICAgICAgbXV0YWJsZSBLQ2FudmFzRkVEaWZmdXNlTGlnaHRpbmcgKm1fZmlsdGVyRWZmZWN0Owog
ICAgICAgICAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5pZGwJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5pZGwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZworeworICBpbnRlcmZhY2UgW0Nv
bmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRQb2ludHMgeyAKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHUG9pbnRMaXN0ICAgcG9pbnRzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2lu
dExpc3QgICBhbmltYXRlZFBvaW50czsKKyAgfTsKK307CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU1ZH
RWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBACiAgICAgICAgIHN0YXRp
YyBTVkdNYXRyaXgqIGNyZWF0ZVNWR01hdHJpeCgpOwogICAgICAgICBzdGF0aWMgRmxvYXRSZWN0
IGNyZWF0ZVNWR1JlY3QoKTsKICAgICAgICAgc3RhdGljIFNWR1RyYW5zZm9ybSogY3JlYXRlU1ZH
VHJhbnNmb3JtKCk7Ci0gICAgICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm0qIGNyZWF0ZVNWR1RyYW5z
Zm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4ICptYXRyaXgpOworICAgICAgICBzdGF0aWMgU1ZHVHJh
bnNmb3JtKiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCopOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0
dHIpOwogCkBAIC0xMjYsMTAgKzEyNiwxNSBAQAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQg
YWRkU1ZHV2luZG93RXZlbnRMaXN0bmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBBdHRyaWJ1dGUqIGF0dHIpOyAgIAogCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5n
dGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVu
Z3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWln
aHQsIGhlaWdodCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElP
TlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBGbG9hdFJlY3QsIFZp
ZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFS
QVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFByZXNlcnZl
QXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCisKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR1NWR0VsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBYLCB4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
U1ZHRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTVkdFbGVtZW50LCBTVkdMZW5ndGgq
LCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHU1ZHRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xl
bmd0aD4sIEhlaWdodCwgaGVpZ2h0KQorCiAgICAgICAgIGJvb2wgbV91c2VDdXJyZW50VmlldzsK
ICAgICAgICAgVGltZVNjaGVkdWxlciogbV90aW1lU2NoZWR1bGVyOwogICAgIH07CkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiAr
NTEsOSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHVVJJUmVmZXJlbmNlLCBTdHJpbmcs
IEhyZWYsIGhyZWYpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJ
T05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCisKICAgICAgICAgU3RyaW5nIG1f
dHlwZTsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVn
ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdl
ci5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVn
ZXIuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcKK3sKKyAgaW50
ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkSW50ZWdlciB7IAorICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBsb25nIGJhc2VWYWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
cmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxv
bmcgYW5pbVZhbDsKKyAgfTsKK307CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQAogU1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiAgICAgOiBT
VkdFbGVtZW50KHRhZ05hbWUsIGRvYykKICAgICAsIG1fdHlwZSgwKQotICAgICwgbV90YWJsZVZh
bHVlcyhuZXcgU1ZHTnVtYmVyTGlzdCgwKSkKKyAgICAsIG1fdGFibGVWYWx1ZXMobmV3IFNWR051
bWJlckxpc3QpCiAgICAgLCBtX3Nsb3BlKDAuMCkKICAgICAsIG1faW50ZXJjZXB0KDAuMCkKICAg
ICAsIG1fYW1wbGl0dWRlKDAuMCkKQEAgLTEwMyw3ICsxMDMsNyBAQAogICAgIFNWR051bWJlckxp
c3QgKm51bWJlcnMgPSB0YWJsZVZhbHVlcygpOwogICAgIHVuc2lnbmVkIGludCBuciA9IG51bWJl
cnMtPm51bWJlck9mSXRlbXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5y
OyBpKyspCi0gICAgICAgIGZ1bmMudGFibGVWYWx1ZXMuYXBwZW5kKG51bWJlcnMtPmdldEl0ZW0o
aSktPnZhbHVlKCkpOworICAgICAgICBmdW5jLnRhYmxlVmFsdWVzLmFwcGVuZChudW1iZXJzLT5n
ZXRJdGVtKGkpKTsKICAgICByZXR1cm4gZnVuYzsKIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHdvcmtpbmcgY29weSkKQEAgLTIw
LDIwICsyMCw0MCBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lm
bmRlZiBLU1ZHX1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbF9ICisjaWZuZGVmIEtTVkdfU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb19ICisjZGVmaW5lIEtTVkdfU1ZHUHJlc2VydmVBc3BlY3RSYXRpb19ICisKICNpZmRlZiBT
VkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU2hhcmVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGNsYXNzIFN0cmluZ0ltcGw7CiAgICAgY2xhc3MgU1ZHTWF0cml4OwogICAgIGNsYXNz
IFNWR1N0eWxlZEVsZW1lbnQ7CiAKICAgICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDog
cHVibGljIFNoYXJlZDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiB7IAogICAgIHB1YmxpYzoKKyAg
ICAgICAgZW51bSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZSB7CisgICAgICAgICAgICBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOICAgICA9IDAsCisgICAgICAgICAgICBTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19OT05FICAgICAgICA9IDEsCisgICAgICAgICAgICBTVkdfUFJFU0VS
VkVBU1BFQ1RSQVRJT19YTUlOWU1JTiAgICA9IDIsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVB
U1BFQ1RSQVRJT19YTUlEWU1JTiAgICA9IDMsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUFYWU1JTiAgICA9IDQsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlOWU1JRCAgICA9IDUsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUlEWU1JRCAgICA9IDYsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19Y
TUFYWU1JRCAgICA9IDcsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlO
WU1BWCAgICA9IDgsCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1B
WCAgICA9IDksCisgICAgICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCAg
ICA9IDEwCisgICAgICAgIH07CisKKyAgICAgICAgZW51bSBTVkdNZWV0T3JTbGljZVR5cGUgewor
ICAgICAgICAgICAgU1ZHX01FRVRPUlNMSUNFX1VOS05PV04gICAgPSAwLAorICAgICAgICAgICAg
U1ZHX01FRVRPUlNMSUNFX01FRVQgICAgICAgPSAxLAorICAgICAgICAgICAgU1ZHX01FRVRPUlNM
SUNFX1NMSUNFICAgICAgPSAyCisgICAgICAgIH07CisKICAgICAgICAgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbyhjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKICAgICAgICAgdmlydHVh
bCB+U1ZHUHJlc2VydmVBc3BlY3RSYXRpbygpOwogCkBAIC02MSw2ICs4MSw2IEBACiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmIC8vIEtTVkdf
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGxfSAorI2VuZGlmIC8vIEtTVkdfU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb19ICiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MywxMSArNDMsMTEgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmlu
ZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5n
LCBTdHJpbmcsIEluMiwgaW4yKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoaW50LCBpbnQsIFhDaGFubmVsU2VsZWN0b3IsIHhDaGFubmVsU2VsZWN0b3IpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgWUNoYW5uZWxTZWxlY3Rv
ciwgeUNoYW5uZWxTZWxlY3RvcikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKGRvdWJsZSwgZG91YmxlLCBTY2FsZSwgc2NhbGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFN0cmluZywgU3Ry
aW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbjIsIGluMikKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudCwgaW50LCBpbnQsIFhDaGFubmVsU2VsZWN0b3IsIHhDaGFubmVsU2VsZWN0b3IpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQsIGludCwgaW50LCBZQ2hhbm5lbFNlbGVjdG9yLCB5Q2hhbm5lbFNlbGVjdG9yKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU2NhbGUsIHNjYWxlKQogICAgICAgICBtdXRhYmxlIEtD
YW52YXNGRURpc3BsYWNlbWVudE1hcCogbV9maWx0ZXJFZmZlY3Q7CiAgICAgfTsKIApJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCShyZXZpc2lvbiAxNjMwMCkK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTEx
LTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZElu
dGVnZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkSW50ZWdl
cjo6U1ZHQW5pbWF0ZWRJbnRlZ2VyKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpIDog
U2hhcmVkPFNWR0FuaW1hdGVkSW50ZWdlcj4oKQotewotICAgIG1fYmFzZVZhbCA9IDA7Ci0gICAg
bV9hbmltVmFsID0gMDsKLQotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7Ci19Ci0KLVNWR0FuaW1h
dGVkSW50ZWdlcjo6flNWR0FuaW1hdGVkSW50ZWdlcigpCi17Ci19Ci0KLWxvbmcgU1ZHQW5pbWF0
ZWRJbnRlZ2VyOjpiYXNlVmFsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9iYXNlVmFsOwotfQot
Ci12b2lkIFNWR0FuaW1hdGVkSW50ZWdlcjo6c2V0QmFzZVZhbChsb25nIGJhc2VWYWwpCi17Ci0g
ICAgbV9iYXNlVmFsID0gYmFzZVZhbDsKLSAgICAKLSAgICAvLyBTcGVjOiBJZiB0aGUgZ2l2ZW4g
YXR0cmlidXRlIG9yIHByb3BlcnR5IGlzIG5vdCBjdXJyZW50bHkKLSAgICAvLyAgICAgICAgIGJl
aW5nIGFuaW1hdGVkLCBjb250YWlucyB0aGUgc2FtZSB2YWx1ZSBhcyAnYmFzZVZhbCcKLSAgICBt
X2FuaW1WYWwgPSBiYXNlVmFsOwotCi0gICAgaWYobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRl
eHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi1sb25nIFNWR0FuaW1hdGVkSW50ZWdl
cjo6YW5pbVZhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYW5pbVZhbDsKLX0KLQotdm9pZCBT
VkdBbmltYXRlZEludGVnZXI6OnNldEFuaW1WYWwobG9uZyBhbmltVmFsKQotewotICAgIG1fYW5p
bVZhbCA9IGFuaW1WYWw7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+
bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAv
LyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdSZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmVjdC5oCShyZXZpc2lvbiAxNjMwMCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2NSArMCww
IEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVj
dAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8K
LQotI2lmbmRlZiBLU1ZHX1NWR1JlY3RJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdSZWN0SW1wbF9I
Ci0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNoYXJlZC5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZQotewotICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnQ7Ci0gICAgY2xhc3MgU1ZHUmVj
dCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUmVjdD4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBT
VkdSZWN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFs
IH5TVkdSZWN0KCk7Ci0KLSAgICAgICAgLy8gJ1NWR1JlY3QnIGZ1bmN0aW9ucwotICAgICAgICBk
b3VibGUgeCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldFgoZG91YmxlIHZhbHVlKTsKLQotICAg
ICAgICBkb3VibGUgeSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldFkoZG91YmxlIHZhbHVlKTsK
LQotICAgICAgICBkb3VibGUgd2lkdGgoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRXaWR0aChk
b3VibGUgdmFsdWUpOwotCi0gICAgICAgIGRvdWJsZSBoZWlnaHQoKSBjb25zdDsKLSAgICAgICAg
dm9pZCBzZXRIZWlnaHQoZG91YmxlIHZhbHVlKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGRv
dWJsZSBtX3g7Ci0gICAgICAgIGRvdWJsZSBtX3k7Ci0gICAgICAgIGRvdWJsZSBtX3dpZHRoOwot
ICAgICAgICBkb3VibGUgbV9oZWlnaHQ7Ci0KLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCAqbV9jb250ZXh0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTWFza0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdNYXNrRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR01hc2tFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDEwICs2MCwxMyBAQAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgS0NhbnZhc0ltYWdlICpkcmF3TWFza2VyQ29udGVudCgp
OwogCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBS
ZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4s
IFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHVVJJUmVmZXJlbmNlLCBTdHJp
bmcsIEhyZWYsIGhyZWYpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFS
QVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCisgCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVm
UHRyPFNWR0xlbmd0aD4sIFgsIHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkp
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwg
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hc2tFbGVtZW50LCBTVkdMZW5ndGgqLCBS
ZWZQdHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCiAKICAgICAgICAgdmlydHVhbCBjb25z
dCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkocmV2aXNpb24gMTYzMDApCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNp
Zm5kZWYgS1NWR19TVkdUcmFuc2Zvcm1MaXN0SW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHVHJhbnNm
b3JtTGlzdEltcGxfSAorI2lmbmRlZiBLU1ZHX1NWR1RyYW5zZm9ybUxpc3RfSAorI2RlZmluZSBL
U1ZHX1NWR1RyYW5zZm9ybUxpc3RfSAorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUg
IlNWR0xpc3QuaCIKQEAgLTI5LDIxICszMCwyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSAgICBjbGFzcyBTVkdUcmFuc2Zvcm1MaXN0IDogcHVibGljIFNWR0xpc3Q8U1ZHVHJhbnNmb3Jt
PiB7CisgICAgY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR1RyYW5z
Zm9ybSo+CisgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdChjb25z
dCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1RyYW5zZm9ybUxp
c3QoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVHJhbnNmb3JtTGlzdCgpOwogCi0gICAgICAgIFNW
R1RyYW5zZm9ybSAqY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXggKm1hdHJp
eCkgY29uc3Q7Ci0gICAgICAgIFNWR1RyYW5zZm9ybSAqY29uc29saWRhdGUoKTsKKyAgICAgICAg
U1ZHVHJhbnNmb3JtKiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCopIGNv
bnN0OworICAgICAgICBTVkdUcmFuc2Zvcm0qIGNvbnNvbGlkYXRlKCk7CiAKICAgICAgICAgLy8g
SW50ZXJuYWwgdXNlIG9ubHkKLSAgICAgICAgU1ZHVHJhbnNmb3JtICpjb25jYXRlbmF0ZSgpIGNv
bnN0OworICAgICAgICBTVkdUcmFuc2Zvcm0qIGNvbmNhdGVuYXRlKCkgY29uc3Q7CiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRp
ZiAvLyBLU1ZHX1NWR1RyYW5zZm9ybUxpc3RJbXBsX0gKKyNlbmRpZiAvLyBLU1ZHX1NWR1RyYW5z
Zm9ybUxpc3RfSAogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZF
QmxlbmRFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVCbGVuZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQAogICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4yLCBpbjIpCi0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgTW9kZSwgbW9kZSkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQmxlbmRFbGVtZW50LCBTdHJpbmcs
IFN0cmluZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHRkVCbGVuZEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbjIsIGluMikKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQmxlbmRFbGVtZW50LCBpbnQsIGludCwg
TW9kZSwgbW9kZSkKICAgICAgICAgbXV0YWJsZSBLQ2FudmFzRkVCbGVuZCAqbV9maWx0ZXJFZmZl
Y3Q7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGludGVyZmFjZSBb
Q29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZEFuZ2xlIHsgCisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuZ2xlIGJhc2VWYWw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuZ2xlIGFu
aW1WYWw7CisgIH07Cit9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEx
ICszNCwxMSBAQAogCiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiAg
ICAgOiBTVkdUZXh0Q29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9jKQotICAgICwgbV94KG5ldyBT
VkdMZW5ndGhMaXN0KHRoaXMpKQotICAgICwgbV95KG5ldyBTVkdMZW5ndGhMaXN0KHRoaXMpKQot
ICAgICwgbV9keChuZXcgU1ZHTGVuZ3RoTGlzdCh0aGlzKSkKLSAgICAsIG1fZHkobmV3IFNWR0xl
bmd0aExpc3QodGhpcykpCi0gICAgLCBtX3JvdGF0ZShuZXcgU1ZHTnVtYmVyTGlzdCh0aGlzKSkK
KyAgICAsIG1feChuZXcgU1ZHTGVuZ3RoTGlzdCkKKyAgICAsIG1feShuZXcgU1ZHTGVuZ3RoTGlz
dCkKKyAgICAsIG1fZHgobmV3IFNWR0xlbmd0aExpc3QpCisgICAgLCBtX2R5KG5ldyBTVkdMZW5n
dGhMaXN0KQorICAgICwgbV9yb3RhdGUobmV3IFNWR051bWJlckxpc3QpCiB7CiB9CiAKQEAgLTY1
LDcgKzY1LDcgQEAKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmR5QXR0
cikKICAgICAgICAgZHlCYXNlVmFsdWUoKS0+cGFyc2UodmFsdWUuZGVwcmVjYXRlZFN0cmluZygp
LCB0aGlzLCBMTV9IRUlHSFQpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1l
czo6cm90YXRlQXR0cikKLSAgICAgICAgcm90YXRlQmFzZVZhbHVlKCktPnBhcnNlKHZhbHVlLmRl
cHJlY2F0ZWRTdHJpbmcoKSwgdGhpcyk7CisgICAgICAgIHJvdGF0ZUJhc2VWYWx1ZSgpLT5wYXJz
ZSh2YWx1ZS5kZXByZWNhdGVkU3RyaW5nKCkpOwogICAgIGVsc2UKICAgICAgICAgU1ZHVGV4dENv
bnRlbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUG9pbnRMaXN0LmNwcAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQb2ludExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMyArMjEsMTUgQEAK
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCisKICNpbmNs
dWRlICJTVkdQb2ludExpc3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVNWR1Bv
aW50TGlzdDo6U1ZHUG9pbnRMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06
IFNWR0xpc3Q8U1ZHUG9pbnQ+KGNvbnRleHQpCitTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCgp
CisgICAgOiBTVkdMaXN0PEZsb2F0UG9pbnQ+KCkKIHsKIH0KIApAQCAtMzUsNiArMzcsNiBAQAog
ewogfQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmlt
OnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDggQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2lmZGVmIFNWR19TVVBQT1JUCisKKyNpbmNsdWRlICJTVkdDb2xv
ci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCIKICNpbmNsdWRlICJLU1ZH
VGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTMgKzIy
LDE1IEBACiAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKKwog
I2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0LmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdQYXRoU2VnTGlzdDo6U1ZHUGF0aFNlZ0xpc3QoY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkKLTogU1ZHTGlzdDxTVkdQYXRoU2VnPihjb250
ZXh0KQorU1ZHUGF0aFNlZ0xpc3Q6OlNWR1BhdGhTZWdMaXN0KCkKKyAgICA6IFNWR0xpc3Q8U1ZH
UGF0aFNlZyo+KCkKIHsKIH0KIApAQCAtMzYsNiArMzgsOCBAQAogewogfQogCi0vLyB2aW06dHM9
NDpub2V0Cit9CisKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0Cklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1MyArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JU
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotU1ZHQW5pbWF0ZWRBbmdsZTo6U1ZHQW5pbWF0ZWRBbmdsZShjb25zdCBTVkdTdHlsZWRF
bGVtZW50ICpjb250ZXh0KQotOiBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR0FuZ2xlPihjb250ZXh0
KQotewotfQotCi1TVkdBbmltYXRlZEFuZ2xlOjp+U1ZHQW5pbWF0ZWRBbmdsZSgpCi17Ci19Ci0K
LVNWR0FuZ2xlICpTVkdBbmltYXRlZEFuZ2xlOjpjcmVhdGUoKSBjb25zdAotewotICAgIHJldHVy
biBuZXcgU1ZHQW5nbGUobV9jb250ZXh0KTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZEFuZ2xlOjph
c3NpZ24oU1ZHQW5nbGUgKnNyYywgU1ZHQW5nbGUgKmRzdCkgY29uc3QKLXsKLSAgICBpZighc3Jj
IHx8ICFkc3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRzdC0+c2V0VmFsdWVBc1N0cmluZyhz
cmMtPnZhbHVlQXNTdHJpbmcoKSk7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBT
VkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAJKHJl
dmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQsMTIgKzI0LDExIEBACiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAog
I2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCi0jaW5jbHVkZSAiU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlNW
R0ZpdFRvVmlld0JveC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJl
c2VydmVBc3BlY3RSYXRpby5oIgotI2luY2x1ZGUgIlNWR1JlY3QuaCIKICNpbmNsdWRlICJTVkdT
VkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgInN2Z3BhdGhw
YXJzZXIuaCIKQEAgLTM3LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHRml0
VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3goKQotICAgIDogbV92aWV3Qm94KG5ldyBTVkdSZWN0
KDApKQorICAgIDogbV92aWV3Qm94KCkKICAgICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhuZXcg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbygwKSkKIHsKIH0KQEAgLTQ2LDcgKzQ1LDcgQEAKIHsKIH0K
IAotQU5JTUFURURfUFJPUEVSVFlfREVGSU5JVElPTlNfV0lUSF9DT05URVhUKFNWR0ZpdFRvVmll
d0JveCwgU1ZHUmVjdCosIFJlY3QsIHJlY3QsIFZpZXdCb3gsIHZpZXdCb3gsIFNWR05hbWVzOjp2
aWV3Qm94QXR0ci5sb2NhbE5hbWUoKSwgbV92aWV3Qm94LmdldCgpKQorQU5JTUFURURfUFJPUEVS
VFlfREVGSU5JVElPTlNfV0lUSF9DT05URVhUKFNWR0ZpdFRvVmlld0JveCwgRmxvYXRSZWN0LCBS
ZWN0LCByZWN0LCBWaWV3Qm94LCB2aWV3Qm94LCBTVkdOYW1lczo6dmlld0JveEF0dHIubG9jYWxO
YW1lKCksIG1fdmlld0JveCkKIEFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX1dJVEhfQ09O
VEVYVChTVkdGaXRUb1ZpZXdCb3gsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qLCBQcmVzZXJ2ZUFz
cGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIubG9jYWxO
YW1lKCksIG1fcHJlc2VydmVBc3BlY3RSYXRpby5nZXQoKSkKIAogdm9pZCBTVkdGaXRUb1ZpZXdC
b3g6OnBhcnNlVmlld0JveChjb25zdCBTdHJpbmcmIHN0cikKQEAgLTc4LDEwICs3Nyw3IEBACiAg
ICAgaWYgKHAgPCBlbmQpIC8vIG5vdGhpbmcgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhlIGxhc3QsIGZv
dXJ0aCBudW1iZXIKICAgICAgICAgZ290byBiYWlsX291dDsKIAotICAgIHZpZXdCb3hCYXNlVmFs
dWUoKS0+c2V0WCh4KTsKLSAgICB2aWV3Qm94QmFzZVZhbHVlKCktPnNldFkoeSk7Ci0gICAgdmll
d0JveEJhc2VWYWx1ZSgpLT5zZXRXaWR0aCh3KTsKLSAgICB2aWV3Qm94QmFzZVZhbHVlKCktPnNl
dEhlaWdodChoKTsKKyAgICBzZXRWaWV3Qm94QmFzZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3LCBo
KSk7CiAgICAgcmV0dXJuOwogCiBiYWlsX291dDo7CkBAIC05MCwxMiArODYsMTIgQEAKIAogU1ZH
TWF0cml4KiBTVkdGaXRUb1ZpZXdCb3g6OnZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmll
d1dpZHRoLCBmbG9hdCB2aWV3SGVpZ2h0KSBjb25zdAogewotICAgIFNWR1JlY3QqIHZpZXdCb3hS
ZWN0ID0gdmlld0JveCgpOwotICAgIGlmKHZpZXdCb3hSZWN0LT53aWR0aCgpID09IDAgfHwgdmll
d0JveFJlY3QtPmhlaWdodCgpID09IDApCisgICAgRmxvYXRSZWN0IHZpZXdCb3hSZWN0ID0gdmll
d0JveCgpOworICAgIGlmICghdmlld0JveFJlY3Qud2lkdGgoKSB8fCAhdmlld0JveFJlY3QuaGVp
Z2h0KCkpCiAgICAgICAgIHJldHVybiBTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdNYXRyaXgoKTsK
IAotICAgIHJldHVybiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPmdldENUTSh2aWV3Qm94UmVjdC0+
eCgpLAotICAgICAgICAgICAgdmlld0JveFJlY3QtPnkoKSwgdmlld0JveFJlY3QtPndpZHRoKCks
IHZpZXdCb3hSZWN0LT5oZWlnaHQoKSwKKyAgICByZXR1cm4gcHJlc2VydmVBc3BlY3RSYXRpbygp
LT5nZXRDVE0odmlld0JveFJlY3QueCgpLAorICAgICAgICAgICAgdmlld0JveFJlY3QueSgpLCB2
aWV3Qm94UmVjdC53aWR0aCgpLCB2aWV3Qm94UmVjdC5oZWlnaHQoKSwKICAgICAgICAgICAgIDAs
IDAsIHZpZXdXaWR0aCwgdmlld0hlaWdodCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2
MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiBTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudDo6U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYykKICAgICA6IFNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnQodGFnTmFtZSwgZG9jKQogICAgICwgU1ZHVHJhbnNmb3JtYWJsZSgpCi0gICAgLCBtX3Ry
YW5zZm9ybShuZXcgU1ZHVHJhbnNmb3JtTGlzdCh0aGlzKSkKKyAgICAsIG1fdHJhbnNmb3JtKG5l
dyBTVkdUcmFuc2Zvcm1MaXN0KQogewogfQogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZE51bWJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkTnVtYmVyLmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWROdW1iZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZH
X1NWR0FuaW1hdGVkTnVtYmVySW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWROdW1iZXJJ
bXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSAiU2hhcmVkLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKLQotICAgIGNsYXNz
IFNWR0FuaW1hdGVkTnVtYmVyIDogcHVibGljIFNoYXJlZDxTVkdBbmltYXRlZE51bWJlcj4KLSAg
ICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZE51bWJlcihjb25zdCBTVkdTdHls
ZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWROdW1iZXIo
KTsKLQotICAgICAgICBmbG9hdCBiYXNlVmFsKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QmFz
ZVZhbChmbG9hdCBiYXNlVmFsKTsKLQotICAgICAgICBmbG9hdCBhbmltVmFsKCkgY29uc3Q7Ci0g
ICAgICAgIHZvaWQgc2V0QW5pbVZhbChmbG9hdCBhbmltVmFsKTsKLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIGZsb2F0IG1fYmFzZVZhbDsKLSAgICAgICAgZmxvYXQgbV9hbmltVmFsOwotCi0gICAg
ICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKm1fY29udGV4dDsKLSAgICB9OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZp
bTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgLCBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKCkKICAgICAsIG1fc3ByZWFkTWV0aG9kKDApCiAgICAgLCBtX2dy
YWRpZW50VW5pdHMoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKLSAgICAsIG1fZ3Jh
ZGllbnRUcmFuc2Zvcm0obmV3IFNWR1RyYW5zZm9ybUxpc3QodGhpcykpCisgICAgLCBtX2dyYWRp
ZW50VHJhbnNmb3JtKG5ldyBTVkdUcmFuc2Zvcm1MaXN0KQogewogICAgIG1fcmVzb3VyY2UgPSAw
OwogfQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtk
ZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxp
c3QuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdDo6U1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU1ZHQW5pbWF0
ZWRUZW1wbGF0ZTxTVkdUcmFuc2Zvcm1MaXN0Pihjb250ZXh0KQotewotfQotCi1TVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3Q6On5TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QoKQotewotfQotCi1TVkdU
cmFuc2Zvcm1MaXN0ICpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q6OmNyZWF0ZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG5ldyBTVkdUcmFuc2Zvcm1MaXN0KG1fY29udGV4dCk7Ci19Ci0KLS8vdm9p
ZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q6OmFzc2lnbihTVkdUcmFuc2Zvcm1MaXN0ICpzcmMs
IFNWR1RyYW5zZm9ybUxpc3QgKmRzdCkgY29uc3QKLS8vewotLy8gICAgaWYoIXNyYyB8fCAhZHN0
KQotLy8gICAgICAgIHJldHVybjsKLS8vICAgIAotLy8gICAgLy8gVXNlIFNWR0xpc3Q8U1ZHVHJh
bnNmb3JtPjo6b3BlcmF0b3I9Ci0vLyAgICAqZHN0ID0gKnNyYzsKLS8vfQotCi0vLyB2aW06dHM9
NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NTQgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1
ZGUgIlNWR0xlbmd0aExpc3QuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aExpc3QuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkTGVuZ3RoTGlzdDo6U1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpIDogU1ZH
QW5pbWF0ZWRUZW1wbGF0ZTxTVkdMZW5ndGhMaXN0Pihjb250ZXh0KQotewotfQotCi1TVkdBbmlt
YXRlZExlbmd0aExpc3Q6On5TVkdBbmltYXRlZExlbmd0aExpc3QoKQotewotfQotCi1TVkdMZW5n
dGhMaXN0ICpTVkdBbmltYXRlZExlbmd0aExpc3Q6OmNyZWF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG5ldyBTVkdMZW5ndGhMaXN0KG1fY29udGV4dCk7Ci19Ci0KLS8vdm9pZCBTVkdBbmltYXRl
ZExlbmd0aExpc3Q6OmFzc2lnbihTVkdMZW5ndGhMaXN0ICpzcmMsIFNWR0xlbmd0aExpc3QgKmRz
dCkgY29uc3QKLS8vewotLy8gICAgaWYoIXNyYyB8fCAhZHN0KQotLy8gICAgICAgIHJldHVybjsK
LS8vCi0vLyAgICAvLyBVc2UgU1ZHTGlzdDxTVkdMZW5ndGg+OjpvcGVyYXRvcj0KLS8vICAgICpk
c3QgPSAqc3JjOwotLy99Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkocmV2aXNpb24g
MTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTMsNyArNTMsMTAgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgQ2xp
cFBhdGhVbml0cywgY2xpcFBhdGhVbml0cykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9S
V0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKworICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2xpcFBhdGhFbGVtZW50LCBp
bnQsIGludCwgQ2xpcFBhdGhVbml0cywgY2xpcFBhdGhVbml0cykKKwogICAgICAgICBLQ2FudmFz
Q2xpcHBlciAqbV9jbGlwcGVyOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkUmVjdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRSZWN0LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkUmVjdC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2Zworewor
ICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRSZWN0IHsgCisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR1JlY3QgYmFzZVZhbDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHUmVjdCBhbmltVmFsOworICB9OworfTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZE51bWJlci5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0g
ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBr
ZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBT
dWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdTdHlsZWRFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLVNWR0FuaW1hdGVkTnVtYmVyOjpTVkdBbmltYXRlZE51bWJlcihjb25zdCBT
VkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNoYXJlZDxTVkdBbmltYXRlZE51bWJlcj4oKQot
ewotICAgIG1fYmFzZVZhbCA9IDA7Ci0gICAgbV9hbmltVmFsID0gMDsKLQotICAgIG1fY29udGV4
dCA9IGNvbnRleHQ7Ci19Ci0KLVNWR0FuaW1hdGVkTnVtYmVyOjp+U1ZHQW5pbWF0ZWROdW1iZXIo
KQotewotfQotCi1mbG9hdCBTVkdBbmltYXRlZE51bWJlcjo6YmFzZVZhbCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fYmFzZVZhbDsKLX0KLQotdm9pZCBTVkdBbmltYXRlZE51bWJlcjo6c2V0QmFz
ZVZhbChmbG9hdCBiYXNlVmFsKQotewotICAgIG1fYmFzZVZhbCA9IGJhc2VWYWw7Ci0gICAgCi0g
ICAgLy8gU3BlYzogSWYgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvciBwcm9wZXJ0eSBpcyBub3QgY3Vy
cmVudGx5Ci0gICAgLy8gICAgICAgICBiZWluZyBhbmltYXRlZCwgY29udGFpbnMgdGhlIHNhbWUg
dmFsdWUgYXMgJ2Jhc2VWYWwnCi0gICAgbV9hbmltVmFsID0gYmFzZVZhbDsKLQotICAgIGlmKG1f
Y29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKLX0K
LQotZmxvYXQgU1ZHQW5pbWF0ZWROdW1iZXI6OmFuaW1WYWwoKSBjb25zdAotewotICAgIHJldHVy
biBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWROdW1iZXI6OnNldEFuaW1WYWwoZmxv
YXQgYW5pbVZhbCkKLXsKLSAgICBtX2FuaW1WYWwgPSBhbmltVmFsOwotCi0gICAgaWYobV9jb250
ZXh0KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi0v
LyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDkgKzQ3LDkgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4s
IGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFR5
cGUsIHR5cGUpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdOdW1i
ZXJMaXN0KiwgUmVmUHRyPFNWR051bWJlckxpc3Q+LCBWYWx1ZXMsIHZhbHVlcykKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LCBT
dHJpbmcsIFN0cmluZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQsIGludCwgaW50LCBUeXBlLCB0eXBlKQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQsIFNWR051bWJlckxpc3QqLCBSZWZQdHI8U1ZHTnVtYmVyTGlzdD4sIFZhbHVlcywgdmFsdWVz
KQogICAgICAgICBtdXRhYmxlIEtDYW52YXNGRUNvbG9yTWF0cml4ICptX2ZpbHRlckVmZmVjdDsK
ICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHJldmlz
aW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1NSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAg
ICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3Rvbiwg
TUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNW
R19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0LmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFJlY3Q6OlNWR0FuaW1hdGVkUmVjdChjb25zdCBTVkdT
dHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHUmVjdD4oY29u
dGV4dCkKLXsKLX0KLQotU1ZHQW5pbWF0ZWRSZWN0Ojp+U1ZHQW5pbWF0ZWRSZWN0KCkKLXsKLX0K
LQotU1ZHUmVjdCAqU1ZHQW5pbWF0ZWRSZWN0OjpjcmVhdGUoKSBjb25zdAotewotICAgIHJldHVy
biBuZXcgU1ZHUmVjdChtX2NvbnRleHQpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUmVjdDo6YXNz
aWduKFNWR1JlY3QgKnNyYywgU1ZHUmVjdCAqZHN0KSBjb25zdAotewotICAgIGlmKCFzcmMgfHwg
IWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGRzdC0+c2V0WChzcmMtPngoKSk7Ci0g
ICAgZHN0LT5zZXRZKHNyYy0+eSgpKTsKLSAgICBkc3QtPnNldFdpZHRoKHNyYy0+d2lkdGgoKSk7
Ci0gICAgZHN0LT5zZXRIZWlnaHQoc3JjLT5oZWlnaHQoKSk7Ci19Ci0KLS8vIHZpbTp0cz00Om5v
ZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdM
ZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhM
aXN0LmNwcAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhM
aXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsOSBAQAogKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKKwogI2luY2x1ZGUgIkRlcHJlY2F0ZWRT
dHJpbmdMaXN0LmgiCiAKICNpbmNsdWRlICJTVkdNYXRyaXguaCIKQEAgLTMwLDggKzMyLDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdMZW5ndGhMaXN0OjpTVkdMZW5ndGhMaXN0KGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi0gICAgOiBTVkdMaXN0PFNWR0xlbmd0aD4o
Y29udGV4dCkKK1NWR0xlbmd0aExpc3Q6OlNWR0xlbmd0aExpc3QoKQorICAgIDogU1ZHTGlzdDxT
VkdMZW5ndGgqPigpCiB7CiB9CiAKQEAgLTM5LDExICs0MSwxMSBAQAogewogfQogCi12b2lkIFNW
R0xlbmd0aExpc3Q6OnBhcnNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcgJnZhbHVlLCBjb25zdCBT
VkdTdHlsZWRFbGVtZW50ICpjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUpCit2b2lkIFNWR0xlbmd0
aExpc3Q6OnBhcnNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcmIHZhbHVlLCBjb25zdCBTVkdTdHls
ZWRFbGVtZW50KiBjb250ZXh0LCBMZW5ndGhNb2RlIG1vZGUpCiB7CiAgICAgRGVwcmVjYXRlZFN0
cmluZ0xpc3QgbGVuZ3RocyA9IERlcHJlY2F0ZWRTdHJpbmdMaXN0OjpzcGxpdCgnICcsIHZhbHVl
KTsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGxlbmd0aHMuY291bnQoKTsgaSsr
KSB7Ci0gICAgICAgIFNWR0xlbmd0aCAqbGVuZ3RoID0gbmV3IFNWR0xlbmd0aChjb250ZXh0LCBt
b2RlKTsKKyAgICAgICAgU1ZHTGVuZ3RoKiBsZW5ndGggPSBuZXcgU1ZHTGVuZ3RoKGNvbnRleHQs
IG1vZGUpOwogICAgICAgICBTdHJpbmcgc3RyKGxlbmd0aHNbaV0pOwogICAgICAgICBsZW5ndGgt
PnNldFZhbHVlQXNTdHJpbmcoc3RyKTsKICAgICAgICAgYXBwZW5kSXRlbShsZW5ndGgpOwpAQCAt
NTIsNiArNTQsNiBAQAogCiB9CiAKLS8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQ
UE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3QuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyAr
MCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1h
bm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJv
amVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgot
Ki8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGxfSAotI2RlZmlu
ZSBLU1ZHX1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JU
Ci0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFRlbXBsYXRlLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNm
b3JtTGlzdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdUcmFuc2Zvcm1M
aXN0PiB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QoY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdCgpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFNW
R1RyYW5zZm9ybUxpc3QgKmNyZWF0ZSgpIGNvbnN0OwotICAgICAgICAvL3ZpcnR1YWwgdm9pZCBh
c3NpZ24oU1ZHVHJhbnNmb3JtTGlzdCAqc3JjLCBTVkdUcmFuc2Zvcm1MaXN0ICpkc3QpIGNvbnN0
OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCi0jZW5kaWYgLy8gS1NWR19TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsX0gKLQotLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGlzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpc3QuaAkocmV2aXNpb24gMTYzMDApCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcxICsyMiwx
MzIgQEAKIAogI2lmbmRlZiBLU1ZHX1NWR0xpc3RfSAogI2RlZmluZSBLU1ZHX1NWR0xpc3RfSAor
CiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgIkRPTUxpc3QuaCIKLSNpbmNsdWRlIDxr
c3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAor
I2luY2x1ZGUgIlNoYXJlZC5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBUPgotICAgIGNsYXNzIFNWR0xpc3QgOiBwdWJsaWMgRE9NTGlzdDxUPiB7CisgICAgLy8g
VE9ETzogV2Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIHBhc3MgRXhjZXB0aW9uQ29kZXMgYXJvdW5k
IGhlcmUuLi4KKworICAgIHRlbXBsYXRlPGNsYXNzIEl0ZW0+CisgICAgY2xhc3MgU1ZHTGlzdEJh
c2UgOiBwdWJsaWMgU2hhcmVkPFNWR0xpc3RCYXNlPEl0ZW0+ID4KKyAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQgPSAwKQot
ICAgICAgICA6IERPTUxpc3Q8VD4oKSwgbV9jb250ZXh0KGNvbnRleHQpIHt9CisgICAgICAgIFNW
R0xpc3RCYXNlKCkgeyB9CisgICAgICAgIHZpcnR1YWwgflNWR0xpc3RCYXNlKCkgeyB9CiAKLSAg
ICAgICAgdm9pZCBjbGVhcigpCisgICAgICAgIHZpcnR1YWwgSXRlbSBudWxsSXRlbSgpIGNvbnN0
ID0gMDsKKworICAgICAgICB1bnNpZ25lZCBpbnQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0IHsgcmV0
dXJuIG1fdmVjdG9yLnNpemUoKTsgfQorICAgICAgICB2b2lkIGNsZWFyKCkgeyBtX3ZlY3Rvci5j
bGVhcigpOyB9CisKKyAgICAgICAgSXRlbSBpbml0aWFsaXplKEl0ZW0gbmV3SXRlbSkKICAgICAg
ICAgewotICAgICAgICAgICAgRE9NTGlzdDxUPjo6Y2xlYXIoKTsKKyAgICAgICAgICAgIGNsZWFy
KCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kSXRlbShuZXdJdGVtKTsKKyAgICAgICAgfQog
Ci0gICAgICAgICAgICBpZihtX2NvbnRleHQpCi0gICAgICAgICAgICAgICAgbV9jb250ZXh0LT5u
b3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKKyAgICAgICAgSXRlbSBnZXRGaXJzdCgpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX3ZlY3Rvci5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxJdGVtKCk7CisKKyAgICAgICAgICAgIHJldHVybiBtX3ZlY3Rvci5m
aXJzdCgpOwogICAgICAgICB9CiAKLSAgICAgICAgVCAqaW5zZXJ0SXRlbUJlZm9yZShUICpuZXdJ
dGVtLCB1bnNpZ25lZCBpbnQgaW5kZXgpCisgICAgICAgIEl0ZW0gZ2V0TGFzdCgpIGNvbnN0CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIFQgKnJldCA9IERPTUxpc3Q8VD46Omluc2VydEl0ZW1CZWZv
cmUobmV3SXRlbSwgaW5kZXgpOworICAgICAgICAgICAgaWYgKG1fdmVjdG9yLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbEl0ZW0oKTsKIAotICAgICAgICAgICAgaWYobV9j
b250ZXh0KQotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdl
KCk7CisgICAgICAgICAgICByZXR1cm4gbV92ZWN0b3IubGFzdCgpOworICAgICAgICB9CiAKLSAg
ICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEl0ZW0gZ2V0SXRlbSh1bnNpZ25lZCBpbnQg
aW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX3ZlY3Rvci5zaXplKCkgPCBpbmRl
eCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbEl0ZW0oKTsKKworICAgICAgICAgICAgcmV0
dXJuIG1fdmVjdG9yLmF0KGluZGV4KTsKICAgICAgICAgfQogCi0gICAgICAgIFQgKnJlcGxhY2VJ
dGVtKFQgKm5ld0l0ZW0sIHVuc2lnbmVkIGludCBpbmRleCkKKyAgICAgICAgY29uc3QgSXRlbSBn
ZXRJdGVtKHVuc2lnbmVkIGludCBpbmRleCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAg
VCAqcmV0ID0gRE9NTGlzdDxUPjo6cmVwbGFjZUl0ZW0obmV3SXRlbSwgaW5kZXgpOworICAgICAg
ICAgICAgaWYgKG1fdmVjdG9yLnNpemUoKSA8IGluZGV4KQorICAgICAgICAgICAgICAgIHJldHVy
biBudWxsSXRlbSgpOwogCi0gICAgICAgICAgICBpZihtX2NvbnRleHQpCi0gICAgICAgICAgICAg
ICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKKyAgICAgICAgICAgIHJldHVy
biBtX3ZlY3Rvci5hdChpbmRleCk7CisgICAgICAgIH0KIAotICAgICAgICAgICAgcmV0dXJuIHJl
dDsKKyAgICAgICAgSXRlbSBpbnNlcnRJdGVtQmVmb3JlKEl0ZW0gbmV3SXRlbSwgdW5zaWduZWQg
aW50IGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBtX3ZlY3Rvci5pbnNlcnQoaW5kZXgs
IG5ld0l0ZW0pOworICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07CiAgICAgICAgIH0KIAotICAg
ICAgICBUICpyZW1vdmVJdGVtKHVuc2lnbmVkIGludCBpbmRleCkKKyAgICAgICAgSXRlbSByZXBs
YWNlSXRlbShJdGVtIG5ld0l0ZW0sIHVuc2lnbmVkIGludCBpbmRleCkKICAgICAgICAgewotICAg
ICAgICAgICAgVCAqcmV0ID0gRE9NTGlzdDxUPjo6cmVtb3ZlSXRlbShpbmRleCk7CisgICAgICAg
ICAgICBpZiAobV92ZWN0b3Iuc2l6ZSgpIDwgaW5kZXgpCisgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxJdGVtKCk7CiAKLSAgICAgICAgICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgICAgICAg
ICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotCi0gICAgICAgICAgICByZXR1
cm4gcmV0OworICAgICAgICAgICAgbV92ZWN0b3IuYXQoaW5kZXgpID0gbmV3SXRlbTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXdJdGVtOwogICAgICAgICB9CiAKLSAgICAgICAgVCAqYXBwZW5kSXRl
bShUICpuZXdJdGVtKQorICAgICAgICBJdGVtIHJlbW92ZUl0ZW0odW5zaWduZWQgaW50IGluZGV4
KQogICAgICAgICB7Ci0gICAgICAgICAgICBUICpyZXQgPSBET01MaXN0PFQ+OjphcHBlbmRJdGVt
KG5ld0l0ZW0pOworICAgICAgICAgICAgaWYgKG1fdmVjdG9yLnNpemUoKSA8IGluZGV4KQorICAg
ICAgICAgICAgICAgIHJldHVybiBudWxsSXRlbSgpOwogCi0gICAgICAgICAgICBpZihtX2NvbnRl
eHQpCi0gICAgICAgICAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsK
KyAgICAgICAgICAgIEl0ZW0gaXRlbSA9IG1fdmVjdG9yLmF0KGluZGV4KTsKKyAgICAgICAgICAg
IHJlbW92ZShpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gaXRlbTsKKyAgICAgICAgfQogCi0g
ICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgSXRl
bSBpdGVtKQorICAgICAgICB7CisgICAgICAgICAgICBtX3ZlY3Rvci5yZW1vdmUoaXRlbSk7CiAg
ICAgICAgIH0KIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCAqbV9jb250ZXh0OworICAgICAgICBJdGVtIGFwcGVuZEl0ZW0oSXRlbSBuZXdJdGVtKQorICAg
ICAgICB7CisgICAgICAgICAgICBtX3ZlY3Rvci5hcHBlbmQobmV3SXRlbSk7CisgICAgICAgICAg
ICByZXR1cm4gbmV3SXRlbTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVj
dG9yPEl0ZW0+IG1fdmVjdG9yOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVtPgor
ICAgIGNsYXNzIFNWR0xpc3QgOiBwdWJsaWMgU1ZHTGlzdEJhc2U8SXRlbT4KKyAgICB7CisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIEl0ZW0gbnVsbEl0ZW0oKSBjb25zdCB7IHJldHVybiAw
OyB9CisgICAgfTsKKworCS8vIFNwZWNpYWxpemF0aW9uIGZvciBTdHJpbmcuLi4KKwl0ZW1wbGF0
ZTw+CisgICAgY2xhc3MgU1ZHTGlzdDxTdHJpbmc+IDogcHVibGljIFNWR0xpc3RCYXNlPFN0cmlu
Zz4KKyAgICB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIFN0cmluZyBudWxsSXRlbSgp
IGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgfTsKKworCS8vIFNwZWNpYWxpemF0aW9u
IGZvciBGbG9hdFBvaW50Li4uCisJdGVtcGxhdGU8PgorICAgIGNsYXNzIFNWR0xpc3Q8RmxvYXRQ
b2ludD4gOiBwdWJsaWMgU1ZHTGlzdEJhc2U8RmxvYXRQb2ludD4KKyAgICB7CisgICAgcHVibGlj
OgorICAgICAgICB2aXJ0dWFsIEZsb2F0UG9pbnQgbnVsbEl0ZW0oKSBjb25zdCB7IHJldHVybiBG
bG9hdFBvaW50KCk7IH0KKyAgICB9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBTVkdfU1VQUE9SVApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAko
cmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDggQEAKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IG11dGFibGUgYm9vbCBtX2luc2lkZVJlbmRlclNlY3Rpb247CisKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHU3ltYm9sRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTAgQEAK
ICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CisgCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQpICAgICAgIAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xB
UkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3
Qm94LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUG9pbnQuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5NCArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHUG9pbnQuaCIKLQotI2lu
Y2x1ZGUgIlNWR01hdHJpeC5oIgotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNs
dWRlICJJbnRQb2ludC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNWR1BvaW50OjpTVkdQ
b2ludChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQotewotICAgIG1feCA9IDAuMDsK
LSAgICBtX3kgPSAwLjA7Ci0gICAgbV9jb250ZXh0ID0gY29udGV4dDsKLX0KLQotU1ZHUG9pbnQ6
OlNWR1BvaW50KGZsb2F0IHgsIGZsb2F0IHksIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRl
eHQpCi17Ci0gICAgbV94ID0geDsKLSAgICBtX3kgPSB5OwotICAgIG1fY29udGV4dCA9IGNvbnRl
eHQ7Ci19Ci0KLVNWR1BvaW50OjpTVkdQb2ludChjb25zdCBJbnRQb2ludCAmcCwgY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCAqY29udGV4dCkKLXsKLSAgICBtX3ggPSBwLngoKTsKLSAgICBtX3kgPSBw
LnkoKTsKLSAgICBtX2NvbnRleHQgPSBjb250ZXh0OwotfQotCi1TVkdQb2ludDo6flNWR1BvaW50
KCkKLXsKLX0KLQotZmxvYXQgU1ZHUG9pbnQ6OngoKSBjb25zdAotewotICAgIHJldHVybiBtX3g7
Ci19Ci0KLWZsb2F0IFNWR1BvaW50Ojp5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV95OwotfQot
Ci12b2lkIFNWR1BvaW50OjpzZXRYKGZsb2F0IHgpCi17Ci0gICAgbV94ID0geDsKLQotICAgIGlm
KG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsK
LX0KLQotdm9pZCBTVkdQb2ludDo6c2V0WShmbG9hdCB5KQotewotICAgIG1feSA9IHk7Ci0KLSAg
ICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdl
KCk7Ci19Ci0KLVNWR1BvaW50ICpTVkdQb2ludDo6bWF0cml4VHJhbnNmb3JtKFNWR01hdHJpeCAq
IC8qIG1hdHJpeCAqLykKLXsKLSAgICAvLyBUT0RPOiBpbXBsZW1lbnQgbWUhCi0gICAgcmV0dXJu
IDA7Ci19Ci0KLX0KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0K
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBACiAK
ICAgICBsaXN0ID0gc3lzdGVtTGFuZ3VhZ2UoKTsKICAgICBmb3IgKHVuc2lnbmVkIGxvbmcgaSA9
IDA7IGkgPCBsaXN0LT5udW1iZXJPZkl0ZW1zKCk7IGkrKykKLSAgICAgICAgaWYgKCFlcXVhbChs
aXN0LT5nZXRJdGVtKGkpLCBkZWZhdWx0TGFuZ3VhZ2UoKS5zdWJzdHJpbmcoMCwgMikuaW1wbCgp
KSkKKyAgICAgICAgaWYgKGxpc3QtPmdldEl0ZW0oaSkgIT0gZGVmYXVsdExhbmd1YWdlKCkuc3Vi
c3RyaW5nKDAsIDIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbGlzdCA9IHJl
cXVpcmVkRXh0ZW5zaW9ucygpOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5oCShy
ZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsMTEgQEAKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IG11dGFibGUgUmVmUHRyPFNWR1BhdGhTZWdMaXN0PiBtX3BhdGhTZWdMaXN0OwotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFBhdGhMZW5ndGgs
IHBhdGhMZW5ndGgpCisKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJB
VElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAKKyAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdGhFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwg
UGF0aExlbmd0aCwgcGF0aExlbmd0aCkKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3ZnTW92ZVRv
KGRvdWJsZSB4MSwgZG91YmxlIHkxLCBib29sIGNsb3NlZCwgYm9vbCBhYnMgPSB0cnVlKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHN2Z0xpbmVUbyhkb3VibGUgeDEsIGRvdWJsZSB5MSwgYm9vbCBh
YnMgPSB0cnVlKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHN2Z0xpbmVUb0hvcml6b250YWwoZG91
YmxlIHgsIGJvb2wgYWJzID0gdHJ1ZSk7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHls
ZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkRWxl
bWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsMTEgKzcyLDEwIEBACiAKICAgICBwcml2YXRl
OgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBtX3BhOwotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIENsYXNz
TmFtZSwgY2xhc3NOYW1lKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHU3R5bGVkRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIENsYXNzTmFtZSwgY2xhc3NOYW1lKQog
ICAgICAgICAvLyBPcHRpbWl6ZWQgdXBkYXRpbmcgbG9naWMKICAgICAgICAgYm9vbCBtX3VwZGF0
ZVZlY3RvcmlhbCA6IDE7CiAgICAgfTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0
YWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3
ICsyNiw2IEBACiAKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4
LmgiCi0jaW5jbHVkZSAiU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNp
bmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDExICs0MSwxMSBAQAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGhMaXN0KiwgUmVmUHRyPFNWR0xl
bmd0aExpc3Q+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoTGlzdCosIFJlZlB0cjxTVkdMZW5ndGhMaXN0PiwgWSwgeSkKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aExpc3QqLCBSZWZQdHI8U1ZHTGVu
Z3RoTGlzdD4sIER4LCBkeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xlbmd0aExpc3QqLCBSZWZQdHI8U1ZHTGVuZ3RoTGlzdD4sIER5LCBkeSkKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR051bWJlckxpc3QqLCBSZWZQdHI8U1ZH
TnVtYmVyTGlzdD4sIFJvdGF0ZSwgcm90YXRlKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwgU1ZHTGVuZ3RoTGlzdCosIFJl
ZlB0cjxTVkdMZW5ndGhMaXN0PiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsIFNWR0xlbmd0aExpc3QqLCBSZWZQ
dHI8U1ZHTGVuZ3RoTGlzdD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdMZW5ndGhMaXN0KiwgUmVmUHRy
PFNWR0xlbmd0aExpc3Q+LCBEeCwgZHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdMZW5ndGhMaXN0KiwgUmVmUHRy
PFNWR0xlbmd0aExpc3Q+LCBEeSwgZHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdOdW1iZXJMaXN0KiwgUmVmUHRy
PFNWR051bWJlckxpc3Q+LCBSb3RhdGUsIHJvdGF0ZSkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdOdW1iZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdOdW1iZXIuaAkocmV2aXNpb24gMTYzMDApCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdOdW1iZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCww
IEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVj
dAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8K
LQotI2lmbmRlZiBLU1ZHX1NWR051bWJlckltcGxfSAotI2RlZmluZSBLU1ZHX1NWR051bWJlcklt
cGxfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTaGFyZWQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50OwotICAgIGNsYXNzIFNW
R051bWJlciA6IHB1YmxpYyBTaGFyZWQ8U1ZHTnVtYmVyPgotICAgIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR051bWJlcihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAg
ICAgdmlydHVhbCB+U1ZHTnVtYmVyKCk7Ci0KLSAgICAgICAgLy8gJ1NWR051bWJlcicgZnVuY3Rp
b25zCi0gICAgICAgIGZsb2F0IHZhbHVlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0VmFsdWUo
ZmxvYXQgdmFsdWUpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZmxvYXQgbV92YWx1ZTsKLSAg
ICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqbV9jb250ZXh0OwotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQotLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94LmgJKHJldmlz
aW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICAgICBjbGFzcyBBdHRyaWJ1dGU7CiAgICAgY2xh
c3MgU3RyaW5nSW1wbDsKICAgICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgIGNs
YXNzIFNWR1JlY3Q7CiAgICAgY2xhc3MgU1ZHTWF0cml4OwogCiAgICAgY2xhc3MgU1ZHRml0VG9W
aWV3Qm94IHsKQEAgLTQ4LDggKzQ3LDggQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0KiwgUmVmUHRyPFNWR1JlY3Q+
LCBWaWV3Qm94LCB2aWV3Qm94KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFJlZlB0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
PiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TX1dJVEhfQ09OVEVYVChTVkdGaXRUb1ZpZXdCb3gs
IEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlNfV0lUSF9DT05URVhUKFNWR0ZpdFRvVmlld0JveCwgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpbyosIFJlZlB0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiwgUHJl
c2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEFuZ2xl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCShy
ZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkQW5n
bGVJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdBbmltYXRlZEFuZ2xlSW1wbF9ICi0jaWZkZWYgU1ZH
X1NVUFBPUlQKLQotI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRU
ZW1wbGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRl
ZEFuZ2xlIDogcHVibGljIFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHQW5nbGU+IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkQW5nbGUoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29u
dGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkQW5nbGUoKTsKLQotICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgdmlydHVhbCBTVkdBbmdsZSAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHQW5nbGUgKnNyYywgU1ZHQW5nbGUgKmRzdCkgY29uc3Q7
Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKLSNlbmRpZiAvLyBLU1ZHX1NWR0FuaW1hdGVkQW5nbGVJbXBsX0gKLQotLy8gdmltOnRzPTQ6
bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5nTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5nTGlzdC5jcHAJKHJldmlzaW9uIDE2MzAw
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5nTGlzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDE1ICsyMSwxNiBAQAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYg
U1ZHX1NVUFBPUlQKKwogI2luY2x1ZGUgIkRlcHJlY2F0ZWRTdHJpbmdMaXN0LmgiCi0KICNpbmNs
dWRlICJTVkdTdHJpbmdMaXN0LmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1TVkdTdHJpbmdMaXN0OjpTVkdTdHJpbmdMaXN0KGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06IFNWR0xpc3Q8U3RyaW5nSW1wbD4oY29udGV4dCkKK1NW
R1N0cmluZ0xpc3Q6OlNWR1N0cmluZ0xpc3QoKQorICAgIDogU1ZHTGlzdDxTdHJpbmc+KCkKIHsK
IH0KIApAQCAtMzcsMjAgKzM4LDE5IEBACiB7CiB9CiAKLXZvaWQgU1ZHU3RyaW5nTGlzdDo6cmVz
ZXQoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmc3RyKQordm9pZCBTVkdTdHJpbmdMaXN0OjpyZXNl
dChjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzdHIpCiB7CiAgICAgRGVwcmVjYXRlZFN0cmluZ0xp
c3QgbGlzdCA9IERlcHJlY2F0ZWRTdHJpbmdMaXN0OjpzcGxpdCgnICcsIHN0cik7CiAgICAgaWYg
KGxpc3QuY291bnQoKSA9PSAwKSB7Ci0gICAgICAgIFN0cmluZ0ltcGwgKml0ZW0gPSBuZXcgU3Ry
aW5nSW1wbChzdHIpOwotICAgICAgICBpdGVtLT5yZWYoKTsKLSAgICAgICAgYXBwZW5kSXRlbShp
dGVtKTsKLSAgICB9IGVsc2UgZm9yKERlcHJlY2F0ZWRTdHJpbmdMaXN0OjpJdGVyYXRvciBpdCA9
IGxpc3QuYmVnaW4oKTsgaXQgIT0gbGlzdC5lbmQoKTsgKytpdCkgewotICAgICAgICBTdHJpbmdJ
bXBsICppdGVtID0gbmV3IFN0cmluZ0ltcGwoKCppdCkpOwotICAgICAgICBpdGVtLT5yZWYoKTsK
LSAgICAgICAgYXBwZW5kSXRlbShpdGVtKTsKKyAgICAgICAgYXBwZW5kSXRlbShTdHJpbmcoIiIp
KTsgLy8gQ3JlYXRlIGVtcHR5IHN0cmluZy4uLgorICAgIH0gZWxzZSB7CisgICAgICAgIGZvcihE
ZXByZWNhdGVkU3RyaW5nTGlzdDo6SXRlcmF0b3IgaXQgPSBsaXN0LmJlZ2luKCk7IGl0ICE9IGxp
c3QuZW5kKCk7ICsraXQpCisgICAgICAgICAgICBhcHBlbmRJdGVtKFN0cmluZygqaXQpKTsKICAg
ICB9CiB9CiAKLS8vIHZpbTp0cz00Om5vZXQKK30KKwogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAK
Ky8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUwICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwg
MjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0x
MzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1w
bF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNoYXJlZC5oIgotCi0jaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvPgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyhjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAg
dmlydHVhbCB+U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0KLSAgICBwcm90ZWN0
ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyAqY3JlYXRlKCkgY29u
c3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyAq
c3JjLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICpkc3QpIGNvbnN0OwotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQotLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lv
biAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTYwLDcgKzYwLDcgQEAKIAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUg
UmVmUHRyPFNWR01hdHJpeD4gbV9sb2NhbE1hdHJpeDsKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1RyYW5zZm9ybUxpc3QqLCBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlz
dD4sIFRyYW5zZm9ybSwgdHJhbnNmb3JtKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHVGV4dEVsZW1lbnQsIFNWR1RyYW5zZm9ybUxpc3QqLCBSZWZQdHI8U1ZHVHJh
bnNmb3JtTGlzdD4sIFRyYW5zZm9ybSwgdHJhbnNmb3JtKQogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuaAkocmV2aXNpb24g
MTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NywxMSArNTcsMTIgQEAKICAgICAgICAgdmlydHVhbCBib29sIGhhc1BlcmNlbnRh
Z2VWYWx1ZXMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0KLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMSwgeDEp
Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQ
dHI8U1ZHTGVuZ3RoPiwgWTEsIHkxKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgyLCB4MikKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBZMiwgeTIpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05T
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCisgCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFgxLCB4MSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xpbmVFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTEsIHkxKQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZUVsZW1lbnQsIFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMiwgeDIpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFkyLCB5MikKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0xlbmd0aC5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHTGVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2lu
Y2x1ZGUgIlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0
aC5oIgogCiAjaW5jbHVkZSA8bWF0aC5oPgpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVmll
d0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdWaWV3RWxlbWVu
dC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1ZpZXdFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEwIEBACiAKICAgICBwcml2YXRlOgogICAg
ICAgICBtdXRhYmxlIFJlZlB0cjxTVkdTdHJpbmdMaXN0PiBtX3ZpZXdUYXJnZXQ7CisKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNM
QVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0ZpdFRvVmll
d0JveCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNl
cnZlQXNwZWN0UmF0aW8pCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgJKHJldmlzaW9u
IDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDExICs0NiwxMSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0
IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeCwgY3gpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgQ3ksIGN5KQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIFIsIHIpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgRngsIGZ4KQotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEZ5
LCBmeSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN4LCBjeCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN5LCBjeSkKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCwgU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFIsIHIpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBGeCwgZngpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBGeSwgZnkpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NTIgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KLSovCi0KLSNpZm5kZWYgS1NWR19TVkdBbmltYXRlZExlbmd0aEltcGxfSAotI2RlZmluZSBL
U1ZHX1NWR0FuaW1hdGVkTGVuZ3RoSW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1
ZGUgIlNWR0xlbmd0aC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aCA6IHB1YmxpYyBT
VkdBbmltYXRlZFRlbXBsYXRlPFNWR0xlbmd0aD4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAg
ICBTVkdBbmltYXRlZExlbmd0aChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0LCBMZW5n
dGhNb2RlIG1vZGUgPSBMTV9VTktOT1dOLCBjb25zdCBTVkdFbGVtZW50ICp2aWV3cG9ydCA9IDAp
OwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZExlbmd0aCgpOwotCi0gICAgcHJvdGVjdGVk
OgotICAgICAgICB2aXJ0dWFsIFNWR0xlbmd0aCAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBhc3NpZ24oU1ZHTGVuZ3RoICpzcmMsIFNWR0xlbmd0aCAqZHN0KSBjb25zdDsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIExlbmd0aE1vZGUgbV9tb2RlOwotICAgICAgICBjb25z
dCBTVkdFbGVtZW50ICptX3ZpZXdwb3J0RWxlbWVudDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00
Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3QuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1JlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk1ICswLDAgQEAK
LS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2ls
ZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0K
LSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdIZWxw
ZXIuaCIKLSNpbmNsdWRlICJTVkdSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHUmVjdDo6U1ZHUmVjdChjb25zdCBT
VkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6IFNoYXJlZDxTVkdSZWN0PigpCi17Ci0gICAgbV9j
b250ZXh0ID0gY29udGV4dDsKLSAgICBtX3ggPSBtX3kgPSBtX3dpZHRoID0gbV9oZWlnaHQgPSAw
LjA7Ci19Ci0KLVNWR1JlY3Q6On5TVkdSZWN0KCkKLXsKLX0KLQotZG91YmxlIFNWR1JlY3Q6Ongo
KSBjb25zdAotewotICAgIHJldHVybiBtX3g7Ci19Ci0KLXZvaWQgU1ZHUmVjdDo6c2V0WChkb3Vi
bGUgdmFsdWUpCi17Ci0gICAgbV94ID0gdmFsdWU7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAg
ICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLWRvdWJsZSBTVkdS
ZWN0Ojp5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV95OwotfQotCi12b2lkIFNWR1JlY3Q6OnNl
dFkoZG91YmxlIHZhbHVlKQotewotICAgIG1feSA9IHZhbHVlOwotCi0gICAgaWYobV9jb250ZXh0
KQotICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi1kb3Vi
bGUgU1ZHUmVjdDo6d2lkdGgoKSBjb25zdAotewotICAgIHJldHVybiBtX3dpZHRoOwotfQotCi12
b2lkIFNWR1JlY3Q6OnNldFdpZHRoKGRvdWJsZSB2YWx1ZSkKLXsKLSAgICBtX3dpZHRoID0gdmFs
dWU7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmli
dXRlQ2hhbmdlKCk7Ci19Ci0KLWRvdWJsZSBTVkdSZWN0OjpoZWlnaHQoKSBjb25zdAotewotICAg
IHJldHVybiBtX2hlaWdodDsKLX0KLQotdm9pZCBTVkdSZWN0OjpzZXRIZWlnaHQoZG91YmxlIHZh
bHVlKQotewotICAgIG1faGVpZ2h0ID0gdmFsdWU7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAg
ICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7Ci19Ci0KLS8vIHZpbTp0cz00
Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRlZFN0cmluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRTdHJpbmcuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
QW5pbWF0ZWRTdHJpbmcuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBz
dmcKK3sKKyAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkU3RyaW5nIHsg
CisgICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyBiYXNlVmFsOworICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgYW5pbVZhbDsKKyAgfTsKK307Cklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1NyArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkSW50ZWdlckltcGxfSAot
I2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkSW50ZWdlckltcGxfSAotI2lmZGVmIFNWR19TVVBQT1JU
Ci0KLSNpbmNsdWRlICJTaGFyZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFz
cyBTVkdTdHlsZWRFbGVtZW50OwotCi0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRJbnRlZ2VyIDogcHVi
bGljIFNoYXJlZDxTVkdBbmltYXRlZEludGVnZXI+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwot
ICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZEludGVnZXIoKTsKLQotICAgICAgICBsb25nIGJh
c2VWYWwoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRCYXNlVmFsKGxvbmcgYmFzZVZhbCk7Ci0K
LSAgICAgICAgbG9uZyBhbmltVmFsKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QW5pbVZhbChs
b25nIGFuaW1WYWwpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgbG9uZyBtX2Jhc2VWYWw7Ci0g
ICAgICAgIGxvbmcgbV9hbmltVmFsOwotCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQg
Km1fY29udGV4dDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NSwxMSArNDUsMTAgQEAKICAgICBpZihsZW4gPCAxKQogICAgICAgICByZXR1cm4gcG9seURhdGE7
CiAKLSAgICBwb2x5RGF0YS5tb3ZlVG8oRmxvYXRQb2ludChwb2ludHMoKS0+Z2V0SXRlbSgwKS0+
eCgpLCBwb2ludHMoKS0+Z2V0SXRlbSgwKS0+eSgpKSk7Ci0gICAgZm9yIChpbnQgaSA9IDE7IGkg
PCBsZW47ICsraSkgewotICAgICAgICBTVkdQb2ludCAqcCA9IHBvaW50cygpLT5nZXRJdGVtKGkp
OwotICAgICAgICBwb2x5RGF0YS5hZGRMaW5lVG8oRmxvYXRQb2ludChwLT54KCksIHAtPnkoKSkp
OwotICAgIH0KKyAgICBwb2x5RGF0YS5tb3ZlVG8ocG9pbnRzKCktPmdldEl0ZW0oMCkpOworICAg
IGZvciAoaW50IGkgPSAxOyBpIDwgbGVuOyArK2kpCisgICAgICAgIHBvbHlEYXRhLmFkZExpbmVU
byhwb2ludHMoKS0+Z2V0SXRlbShpKSk7CisgICAgCiAgICAgcmV0dXJuIHBvbHlEYXRhOwogfQog
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMjYg
KzIwLDI5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVm
IEtTVkdfU1ZHU3RyaW5nTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR1N0cmluZ0xpc3RJbXBs
X0gKKyNpZm5kZWYgS1NWR19TVkdTdHJpbmdMaXN0X0gKKyNkZWZpbmUgS1NWR19TVkdTdHJpbmdM
aXN0X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdMaXN0LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgU1ZHU3RyaW5nTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFN0cmluZ0ltcGw+IHsKKyAgICBjbGFz
cyBTVkdTdHJpbmdMaXN0IDogcHVibGljIFNWR0xpc3Q8U3RyaW5nPgorCXsKICAgICBwdWJsaWM6
Ci0gICAgICAgIFNWR1N0cmluZ0xpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCA9
IDApOworICAgICAgICBTVkdTdHJpbmdMaXN0KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1N0cmlu
Z0xpc3QoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEludGVybmFsCi0gICAgICAgIHZvaWQgcmVz
ZXQoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmc3RyKTsKKyAgICAgICAgdm9pZCByZXNldChjb25z
dCBEZXByZWNhdGVkU3RyaW5nJiBzdHIpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYgLy8gS1NWR19TVkdTdHJpbmdMaXN0
SW1wbF9ICisjZW5kaWYgLy8gS1NWR19TVkdTdHJpbmdMaXN0X0gKIAogLy8gdmltOnRzPTQ6bm9l
dApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcAkocmV2aXNpb24g
MTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdf
U1VQUE9SVAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFN0cmluZzo6U1ZHQW5pbWF0ZWRTdHJpbmcoY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTVkdBbmltYXRlZFRlbXBsYXRlPFN0cmluZ0lt
cGw+KGNvbnRleHQpCi17Ci19Ci0KLVNWR0FuaW1hdGVkU3RyaW5nOjp+U1ZHQW5pbWF0ZWRTdHJp
bmcoKQotewotfQotCi1TdHJpbmdJbXBsICpTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKCkgY29u
c3QKLXsKLSAgICAvLyBUT0RPOiBEbyB3ZSBuZWVkIG5vdGlmaWNhdGlvbnMgb24gc3RyaW5nIG1h
bmlwdWxhdGlvbnM/IGllLiBhcHBlbmREYXRhKCk/Ci0gICAgcmV0dXJuIG5ldyBTdHJpbmdJbXBs
KCIiKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFN0cmluZzo6YXNzaWduKFN0cmluZ0ltcGwgKnNy
YywgU3RyaW5nSW1wbCAqZHN0KSBjb25zdAotewotICAgIGlmKCFzcmMgfHwgIWRzdCkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIGRzdC0+dHJ1bmNhdGUoMCk7Ci0gICAgZHN0LT5pbnNlcnQo
c3JjLT5jb3B5KCksIDApOwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NV
UFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVFJlZkVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUUmVmRWxlbWVudC5oCShyZXZpc2lvbiAxNjMw
MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RSZWZFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDYgKzQ2LDggQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6CisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5j
ZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorCiAgICAgICAgIHZvaWQgdXBkYXRlUmVmZXJlbmNlZFRl
eHQoKTsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0hlbHBlci5jcHAJKHJldmlzaW9uIDE2
MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKLSNpbmNsdWRlICJTVkdSZWN0LmgiCiAj
aW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKICNp
bmNsdWRlICJrc3ZnLmgiCkBAIC00Nyw4ICs0Niw4IEBACiAgICAgaWYgKHZpZXdwb3J0RWxlbWVu
dC0+aXNTVkcoKSkgewogICAgICAgICBjb25zdCBTVkdTVkdFbGVtZW50KiBzdmcgPSBzdGF0aWNf
Y2FzdDxjb25zdCBTVkdTVkdFbGVtZW50Kj4odmlld3BvcnRFbGVtZW50KTsKICAgICAgICAgaWYg
KHN2Zy0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94QXR0cikpIHsKLSAgICAgICAgICAg
IHdpZHRoID0gc3ZnLT52aWV3Qm94KCktPndpZHRoKCk7Ci0gICAgICAgICAgICBoZWlnaHQgPSBz
dmctPnZpZXdCb3goKS0+aGVpZ2h0KCk7CisgICAgICAgICAgICB3aWR0aCA9IHN2Zy0+dmlld0Jv
eCgpLndpZHRoKCk7CisgICAgICAgICAgICBoZWlnaHQgPSBzdmctPnZpZXdCb3goKS5oZWlnaHQo
KTsKICAgICAgICAgfSBlbHNlIGlmIChzdmctPndpZHRoKCktPnVuaXRUeXBlKCkgPT0gU1ZHTGVu
Z3RoOjpTVkdfTEVOR1RIVFlQRV9QRVJDRU5UQUdFIHx8CiAgICAgICAgICAgICAgICAgc3ZnLT5o
ZWlnaHQoKS0+dW5pdFR5cGUoKSA9PSBTVkdMZW5ndGg6OlNWR19MRU5HVEhUWVBFX1BFUkNFTlRB
R0UpIHsKICAgICAgICAgICAgIC8vIFRPRE86IFNob3VsZG4ndCB3L2ggYmUgbXVsdGlwbGllZCB3
aXRoIHRoZSBwZXJjZW50YWdlIHZhbHVlcz8hCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdO
dW1iZXJMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTnVtYmVyTGlz
dC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR051bWJlckxpc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMjAsMjIgKzIwLDIyIEBACiAgICAgQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHTnVtYmVyTGlzdEltcGxfSAotI2Rl
ZmluZSBLU1ZHX1NWR051bWJlckxpc3RJbXBsX0gKKyNpZm5kZWYgS1NWR19TVkdOdW1iZXJMaXN0
X0gKKyNkZWZpbmUgS1NWR19TVkdOdW1iZXJMaXN0X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAK
ICNpbmNsdWRlICJTVkdMaXN0LmgiCi0jaW5jbHVkZSAiU1ZHTnVtYmVyLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlCiB7Ci0gICAgY2xhc3MgU1ZHTnVtYmVyTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNW
R051bWJlcj4KKyAgICBjbGFzcyBTVkdOdW1iZXJMaXN0IDogcHVibGljIFNWR0xpc3Q8ZmxvYXQ+
CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHTnVtYmVyTGlzdChjb25zdCBTVkdTdHls
ZWRFbGVtZW50ICpjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR051bWJlckxpc3QoKTsKICAgICAg
ICAgdmlydHVhbCB+U1ZHTnVtYmVyTGlzdCgpOwogCi0gICAgICAgIHZvaWQgcGFyc2UoY29uc3Qg
RGVwcmVjYXRlZFN0cmluZyAmdmFsdWUsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQg
PSAwKTsKKyAgICAgICAgdm9pZCBwYXJzZShjb25zdCBEZXByZWNhdGVkU3RyaW5nJiB2YWx1ZSk7
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludC5o
CShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpZm5kZWYgS1NWR19TVkdQb2ludEltcGxfSAotI2Rl
ZmluZSBLU1ZHX1NWR1BvaW50SW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUg
IlNoYXJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBJbnRQb2ludDsKLX0KLQot
bmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdNYXRyaXg7Ci0gICAgY2xhc3MgU1ZH
U3R5bGVkRWxlbWVudDsKLSAgICBjbGFzcyBTVkdQb2ludCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUG9p
bnQ+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUG9pbnQoY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCAqY29udGV4dCA9IDApOwotICAgICAgICBTVkdQb2ludChmbG9hdCB4LCBmbG9hdCB5
LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0ID0gMCk7Ci0gICAgICAgIFNWR1BvaW50
KGNvbnN0IEludFBvaW50ICZwLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0ID0gMCk7
Ci0gICAgICAgIH5TVkdQb2ludCgpOwotCi0gICAgICAgIC8vICdTVkdQb2ludCcgZnVuY3Rpb25z
Ci0gICAgICAgIHZvaWQgc2V0WChmbG9hdCB4KTsKLSAgICAgICAgZmxvYXQgeCgpIGNvbnN0Owot
Ci0gICAgICAgIHZvaWQgc2V0WShmbG9hdCB5KTsKLSAgICAgICAgZmxvYXQgeSgpIGNvbnN0Owot
Ci0gICAgICAgIFNWR1BvaW50ICptYXRyaXhUcmFuc2Zvcm0oU1ZHTWF0cml4ICptYXRyaXgpOwot
Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgZmxvYXQgbV94OwotICAgICAgICBmbG9hdCBtX3k7Ci0K
LSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqbV9jb250ZXh0OwotICAgIH07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQot
Ly8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEZWZzRWxlbWVudC5oCShyZXZp
c2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDYgKzQ3LDkgQEAKICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0aGlzOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JX
QVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZF
VHVyYnVsZW5jZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RVR1cmJ1bGVuY2VFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMiArNDYs
MTIgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgQmFzZUZyZXF1ZW5jeVgsIGJh
c2VGcmVxdWVuY3lYKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91
YmxlLCBkb3VibGUsIEJhc2VGcmVxdWVuY3lZLCBiYXNlRnJlcXVlbmN5WSkKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBOdW1PY3RhdmVzLCBudW1PY3Rh
dmVzKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3Vi
bGUsIFNlZWQsIHNlZWQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhp
bnQsIGludCwgU3RpdGNoVGlsZXMsIHN0aXRjaFRpbGVzKQotICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFR5cGUsIHR5cGUpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBkb3VibGUsIGRv
dWJsZSwgQmFzZUZyZXF1ZW5jeVgsIGJhc2VGcmVxdWVuY3lYKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgZG91YmxlLCBkb3Vi
bGUsIEJhc2VGcmVxdWVuY3lZLCBiYXNlRnJlcXVlbmN5WSkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIGludCwgaW50LCBOdW1P
Y3RhdmVzLCBudW1PY3RhdmVzKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFNlZWQsIHNlZWQpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50LCBpbnQsIGludCwgU3RpdGNoVGlsZXMsIHN0aXRjaFRpbGVzKQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgaW50LCBpbnQs
IFR5cGUsIHR5cGUpCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFVHVyYnVsZW5jZSAqbV9maWx0
ZXJFZmZlY3Q7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoRGF0YS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoRGF0YS5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRl
ZFBhdGhEYXRhLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7
CisgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZFBhdGhEYXRhIHsgCisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BhdGhTZWdMaXN0ICAgcGF0aFNlZ0xpc3Q7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR1BhdGhTZWdMaXN0ICAgbm9ybWFsaXplZFBhdGhTZWdMaXN0
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQYXRoU2VnTGlzdCAgIGFuaW1hdGVkUGF0aFNl
Z0xpc3Q7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BhdGhTZWdMaXN0ICAgYW5pbWF0ZWRO
b3JtYWxpemVkUGF0aFNlZ0xpc3Q7CisgIH07Cit9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAs
MCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5u
IDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSov
Ci0KLSNpZm5kZWYgS1NWR19TVkdBbmltYXRlZExlbmd0aExpc3RJbXBsX0gKLSNkZWZpbmUgS1NW
R19TVkdBbmltYXRlZExlbmd0aExpc3RJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aExpc3QuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aExpc3Qg
OiBwdWJsaWMgU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdMZW5ndGhMaXN0PgotICAgIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0KCk7
Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgU1ZHTGVuZ3RoTGlzdCAqY3JlYXRl
KCkgY29uc3Q7Ci0gICAgICAgIC8vdmlydHVhbCB2b2lkIGFzc2lnbihTVkdMZW5ndGhMaXN0ICpz
cmMsIFNWR0xlbmd0aExpc3QgKmRzdCkgY29uc3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZgotCi0vLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQAogICAgICwgbV9oZWlnaHQobmV3IFNWR0xlbmd0
aCh0aGlzLCBMTV9IRUlHSFQsIHZpZXdwb3J0RWxlbWVudCgpKSkKICAgICAsIG1fcGF0dGVyblVu
aXRzKFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX3BhdHRlcm5Db250
ZW50VW5pdHMoU1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkKLSAgICAsIG1fcGF0dGVyblRy
YW5zZm9ybShuZXcgU1ZHVHJhbnNmb3JtTGlzdCh0aGlzKSkKKyAgICAsIG1fcGF0dGVyblRyYW5z
Zm9ybShuZXcgU1ZHVHJhbnNmb3JtTGlzdCkKIHsKICAgICBtX3RpbGUgPSAwOwogICAgIG1fcGFp
bnRTZXJ2ZXIgPSAwOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ0LDEzICs0NCwxMyBAQAogICAgICAgICBLQ0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb24gdHJhbnNmZXJGdW5jdGlvbigpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBUeXBlLCB0eXBl
KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTnVtYmVyTGlzdCos
IFJlZlB0cjxTVkdOdW1iZXJMaXN0PiwgVGFibGVWYWx1ZXMsIHRhYmxlVmFsdWVzKQotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFNsb3BlLCBz
bG9wZSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91
YmxlLCBJbnRlcmNlcHQsIGludGVyY2VwdCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBBbXBsaXR1ZGUsIGFtcGxpdHVkZSkKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBFeHBvbmVudCwg
ZXhwb25lbnQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUs
IGRvdWJsZSwgT2Zmc2V0LCBvZmZzZXQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgaW50LCBpbnQsIFR5
cGUsIHR5cGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgU1ZHTnVtYmVyTGlzdCosIFJlZlB0cjxTVkdO
dW1iZXJMaXN0PiwgVGFibGVWYWx1ZXMsIHRhYmxlVmFsdWVzKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQs
IGRvdWJsZSwgZG91YmxlLCBTbG9wZSwgc2xvcGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgZG91Ymxl
LCBkb3VibGUsIEludGVyY2VwdCwgaW50ZXJjZXB0KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIGRvdWJs
ZSwgZG91YmxlLCBBbXBsaXR1ZGUsIGFtcGxpdHVkZSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBkb3Vi
bGUsIGRvdWJsZSwgRXhwb25lbnQsIGV4cG9uZW50KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIGRvdWJs
ZSwgZG91YmxlLCBPZmZzZXQsIG9mZnNldCkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcs
MTAgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgVGFyZ2V0LCB0YXJnZXQpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVy
ZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JX
QVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdBRWxlbWVudCwgU3RyaW5nLCBT
dHJpbmcsIFRhcmdldCwgdGFyZ2V0KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAkocmV2
aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMCArNTUsMTMgQEAKICAgICAgICAgdmlydHVhbCBj
b25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkgCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldB
UkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGb3JlaWduT2JqZWN0RWxl
bWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwgU1ZHTGVu
Z3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDEzICs1OSwxOCBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBSZWZYLCByZWZYKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJlZlksIHJlZlkpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgTWFya2VyV2lkdGgsIG1hcmtlcldpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIE1hcmtlckhlaWdo
dCwgbWFya2VySGVpZ2h0KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
aW50LCBpbnQsIE1hcmtlclVuaXRzLCBtYXJrZXJVbml0cykKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBlKQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQW5nbGUqLCBSZWZQdHI8U1ZH
QW5nbGU+LCBPcmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJv
b2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
IAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdGaXRU
b1ZpZXdCb3gsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvKiwgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykK
KworICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVu
dCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJlZlgsIHJlZlgpCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBTVkdMZW5ndGgq
LCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUmVmWSwgcmVmWSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR01hcmtlckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBNYXJrZXJXaWR0aCwgbWFya2VyV2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZH
TGVuZ3RoPiwgTWFya2VySGVpZ2h0LCBtYXJrZXJIZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBpbnQsIGludCwgTWFya2VyVW5p
dHMsIG1hcmtlclVuaXRzKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTWFya2VyRWxlbWVudCwgaW50LCBpbnQsIE9yaWVudFR5cGUsIG9yaWVudFR5cGUpCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBTVkdB
bmdsZSosIFJlZlB0cjxTVkdBbmdsZT4sIE9yaWVudEFuZ2xlLCBvcmllbnRBbmdsZSkKKwogICAg
ICAgICBLQ2FudmFzTWFya2VyICptX21hcmtlcjsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUG9seUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsOCBAQAogICAgIHBy
aXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1BvaW50TGlzdD4gbV9wb2ludHM7CiAK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3ZnUG9seVRv
KGRvdWJsZSB4MSwgZG91YmxlIHkxLCBpbnQgbnIpIGNvbnN0OwogICAgIH07CiAKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAg
QEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwot
Ci0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRSZWN0SW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5p
bWF0ZWRSZWN0SW1wbF9ICi0jaWZkZWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgIlNWR1JlY3Qu
aCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFRlbXBsYXRlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
Ci17Ci0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRSZWN0IDogcHVibGljIFNWR0FuaW1hdGVkVGVtcGxh
dGU8U1ZHUmVjdD4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlZFJlY3Qo
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0Fu
aW1hdGVkUmVjdCgpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFNWR1JlY3Qg
KmNyZWF0ZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgYXNzaWduKFNWR1JlY3QgKnNy
YywgU1ZHUmVjdCAqZHN0KSBjb25zdDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMCArNjAs
MTMgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwg
eCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJl
ZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FS
RF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHVVJJUmVmZXJlbmNlLCBT
dHJpbmcsIEhyZWYsIGhyZWYpCisKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR1VzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVXNlRWxlbWVudCwgU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdVc2VFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHVXNlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwg
aGVpZ2h0KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU0
ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
Ci0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRl
ICJTVkdBbmltYXRlZExlbmd0aC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZH
QW5pbWF0ZWRMZW5ndGg6OlNWR0FuaW1hdGVkTGVuZ3RoKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQg
KmNvbnRleHQsIExlbmd0aE1vZGUgbW9kZSwgY29uc3QgU1ZHRWxlbWVudCAqdmlld3BvcnQpIDog
U1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdMZW5ndGg+KGNvbnRleHQpCi17Ci0gICAgbV9tb2RlID0g
bW9kZTsKLSAgICBtX3ZpZXdwb3J0RWxlbWVudCA9IHZpZXdwb3J0OwotfQotCi1TVkdBbmltYXRl
ZExlbmd0aDo6flNWR0FuaW1hdGVkTGVuZ3RoKCkKLXsKLX0KLQotU1ZHTGVuZ3RoICpTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IFNWR0xlbmd0aCht
X2NvbnRleHQsIG1fbW9kZSwgbV92aWV3cG9ydEVsZW1lbnQpOwotfQotCi12b2lkIFNWR0FuaW1h
dGVkTGVuZ3RoOjphc3NpZ24oU1ZHTGVuZ3RoICpzcmMsIFNWR0xlbmd0aCAqZHN0KSBjb25zdAot
ewotICAgIGlmKCFzcmMgfHwgIWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGRzdC0+
c2V0VmFsdWVBc1N0cmluZyhzcmMtPnZhbHVlQXNTdHJpbmcoKSk7Ci19Ci0KLS8vIHZpbTp0cz00
Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRlZE51bWJlckxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
NCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1l
cm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUg
cHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkg
VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNB
LgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVk
ZSAiU1ZHTnVtYmVyTGlzdC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWROdW1iZXJMaXN0OjpTVkdB
bmltYXRlZE51bWJlckxpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTVkdB
bmltYXRlZFRlbXBsYXRlPFNWR051bWJlckxpc3Q+KGNvbnRleHQpCi17Ci19Ci0KLVNWR0FuaW1h
dGVkTnVtYmVyTGlzdDo6flNWR0FuaW1hdGVkTnVtYmVyTGlzdCgpCi17Ci19Ci0KLVNWR051bWJl
ckxpc3QgKlNWR0FuaW1hdGVkTnVtYmVyTGlzdDo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbmV3IFNWR051bWJlckxpc3QobV9jb250ZXh0KTsKLX0KLQotLy92b2lkIFNWR0FuaW1hdGVk
TnVtYmVyTGlzdDo6YXNzaWduKFNWR051bWJlckxpc3QgKnNyYywgU1ZHTnVtYmVyTGlzdCAqZHN0
KSBjb25zdAotLy97Ci0vLyAgICBpZighc3JjIHx8ICFkc3QpCi0vLyAgICAgICAgcmV0dXJuOwot
Ly8KLS8vICAgIC8vIFVzZSBTVkdMaXN0PFNWR051bWJlcj46Om9wZXJhdG9yPQotLy8gICAgKmRz
dCA9ICpzcmM7Ci0vL30KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JU
Ci0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHJl
dmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAKICNpbmNsdWRlICJTVkdBbmlt
YXRpb25FbGVtZW50LmgiCiAKK2NsYXNzIFNWR0NvbG9yOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBTVkdBbmltYXRlQ29sb3JFbGVtZW50IDogcHVibGljIFNWR0FuaW1hdGlv
bkVsZW1lbnQgewpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCShyZXZpc2lvbiAx
NjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICov
CiAKLSNpZm5kZWYgS1NWR19TVkdQYXRoU2VnTGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR1Bh
dGhTZWdMaXN0SW1wbF9ICisjaWZuZGVmIEtTVkdfU1ZHUGF0aFNlZ0xpc3RfSAorI2RlZmluZSBL
U1ZHX1NWR1BhdGhTZWdMaXN0X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJT
VkdMaXN0LmgiCkBAIC0yOSwxMCArMzAsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKLSAg
ICBjbGFzcyBTVkdQYXRoU2VnTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR1BhdGhTZWc+CisgICAg
Y2xhc3MgU1ZHUGF0aFNlZ0xpc3QgOiBwdWJsaWMgU1ZHTGlzdDxTVkdQYXRoU2VnKj4KICAgICB7
CiAgICAgcHVibGljOgotICAgICAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICpjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BhdGhTZWdMaXN0KCk7CiAgICAgICAgIHZp
cnR1YWwgflNWR1BhdGhTZWdMaXN0KCk7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVNZXJnZU5vZGVFbGVtZW50LCBT
dHJpbmcsIFN0cmluZywgSW4sIGluKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBACiAg
ICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LCBTdHJp
bmcsIFN0cmluZywgSW4sIGluKQogICAgICAgICBtdXRhYmxlIEtDYW52YXNGRUNvbXBvbmVudFRy
YW5zZmVyICptX2ZpbHRlckVmZmVjdDsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsMTQgKzU0LDE4IEBACiAgICAg
ICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoaW50LCBpbnQsIEZpbHRlclVuaXRzLCBmaWx0ZXJVbml0cykKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBQcmltaXRpdmVVbml0cywg
cHJpbWl0aXZlVW5pdHMpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQot
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRy
PFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGludCwgaW50LCBGaWx0ZXJS
ZXNYLCBmaWx0ZXJSZXNYKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
aW50LCBpbnQsIEZpbHRlclJlc1ksIGZpbHRlclJlc1kpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBo
cmVmKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorIAorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyRWxlbWVudCwgaW50LCBpbnQsIEZpbHRlclVuaXRzLCBm
aWx0ZXJVbml0cykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0Zp
bHRlckVsZW1lbnQsIGludCwgaW50LCBQcmltaXRpdmVVbml0cywgcHJpbWl0aXZlVW5pdHMpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBT
VkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBZLCB5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHRmlsdGVyRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3
aWR0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVs
ZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIGlu
dCwgaW50LCBGaWx0ZXJSZXNYLCBmaWx0ZXJSZXNYKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyRWxlbWVudCwgaW50LCBpbnQsIEZpbHRlclJlc1ksIGZp
bHRlclJlc1kpCisKICAgICAgICAgS0NhbnZhc0ZpbHRlciAqbV9maWx0ZXI7CiAgICAgfTsKIApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDExICs1MCwxMSBAQAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgs
IHdpZHRoKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3Ro
KiwgUmVmUHRyPFNWR0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU3RyaW5nLCBTdHJpbmcsIFJlc3VsdCwgcmVzdWx0KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcywgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwg
d2lkdGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBIZWlnaHQsIGhlaWdodCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU3RyaW5nLCBTdHJpbmcsIFJl
c3VsdCwgcmVzdWx0KQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nywx
MCArNTcsMTIgQEAKICAgICAgICAgdmlydHVhbCBib29sIGhhc1BlcmNlbnRhZ2VWYWx1ZXMoKSBj
b25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgQ3gsIGN4KQotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4s
IEN5LCBjeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUnksIHJ5KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKQorIAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHRWxsaXBzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBD
eCwgY3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFbGxpcHNl
RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN5LCBjeSkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0VsbGlwc2VFbGVtZW50LCBTVkdMZW5n
dGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUngsIHJ4KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRWxsaXBzZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBSeSwgcnkpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysg
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDkgKzU1LDEzIEBACiAgICAgICAgIHZvaWQgcmVidWlsZFN0b3BzKCkgY29uc3Q7CiAKICAg
ICBwcm90ZWN0ZWQ6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhpbnQs
IGludCwgU3ByZWFkTWV0aG9kLCBzcHJlYWRNZXRob2QpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhpbnQsIGludCwgR3JhZGllbnRVbml0cywgZ3JhZGllbnRVbml0cykK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1RyYW5zZm9ybUxpc3Qq
LCBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4sIEdyYWRpZW50VHJhbnNmb3JtLCBncmFkaWVudFRy
YW5zZm9ybSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMo
U1ZHVVJJUmVmZXJlbmNlLCBTdHJpbmcsIEhyZWYsIGhyZWYpCisgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQpCisgCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdHcmFkaWVu
dEVsZW1lbnQsIGludCwgaW50LCBTcHJlYWRNZXRob2QsIHNwcmVhZE1ldGhvZCkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0dyYWRpZW50RWxlbWVudCwgaW50LCBp
bnQsIEdyYWRpZW50VW5pdHMsIGdyYWRpZW50VW5pdHMpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdHcmFkaWVudEVsZW1lbnQsIFNWR1RyYW5zZm9ybUxpc3QqLCBS
ZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4sIEdyYWRpZW50VHJhbnNmb3JtLCBncmFkaWVudFRyYW5z
Zm9ybSkKKwogICAgICAgICBtdXRhYmxlIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50ICpt
X3Jlc291cmNlOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVk
U3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJp
bmcuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFN0
cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAg
ICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAg
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0g
ICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5p
bWF0ZWRTdHJpbmdJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdBbmltYXRlZFN0cmluZ0ltcGxfSAot
I2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFRlbXBsYXRlLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFNWR0FuaW1hdGVkU3RyaW5nIDogcHVi
bGljIFNWR0FuaW1hdGVkVGVtcGxhdGU8U3RyaW5nSW1wbD4gewotICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHQW5pbWF0ZWRTdHJpbmcoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7Ci0g
ICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkU3RyaW5nKCk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0g
ICAgICAgIHZpcnR1YWwgU3RyaW5nSW1wbCAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBhc3NpZ24oU3RyaW5nSW1wbCAqc3JjLCBTdHJpbmdJbXBsICpkc3QpIGNvbnN0Owot
ICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JU
Ci0jZW5kaWYgLy8gS1NWR19TVkdBbmltYXRlZFN0cmluZ0ltcGxfSAotCi0vLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKK21vZHVsZSBzdmcKK3sKKyAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpbyB7IAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvIGJhc2VWYWw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8gYW5pbVZhbDsKKyAgfTsKK307CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdVUklSZWZlcmVuY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdV
UklSZWZlcmVuY2UuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdV
UklSZWZlcmVuY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQAogICAgICAgICB2
aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgPSAwOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmlu
ZywgU3RyaW5nLCBIcmVmLCBocmVmKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlNfV0lUSF9DT05URVhUKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBTdHJpbmcsIEhyZWYs
IGhyZWYpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTnVtYmVyTGlzdC5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDE4ICsyMSwxOCBAQAog
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRl
ICJEZXByZWNhdGVkU3RyaW5nTGlzdC5oIgogCiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCi0jaW5j
bHVkZSAiU1ZHTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUg
IlNWR051bWJlckxpc3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVNWR051bWJl
ckxpc3Q6OlNWR051bWJlckxpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkKLTog
U1ZHTGlzdDxTVkdOdW1iZXI+KGNvbnRleHQpCitTVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0
KCkKKwk6IFNWR0xpc3Q8ZmxvYXQ+KCkKIHsKIH0KIApAQCAtNDAsMTUgKzQwLDExIEBACiB7CiB9
CiAKLXZvaWQgU1ZHTnVtYmVyTGlzdDo6cGFyc2UoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmdmFs
dWUsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCit2b2lkIFNWR051bWJlckxpc3Q6
OnBhcnNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcmIHZhbHVlKQogewogICAgIERlcHJlY2F0ZWRT
dHJpbmdMaXN0IG51bWJlcnMgPSBEZXByZWNhdGVkU3RyaW5nTGlzdDo6c3BsaXQoJyAnLCB2YWx1
ZSk7Ci0gICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDtpIDwgbnVtYmVycy5jb3VudCgpO2krKykK
LSAgICB7Ci0gICAgICAgIFNWR051bWJlciAqbnVtYmVyID0gbmV3IFNWR051bWJlcihjb250ZXh0
KTsKLSAgICAgICAgbnVtYmVyLT5zZXRWYWx1ZShudW1iZXJzW2ldLnRvRG91YmxlKCkpOwotICAg
ICAgICBhcHBlbmRJdGVtKG51bWJlcik7Ci0gICAgfQorICAgIGZvciAodW5zaWduZWQgaW50IGkg
PSAwOyBpIDwgbnVtYmVycy5jb3VudCgpOyBpKyspCisgICAgICAgIGFwcGVuZEl0ZW0obnVtYmVy
c1tpXS50b0RvdWJsZSgpKTsKIH0KIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdMb2NhdGFibGUuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0xvY2F0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKIAogI2lu
Y2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdNYXRyaXguaCIKLSNpbmNsdWRlICJT
VkdSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgPGtjYW52YXMv
UmVuZGVyUGF0aC5oPgogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1MyArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCi0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OlNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250
ZXh0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4oY29udGV4
dCkKLXsKLX0KLQotU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjp+U1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKCkKLXsKLX0KLQotU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyAqU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoKSBjb25zdAotewotICAgIHJldHVy
biBuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhtX2NvbnRleHQpOwotfQotCi12b2lkIFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzo6YXNzaWduKFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8g
KnNyYywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyAqZHN0KSBjb25zdAotewotICAgIGlmKCFzcmMg
fHwgIWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGRzdC0+c2V0QWxpZ24oc3JjLT5h
bGlnbigpKTsKLSAgICBkc3QtPnNldE1lZXRPclNsaWNlKHNyYy0+bWVldE9yU2xpY2UoKSk7Ci19
Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTYg
KzQyLDE2IEBACiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTogJ0VsZW1lbnQnCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpOyAg
ICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKGRvdWJsZSwgZG91YmxlLCBBemltdXRoLCBhemltdXRoKQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIEVsZXZhdGlvbiwgZWxldmF0aW9u
KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUs
IFgsIHgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRv
dWJsZSwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJs
ZSwgZG91YmxlLCBaLCB6KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
ZG91YmxlLCBkb3VibGUsIFBvaW50c0F0WCwgcG9pbnRzQXRYKQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFBvaW50c0F0WSwgcG9pbnRzQXRZ
KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUs
IFBvaW50c0F0WiwgcG9pbnRzQXRaKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyRXhwb25lbnQsIHNwZWN1bGFyRXhwb25lbnQp
Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwg
TGltaXRpbmdDb25lQW5nbGUsIGxpbWl0aW5nQ29uZUFuZ2xlKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBB
emltdXRoLCBhemltdXRoKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBFbGV2YXRpb24sIGVsZXZhdGlvbikK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50
LCBkb3VibGUsIGRvdWJsZSwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgWSwgeSkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUs
IGRvdWJsZSwgWiwgeikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgUG9pbnRzQXRYLCBwb2ludHNBdFgpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwg
ZG91YmxlLCBkb3VibGUsIFBvaW50c0F0WSwgcG9pbnRzQXRZKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBQ
b2ludHNBdFosIHBvaW50c0F0WikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3BlY3VsYXJFeHBvbmVudCwg
c3BlY3VsYXJFeHBvbmVudCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0ZFTGlnaHRFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgTGltaXRpbmdDb25lQW5nbGUsIGxp
bWl0aW5nQ29uZUFuZ2xlKQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw3ICsyMSw5IEBACiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpZmRlZiBTVkdf
U1VQUE9SVAorCiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3Jt
LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgpAQCAtMjksOCArMzEsOCBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotU1ZHVHJhbnNmb3JtTGlzdDo6U1ZHVHJhbnNmb3JtTGlz
dChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQotOiBTVkdMaXN0PFNWR1RyYW5zZm9y
bT4oY29udGV4dCkKK1NWR1RyYW5zZm9ybUxpc3Q6OlNWR1RyYW5zZm9ybUxpc3QoKQorICAgIDog
U1ZHTGlzdDxTVkdUcmFuc2Zvcm0qPigpCiB7CiB9CiAKQEAgLTM4LDM1ICs0MCwyOCBAQAogewog
fQogCi1TVkdUcmFuc2Zvcm0gKlNWR1RyYW5zZm9ybUxpc3Q6OmNyZWF0ZVNWR1RyYW5zZm9ybUZy
b21NYXRyaXgoU1ZHTWF0cml4ICptYXRyaXgpIGNvbnN0CitTVkdUcmFuc2Zvcm0qIFNWR1RyYW5z
Zm9ybUxpc3Q6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4KiBtYXRyaXgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1RyYW5zZm9ybUZy
b21NYXRyaXgobWF0cml4KTsKIH0KIAotU1ZHVHJhbnNmb3JtICpTVkdUcmFuc2Zvcm1MaXN0Ojpj
b25zb2xpZGF0ZSgpCitTVkdUcmFuc2Zvcm0qIFNWR1RyYW5zZm9ybUxpc3Q6OmNvbnNvbGlkYXRl
KCkKIHsKLSAgICBTVkdUcmFuc2Zvcm0gKm9iaiA9IGNvbmNhdGVuYXRlKCk7Ci0gICAgaWYoIW9i
aikKKyAgICBTVkdUcmFuc2Zvcm0qIG9iaiA9IGNvbmNhdGVuYXRlKCk7CisgICAgaWYgKCFvYmop
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gRGlzYWJsZSBub3RpZmljYXRpb25zIGhlcmUu
Li4KLSAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpzYXZlZENvbnRleHQgPSBtX2NvbnRleHQ7
Ci0KLSAgICBtX2NvbnRleHQgPSAwOwotICAgIFNWR1RyYW5zZm9ybSAqcmV0ID0gaW5pdGlhbGl6
ZShvYmopOwotICAgIG1fY29udGV4dCA9IHNhdmVkQ29udGV4dDsKLSAgICAKLSAgICByZXR1cm4g
cmV0OworICAgIHJldHVybiBpbml0aWFsaXplKG9iaik7CiB9CiAKLVNWR1RyYW5zZm9ybSAqU1ZH
VHJhbnNmb3JtTGlzdDo6Y29uY2F0ZW5hdGUoKSBjb25zdAorU1ZHVHJhbnNmb3JtKiBTVkdUcmFu
c2Zvcm1MaXN0Ojpjb25jYXRlbmF0ZSgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgaW50IGxlbmd0
aCA9IG51bWJlck9mSXRlbXMoKTsKLSAgICBpZighbGVuZ3RoKQorICAgIGlmICghbGVuZ3RoKQog
ICAgICAgICByZXR1cm4gMDsKICAgICAgICAgCi0gICAgU1ZHVHJhbnNmb3JtICpvYmogPSBTVkdT
VkdFbGVtZW50OjpjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKLSAgICBTVkdNYXRyaXggKm1hdHJpeCA9
IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR01hdHJpeCgpOworICAgIFNWR1RyYW5zZm9ybSogb2Jq
ID0gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7CisgICAgU1ZHTWF0cml4KiBt
YXRyaXggPSBTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdNYXRyaXgoKTsKIAogICAgIGZvcih1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKICAgICAgICAgbWF0cml4LT5tdWx0aXBs
eShnZXRJdGVtKGkpLT5tYXRyaXgoKSk7CkBAIC03NSw2ICs3MCw2IEBACiAgICAgcmV0dXJuIG9i
ajsKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8vIHZp
bTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkocmV2aXNpb24g
MTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdSZWN0RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NywxMiArNTcsMTQgQEAKICAgICAgICAgdmlydHVhbCBib29sIGhhc1BlcmNlbnRh
Z2VWYWx1ZXMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxT
VkdMZW5ndGg+LCBZLCB5KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+
LCBIZWlnaHQsIGhlaWdodCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBSeCwgcngpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUnks
IHJ5KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQorCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0
aD4sIFgsIHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0
RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxlbWVudCwgU1ZHTGVuZ3RoKiwg
UmVmUHRyPFNWR0xlbmd0aD4sIFdpZHRoLCB3aWR0aCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1JlY3RFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgSGVpZ2h0LCBoZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdSZWN0RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFJ4LCBy
eCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JlY3RFbGVtZW50
LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUnksIHJ5KQogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQ29s
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQ29sb3Iu
Y3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkQ29s
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAg
ICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICAgICAg
ICAgICAgICAgICAgMjAwNSBPbGl2ZXIgSHVudCA8b2poMTZAc3R1ZGVudC5jYW50ZXJidXJ5LmFj
Lm56PgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkQ29sb3IuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVNWR0Fu
aW1hdGVkQ29sb3I6OlNWR0FuaW1hdGVkQ29sb3IoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29u
dGV4dCkKLTogU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdDb2xvcj4oY29udGV4dCkKLXsKLX0KLQot
U1ZHQW5pbWF0ZWRDb2xvcjo6flNWR0FuaW1hdGVkQ29sb3IoKQotewotfQotCi1TVkdDb2xvciAq
U1ZHQW5pbWF0ZWRDb2xvcjo6Y3JlYXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IFNWR0Nv
bG9yKCk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRDb2xvcjo6YXNzaWduKFNWR0NvbG9yICpzcmMs
IFNWR0NvbG9yICpkc3QpIGNvbnN0Ci17Ci0gICAgaWYgKCFzcmMgfHwgIWRzdCkKLSAgICAgICAg
cmV0dXJuOwotICAgIGRzdC0+c2V0Q3NzVGV4dChzcmMtPmNzc1RleHQoKSk7Ci19Ci0jZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAko
cmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDcgQEAKICAgICAgICAgdmlydHVhbCBjb25zdCBT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAogICAg
IHByaXZhdGU6Ci0KLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFN0cmlu
ZywgU3RyaW5nLCBJbiwgaW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGRVRpbGVFbGVtZW50LCBTdHJpbmcsIFN0cmluZywgSW4sIGluKQogICAgICAgICBtdXRh
YmxlIEtDYW52YXNGRVRpbGUgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw4ICs1NywxMCBAQAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFRl
eHRMZW5ndGgsIHRleHRMZW5ndGgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhpbnQsIGludCwgTGVuZ3RoQWRqdXN0LCBsZW5ndGhBZGp1c3QpCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQpCisKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1Rl
eHRDb250ZW50RWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFRleHRMZW5n
dGgsIHRleHRMZW5ndGgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdUZXh0Q29udGVudEVsZW1lbnQsIGludCwgaW50LCBMZW5ndGhBZGp1c3QsIGxlbmd0aEFkanVz
dCkKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTEgKzYzLDE1IEBACiAgICAg
ICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFgsIHgpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVu
Z3RoPiwgWSwgeSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xl
bmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBXaWR0aCwgd2lkdGgpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgSGVp
Z2h0LCBoZWlnaHQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LCBQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkKSAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZH
VVJJUmVmZXJlbmNlLCBTdHJpbmcsIEhyZWYsIGhyZWYpCisKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ltYWdlRWxlbWVudCwgU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIFgsIHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdJbWFnZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZLCB5KQorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHSW1hZ2VFbGVtZW50LCBTVkdM
ZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHSW1hZ2VFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQ
dHI8U1ZHTGVuZ3RoPiwgSGVpZ2h0LCBoZWlnaHQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdJbWFnZUVsZW1lbnQsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qLCBS
ZWZQdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNl
cnZlQXNwZWN0UmF0aW8pCisKICAgICAgICAgU1ZHSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsK
ICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyAr
NjQsNyBAQAogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdNYXRy
aXg+IG1fbG9jYWxNYXRyaXg7Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBUcmFuc2Zvcm0s
IHRyYW5zZm9ybSkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LCBTVkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1Ry
YW5zZm9ybUxpc3Q+LCBUcmFuc2Zvcm0sIHRyYW5zZm9ybSkKICAgICB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImtzdmcuaCIKICNpbmNsdWRl
ICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1JlY3Qu
aCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0FyYy5o
IgogI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0LmgiCkBAIC0zNTEsNyArMzUwLDcgQEAKIAogU1ZH
UGF0aFNlZ0xpc3QgKlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGxhenlfY3JlYXRlPFNWR1BhdGhTZWdMaXN0PihtX3BhdGhTZWdMaXN0LCB0aGlzKTsK
KyAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHUGF0aFNlZ0xpc3Q+KG1fcGF0aFNlZ0xpc3QpOwog
fQogCiBTVkdQYXRoU2VnTGlzdCAqU1ZHUGF0aEVsZW1lbnQ6Om5vcm1hbGl6ZWRQYXRoU2VnTGlz
dCgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQAogICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgU3RkRGV2aWF0aW9uWCwgc3RkRGV2aWF0
aW9uWCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91
YmxlLCBTdGREZXZpYXRpb25ZLCBzdGREZXZpYXRpb25ZKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LCBTdHJpbmcsIFN0cmlu
ZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3RkRGV2aWF0aW9uWCwgc3RkRGV2
aWF0aW9uWCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFN0ZERldmlhdGlvblksIHN0ZERldmlh
dGlvblkpCiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFR2F1c3NpYW5CbHVyICptX2ZpbHRlckVm
ZmVjdDsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogU1ZHVGV4dEVsZW1lbnQ6OlNWR1RleHRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiAgICAg
OiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KHRhZ05hbWUsIGRvYykKICAgICAsIFNWR1RyYW5z
Zm9ybWFibGUoKQotICAgICwgbV90cmFuc2Zvcm0obmV3IFNWR1RyYW5zZm9ybUxpc3QodGhpcykp
CisgICAgLCBtX3RyYW5zZm9ybShuZXcgU1ZHVHJhbnNmb3JtTGlzdCkKIHsKIH0KIApJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyOSw2ICsxMjksOCBAQAogICAgIHByb3RlY3RlZDoKICAgICAgICAgbXV0YWJsZSBTVkdF
bGVtZW50ICptX3RhcmdldEVsZW1lbnQ7CiAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9S
V0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKwogICAg
ICAgICBib29sIG1fY29ubmVjdGVkIDogMTsKICAgICAgICAgCiAgICAgICAgIGRvdWJsZSBtX2N1
cnJlbnRUaW1lOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcAko
cmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE0ICs0NSwxMSBAQAogICAgIGlmKGxlbiA8IDEpCiAg
ICAgICAgIHJldHVybiBwb2x5RGF0YTsKICAgICAKLSAgICBwb2x5RGF0YS5tb3ZlVG8oRmxvYXRQ
b2ludChwb2ludHMoKS0+Z2V0SXRlbSgwKS0+eCgpLCBwb2ludHMoKS0+Z2V0SXRlbSgwKS0+eSgp
KSk7Ci0gICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW47ICsraSkgewotICAgICAgICBTVkdQb2lu
dCAqcCA9IHBvaW50cygpLT5nZXRJdGVtKGkpOwotICAgICAgICBwb2x5RGF0YS5hZGRMaW5lVG8o
RmxvYXRQb2ludChwLT54KCksIHAtPnkoKSkpOwotICAgIH0KKyAgICBwb2x5RGF0YS5tb3ZlVG8o
cG9pbnRzKCktPmdldEl0ZW0oMCkpOworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuOyArK2kp
CisgICAgICAgIHBvbHlEYXRhLmFkZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRlbShpKSk7CiAKICAg
ICBwb2x5RGF0YS5jbG9zZVN1YnBhdGgoKTsKLQogICAgIHJldHVybiBwb2x5RGF0YTsKIH0KIApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJKHJl
dmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0NiwxMCBAQAogICAgICAgICB2aXJ0dWFs
IGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsg
fQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMSwgeDEpCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWTEs
IHkxKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwg
UmVmUHRyPFNWR0xlbmd0aD4sIFgyLCB4MikKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZMiwgeTIpCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQs
IFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYMSwgeDEpCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0
aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBZMSwgeTEpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBYMiwgeDIpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5n
dGg+LCBZMiwgeTIpCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaWRsCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBT
VkdBbmltYXRlZEJvb2xlYW4geyAKKyAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBiYXNl
VmFsOworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24g
c2V0dGluZworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFuaW1WYWw7CisgIH07Cit9
OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9u
LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnCit7CisgIGludGVy
ZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHsgCisgICAgICAg
ICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGJhc2VWYWw7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGFuaW1WYWw7CisgIH07Cit9OwpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDkgKzU3LDEx
IEBACiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZXJjZW50YWdlVmFsdWVzKCkgY29uc3Q7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
TGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN4LCBjeCkKLSAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBDeSwgY3kp
Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQ
dHI8U1ZHTGVuZ3RoPiwgUiwgcikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9E
RUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKworICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2lyY2xlRWxlbWVudCwgU1ZHTGVuZ3Ro
KiwgUmVmUHRyPFNWR0xlbmd0aD4sIEN4LCBjeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0NpcmNsZUVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5n
dGg+LCBDeSwgY3kpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdD
aXJjbGVFbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgUiwgcikKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZEJvb2xlYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkQm9vbGVhbi5jcHAJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NCArMCwwIEBACi0v
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2lmZGVmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHU3R5bGVk
RWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgotCi11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRCb29sZWFuOjpTVkdBbmltYXRlZEJvb2xlYW4o
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHQW5pbWF0ZWRCb29s
ZWFuPigpCi17Ci0gICAgbV9iYXNlVmFsID0gZmFsc2U7Ci0gICAgbV9hbmltVmFsID0gZmFsc2U7
Ci0KLSAgICBtX2NvbnRleHQgPSBjb250ZXh0OwotfQotCi1TVkdBbmltYXRlZEJvb2xlYW46On5T
VkdBbmltYXRlZEJvb2xlYW4oKQotewotfQotCi1ib29sIFNWR0FuaW1hdGVkQm9vbGVhbjo6YmFz
ZVZhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFzZVZhbDsKLX0KLQotdm9pZCBTVkdBbmlt
YXRlZEJvb2xlYW46OnNldEJhc2VWYWwoYm9vbCBiYXNlVmFsKQotewotICAgIG1fYmFzZVZhbCA9
IGJhc2VWYWw7Ci0KLSAgICAvLyBTcGVjOiBJZiB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHByb3Bl
cnR5IGlzIG5vdCBjdXJyZW50bHkKLSAgICAvLyAgICAgICAgIGJlaW5nIGFuaW1hdGVkLCBjb250
YWlucyB0aGUgc2FtZSB2YWx1ZSBhcyAnYmFzZVZhbCcKLSAgICBtX2FuaW1WYWwgPSBiYXNlVmFs
OwotICAgIAotICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRy
aWJ1dGVDaGFuZ2UoKTsKLX0KLQotYm9vbCBTVkdBbmltYXRlZEJvb2xlYW46OmFuaW1WYWwoKSBj
b25zdAotewotICAgIHJldHVybiBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29s
ZWFuOjpzZXRBbmltVmFsKGJvb2wgYW5pbVZhbCkKLXsKLSAgICBtX2FuaW1WYWwgPSBhbmltVmFs
OwotICAgIAotICAgIGlmKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRy
aWJ1dGVDaGFuZ2UoKTsKLX0KLQotLy8gdmltOnRzPTQ6bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCi0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBA
CiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25z
dCA9IDA7CiAKICAgICBwcml2YXRlOgotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoYm9vbCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TX1dJ
VEhfQ09OVEVYVChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBib29sLCBFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkRW51bWVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc0
ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
Ci0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWZkZWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRl
ICJTVkdTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbihjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KSA6
IFNoYXJlZDxTVkdBbmltYXRlZEVudW1lcmF0aW9uPigpCi17Ci0gICAgbV9iYXNlVmFsID0gMDsK
LSAgICBtX2FuaW1WYWwgPSAwOwotCi0gICAgbV9jb250ZXh0ID0gY29udGV4dDsKLX0KLQotU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbjo6flNWR0FuaW1hdGVkRW51bWVyYXRpb24oKQotewotfQotCi11
bnNpZ25lZCBzaG9ydCBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpiYXNlVmFsKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9iYXNlVmFsOwotfQotCi12b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb246
OnNldEJhc2VWYWwodW5zaWduZWQgc2hvcnQgYmFzZVZhbCkKLXsKLSAgICBtX2Jhc2VWYWwgPSBi
YXNlVmFsOwotICAgIAotICAgIC8vIFNwZWM6IElmIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb3IgcHJv
cGVydHkgaXMgbm90IGN1cnJlbnRseQotICAgIC8vICAgICAgICAgYmVpbmcgYW5pbWF0ZWQsIGNv
bnRhaW5zIHRoZSBzYW1lIHZhbHVlIGFzICdiYXNlVmFsJwotICAgIG1fYW5pbVZhbCA9IGJhc2VW
YWw7Ci0KLSAgICBpZihtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmli
dXRlQ2hhbmdlKCk7Ci19Ci0KLXVuc2lnbmVkIHNob3J0IFNWR0FuaW1hdGVkRW51bWVyYXRpb246
OmFuaW1WYWwoKSBjb25zdAotewotICAgIHJldHVybiBtX2FuaW1WYWw7Ci19Ci0KLXZvaWQgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbjo6c2V0QW5pbVZhbCh1bnNpZ25lZCBzaG9ydCBhbmltVmFsKQot
ewotICAgIG1fYW5pbVZhbCA9IGFuaW1WYWw7Ci0gICAgCi0gICAgaWYobV9jb250ZXh0KQotICAg
ICAgICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwotfQotCi0vLyB2aW06dHM9
NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUG9pbnRMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRM
aXN0LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE3ICsyMiwxOCBAQAogCiAjaWZuZGVmIEtTVkdfU1ZH
UG9pbnRMaXN0SW1wbF9ICiAjZGVmaW5lIEtTVkdfU1ZHUG9pbnRMaXN0SW1wbF9ICisKICNpZmRl
ZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZHTGlzdC5oIgotI2luY2x1ZGUgIlNWR1BvaW50
LmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZQogewotICAg
IGNsYXNzIFNWR1BvaW50TGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR1BvaW50PgorICAgIGNsYXNz
IFNWR1BvaW50TGlzdCA6IHB1YmxpYyBTVkdMaXN0PEZsb2F0UG9pbnQ+CiAgICAgewogICAgIHB1
YmxpYzoKLSAgICAgICAgU1ZHUG9pbnRMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRl
eHQgPSAwKTsKKyAgICAgICAgU1ZHUG9pbnRMaXN0KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1Bv
aW50TGlzdCgpOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0N1cnNvckVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50
LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1NywxMiBAQAogICAgICAgICB2aXJ0dWFsIGNv
bnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBYLCB4KQotICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRf
REVDTEFSQVRJT05TKFNWR1VSSVJlZmVyZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQorCisgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDdXJzb3JFbGVtZW50LCBTVkdM
ZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0N1cnNvckVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0cjxTVkdM
ZW5ndGg+LCBZLCB5KQorCiAgICAgICAgIENhY2hlZEltYWdlICptX2NhY2hlZEltYWdlOwogICAg
IH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE2
MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Myw3ICs0Myw3IEBACiAKIFNWR1BvaW50TGlzdCAqU1ZHUG9seUVsZW1lbnQ6OnBv
aW50cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhenlfY3JlYXRlPFNWR1BvaW50TGlzdD4obV9w
b2ludHMsIHRoaXMpOworICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdQb2ludExpc3Q+KG1fcG9p
bnRzKTsKIH0KIAogU1ZHUG9pbnRMaXN0ICpTVkdQb2x5RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMo
KSBjb25zdApAQCAtNjYsNyArNjYsNyBAQAogCiB2b2lkIFNWR1BvbHlFbGVtZW50OjpzdmdQb2x5
VG8oZG91YmxlIHgxLCBkb3VibGUgeTEsIGludCkgY29uc3QKIHsKLSAgICBwb2ludHMoKS0+YXBw
ZW5kSXRlbShuZXcgU1ZHUG9pbnQoeDEsIHkxLCB0aGlzKSk7CisgICAgcG9pbnRzKCktPmFwcGVu
ZEl0ZW0oRmxvYXRQb2ludCh4MSwgeTEpKTsKIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6bm90
aWZ5QXR0cmlidXRlQ2hhbmdlKCkgY29uc3QKQEAgLTgzLDggKzgzLDggQEAKICAgICBTdHJpbmcg
X3BvaW50czsKICAgICBpbnQgbGVuID0gcG9pbnRzKCktPm51bWJlck9mSXRlbXMoKTsKICAgICBm
b3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIFNWR1BvaW50ICpwID0gcG9p
bnRzKCktPmdldEl0ZW0oaSk7Ci0gICAgICAgIF9wb2ludHMgKz0gU3RyaW5nOjpzcHJpbnRmKCIl
LjZsZyAlLjZsZyAiLCBwLT54KCksIHAtPnkoKSk7CisgICAgICAgIEZsb2F0UG9pbnQgcCA9IHBv
aW50cygpLT5nZXRJdGVtKGkpOworICAgICAgICBfcG9pbnRzICs9IFN0cmluZzo6c3ByaW50Zigi
JS42bGcgJS42bGcgIiwgcC54KCksIHAueSgpKTsKICAgICB9CiAKICAgICBTdHJpbmcgcCgicG9p
bnRzIik7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRWxlbWVudC5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMjIgKzI0
LDcwIEBACiAjZGVmaW5lIEtTVkdfU1ZHRWxlbWVudEltcGxfSAogI2lmZGVmIFNWR19TVVBQT1JU
CiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIlN0eWxlZEVsZW1lbnQuaCIKKwogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5o
IgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAKLS8vIEZJWE1FOiBUZW1wbGF0aWZ5IGFzIG11Y2gg
YXMgcG9zc2libGUgaGVyZSEKLSNkZWZpbmUgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KEJhcmVUeXBlLCBTdG9yYWdlVHlwZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAor
I2RlZmluZSBBTklNQVRFRF9QUk9QRVJUWV9FTVBUWV9ERUNMQVJBVElPTlMoQmFyZVR5cGUsIE51
bGxUeXBlLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBwdWJsaWM6IFwKKyAgICB2
aXJ0dWFsIEJhcmVUeXBlIExvd2VyUHJvcGVydHkoKSBjb25zdCB7IEFTU0VSVChmYWxzZSk7IHJl
dHVybiBOdWxsVHlwZTsgfSBcCisgICAgdmlydHVhbCB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eShC
YXJlVHlwZSBuZXdWYWx1ZSkgeyBBU1NFUlQoZmFsc2UpOyB9XAorICAgIHZpcnR1YWwgQmFyZVR5
cGUgTG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3QgeyBBU1NFUlQoZmFsc2UpOyByZXR1
cm4gTnVsbFR5cGU7IH0gXAorICAgIHZpcnR1YWwgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jh
c2VWYWx1ZShCYXJlVHlwZSBuZXdWYWx1ZSkgeyBBU1NFUlQoZmFsc2UpOyB9CisKKyNkZWZpbmUg
QU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoRm9yd2FyZENsYXNzLCBCYXJl
VHlwZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorcHVibGljOiBcCisgICAgdmly
dHVhbCBCYXJlVHlwZSBMb3dlclByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gRm9yd2FyZENsYXNz
OjpMb3dlclByb3BlcnR5KCk7IH0gXAorICAgIHZpcnR1YWwgdm9pZCBzZXQjI1VwcGVyUHJvcGVy
dHkoQmFyZVR5cGUgbmV3VmFsdWUpIHsgRm9yd2FyZENsYXNzOjpzZXQjI1VwcGVyUHJvcGVydHko
bmV3VmFsdWUpOyB9IFwKKyAgICB2aXJ0dWFsIEJhcmVUeXBlIExvd2VyUHJvcGVydHkjI0Jhc2VW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIEZvcndhcmRDbGFzczo6TG93ZXJQcm9wZXJ0eSMjQmFzZVZh
bHVlKCk7IH0gXAorICAgIHZpcnR1YWwgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1
ZShCYXJlVHlwZSBuZXdWYWx1ZSkgeyBGb3J3YXJkQ2xhc3M6OnNldCMjVXBwZXJQcm9wZXJ0eSMj
QmFzZVZhbHVlKG5ld1ZhbHVlKTsgfQorCisjZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OU19JTlRFUk5BTChDbGFzc1R5cGUsIENsYXNzU3RvcmFnZVR5cGUsIEJhcmVUeXBlLCBT
dG9yYWdlVHlwZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAorY2xhc3MgU1ZHQW5p
bWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eSBcCis6IHB1YmxpYyBTVkdBbmltYXRlZFRlbXBs
YXRlPEJhcmVUeXBlPiBcCit7IFwKK3B1YmxpYzogXAorICAgIFNWR0FuaW1hdGVkVGVtcGxhdGUj
I1VwcGVyUHJvcGVydHkoY29uc3QgQ2xhc3NUeXBlKiBlbGVtZW50KTsgXAorICAgIHZpcnR1YWwg
flNWR0FuaW1hdGVkVGVtcGxhdGUjI1VwcGVyUHJvcGVydHkoKSB7IH0gXAorICAgIHZpcnR1YWwg
QmFyZVR5cGUgYmFzZVZhbCgpIGNvbnN0OyBcCisgICAgdmlydHVhbCB2b2lkIHNldEJhc2VWYWwo
QmFyZVR5cGUgbmV3QmFzZVZhbCk7IFwKKyAgICB2aXJ0dWFsIEJhcmVUeXBlIGFuaW1WYWwoKSBj
b25zdDsgXAorICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltVmFsKEJhcmVUeXBlIG5ld0FuaW1WYWwp
OyBcCitwcm90ZWN0ZWQ6IFwKKyAgICBDbGFzc1N0b3JhZ2VUeXBlIG1fZWxlbWVudDsgXAorfTsg
XAorcHVibGljOiBcCiAgICAgQmFyZVR5cGUgTG93ZXJQcm9wZXJ0eSgpIGNvbnN0OyBcCiAgICAg
dm9pZCBzZXQjI1VwcGVyUHJvcGVydHkoQmFyZVR5cGUgbmV3VmFsdWUpOyBcCiAgICAgQmFyZVR5
cGUgTG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3Q7IFwKICAgICB2b2lkIHNldCMjVXBw
ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKEJhcmVUeXBlIG5ld1ZhbHVlKTsgXAorICAgIFBhc3NSZWZQ
dHI8U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eT4gTG93ZXJQcm9wZXJ0eSMjQW5p
bWF0ZWQoKSBjb25zdDsgXAogcHJpdmF0ZTogXAogICAgIFN0b3JhZ2VUeXBlIG1fIyNMb3dlclBy
b3BlcnR5OwogCi0jZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX0lOVEVSTkFM
KENsYXNzTmFtZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NOYW1lLCBMb3dlckNsYXNzTmFtZSwgVXBw
ZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5hbWUsIFN0b3JhZ2VHZXR0ZXIsIENvbnRl
eHRFbGVtZW50KSBcCisjZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RFRklOSVRJT05TX0lOVEVS
TkFMKENsYXNzTmFtZSwgQ2xhc3NUeXBlLCBCYXJlVHlwZSwgVXBwZXJDbGFzc05hbWUsIExvd2Vy
Q2xhc3NOYW1lLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5LCBBdHRyTmFtZSwgU3RvcmFn
ZUdldHRlciwgQ29udGV4dEVsZW1lbnQpIFwKK0NsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0
ZSMjVXBwZXJQcm9wZXJ0eTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eShjb25z
dCBDbGFzc1R5cGUqIGVsZW1lbnQpIFwKKzogbV9lbGVtZW50KGNvbnN0X2Nhc3Q8Q2xhc3NUeXBl
Kj4oZWxlbWVudCkpIHsgfSBcCitCYXJlVHlwZSBDbGFzc05hbWU6OlNWR0FuaW1hdGVkVGVtcGxh
dGUjI1VwcGVyUHJvcGVydHk6OmJhc2VWYWwoKSBjb25zdCBcCit7IFwKKyAgICByZXR1cm4gbV9l
bGVtZW50LT5Mb3dlclByb3BlcnR5IyNCYXNlVmFsdWUoKTsgXAorfSBcCit2b2lkIENsYXNzTmFt
ZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eTo6c2V0QmFzZVZhbChCYXJlVHlw
ZSBuZXdCYXNlVmFsKSBcCit7IFwKKyAgICBtX2VsZW1lbnQtPnNldCMjVXBwZXJQcm9wZXJ0eSMj
QmFzZVZhbHVlKG5ld0Jhc2VWYWwpOyBcCit9IFwKK0JhcmVUeXBlIENsYXNzTmFtZTo6U1ZHQW5p
bWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eTo6YW5pbVZhbCgpIGNvbnN0IFwKK3sgXAorICAg
IHJldHVybiBtX2VsZW1lbnQtPkxvd2VyUHJvcGVydHkoKTsgXAorfVwKK3ZvaWQgQ2xhc3NOYW1l
OjpTVkdBbmltYXRlZFRlbXBsYXRlIyNVcHBlclByb3BlcnR5OjpzZXRBbmltVmFsKEJhcmVUeXBl
IG5ld0FuaW1WYWwpIFwKK3sgXAorICAgIG1fZWxlbWVudC0+c2V0IyNVcHBlclByb3BlcnR5KG5l
d0FuaW1WYWwpOyBcCit9IFwKIEJhcmVUeXBlIENsYXNzTmFtZTo6TG93ZXJQcm9wZXJ0eSgpIGNv
bnN0IFwKIHsgXAogICAgIHJldHVybiBTdG9yYWdlR2V0dGVyOyBcCkBAIC02NywxNSArMTE1LDMz
IEBACiAgICAgc2V0IyNVcHBlclByb3BlcnR5KG5ld1ZhbHVlKTsgXAogfQogCisvLyBUaGVzZSBh
cmUgdGhlIG1hY3JvcyB3aGljaCB3aWxsIGJlIHVzZWQgdG8gZGVjbGFyZS9pbXBsZW1lbnQgdGhl
IHN2ZyBhbmltYXRlZCBwcm9wZXJ0aWVzLi4uCisjZGVmaW5lIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OU19XSVRIX0NPTlRFWFQoQ2xhc3NOYW1lLCBCYXJlVHlwZSwgU3RvcmFnZVR5cGUs
IFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpIFwKK0FOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OU19JTlRFUk5BTChTVkdFbGVtZW50LCBSZWZQdHI8U1ZHRWxlbWVudD4sIEJhcmVUeXBl
LCBTdG9yYWdlVHlwZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkKKworI2RlZmluZSBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoQ2xhc3NOYW1lLCBCYXJlVHlwZSwgU3RvcmFn
ZVR5cGUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpIFwKK0FOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OU19JTlRFUk5BTChDbGFzc05hbWUsIFJlZlB0cjxDbGFzc05hbWU+LCBCYXJl
VHlwZSwgU3RvcmFnZVR5cGUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCisKICNkZWZp
bmUgQU5JTUFURURfUFJPUEVSVFlfREVGSU5JVElPTlNfV0lUSF9DT05URVhUKENsYXNzTmFtZSwg
QmFyZVR5cGUsIFVwcGVyQ2xhc3NOYW1lLCBMb3dlckNsYXNzTmFtZSwgVXBwZXJQcm9wZXJ0eSwg
TG93ZXJQcm9wZXJ0eSwgQXR0ck5hbWUsIFN0b3JhZ2VHZXR0ZXIpIFwKLUFOSU1BVEVEX1BST1BF
UlRZX0RFRklOSVRJT05TX0lOVEVSTkFMKENsYXNzTmFtZSwgQmFyZVR5cGUsIFVwcGVyQ2xhc3NO
YW1lLCBMb3dlckNsYXNzTmFtZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSwgQXR0ck5h
bWUsIFN0b3JhZ2VHZXR0ZXIsIGNvbnRleHRFbGVtZW50KCkpCitBTklNQVRFRF9QUk9QRVJUWV9E
RUZJTklUSU9OU19JTlRFUk5BTChDbGFzc05hbWUsIFNWR0VsZW1lbnQsIEJhcmVUeXBlLCBVcHBl
ckNsYXNzTmFtZSwgTG93ZXJDbGFzc05hbWUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHks
IEF0dHJOYW1lLCBTdG9yYWdlR2V0dGVyLCBjb250ZXh0RWxlbWVudCgpKSBcCitQYXNzUmVmUHRy
PENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eT4gQ2xhc3NOYW1l
OjpMb3dlclByb3BlcnR5IyNBbmltYXRlZCgpIGNvbnN0IFwKK3sgXAorICAgIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHQgPSBjb250ZXh0RWxlbWVudCgpOyBcCisgICAgQVNTRVJUKGNvbnRleHQg
IT0gMCk7IFwKKyAgICByZXR1cm4gUmVmUHRyPENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0
ZSMjVXBwZXJQcm9wZXJ0eT4obmV3IENsYXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBw
ZXJQcm9wZXJ0eShjb250ZXh0KSk7IFwKK30KIAogI2RlZmluZSBBTklNQVRFRF9QUk9QRVJUWV9E
RUZJTklUSU9OUyhDbGFzc05hbWUsIEJhcmVUeXBlLCBVcHBlckNsYXNzTmFtZSwgTG93ZXJDbGFz
c05hbWUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHksIEF0dHJOYW1lLCBTdG9yYWdlR2V0
dGVyKSBcCi1BTklNQVRFRF9QUk9QRVJUWV9ERUZJTklUSU9OU19JTlRFUk5BTChDbGFzc05hbWUs
IEJhcmVUeXBlLCBVcHBlckNsYXNzTmFtZSwgTG93ZXJDbGFzc05hbWUsIFVwcGVyUHJvcGVydHks
IExvd2VyUHJvcGVydHksIEF0dHJOYW1lLCBTdG9yYWdlR2V0dGVyLCB0aGlzKQorQU5JTUFURURf
UFJPUEVSVFlfREVGSU5JVElPTlNfSU5URVJOQUwoQ2xhc3NOYW1lLCBDbGFzc05hbWUsIEJhcmVU
eXBlLCBVcHBlckNsYXNzTmFtZSwgTG93ZXJDbGFzc05hbWUsIFVwcGVyUHJvcGVydHksIExvd2Vy
UHJvcGVydHksIEF0dHJOYW1lLCBTdG9yYWdlR2V0dGVyLCB0aGlzKSBcCitQYXNzUmVmUHRyPENs
YXNzTmFtZTo6U1ZHQW5pbWF0ZWRUZW1wbGF0ZSMjVXBwZXJQcm9wZXJ0eT4gQ2xhc3NOYW1lOjpM
b3dlclByb3BlcnR5IyNBbmltYXRlZCgpIGNvbnN0IFwKK3sgXAorICAgIHJldHVybiBSZWZQdHI8
Q2xhc3NOYW1lOjpTVkdBbmltYXRlZFRlbXBsYXRlIyNVcHBlclByb3BlcnR5PihuZXcgQ2xhc3NO
YW1lOjpTVkdBbmltYXRlZFRlbXBsYXRlIyNVcHBlclByb3BlcnR5KHRoaXMpKTsgXAorfQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRG9jdW1lbnRQdHI7CiAgICAgY2xhc3MgRWNt
YTsKKyAgICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAgIGNsYXNzIFNWR01hdHJp
eDsKICAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50OwogICAgIGNsYXNzIFNWR1NWR0VsZW1lbnQ7
CkBAIC0xMDksMTYgKzE3NSwyOCBAQAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkcoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNGaWx0ZXJFZmZlY3Qo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFkaWVu
dFN0b3AoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICAKKwogICAgICAgICAvLyBG
b3IgU1ZHVGVzdHMKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgICAgIAorICAKICAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlUmVuZGVy
ZXIoKTsKICAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUq
KSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihOb2RlKikgY29uc3Q7Ci0gICAgICAgIAorCiAgICAgICAgIHZvaWQgc2VuZFNW
R0xvYWRFdmVudElmUG9zc2libGUoYm9vbCBzZW5kUGFyZW50TG9hZEV2ZW50cyA9IGZhbHNlKTsK
IAorICAgICAgICAvLyBGb3J3YXJkZWQgcHJvcGVydGllcyAoZGVjbGFyZWQvZGVmaW5lZCBhbnl3
aGVyZSBlbHNlIGluIHRoZSBpbmhlcml0YW5jZSBzdHJ1Y3R1cmUpCisKKyAgICAgICAgLy8gLT4g
Rm9yIFNWR1VSSVJlZmVyZW5jZQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9FTVBUWV9ERUNM
QVJBVElPTlMoU3RyaW5nLCBTdHJpbmcoKSwgSHJlZiwgaHJlZikKKworICAgICAgICAvLyAtPiBG
b3IgU1ZHRml0VG9WaWV3Qm94CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0VNUFRZX0RFQ0xB
UkFUSU9OUyhGbG9hdFJlY3QsIEZsb2F0UmVjdCgpLCBWaWV3Qm94LCB2aWV3Qm94KSAgICAKKyAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfRU1QVFlfREVDTEFSQVRJT05TKFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8qLCAwLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQor
CisgICAgICAgIC8vIC0+IEZvciBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0VNUFRZX0RFQ0xBUkFUSU9OUyhib29sLCBmYWxzZSwgRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIHZvaWQgYWRkU1ZHRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgY29uc3QgQXR0cmlidXRlKik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBo
YXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsOCBAQAogI2luY2x1ZGUgIlNW
R0FuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oIgotI2luY2x1ZGUgIlNWR1JlY3QuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVu
dEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJTVkdNYXRyaXguaCIKLSNpbmNsdWRlICJTVkdOdW1i
ZXIuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdab29tRXZlbnQu
aCIKICNpbmNsdWRlICJrc3ZnLmgiCkBAIC02MSw3ICs1OSw3IEBACiAgICAgLCBtX3RpbWVTY2hl
ZHVsZXIobmV3IFRpbWVTY2hlZHVsZXIoZG9jKSkKIHsKICAgICBjb25zdCBTVkdFbGVtZW50KiB2
aWV3cG9ydCA9IG93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgPT0gdGhpcyA/IHRo
aXMgOiB2aWV3cG9ydEVsZW1lbnQoKTsKLSAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250
ZXh0ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBTVkdTdHlsZWRFbGVtZW50Kj4ob3duZXJEb2N1
bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSB0aGlzID8gMCA6IHRoaXMpOworICAgIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSBvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxl
bWVudCgpID09IHRoaXMgPyAwIDogdGhpczsKIAogICAgIG1feCA9IG5ldyBTVkdMZW5ndGgoY29u
dGV4dCwgTE1fV0lEVEgsIHZpZXdwb3J0KTsKICAgICBtX3kgPSBuZXcgU1ZHTGVuZ3RoKGNvbnRl
eHQsIExNX0hFSUdIVCwgdmlld3BvcnQpOwpAQCAtMjMxLDcgKzIyOSw3IEBACiAgICAgICAgIGlm
IChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRy
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikgJiYgcmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFJlbmRlclNWR0NvbnRhaW5lcio+KHJlbmRlcmVyKCkpLT5zZXRWaWV3Qm94KEZsb2F0
UmVjdCh2aWV3Qm94KCktPngoKSwgdmlld0JveCgpLT55KCksIHZpZXdCb3goKS0+d2lkdGgoKSwg
dmlld0JveCgpLT5oZWlnaHQoKSkpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU1ZH
Q29udGFpbmVyKj4ocmVuZGVyZXIoKSktPnNldFZpZXdCb3godmlld0JveCgpKTsKICAgICAgICAg
aWYgKFNWR1pvb21BbmRQYW46OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0zODAsOSArMzc4LDkgQEAKICAgICBmbG9hdCBfaGVpZ2h0ID0gaGVp
Z2h0KCktPnZhbHVlKCk7CiAKICAgICByb290Q29udGFpbmVyLT5zZXRWaWV3cG9ydChGbG9hdFJl
Y3QoX3gsIF95LCBfd2lkdGgsIF9oZWlnaHQpKTsKLSAgICByb290Q29udGFpbmVyLT5zZXRWaWV3
Qm94KEZsb2F0UmVjdCh2aWV3Qm94KCktPngoKSwgdmlld0JveCgpLT55KCksIHZpZXdCb3goKS0+
d2lkdGgoKSwgdmlld0JveCgpLT5oZWlnaHQoKSkpOworICAgIHJvb3RDb250YWluZXItPnNldFZp
ZXdCb3godmlld0JveCgpKTsKICAgICByb290Q29udGFpbmVyLT5zZXRBbGlnbihLQ0FsaWduKHBy
ZXNlcnZlQXNwZWN0UmF0aW8oKS0+YWxpZ24oKSAtIDEpKTsKLSAgICByb290Q29udGFpbmVyLT5z
ZXRTbGljZShwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPm1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRP
UlNMSUNFX1NMSUNFKTsKKyAgICByb290Q29udGFpbmVyLT5zZXRTbGljZShwcmVzZXJ2ZUFzcGVj
dFJhdGlvKCktPm1lZXRPclNsaWNlKCkgPT0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHX01F
RVRPUlNMSUNFX1NMSUNFKTsKICAgICAKICAgICByZXR1cm4gcm9vdENvbnRhaW5lcjsKIH0KSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwCShyZXZp
c2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMyArMjEsMTUgQEAKICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCisKICNpbmNsdWRlICJTVkdFbGVtZW50SW5z
dGFuY2VMaXN0LmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1TVkdFbGVtZW50SW5zdGFuY2VMaXN0OjpTVkdFbGVtZW50SW5zdGFuY2VMaXN0KGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCi06IFNWR0xpc3Q8U1ZHRWxlbWVudEluc3Rh
bmNlPihjb250ZXh0KQorU1ZHRWxlbWVudEluc3RhbmNlTGlzdDo6U1ZHRWxlbWVudEluc3RhbmNl
TGlzdCgpCisJOiBTVkdMaXN0PFNWR0VsZW1lbnRJbnN0YW5jZSo+KCkKIHsKIH0KIApAQCAtMzUs
NiArMzcsOCBAQAogewogfQogCi0vLyB2aW06dHM9NDpub2V0Cit9CisKICNlbmRpZiAvLyBTVkdf
U1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZENvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRDb2xvci5oCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NCArMCwwIEBACi0vKgotICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
LSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAg
ICAgICAgICAgICAgICAgIDIwMDUgT2xpdmVyIEh1bnQgPG9qaDE2QHN0dWRlbnQuY2FudGVyYnVy
eS5hYy5uej4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KLSAqLwotCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRDb2xvckltcGxfSAotI2RlZmluZSBL
U1ZHX1NWR0FuaW1hdGVkQ29sb3JJbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBj
bGFzcyBTVkdBbmltYXRlZENvbG9yIDogcHVibGljIFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHQ29s
b3I+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZWRDb2xvcihjb25zdCBT
VkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRD
b2xvcigpOwotICAgIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBTVkdDb2xvciAq
Y3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24oU1ZHQ29sb3IgKnNy
YywgU1ZHQ29sb3IgKmRzdCkgY29uc3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZgpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHQW5pbWF0ZWRCb29sZWFuLmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTYgKzAsMCBAQAot
LyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxk
Zm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQot
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNp
Zm5kZWYgS1NWR19TVkdBbmltYXRlZEJvb2xlYW5JbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdBbmlt
YXRlZEJvb2xlYW5JbXBsX0gKLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSAiU2hhcmVk
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnQ7
Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZEJvb2xlYW4gOiBwdWJsaWMgU2hhcmVkPFNWR0FuaW1h
dGVkQm9vbGVhbj4gewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZWRCb29sZWFuKGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbmlt
YXRlZEJvb2xlYW4oKTsKLQotICAgICAgICBib29sIGJhc2VWYWwoKSBjb25zdDsKLSAgICAgICAg
dm9pZCBzZXRCYXNlVmFsKGJvb2wgYmFzZVZhbCk7Ci0KLSAgICAgICAgYm9vbCBhbmltVmFsKCkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0QW5pbVZhbChib29sIGFuaW1WYWwpOwotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgYm9vbCBtX2Jhc2VWYWwgOiAxOwotICAgICAgICBib29sIG1fYW5pbVZh
bCA6IDE7Ci0KLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqbV9jb250ZXh0OwotICAg
IH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0j
ZW5kaWYgLy8gS1NWR19TVkdBbmltYXRlZEJvb2xlYW5JbXBsX0gKLQotLy8gdmltOnRzPTQ6bm9l
dApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIFNWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50OjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKQogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRvYykKICAgICAsIG1fdHlwZSgwKQotICAgICwgbV92YWx1
ZXMobmV3IFNWR051bWJlckxpc3QoMCkpCisgICAgLCBtX3ZhbHVlcyhuZXcgU1ZHTnVtYmVyTGlz
dCkKICAgICAsIG1fZmlsdGVyRWZmZWN0KDApCiB7CiB9CkBAIC03Myw3ICs3Myw3IEBACiAgICAg
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjppbkF0dHIpCiAgICAgICAgIHNldElu
QmFzZVZhbHVlKHZhbHVlKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6
OnZhbHVlc0F0dHIpCi0gICAgICAgIHZhbHVlc0Jhc2VWYWx1ZSgpLT5wYXJzZSh2YWx1ZS5kZXBy
ZWNhdGVkU3RyaW5nKCksIHRoaXMpOworICAgICAgICB2YWx1ZXNCYXNlVmFsdWUoKS0+cGFyc2Uo
dmFsdWUuZGVwcmVjYXRlZFN0cmluZygpKTsKICAgICBlbHNlCiAgICAgICAgIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9
CkBAIC05MSw3ICs5MSw3IEBACiAgICAgU1ZHTnVtYmVyTGlzdCAqbnVtYmVycyA9IHZhbHVlcygp
OwogICAgIHVuc2lnbmVkIGludCBuciA9IG51bWJlcnMtPm51bWJlck9mSXRlbXMoKTsKICAgICBm
b3IodW5zaWduZWQgaW50IGkgPSAwO2kgPCBucjtpKyspCi0gICAgICAgIF92YWx1ZXMuYXBwZW5k
KG51bWJlcnMtPmdldEl0ZW0oaSktPnZhbHVlKCkpOworICAgICAgICBfdmFsdWVzLmFwcGVuZChu
dW1iZXJzLT5nZXRJdGVtKGkpKTsKICAgICBtX2ZpbHRlckVmZmVjdC0+c2V0VmFsdWVzKF92YWx1
ZXMpOwogICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRUeXBlKChLQ0NvbG9yTWF0cml4VHlwZSkodHlw
ZSgpIC0gMSkpOwogICAgIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5o
CShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAKICAgICAgICAgdmlydHVhbCBjb25z
dCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJp
bmcsIFN0cmluZywgSW4sIGluKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRkVGbG9vZEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwgaW4pCiAgICAgICAgIG11
dGFibGUgS0NhbnZhc0ZFRmxvb2QgKm1fZmlsdGVyRWZmZWN0OwogICAgIH07CiAKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHJl
dmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMyArNDYsMTMgQEAKICAgICAgICAgdmly
dHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRo
aXM7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTdHJpbmcsIFN0cmluZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1bGFyQ29u
c3RhbnQpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRv
dWJsZSwgU3BlY3VsYXJFeHBvbmVudCwgc3BlY3VsYXJFeHBvbmVudCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBTdXJmYWNlU2NhbGUsIHN1
cmZhY2VTY2FsZSkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0Nv
bG9yKiwgUmVmUHRyPFNWR0NvbG9yPiwgTGlnaHRpbmdDb2xvciwgbGlnaHRpbmdDb2xvcikKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBLZXJu
ZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFgpCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhkb3VibGUsIGRvdWJsZSwgS2VybmVsVW5pdExlbmd0aFksIGtlcm5l
bFVuaXRMZW5ndGhZKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgU3RyaW5nLCBTdHJpbmcsIEluLCBpbikKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBTcGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckNvbnN0YW50
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudCwgZG91YmxlLCBkb3VibGUsIFNwZWN1bGFyRXhwb25lbnQsIHNwZWN1bGFy
RXhwb25lbnQpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgU3VyZmFjZVNjYWxlLCBzdXJm
YWNlU2NhbGUpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBTVkdDb2xvciosIFJlZlB0cjxTVkdDb2xvcj4sIExpZ2h0
aW5nQ29sb3IsIGxpZ2h0aW5nQ29sb3IpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBkb3VibGUsIGRvdWJsZSwgS2Vy
bmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhYKQorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgZG91YmxlLCBk
b3VibGUsIEtlcm5lbFVuaXRMZW5ndGhZLCBrZXJuZWxVbml0TGVuZ3RoWSkKICAgICAgICAgLy9u
ZWVkIG90aGVyIHByb3BlcnRpZXMgaGVyZS4uLgogICAgICAgICBtdXRhYmxlIEtDYW52YXNGRVNw
ZWN1bGFyTGlnaHRpbmcgKm1fZmlsdGVyRWZmZWN0OwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL0RPTUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9ET01M
aXN0LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvRE9NTGlzdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDEyNyArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLRE9NX0RPTUxpc3RfSAotI2Rl
ZmluZSBLRE9NX0RPTUxpc3RfSAotI2lmZGVmIFNWR19TVVBQT1JUCi0KLSNpbmNsdWRlICJEZXBy
ZWNhdGVkUHRyTGlzdC5oIgotI2luY2x1ZGUgIlNoYXJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBUPgotICAgIGNsYXNzIERPTUxpc3QgOiBwdWJsaWMg
U2hhcmVkPERPTUxpc3Q8VD4gPiB7Ci0gICAgcHVibGljOgotICAgICAgICBET01MaXN0KCkgOiBT
aGFyZWQ8RE9NTGlzdDxUPiA+KCkgeyBtX2ltcGwuc2V0QXV0b0RlbGV0ZShmYWxzZSk7IH0KLSAg
ICAgICAgRE9NTGlzdChjb25zdCBET01MaXN0ICZvdGhlcikgeyAqdGhpcyA9IG90aGVyOyB9Ci0g
ICAgICAgIHZpcnR1YWwgfkRPTUxpc3QoKSB7IGNsZWFyKCk7IH0KLQotLy8gICAgICAgIERPTUxp
c3Q8VD4gJm9wZXJhdG9yPShjb25zdCBET01MaXN0PFQ+ICZvdGhlcikKLS8vICAgICAgICB7Ci0v
LyAgICAgICAgICAgIC8vIENsZWFyIG93biBsaXN0Ci0vLyAgICAgICAgICAgIGNsZWFyKCk7Ci0v
LwotLy8gICAgICAgICAgICAvLyBDbG9uZSBvdGhlcidzIGVsZW1lbnRzIGFuZCBhcHBlbmQgdGhl
bQotLy8gICAgICAgICAgICBET01MaXN0PFQ+ICZnZXQgPSBjb25zdF9jYXN0PERPTUxpc3Q8VD4g
Jj4ob3RoZXIpOwotLy8gICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnIgPSBvdGhlci5udW1iZXJP
Zkl0ZW1zKCk7Ci0vLyAgICAgICAgICAgIGZvcih1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBucjsg
aSsrKQotLy8gICAgICAgICAgICB7Ci0vLyAgICAgICAgICAgICAgICBUICpvYmogPSBuZXcgVCgq
Z2V0LmdldEl0ZW0oaSkpOwotLy8gICAgICAgICAgICAgICAgb2JqLT5yZWYoKTsKLS8vCi0vLyAg
ICAgICAgICAgICAgICBhcHBlbmRJdGVtKG9iaik7Ci0vLyAgICAgICAgICAgIH0KLS8vCi0vLyAg
ICAgICAgICAgIHJldHVybiAqdGhpczsKLS8vICAgICAgICB9Ci0KLSAgICAgICAgdW5zaWduZWQg
aW50IG51bWJlck9mSXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuY291bnQoKTsgfQotCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvcih1
bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBudW1iZXJPZkl0ZW1zKCk7IGkrKykKLSAgICAgICAgICAg
ICAgICBnZXRJdGVtKGkpLT5kZXJlZigpOwotCi0gICAgICAgICAgICBtX2ltcGwuY2xlYXIoKTsK
LSAgICAgICAgfQotCi0gICAgICAgIFQgKmluaXRpYWxpemUoVCAqbmV3SXRlbSkKLSAgICAgICAg
ewotICAgICAgICAgICAgY2xlYXIoKTsKLSAgICAgICAgICAgIHJldHVybiBhcHBlbmRJdGVtKG5l
d0l0ZW0pOwotICAgICAgICB9Ci0KLSAgICAgICAgVCAqZ2V0Rmlyc3QoKSBjb25zdCB7IHJldHVy
biBtX2ltcGwuZ2V0Rmlyc3QoKTsgfQotCi0gICAgICAgIFQgKmdldExhc3QoKSBjb25zdCB7IHJl
dHVybiBtX2ltcGwuZ2V0TGFzdCgpOyB9Ci0KLSAgICAgICAgVCAqZ2V0SXRlbSh1bnNpZ25lZCBp
bnQgaW5kZXgpIHsgcmV0dXJuIG1faW1wbC5hdChpbmRleCk7IH0KLSAgICAgICAgY29uc3QgVCAq
Z2V0SXRlbSh1bnNpZ25lZCBpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8RE9N
TGlzdDxUPiAqPih0aGlzKS0+bV9pbXBsLmF0KGluZGV4KTsgfQotCi0gICAgICAgIHZpcnR1YWwg
VCAqaW5zZXJ0SXRlbUJlZm9yZShUICpuZXdJdGVtLCB1bnNpZ25lZCBpbnQgaW5kZXgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIG1faW1wbC5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0pOwotICAgICAg
ICAgICAgcmV0dXJuIG5ld0l0ZW07Ci0gICAgICAgIH0KLQotICAgICAgICB2aXJ0dWFsIFQgKnJl
cGxhY2VJdGVtKFQgKm5ld0l0ZW0sIHVuc2lnbmVkIGludCBpbmRleCkKLSAgICAgICAgewotICAg
ICAgICAgICAgbV9pbXBsLnRha2UoaW5kZXgpOwotICAgICAgICAgICAgbV9pbXBsLmluc2VydChp
bmRleCwgbmV3SXRlbSk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3SXRlbTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZpcnR1YWwgVCAqcmVtb3ZlSXRlbSh1bnNpZ25lZCBpbnQgaW5kZXgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2ltcGwudGFrZShpbmRleCk7Ci0gICAgICAgIH0K
LQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSXRlbShjb25zdCBUICppdGVtKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBtX2ltcGwucmVtb3ZlKGl0ZW0pOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdmlydHVhbCBUICphcHBlbmRJdGVtKFQgKm5ld0l0ZW0pCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIG1faW1wbC5hcHBlbmQobmV3SXRlbSk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3SXRlbTsK
LSAgICAgICAgfQotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBUICppdGVt
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZihtX2ltcGwuZmluZFJlZihpdGVtKSAhPSAtMSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBEZXByZWNhdGVkUHRyTGlzdDxU
PiBtX2ltcGw7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
U1ZHX1NVUFBPUlQKLSNlbmRpZiAvLyBLRE9NX0RPTUxpc3RfSAotCi0vLyB2aW06dHM9NDpub2V0
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0dFbGVtZW50LmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksMTAg
QEAKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLSAgICB9OworIAorICAgIHBy
aXZhdGU6CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpIAorICAgICB9OwogCiAgICAgY2xhc3MgU1ZH
RHVtbXlFbGVtZW50IDogcHVibGljIFNWR0dFbGVtZW50IHsKICAgICBwdWJsaWM6CkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oCShyZXZpc2lvbiAxNjMw
MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAsOCArMjAsOSBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNB
LgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR0VsZW1lbnRJbnN0YW5jZUxpc3RJbXBsX0gKLSNkZWZp
bmUgS1NWR19TVkdFbGVtZW50SW5zdGFuY2VMaXN0SW1wbF9ICisjaWZuZGVmIEtTVkdfU1ZHRWxl
bWVudEluc3RhbmNlTGlzdF9ICisjZGVmaW5lIEtTVkdfU1ZHRWxlbWVudEluc3RhbmNlTGlzdF9I
CisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZHTGlzdC5oIgpAQCAtMjksMTAg
KzMwLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7Ci0gICAgY2xhc3MgU1ZHRWxlbWVudElu
c3RhbmNlTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR0VsZW1lbnRJbnN0YW5jZT4KKyAgICBjbGFz
cyBTVkdFbGVtZW50SW5zdGFuY2VMaXN0IDogcHVibGljIFNWR0xpc3Q8U1ZHRWxlbWVudEluc3Rh
bmNlKj4KICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdFbGVtZW50SW5zdGFuY2VMaXN0
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQgPSAwKTsKKyAgICAgICAgU1ZHRWxlbWVu
dEluc3RhbmNlTGlzdCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdFbGVtZW50SW5zdGFuY2VMaXN0
KCk7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgJ
KHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDkgQEAKICAgICAgICAgdmlydHVhbCBjb25z
dCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTdHJp
bmcsIFN0cmluZywgSW4sIGluKQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoZG91YmxlLCBkb3VibGUsIER4LCBkeCkKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKGRvdWJsZSwgZG91YmxlLCBEeSwgZHkpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdGRU9mZnNldEVsZW1lbnQsIFN0cmluZywgU3RyaW5nLCBJbiwg
aW4pCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRU9mZnNldEVs
ZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBEeCwgZHgpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdGRU9mZnNldEVsZW1lbnQsIGRvdWJsZSwgZG91YmxlLCBEeSwgZHkp
CiAgICAgICAgIG11dGFibGUgS0NhbnZhc0ZFT2Zmc2V0ICptX2ZpbHRlckVmZmVjdDsKICAgICB9
OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdC5oCShyZXZpc2lvbiAxNjMwMCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjAs
OCArMjAsOSBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRl
ZiBLU1ZHX1NWR0xlbmd0aExpc3RJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdMZW5ndGhMaXN0SW1w
bF9ICisjaWZuZGVmIEtTVkdfU1ZHTGVuZ3RoTGlzdF9ICisjZGVmaW5lIEtTVkdfU1ZHTGVuZ3Ro
TGlzdF9ICisKICNpZmRlZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiU1ZHTGlzdC5oIgpAQCAt
MjksMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7Ci0gICAgY2xhc3MgU1ZHTGVu
Z3RoTGlzdCA6IHB1YmxpYyBTVkdMaXN0PFNWR0xlbmd0aD4KKyAgICBjbGFzcyBTVkdMZW5ndGhM
aXN0IDogcHVibGljIFNWR0xpc3Q8U1ZHTGVuZ3RoKj4KICAgICB7CiAgICAgcHVibGljOgotICAg
ICAgICBTVkdMZW5ndGhMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQgPSAwKTsK
KyAgICAgICAgU1ZHTGVuZ3RoTGlzdCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdMZW5ndGhMaXN0
KCk7CiAKLSAgICAgICAgdm9pZCBwYXJzZShjb25zdCBEZXByZWNhdGVkU3RyaW5nICZ2YWx1ZSwg
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCwgTGVuZ3RoTW9kZSBtb2RlKTsKKyAgICAg
ICAgdm9pZCBwYXJzZShjb25zdCBEZXByZWNhdGVkU3RyaW5nJiB2YWx1ZSwgY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCwgTGVuZ3RoTW9kZSBtb2RlKTsKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJ
KHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTMgKzcwLDE5IEBACiAgICAgICAgIHZpcnR1YWwgU1ZH
TWF0cml4ICpnZXRDVE0oKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xlbmd0aCosIFJlZlB0cjxTVkdMZW5ndGg+LCBY
LCB4KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwg
UmVmUHRyPFNWR0xlbmd0aD4sIFksIHkpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQotICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGVuZ3RoKiwgUmVmUHRyPFNW
R0xlbmd0aD4sIEhlaWdodCwgaGVpZ2h0KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoaW50LCBpbnQsIFBhdHRlcm5Vbml0cywgcGF0dGVyblVuaXRzKQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoaW50LCBpbnQsIFBhdHRlcm5Db250ZW50VW5p
dHMsIHBhdHRlcm5Db250ZW50VW5pdHMpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdUcmFuc2Zvcm1MaXN0KiwgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+LCBQYXR0
ZXJuVHJhbnNmb3JtLCBwYXR0ZXJuVHJhbnNmb3JtKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdVUklSZWZlcmVuY2UsIFN0cmluZywgSHJlZiwgaHJl
ZikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMoU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9S
V0FSRF9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZp
ZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNW
R0ZpdFRvVmlld0JveCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIFByZXNlcnZlQXNwZWN0UmF0
aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCisKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3Ro
PiwgWCwgeCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRl
cm5FbGVtZW50LCBTVkdMZW5ndGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgWSwgeSkKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdMZW5n
dGgqLCBSZWZQdHI8U1ZHTGVuZ3RoPiwgV2lkdGgsIHdpZHRoKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0xlbmd0aCosIFJlZlB0
cjxTVkdMZW5ndGg+LCBIZWlnaHQsIGhlaWdodCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBpbnQsIGludCwgUGF0dGVyblVuaXRzLCBw
YXR0ZXJuVW5pdHMpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQ
YXR0ZXJuRWxlbWVudCwgaW50LCBpbnQsIFBhdHRlcm5Db250ZW50VW5pdHMsIHBhdHRlcm5Db250
ZW50VW5pdHMpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXR0
ZXJuRWxlbWVudCwgU1ZHVHJhbnNmb3JtTGlzdCosIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0Piwg
UGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblRyYW5zZm9ybSkKKwogICAgICAgICBtdXRhYmxlIEtD
YW52YXNJbWFnZSAqbV90aWxlOwogICAgICAgICBtdXRhYmxlIGJvb2wgbV9pZ25vcmVBdHRyaWJ1
dGVDaGFuZ2VzOwogICAgICAgICBtdXRhYmxlIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4g
Km1fcGFpbnRTZXJ2ZXI7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgJ
KHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsMTEgQEAKICAgICAgICAgdmlydHVhbCBjb25z
dCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LCBQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdVUklSZWZlcmVuY2UsIFN0cmluZywgSHJl
ZiwgaHJlZikKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9SV0FSRF9ERUNMQVJBVElPTlMo
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKyAKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFSW1hZ2VFbGVtZW50LCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvKiwgUmVmUHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LCBQcmVzZXJ2ZUFzcGVjdFJhdGlv
LCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQorCiAgICAgICAgIENhY2hlZEltYWdlICptX2NhY2hlZElt
YWdlOwogICAgICAgICBtdXRhYmxlIEtDYW52YXNGRUltYWdlICptX2ZpbHRlckVmZmVjdDsKICAg
ICB9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9rc3ZnLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9rc3ZnLmgJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9rc3ZnLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY2LDI2ICs2Niw2IEBACiAgICAgICAgIENPTE9SX1BST0ZJTEVfUlVM
RSA9IDcKICAgICB9OwogCi0gICAgZW51bSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZSB7Ci0g
ICAgICAgIFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV04gICAgID0gMCwKLSAgICAgICAg
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fTk9ORSAgICAgICAgPSAxLAotICAgICAgICBTVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiAgICA9IDIsCi0gICAgICAgIFNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSURZTUlOICAgID0gMywKLSAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fWE1BWFlNSU4gICAgPSA0LAotICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlO
WU1JRCAgICA9IDUsCi0gICAgICAgIFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEICAg
ID0gNiwKLSAgICAgICAgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQgICAgPSA3LAot
ICAgICAgICBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1BWCAgICA9IDgsCi0gICAgICAg
IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYICAgID0gOSwKLSAgICAgICAgU1ZHX1BS
RVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVggICAgPSAxMAotICAgIH07Ci0KLSAgICBlbnVtIFNW
R01lZXRPclNsaWNlVHlwZSB7Ci0gICAgICAgIFNWR19NRUVUT1JTTElDRV9VTktOT1dOICAgID0g
MCwKLSAgICAgICAgU1ZHX01FRVRPUlNMSUNFX01FRVQgICAgICAgPSAxLAotICAgICAgICBTVkdf
TUVFVE9SU0xJQ0VfU0xJQ0UgICAgICA9IDIKLSAgICB9OwotCiAgICAgZW51bSBTVkdMZW5ndGhB
ZGp1c3RUeXBlIHsKICAgICAgICAgTEVOR1RIQURKVVNUX1VOS05PV04gICAgICAgICAgICA9IDAs
CiAgICAgICAgIExFTkdUSEFESlVTVF9TUEFDSU5HICAgICAgICAgICAgPSAxLApJbmRleDogV2Vi
Q29yZS9rc3ZnMi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tzdmcyL21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKICNpbmNsdWRlICJTdHJpbmdJ
bXBsLmgiCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCkBAIC0xMTUsNiArMTE3LDE3IEBACiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCisvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBXZWJDb3Jl
OjpGbG9hdFJlY3QKK3RlbXBsYXRlPD4KK2lubGluZSBGbG9hdFJlY3QgU1ZHRG9jdW1lbnRFeHRl
bnNpb25zOjpiYXNlVmFsdWU8RmxvYXRSZWN0Pihjb25zdCBTVkdFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKK3sKKyAgICBIYXNoTWFwPFN0
cmluZ0ltcGwqLCBGbG9hdFJlY3Q+KiBwcm9wZXJ0eU1hcCA9IGJhc2VWYWx1ZU1hcDxGbG9hdFJl
Y3Q+KCkuZ2V0KGVsZW1lbnQpOworICAgIGlmIChwcm9wZXJ0eU1hcCkKKyAgICAgICAgcmV0dXJu
IHByb3BlcnR5TWFwLT5nZXQocHJvcGVydHlOYW1lLmltcGwoKSk7CisKKyAgICByZXR1cm4gRmxv
YXRSZWN0KCk7Cit9CisKIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGJvb2xlYW5zCiB0ZW1wbGF0
ZTw+CiBpbmxpbmUgYm9vbCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmJhc2VWYWx1ZTxib29sPihj
b25zdCBTVkdFbGVtZW50KiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFt
ZSkgY29uc3QKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRl
ZFBhdGhEYXRhLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9r
c3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgW25vZHB0ciwg
Q29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZFBhdGhEYXRhIHsgCi0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR1BhdGhTZWdMaXN0ICAgcGF0aFNlZ0xpc3Q7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR1BhdGhTZWdMaXN0ICAgbm9ybWFsaXplZFBhdGhTZWdMaXN0OwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdQYXRoU2VnTGlzdCAgIGFuaW1hdGVkUGF0aFNlZ0xpc3Q7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR1BhdGhTZWdMaXN0ICAgYW5pbWF0ZWROb3JtYWxpemVkUGF0aFNl
Z0xpc3Q7Ci0gIH07Ci19OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmlu
ZGluZ3MvaWRsL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi1tb2R1bGUgc3ZnCi17Ci0gIGlu
dGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsgCi0gICAg
Ly8gQWxpZ25tZW50IFR5cGVzCi0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fVU5LTk9XTiAgID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19OT05FICAgICA9IDE7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gPSAyOwotICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOID0gMzsKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTiA9IDQ7Ci0g
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQg
PSA1OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hN
SURZTUlEID0gNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUFYWU1JRCA9IDc7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JTllNQVggPSA4OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYID0gOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCA9IDEwOwotICAgIC8vIE1lZXQtb3It
c2xpY2UgVHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfVU5L
Tk9XTiAgID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfTUVF
VCAgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9TTElDRSA9
IDI7Ci0gICAgICAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGFsaWduOwotICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAg
ICAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgfTsK
LX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRQb2lu
dHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdB
bmltYXRlZFBvaW50cy5pZGwJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9iaW5k
aW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwz
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFtub2RwdHIsIENvbmRpdGlvbmFs
PVNWR10gU1ZHQW5pbWF0ZWRQb2ludHMgeyAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9p
bnRMaXN0ICAgcG9pbnRzOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludExpc3QgICBh
bmltYXRlZFBvaW50czsKLSAgfTsKLX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbAkocmV2aXNpb24gMTYzMDAp
CisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJm
YWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkQm9vbGVhbiB7IAotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBib29sZWFuIGJhc2VWYWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8g
cmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gYW5pbVZhbDsKLSAgfTsKLX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsCShyZXZpc2lv
biAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVsZSBzdmcK
LXsKLSAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkRW51bWVyYXRpb24g
eyAKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYmFzZVZhbDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYW5pbVZhbDsKLSAgfTsKLX07Cklu
ZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0
ZWRJbnRlZ2VyLmlkbAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdz
L2lkbC9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0Fu
aW1hdGVkSW50ZWdlciB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGJhc2VWYWw7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5n
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgYW5pbVZhbDsKLSAgfTsKLX07CkluZGV4OiBX
ZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
aWRsCShyZXZpc2lvbiAxNjMwMCkKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdBbmltYXRlZEFuZ2xlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVs
ZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkQW5nbGUg
eyAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5nbGUgYmFzZVZhbDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5nbGUgYW5pbVZhbDsKLSAgfTsKLX07CkluZGV4OiBXZWJDb3JlL2tz
dmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAkocmV2aXNpb24gMTYzMDApCisrKyBXZWJDb3JlL2tzdmcy
L2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFtD
b25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyB7IAotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIGJhc2VWYWw7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gYW5pbVZhbDsKLSAgfTsKLX07
CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmlt
YXRlZFN0cmluZy5pZGwJKHJldmlzaW9uIDE2MzAwKQorKysgV2ViQ29yZS9rc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0Fu
aW1hdGVkU3RyaW5nIHsgCi0gICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyBi
YXNlVmFsOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24g
b24gc2V0dGluZwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgYW5pbVZh
bDsKLSAgfTsKLX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRpbmdz
L2lkbC9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbAkocmV2aXNpb24gMTYzMDApCisrKyBX
ZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNl
IFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCB7IAotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdMZW5ndGhMaXN0IGJhc2VWYWw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0xlbmd0aExpc3QgYW5pbVZhbDsKLSAgfTsKLX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL2Jp
bmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbAkocmV2aXNpb24gMTYz
MDApCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5pbWF0ZWRSZWN0Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJm
YWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkUmVjdCB7IAotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdSZWN0IGJhc2VWYWw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qg
YW5pbVZhbDsKLSAgfTsKLX07Cg==
</data>
<flag name="review"
          id="3393"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>