<?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>54451</bug_id>
          
          <creation_ts>2011-02-15 05:19:20 -0800</creation_ts>
          <short_desc>FESpecularLightingElement changes doesn&apos;t require relayout.</short_desc>
          <delta_ts>2011-02-25 05:00:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>55075</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Renata Hodovan">rhodovan.u-szeged</reporter>
          <assigned_to name="Renata Hodovan">rhodovan.u-szeged</assigned_to>
          <cc>krit</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351205</commentid>
    <comment_count>0</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-15 05:19:20 -0800</bug_when>
    <thetext>FESpecularLightingElement changes doesn&apos;t require relayout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351214</commentid>
    <comment_count>1</comment_count>
      <attachid>82443</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-15 06:08:15 -0800</bug_when>
    <thetext>Created attachment 82443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352700</commentid>
    <comment_count>2</comment_count>
      <attachid>82443</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-17 02:38:04 -0800</bug_when>
    <thetext>Comment on attachment 82443
Patch

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

Some questions from my side, leaving r? until we resolved it on IRC.

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:103
&gt; +    LightSource* lightSource = const_cast&lt;LightSource*&gt;(specularLighting-&gt;lightSource());
&gt; +    const SVGFELightElement* lightElement = findLightElement();

This is guaranteed to be non null?
Please add assertions.

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:149
&gt; +    // The light element has different attribute names.

I don&apos;t get this comment.

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.h:36
&gt;      static PassRefPtr&lt;SVGFESpecularLightingElement&gt; create(const QualifiedName&amp;, Document*);
&gt; +    void lightElementAttributeChanged(const SVGFELightElement*, const QualifiedName&amp;);

Who is using this method?

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.h:42
&gt; +    virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&amp;);

Ditto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352764</commentid>
    <comment_count>3</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-17 05:16:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 82443 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82443&amp;action=review
&gt; 
&gt; Some questions from my side, leaving r? until we resolved it on IRC.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:103
&gt; &gt; +    LightSource* lightSource = const_cast&lt;LightSource*&gt;(specularLighting-&gt;lightSource());
&gt; &gt; +    const SVGFELightElement* lightElement = findLightElement();
&gt; 
&gt; This is guaranteed to be non null?
&gt; Please add assertions.
All right, an assertion would be really useful.

&gt; &gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:149
&gt; &gt; +    // The light element has different attribute names.
&gt; 
&gt; I don&apos;t get this comment.
I wanted to say since the attr names of light element are different they are unambiguously identifiable.

&gt; &gt; Source/WebCore/svg/SVGFESpecularLightingElement.h:36
&gt; &gt;      static PassRefPtr&lt;SVGFESpecularLightingElement&gt; create(const QualifiedName&amp;, Document*);
&gt; &gt; +    void lightElementAttributeChanged(const SVGFELightElement*, const QualifiedName&amp;);
&gt; 
&gt; Who is using this method?
&gt; 
&gt; &gt; Source/WebCore/svg/SVGFESpecularLightingElement.h:42
&gt; &gt; +    virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&amp;);
&gt; 
&gt; Ditto?
lightElementAttributeChanged is called from the light source. Its purpose is pass the arguments to the renderer of SpecularLighting. setFilterEffectAttribute sets the attribute of the FilterEffect object, called by the renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352766</commentid>
    <comment_count>4</comment_count>
      <attachid>82784</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-17 05:16:47 -0800</bug_when>
    <thetext>Created attachment 82784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353516</commentid>
    <comment_count>5</comment_count>
      <attachid>82784</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-18 03:44:10 -0800</bug_when>
    <thetext>Comment on attachment 82784
Patch

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

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:218
&gt; +SVGFELightElement* SVGFESpecularLightingElement::findLightElement() const
&gt; +{
&gt; +    for (Node* node = firstChild(); node; node = node-&gt;nextSibling()) {
&gt; +        if (node-&gt;hasTagName(SVGNames::feDistantLightTag)
&gt; +            || node-&gt;hasTagName(SVGNames::fePointLightTag)
&gt; +            || node-&gt;hasTagName(SVGNames::feSpotLightTag)) {
&gt; +            return static_cast&lt;SVGFELightElement*&gt;(node);
&gt; +        }
&gt; +    }
&gt; +    return 0;
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;LightSource&gt; SVGFESpecularLightingElement::findLight() const
&gt; +{
&gt; +    SVGFELightElement* lightNode = findLightElement();
&gt; +    if (!lightNode)
&gt; +        return 0;
&gt; +    return lightNode-&gt;lightSource();
&gt; +}

We have the same functions in SVGFEDiffuseLightningElement.cpp can we share them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353522</commentid>
    <comment_count>6</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-18 04:19:49 -0800</bug_when>
    <thetext>&gt; We have the same functions in SVGFEDiffuseLightningElement.cpp can we share them?

There is historical reasons here. I always wondered why we don&apos;t have a common base class for the lighting filters. A separate patch could do this improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353526</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-18 04:28:31 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; We have the same functions in SVGFEDiffuseLightningElement.cpp can we share them?
&gt; 
&gt; There is historical reasons here. I always wondered why we don&apos;t have a common base class for the lighting filters. A separate patch could do this improvement.

True, but why not put it into a static public function in SVGFELightElement for now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353528</commentid>
    <comment_count>8</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-18 04:33:54 -0800</bug_when>
    <thetext>&gt; True, but why not put it into a static public function in SVGFELightElement for now?

Are you sure? If they don&apos;t have a common ancestor, you cannot put them into a static function (since the offset of the member is different), maybe a template function can do that, but that would make things more compilcated...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353531</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-18 04:53:04 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; True, but why not put it into a static public function in SVGFELightElement for now?
&gt; 
&gt; Are you sure? If they don&apos;t have a common ancestor, you cannot put them into a static function (since the offset of the member is different), maybe a template function can do that, but that would make things more compilcated...

Hm, what do you mean with different offset? a specularLighting or diffuseLigthning element should just have the 3 LightElements as child. So the structure is the same? 
I&apos;d combine the two methods in a function:

PassRefPtr&lt;LightSource&gt; SVGFELightElement::findLight(const SVGElement* svgElement) const
{
   ASSERT(svgElement-&gt;hasTagName(SVGNames::feDiffuseLigthningTag) || svgElement-&gt;hasTagName(SVGNames::feSpecularLigthningTag)

  for (Node* node = svgElement-&gt;firstChild(); node; node = node-&gt;nextSibling()) {
  ...
}

Isn&apos;t this possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353535</commentid>
    <comment_count>10</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-18 05:01:59 -0800</bug_when>
    <thetext>&gt; Isn&apos;t this possible?

Looks like ok. And move it into the LightSource base class is a good idea as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353555</commentid>
    <comment_count>11</comment_count>
      <attachid>82949</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-18 06:06:48 -0800</bug_when>
    <thetext>Created attachment 82949
Patch

&gt; Hm, what do you mean with different offset? a specularLighting or diffuseLigthning element should just have the 3 LightElements as child. So the structure is the same? 
&gt; I&apos;d combine the two methods in a function:
The common functions are moved into the LightElement class, but i couldn&apos;t merge the two methods &apos;cause there are used different places without reference to each other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353557</commentid>
    <comment_count>12</comment_count>
      <attachid>82949</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-18 06:24:10 -0800</bug_when>
    <thetext>Comment on attachment 82949
Patch

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

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:195
&gt; +    RefPtr&lt;FilterEffect&gt; effect = FESpecularLighting::create(filter, color, surfaceScale(), specularConstant(),
&gt; +                                          specularExponent(), kernelUnitLengthX(), kernelUnitLengthY(), SVGFELightElement::findLight(this));

I&apos;m unsure about the SVG specification. If a feDiffuseLighting element (same for specular ligtning) doesn&apos;t have a light source, should we create the filter effect at all? Is it still valid? Or do we need an early return if !findLight ?

&gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:146
&gt; +    if (SVGFELightElement::findLightElement(this) != lightElement)
&gt;          return;

Does it mean, we don&apos;t propagate the changed attribute, or do we also skip the complete primitive on drawing? What is expected here, for lightElement == 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353559</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-18 06:25:57 -0800</bug_when>
    <thetext>(In reply to comment #12)
I should have asked zherzeg on his patch before. Sorry for not doing it. :-( We might also need a test where we remove the light source after the first drawing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353567</commentid>
    <comment_count>14</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-18 06:40:37 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 82949 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82949&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:195
&gt; &gt; +    RefPtr&lt;FilterEffect&gt; effect = FESpecularLighting::create(filter, color, surfaceScale(), specularConstant(),
&gt; &gt; +                                          specularExponent(), kernelUnitLengthX(), kernelUnitLengthY(), SVGFELightElement::findLight(this));
&gt; 
&gt; I&apos;m unsure about the SVG specification. If a feDiffuseLighting element (same for specular ligtning) doesn&apos;t have a light source, should we create the filter effect at all? Is it still valid? Or do we need an early return if !findLight ?
from the spec of feSpecularLight: &quot;Content model: Any number of descriptive elements and _exactly one_ light source element, in any order.&quot; so i think it should be invalid without any light source

&gt; &gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:146
&gt; &gt; +    if (SVGFELightElement::findLightElement(this) != lightElement)
&gt; &gt;          return;
&gt; 
&gt; Does it mean, we don&apos;t propagate the changed attribute, or do we also skip the complete primitive on drawing? What is expected here, for lightElement == 0?
It is a valid construction if we add multiple light source to the diffuse/specular light node, but only the first one should be used by the filter primitive, the others should be ignored, including their attribute changes. lightElement cannot be 0 since the light element calls this by passing &quot;this&quot; to the argument. If this would be NULL, that would be a serious error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353568</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-18 06:45:44 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 82949 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82949&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:195
&gt; &gt; &gt; +    RefPtr&lt;FilterEffect&gt; effect = FESpecularLighting::create(filter, color, surfaceScale(), specularConstant(),
&gt; &gt; &gt; +                                          specularExponent(), kernelUnitLengthX(), kernelUnitLengthY(), SVGFELightElement::findLight(this));
&gt; &gt; 
&gt; &gt; I&apos;m unsure about the SVG specification. If a feDiffuseLighting element (same for specular ligtning) doesn&apos;t have a light source, should we create the filter effect at all? Is it still valid? Or do we need an early return if !findLight ?
&gt; from the spec of feSpecularLight: &quot;Content model: Any number of descriptive elements and _exactly one_ light source element, in any order.&quot; so i think it should be invalid without any light source
&gt; 
Wrote you on IRC. Please return earlier, if no light element was found.

&gt; &gt; &gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:146
&gt; &gt; &gt; +    if (SVGFELightElement::findLightElement(this) != lightElement)
&gt; &gt; &gt;          return;
&gt; &gt; 
&gt; &gt; Does it mean, we don&apos;t propagate the changed attribute, or do we also skip the complete primitive on drawing? What is expected here, for lightElement == 0?
&gt; It is a valid construction if we add multiple light source to the diffuse/specular light node, but only the first one should be used by the filter primitive, the others should be ignored, including their attribute changes. lightElement cannot be 0 since the light element calls this by passing &quot;this&quot; to the argument. If this would be NULL, that would be a serious error

So we can turn this to an assert?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355154</commentid>
    <comment_count>16</comment_count>
      <attachid>83291</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-22 02:51:34 -0800</bug_when>
    <thetext>Created attachment 83291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356346</commentid>
    <comment_count>17</comment_count>
      <attachid>83291</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-23 13:06:19 -0800</bug_when>
    <thetext>Comment on attachment 83291
Patch

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

Looks good, r=me with some comments, to be fixed before landing:

&gt; Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:261
&gt; +

Unrelated change, please remove.

&gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:145
&gt; +    if (SVGFELightElement::findLightElement(this) != lightElement)

When does this happen, again? I keep forgetting.

&gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:202
&gt; +

Remove this empty newline.

&gt; Source/WebCore/svg/SVGFELightElement.h:36
&gt; +    static PassRefPtr&lt;LightSource&gt; findLight(const SVGElement*);

findLightSource sounds better, please rename.

&gt; Source/WebCore/svg/SVGFESpecularLightingElement.cpp:209
&gt; +

Empty newline, please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356858</commentid>
    <comment_count>18</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-24 04:04:14 -0800</bug_when>
    <thetext>
&gt; &gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:145
&gt; &gt; +    if (SVGFELightElement::findLightElement(this) != lightElement)
&gt; 
&gt; When does this happen, again? I keep forgetting.
For example, imagine that we have a specularLight with more than one lightSources
&lt;feSpecularLight&gt;
    &lt;feSpotLight&gt;...&lt;/feSpotLight&gt;
    &lt;fePointLight&gt;...&lt;/fePointLight&gt;
&lt;/feSpecularLight&gt;
Now if we try to change the pointLight source we don&apos;t need to do anything &apos;cause
only the first lightSource is relevant according to the spec.
Is it okay? Can i land it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357783</commentid>
    <comment_count>19</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-25 01:50:31 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; &gt; Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:145
&gt; &gt; &gt; +    if (SVGFELightElement::findLightElement(this) != lightElement)
&gt; &gt; 
&gt; &gt; When does this happen, again? I keep forgetting.
&gt; For example, imagine that we have a specularLight with more than one lightSources
&gt; &lt;feSpecularLight&gt;
&gt;     &lt;feSpotLight&gt;...&lt;/feSpotLight&gt;
&gt;     &lt;fePointLight&gt;...&lt;/fePointLight&gt;
&gt; &lt;/feSpecularLight&gt;
&gt; Now if we try to change the pointLight source we don&apos;t need to do anything &apos;cause
&gt; only the first lightSource is relevant according to the spec.
&gt; Is it okay? Can i land it?
Ah, perfectly fine. Sure go ahead, you already had r+, that shouldn&apos;t have blocked you :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357846</commentid>
    <comment_count>20</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2011-02-25 05:00:20 -0800</bug_when>
    <thetext>Committed r79674: &lt;http://trac.webkit.org/changeset/79674&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82443</attachid>
            <date>2011-02-15 06:08:15 -0800</date>
            <delta_ts>2011-02-17 05:16:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>specular_repaint.patch</filename>
            <type>text/plain</type>
            <size>12222</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NTUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDItMTUgIFJlbmF0YSBI
b2RvdmFuICA8cmVuaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQgY2hhbmdlcyBkb2Vz
bid0IHJlcXVpcmUgcmVsYXlvdXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDQ1MQorCisgICAgICAgIFdoZW4gdGhlIEZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQgcmVjZWl2ZXMgYW4gdXBkYXRlIG1lc3NhZ2UgYnV0IHRoZSBnaXZlbiB2YWx1ZSBy
ZW1haW5zIHRoZSBzYW1lIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gcmVsYXlvdXQgdGhlIGZp
bHRlci4gT3RoZXJ3aXNlLCB0aGUgbGlnaHQgc291cmNlIHJlcXVlc3RzIGEgcmVwYWludCBvbiB0
aGUgc3BlY3VsYXIgbGlnaHRuaW5nIGZpbHRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXJl
IG5lZWRlZCBiZWNhdXNlIHRoaXMgbW9kaWZpY2lhdGlvbiBpcyBjb3ZlcmVkIGJ5IHRoZSBkeW5h
bWljIHVwZGF0ZSB0ZXN0cyBvZiBGRVNwZWN1bGFsTGlnaHRpbmcuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFN1cmZhY2VTY2FsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29uc3RhbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVjdWxhckV4cG9uZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFgp
OgorICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRLZXJuZWxVbml0TGVu
Z3RoWSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGln
aHRpbmcuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzZXRGaWx0
ZXJFZmZlY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpsaWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmZpbmRMaWdo
dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dDo6ZmluZExpZ2h0KToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC5oOgorCiAyMDExLTAyLTE1ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhZnRlciByNzg1MzMKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3Vs
YXJMaWdodGluZy5jcHAJKHJldmlzaW9uIDc4MjIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NCw5ICs2NCwxMiBAQCBmbG9hdCBGRVNwZWN1bGFyTGlnaHRpbmc6OnN1cmZhY2VTY2Fs
ZSgpCiAgICAgcmV0dXJuIG1fc3VyZmFjZVNjYWxlOwogfQogCi12b2lkIEZFU3BlY3VsYXJMaWdo
dGluZzo6c2V0U3VyZmFjZVNjYWxlKGZsb2F0IHN1cmZhY2VTY2FsZSkKK2Jvb2wgRkVTcGVjdWxh
ckxpZ2h0aW5nOjpzZXRTdXJmYWNlU2NhbGUoZmxvYXQgc3VyZmFjZVNjYWxlKQogeworICAgIGlm
IChtX3N1cmZhY2VTY2FsZSA9PSBzdXJmYWNlU2NhbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBtX3N1cmZhY2VTY2FsZSA9IHN1cmZhY2VTY2FsZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzcGVjdWxhckNvbnN0YW50KCkgY29uc3QKQEAg
LTc0LDkgKzc3LDEyIEBAIGZsb2F0IEZFU3BlY3VsYXJMaWdodGluZzo6c3BlY3VsYXJDb25zdGEK
ICAgICByZXR1cm4gbV9zcGVjdWxhckNvbnN0YW50OwogfQogCi12b2lkIEZFU3BlY3VsYXJMaWdo
dGluZzo6c2V0U3BlY3VsYXJDb25zdGFudChmbG9hdCBzcGVjdWxhckNvbnN0YW50KQorYm9vbCBG
RVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQgc3BlY3VsYXJDb25z
dGFudCkKIHsKKyAgICBpZiAobV9zcGVjdWxhckNvbnN0YW50ID09IHNwZWN1bGFyQ29uc3RhbnQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX3NwZWN1bGFyQ29uc3RhbnQgPSBzcGVjdWxh
ckNvbnN0YW50OworICAgIHJldHVybiB0cnVlOwogfQogCiBmbG9hdCBGRVNwZWN1bGFyTGlnaHRp
bmc6OnNwZWN1bGFyRXhwb25lbnQoKSBjb25zdApAQCAtODQsOSArOTAsMTIgQEAgZmxvYXQgRkVT
cGVjdWxhckxpZ2h0aW5nOjpzcGVjdWxhckV4cG9uZQogICAgIHJldHVybiBtX3NwZWN1bGFyRXhw
b25lbnQ7CiB9CiAKLXZvaWQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVjdWxhckV4cG9uZW50
KGZsb2F0IHNwZWN1bGFyRXhwb25lbnQpCitib29sIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3Bl
Y3VsYXJFeHBvbmVudChmbG9hdCBzcGVjdWxhckV4cG9uZW50KQogeworICAgIGlmIChtX3NwZWN1
bGFyRXhwb25lbnQgPT0gc3BlY3VsYXJFeHBvbmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIG1fc3BlY3VsYXJFeHBvbmVudCA9IHNwZWN1bGFyRXhwb25lbnQ7CisgICAgcmV0dXJuIHRy
dWU7CiB9CiAKIGZsb2F0IEZFU3BlY3VsYXJMaWdodGluZzo6a2VybmVsVW5pdExlbmd0aFgoKSBj
b25zdApAQCAtOTQsOSArMTAzLDEyIEBAIGZsb2F0IEZFU3BlY3VsYXJMaWdodGluZzo6a2VybmVs
VW5pdExlbmcKICAgICByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3RoWDsKIH0KIAotdm9pZCBGRVNw
ZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5ndGhYKGZsb2F0IGtlcm5lbFVuaXRMZW5n
dGhYKQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5ndGhYKGZsb2F0
IGtlcm5lbFVuaXRMZW5ndGhYKQogeworICAgIGlmIChtX2tlcm5lbFVuaXRMZW5ndGhYID09IGtl
cm5lbFVuaXRMZW5ndGhYKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgbV9rZXJuZWxVbml0
TGVuZ3RoWCA9IGtlcm5lbFVuaXRMZW5ndGhYOworICAgIHJldHVybiB0cnVlOwogfQogCiBmbG9h
dCBGRVNwZWN1bGFyTGlnaHRpbmc6Omtlcm5lbFVuaXRMZW5ndGhZKCkgY29uc3QKQEAgLTEwNCw5
ICsxMTYsMTIgQEAgZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjprZXJuZWxVbml0TGVuZwogICAg
IHJldHVybiBtX2tlcm5lbFVuaXRMZW5ndGhZOwogfQogCi12b2lkIEZFU3BlY3VsYXJMaWdodGlu
Zzo6c2V0S2VybmVsVW5pdExlbmd0aFkoZmxvYXQga2VybmVsVW5pdExlbmd0aFkpCitib29sIEZF
U3BlY3VsYXJMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFkoZmxvYXQga2VybmVsVW5pdExl
bmd0aFkpCiB7CisgICAgaWYgKG1fa2VybmVsVW5pdExlbmd0aFkgPT0ga2VybmVsVW5pdExlbmd0
aFkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX2tlcm5lbFVuaXRMZW5ndGhZID0ga2Vy
bmVsVW5pdExlbmd0aFk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGNvbnN0IExpZ2h0U291cmNl
KiBGRVNwZWN1bGFyTGlnaHRpbmc6OmxpZ2h0U291cmNlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNw
ZWN1bGFyTGlnaHRpbmcuaAkocmV2aXNpb24gNzgyMjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNywxOSArMzcsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGlnaHRpbmdDb2xvcihj
b25zdCBDb2xvciYpOwogCiAgICAgZmxvYXQgc3VyZmFjZVNjYWxlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRTdXJmYWNlU2NhbGUoZmxvYXQpOworICAgIGJvb2wgc2V0U3VyZmFjZVNjYWxlKGZsb2F0
KTsKIAogICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldFNw
ZWN1bGFyQ29uc3RhbnQoZmxvYXQpOworICAgIGJvb2wgc2V0U3BlY3VsYXJDb25zdGFudChmbG9h
dCk7CiAKICAgICBmbG9hdCBzcGVjdWxhckV4cG9uZW50KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRT
cGVjdWxhckV4cG9uZW50KGZsb2F0KTsKKyAgICBib29sIHNldFNwZWN1bGFyRXhwb25lbnQoZmxv
YXQpOwogCiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFgoKSBjb25zdDsKLSAgICB2b2lkIHNl
dEtlcm5lbFVuaXRMZW5ndGhYKGZsb2F0KTsKKyAgICBib29sIHNldEtlcm5lbFVuaXRMZW5ndGhY
KGZsb2F0KTsKIAogICAgIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRLZXJuZWxVbml0TGVuZ3RoWShmbG9hdCk7CisgICAgYm9vbCBzZXRLZXJuZWxVbml0TGVu
Z3RoWShmbG9hdCk7CiAKICAgICBjb25zdCBMaWdodFNvdXJjZSogbGlnaHRTb3VyY2UoKSBjb25z
dDsKICAgICB2b2lkIHNldExpZ2h0U291cmNlKFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAJKHJldmlzaW9uIDc4MjIyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSwxOCArODksNjcg
QEAgdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpwYXJzZQogICAgICAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpOwogfQogCitib29sIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnNldEZpbHRlckVm
ZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCit7CisgICAgRkVTcGVjdWxhckxpZ2h0aW5nKiBzcGVjdWxhckxpZ2h0aW5nID0g
c3RhdGljX2Nhc3Q8RkVTcGVjdWxhckxpZ2h0aW5nKj4oZWZmZWN0KTsKKyAgICBpZiAoYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIpCisgICAgICAgIHJldHVybiBzcGVjdWxh
ckxpZ2h0aW5nLT5zZXRTdXJmYWNlU2NhbGUoc3VyZmFjZVNjYWxlKCkpOworICAgIGlmIChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJDb25zdGFudEF0dHIpCisgICAgICAgIHJldHVybiBz
cGVjdWxhckxpZ2h0aW5nLT5zZXRTcGVjdWxhckNvbnN0YW50KHNwZWN1bGFyQ29uc3RhbnQoKSk7
CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0cikKKyAg
ICAgICAgcmV0dXJuIHNwZWN1bGFyTGlnaHRpbmctPnNldFNwZWN1bGFyRXhwb25lbnQoc3BlY3Vs
YXJFeHBvbmVudCgpKTsKKworICAgIExpZ2h0U291cmNlKiBsaWdodFNvdXJjZSA9IGNvbnN0X2Nh
c3Q8TGlnaHRTb3VyY2UqPihzcGVjdWxhckxpZ2h0aW5nLT5saWdodFNvdXJjZSgpKTsKKyAgICBj
b25zdCBTVkdGRUxpZ2h0RWxlbWVudCogbGlnaHRFbGVtZW50ID0gZmluZExpZ2h0RWxlbWVudCgp
OworCisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjphemltdXRoQXR0cikKKyAgICAgICAg
cmV0dXJuIGxpZ2h0U291cmNlLT5zZXRBemltdXRoKGxpZ2h0RWxlbWVudC0+YXppbXV0aCgpKTsK
KyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmVsZXZhdGlvbkF0dHIpCisgICAgICAgIHJl
dHVybiBsaWdodFNvdXJjZS0+c2V0RWxldmF0aW9uKGxpZ2h0RWxlbWVudC0+ZWxldmF0aW9uKCkp
OworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpCisgICAgICAgIHJldHVybiBs
aWdodFNvdXJjZS0+c2V0WChsaWdodEVsZW1lbnQtPngoKSk7CisgICAgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjp5QXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRZKGxpZ2h0
RWxlbWVudC0+eSgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnpBdHRyKQorICAg
ICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldFoobGlnaHRFbGVtZW50LT56KCkpOworICAgIGlm
IChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9pbnRzQXRYQXR0cikKKyAgICAgICAgcmV0dXJuIGxp
Z2h0U291cmNlLT5zZXRQb2ludHNBdFgobGlnaHRFbGVtZW50LT5wb2ludHNBdFgoKSk7CisgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpwb2ludHNBdFlBdHRyKQorICAgICAgICByZXR1cm4g
bGlnaHRTb3VyY2UtPnNldFBvaW50c0F0WShsaWdodEVsZW1lbnQtPnBvaW50c0F0WSgpKTsKKyAg
ICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0WkF0dHIpCisgICAgICAgIHJldHVy
biBsaWdodFNvdXJjZS0+c2V0UG9pbnRzQXRaKGxpZ2h0RWxlbWVudC0+cG9pbnRzQXRaKCkpOwor
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIpCisgICAg
ICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0U3BlY3VsYXJFeHBvbmVudChsaWdodEVsZW1lbnQt
PnNwZWN1bGFyRXhwb25lbnQoKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpsaW1p
dGluZ0NvbmVBbmdsZUF0dHIpCisgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0TGltaXRp
bmdDb25lQW5nbGUobGlnaHRFbGVtZW50LT5saW1pdGluZ0NvbmVBbmdsZSgpKTsKKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBTVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewogICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAKLSAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmluQXR0cgotICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3Vy
ZmFjZVNjYWxlQXR0cgorICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3VyZmFjZVNjYWxl
QXR0cgogICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJDb25zdGFudEF0
dHIKICAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyRXhwb25lbnRBdHRy
CiAgICAgICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cikK
KyAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CisKKyAgICBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKICAgICAgICAgaW52YWxpZGF0ZSgpOwogfQog
Cit2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmxpZ2h0RWxlbWVudEF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCit7CisgICAgaWYgKGZpbmRMaWdodEVsZW1lbnQoKSAhPSBs
aWdodEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRoZSBsaWdodCBlbGVtZW50
IGhhcyBkaWZmZXJlbnQgYXR0cmlidXRlIG5hbWVzLgorICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNo
YW5nZWQoYXR0ck5hbWUpOworfQorCiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OnN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAg
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzeW5jaHJvbml6ZVByb3Bl
cnR5KGF0dHJOYW1lKTsKQEAgLTEyOSwyMCArMTc4LDYgQEAgdm9pZCBTVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50OjpzeW5jaAogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4g
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6ZmluZExpZ2h0cygpIGNvbnN0Ci17Ci0gICAg
Zm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaXN0
YW50TGlnaHRUYWcpCi0gICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpm
ZVBvaW50TGlnaHRUYWcpCi0gICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVz
OjpmZVNwb3RMaWdodFRhZykpIHsKLSAgICAgICAgICAgIFNWR0ZFTGlnaHRFbGVtZW50KiBsaWdo
dE5vZGUgPSBzdGF0aWNfY2FzdDxTVkdGRUxpZ2h0RWxlbWVudCo+KG5vZGUpOyAKLSAgICAgICAg
ICAgIHJldHVybiBsaWdodE5vZGUtPmxpZ2h0U291cmNlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICByZXR1cm4gMDsKLX0KLQogUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIs
IEZpbHRlciogZmlsdGVyKQogewogICAgIEZpbHRlckVmZmVjdCogaW5wdXQxID0gZmlsdGVyQnVp
bGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CkBAIC0xNTUsMTEgKzE5MCwzMSBAQCBQYXNzUmVm
UHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVTcGVjdWxhckxpCiAgICAgQ29sb3IgY29sb3IgPSBmaWx0
ZXJTdHlsZS0+c3ZnU3R5bGUoKS0+bGlnaHRpbmdDb2xvcigpOwogCiAgICAgUmVmUHRyPEZpbHRl
ckVmZmVjdD4gZWZmZWN0ID0gRkVTcGVjdWxhckxpZ2h0aW5nOjpjcmVhdGUoZmlsdGVyLCBjb2xv
ciwgc3VyZmFjZVNjYWxlKCksIHNwZWN1bGFyQ29uc3RhbnQoKSwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjdWxhckV4cG9uZW50KCksIGtlcm5lbFVuaXRM
ZW5ndGhYKCksIGtlcm5lbFVuaXRMZW5ndGhZKCksIGZpbmRMaWdodHMoKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjdWxhckV4cG9uZW50KCksIGtlcm5l
bFVuaXRMZW5ndGhYKCksIGtlcm5lbFVuaXRMZW5ndGhZKCksIGZpbmRMaWdodCgpKTsKICAgICBl
ZmZlY3QtPmlucHV0RWZmZWN0cygpLmFwcGVuZChpbnB1dDEpOwogICAgIHJldHVybiBlZmZlY3Qu
cmVsZWFzZSgpOwogfQogCitTVkdGRUxpZ2h0RWxlbWVudCogU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudDo6ZmluZExpZ2h0RWxlbWVudCgpIGNvbnN0Cit7CisgICAgZm9yIChOb2RlKiBub2Rl
ID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAg
ICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaXN0YW50TGlnaHRUYWcpCisg
ICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVBvaW50TGlnaHRUYWcp
CisgICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVNwb3RMaWdodFRh
ZykpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdGRUxpZ2h0RWxlbWVudCo+
KG5vZGUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRy
PExpZ2h0U291cmNlPiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpmaW5kTGlnaHQoKSBj
b25zdAoreworICAgIFNWR0ZFTGlnaHRFbGVtZW50KiBsaWdodE5vZGUgPSBmaW5kTGlnaHRFbGVt
ZW50KCk7CisgICAgaWYgKCFsaWdodE5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBsaWdodE5vZGUtPmxpZ2h0U291cmNlKCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShT
VkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmgJKHJldmlzaW9uIDc4MjIyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBA
QAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShGSUxURVJTKQogI2luY2x1ZGUgIkZFU3BlY3Vs
YXJMaWdodGluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCisjaW5jbHVkZSAi
U1ZHRkVMaWdodEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsMTEgKzMzLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQg
OiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdm9pZCBsaWdodEVsZW1l
bnRBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFNWR0ZFTGlnaHRFbGVtZW50KiwgY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwogCiBwcml2YXRlOgogICAgIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOworICAgIHZpcnR1YWwgYm9vbCBzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZp
ZWROYW1lJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciosIEZpbHRlciopOwpAQCAtNTIsNyArNTUsOCBAQCBwcml2YXRlOgogICAg
IERFQ0xBUkVfQU5JTUFURURfTlVNQkVSKEtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVu
Z3RoWCkKICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJFUihLZXJuZWxVbml0TGVuZ3RoWSwga2Vy
bmVsVW5pdExlbmd0aFkpCiAKLSAgICBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBmaW5kTGlnaHRz
KCkgY29uc3Q7CisgICAgU1ZHRkVMaWdodEVsZW1lbnQqIGZpbmRMaWdodEVsZW1lbnQoKSBjb25z
dDsKKyAgICBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBmaW5kTGlnaHQoKSBjb25zdDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82784</attachid>
            <date>2011-02-17 05:16:47 -0800</date>
            <delta_ts>2011-02-18 06:06:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>repaintSpec.patch</filename>
            <type>text/plain</type>
            <size>14557</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4ODExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDItMTcgIFJlbmF0YSBI
b2RvdmFuICA8cmVuaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQgY2hhbmdlcyBkb2Vz
bid0IHJlcXVpcmUgcmVsYXlvdXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDQ1MQorCisgICAgICAgIFdoZW4gdGhlIEZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQgcmVjZWl2ZXMgYW4gdXBkYXRlIG1lc3NhZ2UgYnV0IHRoZSBnaXZlbiB2YWx1ZSBy
ZW1haW5zIHRoZSBzYW1lIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gcmVsYXlvdXQgdGhlIGZp
bHRlci4gT3RoZXJ3aXNlLCB0aGUgbGlnaHQgc291cmNlIHJlcXVlc3RzIGEgcmVwYWludCBvbiB0
aGUgc3BlY3VsYXIgbGlnaHRuaW5nIGZpbHRlci4KKyAgICAgICAgQmVzaWRlcyBhZGQgQVNTRVJU
cyB0byBEaWZmdXNlTGlnaHRFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUgYXMgd2Vs
bCB0byBhdm9pZCBsaWdodFNvdXJjZXMgYmVpbmcgbnVsbC4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYXJlIG5lZWRlZCBiZWNhdXNlIHRoaXMgbW9kaWZpY2lhdGlvbiBpcyBjb3ZlcmVkIGJ5IHRo
ZSBkeW5hbWljIHVwZGF0ZSB0ZXN0cyBvZiBGRVNwZWN1bGFsTGlnaHRpbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFN1cmZhY2VTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29uc3RhbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVjdWxhckV4cG9uZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6c2V0S2VybmVsVW5pdExl
bmd0aFgpOgorICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRLZXJuZWxV
bml0TGVuZ3RoWSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1
bGFyTGlnaHRpbmcuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c2V0
RmlsdGVyRWZmZWN0QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVMaWdodEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVMaWdodEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmxpZ2h0RWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6YnVpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6ZmluZExpZ2h0
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
OjpmaW5kTGlnaHQpOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
Lmg6CisKIDIwMTEtMDItMTYgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFU3BlY3VsYXJMaWdodGluZy5jcHAJKHJldmlzaW9uIDc4MjIxKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NCw5ICs2NCwxMiBAQCBmbG9hdCBGRVNwZWN1bGFyTGlnaHRpbmc6OnN1
cmZhY2VTY2FsZSgpCiAgICAgcmV0dXJuIG1fc3VyZmFjZVNjYWxlOwogfQogCi12b2lkIEZFU3Bl
Y3VsYXJMaWdodGluZzo6c2V0U3VyZmFjZVNjYWxlKGZsb2F0IHN1cmZhY2VTY2FsZSkKK2Jvb2wg
RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTdXJmYWNlU2NhbGUoZmxvYXQgc3VyZmFjZVNjYWxlKQog
eworICAgIGlmIChtX3N1cmZhY2VTY2FsZSA9PSBzdXJmYWNlU2NhbGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBtX3N1cmZhY2VTY2FsZSA9IHN1cmZhY2VTY2FsZTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzcGVjdWxhckNvbnN0YW50KCkg
Y29uc3QKQEAgLTc0LDkgKzc3LDEyIEBAIGZsb2F0IEZFU3BlY3VsYXJMaWdodGluZzo6c3BlY3Vs
YXJDb25zdGEKICAgICByZXR1cm4gbV9zcGVjdWxhckNvbnN0YW50OwogfQogCi12b2lkIEZFU3Bl
Y3VsYXJMaWdodGluZzo6c2V0U3BlY3VsYXJDb25zdGFudChmbG9hdCBzcGVjdWxhckNvbnN0YW50
KQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQgc3Bl
Y3VsYXJDb25zdGFudCkKIHsKKyAgICBpZiAobV9zcGVjdWxhckNvbnN0YW50ID09IHNwZWN1bGFy
Q29uc3RhbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX3NwZWN1bGFyQ29uc3RhbnQg
PSBzcGVjdWxhckNvbnN0YW50OworICAgIHJldHVybiB0cnVlOwogfQogCiBmbG9hdCBGRVNwZWN1
bGFyTGlnaHRpbmc6OnNwZWN1bGFyRXhwb25lbnQoKSBjb25zdApAQCAtODQsOSArOTAsMTIgQEAg
ZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzcGVjdWxhckV4cG9uZQogICAgIHJldHVybiBtX3Nw
ZWN1bGFyRXhwb25lbnQ7CiB9CiAKLXZvaWQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVjdWxh
ckV4cG9uZW50KGZsb2F0IHNwZWN1bGFyRXhwb25lbnQpCitib29sIEZFU3BlY3VsYXJMaWdodGlu
Zzo6c2V0U3BlY3VsYXJFeHBvbmVudChmbG9hdCBzcGVjdWxhckV4cG9uZW50KQogeworICAgIGlm
IChtX3NwZWN1bGFyRXhwb25lbnQgPT0gc3BlY3VsYXJFeHBvbmVudCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIG1fc3BlY3VsYXJFeHBvbmVudCA9IHNwZWN1bGFyRXhwb25lbnQ7CisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIGZsb2F0IEZFU3BlY3VsYXJMaWdodGluZzo6a2VybmVsVW5pdExl
bmd0aFgoKSBjb25zdApAQCAtOTQsOSArMTAzLDEyIEBAIGZsb2F0IEZFU3BlY3VsYXJMaWdodGlu
Zzo6a2VybmVsVW5pdExlbmcKICAgICByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3RoWDsKIH0KIAot
dm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5ndGhYKGZsb2F0IGtlcm5l
bFVuaXRMZW5ndGhYKQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5n
dGhYKGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYKQogeworICAgIGlmIChtX2tlcm5lbFVuaXRMZW5n
dGhYID09IGtlcm5lbFVuaXRMZW5ndGhYKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgbV9r
ZXJuZWxVbml0TGVuZ3RoWCA9IGtlcm5lbFVuaXRMZW5ndGhYOworICAgIHJldHVybiB0cnVlOwog
fQogCiBmbG9hdCBGRVNwZWN1bGFyTGlnaHRpbmc6Omtlcm5lbFVuaXRMZW5ndGhZKCkgY29uc3QK
QEAgLTEwNCw5ICsxMTYsMTIgQEAgZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjprZXJuZWxVbml0
TGVuZwogICAgIHJldHVybiBtX2tlcm5lbFVuaXRMZW5ndGhZOwogfQogCi12b2lkIEZFU3BlY3Vs
YXJMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFkoZmxvYXQga2VybmVsVW5pdExlbmd0aFkp
Citib29sIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFkoZmxvYXQga2Vy
bmVsVW5pdExlbmd0aFkpCiB7CisgICAgaWYgKG1fa2VybmVsVW5pdExlbmd0aFkgPT0ga2VybmVs
VW5pdExlbmd0aFkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX2tlcm5lbFVuaXRMZW5n
dGhZID0ga2VybmVsVW5pdExlbmd0aFk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGNvbnN0IExp
Z2h0U291cmNlKiBGRVNwZWN1bGFyTGlnaHRpbmc6OmxpZ2h0U291cmNlKCkgY29uc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAkocmV2aXNpb24gNzgyMjEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNywxOSArMzcsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGlnaHRp
bmdDb2xvcihjb25zdCBDb2xvciYpOwogCiAgICAgZmxvYXQgc3VyZmFjZVNjYWxlKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRTdXJmYWNlU2NhbGUoZmxvYXQpOworICAgIGJvb2wgc2V0U3VyZmFjZVNj
YWxlKGZsb2F0KTsKIAogICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQoKSBjb25zdDsKLSAgICB2
b2lkIHNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQpOworICAgIGJvb2wgc2V0U3BlY3VsYXJDb25z
dGFudChmbG9hdCk7CiAKICAgICBmbG9hdCBzcGVjdWxhckV4cG9uZW50KCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRTcGVjdWxhckV4cG9uZW50KGZsb2F0KTsKKyAgICBib29sIHNldFNwZWN1bGFyRXhw
b25lbnQoZmxvYXQpOwogCiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFgoKSBjb25zdDsKLSAg
ICB2b2lkIHNldEtlcm5lbFVuaXRMZW5ndGhYKGZsb2F0KTsKKyAgICBib29sIHNldEtlcm5lbFVu
aXRMZW5ndGhYKGZsb2F0KTsKIAogICAgIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRLZXJuZWxVbml0TGVuZ3RoWShmbG9hdCk7CisgICAgYm9vbCBzZXRLZXJu
ZWxVbml0TGVuZ3RoWShmbG9hdCk7CiAKICAgICBjb25zdCBMaWdodFNvdXJjZSogbGlnaHRTb3Vy
Y2UoKSBjb25zdDsKICAgICB2b2lkIHNldExpZ2h0U291cmNlKFBhc3NSZWZQdHI8TGlnaHRTb3Vy
Y2U+KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiA3ODIyMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5
OCw4IEBAIGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzZXRGaWwKIAogICAgIExp
Z2h0U291cmNlKiBsaWdodFNvdXJjZSA9IGNvbnN0X2Nhc3Q8TGlnaHRTb3VyY2UqPihkaWZmdXNl
TGlnaHRpbmctPmxpZ2h0U291cmNlKCkpOwogICAgIGNvbnN0IFNWR0ZFTGlnaHRFbGVtZW50KiBs
aWdodEVsZW1lbnQgPSBmaW5kTGlnaHRFbGVtZW50KCk7CisgICAgQVNTRVJUKGxpZ2h0U291cmNl
KTsKKyAgICBBU1NFUlQobGlnaHRFbGVtZW50KTsKIAogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6YXppbXV0aEF0dHIpCiAgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0QXppbXV0
aChsaWdodEVsZW1lbnQtPmF6aW11dGgoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVMaWdodEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUxpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDc4MjIxKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgi
CiAjaW5jbHVkZSAiU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZpbHRlckVsZW1lbnQu
aCIKICNpbmNsdWRlICJTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMTA1LDkgKzEwNiwxMSBAQCB2b2lkIFNWR0ZFTGlnaHRF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuCiAgICAgICAgICAgICBTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQqIGRpZmZ1c2VMaWdodGluZyA9IHN0YXRpY19jYXN0PFNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudCo+KHBhcmVudCk7CiAgICAgICAgICAgICBkaWZmdXNlTGlnaHRpbmctPmxpZ2h0
RWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQodGhpcywgYXR0ck5hbWUpOwogICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVT
cGVjdWxhckxpZ2h0aW5nVGFnKSkgeworICAgICAgICAgICAgU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudCogc3BlY3VsYXJMaWdodGluZyA9IHN0YXRpY19jYXN0PFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQqPihwYXJlbnQpOworICAgICAgICAgICAgc3BlY3VsYXJMaWdodGluZy0+bGln
aHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZCh0aGlzLCBhdHRyTmFtZSk7CisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgLy8gSGFuZGxlciBmb3IgU3BlY3VsYXJMaWdodGlu
ZyBoYXMgbm90IGltcGxlbWVudGVkIHlldC4KLSAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1h
cmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbihyZW5kZXJlcik7CiAgICAg
fQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiA3ODIyMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODks
MTggKzg5LDY5IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6cGFyc2UKICAg
ICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShhdHRyKTsKIH0KIAorYm9vbCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojpz
ZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQoreworICAgIEZFU3BlY3VsYXJMaWdodGluZyogc3BlY3VsYXJM
aWdodGluZyA9IHN0YXRpY19jYXN0PEZFU3BlY3VsYXJMaWdodGluZyo+KGVmZmVjdCk7CisgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyKQorICAgICAgICByZXR1
cm4gc3BlY3VsYXJMaWdodGluZy0+c2V0U3VyZmFjZVNjYWxlKHN1cmZhY2VTY2FsZSgpKTsKKyAg
ICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyKQorICAgICAg
ICByZXR1cm4gc3BlY3VsYXJMaWdodGluZy0+c2V0U3BlY3VsYXJDb25zdGFudChzcGVjdWxhckNv
bnN0YW50KCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVu
dEF0dHIpCisgICAgICAgIHJldHVybiBzcGVjdWxhckxpZ2h0aW5nLT5zZXRTcGVjdWxhckV4cG9u
ZW50KHNwZWN1bGFyRXhwb25lbnQoKSk7CisKKyAgICBMaWdodFNvdXJjZSogbGlnaHRTb3VyY2Ug
PSBjb25zdF9jYXN0PExpZ2h0U291cmNlKj4oc3BlY3VsYXJMaWdodGluZy0+bGlnaHRTb3VyY2Uo
KSk7CisgICAgY29uc3QgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0RWxlbWVudCA9IGZpbmRMaWdo
dEVsZW1lbnQoKTsKKyAgICBBU1NFUlQobGlnaHRTb3VyY2UpOworICAgIEFTU0VSVChsaWdodEVs
ZW1lbnQpOworCisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjphemltdXRoQXR0cikKKyAg
ICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRBemltdXRoKGxpZ2h0RWxlbWVudC0+YXppbXV0
aCgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmVsZXZhdGlvbkF0dHIpCisgICAg
ICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0RWxldmF0aW9uKGxpZ2h0RWxlbWVudC0+ZWxldmF0
aW9uKCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpCisgICAgICAgIHJl
dHVybiBsaWdodFNvdXJjZS0+c2V0WChsaWdodEVsZW1lbnQtPngoKSk7CisgICAgaWYgKGF0dHJO
YW1lID09IFNWR05hbWVzOjp5QXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRZ
KGxpZ2h0RWxlbWVudC0+eSgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnpBdHRy
KQorICAgICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldFoobGlnaHRFbGVtZW50LT56KCkpOwor
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9pbnRzQXRYQXR0cikKKyAgICAgICAgcmV0
dXJuIGxpZ2h0U291cmNlLT5zZXRQb2ludHNBdFgobGlnaHRFbGVtZW50LT5wb2ludHNBdFgoKSk7
CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpwb2ludHNBdFlBdHRyKQorICAgICAgICBy
ZXR1cm4gbGlnaHRTb3VyY2UtPnNldFBvaW50c0F0WShsaWdodEVsZW1lbnQtPnBvaW50c0F0WSgp
KTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0WkF0dHIpCisgICAgICAg
IHJldHVybiBsaWdodFNvdXJjZS0+c2V0UG9pbnRzQXRaKGxpZ2h0RWxlbWVudC0+cG9pbnRzQXRa
KCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIp
CisgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0U3BlY3VsYXJFeHBvbmVudChsaWdodEVs
ZW1lbnQtPnNwZWN1bGFyRXhwb25lbnQoKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVz
OjpsaW1pdGluZ0NvbmVBbmdsZUF0dHIpCisgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0
TGltaXRpbmdDb25lQW5nbGUobGlnaHRFbGVtZW50LT5saW1pdGluZ0NvbmVBbmdsZSgpKTsKKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAKLSAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cgotICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6c3VyZmFjZVNjYWxlQXR0cgorICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3VyZmFj
ZVNjYWxlQXR0cgogICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJDb25z
dGFudEF0dHIKICAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyRXhwb25l
bnRBdHRyCiAgICAgICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3Ro
QXR0cikKKyAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CisKKyAg
ICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKICAgICAgICAgaW52YWxpZGF0ZSgp
OwogfQogCit2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmxpZ2h0RWxlbWVudEF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCit7CisgICAgaWYgKGZpbmRMaWdodEVsZW1lbnQo
KSAhPSBsaWdodEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRoZSBsaWdodCBl
bGVtZW50IGhhcyBkaWZmZXJlbnQgYXR0cmlidXRlIG5hbWVzIHNvIGF0dHJOYW1lIGNhbiBpZGVu
dGlmeSB0aGUgcmVxdWVzdGVkIGF0dHJpYnV0ZS4KKyAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKK30KKwogdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojpz
eW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3luY2hyb25pemVQcm9wZXJ0
eShhdHRyTmFtZSk7CkBAIC0xMjksMjAgKzE4MCw2IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6c3luY2gKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmZpbmRMaWdodHMoKSBjb25zdAotewotICAgIGZv
ciAoTm9kZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJs
aW5nKCkpIHsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRGlzdGFu
dExpZ2h0VGFnKQotICAgICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVQ
b2ludExpZ2h0VGFnKQotICAgICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6
ZmVTcG90TGlnaHRUYWcpKSB7Ci0gICAgICAgICAgICBTVkdGRUxpZ2h0RWxlbWVudCogbGlnaHRO
b2RlID0gc3RhdGljX2Nhc3Q8U1ZHRkVMaWdodEVsZW1lbnQqPihub2RlKTsgCi0gICAgICAgICAg
ICByZXR1cm4gbGlnaHROb2RlLT5saWdodFNvdXJjZSgpOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgcmV0dXJuIDA7Ci19Ci0KIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBG
aWx0ZXIqIGZpbHRlcikKIHsKICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0MSA9IGZpbHRlckJ1aWxk
ZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwpAQCAtMTU1LDExICsxOTIsMzEgQEAgUGFzc1JlZlB0
cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFU3BlY3VsYXJMaQogICAgIENvbG9yIGNvbG9yID0gZmlsdGVy
U3R5bGUtPnN2Z1N0eWxlKCktPmxpZ2h0aW5nQ29sb3IoKTsKIAogICAgIFJlZlB0cjxGaWx0ZXJF
ZmZlY3Q+IGVmZmVjdCA9IEZFU3BlY3VsYXJMaWdodGluZzo6Y3JlYXRlKGZpbHRlciwgY29sb3Is
IHN1cmZhY2VTY2FsZSgpLCBzcGVjdWxhckNvbnN0YW50KCksIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXJFeHBvbmVudCgpLCBrZXJuZWxVbml0TGVu
Z3RoWCgpLCBrZXJuZWxVbml0TGVuZ3RoWSgpLCBmaW5kTGlnaHRzKCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXJFeHBvbmVudCgpLCBrZXJuZWxV
bml0TGVuZ3RoWCgpLCBrZXJuZWxVbml0TGVuZ3RoWSgpLCBmaW5kTGlnaHQoKSk7CiAgICAgZWZm
ZWN0LT5pbnB1dEVmZmVjdHMoKS5hcHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gZWZmZWN0LnJl
bGVhc2UoKTsKIH0KIAorU1ZHRkVMaWdodEVsZW1lbnQqIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQoKSBjb25zdAoreworICAgIGZvciAoTm9kZSogbm9kZSA9
IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAg
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRGlzdGFudExpZ2h0VGFnKQorICAg
ICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVQb2ludExpZ2h0VGFnKQor
ICAgICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVTcG90TGlnaHRUYWcp
KSB7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHRkVMaWdodEVsZW1lbnQqPihu
b2RlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxM
aWdodFNvdXJjZT4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6ZmluZExpZ2h0KCkgY29u
c3QKK3sKKyAgICBTVkdGRUxpZ2h0RWxlbWVudCogbGlnaHROb2RlID0gZmluZExpZ2h0RWxlbWVu
dCgpOworICAgIGlmICghbGlnaHROb2RlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bGlnaHROb2RlLT5saWdodFNvdXJjZSgpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZH
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5oCShyZXZpc2lvbiA3ODIyMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAK
ICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoRklMVEVSUykKICNpbmNsdWRlICJGRVNwZWN1bGFy
TGlnaHRpbmcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgorI2luY2x1ZGUgIlNW
R0ZFTGlnaHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDExICszMywxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDog
cHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZvaWQgbGlnaHRFbGVtZW50
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVudCosIGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0Rmls
dGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlmaWVk
TmFtZSYpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0Zp
bHRlckJ1aWxkZXIqLCBGaWx0ZXIqKTsKQEAgLTUyLDcgKzU1LDggQEAgcHJpdmF0ZToKICAgICBE
RUNMQVJFX0FOSU1BVEVEX05VTUJFUihLZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0
aFgpCiAgICAgREVDTEFSRV9BTklNQVRFRF9OVU1CRVIoS2VybmVsVW5pdExlbmd0aFksIGtlcm5l
bFVuaXRMZW5ndGhZKQogCi0gICAgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gZmluZExpZ2h0cygp
IGNvbnN0OworICAgIFNWR0ZFTGlnaHRFbGVtZW50KiBmaW5kTGlnaHRFbGVtZW50KCkgY29uc3Q7
CisgICAgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gZmluZExpZ2h0KCkgY29uc3Q7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82949</attachid>
            <date>2011-02-18 06:06:48 -0800</date>
            <delta_ts>2011-02-22 02:51:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>specRepaintRefact.patch</filename>
            <type>text/plain</type>
            <size>17233</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4ODExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDItMTcgIFJlbmF0YSBI
b2RvdmFuICA8cmVuaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQgY2hhbmdlcyBkb2Vz
bid0IHJlcXVpcmUgcmVsYXlvdXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDQ1MQorCisgICAgICAgIFdoZW4gdGhlIEZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQgcmVjZWl2ZXMgYW4gdXBkYXRlIG1lc3NhZ2UgYnV0IHRoZSBnaXZlbiB2YWx1ZSBy
ZW1haW5zIHRoZSBzYW1lIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gcmVsYXlvdXQgdGhlIGZp
bHRlci4gT3RoZXJ3aXNlLCB0aGUgbGlnaHQgc291cmNlIHJlcXVlc3RzIGEgcmVwYWludCBvbiB0
aGUgc3BlY3VsYXIgbGlnaHRpbmcgZmlsdGVyLgorICAgICAgICBCZXNpZGVzIGFkZCBBU1NFUlRz
IHRvIERpZmZ1c2VMaWdodEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZSBhcyB3ZWxs
IHRvIGF2b2lkIGxpZ2h0U291cmNlcyBiZWluZyBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBhcmUgbmVlZGVkIGJlY2F1c2UgdGhpcyBtb2RpZmljaWF0aW9uIGlzIGNvdmVyZWQgYnkgdGhl
IGR5bmFtaWMgdXBkYXRlIHRlc3RzIG9mIEZFU3BlY3VsYWxMaWdodGluZy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3VyZmFjZVNjYWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3BlY3VsYXJDb25zdGFudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyRXhwb25lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRLZXJuZWxVbml0TGVu
Z3RoWCk6CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVu
aXRMZW5ndGhZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3Vs
YXJMaWdodGluZy5oOgorICAgICAgICAqIHN2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUxpZ2h0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUxpZ2h0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6c2V0RmlsdGVy
RWZmZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpidWlsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpmaW5kTGlnaHRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OmZpbmRMaWdodCk6CisgICAgICAgICogc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
aDoKKwogMjAxMS0wMi0xNiAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVTcGVjdWxhckxpZ2h0aW5nLmNwcAkocmV2aXNpb24gNzgyMjEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY0LDkgKzY0LDEyIEBACiAgICAgcmV0dXJuIG1fc3VyZmFjZVNjYWxlOwog
fQogCi12b2lkIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3VyZmFjZVNjYWxlKGZsb2F0IHN1cmZh
Y2VTY2FsZSkKK2Jvb2wgRkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTdXJmYWNlU2NhbGUoZmxvYXQg
c3VyZmFjZVNjYWxlKQogeworICAgIGlmIChtX3N1cmZhY2VTY2FsZSA9PSBzdXJmYWNlU2NhbGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX3N1cmZhY2VTY2FsZSA9IHN1cmZhY2VTY2Fs
ZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzcGVj
dWxhckNvbnN0YW50KCkgY29uc3QKQEAgLTc0LDkgKzc3LDEyIEBACiAgICAgcmV0dXJuIG1fc3Bl
Y3VsYXJDb25zdGFudDsKIH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFy
Q29uc3RhbnQoZmxvYXQgc3BlY3VsYXJDb25zdGFudCkKK2Jvb2wgRkVTcGVjdWxhckxpZ2h0aW5n
OjpzZXRTcGVjdWxhckNvbnN0YW50KGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQpCiB7CisgICAgaWYg
KG1fc3BlY3VsYXJDb25zdGFudCA9PSBzcGVjdWxhckNvbnN0YW50KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgbV9zcGVjdWxhckNvbnN0YW50ID0gc3BlY3VsYXJDb25zdGFudDsKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzcGVjdWxhckV4cG9u
ZW50KCkgY29uc3QKQEAgLTg0LDkgKzkwLDEyIEBACiAgICAgcmV0dXJuIG1fc3BlY3VsYXJFeHBv
bmVudDsKIH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyRXhwb25lbnQo
ZmxvYXQgc3BlY3VsYXJFeHBvbmVudCkKK2Jvb2wgRkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVj
dWxhckV4cG9uZW50KGZsb2F0IHNwZWN1bGFyRXhwb25lbnQpCiB7CisgICAgaWYgKG1fc3BlY3Vs
YXJFeHBvbmVudCA9PSBzcGVjdWxhckV4cG9uZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgbV9zcGVjdWxhckV4cG9uZW50ID0gc3BlY3VsYXJFeHBvbmVudDsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjprZXJuZWxVbml0TGVuZ3RoWCgpIGNv
bnN0CkBAIC05NCw5ICsxMDMsMTIgQEAKICAgICByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3RoWDsK
IH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5ndGhYKGZsb2F0
IGtlcm5lbFVuaXRMZW5ndGhYKQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVu
aXRMZW5ndGhYKGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYKQogeworICAgIGlmIChtX2tlcm5lbFVu
aXRMZW5ndGhYID09IGtlcm5lbFVuaXRMZW5ndGhYKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgbV9rZXJuZWxVbml0TGVuZ3RoWCA9IGtlcm5lbFVuaXRMZW5ndGhYOworICAgIHJldHVybiB0
cnVlOwogfQogCiBmbG9hdCBGRVNwZWN1bGFyTGlnaHRpbmc6Omtlcm5lbFVuaXRMZW5ndGhZKCkg
Y29uc3QKQEAgLTEwNCw5ICsxMTYsMTIgQEAKICAgICByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3Ro
WTsKIH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5ndGhZKGZs
b2F0IGtlcm5lbFVuaXRMZW5ndGhZKQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5l
bFVuaXRMZW5ndGhZKGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZKQogeworICAgIGlmIChtX2tlcm5l
bFVuaXRMZW5ndGhZID09IGtlcm5lbFVuaXRMZW5ndGhZKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgbV9rZXJuZWxVbml0TGVuZ3RoWSA9IGtlcm5lbFVuaXRMZW5ndGhZOworICAgIHJldHVy
biB0cnVlOwogfQogCiBjb25zdCBMaWdodFNvdXJjZSogRkVTcGVjdWxhckxpZ2h0aW5nOjpsaWdo
dFNvdXJjZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgJKHJldmlzaW9u
IDc4MjIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNw
ZWN1bGFyTGlnaHRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTkgKzM3LDE5IEBACiAgICAg
dm9pZCBzZXRMaWdodGluZ0NvbG9yKGNvbnN0IENvbG9yJik7CiAKICAgICBmbG9hdCBzdXJmYWNl
U2NhbGUoKSBjb25zdDsKLSAgICB2b2lkIHNldFN1cmZhY2VTY2FsZShmbG9hdCk7CisgICAgYm9v
bCBzZXRTdXJmYWNlU2NhbGUoZmxvYXQpOwogCiAgICAgZmxvYXQgc3BlY3VsYXJDb25zdGFudCgp
IGNvbnN0OwotICAgIHZvaWQgc2V0U3BlY3VsYXJDb25zdGFudChmbG9hdCk7CisgICAgYm9vbCBz
ZXRTcGVjdWxhckNvbnN0YW50KGZsb2F0KTsKIAogICAgIGZsb2F0IHNwZWN1bGFyRXhwb25lbnQo
KSBjb25zdDsKLSAgICB2b2lkIHNldFNwZWN1bGFyRXhwb25lbnQoZmxvYXQpOworICAgIGJvb2wg
c2V0U3BlY3VsYXJFeHBvbmVudChmbG9hdCk7CiAKICAgICBmbG9hdCBrZXJuZWxVbml0TGVuZ3Ro
WCgpIGNvbnN0OwotICAgIHZvaWQgc2V0S2VybmVsVW5pdExlbmd0aFgoZmxvYXQpOworICAgIGJv
b2wgc2V0S2VybmVsVW5pdExlbmd0aFgoZmxvYXQpOwogCiAgICAgZmxvYXQga2VybmVsVW5pdExl
bmd0aFkoKSBjb25zdDsKLSAgICB2b2lkIHNldEtlcm5lbFVuaXRMZW5ndGhZKGZsb2F0KTsKKyAg
ICBib29sIHNldEtlcm5lbFVuaXRMZW5ndGhZKGZsb2F0KTsKIAogICAgIGNvbnN0IExpZ2h0U291
cmNlKiBsaWdodFNvdXJjZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0TGlnaHRTb3VyY2UoUGFzc1Jl
ZlB0cjxMaWdodFNvdXJjZT4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAkocmV2aXNpb24gNzgyMjEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU0LDkgKzU0LDYgQEAKICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJFUihTdXJmYWNlU2NhbGUs
IHN1cmZhY2VTY2FsZSkKICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJFUihLZXJuZWxVbml0TGVu
Z3RoWCwga2VybmVsVW5pdExlbmd0aFgpCiAgICAgREVDTEFSRV9BTklNQVRFRF9OVU1CRVIoS2Vy
bmVsVW5pdExlbmd0aFksIGtlcm5lbFVuaXRMZW5ndGhZKQotCi0gICAgU1ZHRkVMaWdodEVsZW1l
bnQqIGZpbmRMaWdodEVsZW1lbnQoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPExpZ2h0U291cmNl
PiBmaW5kTGlnaHQoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCShyZXZpc2lvbiA3ODIyMSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw4IEBACiBjbGFzcyBTVkdGRUxpZ2h0RWxlbWVudCA6IHB1YmxpYyBTVkdFbGVt
ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0
U291cmNlKCkgY29uc3QgPSAwOworICAgIHN0YXRpYyBTVkdGRUxpZ2h0RWxlbWVudCogZmluZExp
Z2h0RWxlbWVudChjb25zdCBTVkdFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TGln
aHRTb3VyY2U+IGZpbmRMaWdodChjb25zdCBTVkdFbGVtZW50Kik7CiAKIHByb3RlY3RlZDoKICAg
ICBTVkdGRUxpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAJKHJldmlzaW9uIDc4MjIyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSwxOCArODksNjkg
QEAKICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KIAorYm9vbCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVt
ZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQoreworICAgIEZFU3BlY3VsYXJMaWdodGluZyogc3Bl
Y3VsYXJMaWdodGluZyA9IHN0YXRpY19jYXN0PEZFU3BlY3VsYXJMaWdodGluZyo+KGVmZmVjdCk7
CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyKQorICAgICAg
ICByZXR1cm4gc3BlY3VsYXJMaWdodGluZy0+c2V0U3VyZmFjZVNjYWxlKHN1cmZhY2VTY2FsZSgp
KTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyKQor
ICAgICAgICByZXR1cm4gc3BlY3VsYXJMaWdodGluZy0+c2V0U3BlY3VsYXJDb25zdGFudChzcGVj
dWxhckNvbnN0YW50KCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJF
eHBvbmVudEF0dHIpCisgICAgICAgIHJldHVybiBzcGVjdWxhckxpZ2h0aW5nLT5zZXRTcGVjdWxh
ckV4cG9uZW50KHNwZWN1bGFyRXhwb25lbnQoKSk7CisKKyAgICBMaWdodFNvdXJjZSogbGlnaHRT
b3VyY2UgPSBjb25zdF9jYXN0PExpZ2h0U291cmNlKj4oc3BlY3VsYXJMaWdodGluZy0+bGlnaHRT
b3VyY2UoKSk7CisgICAgY29uc3QgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0RWxlbWVudCA9IFNW
R0ZFTGlnaHRFbGVtZW50OjpmaW5kTGlnaHRFbGVtZW50KHRoaXMpOworICAgIEFTU0VSVChsaWdo
dFNvdXJjZSk7CisgICAgQVNTRVJUKGxpZ2h0RWxlbWVudCk7CisKKyAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmF6aW11dGhBdHRyKQorICAgICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNl
dEF6aW11dGgobGlnaHRFbGVtZW50LT5hemltdXRoKCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBT
VkdOYW1lczo6ZWxldmF0aW9uQXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRF
bGV2YXRpb24obGlnaHRFbGVtZW50LT5lbGV2YXRpb24oKSk7CisgICAgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjp4QXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRYKGxpZ2h0
RWxlbWVudC0+eCgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyKQorICAg
ICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldFkobGlnaHRFbGVtZW50LT55KCkpOworICAgIGlm
IChhdHRyTmFtZSA9PSBTVkdOYW1lczo6ekF0dHIpCisgICAgICAgIHJldHVybiBsaWdodFNvdXJj
ZS0+c2V0WihsaWdodEVsZW1lbnQtPnooKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVz
Ojpwb2ludHNBdFhBdHRyKQorICAgICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldFBvaW50c0F0
WChsaWdodEVsZW1lbnQtPnBvaW50c0F0WCgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OnBvaW50c0F0WUF0dHIpCisgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0UG9pbnRz
QXRZKGxpZ2h0RWxlbWVudC0+cG9pbnRzQXRZKCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6cG9pbnRzQXRaQXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRQb2lu
dHNBdFoobGlnaHRFbGVtZW50LT5wb2ludHNBdFooKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNW
R05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNl
LT5zZXRTcGVjdWxhckV4cG9uZW50KGxpZ2h0RWxlbWVudC0+c3BlY3VsYXJFeHBvbmVudCgpKTsK
KyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmxpbWl0aW5nQ29uZUFuZ2xlQXR0cikKKyAg
ICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRMaW1pdGluZ0NvbmVBbmdsZShsaWdodEVsZW1l
bnQtPmxpbWl0aW5nQ29uZUFuZ2xlKCkpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAg
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKIAotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyCi0g
ICAgICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyCisgICAgaWYg
KGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyCiAgICAgICAgIHx8IGF0dHJO
YW1lID09IFNWR05hbWVzOjpzcGVjdWxhckNvbnN0YW50QXR0cgogICAgICAgICB8fCBhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIKICAgICAgICAgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKQorICAgICAgICBwcmltaXRpdmVBdHRy
aWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyKQogICAgICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKK3ZvaWQgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudDo6bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxp
Z2h0RWxlbWVudCogbGlnaHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
K3sKKyAgICBpZiAoU1ZHRkVMaWdodEVsZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQodGhpcykgIT0g
bGlnaHRFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGUgbGlnaHQgZWxlbWVu
dCBoYXMgZGlmZmVyZW50IGF0dHJpYnV0ZSBuYW1lcyBzbyBhdHRyTmFtZSBjYW4gaWRlbnRpZnkg
dGhlIHJlcXVlc3RlZCBhdHRyaWJ1dGUuCisgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7Cit9CisKIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6c3luY2hy
b25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN5bmNocm9uaXplUHJvcGVydHkoYXR0
ck5hbWUpOwpAQCAtMTI5LDIwICsxODAsNiBAQAogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxMaWdo
dFNvdXJjZT4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6ZmluZExpZ2h0cygpIGNvbnN0
Ci17Ci0gICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9k
ZS0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShTVkdOYW1l
czo6ZmVEaXN0YW50TGlnaHRUYWcpCi0gICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNW
R05hbWVzOjpmZVBvaW50TGlnaHRUYWcpCi0gICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjpmZVNwb3RMaWdodFRhZykpIHsKLSAgICAgICAgICAgIFNWR0ZFTGlnaHRFbGVt
ZW50KiBsaWdodE5vZGUgPSBzdGF0aWNfY2FzdDxTVkdGRUxpZ2h0RWxlbWVudCo+KG5vZGUpOyAK
LSAgICAgICAgICAgIHJldHVybiBsaWdodE5vZGUtPmxpZ2h0U291cmNlKCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRl
ckJ1aWxkZXIsIEZpbHRlciogZmlsdGVyKQogewogICAgIEZpbHRlckVmZmVjdCogaW5wdXQxID0g
ZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CkBAIC0xNTQsOCArMTkxLDggQEAK
ICAgICAKICAgICBDb2xvciBjb2xvciA9IGZpbHRlclN0eWxlLT5zdmdTdHlsZSgpLT5saWdodGlu
Z0NvbG9yKCk7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBlZmZlY3QgPSBGRVNwZWN1bGFy
TGlnaHRpbmc6OmNyZWF0ZShmaWx0ZXIsIGNvbG9yLCBzdXJmYWNlU2NhbGUoKSwgc3BlY3VsYXJD
b25zdGFudCgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNw
ZWN1bGFyRXhwb25lbnQoKSwga2VybmVsVW5pdExlbmd0aFgoKSwga2VybmVsVW5pdExlbmd0aFko
KSwgZmluZExpZ2h0cygpKTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBlZmZlY3QgPSBGRVNw
ZWN1bGFyTGlnaHRpbmc6OmNyZWF0ZShmaWx0ZXIsIGNvbG9yLCBzdXJmYWNlU2NhbGUoKSwgc3Bl
Y3VsYXJDb25zdGFudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3BlY3VsYXJFeHBvbmVudCgpLCBrZXJuZWxVbml0TGVuZ3RoWCgpLCBrZXJuZWxVbml0TGVu
Z3RoWSgpLCBTVkdGRUxpZ2h0RWxlbWVudDo6ZmluZExpZ2h0KHRoaXMpKTsKICAgICBlZmZlY3Qt
PmlucHV0RWZmZWN0cygpLmFwcGVuZChpbnB1dDEpOwogICAgIHJldHVybiBlZmZlY3QucmVsZWFz
ZSgpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAJKHJldmlzaW9uIDc4MjIxKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcg
Kzk3LDkgQEAKICAgICB9CiAKICAgICBMaWdodFNvdXJjZSogbGlnaHRTb3VyY2UgPSBjb25zdF9j
YXN0PExpZ2h0U291cmNlKj4oZGlmZnVzZUxpZ2h0aW5nLT5saWdodFNvdXJjZSgpKTsKLSAgICBj
b25zdCBTVkdGRUxpZ2h0RWxlbWVudCogbGlnaHRFbGVtZW50ID0gZmluZExpZ2h0RWxlbWVudCgp
OworICAgIGNvbnN0IFNWR0ZFTGlnaHRFbGVtZW50KiBsaWdodEVsZW1lbnQgPSBTVkdGRUxpZ2h0
RWxlbWVudDo6ZmluZExpZ2h0RWxlbWVudCh0aGlzKTsKKyAgICBBU1NFUlQobGlnaHRTb3VyY2Up
OworICAgIEFTU0VSVChsaWdodEVsZW1lbnQpOwogCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjphemltdXRoQXR0cikKICAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRBemltdXRo
KGxpZ2h0RWxlbWVudC0+YXppbXV0aCgpKTsKQEAgLTE0MCw3ICsxNDIsNyBAQAogCiB2b2lkIFNW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChj
b25zdCBTVkdGRUxpZ2h0RWxlbWVudCogbGlnaHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoZmluZExpZ2h0RWxlbWVudCgpICE9IGxpZ2h0RWxlbWVu
dCkKKyAgICBpZiAoU1ZHRkVMaWdodEVsZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQodGhpcykgIT0g
bGlnaHRFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBUaGUgbGlnaHQgZWxlbWVu
dCBoYXMgZGlmZmVyZW50IGF0dHJpYnV0ZSBuYW1lcy4KQEAgLTE4MywzMSArMTg1LDExIEBACiAg
ICAgQ29sb3IgY29sb3IgPSBmaWx0ZXJTdHlsZS0+c3ZnU3R5bGUoKS0+bGlnaHRpbmdDb2xvcigp
OwogICAgIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGVmZmVjdCA9IEZFRGlmZnVzZUxpZ2h0
aW5nOjpjcmVhdGUoZmlsdGVyLCBjb2xvciwgc3VyZmFjZVNjYWxlKCksIGRpZmZ1c2VDb25zdGFu
dCgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrZXJuZWxVbml0TGVuZ3RoWCgpLCBrZXJuZWxVbml0TGVuZ3RoWSgpLCBm
aW5kTGlnaHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2VybmVsVW5pdExlbmd0aFgoKSwga2VybmVsVW5pdExlbmd0
aFkoKSwgU1ZHRkVMaWdodEVsZW1lbnQ6OmZpbmRMaWdodCh0aGlzKSk7CiAgICAgZWZmZWN0LT5p
bnB1dEVmZmVjdHMoKS5hcHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gZWZmZWN0LnJlbGVhc2Uo
KTsKIH0KIAotU1ZHRkVMaWdodEVsZW1lbnQqIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6
ZmluZExpZ2h0RWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RD
aGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAo
bm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaXN0YW50TGlnaHRUYWcpCi0gICAgICAgICAg
ICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVBvaW50TGlnaHRUYWcpCi0gICAgICAg
ICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVNwb3RMaWdodFRhZykpIHsKLSAg
ICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdGRUxpZ2h0RWxlbWVudCo+KG5vZGUpOwot
ICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiAwOwogfQogCi1QYXNzUmVmUHRyPExpZ2h0U291
cmNlPiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmZpbmRMaWdodCgpIGNvbnN0Ci17Ci0g
ICAgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0Tm9kZSA9IGZpbmRMaWdodEVsZW1lbnQoKTsKLSAg
ICBpZiAoIWxpZ2h0Tm9kZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGxpZ2h0Tm9k
ZS0+bGlnaHRTb3VyY2UoKTsKLX0KLQotfQotCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAkocmV2aXNpb24gNzgyMjEp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRlICJTVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRmlsdGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC01Miw2ICs1Mywy
NSBAQAogewogfQogCitTVkdGRUxpZ2h0RWxlbWVudCogU1ZHRkVMaWdodEVsZW1lbnQ6OmZpbmRM
aWdodEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCkKK3sKKyAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBzdmdFbGVtZW50LT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5u
ZXh0U2libGluZygpKSB7CisgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpm
ZURpc3RhbnRMaWdodFRhZykKKyAgICAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OmZlUG9pbnRMaWdodFRhZykKKyAgICAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmZlU3BvdExpZ2h0VGFnKSkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFNWR0ZFTGlnaHRFbGVtZW50Kj4obm9kZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IDA7Cit9CisKK1Bhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IFNWR0ZFTGlnaHRFbGVtZW50OjpmaW5k
TGlnaHQoY29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCkKK3sKKyAgICBTVkdGRUxpZ2h0RWxl
bWVudCogbGlnaHROb2RlID0gZmluZExpZ2h0RWxlbWVudChzdmdFbGVtZW50KTsKKyAgICBpZiAo
IWxpZ2h0Tm9kZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGxpZ2h0Tm9kZS0+bGln
aHRTb3VyY2UoKTsKK30KIHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBTdHJpbmcmIHZhbHVlID0gYXR0ci0+
dmFsdWUoKTsKQEAgLTEwNSw5ICsxMjUsMTEgQEAKICAgICAgICAgICAgIFNWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudCogZGlmZnVzZUxpZ2h0aW5nID0gc3RhdGljX2Nhc3Q8U1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50Kj4ocGFyZW50KTsKICAgICAgICAgICAgIGRpZmZ1c2VMaWdodGluZy0+
bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZCh0aGlzLCBhdHRyTmFtZSk7CiAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0gZWxzZSBpZiAocGFyZW50LT5oYXNUYWdOYW1lKFNWR05hbWVz
OjpmZVNwZWN1bGFyTGlnaHRpbmdUYWcpKSB7CisgICAgICAgICAgICBTVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50KiBzcGVjdWxhckxpZ2h0aW5nID0gc3RhdGljX2Nhc3Q8U1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudCo+KHBhcmVudCk7CisgICAgICAgICAgICBzcGVjdWxhckxpZ2h0aW5n
LT5saWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2VkKHRoaXMsIGF0dHJOYW1lKTsKKyAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAvLyBIYW5kbGVyIGZvciBTcGVjdWxhckxp
Z2h0aW5nIGhhcyBub3QgaW1wbGVtZW50ZWQgeWV0LgotICAgICAgICBSZW5kZXJTVkdSZXNvdXJj
ZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsK
ICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQuaAkocmV2aXNpb24gNzgyMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2
ICsyNSw3IEBACiAjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKEZJTFRFUlMpCiAjaW5jbHVkZSAi
RkVTcGVjdWxhckxpZ2h0aW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKKyNp
bmNsdWRlICJTVkdGRUxpZ2h0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMiwxMSAr
MzMsMTMgQEAKIGNsYXNzIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQgOiBwdWJsaWMgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdm9pZCBsaWdodEVsZW1lbnRBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFNWR0ZFTGlnaHRFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwog
CiBwcml2YXRlOgogICAgIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVk
QXR0cmlidXRlKEF0dHJpYnV0ZSopOworICAgIHZpcnR1YWwgYm9vbCBzZXRGaWx0ZXJFZmZlY3RB
dHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRl
ciosIEZpbHRlciopOwpAQCAtNTEsOCArNTQsNiBAQAogICAgIERFQ0xBUkVfQU5JTUFURURfTlVN
QkVSKFN1cmZhY2VTY2FsZSwgc3VyZmFjZVNjYWxlKQogICAgIERFQ0xBUkVfQU5JTUFURURfTlVN
QkVSKEtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWCkKICAgICBERUNMQVJFX0FO
SU1BVEVEX05VTUJFUihLZXJuZWxVbml0TGVuZ3RoWSwga2VybmVsVW5pdExlbmd0aFkpCi0KLSAg
ICBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBmaW5kTGlnaHRzKCkgY29uc3Q7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83291</attachid>
            <date>2011-02-22 02:51:34 -0800</date>
            <delta_ts>2011-02-23 13:06:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>spec_kuld.patch</filename>
            <type>text/plain</type>
            <size>74931</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzAzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDItMjIgIFJlbmF0YSBI
b2RvdmFuICA8cmVuaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQgY2hhbmdlcyBkb2Vz
bid0IHJlcXVpcmUgcmVsYXlvdXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDQ1MQorCisgICAgICAgIFdoZW4gdGhlIEZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQgcmVjZWl2ZXMgYW4gdXBkYXRlIG1lc3NhZ2UgYnV0IHRoZSBnaXZlbiB2YWx1ZSBy
ZW1haW5zIHRoZSBzYW1lIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gcmVsYXlvdXQgdGhlIGZp
bHRlci4gT3RoZXJ3aXNlLCB0aGUgbGlnaHQgc291cmNlIHJlcXVlc3RzIGEgcmVwYWludCBvbiB0
aGUgc3BlY3VsYXIgbGlnaHRpbmcgZmlsdGVyLgorICAgICAgICBCZXNpZGVzIGFkZCBBU1NFUlRz
IHRvIERpZmZ1c2VMaWdodEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZSBhcyB3ZWxs
IHRvIGF2b2lkIGxpZ2h0U291cmNlcyBiZWluZyBudWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBhcmUgbmVlZGVkIHRvIGNoZWNrIHRoZSByZXBhaW50IGJlY2F1c2UgaXQgaXMgY292ZXJlZCBi
eSB0aGUgZHluYW1pYyB1cGRhdGUgdGVzdHMgb2YgRkVTcGVjdWxhckxpZ2h0aW5nLgorICAgICAg
ICBXZSBvbmx5IHRlc3Qgd2hhdCBoYXBwZW5zIGlmIHdlIHJlbW92ZSB0aGUgbGlnaHQgc291cmNl
IG9mIHNwZWN1bGFyTGlnaHQuCisKKyAgICAgICAgVGVzdDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LXJlbW92ZS1saWdodFNvdXJjZS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFN1cmZhY2VTY2FsZSk6
CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29uc3Rh
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVjdWxhckV4
cG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6c2V0S2VybmVs
VW5pdExlbmd0aFgpOgorICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRL
ZXJuZWxVbml0TGVuZ3RoWSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVNwZWN1bGFyTGlnaHRpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmls
dGVyOjpwb3N0QXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmxpZ2h0RWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpidWlsZCk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUxpZ2h0RWxl
bWVudDo6ZmluZExpZ2h0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUxpZ2h0RWxl
bWVudDo6ZmluZExpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTGlnaHRFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVMaWdodEVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50OjpsaWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAg
KiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oOgorCiAyMDExLTAyLTIxICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCShyZXZp
c2lvbiA3OTIxMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVTcGVjdWxhckxpZ2h0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsOSArNjQsMTIgQEAg
ZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzdXJmYWNlU2NhbGUoKQogICAgIHJldHVybiBtX3N1
cmZhY2VTY2FsZTsKIH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFN1cmZhY2VTY2Fs
ZShmbG9hdCBzdXJmYWNlU2NhbGUpCitib29sIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3VyZmFj
ZVNjYWxlKGZsb2F0IHN1cmZhY2VTY2FsZSkKIHsKKyAgICBpZiAobV9zdXJmYWNlU2NhbGUgPT0g
c3VyZmFjZVNjYWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgbV9zdXJmYWNlU2NhbGUg
PSBzdXJmYWNlU2NhbGU7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGZsb2F0IEZFU3BlY3VsYXJM
aWdodGluZzo6c3BlY3VsYXJDb25zdGFudCgpIGNvbnN0CkBAIC03NCw5ICs3NywxMiBAQCBmbG9h
dCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNwZWN1bGFyQ29uc3RhCiAgICAgcmV0dXJuIG1fc3BlY3Vs
YXJDb25zdGFudDsKIH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29u
c3RhbnQoZmxvYXQgc3BlY3VsYXJDb25zdGFudCkKK2Jvb2wgRkVTcGVjdWxhckxpZ2h0aW5nOjpz
ZXRTcGVjdWxhckNvbnN0YW50KGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQpCiB7CisgICAgaWYgKG1f
c3BlY3VsYXJDb25zdGFudCA9PSBzcGVjdWxhckNvbnN0YW50KQorICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgbV9zcGVjdWxhckNvbnN0YW50ID0gc3BlY3VsYXJDb25zdGFudDsKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzcGVjdWxhckV4cG9uZW50
KCkgY29uc3QKQEAgLTg0LDkgKzkwLDEyIEBAIGZsb2F0IEZFU3BlY3VsYXJMaWdodGluZzo6c3Bl
Y3VsYXJFeHBvbmUKICAgICByZXR1cm4gbV9zcGVjdWxhckV4cG9uZW50OwogfQogCi12b2lkIEZF
U3BlY3VsYXJMaWdodGluZzo6c2V0U3BlY3VsYXJFeHBvbmVudChmbG9hdCBzcGVjdWxhckV4cG9u
ZW50KQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyRXhwb25lbnQoZmxvYXQg
c3BlY3VsYXJFeHBvbmVudCkKIHsKKyAgICBpZiAobV9zcGVjdWxhckV4cG9uZW50ID09IHNwZWN1
bGFyRXhwb25lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX3NwZWN1bGFyRXhwb25l
bnQgPSBzcGVjdWxhckV4cG9uZW50OworICAgIHJldHVybiB0cnVlOwogfQogCiBmbG9hdCBGRVNw
ZWN1bGFyTGlnaHRpbmc6Omtlcm5lbFVuaXRMZW5ndGhYKCkgY29uc3QKQEAgLTk0LDkgKzEwMywx
MiBAQCBmbG9hdCBGRVNwZWN1bGFyTGlnaHRpbmc6Omtlcm5lbFVuaXRMZW5nCiAgICAgcmV0dXJu
IG1fa2VybmVsVW5pdExlbmd0aFg7CiB9CiAKLXZvaWQgRkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRL
ZXJuZWxVbml0TGVuZ3RoWChmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCkKK2Jvb2wgRkVTcGVjdWxh
ckxpZ2h0aW5nOjpzZXRLZXJuZWxVbml0TGVuZ3RoWChmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCkK
IHsKKyAgICBpZiAobV9rZXJuZWxVbml0TGVuZ3RoWCA9PSBrZXJuZWxVbml0TGVuZ3RoWCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fa2VybmVsVW5pdExlbmd0aFggPSBrZXJuZWxVbml0
TGVuZ3RoWDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogZmxvYXQgRkVTcGVjdWxhckxpZ2h0aW5n
OjprZXJuZWxVbml0TGVuZ3RoWSgpIGNvbnN0CkBAIC0xMDQsOSArMTE2LDEyIEBAIGZsb2F0IEZF
U3BlY3VsYXJMaWdodGluZzo6a2VybmVsVW5pdExlbmcKICAgICByZXR1cm4gbV9rZXJuZWxVbml0
TGVuZ3RoWTsKIH0KIAotdm9pZCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldEtlcm5lbFVuaXRMZW5n
dGhZKGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZKQorYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNl
dEtlcm5lbFVuaXRMZW5ndGhZKGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZKQogeworICAgIGlmICht
X2tlcm5lbFVuaXRMZW5ndGhZID09IGtlcm5lbFVuaXRMZW5ndGhZKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgbV9rZXJuZWxVbml0TGVuZ3RoWSA9IGtlcm5lbFVuaXRMZW5ndGhZOworICAg
IHJldHVybiB0cnVlOwogfQogCiBjb25zdCBMaWdodFNvdXJjZSogRkVTcGVjdWxhckxpZ2h0aW5n
OjpsaWdodFNvdXJjZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgJKHJl
dmlzaW9uIDc5MjEyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVNwZWN1bGFyTGlnaHRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTkgKzM3LDE5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldExpZ2h0aW5nQ29sb3IoY29uc3QgQ29sb3ImKTsKIAogICAg
IGZsb2F0IHN1cmZhY2VTY2FsZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0U3VyZmFjZVNjYWxlKGZs
b2F0KTsKKyAgICBib29sIHNldFN1cmZhY2VTY2FsZShmbG9hdCk7CiAKICAgICBmbG9hdCBzcGVj
dWxhckNvbnN0YW50KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTcGVjdWxhckNvbnN0YW50KGZsb2F0
KTsKKyAgICBib29sIHNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQpOwogCiAgICAgZmxvYXQgc3Bl
Y3VsYXJFeHBvbmVudCgpIGNvbnN0OwotICAgIHZvaWQgc2V0U3BlY3VsYXJFeHBvbmVudChmbG9h
dCk7CisgICAgYm9vbCBzZXRTcGVjdWxhckV4cG9uZW50KGZsb2F0KTsKIAogICAgIGZsb2F0IGtl
cm5lbFVuaXRMZW5ndGhYKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRLZXJuZWxVbml0TGVuZ3RoWChm
bG9hdCk7CisgICAgYm9vbCBzZXRLZXJuZWxVbml0TGVuZ3RoWChmbG9hdCk7CiAKICAgICBmbG9h
dCBrZXJuZWxVbml0TGVuZ3RoWSgpIGNvbnN0OwotICAgIHZvaWQgc2V0S2VybmVsVW5pdExlbmd0
aFkoZmxvYXQpOworICAgIGJvb2wgc2V0S2VybmVsVW5pdExlbmd0aFkoZmxvYXQpOwogCiAgICAg
Y29uc3QgTGlnaHRTb3VyY2UqIGxpZ2h0U291cmNlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMaWdo
dFNvdXJjZShQYXNzUmVmUHRyPExpZ2h0U291cmNlPik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAko
cmV2aXNpb24gNzkyMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU4LDYgKzI1OCw3IEBAIGJv
b2wgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3UKIAogdm9pZCBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlcjo6cG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyT2JqZWN0KiBvYmplY3QsIEdy
YXBoaWNzQ29udGV4dComIGNvbnRleHQsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSwgY29u
c3QgUGF0aCopCiB7CisKICAgICBBU1NFUlQob2JqZWN0KTsKICAgICBBU1NFUlQoY29udGV4dCk7
CiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHJldmlzaW9uIDc5MjEyKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTk3LDcgKzk3LDkgQEAgYm9vbCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnNldEZp
bAogICAgIH0KIAogICAgIExpZ2h0U291cmNlKiBsaWdodFNvdXJjZSA9IGNvbnN0X2Nhc3Q8TGln
aHRTb3VyY2UqPihkaWZmdXNlTGlnaHRpbmctPmxpZ2h0U291cmNlKCkpOwotICAgIGNvbnN0IFNW
R0ZFTGlnaHRFbGVtZW50KiBsaWdodEVsZW1lbnQgPSBmaW5kTGlnaHRFbGVtZW50KCk7CisgICAg
Y29uc3QgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0RWxlbWVudCA9IFNWR0ZFTGlnaHRFbGVtZW50
OjpmaW5kTGlnaHRFbGVtZW50KHRoaXMpOworICAgIEFTU0VSVChsaWdodFNvdXJjZSk7CisgICAg
QVNTRVJUKGxpZ2h0RWxlbWVudCk7CiAKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmF6
aW11dGhBdHRyKQogICAgICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldEF6aW11dGgobGlnaHRF
bGVtZW50LT5hemltdXRoKCkpOwpAQCAtMTQwLDcgKzE0Miw3IEBAIHZvaWQgU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50OjpzdmdBdHQKIAogdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQ6OmxpZ2h0RWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgU1ZHRkVMaWdodEVsZW1lbnQq
IGxpZ2h0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYg
KGZpbmRMaWdodEVsZW1lbnQoKSAhPSBsaWdodEVsZW1lbnQpCisgICAgaWYgKFNWR0ZFTGlnaHRF
bGVtZW50OjpmaW5kTGlnaHRFbGVtZW50KHRoaXMpICE9IGxpZ2h0RWxlbWVudCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gVGhlIGxpZ2h0IGVsZW1lbnQgaGFzIGRpZmZlcmVudCBhdHRyaWJ1
dGUgbmFtZXMuCkBAIC0xOTIsMzkgKzE5NCwyNCBAQCB2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudDo6ZmlsbEF0CiBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0
ZXIqIGZpbHRlcikKIHsKICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0MSA9IGZpbHRlckJ1aWxkZXIt
PmdldEVmZmVjdEJ5SWQoaW4xKCkpOwotICAgIAorCiAgICAgaWYgKCFpbnB1dDEpCiAgICAgICAg
IHJldHVybiAwOwotICAgIAorCisgICAgUmVmUHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSA9
IFNWR0ZFTGlnaHRFbGVtZW50OjpmaW5kTGlnaHQodGhpcyk7CisKKyAgICBpZiAoIWxpZ2h0U291
cmNlKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gZmlsdGVy
U3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7CiAgICAgQ29sb3IgY29sb3IgPSBmaWx0ZXJTdHls
ZS0+c3ZnU3R5bGUoKS0+bGlnaHRpbmdDb2xvcigpOwotICAgIAotICAgIFJlZlB0cjxGaWx0ZXJF
ZmZlY3Q+IGVmZmVjdCA9IEZFRGlmZnVzZUxpZ2h0aW5nOjpjcmVhdGUoZmlsdGVyLCBjb2xvciwg
c3VyZmFjZVNjYWxlKCksIGRpZmZ1c2VDb25zdGFudCgpLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXJuZWxVbml0TGVu
Z3RoWCgpLCBrZXJuZWxVbml0TGVuZ3RoWSgpLCBmaW5kTGlnaHQoKSk7CisKKyAgICBSZWZQdHI8
RmlsdGVyRWZmZWN0PiBlZmZlY3QgPSBGRURpZmZ1c2VMaWdodGluZzo6Y3JlYXRlKGZpbHRlciwg
Y29sb3IsIHN1cmZhY2VTY2FsZSgpLCBkaWZmdXNlQ29uc3RhbnQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXJuZWxV
bml0TGVuZ3RoWCgpLCBrZXJuZWxVbml0TGVuZ3RoWSgpLCBsaWdodFNvdXJjZS5yZWxlYXNlKCkp
OwogICAgIGVmZmVjdC0+aW5wdXRFZmZlY3RzKCkuYXBwZW5kKGlucHV0MSk7CiAgICAgcmV0dXJu
IGVmZmVjdC5yZWxlYXNlKCk7CiB9CiAKLVNWR0ZFTGlnaHRFbGVtZW50KiBTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQoKSBjb25zdAotewotICAgIGZvciAoTm9k
ZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkp
IHsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRGlzdGFudExpZ2h0
VGFnKQotICAgICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVQb2ludExp
Z2h0VGFnKQotICAgICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVTcG90
TGlnaHRUYWcpKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHRkVMaWdodEVs
ZW1lbnQqPihub2RlKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotUGFz
c1JlZlB0cjxMaWdodFNvdXJjZT4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpmaW5kTGln
aHQoKSBjb25zdAotewotICAgIFNWR0ZFTGlnaHRFbGVtZW50KiBsaWdodE5vZGUgPSBmaW5kTGln
aHRFbGVtZW50KCk7Ci0gICAgaWYgKCFsaWdodE5vZGUpCi0gICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiBsaWdodE5vZGUtPmxpZ2h0U291cmNlKCk7Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTVkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5oCShyZXZpc2lvbiA3OTIxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsOSArNTYs
NiBAQCBwcml2YXRlOgogICAgIERFQ0xBUkVfQU5JTUFURURfTlVNQkVSKFN1cmZhY2VTY2FsZSwg
c3VyZmFjZVNjYWxlKQogICAgIERFQ0xBUkVfQU5JTUFURURfTlVNQkVSKEtlcm5lbFVuaXRMZW5n
dGhYLCBrZXJuZWxVbml0TGVuZ3RoWCkKICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJFUihLZXJu
ZWxVbml0TGVuZ3RoWSwga2VybmVsVW5pdExlbmd0aFkpCi0KLSAgICBTVkdGRUxpZ2h0RWxlbWVu
dCogZmluZExpZ2h0RWxlbWVudCgpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+
IGZpbmRMaWdodCgpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3OTIxMikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oIgorI2luY2x1ZGUgIlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdGaWx0ZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTUyLDYgKzUzLDI2
IEBAIFNWR0ZFTGlnaHRFbGVtZW50OjpTVkdGRUxpZ2h0RWxlbWVudChjb24KIHsKIH0KIAorU1ZH
RkVMaWdodEVsZW1lbnQqIFNWR0ZFTGlnaHRFbGVtZW50OjpmaW5kTGlnaHRFbGVtZW50KGNvbnN0
IFNWR0VsZW1lbnQqIHN2Z0VsZW1lbnQpCit7CisgICAgZm9yIChOb2RlKiBub2RlID0gc3ZnRWxl
bWVudC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaXN0YW50TGlnaHRUYWcp
CisgICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVBvaW50TGlnaHRU
YWcpCisgICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVNwb3RMaWdo
dFRhZykpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdGRUxpZ2h0RWxlbWVu
dCo+KG5vZGUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitQYXNzUmVm
UHRyPExpZ2h0U291cmNlPiBTVkdGRUxpZ2h0RWxlbWVudDo6ZmluZExpZ2h0KGNvbnN0IFNWR0Vs
ZW1lbnQqIHN2Z0VsZW1lbnQpCit7CisgICAgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0Tm9kZSA9
IGZpbmRMaWdodEVsZW1lbnQoc3ZnRWxlbWVudCk7CisgICAgaWYgKCFsaWdodE5vZGUpCisgICAg
ICAgIHJldHVybiAwOworICAgIHJldHVybiBsaWdodE5vZGUtPmxpZ2h0U291cmNlKCk7Cit9CisK
IHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cikKIHsKICAgICBjb25zdCBTdHJpbmcmIHZhbHVlID0gYXR0ci0+dmFsdWUoKTsKQEAgLTEw
NSw5ICsxMjYsMTEgQEAgdm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbgog
ICAgICAgICAgICAgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KiBkaWZmdXNlTGlnaHRpbmcg
PSBzdGF0aWNfY2FzdDxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQqPihwYXJlbnQpOwogICAg
ICAgICAgICAgZGlmZnVzZUxpZ2h0aW5nLT5saWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2VkKHRo
aXMsIGF0dHJOYW1lKTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIGlmIChw
YXJlbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlU3BlY3VsYXJMaWdodGluZ1RhZykpIHsKKyAg
ICAgICAgICAgIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQqIHNwZWN1bGFyTGlnaHRpbmcg
PSBzdGF0aWNfY2FzdDxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Kj4ocGFyZW50KTsKKyAg
ICAgICAgICAgIHNwZWN1bGFyTGlnaHRpbmctPmxpZ2h0RWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQo
dGhpcywgYXR0ck5hbWUpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IC8vIEhhbmRsZXIgZm9yIFNwZWN1bGFyTGlnaHRpbmcgaGFzIG5vdCBpbXBsZW1lbnRlZCB5ZXQu
Ci0gICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3Vy
Y2VJbnZhbGlkYXRpb24ocmVuZGVyZXIpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDc5MjEyKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHRkVMaWdodEVsZW1lbnQgOiBwdWJsaWMg
U1ZHRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291cmNl
PiBsaWdodFNvdXJjZSgpIGNvbnN0ID0gMDsKKyAgICBzdGF0aWMgU1ZHRkVMaWdodEVsZW1lbnQq
IGZpbmRMaWdodEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPExpZ2h0U291cmNlPiBmaW5kTGlnaHQoY29uc3QgU1ZHRWxlbWVudCopOwogCiBwcm90ZWN0
ZWQ6CiAgICAgU1ZHRkVMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiA3OTIxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksMTgg
Kzg5LDY5IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6cGFyc2UKICAgICAg
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyKTsKIH0KIAorYm9vbCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQoreworICAgIEZFU3BlY3VsYXJMaWdodGluZyogc3BlY3VsYXJMaWdo
dGluZyA9IHN0YXRpY19jYXN0PEZFU3BlY3VsYXJMaWdodGluZyo+KGVmZmVjdCk7CisgICAgaWYg
KGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyKQorICAgICAgICByZXR1cm4g
c3BlY3VsYXJMaWdodGluZy0+c2V0U3VyZmFjZVNjYWxlKHN1cmZhY2VTY2FsZSgpKTsKKyAgICBp
ZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyKQorICAgICAgICBy
ZXR1cm4gc3BlY3VsYXJMaWdodGluZy0+c2V0U3BlY3VsYXJDb25zdGFudChzcGVjdWxhckNvbnN0
YW50KCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0
dHIpCisgICAgICAgIHJldHVybiBzcGVjdWxhckxpZ2h0aW5nLT5zZXRTcGVjdWxhckV4cG9uZW50
KHNwZWN1bGFyRXhwb25lbnQoKSk7CisKKyAgICBMaWdodFNvdXJjZSogbGlnaHRTb3VyY2UgPSBj
b25zdF9jYXN0PExpZ2h0U291cmNlKj4oc3BlY3VsYXJMaWdodGluZy0+bGlnaHRTb3VyY2UoKSk7
CisgICAgY29uc3QgU1ZHRkVMaWdodEVsZW1lbnQqIGxpZ2h0RWxlbWVudCA9IFNWR0ZFTGlnaHRF
bGVtZW50OjpmaW5kTGlnaHRFbGVtZW50KHRoaXMpOworICAgIEFTU0VSVChsaWdodFNvdXJjZSk7
CisgICAgQVNTRVJUKGxpZ2h0RWxlbWVudCk7CisKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OmF6aW11dGhBdHRyKQorICAgICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldEF6aW11dGgo
bGlnaHRFbGVtZW50LT5hemltdXRoKCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
ZWxldmF0aW9uQXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRFbGV2YXRpb24o
bGlnaHRFbGVtZW50LT5lbGV2YXRpb24oKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVz
Ojp4QXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRYKGxpZ2h0RWxlbWVudC0+
eCgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyKQorICAgICAgICByZXR1
cm4gbGlnaHRTb3VyY2UtPnNldFkobGlnaHRFbGVtZW50LT55KCkpOworICAgIGlmIChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6ekF0dHIpCisgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0Wihs
aWdodEVsZW1lbnQtPnooKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpwb2ludHNB
dFhBdHRyKQorICAgICAgICByZXR1cm4gbGlnaHRTb3VyY2UtPnNldFBvaW50c0F0WChsaWdodEVs
ZW1lbnQtPnBvaW50c0F0WCgpKTsKKyAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50
c0F0WUF0dHIpCisgICAgICAgIHJldHVybiBsaWdodFNvdXJjZS0+c2V0UG9pbnRzQXRZKGxpZ2h0
RWxlbWVudC0+cG9pbnRzQXRZKCkpOworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9p
bnRzQXRaQXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRQb2ludHNBdFoobGln
aHRFbGVtZW50LT5wb2ludHNBdFooKSk7CisgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpz
cGVjdWxhckV4cG9uZW50QXR0cikKKyAgICAgICAgcmV0dXJuIGxpZ2h0U291cmNlLT5zZXRTcGVj
dWxhckV4cG9uZW50KGxpZ2h0RWxlbWVudC0+c3BlY3VsYXJFeHBvbmVudCgpKTsKKyAgICBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmxpbWl0aW5nQ29uZUFuZ2xlQXR0cikKKyAgICAgICAgcmV0
dXJuIGxpZ2h0U291cmNlLT5zZXRMaW1pdGluZ0NvbmVBbmdsZShsaWdodEVsZW1lbnQtPmxpbWl0
aW5nQ29uZUFuZ2xlKCkpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJO
YW1lKTsKIAotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyCi0gICAgICAgIHx8
IGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyCisgICAgaWYgKGF0dHJOYW1l
ID09IFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyCiAgICAgICAgIHx8IGF0dHJOYW1lID09IFNW
R05hbWVzOjpzcGVjdWxhckNvbnN0YW50QXR0cgogICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIKICAgICAgICAgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKQorICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKKworICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQog
ICAgICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKK3ZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudDo6bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVu
dCogbGlnaHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKK3sKKyAgICBp
ZiAoU1ZHRkVMaWdodEVsZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQodGhpcykgIT0gbGlnaHRFbGVt
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGUgbGlnaHQgZWxlbWVudCBoYXMgZGlm
ZmVyZW50IGF0dHJpYnV0ZSBuYW1lcyBzbyBhdHRyTmFtZSBjYW4gaWRlbnRpZnkgdGhlIHJlcXVl
c3RlZCBhdHRyaWJ1dGUuCisgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7
Cit9CisKIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6c3luY2hyb25pemVQcm9w
ZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN5bmNocm9uaXplUHJvcGVydHkoYXR0ck5hbWUpOwpA
QCAtMTQ3LDMzICsxOTgsMjQgQEAgdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojpm
aWxsQQogICAgIGF0dHJpYnV0ZVRvUHJvcGVydHlUeXBlTWFwLnNldChTVkdOYW1lczo6a2VybmVs
VW5pdExlbmd0aEF0dHIsIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwogfQogCi1QYXNz
UmVmUHRyPExpZ2h0U291cmNlPiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpmaW5kTGln
aHRzKCkgY29uc3QKLXsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdENoaWxkKCk7IG5vZGU7
IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKFNWR05hbWVzOjpmZURpc3RhbnRMaWdodFRhZykKLSAgICAgICAgICAgIHx8IG5vZGUtPmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OmZlUG9pbnRMaWdodFRhZykKLSAgICAgICAgICAgIHx8IG5vZGUt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlU3BvdExpZ2h0VGFnKSkgewotICAgICAgICAgICAgU1ZH
RkVMaWdodEVsZW1lbnQqIGxpZ2h0Tm9kZSA9IHN0YXRpY19jYXN0PFNWR0ZFTGlnaHRFbGVtZW50
Kj4obm9kZSk7IAotICAgICAgICAgICAgcmV0dXJuIGxpZ2h0Tm9kZS0+bGlnaHRTb3VyY2UoKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiBQYXNzUmVmUHRyPEZpbHRl
ckVmZmVjdD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyKiBmaWx0ZXIpCiB7CiAgICAgRmlsdGVyRWZmZWN0
KiBpbnB1dDEgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKLSAgICAKKwog
ICAgIGlmICghaW5wdXQxKQogICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IGZpbHRlclN0eWxlID0gc3R5bGVGb3JSZW5kZXJlcigpOyAgICAKLSAgICAKKwor
ICAgIFJlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UgPSBTVkdGRUxpZ2h0RWxlbWVudDo6
ZmluZExpZ2h0KHRoaXMpOworCisgICAgaWYgKCFsaWdodFNvdXJjZSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGZpbHRlclN0eWxlID0gc3R5bGVGb3JSZW5k
ZXJlcigpOworCiAgICAgQ29sb3IgY29sb3IgPSBmaWx0ZXJTdHlsZS0+c3ZnU3R5bGUoKS0+bGln
aHRpbmdDb2xvcigpOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gZWZmZWN0ID0gRkVTcGVj
dWxhckxpZ2h0aW5nOjpjcmVhdGUoZmlsdGVyLCBjb2xvciwgc3VyZmFjZVNjYWxlKCksIHNwZWN1
bGFyQ29uc3RhbnQoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhckV4cG9uZW50KCksIGtlcm5lbFVuaXRMZW5ndGhYKCksIGtlcm5lbFVuaXRMZW5n
dGhZKCksIGZpbmRMaWdodHMoKSk7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gZWZmZWN0ID0g
RkVTcGVjdWxhckxpZ2h0aW5nOjpjcmVhdGUoZmlsdGVyLCBjb2xvciwgc3VyZmFjZVNjYWxlKCks
IHNwZWN1bGFyQ29uc3RhbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNwZWN1bGFyRXhwb25lbnQoKSwga2VybmVsVW5pdExlbmd0aFgoKSwga2VybmVsVW5p
dExlbmd0aFkoKSwgbGlnaHRTb3VyY2UucmVsZWFzZSgpKTsKICAgICBlZmZlY3QtPmlucHV0RWZm
ZWN0cygpLmFwcGVuZChpbnB1dDEpOwogICAgIHJldHVybiBlZmZlY3QucmVsZWFzZSgpOwogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5oCShyZXZpc2lvbiA3OTIxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNp
ZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoRklMVEVSUykKICNpbmNsdWRlICJGRVNwZWN1bGFyTGln
aHRpbmcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgorI2luY2x1ZGUgIlNWR0ZF
TGlnaHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDExICszMywxMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDogcHVi
bGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZvaWQgbGlnaHRFbGVtZW50QXR0
cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0RWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKIAogcHJpdmF0ZToKICAgICBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0RmlsdGVy
RWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBmaWxsQXR0cmlidXRlVG9Qcm9wZXJ0eVR5cGVNYXAoKTsK
QEAgLTUzLDggKzU2LDYgQEAgcHJpdmF0ZToKICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJFUihT
dXJmYWNlU2NhbGUsIHN1cmZhY2VTY2FsZSkKICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJFUihL
ZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFgpCiAgICAgREVDTEFSRV9BTklNQVRF
RF9OVU1CRVIoS2VybmVsVW5pdExlbmd0aFksIGtlcm5lbFVuaXRMZW5ndGhZKQotCi0gICAgUGFz
c1JlZlB0cjxMaWdodFNvdXJjZT4gZmluZExpZ2h0cygpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzkzMDMpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wMi0yMiAgUmVu
YXRhIEhvZG92YW4gIDxyZW5pQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCBjaGFuZ2Vz
IGRvZXNuJ3QgcmVxdWlyZSByZWxheW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU0NDUxCisKKyAgICAgICAgVGVzdCB3aGF0IGhhcHBlbnMgaWYg
d2UgcmVtb3ZlIHRoZSBsaWdodCBzb3VyY2Ugb2Ygc3BlY3VsYXJMaWdodC4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LXJlbW92ZS1saWdodFNvdXJjZS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1v
dmUtbGlnaHRTb3VyY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9keW5hbWljLXVwZGF0ZXMvc2NyaXB0LXRlc3Rz
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKwogMjAxMS0wMi0yMiBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgogICAgICAgICAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0X2V4
cGVjdGF0aW9uLnR4dCB1cGRhdGUuIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGln
aHRTb3VyY2UtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC1yZW1vdmUtbGlnaHRTb3VyY2UtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50LXJlbW92ZS1saWdodFNvdXJjZS1leHBlY3RlZC5jaGVja3N1bQkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSBAQAorZjI0ZGUwYzM1NDQzYmNmMGQ1OWIwMzg2ZTgxZDMxNTkK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRTb3VyY2UtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitTVkcgMS4xIGR5bmFtaWMgdXBkYXRl
IHRlc3RzCisKK1Rlc3RzIGR5bmFtaWMgdXBkYXRlcyBvZiB0aGUgU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudCBvYmplY3Qgd2hlbiByZW1vdmluZyBpdHMgbGlnaHQgc291cmNlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRTb3VyY2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHVGVz
dENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEg
ZHluYW1pYyB1cGRhdGUgdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRTb3VyY2UuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9zY3Jp
cHQtdGVzdHMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRTb3VyY2Uu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9zY3JpcHQt
dGVzdHMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRTb3VyY2UuanMJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3NjcmlwdC10
ZXN0cy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LXJlbW92ZS1saWdodFNvdXJjZS5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MyBAQAorLy8gW05hbWVdIFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlLmpzCisvLyBbRXhwZWN0ZWQgcmVuZGVyaW5n
IHJlc3VsdF0gQSBzaGluaW5nIGNpcmNsZSAtIGFuZCBhIFBBU1MgbWVzc2FnZQorCitkZXNjcmlw
dGlvbigiVGVzdHMgZHluYW1pYyB1cGRhdGVzIG9mIHRoZSBTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50IG9iamVjdCB3aGVuIHJlbW92aW5nIGl0cyBsaWdodCBzb3VyY2UuIikKK2NyZWF0ZVNW
R1Rlc3RDYXNlKCk7CisKK3ZhciBkaXN0YW50RWxlbWVudCA9IGNyZWF0ZVNWR0VsZW1lbnQoImZl
RGlzdGFudExpZ2h0Iik7CitkaXN0YW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoImF6aW11dGgiLCAi
NDUiKTsKK2Rpc3RhbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgiZWxldmF0aW9uIiwgIjQ1Iik7CisK
K3ZhciBzcGVjdWxhckVsZW1lbnQgPSBjcmVhdGVTVkdFbGVtZW50KCJmZVNwZWN1bGFyTGlnaHRp
bmciKTsKK3NwZWN1bGFyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImluIiwgIlNvdXJjZUFscGhhIik7
CitzcGVjdWxhckVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcGVjdWxhckNvbnN0YW50IiwgIjEiKTsK
K3NwZWN1bGFyRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNwZWN1bGFyRXhwb25lbnQiLCAiMSIpOwor
c3BlY3VsYXJFbGVtZW50LnNldEF0dHJpYnV0ZSgic3VyZmFjZVNjYWxlIiwgIjEwIik7CitzcGVj
dWxhckVsZW1lbnQuc2V0QXR0cmlidXRlKCJsaWdodGluZy1jb2xvciIsICJncmVlbnllbGxvdyIp
Oworc3BlY3VsYXJFbGVtZW50LmFwcGVuZENoaWxkKGRpc3RhbnRFbGVtZW50KTsKKwordmFyIGZp
bHRlckVsZW1lbnQgPSBjcmVhdGVTVkdFbGVtZW50KCJmaWx0ZXIiKTsKK2ZpbHRlckVsZW1lbnQu
c2V0QXR0cmlidXRlKCJpZCIsICJteUZpbHRlciIpOworZmlsdGVyRWxlbWVudC5zZXRBdHRyaWJ1
dGUoImZpbHRlclVuaXRzIiwgIm9iamVjdEJvdW5kaW5nQm94Iik7CitmaWx0ZXJFbGVtZW50LnNl
dEF0dHJpYnV0ZSgieCIsICIwJSIpOworZmlsdGVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoInkiLCAi
MCUiKTsKK2ZpbHRlckVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAlIik7CitmaWx0
ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCUiKTsKK2ZpbHRlckVsZW1lbnQu
YXBwZW5kQ2hpbGQoc3BlY3VsYXJFbGVtZW50KTsKKwordmFyIGRlZnNFbGVtZW50ID0gY3JlYXRl
U1ZHRWxlbWVudCgiZGVmcyIpOworZGVmc0VsZW1lbnQuYXBwZW5kQ2hpbGQoZmlsdGVyRWxlbWVu
dCk7CisKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKGRlZnNFbGVtZW50KTsKK3Jvb3RTVkdF
bGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMjAwIik7Cityb290U1ZHRWxlbWVudC5zZXRB
dHRyaWJ1dGUoImhlaWdodCIsICIyMDAiKTsKKwordmFyIGdFbGVtZW50ID0gY3JlYXRlU1ZHRWxl
bWVudCgiZyIpOworZ0VsZW1lbnQuc2V0QXR0cmlidXRlKCJmaWxsIiwgImJsYWNrIik7CisKK3Zh
ciBiYWNrZ3JvdW5kRWxlbWVudCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK2JhY2tncm91
bmRFbGVtZW50LnNldEF0dHJpYnV0ZSgieCIsIDYwKTsKK2JhY2tncm91bmRFbGVtZW50LnNldEF0
dHJpYnV0ZSgieSIsIDIwKTsKK2JhY2tncm91bmRFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgi
LCAxMDApOworYmFja2dyb3VuZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCA2MCk7Citn
RWxlbWVudC5hcHBlbmRDaGlsZChiYWNrZ3JvdW5kRWxlbWVudCk7Cityb290U1ZHRWxlbWVudC5h
cHBlbmRDaGlsZChnRWxlbWVudCk7CisKK3ZhciByZWN0RWxlbWVudCA9IGNyZWF0ZVNWR0VsZW1l
bnQoImltYWdlIik7CityZWN0RWxlbWVudC5zZXRBdHRyaWJ1dGUoIngiLCA2MCk7CityZWN0RWxl
bWVudC5zZXRBdHRyaWJ1dGUoInkiLCAyMCk7CityZWN0RWxlbWVudC5zZXRBdHRyaWJ1dGUoIndp
ZHRoIiwgMTAwKTsKK3JlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgNjApOworcmVj
dEVsZW1lbnQuc2V0QXR0cmlidXRlTlMoeGxpbmtOUywgInhsaW5rOmhyZWYiLCAiLi4vVzNDLVNW
Ry0xLjEvcmVzb3VyY2VzL2J1bXBNYXAyLnBuZyIpOworcmVjdEVsZW1lbnQuc2V0QXR0cmlidXRl
KCJmaWx0ZXIiLCAidXJsKCNteUZpbHRlcikiKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxk
KHJlY3RFbGVtZW50KTsKKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgc3BlY3VsYXJF
bGVtZW50LnJlbW92ZUNoaWxkKGRpc3RhbnRFbGVtZW50KTsKKworICAgIGNvbXBsZXRlVGVzdCgp
OworfQorCitzdGFydFRlc3Qocm9vdFNWR0VsZW1lbnQsIDEwMCwgMTAwKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LXJlbW92ZS1saWdo
dFNvdXJjZS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJr
ZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRT
b3VyY2UtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFK
WUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2pa
dXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1Rp
MFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2
ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZu
MkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJ
MytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxs
TmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRq
Wjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlW
dkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFB
cTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNV
RjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTRE
dkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysv
RXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9X
cEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oy
VmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9x
UDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3
RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNs
CjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJX
Z1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZXlkQmJ3c3RkbUhjM0dIaTd1N0ZIZDNMM3k0
dFVnTHhRcEZXd29VdCtMdUxzVmIzSW9VZDNkM2g0czd6UGYrYzhrdwpPMmRzOTh3dWU4NTVjbi9u
anNUZVBNbk01azNlWkFaRjVod09BaENBQUFRZ0FBRUlRQUFDRUlCQUJ3Z00wNEU4eUFJQ0VJQUFC
Q0FBCkFRaEFBQUlRZ0lBbmdBSkNRNEFBQkNBQUFRaEFBQUlRZ0FBRU9rWUFCYVJqcU1rSUFoQ0FB
QVFnQUFFSVFBQUNFRUFCb1ExQUFBSVEKZ0FBRUlBQUJDRUFBQWgwamdBTFNNZFJrQkFFSVFBQUNF
SUFBQkNBQUFRaWdnTkFHSUFBQkNFQUFBaENBQUFRZ0FJR09FVUFCNlJocQpNb0lBQkNBQUFRaEFB
QUlRZ0FBRVVFQm9BeENBQUFRZ0FBRUlRQUFDRUlCQXh3aWdnSFFNTlJsQkFBSVFnQUFFSUFBQkNF
QUFBaWdnCnRBRUlRQUFDRUlBQUJDQUFBUWhBb0dNRVVFQTZocHFNSUFBQkNFQUFBaENBQUFRZ0FB
RVVFTm9BQkNBQUFRaEFBQUlRZ0FBRUlOQXgKQWlnZ0hVTk5SaENBQUFRZ0FBRUlRQUFDRUlCQXJ4
U1FUejc1eEwzeHhoc3VpcUllSkhYLzdiZmY3bkcvRzI3ODlOTlAzU0FHTWtBZwprOEMzMzM2YmVa
K2JFSUFBQkNBQUFRaEFvRDhRR0s3WlF0eHp6ejF1bjMzMmNVOCsrYVNUQWpMdXVPTzZqejc2eUUw
MzNYUnVsbGxtCmNTdXV1S0tiYWFhWjNLYWJidXJXVzI4OTk3ZS8vYzFuY2RWVlY3bkxMcnVzVW5h
S00rT01NOFpoNzd6elRuZmFhYWZGMThtVERUYlkKd0MyMzNITEpXdzNubjM3NnFmdlBmLzdqcnJu
bUd2Znd3dys3OTk1N3ozM3p6VGRleGpubW1NUHBiOEVGRjNRTExMQ0FHelJva0ZlbwpwcGxtR3Zm
Wlo1KzVrVVlhcVNHdFZpK2tvRjEzM1hYdTZLT1BkaU9PT0tLNzhzb3JXMDBxTTE2NzAxZW14eDkv
dkh2Z2dRY3k4OTl6Cnp6MmRtT0Y2UitEUlJ4OTFPKys4czd2ampqdmNHbXVzNFk0NjZpZzN3UVFU
OUM3UmZoYWJkdGpQS3BUaVFBQUNFSURBd0NSZ25kZEsKem1ZTklsTThvbUdISFRheVRsRjB4UlZY
Ukxvblo0cElkUG5sbDBjVFR6eXhwa0xpdjRNT09paE8rN1hYWG90MjMzMzNhTXd4eDR6OQprMkYx
Lzh3eno0eHV2ZlhXNlBQUFA0L2o2ZVRERHorTWJyamhodWpBQXcrTTQ0NDMzbmcrdmJmZWVxc2hi
TGo0L3Z2dm95T1BQRElhClo1eHhmQnpKYlVwUmRNNDU1MFN2dlBKS2RQZmRkMGVISEhKSVpNcUg5
NTk4OHNtalRUYlpKREpGeWw5Ly9mWFhJYW1XajZiRVJNY2MKYzB5Y3BzcTc4c29ydDV4ZU9tSzcw
MC9tSjJaWFgzMTF6Q3RaZC9mZWUyOHlLT2N0RWxoaGhSWGk5aTIrZSt5eFI0c3A5ZDlvdjJZNwov
UExMTDZNUFB2amdWNFhiRFRLa0FYU2pUR2tadVlZQUJDQUFnZTRpSVBPcFN1NnNzODZLTzBkU0Jy
S2NmcHdYV1dTUk9GeFNBUW5oClR6bmxsTmcvMlluZGV1dXRRNURDNDJLTExSYlpURVYwLy8zMzU0
YVRRclRNTXNzMDVIUEdHV2RraHYveHh4K2pYWGZkdFNHczVPcU4KQXZMQ0N5OUUyMjIzWFRUR0dH
UDBTTGNPQmFUZDZXZUMrdm5tcFpkZTJxTk1OaXRXRkFXL0NnUisrT0dIYU5SUlIyMWdxMmNKbDAy
ZwowKzFRNzRubGwxOCsybWFiYmJJRjZzRGRicEFoWGN4dWxDa3RJOWNRZ0FBRUlOQjlCQ3F0QVpF
WmszWFNyVi91bkhXcTNiTExMdXZQCjAvL0pIT3ZpaXkvMlpsbHB2M0Q5eHovKzBjMDExMXpoTWo0
KzhjUVQ4WG5SaVV5alZsOTlkVGZ2dlBObUJ2dnV1Ky9ja2tzdTZmNzcKMy8vRy92dnR0NTgzQ1l0
dkpFNkdHV1lZWnpNaDdyenp6bk02NzYxYmUrMjF2ZW5aVjE5OTVVWVpaWlRlSnRjamZydlQ3NUZo
NnNaWQpZNDJWdXVPODZWcVBtOXhvaW9ETjBQbDJrNHkwNFlZYkppODVUeERvZER2Y2Q5OTluUTI4
SkNUby9HazN5SkF1ZFRmS2xKYVJhd2hBCkFBSVE2RDRDbFhyYzExNTdyWHYvL2ZlOTlGb2dXN1NJ
ZTZLSkpuTEhIbnRzYmttMXp1SXZmL2xMRDMvWnZULzk5Tk05N2lkdnZQenkKeTA1MjhqWmJrcnpk
Y0g3d3dRZTdSeDU1Skw0bkpXREhIWGVNci9OTzFObjc2MS8vbXVkZCtmNWhoeDNtSG56d1FYZnFx
YWU2aXk2NgpxRWM4bGI4M3J0M3A5MFkyNHZhT2dCUmhLY3VMTDc2NE8rbWtrM0tWNXQ3bFF1eG1D
VWp4VUwzOG1xNGJaRWlYdnh0bFNzdklOUVFnCkFBRUlkQ2VCU2dxSU92M0JTUUg1OTcvL0hTNHpq
eHFsdC9VZ21YNjZ1ZTY2NjJZdXJqM3h4Qk56NDhqRDFvaTRxYWFheWkyOTlOS1oKNFo1NzdqbG42
MFFhL016a3FmSk1oQmJYenp6enpBM3htNzJZWW9vcDRpakpoZlRocGsyQ2hkT1dqdTFPdnlXaGlG
UUxBVnV2NUd6ZApoN3Z0dHR2Y24vNzBKNzloUVMwSmswakxCTFRaaGphNktCcDBhVG54aWhHN1FZ
YTBxTjBvVTFwR3JpRUFBUWhBb0hzSlZGSkFiRzFIClF3azIyMnd6cnd3MDNFeGN5SnhFTzFuWnd1
N0UzVjlPUnhoaEJOL0IrdVhPMExOenp6M1gyWUxHOUcxL2JiYkd6dGFoK0ZIaHJGa0UKZGV5MzJH
SUxsOTdDZEsyMTFzcE1MK3ZtOE1NUDMwT0J5UXBYOVo3WjlQY0ltaVY3ajBBVmI3UTdmWWtobnJZ
K29hSkVuUXVtRHFGdApWdEIwaGlxTGJXcFFXNGRTNldrM3VDSW5zOEF2dnZpaUtFaXYvR3pEQmZm
T08rOWtib2ZkcTRUYkVGbnNiWDFWMHluWDFRNmJxZituCm5ucktEM1o4L1BISFRjc2JJZ3daTWlT
Y3RuVDhOV1NRbVd2Nm1VKytsM3NqVTFuYUxVRWlFZ1FnQUFFSTlEa0NsUlFRYmJHYmRPcjQKU1Ft
eEJlSHVycnZ1U25yRjUzLys4NS85eUdGOEkzV3k1WlpiT25YNGswNXJUUzY0NElMa3Jmajh4aHR2
OU44VnNaMnE0bnZKRTF1WQo3VzYvL2Zia0xYOCs5OXh6OTdoWGRHTzExVlp6dG50V0Q5bUs0dlJI
UDVuUkxiend3czUySi9OcmVyUXRyTFpETG5Qbm4zKytzdzBBCmN2K2tSTXBsaGJ2NTVwc3o3eXU5
NDQ0N3pzZFRtTi8vL3ZkdXdna245T3VSdEUydGxOMmlEdjdqanovdUZkN0pKcHZNalQ3NjZNNTIK
VVBPekM3cFdPODRxVjVaOFNUbHV1ZVVXWjR2RS9lemE0TUdEbmRZa3FNMG5sWkhycjcvZWIvRXNN
MEN0bmRKV3hhZWZmbm9QNVNjdgpyd01PT01DWE9ldS9sMTU2eWYzaEQzOXdjODQ1cHh0Ly9QR2Ra
c1pHSG5sa1p3dWxuZTBrbHhVbDgxNWUzclpaaEErdkxhdno2bE5tCms4RnAxaVlyM0E0NzdPQTBl
R0FiVW5nNXhWNHNacDk5ZG5mRUVVZVVLazJ0dHNNZ2w0NnQxTCsybk5iN0xaaWVodlJzOTcrNG5J
Y2UKZW1pNDNYRFVPMHhiZzJ0R2E5SkpKM1VhS05DVzVKbzFhTVoxVWdadHBhNnQwMlZDcTJkZU1t
czJXTStIWnVWVVgzS3R5RlExN1diWQpFQllDRUlBQUJQbzRnU3JyNHJYamxCVXo5MitsbFZZcTNK
VXFMdzh6YmVpUnBpMVF6d3h1SGVCSTI1VG11YXhkY1NTektUVjVVZHArCjN6ckZQY3EzeWlxcjFK
WnZPOUxYN2wrMkhxWkJidXUwUjlaNWptem1LckpOQkJyOHhEaTVEYTkySU50bGwxMTZoTEVPVFdR
S1lxUXQKTytWMFZEeWxyUzJTdFV1WkxkeVBiTVE0c3UrbDlJaS83YmJiUnJaUmdBK2IxUmF0ZzVm
SjFjejYvSzVweXY5Ly8vdGZwTzJadGMxegpja3RucGZmUGYvNnpJYjdrT09HRUV6TGx5TG9mWkxJ
Wk41K09mY09qUjl3UXh0WVROT1JsSSt4K2krdmdINDU1WlRLbHdYTlRPT3ZnCmU1WTJBeExaTjJa
OG5qYkxGdGthcElZODhpNlV0MzNIcFllczlqMlNPSXEyME41ODg4MTdoTkV6RjV6cVRuTFp0M01h
d21rbkwrMHkKcDNxZWI3NzVJaHQwYVBEWDg2QjJuSGE5YlljaHZWYnJYMlZUWGFaM3N0TnpvUHY2
TTZVNFpPT1BhdnZycjcrK0w1L0txZmFtcmNxMQp2YmpxYXV5eHg0NXNzNDJHT0VVWG5aSkJiY2NV
ZWkvakVrc3NFV2xYTzlXSmZUdkpQL2VTM1JSY0wycXpNaldUZGhFTC9DQUFBUWhBCm9IOFJxTHdO
cnpwRG9XT1VkNVNDWU5QemxRbXBBNXFWMW4zMzNkZVFobzFDK281THNzUFRFTUF1OXRwcnJ4NXBx
Y1A4YTdwMktBakoKOHJRamZWdDcwTURSWm9SOGgxMGRLZHRaTE82b0pPc3R2UTJ2T3ZuMk1jcUdk
TlFCVlNjMTdlYVpaNTVJaW1qYTZic3N5VHltbjM3NgphTnBwcDQxc0JpWFN0eUQwelpha3Y4NmZl
ZWFaaG1TU2lyTTZqc244emNRa3NwbUxPQTExMm0xV295RytMc0ozWVVKZWttR0dHV2J3CjM2VlJm
aHR0dEZHY1JnaXo2cXFyUnJQTk5wdi81b3lOR0VlMmExeERHSFZPMzMzMzNZYThKRSs2czJ0cnBS
ckM2RUxmbFFuNTJIcW8KeU15NzRqRGhtemJ5dDltUXlHWXZZcitpRXpOdjh1RkR1anJ1dE5OT0RW
RnNnNGc0M3hEdWtrc3VhUWlqQzl1QnJpR2M2dDFtMHVMdgpaNmhEYXJ2bE5ZVFplKys5ZTZSVFJ6
dXNvLzVublhYV0JsbWxDT2U1ZGRaWkp3NXJzM1FOd2FhY2NrcnZaek1Na2MxZU5maVZYYlJiCkJp
bFRvVTdUNzk0WFgzelJEendFQlNUSVdsV21WdElPZVhDRUFBUWdBSUgrUzZDU0NaYjlPUGxkbmZT
Vjh5SW5reE9aUEZVeHJWQTYKODg4L3Y3TlIwUjVKcGhlajI4Y0R2WW5MYjMvNzJ4NWh3NDBzOHdh
WmUrQ3FFNUJaajB5RWd0TzJ4TnBWYkxUUlJ2TmI3V3J4Ly83Nwo3eCs4YzQvRERUZWMyMjIzM1Jy
OFpiWjMyV1dYTmR6VDJpTHRXS1lGMTJtWDNzUkFaaHhxWHh0dnZMR3p6cHl6VG1zNmlqT0ZvT0Zl
CmN0dFVsUzI1TzV2V0tjbGtLRGg3eEROTmx5YVpaSklReEIrMUZrR21Sekt4MFNZRHBoQTArT3ZD
T3RuT09uTHVkNy83blRNRnkybXIKMHFUVG1vMzB0dE9TUjZaVVNaZGVMNlIwN1dPZWNSQTlPMGt6
eHVTMnoxcG5ZVXBPSExib1JHdXlaQzZVZE9tOHM5WnpwY01vZnBxWAp6Sy9zSTZYeDF0d3luZFBY
M3BQdThNTVA5K3R5d3IyNjJtRWQ5UjlrS2p2S05GQmJrQWNuODhXa20yT09PZnlsNnRCbW5KSmV0
WjIzCklvUHF4Mlk2WWhsZWZmWFYrRnduTWh2Y2Z2dnRHKzVWdldobjJsVmxJQndFSUFBQkNIUW5n
Y29LaURxaFYxNTVwZjhlU0xMVGt5NlcKYk1adDlOUi9xME9kdWpKbkgrenJFVVRiMXlZWGI2cFRy
TTVjVWI1dnZ2bG1qM1NTSGJJZW50em9RVURLUlhMeHFaVEo5RTVlNnZ5bgpYVlpIMUV4UmV1eUVk
dHBwcHpWRVZUM2J5S3BiZE5GRkcrNW5YV2l0Z3pwRHdjbTJYcDMycEROVG9lU2xTNjlkU3N1Wjdu
UW5kM3RyClNDaHhJVnY0cEdLcjlSK3ltMDg2S2RaYWp4R2N6WWFFMC9ob3N6anhlZFVUYlJPZFhI
aWYzckhOekpuaXBLUWdpZTJ2N2FTNHBCVXIKbTZscEVFdGxTdTZzVjFjN2JFZjlOd2lldUVnckZX
bjIra1pTY1BwR1VaVjNZd2hmOWRpS0RHKy8vWGJEcGdBMncrTzAzaTdwdEFaRQo2NDJhZGUxTXUx
bFpDQThCQ0VBQUF0MUZvTElDSXJFMXNxMXZGV2kyUWR2YkZqa3BLMkVoYTFFNGJkbXJVZEdrMCto
dFdLeHM1ajErClpMdnNCOUJNZEpKSitIUHR1SlBuekxUQWwwTmxLZnZUTGtZRHdZbDEwcG1wVWZL
eXFYTzFsZlRNaHRuRU8yMFdFSndXNjJwR0k2MFkKQlAraW81U1B0RUtxMlltazA4SjVMYXlWb21I
cmxFbzdVVW1sTjVsTzJia1c3Q1pkdWp4cGY0VnRaVnRYUFZOSk44c3NzeVF2L2ZkMQp0Qmo4cHB0
dThyTkZEWjVkZEpGV2FpVmFVaUdycXgxMnF2NGx2eGE2SjUwR2JEUVlFLzZTQ3FrV3RqLzIyR1BK
NExXY3R5S0RsR2ZOCmdBV25XVWx0WktDL3NNbUFOZzFJS3pjaGZOR3huV2tYNVlzZkJDQUFBUWgw
UDRHbUZKQlFISFgycjc3NmFyL3JWTjQzT1JSV1gwOVAKanFpSCtNbWpmdnkwSTFiYTZVTnNHaVhV
N0lkR1ROT2p2ZW53WnBPY3Z1Vm5VZktVQjVsNTZZT0kyc2xJSTlSWmZ4cVoxeTQrclhaTQpld2pV
eFRmRU9tMStrZlcxNldhS1lBdVh2ZEthakJOTXZQUlJTWmtwYVVlcmRqa3BLTGE0M1p2M3lNekVG
Z0g3MFY2TnR1dmJEcmFvCnZWMVoxNTd1VzIrOTViUkxYTktsWnhia3A0OFl5clFzclFRbDQvM2E1
K3JRcGwxUVFPcHNoNTJxZjlWTmNwdGFsVTN2RlNrZDRTOXAKL2lmL3RMbWc3dlhHdFNxREJncTAw
MVhhYVJaRXU0QkpFY2t5YjAySHo3cHVaOXBaK1hFUEFoQ0FBQVQ2RG9GS0NvanQrdE5nK2hHSwpw
dzY2ekFtMDdXZldXZzd0K1Y3bGgxWWo1Y2xST0tYLy9QUFBlNU12bWVtVXpYNG9mSG8wV1BmazB0
OHdHWHJYT2RtZFMzWjlmVjFiCnVhYWRsQ3gxaWpTYW5PV2ZEdC9YcjlXQlNjOGdKRWR0V3ltZlJr
RFQ2M2JPUHZ0c3I1UnE5a09kNVN5VHJsYnlLb3VqTlJkU2R0UnAKdDUyOC9EZHFGbHBvb1labzdU
Q0xhY2lnRnhmNjlrTGFhVDFCWDNTMlUxWVB4VlJyZk9UYTBRNlZianZyWDhwMDJ0a3VhUDdkcC9k
ZgoxcDltNU9wMHZaSEJkb0R6eWthV1BGSkU1cDEzWHZlZi8vd255N3YwWGp2VExzMmNBQkNBQUFR
ZzBMVUVLaWtnMnNOZk14NTV6clp1CmRES2IrUHZmLzk0alNKWFJNNWxneVJRcjdXeUhJWDlMWDA0
dmM3TE56eHIxVFMvMlRhZWp4YzdxQ0tlZDdXampGNzZuNy9mWDY2eVoKS2kyVzdxMUx6MjVwWWJU
YWtyNC9zY2ttbS9RMitkTDQ2cGhKQ1ZMNzBJY3V0VDdqOWRkZjk0dnIwek1JV2Uybk5JTU9CVkNu
UGUyeQoxajJsdzNUanRSUTlMVkJPdXJESXZlNTIySW42VDY0SkNtWFNyS2xNemZMKzlLMk5PbDF2
WkxDZHl2eTZEOXNldW1IdFVwQlBabVNhCkpkR2FqbVpkTzlOdVZoYkNRd0FDRUlCQTl4Q29wSUJJ
WE50eXMxQnE3WmlrRDZmSjlDRHAwZ3QwazM3Sjg2ekY2TGJOckpNaUlIdnEKTXFkRnllbk9ydUlr
ZDNqSlMwT21PV21YWHBlUzl1OXYxK29BcG1laGJOdmFYaGRUNWtESnhlTktVQXRkMVhsZWM4MDFl
NTErVVFJYQplZFlzM1ZWWFhlWE4rZlRoUVgxSUxtdE5SbEU2M2VDWFpZS285UjU5MFdtTlYzcTJ5
YlkzOWtXcHN4MTJxdjZubm5ycUhoc2lWTm5RCm9NNjY2NjBNOWcwWi84RkI3VUFtczlQMEJoNVNx
TFNiV1N1dW5XbTNJZzl4SUFBQkNFRGcxeWRRV1FIUkZxakJUS0pJN09UV3BocFIKcnZvbGNwbHdh
WFE2N1dRdVU5VnBwaWF0OEJUTjNCU2xLL3ZsWDhzOStPQ0RUck0vdi9uTmI1eE1PZFJoYTdlVEFx
bE9UTks5OGNZYgp5Y3VXenRVRzBvdlJaV2FqR2E5Mkt3THBVVnZaczdjN3o1WWdWWWlrWFpUU1N2
RzExMTdiMHFoMGhlemFHa1F6VUdrWGRncXJzeDEyCnF2Nmx1S2QzdmRMNkpzMGNkTXExS3NPenp6
N3JrdHVyNi8ycGJkUmxmcXFkN0pMdXVlZWVTMTZXbnJjejdkTE1DUUFCQ0VBQUFsMU4Kb0xJQ29r
N3dGbHRzVVZxWTVLaTVaaTgwQlYvVnBXZEJOT3FiM3JLektDMlpOYVMveTZDRjFWcWo4bXU0NUph
cElmK3lUb2tXeld1SApNWmtveVh4TW81RW5uM3h5aU41d2JDWDloZ1JTRjhsdFhPV2xiM1NrRi9I
Ymw3TlRzY3AzZEpLcFZYcDJwZDNtVi9aVmFtY2ZBZXdoCmEvSkdscmxQMHIvYnpuZmNjY2NHa1dU
R2xQd3VTTkx6dmZmZWE5aHhMT21YZFo0MjRVbHZ2SkNlc1ZBYVZYYnlTcThyVXJ5NzdycEwKaDlo
cC9WYXlFMXhITzJ4WC9XdFdOcmpiYjc4OTNyaGg5ZFZYRDdmOVVhYUc5bkhVaG51NkVBL04vS1cz
dXUwUnNPQkduVEpJSGcwdQphYllvNldTZXFFMGFrbXUwMGtwV01ueVdUSFdsbmN5SGN3aEFBQUlR
NkNjRXJHTlI2c3k4S2JMaStyL2pqejgrTjd3cEtaR05vdnR3CnR2VnBaSjJnM0xCWkh0YlpqV3dF
THM3cnNNTU95d3BXZWs5ZmNRN3k2bWcvcHBGOUl5STNublVJR3NJcmp1M0NsUnUrcW9kMVVIcWsK
YXpiaGhkSHRZMzA5NHRqb2NHYWNWdExQVE9qbm05YnBqTXdjclNGL1UzN2lLTGFndjhlWHdjWEtO
aW1JdytTZDJHaHFuSzdhaUw2cwpYdVQwNWZOa0hkcUM4WWJnYWl1MkZXOURHUHRlUVJ6R0ZtZzMr
Q2t0bTBHSWJQUTlVanRWdVd5V3F5R01MYmFONDRjVFU0SWJ3aXkxCjFGTEJLejRtMjZ6eXNaSDMy
RThudGtOU1F4b0tZN3NpTllReFphSUhlMXU3MGhCR1pVNS9ZVjVwMlc1elBnOEZWanEySGl0U083
T08KWlVQOG9vdGsvU2hOeFEvUGpHMG1FYVg5RmNiV2ZQVklNdXZMOFAvNjE3L2ljTGF1S05KWDZS
VS8vS25OSjEwZDdiQ3UrcmZ2cWNSeQpTbDdya1Bzdm1kdVd0LzVkWjdONVhuVHJnSHUvVUNZZDFU
NXROaUZTR0xVNTIzMHRNaFBWU0dtcW5xcTZkc3BncG1LK2ZHcHJXVEp0CnVPR0czdDltcGlMYk9q
Z1d1WXBNcmFZZFo4SUpCQ0FBQVFqMFd3S3l4UzUxU1FWRVA2enFqTmhlOWczeHpEd3JzbjMzL1kr
Vnd0dFgKZVJ2OHExN3NzODgrUGczYlFyTkhIbFhUVURncEVHYkg3Tk9TelBZbDRzaG1RM29rSWJu
dFkzSnhPSVUxbStYSTFnMzBDTnZNRFROZgppcFpjY3NtR2RKVzIvaTY4OE1MY3BNek1JVEt6cFla
NDZnU2tYYXZwcDlOSlg5dk1TMFBIM0V5V0lsdGJFOW4zWHlJYkFjMHNrenIyCnUreXlTNlFPY3A2
emI0REVaVklkRjdtSEgzNDREaHVZMlk1Y0RlM2h1dXV1NnhIR1pzc2lHM1dOazA0ck1VckxabUlp
VzFNVVNkblkKZU9PTkc5S1FRckxhYXF0RnRsV3dUOE5tZ0JyOEZkKzJKbzVzRmlqT1F4M1JJR000
MnZkVEluVklnelBiK1I1aGJFZXV5R1pnUXBESQp2dHJkSTR6dHZoYlpTSDRjUmllU1NmVVE4Z3BI
dFZtVlgyMVpuVVhiWmF3aFh0bUY3ZmJXbzkzcEdiU3RXQ05iQUIvWnJrMDk4bFJlCnRwNm5nVWRh
QVJFdktiWHE0Sm81WVdTbWxnM3BLSDZXcTZNZDlyYitKVmQ0SHdYT09vcTFqc2NkZDF5RDZIcm4y
WXh2US9rVVRzOXoKZUJmcFBTUkZ2aG5YVGhtQ2tpQTU3V092RGMrWTNqR2hQRnR2dlhXRHlGVmth
alh0aG95NGdBQUVJQUNCZmttZ3NnSWlwVU0vdU1zdQp1Nnp2eEttVG8xRlNNejJJYk8yRy82RlM1
ODdzL1NQN1hrSExzTXgwd2FldldZbmVPbzJDcW9PalRwQitZUFUzMVZSVFJXYitFOW1DCmVTK3Jt
Wjc0K3lxUHlxR090dTMyMG5MVzZzQ3FnNWdlblEvNWg2Tm1aV3lOUjJTTHNYdmtKZm1DRXFKd1pr
b1VoNmtqL1RpeG5CUE4KckVpcENMTHFhR3NRUEJzejFmRDMxVG1kYTY2NW92WFdXODhySCtwY0pq
di9XVWxyOUY3bE12dnlMRzkvVHpOc3lYeVQ1MnBmNnZEYgpGOVZ6dzZpdXpUVE5wNlVSVzF2VTNC
RFd2a0hoWng4MDJpdjJLbGZJUXdxSXJTUHlzelAyblJqZmtROSt5YU02NVBZaHkwaWRaTFdiCnBG
ODRWejZTdzNZV3l2UlhPT1V0WnBwQkN2VWQ0b2VqT3E3cUNDYWRaZ2l5WnUwVVJ5UHNVdUJhY1px
VkNSM09rTC80U1Q2VlJmZFUKQjFMZTlEN1llZWVkL1FpLzVBa3VyWURvSGFFNlU1eVFwbzdxeEd0
Mm9NajF0aDMycHY2RFhKcTVNSk93QnRtbERPZk5CR3VHemN6SgpHc0tydktwSCsrNVFaQ2FZSWVu
S3gzYktJQ1ZCN3lyYjZqeXlieWxGR25Dd2pSdThvcWcyS1QvTkxHcm1LdW1xeU5ScTJzbDhPSWNB
CkJDQUFnZjVKWUpDS1pUK1FoVTVyRUt6RDRjSUh4UFRSTFcyN3E4WEVPdGZpNWVtbW04N2JDOXNQ
Vm1GYVZUejEwYTY4UmVsVjRxZkQKV0dmVDNYLy8vVTZMdS9VVllxMWowS0plMlRlYnN1Q1AyaUZK
SHk3ckZxZnZvR2dOeUtxcnJ0cGovVVFuWk5UNkNPczQrblVnV2d5dgp6UVNzcyswL3lpaVcybDNL
T2xWTmlXSWRWcCtlalJRM0ZhODNnV1dIcm0rNWFOY3R0VkZUbXB5TjNNZEphcTFFc01mWGVxT3dH
MU1jCm9JdFB0TTdCbEEzL29UaHRKNjE2MHZkcmV1TzAwWVMrZ0sxblJIVXNabkxha2xrY2JWWXZj
NnZXa0tlTm9qZDg0TkVVa0hoOWdlcEEKMzk3UnJtaDZ2azBKQ2RGeWo3MXRoM1hVdjE2Ukw3endn
bjkvNkwweHp6enorSTlhNWdwdEhubzM2bjBqam5wMnRNNmxOKy9HZHNtZwo3eVNab2hmdlNHZG1k
Kzd1dSsvMno3bWVCYldwOU9ZSG9keGxNdlVtN1pBSFJ3aEFBQUlRNko4RUtpa2cvYlBvbEtyVEJM
U3BnSmx1ClpIN3pwZE95a0Y5N0NLUVZFRE5IYzlvTkNRY0JDRUFBQWhDQUFBUUNnY3E3WUlVSUhD
RlFSa0RmK2RCMm50b1pTQ1BRY3BveE0xTWQKZjY4c1B2NzloMENWbmJMNlQya3BDUVFnQUFFSVFB
QUNWUWlnZ0ZTaFJKaktCR1MrWS9ieFR0dVE2cU4vK2dpZ25MN1JZZ3RadThyTQpyWEtoQ05neWdl
UzIzQzBuUWtRSVFBQUNFSUFBQlBvVmdWL3ZhM3Y5Q2lPRkNRUTB5NUYwc2kvWFI5bGtEMi9ic1Nh
OU9PK0hCTFJXCkl1bTBGc0lXSXp2Yi9TbDVtM01JUUFBQ0VJQUFCQVl3QWRhQURPREtiMGZSWlhL
amhkNjJBMUdjdkRZdnVPU1NTNXg5T3lDK3gwbi8KSW1BN3g3a3p6ampEZjN3dmJYYTErT0tMTzlz
Qnl1bEw5TGFEVlA4cU9LV0JBQVFnQUFFSVFLQnBBaWdnVFNNalFoa0I3WTV6NTUxMwpPdnRXaDdO
dndqajdob1RmYWF3c0h2NTlsOEJ0dDkzbUxycm9vc0lDYkxIRkZtN09PZWNzRElNbkJDQUFBUWhB
QUFMOW53QUtTUCt2Clkwb0lBUWhBQUFJUWdBQUVJQUNCcmlIQUl2U3VxUW9FZ1FBRUlBQUJDRUFB
QWhDQVFQOG5nQUxTLyt1WUVrSUFBaENBQUFRZ0FBRUkKUUtCckNLQ0FkRTFWSUFnRUlBQUJDRUFB
QWhDQUFBVDZQd0VVa1A1Zng1UVFBaENBQUFRZ0FBRUlRQUFDWFVNQUJhUnJxZ0pCSUFBQgpDRUFB
QWhDQUFBUWcwUDhKb0lEMC96cW1oQkNBQUFRZ0FBRUlRQUFDRU9nYUFpZ2dYVk1WQ0FJQkNFQUFB
aENBQUFRZ0FJSCtUd0FGCnBQL1hNU1dFQUFRZ0FBRUlRQUFDRUlCQTF4QkFBZW1hcWtBUUNFQUFB
aENBQUFRZ0FBRUk5SDhDS0NEOXY0NHBJUVFnQUFFSVFBQUMKRUlBQUJMcUdBQXBJMTFRRmdrQUFB
aENBQUFRZ0FBRUlRS0QvRTBBQjZmOTFUQWtoQUFFSVFBQUNFSUFBQkNEUU5RUlFRTHFtS2hBRQpB
aENBQUFRZ0FBRUlRQUFDL1o4QUNrai9yMk5LQ0FFSVFBQUNFSUFBQkNBQWdhNGhnQUxTTlZXQklC
Q0FBQVFnQUFFSVFBQUNFT2ovCkJGQkErbjhkVTBJSVFBQUNFSUFBQkNBQUFRaDBEUUVVa0s2cENn
U0JBQVFnQUFFSVFBQUNFSUJBL3llQUF0TC82NWdTUWdBQ0VJQUEKQkNBQUFRaEFvR3NJb0lCMFRW
VWdDQVFnQUFFSVFBQUNFSUFBQlBvL0FSU1EvbC9IbEJBQ0VJQUFCQ0FBQVFoQUFBSmRRd0FGcEd1
cQpBa0VnQUFFSVFBQUNFSUFBQkNEUS93bWdnUFQvT3FhRUVJQUFCQ0FBQVFoQUFBSVE2Qm9DS0NC
ZFV4VUlBZ0VJUUFBQ0VJQUFCQ0FBCmdmNVBBQVdrLzljeEpZUUFCQ0FBQVFoQUFBSVFnRURYRUVB
QjZacXFRQkFJUUFBQ0VJQUFCQ0FBQVFqMGZ3SW9JUDIvamlraEJDQUEKQVFoQUFBSVFnQUFFdW9Z
QUNralhWQVdDUUFBQ0VJQUFCQ0FBQVFoQW9QOFRRQUhwLzNWTUNTRUFBUWhBQUFJUWdBQUVJTkEx
QkZCQQp1cVlxRUFRQ0VJQUFCQ0FBQVFoQUFBTDlud0FLU1Ardlkwb0lBUWhBQUFJUWdBQUVJQUNC
cmlHQUF0STFWWUVnRUlBQUJDQUFBUWhBCkFBSVE2UDhFVUVENmZ4MVRRZ2hBQUFJUWdBQUVJQUFC
Q0hRTkFSU1FycWtLQklFQUJDQUFBUWhBQUFJUWdFRC9KNEFDMHYvcm1CSkMKQUFJUWdBQUVJQUFC
Q0VDZ2F3aWdnSFJOVlNBSUJDQUFBUWhBQUFJUWdBQUUrajhCRkpEK1g4ZVVFQUlRZ0FBRUlBQUJD
RUFBQWwxRApBQVdrYTZvQ1FTQUFBUWhBQUFJUWdBQUVJTkQvQ2FDQTlQODZwb1FRZ0FBRUlBQUJD
RUFBQWhEb0dnSW9JRjFURlFnQ0FRaEFBQUlRCmdBQUVJQUNCL2s4QUJhVC8xekVsaEFBRUlBQUJD
RUFBQWhDQVFOY1FRQUhwbXFwQUVBaEFBQUlRZ0FBRUlBQUJDUFIvQXNQMS95STIKVjhKQmd3WTFG
NEhRYlNVUVJWRmIweWR4Q0VBQUFoQ0FBQVFnQUlIT0VtQUdwTE84eVEwQ0VJQUFCQ0FBQVFoQUFB
SURtZ0FLeUlDdQpmZ29QQVFoQUFBSVFnQUFFSUFDQnpoSkFBZWtzYjNLREFBUWdBQUVJUUFBQ0VJ
REFnQ2FBQWpLZ3E1L0NRd0FDRUlBQUJDQUFBUWhBCm9MTUVVRUE2eTV2Y0lBQUJDRUFBQWhDQUFB
UWdNS0FKb0lBTTZPcW44QkNBQUFRZ0FBRUlRQUFDRU9nc0FlR2wwUkFBQUNBQVNVUkIKVkJTUXp2
SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJDRUFBQWhDQUFBUTZTd0FGcExP
OHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFBQUlRZ0FBRUlBQ0J6aEpBQWVr
c2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NhQUFqS2dxNS9DClF3QUNFSUFBQkNBQUFRaEFvTE1FVUVB
Nnk1dmNJQUFCQ0VBQUFoQ0FBQVFnTUtBSm9JQU02T3FuOEJDQUFBUWdBQUVJUUFBQ0VPZ3MKQVJT
UXp2SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJDRUFBQWhDQUFBUTZTd0FG
cExPOHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFBQUlRZ0FBRUlBQ0J6aEpB
QWVrc2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NhQUFqS2dxNS9DClF3QUNFSUFBQkNBQUFRaEFvTE1F
VUVBNnk1dmNJQUFCQ0VBQUFoQ0FBQVFnTUtBSm9JQU02T3FuOEJDQUFBUWdBQUVJUUFBQ0VPZ3MK
QVJTUXp2SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJDRUFBQWhDQUFBUTZT
d0FGcExPOHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFBQUlRZ0FBRUlBQ0J6
aEpBQWVrc2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NhQUFqS2dxNS9DClF3QUNFSUFBQkNBQUFRaEFv
TE1FVUVBNnk1dmNJQUFCQ0VBQUFoQ0FBQVFnTUtBSm9JQU02T3FuOEJDQUFBUWdBQUVJUUFBQ0VP
Z3MKQVJTUXp2SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJDRUFBQWhDQUFB
UTZTd0FGcExPOHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFBQUlRZ0FBRUlB
Q0J6aEpBQWVrc2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NhQUFqS2dxNS9DClF3QUNFSUFBQkNBQUFR
aEFvTE1FVUVBNnk1dmNJQUFCQ0VBQUFoQ0FBQVFnTUtBSm9JQU02T3FuOEJDQUFBUWdBQUVJUUFB
Q0VPZ3MKQVJTUXp2SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJDRUFBQWhD
QUFBUTZTd0FGcExPOHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFBQUlRZ0FB
RUlBQ0J6aEpBQWVrc2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NhQUFqS2dxNS9DClF3QUNFSUFBQkNB
QUFRaEFvTE1FVUVBNnk1dmNJQUFCQ0VBQUFoQ0FBQVFnTUtBSm9JQU02T3FuOEJDQUFBUWdBQUVJ
UUFBQ0VPZ3MKQVJTUXp2SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJDRUFB
QWhDQUFBUTZTd0FGcExPOHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFBQUlR
Z0FBRUlBQ0J6aEpBQWVrc2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NhQUFqS2dxNS9DClF3QUNFSUFB
QkNBQUFRaEFvTE1FVUVBNnk1dmNJQUFCQ0VBQUFoQ0FBQVFnTUtBSm9JQU02T3FuOEJDQUFBUWdB
QUVJUUFBQ0VPZ3MKQVJTUXp2SW1Od2hBQUFJUWdBQUVJQUFCQ0F4b0FpZ2dBN3I2S1R3RUlBQUJD
RUFBQWhDQUFBUTZTd0FGcExPOHlRMENFSUFBQkNBQQpBUWhBQUFJRG1nQUt5SUN1ZmdvUEFRaEFB
QUlRZ0FBRUlBQ0J6aEpBQWVrc2IzS0RBQVFnQUFFSVFBQUNFSURBZ0NZdzNJQXVmVWJoCm95akt1
TXN0Q0VBQUFoQ0FBQVFnQUFFSVFLQU9Bc3lBMUVHUk5DQUFBUWhBQUFJUWdBQUVJQUNCU2dSUVFD
cGhJaEFFSUFBQkNFQUEKQWhDQUFBUWdVQWNCRkpBNktKSUdCQ0FBQVFoQUFBSVFnQUFFSUZDSkFB
cElKVXdFZ2dBRUlBQUJDRUFBQWhDQUFBVHFJSUFDVWdkRgowb0FBQkNBQUFRaEFBQUlRZ0FBRUto
RkFBYW1FaVVBUWdBQUVJQUFCQ0VBQUFoQ0FRQjBFVUVEcW9FZ2FFSUFBQkNBQUFRaEFBQUlRCmdF
QWxBaWdnbFRBUkNBSVFnQUFFSUFBQkNFQUFBaENvZ3dBS1NCMFVTUU1DRUlBQUJDQUFBUWhBQUFJ
UXFFUUFCYVFTSmdKQkFBSVEKZ0FBRUlBQUJDRUFBQW5VUVFBR3BneUpwUUFBQ0VJQUFCQ0FBQVFo
QUFBS1ZDS0NBVk1KRUlBaEFBQUlRZ0FBRUlBQUJDRUNnRGdJbwpJSFZRSkEwSVFBQUNFSUFBQkNB
QUFRaEFvQklCRkpCS21BZ0VBUWhBQUFJUWdBQUVJQUFCQ05SQkFBV2tEb3FrQVFFSVFBQUNFSUFB
CkJDQUFBUWhVSW9BQ1Vna1RnU0FBQVFoQUFBSVFnQUFFSUFDQk9naWdnTlJCa1RRZ0FBRUlRQUFD
RUlBQUJDQUFnVW9FVUVBcVlTSVEKQkNBQUFRaEFBQUlRZ0FBRUlGQUhBUlNRT2lpU0JnUWdBQUVJ
UUFBQ0VJQUFCQ0JRaVFBS1NDVk1CSUlBQkNBQUFRaEFBQUlRZ0FBRQo2aUNBQWxJSFJkS0FBQVFn
QUFFSVFBQUNFSUFBQkNvUlFBR3BoSWxBRUlBQUJDQUFBUWhBQUFJUWdFQWRCRkJBNnFCSUdoQ0FB
QVFnCkFBRUlRQUFDRUlCQUpRSW9JSlV3RVFnQ0VJQUFCQ0FBQVFoQUFBSVFxSU1BQ2tnZEZFa0RB
aENBQUFRZ0FBRUlRQUFDRUtoRUFBV2sKRWlZQ1FRQUNFSUFBQkNBQUFRaEFBQUoxRUVBQnFZTWlh
VUFBQWhDQUFBUWdBQUVJUUFBQ2xRaWdnRlRDUkNBSVFBQUNFSUFBQkNBQQpBUWhBb0E0Q0tDQjFV
Q1FOQ0VBQUFoQ0FBQVFnQUFFSVFLQVNBUlNRU3BnSUJBRUlRQUFDRUlBQUJDQUFBUWpVUVFBRnBB
NktwQUVCCkNFQUFBaENBQUFRZ0FBRUlWQ0tBQWxJSkU0RWdBQUVJUUFBQ0VJQUFCQ0FBZ1RvSW9J
RFVRWkUwSUFBQkNFQUFBaENBQUFRZ0FJRksKQkZCQUttRWlFQVFnQUFFSVFBQUNFSUFBQkNCUUJ3
RVVrRG9va2dZRUlBQUJDRUFBQWhDQUFBUWdVSWtBQ2tnbFRBU0NBQVFnQUFFSQpRQUFDRUlBQUJP
b2dnQUpTQjBYU2dBQUVJQUFCQ0VBQUFoQ0FBQVFxRVVBQnFZU0pRQkNBQUFRZ0FBRUlRQUFDRUlC
QUhRUlFRT3FnClNCb1FnQUFFSUFBQkNFQUFBaENBUUNVQ0tDQ1ZNQkVJQWhDQUFBUWdBQUVJUUFB
Q0VLaURBQXBJSFJSSkF3SVFnQUFFSUFBQkNFQUEKQWhDb1JBQUZwQkltQWtFQUFoQ0FBQVFnQUFF
SVFBQUNkUkJBQWFtREltbEFBQUlRZ0FBRUlBQUJDRUFBQXBVSW9JQlV3a1FnQ0VBQQpBaENBQUFR
Z0FBRUlRS0FPQWlnZ2RWQWtEUWhBQUFJUWdBQUVJQUFCQ0VDZ0VnRVVrRXFZQ0FRQkNFQUFBaENB
QUFRZ0FBRUkxRUVBCkJhUU9pcVFCQVFoQUFBSVFnQUFFSUFBQkNGUWlnQUpTQ1JPQklBQUJDRUFB
QWhDQUFBUWdBSUU2Q0tDQTFFR1JOQ0FBQVFoQUFBSVEKZ0FBRUlBQ0JTZ1JRUUNwaEloQUVJQUFC
Q0VBQUFoQ0FBQVFnVUFjQkZKQTZLSklHQkNBQUFRaEFBQUlRZ0FBRUlGQ0pBQXBJSlV3RQpnZ0FF
SUFBQkNFQUFBaENBQUFUcUlJQUNVZ2RGMG9BQUJDQUFBUWhBQUFJUWdBQUVLaEZBQWFtRWlVQVFn
QUFFSUFBQkNFQUFBaENBClFCMEVVRURxb0VnYUVJQUFCQ0FBQVFoQUFBSVFnRUFsQWlnZ2xUQVJD
QUlRZ0FBRUlBQUJDRUFBQWhDb2d3QUtTQjBVU1FNQ0VJQUEKQkNBQUFRaEFBQUlRcUVRQUJhUVNK
Z0pCQUFJUWdBQUVJQUFCQ0VBQUFuVVFRQUdwZ3lKcFFBQUNFSUFBQkNBQUFRaEFBQUtWQ0tDQQpW
TUpFSUFoQUFBSVFnQUFFSUFBQkNFQ2dEZ0lvSUhWUUpBMElRQUFDRUlBQUJDQUFBUWhBb0JJQkZK
QkttQWdFQVFoQUFBSVFnQUFFCklBQUJDTlJCQUFXa0RvcWtBUUVJUUFBQ0VJQUFCQ0FBQVFoVUlv
QUNVZ2tUZ1NBQUFRaEFBQUlRZ0FBRUlBQ0JPZ2lnZ05SQmtUUWcKQUFFSVFBQUNFSUFBQkNBQWdV
b0VVRUFxWVNJUUJDQUFBUWhBQUFJUWdBQUVJRkFIQVJTUU9paVNCZ1FnQUFFSVFBQUNFSUFBQkNC
UQppUUFLU0NWTUJJSUFCQ0FBQVFoQUFBSVFnQUFFNmlDQUFsSUhSZEtBQUFRZ0FBRUlRQUFDRUlB
QUJDb1JRQUdwaElsQUVJQUFCQ0FBCkFRaEFBQUlRZ0VBZEJGQkE2cUJJR2hDQUFBUWdBQUVJUUFB
Q0VJQkFKUUlvSUpVd0VRZ0NFSUFBQkNBQUFRaEFBQUlRcUlNQUNrZ2QKRkVrREFoQ0FBQVFnQUFF
SVFBQUNFS2hFQUFXa0VpWUNRUUFDRUlBQUJDQUFBUWhBQUFKMUVFQUJxWU1pYVVBQUFoQ0FBQVFn
QUFFSQpRQUFDbFFpZ2dGVENSQ0FJUUFBQ0VJQUFCQ0FBQVFoQW9BNENLQ0IxVUNRTkNFQUFBaENB
QUFRZ0FBRUlRS0FTQVJTUVNwZ0lCQUVJClFBQUNFSUFBQkNBQUFRalVRUUFGcEE2S3BBRUJDRUFB
QWhDQUFBUWdBQUVJVkNLQUFsSUpFNEVnQUFFSVFBQUNFSUFBQkNBQWdUb0kKb0lEVVFaRTBJQUFC
Q0VBQUFoQ0FBQVFnQUlGS0JGQkFLbUVpRUFRZ0FBRUlRQUFDRUlBQUJDQlFCd0VVa0Rvb2tnWUVJ
QUFCQ0VBQQpBaENBQUFRZ1VJa0FDa2dsVEFTQ0FBUWdBQUVJUUFBQ0VJQUFCT29nZ0FKU0IwWFNn
QUFFSUFBQkNFQUFBaENBQUFRcUVVQUJxWVNKClFCQ0FBQVFnQUFFSVFBQUNFSUJBSFFSUVFPcWdT
Qm9RZ0FBRUlBQUJDRUFBQWhDQVFDVUNLQ0NWTUJFSUFoQ0FBQVFnQUFFSVFBQUMKRUtpREFBcElI
UlJKQXdJUWdBQUVJQUFCQ0VBQUFoQ29SQUFGcEJJbUFrRUFBaENBQUFRZ0FBRUlRQUFDZFJCQUFh
bURJbWxBQUFJUQpnQUFFSUFBQkNFQUFBcFVJb0lCVXdrUWdDRUFBQWhDQUFBUWdBQUVJUUtBT0Fp
Z2dkVkFrRFFoQUFBSVFnQUFFSUFBQkNFQ2dFZ0VVCmtFcVlDQVFCQ0VBQUFoQ0FBQVFnQUFFSTFF
RUFCYVFPaXFRQkFRaEFBQUlRZ0FBRUlBQUJDRlFpZ0FKU0NST0JJQUFCQ0VBQUFoQ0EKQUFRZ0FJ
RTZDS0NBMUVHUk5DQUFBUWhBQUFJUWdBQUVJQUNCU2dSUVFDcGhJaEFFSUFBQkNFQUFBaENBQUFR
Z1VBY0JGSkE2S0pJRwpCQ0FBQVFoQUFBSVFnQUFFSUZDSkFBcElKVXdFZ2dBRUlBQUJDRUFBQWhD
QUFBVHFJSUFDVWdkRjBvQUFCQ0FBQVFoQUFBSVFnQUFFCktoRkFBYW1FaVVBUWdBQUVJQUFCQ0VB
QUFoQ0FRQjBFVUVEcW9FZ2FFSUFBQkNBQUFRaEFBQUlRZ0VBbEFpZ2dsVEFSQ0FJUWdBQUUKSUFB
QkNFQUFBaENvZ3dBS1NCMFVTUU1DRUlBQUJDQUFBUWhBQUFJUXFFUUFCYVFTSmdKQkFBSVFnQUFF
SUFBQkNFQUFBblVRUUFHcApneUpwUUFBQ0VJQUFCQ0FBQVFoQUFBS1ZDS0NBVk1KRUlBaEFBQUlR
Z0FBRUlBQUJDRUNnRGdJb0lIVlFKQTBJUUFBQ0VJQUFCQ0FBCkFRaEFvQklCRkpCS21BZ0VBUWhB
QUFJUWdBQUVJQUFCQ05SQkFBV2tEb3FrQVFFSVFBQUNFSUFBQkNBQUFRaFVJb0FDVWdrVGdTQUEK
QVFoQUFBSVFnQUFFSUFDQk9naWdnTlJCa1RRZ0FBRUlRQUFDRUlBQUJDQUFnVW9FVUVBcVlTSVFC
Q0FBQVFoQUFBSVFnQUFFSUZBSApBUlNRT2lpU0JnUWdBQUVJUUFBQ0VJQUFCQ0JRaVFBS1NDVk1C
SUlBQkNBQUFRaEFBQUlRZ0FBRTZpQ0FBbElIUmRLQUFBUWdBQUVJClFBQUNFSUFBQkNvUlFBR3Bo
SWxBRUlBQUJDQUFBUWhBQUFJUWdFQWRCRkJBNnFCSUdoQ0FBQVFnQUFFSVFBQUNFSUJBSlFJb0lK
VXcKRVFnQ0VJQUFCQ0FBQVFoQUFBSVFxSU1BQ2tnZEZFa0RBaENBQUFRZ0FBRUlRQUFDRUtoRUFB
V2tFaVlDUVFBQ0VJQUFCQ0FBQVFoQQpBQUoxRUVBQnFZTWlhVUFBQWhDQUFBUWdBQUVJUUFBQ2xR
aWdnRlRDUkNBSVFBQUNFSUFBQkNBQUFRaEFvQTRDS0NCMVVDUU5DRUFBCkFoQ0FBQVFnQUFFSVFL
QVNBUlNRU3BnSUJBRUlRQUFDRUlBQUJDQUFBUWpVUVFBRnBBNktwQUVCQ0VBQUFoQ0FBQVFnQUFF
SVZDS0EKQWxJSkU0RWdBQUVJUUFBQ0VJQUFCQ0FBZ1RvSW9JRFVRWkUwSUFBQkNFQUFBaENBQUFR
Z0FJRktCRkJBS21FaUVBUWdBQUVJUUFBQwpFSUFBQkNCUUJ3RVVrRG9va2dZRUlBQUJDRUFBQWhD
QUFBUWdVSWtBQ2tnbFRBU0NBQVFnQUFFSVFBQUNFSUFBQk9vZ2dBSlNCMFhTCmdBQUVJQUFCQ0VB
QUFoQ0FBQVFxRVVBQnFZU0pRQkNBQUFRZ0FBRUlRQUFDRUlCQUhRUlFRT3FnU0JvUWdBQUVJQUFC
Q0VBQUFoQ0EKUUNVQ0tDQ1ZNQkVJQWhDQUFBUWdBQUVJUUFBQ0VLaURBQXBJSFJSSkF3SVFnQUFF
SUFBQkNFQUFBaENvUktEZktDQS8vdmlqZS9iWgpaeXNWdXRPQlB2cm9JL2ZDQ3k5ME90dk0vTHFa
VTFMZzk5OS8zOTF5eXkzdTQ0OC9UdDdPUFAvaWl5L2NHMis4a2VuWDZzM1BQdnZNCnZmYmFhejc2
NTU5LzdyNzU1cHRXaytvUjc1MTMzbkg2aTZMSSs2bDl0TnUxc3p5dHl2N3R0OSs2dSsrK3U5WG9s
ZU0xKy93MTI1NmEKVGIreTRDVUJPOFd2Ukl6YXZjWC9yYmZlS2t6M3dRY2ZkRC84OEVOaG1FNTdO
dHR1T2kxZkovTnI5ek5SVi9ycFo2alpkS256VHJZcQo4dXB2QkVvVmtGVldXY1VOSGp6WXJiREND
bTZkZGRaeHd3NDdySnRxcXFuY1dtdXQ1UlpaWkJGL2ZjNDU1L3lxWEI1NDRBRTN4eHh6CnVDMjIy
T0pYbFNNdjgzLzg0eDl1OWRWWHovUHUyUDF1NXhSQW5ITEtLZTdDQ3k5MC8vdmYvOXdzczh6aTlD
T1I1eTY0NEFJM3dRUVQKdUhQUFBUY3ZTRlAzMWZINTNlOSs1M2JlZVdkMzlORkh1M25ubmRjdHVP
Q0M3dEZISC9YcFhIMzExVzZ5eVNaemd3WU44cy9EMDA4LwpIYWYvMVZkZnVRTVBQTkQ3YmJubGxr
N1h3WDN5eVNkdTAwMDNkUXN0dEpBUGM4SUpKN2hWVjEzVkxiNzQ0bTZwcFpZS3dkekZGMS9zClpw
cHBKcCtHN20rKytlYnVqMy84bzl0d3d3M2RERFBNNEZaY2NjWGNNQnRzc0lFUHM5cHFxOFhwbFpV
bkR0amhrL3Z1dTgvTk04ODgKYm8wMTFtZ3A1eVNuSlpkYzB2MzN2Ly9OVGFlWjU2K1Y5dFJNK3Js
Qy91eVJMRmV5L3ROMTIxdCtaWEw4V3Y0bm4zeXlHMmVjY2R3bApsMXlTSzhKTEw3M2tuOHViYjc0
NU4weW5QVnBwTjUyV3NaUDUxZmxNWk1sZFIvcFp6MUF6NlZMbldUWERQUWcwUWNCR1lRdmRjc3N0
CkY3Mzg4c3R4bUpGR0dpbmFaSk5ONHV2RER6ODhzaCtOK0xyWkV4dFpqbXlrdTlsb1BjSnZ1KzIy
a2YxZzk3amZEVGMrL1BERDZQbm4Kbis4R1VhSm1PTlZWTjgwVTNFYVVvbEZISFRXeW1Sb2Y3YTY3
N3VvUlBTMlhkZGlqQXc0NG9FZTRWbTZzdmZiYWtYWGc0NmpmZmZkZApOUHZzczBmV0lZcnYvZnZm
LzliVVJXUS9Wdkc5Y0tLNm5uUE9PV1A1ZGQrVWxHaUtLYWFJZnYvNzMwZW1sSVNnL25qTU1jZEVZ
NDAxClZzTTlVMko4K3ZmY2MwL0RmWnNOaW1YTEMyT0tUclR1dXV2RzhhcVVKdzdjNFpQRERqc3NN
dVd4NVZ3RGd4dHV1S0V3aldhZnY3TDIKbEc1L3phWmZLS3g1aG5LbDZ6OWR0NzNsVnlaSHEvNXBQ
czJtb3paeDVKRkhGa2E3Ly83N28rKy8vNzR3VEpsbmIrVk1wMS9XYnRMaAorL04xM2M5RW1sVTYv
VmJyTXYwTXBkTk41NXUrTHF2elZ1Vks1OE0xQlBvamdkSVprQjEzM05IUGVPVHBOSC82MDUvOEtI
V2VmL3ErClFZeHYyUStJSDIyKzQ0NDc0bnZoSkJrdTNNczYvdlRUVC83MmNNTU41NFlacHJRNFdV
a1UzcXRqbWw4amV0Tk5OMTFoUG5WNEZqRXIKNDVRdVoxSGRGTWxhSkVOUnZPRDN4Qk5QT092MHgz
V3BHWU9reTVKcitPR0g5ek1HeVhDdG5zdU1UK1pjeWtkT2FaOTU1cGtOcG1DYQp6VEtseEIxMzNI
RU5zeHdLcjVtYlAvLzV6N0g4TW5renhjUExkOUpKSjdtUlJ4NVp3V0tuc09uWk1WTkl2TDltV1pM
T0ZET25FV0s1CnZEQkszNVNhT0ZxVjhzU0I3YVMzOVpkTXEreDhoQkZHeUt5M2RGdk1TeWN3R0hQ
TU1mT0MrUHQ1ejE5ZVdZdmFVMWI3eTB1L1VDanoKek1zL2xDdGQvK202emVOWGxtODcvYlA0Tkp0
ZkVmK1FsbVltOWM1djFkVWhaenJ2S25LbjQvVFg2N3FmaVRTblpQcEZkWm4zaklYMAowczlRTXQw
UVJzZThkSXJxdkVpdVpOcEY2YWZEY1EyQi9rU2d0TWUrL1BMTEY1WlhuYUtGRjE3WWgzbnZ2ZmVj
RkJhWmxjdzk5OXp1CjNudnZqZU5lZE5GRjdzUVRUM1QvL09jL3ZSbUtQSTQ2NmloMzVaVlh1di84
NXo5dTQ0MDNkbDkrK2FYTENoY25ramlSZWN2V1cyL3QKOXQ5L2Z5ZHpGOWtFQjZlcFVabnVyTHp5
eXZHNkVIVnNaVXB6NjYyMytyLzExbHZQbTltY2Z2cnBicHBwcG5FenpqaWplK1dWVjBJUwpUdFA3
aHh4eWlEdmlpQ044K1o1ODhrbnY5K0tMTDdwZGQ5M1ZsL09xcTY1eU50cnRUVWxzdE5JcEQ1bW1U
VFRSUk43TVJoRms2Njh5CksrL2d2djc2YTdmNzdydjc5RzIwMnRrb1RQQnFPSXJGSkpOTTRvNDk5
bGgvWDUxYm1lR292SEl5TzFsLy9mWGRubnZ1NmY3MnQ3LzUKZkNlZmZQSUdjNVFpVGtvanI1eFpk
ZE5zL1NyOXRKUE5yTTNDdUoxMjJzbDN2TGZiYmpzbkhuS25uWGFhMjN2dnZiMXQ5emJiYk9QcgpK
eDAvU3k2RmtZS2w2WE9WZjlaWloyMm95eUs1MCttclhUejg4TU51MldXWGRZb25wenBPbS9kSmNk
RDZGTFcxcEx2aWlpdDhHd2ozCnJyMzJXdDgyTjlwb294N0tSd2dqQmFmTTZRZFFkU3h6c3lLbnRq
bisrT1BIUWNyS1U2VU5GZkhMYTh0bGJUY1dNSEdTMXhaVkh4cm8KMkdPUFBaek5kTG54eGh2UDJR
aDRJbWIrYWRienAyZENiWEMvL2Zaek5zUHJ4RWpQZW5JZ0pLODlwZHVmeklHU3o3ZmVMMlh2bGly
NQpaNVVvWGJmcE1IbjExT3c3UytubXBWVld2alFmdmRQVHJ1Z2RFTUtLa2N3ZzFkNzFXL0xNTTg5
NEx5bW4rczM0N1c5LzYyNjg4VVovCkwwOVdlZWExenpJNUw3LzhjdC9PL3UvLy9zL0pmUEtzczg3
eTEzb3ZpS2VjZmhzV1hYVFJodlZoZWUxRzRmUGtMR09xdUVtWDl6emsKcGQ5Sy9SZlZrY3hRSjV4
d1FtOEdGMWpvZWJSWlhsOG42V2V1U3ZtYWVTYlM2V2ZWWmRWK1JKSnJPbDM1VlpFcnI4Nno1RXJt
cC9NOApPWXY0bDcxYjg5cEgzck1nT2ZMYWp2eHdFR2diQWV2WU5PWFNKbGdoc3Ywd1JHYWZIdGxp
VjI5K1loMkd5RG9LMFpBaFEveFV1ZGw3Cmg2RFJEanZzRUp1b1REbmxsTjdrUUo0MlloRGxoWXNq
LzN4aXlrVmtIWEovSlhPZGlTZWVPTElmaHpqWVlvc3RGaTJ6ekRMeHRlUmIKYzgwMS9mVzc3NzRi
VFQvOTlKRXBIWkVwRWRHcnI3NGFXY2MrTW50NzcyOXJEaUxyK01lbVlkWXBqdVBhQzllYjJOZzZt
T2pTU3kvMQpKalV5YzVsMjJtbDlPVFNGdTlkZWUwVTJlaG5KWk1ZV1UwZW1NRVRqamp0dUxJdXRw
NG1DZVlVcFR0N2M1cUdISG9yOWt5ZVNJMmxlCkpKTTQ1U2RuQ2xOa25jMUlzbGpuS2JJMUU5NWN5
TllveEVrVWNTb3FweEpJMWsycjlSc0w4dk9KNnNYV0RQa3JtVGZOTjk5OGthMHoKaW9PWkRYeGtN
MW54ZGRaSlVpNzUvK1kzdi9IbHRzNTBaTE1Ydmw1dDNZU1BXaVIzVnRxZmZ2cHB0TVFTUy9nNlVa
MVpaeWNybUsvMwpzY2NlMjdlRkVFQ21pakt6U3JwZ1RuUHFxYWNtYi92ejExOS9QVko3Q24vMlkr
ZnYyL29Rbjc5TXZNVEsxc1JFcG1qRzlhNUE2VEJuCm5IRkdaRXBiTk5kY2MvazB3bjlsNVNsclEy
WDhpdHB5VWR1VmZESS9zNDZNRjdXb0xlcFpzWFZva2EzejhzK2MzaTB5YVF3TWJLQWoKRkxmSE1l
djVNNFUrTWdYWWg3VkJBOC9hRkJEL0h0RE5vdllrLzJUN1M2ZGY5bTVSL0xMOFE3bEMvZWZWYlpK
ZlVUMDErODRxU3F0SworWko4Vk42MEszc0hURHJwcEpFTklQbG5UK2E1U20vcXFhZjJ2dysySVVT
azU5eCtFQ05UN3FNaVdaVnZVZnNzazFQUDBtYWJiUmFMCnIvZUNyZU9LcjYrNTVwcklCZy9pNjZK
MlV5Um5GYVp4Sm5hUzlUeVlncGI3Kzl0cy9TdXZzanJTKzlWbTlXT3g5TnV0ZDVSY081NkoKT0tP
TTlPV1hyTXRtK2hISlp5Z3R0OUl0ZTFhTDZqd3RsNjZUcmtqT012NUY3OWFzOXFIM1pkNnpVTlEy
ay9KeURvRzZDWlRPZ0ZUVgpmTFI0MG9Uem80alhYMys5SDQzLzRJTVAzTzIzMys1SGtMU0lWNlBC
Y2xwWXE3REJCVk1EalRRVmhRdmhOYk9pdE1Mc2pFeXZWbHBwCnBlRHRqNmJrK05IOU1LdHg1NTEz
K2dXODh0U29tbVk5WnB0dE5xZEY5aHE1MFlMUDU1NTd6c2ZWdEtvV3g4ck1SazdUc21FRVR2RzAK
NEYwekxLYlErRkZ0bWRCb3g2VGRkdHZOaC8zTFgvN2l5NmQ3R3ExVlBxRzgydG5wa1VjZWNmUFBQ
NzlQVzZON01zMlJERmxPWmhlQgpqL3hIR1dXVStOcGV1bjVCdEVZRHRTR0F2YlM4Q1pCTWlDUnZH
YWVpY2daWlF0NjlxZCtRbHRxRjZrRWp4SExLMzM3Z25VYlU3S1VaCmdsVTZCcmxDWU5YajBrc3Y3
YXp6NHJRb09leUlWaVIzaUpzOGpqSEdHSDRVVDNWcHlyT2ZwYkVPWVRLSVAxZTlhSEc0NmpMTTlQ
M3IKWC85eXRqNnFJYXhHMWVTU3N4SWhnQ2tzVGpOZ3ByejZVWFNabmlXZCtNaEVZTVFSUi9USGRK
a1ZOaGxHNGRLdXJEeGxiYWlJWDFsYgpMbXE3YVRtTDJ1SUNDeXpnWnlqTjN0by9jM3BlcXBvMHBw
OC81YXNOQy9STXkybTJUR0hra3M5Z1hudnlBZTIvVUJmcDlNdmVMWXBmCkpYK0ZLNnRiaFFtdXFK
NmFmV2NWcFZXbGZKSXA4QW55aFdQVmQ0RE1GclZKZzU3bGd3OCsyT2xaMFd6ZGFLT041bWNkbEo3
ZXFVV3kKbHJWUHBaRW5wL3kwYVlTdEwvS3pxN3EyQVMybldXL3JzT25TeTJPRFFmNDgvSmZYYm9y
a3JNbzA1SkgxUE9nOWxQZjcyMno5VjZragp6U0JxWjBkdGJDS251Z2tzMnZsTUtLOTArcm9uRitx
eWFqOWlhS3hmL3M5S3Q4cXptbGZuSWVVZ1Y3Z094enc1cS9BdmVyZG10US8xCkNmTDZIVVZ0TThq
S0VRTHRJRkNiQXFJT3BIN1UxV0hTbjh5eWJycnBKajk5YmlQSnZrT3ZIeFNaMXFqVG85MjBnZ3NQ
YUZtNEVQNjIKMjI3ekhaSmdLNjM3K21FSzZlaGFlV20zSXUyb0pLZE9yaFNHNEJRMkdYNzAwVWVQ
cDlKMVgzYjBla0hJTkVPN01Xa3IxdUNTOFhSUApjWk5PblQ0NUtXQnl5Ynlra0dsZFF6SU5tWmVF
RHBHUDBNUi9TaWZKVXFaazJyVk1Qd2hsbkJTM3FKeEJkaDE3VTcraE9KcW0xMHRlCkhhdmdiQWJF
bitybDJJeEw4bE84NUxYS3J5bHN1U0s1ZllDTS95U2Z6Vng0QlZieXFzMW03Y29qRTBBcHYwRkJz
UVh6emtaSkcxSzAKbVRaL25iV3RxRXdWd3k1UVNpdTlsa0htSGxKUTFCbXprVmF2WERVa2JoY2hq
SFpKc2cwaHZCS2FEbE5XbnFJMlZNU3Z6clpjMWhiMQpnNnU2YU1VcDdXVDcwUE9xY2dVbmM1SXdJ
QkR1SmNNbjIxT1dmenI5OUhYeTNhTDRWZkpYdUNwMXEzQnlSZlVrLzJSNWRGMzB6cXFTClZqSzlk
UG15OHRNOXVhcnZnT1N6b0E2VlhOaktQT1N0WTVHc1ZkcG5TTXRua1BwUDVxMTZod2ZUUEpuaHlx
Uk1wb0sydU5nckpqSkIKVHJwa2VzbDJVeVNuNGl0ZU1tNFcwMlErNmVlaFN2ckorRVgxWDZXT05E
aW53YlB6emp2UEp5dEZUU2JQd2FYTGs3NU9sMC9YS2tOdwpXYzlrOE5NeG5WNjRwMlBWZm9UQ3Bs
MDYzU3B5S1U1d3lUb1A5NUwrNFo2T2VYSlc0WjlNSitzODNUNktub1d5dHBPVlB2Y2dVQWVCCjFs
ZnhwWEkzMHlPL0tGQ2pSRmxPdHZKbUp1VzNOcFdOb2w1WW9hT2VERjhsM0p0dnZ1bVVYOW9sSDNS
MXlyZmFhaXUvem1TZmZmYngKdHNCSmhTVWROMzJ0eGI0YXJUZnpCNzgyUVMrRlBLZE9hREx2NUhr
Nmptd3R3M3FTdEY5ZDE1SkhDelNyY0twYXpqcnFWL2EwU2tmSwpnUlJHT2MwT1NkWXNXL0U2ZUpU
Sm5jekRUUEc4SWhoK25LVWd5QlpjeXJRVWtERENGK0pveEZ5elR4cEIwaG9tYlN1YnJudVZUeTdN
CnJvVzQ0YWdmTExuQUk5eFBINVd1Um9MTG5OWWpCTmRzZVVJOEhVTWJLdUpYZDF1dTJoYVRjclp5
cnRsUnpWUnB6WlptalRTcnFMcnUKbEdzMS8yVGRwbVV0cXFkMFdGMFh2Yk9hVFNzci9ieDdyYndE
OUp6cG1RelBaVEx0SWxsNzJ6NDFLS1RSN2ZQUFA5OXYrcURuVzl5MApGczlNRzN0c0hwR1VLMzFl
SkdjNmJDdlh6YVpmVlA5VjYwaXoxL3B0MVRwTU04MzJBNCt0eUs0NHJUNFRlZmxWNlVma3hVM2Vy
MXV1ClpObzZ6NUt6S3Y5MFdrWFhSYzlDczIybktCLzhJTkFNZ2RwbVFLYXliNE5veGtNalE4RnBT
bGlqY2RNaE1nQUFJQUJKUkVGVThHYmoKNnN5KzB0bldpazdUaS9yaDEwczh1TkJwS3dzWHdrdVIw
Y2lVMlRXR1c1bEhtY2hvRnVQdmYvOTdQRzJmR1RCMVU5OTIwSWkwRm9jbgpSK3RUd1ZxNjFJK3BS
dkswZURVNGNTcWFBZEFpdDZwT1RQUXhKYk5mOWdwZkVhY3E1UXgxMDV2NkRiSnJka2E3UW9WcGU5
MVh1NUJKCmc4eHJtbkZCcnJJNFJYS240K29sclc5L0pKMW1xNmEwR1R0TllXYzVMVWJYZDByMDdS
RE5WS1NkRnFsS2dUbjc3TE85U1ZmYXY1bnIKS20xUllUVGJvcEhKVnNvamVaSnRxSWhmbGJaY3Rl
MVdhWXZOc0JJRERSNWtPWmxyeWd4VTd5SnRYcUZGc3MyNnF1MHZLOTFXODAvVwpiVHJkb25wS2h5
MjdyaU90UEQ2dHZBUGVmdnR0UHdPdHpTRFNya2pXS3UwelQ4NlFqeFJWRFQ3WUdpNXZjaW16TE51
RzI4OHdONk8wCkZza1o4dXJOc2M3MHE5YVJabDMxZ1ZPOUE3Vll2emV1MVdjaW1XZW95NnI5aUdU
Y3ZQTTY1VXJua1NkblZmNVYzNjNLdCtoWnFMUHQKcE12SU5RU0tDRFNsZ0tqQnkwNDk2K3ZVK2xD
YU9qd3lKNUx0dkRxVysrNjdyN2ZWVm9kWU96ZklhZGNaZlNndGpQaHFWa0lqOVhLeQo4ODBMNXdQ
OC9KL01ValJxTGx2dzRHVHpMMDFlSGR6Z05NV3A5UVl5dzVKSlZ0S3BITWtIV0tNT0lhN1dUOGhQ
blNMZGt3bVdGQ3NwCkN2cXp4V054V0tXcERxakM2YjVjc0JFTzZTdHQ3VUNodUpKZG8wWDZJVk0r
K3RQdU5qSVh5M0lhUWRjSGt5U3Zmb2lsdUlobjBpV3YKMVpsU3AxY21KV1djeXNxWnJCdU5CTFpT
djBrNU5ZT2dOUnBTVklOVEIxQXZYRnNnNTIvcEIwM2N4Q3pQSmVWU1cxUFlaSGl4MXA5YwpVYnRN
cDI4TFhiMlNuRlJzOVNPaDlxa2ZvaXludFVNenp6eXpiK2V5dFU0N2pUUksrVkNacEJBblRma1VW
bTBuN1lMc0tsdWVDMzdwCmRTTktUN3VreWZTcm1mTGt0YUVpZm1WdHVhenRTdmJ3ekpTMVJUMVRn
VXRnRWhpRTV5emNGd1B0V2hZNnJNbm5UMkUwYWlzKzJvRk4KblNpWkt5UmRVWHRTdUt6Mko5bjBm
TXNWdlZ2a1g1Wi9LRmRSM1laOEFyK2llbExZWnQ1WlpXbVZsUy9OUi9rSFYrVWRvTERoWGF4egpy
ZVVJVzEvck91bUtaQzFybjBWeWhqejA0VS9Oa21sR1hXWmhldDQxYzYrZERrT0hONFF0YWpkRmNp
cCtHZE9RUnppbW40ZXk5SnVwCi82cDFKSDR5SWRYdlV6Q2xEZktsbjdteThwVTlFeUhkY0V5bm42
ekxxdjBJcFNXNXdqT2s2M1M2WlhJVjFiblNTOG9Wbm12ZGw4dnIKRjFYaFgvWnVUYmVQb21laHJP
M29mU3FUNU5CUEd5bzkvME9nQmdMMm8xbkptZGxRcE4xbkxNdklYc1NSUGtDb0hYYVN6cmJaamV4
bAo3WGVBTW52dFNCOXNrMU5jNjV6NUR4YmFOcVdSelM3RUg1R3kyUWtmWHJ1TmFCZW52SERKZkhS
dTArS1JUY2xIK2hDUWZhRTlNZ1VqCnN0RnFmejhaVm1sYUp5TjV5K2RqTHdhL2M1YlpQMGEyOE4z
dllpWFpiV3ZIeU15Qi9JNDdwaVQ1WFUrMDI0bVphVVMybFdwa3RwUSsKbmkwY2pLeXo3M2Vpc3M2
NTU2TGRyMnpHSmJJcGFYOHR1YlRMbG0zQjY2LzFjUzE3bUQwWDhSRkxHNW1Jek5TclFiN2toZGti
UjJZSwo0SGVCMldXWFhmeU9XcmJZT3Q2aFM3dUdhWGNnMjRvM3NwZGxwRjJ5ck5NY0oxSEVxYWlj
a2pOWk42WjhSSzNVYnl6SXp5ZG1maGRaCmh6MDY5TkJEL1M0MnBpQkcxdm4wdnRyTnlKUW56OFcy
NEl4TTJVcEg5OWRKdVd3YlpiOXJsdEswV2FSSTZhdE5tSUlhNzJDVkozZFcKNHFZTVJiYncxZS9V
cGgyczlCRkM2OHhHOWtPVkZkemZVL3JhcWFqSTJZaDhaR1phZm9jdTdZcG01alQrbzVES1M4K1Nk
Ymg4ZEZQQQpJMXNZN1JuSVQyMHM3ZlJSUk1tcDlxT3dhcGY2MDQ1bmFsZldRZks3QXlsZWxmS1V0
YUVpZm5yRzg5cHlVZHUxVGt0a051UytETnIxCnlYNmNjNTg1VStEOHh5bXQweGVKajF5U2dkTFI3
bVAySXh2WnhoVCtlWkZNcHBoRXlpZjkvTmttRVQ1ZjhiT09wZjhZb3Q1SmF2UGEKMmM2VVJ0OUc4
OXBUc3YxZGQ5MTFEZWxyaDZhaWQ0dGtMOG8vV2E2aXVrM3prK3g1OWFSM25IWUpyUHJPc281R2Js
cDZuNWFWTDhsSAo3NDIwSzNvSEtLemVvOWJCaXN6a01Ecm9vSU9pN2JmZjN1K3VHTkxSczZpNjB5
NVljbm5sbGw5Uit5eVRVL0hsOUM3U1RsTEI2VjJiCnZOYjlLdTBtVDg0cVRFUGVPdXFkcm8rMUpw
OEgzYzlMdjVYNkw2c2o1U2VuWjF4MWxIVHBaNjYzejBReWJaMm4wMC8vVmxYdFI2U2YKSWYwT3Qv
TmRrWDRXaXZwRlpmeUwzcTE1N2FQb1djaHJPK0p0QTdHK2o2YjNNQTRDZFJJWXBNVHNaVjZiMDRp
Q3pGVTA1YWRaQ2ptTgpVR29rV09aUU1pTklMOXpUeklWbUs4ckNwWVhVS0psR0ZSUlhNeFNhV1Vn
N3pYN0loRVl6TDgwNmpXcUcwVkdOa2xReGdhbWFoN0JyCmxrZzdvSlE1TVZWWkpVdGFEbjJRUzd0
ZmFiWkpvekhXOGVxUlhCbW5vbktHdWdtSnRsSy9JVzQ0cXV6MkErN2JSTmFzUVFoWGRFekwKVlJS
V2ZsbHlaOFhSN0o1dHIrdFphZ2MxZlZja3kvWThHZGQrQVAybFJrckxuTnE0ZGtlVFBOcjlLcm1C
UUZuY1Z2eXJsS2RLR3lyaQpWOVNXRlMrdjdXYVZwNmd0Wm9WdjVaNTFtUHkzV3ZUTzBJeVUza3Rh
eDZOdnRlU3RZVXZuMDJ6N1M4YXZJLzlrZXNuem9ucEtocXR5CjNwdTB5dmhVZVFkbzlsSHY5dkE3
RW1TV1hIcld0QzVQYlZldVNOYWk5bGttcDlMVzg1MTh0dFBYQ2xQVkZjbFpOWTJpY0hXbVg2V08K
SkV0dmVJU3kxUEZNaExwc3RoOFJaTWc2MWlsWE92MHlPY3Y0cTY2YmViY3EvNkpub2FqdHlKUTdx
MitSTGhQWEVHaUdRTzBLU0RPWgp0ek9zT2hiNjBkRDBvam9YNmVueWR1YmR5YlJENTFFN0lPRWcw
QXFCZ2RTR05DQ2g5NEYyaVVzNmJZb2haVmhLWVR2ZHI1MS9POHZXCnFiUmxwaW5URmgyREtXK244
aWFmK2dsMDZ6UFJyWExWWHdPa0NJRmZoOERRS1lwZkorKzI1YXB0VWJWUHVYMnN4K2xMNS8xVitk
QUkKU2xnWDBqYVlKTnl2Q1F5ME5tUW1Gbjd0aCt5c3RZMm9abHkwdGtscm5OcXRmS2doL2RyNTkr
WEdyTy84aUo5OU5OWnZJb0R5MFpkcgo4eGZadS9XWjZGYTVmaUhIR1FUNk5vRitPUU1pc3hNdFp0
ZGlkKzJZMVYrZEZqZUhoV0ZhY0t4OTYzRVFhSWJBUUd4RDJrSlYrK0xMCnhFY2Z1dXVFNHBHc2sx
ODcvNlFzZmVsY3V5ZHE1a3FiUGtnWlNadG05YVd5SUdzamdXNTlKcnBWcmtaNlhFR2dieExvbHdw
STM2d0sKcElZQUJDQUFBUWhBQUFJUWdFRC9KOURVTnJ6OUh3Y2xoQUFFSUFBQkNFQUFBaENBQUFU
YVNRQUZwSjEwU1JzQ0VJQUFCQ0FBQVFoQQpBQUlRYUNDQUF0S0Fnd3NJUUFBQ0VJQUFCQ0FBQVFo
QW9KMEVVRURhU1plMElRQUJDRUFBQWhDQUFBUWdBSUVHQWlnZ0RUaTRnQUFFCklBQUJDRUFBQWhD
QUFBVGFTUUFGcEoxMFNSc0NFSUFBQkNBQUFRaEFBQUlRYUNDQUF0S0Fnd3NJUUFBQ0VJQUFCQ0FB
QVFoQW9KMEUKVUVEYVNaZTBJUUFCQ0VBQUFoQ0FBQVFnQUlFR0FpZ2dEVGk0Z0FBRUlBQUJDRUFB
QWhDQUFBVGFTUUFGcEoxMFNSc0NFSUFBQkNBQQpBUWhBQUFJUWFDQ0FBdEtBZ3dzSVFBQUNFSUFB
QkNBQUFRaEFvSjBFVUVEYVNaZTBJUUFCQ0VBQUFoQ0FBQVFnQUlFR0FpZ2dEVGk0CmdBQUVJQUFC
Q0VBQUFoQ0FBQVRhU1FBRnBKMTBTUnNDRUlBQUJDQUFBUWhBQUFJUWFDQ0FBdEtBZ3dzSVFBQUNF
SUFBQkNBQUFRaEEKb0owRVVFRGFTWmUwSVFBQkNFQUFBaENBQUFRZ0FJRUdBaWdnRFRpNGdBQUVJ
QUFCQ0VBQUFoQ0FBQVRhU2FCcEJlVDc3NzkzVHovOQp0UHZ3d3cvYktSZHBkNGpBUng5OTVGNTQ0
WVU0dDIrLy9kYmRmZmZkdWRleFJ6OCtTVFBwWkZIZmYvOTlkOHN0dDdpUFAvNjRSN1pmCmZmV1Zr
Mnh5Yjd6eFJnLy9WbTY4OFdsNU90Ly8rTDE3NnYybjNFTnZQK1ErLy9aem44MnpIejdia0YxWm1I
YkkzaUJBUDc4b2FoZnAKb25mek0vempqeis2WjU5dGJEdEorYi80NGd2MzFsdHZKVy8xNnZ6WGFu
ZGx6ME92Q3BXSy9ORlhIN21YaDd6c29paUtmZDcvOHYzNApQSDN5NW1kdnVpZmVlOEo5KzhPM2FT
K3Vjd2o4V3Uwb1J4eHVRNkJmRUJoa0w2MWYzbG9GUlhydHRkZmN0dHR1NjBZYmJUUzN5Q0tMCitC
K0ptMjY2eWYzbEwzOXhHMjY0WVVGTXZMcVp3RGJiYk9OdXUrMDI5OVJUVDduNzdydlAvZkdQZjNR
ZmZQQ0JlL2ZkZDN0Y2QzTTUKNnBRdHlhVE9kTXZTT3VXVVU5dzMzM3pqbFF5ZHYvcnFxMjdFRVVl
TW8rMi8vLzd1MFVjZmRUck9Nc3NzUHV6d3d3L3Z6bmprRFBlUApXLy9oM3ZwOGFNZHRxU21YY3BI
OWs1SXcrd1N6dTc4czhCZTMvTFRMeCttRUV6MzYweDg3dmZ2UGV2OXhzNHcvUzdqZGNMeno5VHZk
CkZsZHQ0VGFlZldNZjVwS25MbkVQdnYyZ20yek15ZHoxRzEzdncxWUpreWQ3UTJaY1pCSW9heGZK
U04zOEREL3d3QU51czgwMmM0TUgKRDNhMzMzNTdVbXgvZnZMSko3dnR0dHZPSFhMSUlmNTNwVWVB
Rm03a3RidHRyOTNXSGYvQThXNlc4V1p4YzAwMGx6djM4WE45NnZOTQpOSThiZStTeDNkMXYzTzIr
K1A0TDkrbmZQblZYUDMrMTIvT1dQZDNMbjd6c3c4dzc4Ynh1d1VrWGRFTytHZUx1ZU8wTzkrcW5y
N29ECmx6clE3YmJvYnQ2LzdIbG9KdTh4Umh3anM5US8vUFNETy96dXc5MXBENS9tVnAxaFZUZmp1
RE82eDk5NzNMMzA4VXR1OGpFbmQrT04KT3A3YmY2bjk0N2pmL1BDTkw4TTFMMXpqZmp2RGI5MjBZ
MC9yem4xc2FKbVBYL2w0Tit2NHMvcXc1engyamp2d2pnUGRjeDg5NTYvMwpXbnd2dC9jU2U4ZnBo
Sk85YnQzTDdYdjd2djV5MnNIVHVqMFcyOFA5R1AxWTZUMTA4Vk1YdXoxdTJjTzk4UEhRZ2ErWng1
M1piVDczCjV2NDlGZElQeHd1ZXVLQXkrMmE0Tmx1bmVlMG95TWtSQWhCb2dZQVVrREwzNUpOUFJx
WjRSTWNlZTJ4RFVCdUZqYWFjY3Nwb2h4MTIKYUxqUFJkOGhZRE5aMGZQUFB4OExmTmhoaDBVVFRE
QkI3blhzMFk5UDBrdzZVVlFiK1kxR0hYWFV5RWFJZlhaMzNYVlhqMnlQT2VhWQphSk5OTm9sc2hO
aUhUUWF3RGtIazlqYXR3LzRlZS9jeDcvV1BXLzdocjRmZFo5am96dGZ1VEFiMzUvOTk2Yi9lZit1
cnQrN2hweHVmCmZmTlpOTUdoRTBSL3Z2YlBEZjViWExsRnRQVFpTL3Q3VmNJb1lKSHNEWWx6MFVD
Z1NydG9pR0FYM2Z3TTJ5Qld0TlJTUzZWRmpxLzEKN2pueXlDUGo2OTZlNUxXN3JhN2VLdHIxeGwx
OThsOTk5MVg4N094eDh4Nyszak1mUEJPTmM4ZzQwWkN2aC9qclV4ODZOUTV6NDRzMwp4bUw5K05P
UC9sazQ0UFlEL0wwcXowT3plY2VaL1h6eTlmZGZSL09mT3IrWDU4cG5yMnp3dnZxNXE2TVI5aDBo
MnYzbTNlUDdIMzc1CllUVFRjVE5GZy9ZZUZQM3YxZi9GOTcvODdzdm9OeWY4SmhwKzMrR2ppNTY4
S0w1LzFpTm5SV01kTkpaUGY2TERKb3ErKytHNzJFOG4KdWw3azlFVmlIc2ZkZDF6c1gvVTlkTTZq
NThUeHozdnN2RGgrMWtsVjlzMXlyWnF1Wk1wclIxbnljZzhDRUtoR29OUUU2N3Z2dnZNegpIRFBP
T0tPZkFVbnFPSk5PT3FrNzRJQURuUDFndUJ0dXVDSHAxZEs1aWR4U3ZIWkV5cE1sNzM0N1pPaEVt
dU9NTTQ2YmJycnA0cXhHCkdHRUVOMmpRb056cjJDTjEwbTR1UC96d1F5ckgvTXZleXBKbWtwL1RM
ejY5emZPSko1NXdldGFHR1dib0k3blFRZ3Y5a3ZqUFoxTlAKUGJXYllvb3AzRVFUVGVSbW1HR0dC
djhKUnAwZ3ZoN2todGJmY3RNczUrOXBaUEs2RjYrTC9jUEpLUStkNGs4MTZ2blp0NStGMi9IeAp2
cmZ1Yys5OStaN1RpSzUxVnVMN0J5OXpzSnRrOUVuOGRaVXdDbGdrZTV4d0cwL3k2aWZ2ZmxGN3k0
dFRSZnhtNDFacEYrbDhXMzJHCjArblVlZjNUVHovNTVJWWJicmk0aldlbHJ4bTk1UHNuSzB3ejkv
TGEzVWpEamVSSDdmUFMwb3lDWnYxQ2ZZMHo4amh4ME9HR0djNmYKdnpMa0ZmZnFKNis2dzVZN3pJ
VjdWWjZIWnZPT00vNzVaS2NiZG5MS1I3TTNtdjFJdXBXblg5bnRzK1EreVZ0dXEydTJjczk4K0l4
YgpjZG9WM1dKVExCYjdqVEw4S0c3N0JiWjMzLy8wdmR2OHlzMjlHWmM4TmV2eWg3bis0TU85ODhV
Nzd2Sm5Mby9qNk9TeVp5NXphODI4ClZueHZ3dEVtak0rcnZvYzB5eFRjeEtOUEhFNHpqMVhaTjh1
MWFyb1NLcThkWlFyTVRRaEFvQktCVWdYa29ZY2Vjbzg5OXBoYmZmWFYKTXhOY2RkV2hMOEF6empq
RCs5OTY2NjF1dmZYV2N6dnZ2TE03L2ZUVDNUVFRUT09rdkx6eXlpdVo4WFh6b29zdWNpZWVlS0w3
NXovLwo2VUxIUy9jbW1XUVNaN011UHQ2RkYxN29PMTFiYnJsbG5NN1hYMy90ZHQ5OWR6OWx2KzY2
NnpvYithdms5OTU3NzdrZGQ5elJMYjc0CjRtN3V1ZWQyOTk1N2J4d3ZTeFo1NXQyUEkyYWNYSERC
QmQ1VVp1V1ZWNDd0bnRXaFdIREJCWjA0eWNubVdhWnRPKzIwazJjc0V3U1YKUzY0S0F4L3c1Lzh1
di94eU45NTQ0N24vKzcvL2M1OTg4b2s3NjZ5ei9QV3l5eTdyWG56eFJSL3FpQ09PY0lzdXVxZzMz
M25ublhjOApjOG5UcXN2alVzUzR5Qzh0eDgwMzMrenJWM0l2dlBEQ3ptYmowa0hpNjJabGVmamho
OTJmL3ZRbnQ4Y2VlM2hGV3V5dXZmYmFIa3lLCjVNM0xNeGJxNTVPaWVqN3R0TlBjM252djdkVHBs
Zm1YbnAwc0YzNEUxVUZUMnkxejMvMzRYUnhrbXNIVHhPYzZrWTI0T2c3RERoclcKbTVwSUNVbTcy
Y2FmelExai94NTU5eEUzMC9Fek9ZWDVLZnJKRFI1NXNEdjcvODcyd2F1RVVjQ3FzcXVkN3JycnJ2
NzV2T3FxcTl5YwpjODdwNXBsbkhuZlBQZmM0UFR0cnJiV1dWOEFPUFBEQVdOeFc2aWV2M29yYW0r
ekE5YXp1dDk5K2JybmxsdlB2T1prTDNYSEhIVjZXClZ1U0lDNUZ4a3RjdWl0cFNSakk5YmhYRmIv
WWRvc1NMeWkxbVcyKzl0VGNiMUx2N3dRY2Y3Q0ZQK29iaTZCbXcyUkQvZm43bW1XZDgKa0NydjAz
UmFlZTN1aU9XUGNLT1BPSG82ZU1QMTRjc2Y3dHQ2dzgzRXhYSDNIK2NWa0RrbW5NUHR1dkN1M3Fm
Szg5Q2J2RzFHeHAzdwo0QWsrcjZXbVdpb2h6Uytua21XRDJUYndONTcvNkhsM3lkT1grUE1GSmwz
Z2wwQS9uNFUwUHZ2dU0zZmlBeWZHL25OUE5MYzNNOU1OCmxUUHBybjNoMmt5VHptU1k1SG5SZXln
WnJwbnpMUGE5NFJyeXprcFhmbm50S01UakNBRUl0RURBUm5nSzNhbW4ydFN6YzVGMVpuUEQKalRI
R0dKSFpwSHQvV3pzUVRULzk5SkVwSFpGMUlDS3pZNDlzdERiYWZQUE5NK1Bib3ZiSU9oaXhuOHk1
Z2htS0tTQ1J6YkRFZnZhagpINjI5OXRyeDlRb3JyQkJaeDhSZjJ3K2JsOU1VSm4rZDUyZWR2R2pG
RlZlTVB2dnNNNStQZFVBajYzaEdRNFlNaWZKa3lic2ZDMUp3CnN0aGlpMFhMTExOTUhFTDVyN25t
bXZHMS9NODU1eHgvYlNQZzBYenp6UmV0c3NvcXNYOFpnempnenlkenpUVlhaSGJXOGUwbGxsZ2kK
Mm5UVFRlUHJhNjY1SmpyenpEUDl0UzFzamF4VEVJMDc3cml4djZhYUo1eHd3dHpyMk1OTzhyZ1VN
Uzd5UzZhdGMxdE1HNm44dGlqYgplMWtudllGZE1ud3JzcWp0bUQxNk5NY2NjMFNYWG5wcHBMWmd5
bWdEa3lKNTgvSk15aFhPeStyNTRvc3ZqbXoySXdUUFBLcDkyUG9jCjd5Y3pyS1E3NGY0VFlwT0d4
OTk5M0h0dGVkV1cvdDVjSjgwVmZmelZ4OG5nMGFGM0hScTlPdVRWYUpYelYvRmhaangyeGdiL2NM
SFMKZVN2RjZjcThhN1lUWm92dWZ2M3U0TzJQVmNJVXlaNU16QlNReUpTT2FLcXBwdkoxWXAxUi84
eFBPKzIwa1NrZGtjemo5dHBycjhpVQpzTWdXNmtldDFFOWV2WlcxTjVtZzJrQ0JGOWVVSWYrK01R
WEV2K05ha1NOWjdyenpySFpSMXBiS251R3krTTI4UTRyS3JUTFo0RXRrCmcwZStlSHF2VHp6eHhK
RU5pT1FWTjdKWmRmOWJjdVdWVi9yblhpYSsxdm56N3hwRmt1eEY3OU4wd2xYYVhaWUpWanFkeTUr
K1BINE8KWktKMDhaTVhSNE1QSGh6ZC9QTE42YUJSbGVjaFJLcVNkd2lybzB5bzlCenFiOS9iOWsx
NlpaNWY5dlJsY1hpOUk5Sk9abGdodmVYUApYZDU3cTZ3WFBINUJkUDdqNThkK2o3enppUGQ3OUox
SG80UHVPQ2g2L3NQblk3OUxuN28wVHJicWUwaW1ZaUhmVzE0ZStuNlBFMG1kCk5NTStSSzNDdFps
MHE3U2prRGRIQ0VDZ0dvSFNHUkR0dmlKblNvWS9adjBuUHkxY2x0T29sV1k5WnB0dE5tY2RhVzh5
WWphLzdybm4KaGk1cVM4ZlhTTDBXMW1ya1djNFVsWGphZStTUlIyNllqaDlsbEZIaWErMFU5TWdq
ajdqNTU1L2Z4OU5NeGtrbm5lVHpLL0t6SDNTZgp2a1l0cjcvK2VqK2FLdG0xS0RKUGxyejdQdU9T
LzB5aGNocFZEVE5BZDk1NXB6TUZ5TWRTL3JyV2pKR2N6QSswU1BQcXE2LzJJNzY2ClY4UkEvbWxu
eW9ZM2h3c21EL1pqN1RTU2JCMEZIL1MvLy8ydk15WE9uMnZFWC9Wa1RTV2RUS1hyUEM1RmpJdjgw
cG1LeHhwcnJPRm0KbjMxMjd5WFRxREFhbWc3Ymlpd0xMTENBbjUyYmFhYVpuQ21GdnYyb1BTV1pG
TW1ibDJkYXRpcjFuSTZUZFMwZXBpeDZMK3ZJWlFYeAo5N1FnZmNYelZuUVB2Zk9RMjIyUjNkenRt
OTdlTUpLcituN3V3K2ZjRkdOTjRUYWJjek1mNTltUG5uWFdtZXFSNW9WclhlaldubmxvCmU1SG5F
KzgvNFJZN2N6R25oYVRCVlFsVFZYYTlPMHdoOURPSHFoTzFmODIrYWhPTTNYYmJ6YWtOYU9NTGxV
SDNXcW1mdkhvcmEyL24Kbm51dXoxL2xublhXV2Yzc29zNWxGdGVLSElyYnJPdHRXNm9TdjVsM1NG
RzVOYk9zOS9yeXl3L2RBRUhtaFN1dHRGSnBrWC8vKzk4Nwp6YXd2dWVTUzd1Q0REM1l2di95eTAz
dExydWg5bXBWdzFYYVhGVGZ2M2cwdjNlQk9mK1IwdndnOW1Ec213MVo1SHBMaG16bVh5VmR3Ckl3
OC9jampOUGI3MnlXdXgzL0RERGgrZmg1T1JoeHZaejNMcVdydGpKWjNNcklKSjFmSDNIKys5VG4z
NDFQaWRrUXliZFY3MkhzcUsKVTNhdmpIMVovRHovc25UYjBZN3laT0UrQkFZS2dWSUZ4RVllUFF2
dGlwVGwxQkhRRkh4eUhZRk1SSkoydktPUFBybzMrY21Lcnc2VgpPcG42d1pINWlZMTR1V0dISFRZ
cmFNTTlLUXd5MTBybUkzTWFkVkNLL0dUS29UQ3lrOWFmekhxMG01Y1VtRHhaOHU0M0NKUnpvWEpO
Ck50bGtUanZaeUVtNVVNZEs3djc3Ny9lZEdMM2Nnck1aRUg4cTVhb1Z0Lzc2NjN0bE1KaUZ5R1Rw
eXkrLzlFcVFkbGlTWW1LTG5lT2sKMDNVVmUxUTR5ZU5TeExqSUw1MmxaTFBSWEs4WXl0VGxmLy83
bi92ODg2SGJ3S2JEdGlLTDBsQUhWNHBZMGlXWkZNbWJsMmN5TFoyMwpvNTdUZVNTdjkxMXlYM2Zk
UnRlNSt6ZS8zeDI0OUlGdTFCRitxVytGdStXVlcxd3d4MWhsK2xYYytLT003Nk5yVjZDMGs1bkt4
V3RmCjdLN2Y4SHIzbS9GLzQ3MS9pTXhVN0pwdG5DM0E5ZGRWd3FUVExicE9QdE1LcC9kSDBvWEJF
QTBjdEZJL2VmVlcxdDRraC9JTHptWUsKNHdHUVZ1UUk2VFJ6N0cxYnFoSy9tWGRJVWJsdnM5MzFa
SDQ3MWxoanhVWFVMb3JwK28wOWZ6NFpjOHd4NDFzYUpKQUxXNFVYdlUvagpTRzArMlh5dXpmME9j
SDZOaUUxR3BGM2R6ME15L2FRcDVldWZ2cDcweWp5ZmV2RFU4ZjIzUDM4N1BnOG5XdVAxay8yVG0y
N3NYOVlDCjZucUVZVWR3S3F2YytVK2M3OWVJYURldDhVY2Qrcjd3SGdYL2xiMkhDcUxtZXBXeHo0
MVk0dEd1ZEV1eXhSc0NBNXJBY0dXbDEzYWYKY25uZkhkQU1pWmswdUpsbm5ya3NxVngvMmZacVJQ
Zm9vNDkyc3N2WGd2YlF5Y2lMSktVbmJ6MUFrWisrWDZLRmtKb1p5SEo1c3VUZAp6MG9qZVUvSzFG
WmJiZVdPT3Vvb3Q4OCsrL2oxSGVFSFdiYk9ra2MyMmZwaGx0UG91K1NUMHRDS2szS2xtYWZ6enov
Zi8vRExmbDRqCmoxcEQ4K21ubithdTVXa2xMOFhKNGxMRXVNZ3ZTd1p0emFsWklxMHhrazI4T2xC
NXJsbFo4dEpKM2krVE55dlBkTnR0UnowblpXejIKL096SHpuYWZmdk9wa3kyMzNMaWpqT3ZlLytw
OWQrVnpWenA5RjBSYjdNclpMakZ1NmFtWGR1ckVhQnZmWmFaZXhoMXd4d0Z1cjl2MgpjaDkrL2FI
dmtOejI2bTJsWWFZYnA3Rmo0eE52NGorMTMyU25OWG5lYXYzazFWdFJlOVBvdSsxQzV0ZWlhSHRr
emNpR3RUaXR5dEVFCkJoKzB0MjJwU3Z4bTNpRkY1WDd6elRjenZ4ZVZyTCt5OG10MlNZcGZVRUtM
M3FkbGFkWHR2OTZzUTJldWxlNkxINy9vUmh0aE5IZlYKYzFlMTlYa0kyK1VxVHkyQ0wzTy9tV0Rv
b0lIQ3BXYzQwdmVTWVVPNlc4NnpwVHY0em9QZDF6OTg3Vlk2ZnlWM3lxcERCOUtDZjd1TwpGejU1
b1Y4d243ZEFQWXQ5Y2pGOHEzSzFLOTFXNVNFZUJQb3pnZElaRUNrZ01oblNWSHN3NjBrQzBXSk9q
ZUJyOFhRclRqTXJVbUswCms1Yk1BN1RRVkozbDRMTHlsSjkrbURRcTl0SkxMNFdnM2l4RE13ZEZm
bVpiN21jOE5Cc1FuR1p4TkZxWEowdmUvUkMvN0todmE4anMKNCs5Ly83dGZBQjdDYTNSUUgrYlMv
dmpCaVlYTXBXUVdGRndlZytDZlBxcVRkTWtsbHpoYnYrTy82eUdUaW4vLys5L2VqQ0YwbU5KeApX
cm5PNDFMRXVNZ3ZMWU0rZUtrRnJOcGNJRGxMbEE2bjYxWmt5VW9uZmE5STNydzgwMmxVcmVkMHZI
WmNhL0c1Rm9WZXNmNFY3ckoxCkwvTi9NaG1SMDI1Wkp6MTRVcHp0Rjk5OTBiQUR6ckRERE92MlhH
eFBOOVZZVS9rdyt0WkFsVEJ4Z20wNGFhVis4dXF0ckwzSmZFZ20Kb25wUGFURjEyRWhDeFdwRmps
Wnc5TFl0VlkxZjlSMVNWRzROS21tV3lyYjVicVdvUHM3YmI3L3RaejIxR1VGd2VlL1Q0Titwb3ha
dwo2M3NnY3R0ZnQ3M2ZDYXZkejhPWUk0M3BOcHRqTTUrbk5vZXdMWG45ZWZJL2ZRVHhydGZ2OHJl
bUdqeVYyMmkyamZ5NXpDN1RMdHdiClBOSmd0L1c4VzZlOTNTUmpUT0pXbjNIb0JqVGFzQ0s1aTFh
UHdEWGQwTXlxYldzY20zOWxKWnZGUGl0Y3MvZmFsVzZ6Y2hBZUFnT0IKUUtrQ0lnaFNEalRTZGZ6
eGpTWWFHdUhTN2tSLy9ldGZ2VTEwQUdZTHRocVVGWTI2cWFPZDVmUmxaeWt4Y3RwWlpyWFZWbXVZ
RGRDSAp0WlNlZm9pa2JJUXZRV3ZYcTVGR0dzbXBjNjExQWZyVDdqa3lkeXJ5MDBjVE5VTWljeTFi
ZU82Vm4zMzMzZGVia09YSmtuZGZNc3NrCmFNODk5L1F6TjdyT2NqTDUwRG9QbVdISmhDQTRyY1hR
VnNZeUFRdE9IUnQxRW13UnZiK2xHWkU4QmlGTytpaUZVU08wR2kyVU9ZUFcKNEdoVVh0dTNwa2Nm
VlRmYWRVdEttSnhZYTBZcnVQUjF1SzlqSHBjaXhrVit5YlIxcmpxVjhxV09vZHFQVExDa09FcldJ
RytJMDRvcwppaXRsTCt3NkZ0SktNaW1TTnkvUGtFNDRWcWxuMnhUQmwxVjV0K0xlL2VJWEU4a3NV
NHVRNXJIM0hldVduWHJaY09tUHMwMHdtOVBICndPUzBOYTg2VWNIWmdsUDMxbWR2aFV1bkQ2REpm
NzFaMW5OampUVFV0S1pLbURpQkNpZHFmOG4zaGI3c3JldlFMc042SnJXTlZ1b24Kcjk3SzJwdG1N
RzJERFQvWXNzRUdHM2p6dlZDY1Z1UlEzTEwzUjdwZFZHbEw2V2MyZVYwbHZ1U3ErZzRwS3JmZXc1
ck4xZHE4NFBRVgpkUDJXSk9zMytJVmoway9yK2JRR0tLd0RVNWk4OTJtSTMrd3hmTUJUOGZLZW5Z
Ky8vamhPVm1aSWNqSlIwdDgrdCszakhudnZNVCtUCnFQdk5QQTlWOGxhYVNYZlVDa2Y1UVFERjNm
UFdQWk5lZm1iejkvLyt2UjlNQ0I2SExuZW9tM3lNeWQzdHI5L3VOR01abko1bHpXaHEKSFl2U25H
QzBDYnlYeXZyS0o3L01ybXc3MzdiK3ZtWkRndE5IR0lOTE1xdjZIdnJvNjQ5Q2RCZDQ2b2JPLzNq
bEg1MEdPL1FuMXd4NwpIOEgrcThLMWxYUkQrc21qM2svYWxVLzlJUndFSU5BRUFldklWWEt2di81
NlpDT0FrZGtIUjhjZGQxeGtDMElqV3pjUm5YZGU0MGVFCnJKTVltWW1SMyszRTdJTWpXMkFlYVFj
YjZ4QkhOOTc0eXdlY1FxYjZ5S0V0UEkzTTlDSFc2WHREQUFBZ0FFbEVRVlM2NG9vcklodngKam5j
OHNjWGJrWmtEK0YxUWR0bGxGNzg3MGRKTEx4M3ZpbVNqK240SEt5dHVaTE1la1pucWhHU2pJai9i
OHRmTFk1MXhIMTloNWZKawp5YnV2T0RiajRuY3ZtbmZlZVhXWjY4VEZPaTA5L00za0xETHp0ZWpR
UXcrTmJNRm1aSXBLWkIyaE9Gd1pnemhnNnNTMnNZeTBvMUJ3CnBpUTFYT3UrS1RhUmJjRXJ6Y04v
L0V2OFZLZTZQdUdFRXp6UDVMVjJDVXE2SWk1NWpCVy95QytadnBtaCtSMnE5QkZNVXpRajdlQmwK
WmkvUlJodHQ1SGZJU29adFJSWXpVL01mOURQRkxESWwyQ2VYWnFJeTU4bGJsR2RTTnAwWDFiTjIz
ckt0a1QxMzFac3AydW5vaGRlbgpQWFJhTk1uaGs4Uzd5c3g5OHR6UnRjOWYyeVBPMGZjZUhZMjQz
NGpSRW1jdTBmQkJNdTFxRXo0ODVteDNuY1hQWER6NjRNc1BvaVB1ClBpSmErUFNGL1VmTTlLRTFV
MTc4OWU4dS8xMzhnYllxWVhvSVVuQkQ3d3p0bEtRUDB0a01RMlNiTi9oZDRkUW10ZnVWelNSRzls
VmkKejJxZGRkYUo3RWUvNmZySnE3ZXk5bWFMMzMyK2tzV1VleStqM2xmaHVXaWxuUlM5UC9MYVJW
RmJVdnROUHJQcFoxcXlGc1ZQVmsyVgpkNGpDNTVWYmZuckd6SHdxc2huZFNQVmxBekNScmQzejkr
V2ZkcXBqRzNTSmJQRjVkTkJCQjBYYmI3KzkzN0V3SFM3dmZab09WM1o5CjNRdlhSVXVkdFZUODdH
aG5xNTF2MkRuNjR0c3Y0cWphRFdxYW82ZUp3OHgrNHV6UkR0ZnZFQzEzem5MUjZBZU83dSt2ZlA3
S1Bud3oKejBPVnZHTWhVaWNmZmZWUnBBK0lEcmZQY0pGMnVkdmx4bDM4QnhIMWdjQ0gzaDY2RTJR
eXlpZGZmeEp0L08rTm82bU9tc3J2WW5YaApFeGRHMnZWcTV1Tm1qdXhyN25IUWt4ODhPWnIyNkdt
ajhmODVmdlRYbS80YTM5ZUhENVdHbkQ3RXVPQnA5cnRoN3dyOWlZMTJCcXY2Ckh0SU9ZdE1kTTEw
Y1AvQlVQWXkwMzBqKy9vYVhiZWp6YW9hOWoyRC9WZUhhU3JvaC9mVFJCc2o4cm54bm4zMTIyb3Ry
Q0VDZ2dNQWcKK2RrUGFtV24wVFNaUG1uaDd2ampWMXVNVnBTNFJqRmw0eTBUSlpuWkpCZElLNTd5
MDRpWUZndHJCRFJ0aWlQeFpiYWszYmZTcnNoUAo2V3BkaTh5MU5Fb25seWRMM3YyUW45WldhSTJI
L1hpR1d6Mk9tdjNRQW52TjhxU2Q1TlQzRDhSQnV3Q2xYUm1EZEhoZFcwZkR6NElFCnYvUjF1Titi
WXhtWExNWWh2eUsvRUNZY05VT2grcGZMYWdPNjN4dFpGTC9NWmNsYmxtYzZ6Yko2VG9mL3RhL2Yr
ZndkditCVXMyYjYKbm9CR1RMVUlOcm43VHBVd25TaEhNL1ZUVm05NTdjMDZ4UDQ3SkpxRjA4eUYz
bGt5VFRXRk9GNVQxb3djZ1V1VjkwY0lHNDY5YlV0Vgo0cWZmR2VucklJdU9XZVVPL25wL2E3WlpN
eGRpcDVuck1pY3pPWVVQNytaMCtLTDNhVHBzSjY4Ny9UeG94a0JtVkpwNTBGcXRzdlZXCk1yOTgr
b09uL2F5Q1BtUVlaajA2eWFnLzVpVlR3L1JtSnYyeG5KUUpBblVTYUZvQnFUUHovcEtXRmtocjl5
cHR6WmwyNnFqSUhFcW0KQ3Vxc3BFMmcwdUc1aGdBRXVvK0FPcng2ZnNOMnNFRkNiWmloUVlPd1cy
QzQzOHl4NlAzUlREb0RJU3p2MDRGUXk1UVJBaEFZQ0FSUQpRR3FvWlkzdTJRZnRlcVJrWmt6K3k4
bjZvcnUrQ3A4MSs5RWpFamNnQUlHdUk2RE5NY3pNMHEvaE1oTW52MjVJYThtMDQ1eitldVB5CjNo
KzlTYk0veHVWOTJoOXJsVEpCQUFJRGxRQUtTQnRyM3I3VTdCZllhMkY5MFlmajJpZ0NTVU1BQWpV
UmtLbVV2akVrOHlCOUpLODMKc3g0MWlUU2drdUY5T3FDcW04SkNBQUw5bkFBS1NEK3ZZSW9IQVFo
QUFBSVFnQUFFSUFDQmJpSlFhUnZlYmhJWVdTQUFBUWhBQUFJUQpnQUFFSUFDQnZrc0FCYVR2MWgy
U1F3QUNFSUFBQkNBQUFRaEFvTThSUUFIcGMxV0d3QkNBQUFRZ0FBRUlRQUFDRU9pN0JGQkErbTdk
CklUa0VJQUFCQ0VBQUFoQ0FBQVQ2SEFFVWtENVhaUWdNQVFoQUFBSVFnQUFFSUFDQnZrc0FCYVR2
MWgyU1F3QUNFSUFBQkNBQUFRaEEKb004UlFBSHBjMVdHd0JDQUFBUWdBQUVJUUFBQ0VPaTdCRkJB
K203ZElUa0VJQUFCQ0VBQUFoQ0FBQVQ2SEFFVWtENVhaUWdNQVFoQQpBQUlRZ0FBRUlBQ0J2a3NB
QmFUdjFoMlNRd0FDRUlBQUJDQUFBUWhBb004UlFBSHBjMVdHd0JDQUFBUWdBQUVJUUFBQ0VPaTdC
RkJBCittN2RJVGtFSUFBQkNFQUFBaENBQUFUNkhBRVVrRDVYWlFnTUFRaEFBQUlRZ0FBRUlBQ0J2
a3NBQmFUdjFoMlNRd0FDRUlBQUJDQUEKQVFoQW9NOFJRQUhwYzFXR3dCQ0FBQVFnQUFFSVFBQUNF
T2k3QkZCQSttN2RJVGtFSUFBQkNFQUFBaENBQUFUNkhBRVVrRDVYWlFnTQpBUWhBQUFJUWdBQUVJ
QUNCdmtzQUJhVHYxaDJTUXdBQ0VJQUFCQ0FBQVFoQW9NOFJHSzdQU1R5QUJmN3BwNS9jZ3c4KzZE
Nzg4RU0zCjY2eXp1c2tubjd3U2pUZmZmTk05OU5CRFB1dzg4OHpqSnBsa2tvWjRaZjROZ2Z2NHhX
dXZ2ZVllZmZSUk4vMzAwN3VaWnBxcHFkS2MKZnZycGJwUlJSbkhycjc5K1UvRUlEQUVJUUFBQ0VJ
QUFCQ0R3QzRGU0JlVFRiejUxUjk5M3RQdjYrNjk5cklsR244Z3RPZVdTYnRieApaM1dEQmczeTl5
NTg4a0wzMkx1UCtmTzVKcHJMclQzTDJyL2tZR2ZmL3ZDdHUvN0Y2OTNsejF6dXZ2dnhPemZwR0pP
NmFjZWUxdjFwCm5qLzVjR1grRFlrTjRJdFZWbG5GZmZEQkIxN3hrQkp4ekRISFZLTHgwa3N2dWV1
dXU4N2RlKys5YnJQTk5uUGJiYmRkUTd3eS80YkEKcVlzbm5uakNYWERCQmZIZDZhYWJ6aTI1NUpK
dXFxbW1pdTkxMDhrTEw3emd1VTB6elRUdWxGTk9hVXEwcDU5KzJvMHp6amhOeGFrYQplTC85OW5P
NzdycXJHM0hFRWF0R0lSd0VJQUFCQ0VBQUFoRG9rd1JLRlpEM3YzemZIWC8vOGU3OXI5NTNrNDB4
bVh2dmkvZmNkejk5CjU5YWRaVjEzNFZvWCtrSmY5ZHhWN3NybnJuUmZmditsaSt6ZlhXUGM1UmFh
YktFWXlCb1hyZUd1ZmZGYXQ5NHM2N2tmZnZyQkhYYlAKWVc2dG1kYUtGWkF5L3ppaEFYd2lKVUYv
enozM1hOTVVGbDk4Y2FlLzNYYmJMVE51bVg5bXBKOXZEaDQ4MkkwKyt1anUrT09QZC92dQp1Ni9U
RE1PcXE2N3FOdHBvSS9lM3YvMnRLT3F2NHJmTU1zdTQ5OTU3ejkxKysrMU41My80NFljM0hhZHFo
SFBQUGRkdHZQSEdsV2UxCnFxWkxPQWhBQUFJUWdBQUVJTkJ0QkVyWGdFdzN6blJ1cTNtMzhuSS91
KzJ6N3RQZFBuV0xUcjZvdS9UcFM5M3JuNzd1NzUrLzV2bE8KNGY0dzV4L2NTTU9PNU01NTdKeTRu
SjkvKzdsWFBxWVpQSTFUdUV2V3VjVHR2K1QrYnZweHB2ZGh5dnpqaEFwT1pGS2oyWUVGRjF6UQp6
VEREREU2ajIvZmZmNytQY2Q1NTU3bHBwNTNXM1hubm5mNTZoUlZXOE5lMzNYWmJuS0k2OWl1dHRK
SWJZNHd4M0FRVFRPQk5iRGJmCmZQUEsvaSsvL0xMNzdXOS82eWFhYUNML3Q4a21tN2doUTRiRThZ
dmtVNkF5ZjNYc045aGdBNSttT3ZmNnUvSEdHMzM2VmNvWEM5TEMKeVpGSEh1bDV5VnpwOWRkZmQ4
OC8vN3liY2NZWm5XWTY3cmpqRGpmcHBKTzYxVmRmM1VrUitjTWYvdUQyMldjZmQvSEZGN3Vqano3
YQovZmpqano1SHhWbGtrVVY4V01VOTZxaWpHaVJaYUtHRmZCNTMzWFdYMjNubm5iMkptTklQRE12
NGxQR1hpZG52ZnZjN045dHNzN20xCjFsckxLWHd6N3RWWFgvWHRTdTNvdE5OTzZ4RzFUTDRlRVJJ
M3BGQ3Fmai82NkNOM3hCRkh1TDMyMnN0cE51U1RUejZKUXhYeHFWTC8KWlh6aWpEaUJBQVFnQUFF
SVFBQUNIU0JRcW9Ba1pYamowemZjQTI4OTRONzUvQjAzK2dpanUzRkdIbXFPOHZRSFQ3dEgzbjNF
YlQ3Mwo1bTdsNlZkMkZ6OTFzVGU3VXR6UlJ4emR6VGpPak82bElTKzVLWTZjd20xenpUWSt6QUZM
SCtDVEx2TlA1cDkzL285Ly9NTnRzODAyCjdwNTc3dkdLeHBSVFRobDNmalVTUCtlY2MzclRKY1cv
NnFxcjNHS0xMZWJlZnZ0dG45eFhYMzNsbGw5K2VUZjExRk43UmVDQkJ4NXcKNnJDR21ZWXkvMisr
K2NZckwvUE5ONTk3NVpWWDNMUFBQdXUrL3ZwcnQrbW1tOGJpRnNtblFHWCtHaG5mWW9zdDNQampq
Ky8yMkdNUAovN2ZBQWd2NDlNdktGd3ZSNHNrT08remc1cGhqRHJmdXV1djYwWG10blZoNzdiVjlS
MzdSUlJmTlRGV0tpdXBnMkdHSDlmN0REeis4Ck8raWdnNXc2OGxMOERqNzQ0SVlPdHBSREtRZGlO
dGxray9uMUtsSmdOTE1pVjhTbmpML3FUek04TXAzNjE3Lys1WlpiYmpuZjBmY0oKVi94UFpYbnNz
Y2U4RXZQdXUrLzJpRlVrWDQvQXFSc2pqenl5VjdpR0cyNDROL0hFRTN2R1lqRENDQ1BFSVl2NGxO
Vi9HWjg0RTA0ZwpBQUVJUUFBQ0VJQkFod2lVbW1BbDVaangrQm45NWVDUkJydmRGOXZkalRyQ3FQ
NzZ2TWZQOHpNZmQ3NStweHRrLzRaOE04UmQvZnpWCmJzMloxL1QrMTJ4NGpUdmt6a1BjK1UrYzcw
NTQ4QVQvdDlzaXU3a0RsejZ3a3I4UFZQRGZ3Z3N2N0R2bE45MTBrMTk3SUZNWmRacUQKRzJhWVgv
UXNkWWJWMlF0T3BqaWZmZmFaVTV4Z2YzL0ZGVmY0anJMQ2xQbExZVkdITzRvaW40YmlhRFpBQzVh
Ly8vNTdwL3pLNUN2egpuMktLS2R3c3M4emlSaHR0TkRmLy9QTXJpd1pYVkw2R2dDMWVhRlpqaVNX
V2NEdnR0Sk5YN000KysyeXZyQ1dUZStPTk45dzY2NnpqCkZUdXREVHJ3d0tGMXF6QS8vUENEbjdI
WmZmZmQzWGZmZmVlMG1QNisrKzd6aXAvOEpiL3FSTE1mVXJUa05DTVZYQkdmTXY0MzNIQ0QKejE4
ek9aSkxpL2VmZlBKSnA0NTVNMjZra1VieWRTblowNjVJdm5UWTlMVTJFdERNMFNHSEhPS1ZQTlYx
MnBYeEthci9NajVxbnpnSQpRQUFDRUlBQUJDRFFTUUsvOU13cjVIclJXaGU1QnpaL3dIMjQ2NGR1
NTRWMjlqSFU4YjdnaVF2Y2FDT001bzY3L3pqMzBEc1B1ZUdICkdkNmQrL2k1M3YrVklhKzR2Vy9i
MngyNXdwRnV5RitIdUF2WHZOQ05NTXdJN3FRSFQzSS9SVCs1TXY4S1l2bEYxU2VlZUtKVDUrM0YK
RjEvMEprclhYSE5OSEZVZFQzV0NnL3YyMjIvRHFkTzVkalpLamppUFBmYllibzAxMXZCaHl2eS8v
UEpMcDg2cHpITTBpNkkvamJoZgpmZlhWdnNPcVJMVG91MGkrTXY5WTJKeVRvdkxsUkducXRwU2Za
WmRkMXEvemtQbVVabVRFS09uR0cyODhiejUwL2ZYWGU5TXNMVVFQClRndmZKNXh3UW5mNTVaZDd4
VTdwQmZPc0VFYkhLVzJtSWNzVjhTbmpMMU1telJ5SlVYQlNFT3QwUmZKVnpVZnlTVGtyY25sOGl1
cS8KakU5UmZ2aEJBQUlRZ0FBRUlBQ0JkaEFvVlVDKytlRWI5OVQ3VC9tOFAvbi85dTRHeHE2eVRn
UDRXNzRLTGJSRmlvVXF0aHVRN1ZvRgpGR3BBRkNRb1NBeFpVS0tOdUdDeWJoQ0ZyU0V1RzcrU0tx
SUJRZndBTmFqUWlHZ1JZbU5kcWdtVUFscVZ6MVlLSzZ1V3FWU3BMYVlmCjhsVmE2TjN6SG5MSHRy
Unpad2E2NGRuOGJsUG16cHg3emp6Mzk5ZGtuam5uUFYyL3Rrd2FPNm5zTk9MdnUxMXgxeFhsait2
K1dENTYKNUVmTDBuOWZXbTQrNCtZeWRkK3BaZDd2NTVVRmZRdEszOXErdG95Y09lZk04dWZIL2x3
TzNlL1FNbXJYVWFYZUxhc2VwOWYyd2J6cAoraHZvV2pCbXpKalJyajJvMS9sM2J6dGI5NjluUSti
UG45K2VwYWkvcVo4N2QyNy9ZZXRsUlBXSHRGb1E2akZxb2FvTGdyc0xxSHR0CnI1ZGUxWDNxYjVM
cjdWbnIzMm5UcHJXWGNOV3YxMGV2ZkwyMjk0ZmR6cE9CM3Q5MmRobnlsK3ZhaEZvK1pzMmFWYzQ3
Nzd6bjdWOUwKV1Bjc3plWWJxMjA5NDFBdjI2cVhRZDEyMjIzdHBYS2J2NmJYODRGOGV2blh5KzN1
dSsrKzlrNWRkYjczM250dnVlcXFxM3A5eXlGdApIeWpmWUE4MGR1ellzbWpSb3ZibHExYXRhdjgz
V00rZ0RlWXgwUHg3K1F6bStGNURnQUFCQWdRSUVIaFJCWm9ma2dkOExGbTVwTFA3CkJidDN5c3pT
MmZrek8zZXVmK0Q2L3RkdmVHWkRaL3hGNDl0dFl6NC9wclA2eWRXZEMyKy9zRE5pNW9qMmE4ZGNk
VXpuemovZDJUNGYKZWNISS9tTWMrYTBqT3dzZlh0Z2VwOWYyL204MndKTm1ZWE9uK1MxM3A3azhx
ZE1VaGs1enVWQ251VjF0L3g3Tkl0eE84KzlmZEpyZgp3bmVhdFFidDl2cTh1WFNxZlUyeitMblRM
SHB1ajlFc1lPODBDOVU3elErdC9mdjMybjd6elRkM21yTXY3ZC9tK3YxTzg1dnFUbk5KClRmLyt2
ZkwxMnQ1Y290TnB6amgwbXBMVGFSYkpkNXJGN3AxbUFYai84WHU5ditZTVJLZFpYOUJwTHVIcU5E
L290cytiUmZQOSsvZmEKM24zaFNTZWQxSms1YzJiMzAvWmpjNmFuZFdzdW9XcVAyMXhHdGNYMitr
bHpDVmVuS1IrZDVpeEpwMW1EMFduS1NQcyttaHNGZEpyYgorSGFheTVBNlRZRnBYMU56TmdWeWky
UDA4dW5sM3hUSzlyMDNhMHJhR1oxeHhobWQwYU5IZCtiTW1iUEY5OW5lSjgyZHM5cjMxdHlrCm9G
T1BVVE1lZnZqaC9TL3ZsYS8vaFFNOGFjN1l0ZSsvdVgxeFovejQ4WjF6emptbjB4U21RZm4wbW44
dm53RmkyVVNBQUFFQ0JBZ1EKZU5FRlJ0UWp2cWlOWnF1RDFjTXZXN3VzMUg4L3BINmNNSHBDMlh1
UHYxOEMwMnY3Vm9mYjVxZDFEVWU5ZzFYOU56THFwVlQxdDhuYgpldFRMY2NhTkc3ZXRUZTNYNmdM
amVtblI1cGRqYmY3aVh0dFhyRmpSN3J2MXZ4WFJLMSt2N1p0bkdPaDVyL2MzMEw2OXRsWGI1b2Z1
ClV2L2RqKzM1RG5TTXVoaTgva1ovT1BzTzFtZDcvalZYUGZ0Unp5elVoZDR2OW1PdytYcDkzL3Iv
aGRXclY3Zi9HOXo4a3JGZSszVzMKOTVyL1FEN2RZL2hJZ0FBQkFnUUlFTmpSQWp1OGdPem9OK0Q0
TzFhZy9yc2VDeFlzS0hVeGQvMFgyT3ZsUy9VdVRSNEVDQkFnUUlBQQpBUUlFaGlQdzk4VWN3OW5i
UHYvdkJXcnBxTGNXYmk0eGE4K0ExTE1JSGdRSUVDQkFnQUFCQWdTR0srQU15SERsN0VlQUFBRUNC
QWdRCklFQ0F3SkFGbkFFWk1wa2RDQkFnUUlBQUFRSUVDQkFZcm9BQ01sdzUreEVnUUlBQUFRSUVD
QkFnTUdRQkJXVElaSFlnUUlBQUFRSUUKQ0JBZ1FHQzRBZ3JJY09Yc1I0QUFBUUlFQ0JBZ1FJREFr
QVVVa0NHVDJZRUFBUUlFQ0JBZ1FJQUFnZUVLS0NERGxiTWZBUUlFQ0JBZwpRSUFBQVFKREZsQkFo
a3htQndJRUNCQWdRSUFBQVFJRWhpdWdnQXhYem40RUNCQWdRSUFBQVFJRUNBeFpRQUVaTXBrZENC
QWdRSUFBCkFRSUVDQkFZcm9BQ01sdzUreEVnUUlBQUFRSUVDQkFnTUdRQkJXVElaSFlnUUlBQUFR
SUVDQkFnUUdDNEFnckljT1hzUjRBQUFRSUUKQ0JBZ1FJREFrQVVVa0NHVDJZRUFBUUlFQ0JBZ1FJ
QUFnZUVLS0NERGxiTWZBUUlFQ0JBZ1FJQUFBUUpERmxCQWhreG1Cd0lFQ0JBZwpRSUFBQVFJRWhp
dWdnQXhYem40RUNCQWdRSUFBQVFJRUNBeFpRQUVaTXBrZENCQWdRSUFBQVFJRUNCQVlyb0FDTWx3
NSt4RWdRSUFBCkFRSUVDQkFnTUdTQlhYcnRjYzhqOTVRZlB2REQwbW4rYlA3WVphZGR5amx2UEtl
c2ZtcDErY0dTSDVSTm5VMmJieTZqZHh0ZFB2R1cKVDVTZFJ1eFVubjdtNmZLelAveXMvT2kzUHlv
Ym50MVFYam5tbGVXZ2x4MVV6anJpck5McitCUDNtcmpGY2JmM1NjMDQ3L2Z6eXJyMQo2OHBSQnh4
VjdsOTFmNWwxeXF6Mis5ZHNWOTV6WmJsMTJhMWwxSzZqeXFsVFRpMG4vK1BKN2FHK2ZlKzNTOSth
dnZLZXFlOHBoKzUzCmFQdTFHMzkzWS9uRnc3OG94MDQrdGh6MXlxUEtWKzc0U25scTQxUHR0djMz
MnI4Y04vbTQ4dHFYdjdhTUdER2kzTkozUzdscDZVM3QKdHZwZVR6L2s5UEthZlYvVGZsNy9VM01N
NUxOb3hhSVg3TnYvelR3aFFJQUFBUUlFQ0JBZzhCSVg2RmxBWnQ4L3UxeCs1K1dsRm9GbAphNWVW
a2J1TUxQdnZ1WC9wVzl0WERwbHdTSGxtMHpQbDBsOWRXbW9ocWFXaVBoNTcrckh5ME5xSHlsbUhu
MVgySGIxdmVkZDE3eXJ6Ci9qQ3ZUSjg2dlgzOUpiKzZwSnoyVDZlMUJhVFg4YWUvZG5wUHduUG5u
VnN1dit2eU1tN2t1TFpFZlBxV1Q1Y05temFVcjUzMHRUSjIKOTdIbGxObW5sSi84N2lkbHd1Z0pi
YmFyRjE5ZExqanVndktwWXo1VnJ2bk5OZVgyaDI4djgvdm1sMTkvOE5mbHlZMVBsdWszVEMrUApi
M3k4Yk55MHNSeTQ5NEhsaWp1dktLdWVYRlVPR0hOQVdmbjR5dmJZNzUzNjNqTDd0Tm5sdG1XM3Rl
Vm05ZnJWWmVLZUU4dnJKcnh1Cml3S3krQytMQi9UcDlmNEg0OXNUeUFzSUVDQkFnQUFCQWdRSXZF
UUVlbDZDOWNUR0o4cWJYL1htc25URzB2S3lQVjVXanAxMGJQdDgKek1neDdRL3I3ei9rL2VVTis3
K2hITGJmWVdYeGh4YVhMNTM0cGZLZGYvNU9HZEg4MlgyWDNkc2YrR3Y1cUQvSVgvdnVhOHYxNzdt
KwpmTzY0ejVXRDl6bTRKZWgxL0Y1T3Yxeit5N1o4SFA4UHg1Zmw1eTB2dDM3ZzFuTHBpWmUydTlV
ekZQV3NTeTBmOWF4SDM0eSswdmZSCnZqSjEzNm5sczdkOXRqM3owWDN0M1kvY1hSNWE4MUI3RnFX
V2tKMmFQNWVjY0VsNTlUNnZMbWRQTzdzOTNvUG5QRmpXZlh4ZGVjdXIKM2xKdStPOGJ5c1BySGk2
Zk9lNHo1UXR2KzBLN2ZjNzBPV1hyd3RUTHA5Zjc3N1YvTHgvYkNSQWdRSUFBQVFJRUNMeVVCSG9X
a01uagpKcGNwNDZjOEwvUHI5M3Q5ZTFha3U2RmV4blQyZjUxZGp2L3U4V1h2M2ZjdTk1NTFiOWxy
NUY3dDN5bjdUQ2xMMXl3dGt5NmJWRDV5CjQwZktPdzkrWjdudytBdmJYUWQ3L083MzJmcmovSWZt
dDE4NjdUV25sVDEzMjdOOS9xRWpQbFRtVHA5YmFrbXFsMTNWeC90ZTk3NnkKeDY1N2xKZVBmbms1
K2VDVDI3TWJDNWN2YkV0VTNWNkxWVDBiY2QzOTE1VzNUbjVyMmRUOHFaZU9iZjVZdm01NXVldlBk
NVVWajYwbwplKzIyVjlsbmozMDIzenpnOCszNURQYjliMi8vQWIrcGpRUUlFQ0JBZ0FBQkFnUmVZ
Z0k5TDhFNi8ranp0eGw1d1FjV2JQSDF4emM4Clh1cmxSdlZSMTBMVVM1RzZqeHRQdjdGYzlJdUx5
clZMcmkxZnYvdnI3ZCtQdi9uajVmUEhmNzRNOXZqZFkyMzlzYTVCcVkrNnJxVDcKcUplRGRkZDRy
SGxxVGZ2bHpkZVNkSi9YYmVOSGpXKzMxek1YOVZLeVJ4NTdwRno4OW92TExjdHVhY3RKdmVTcys1
aHl4WE5GckJhcwpUeDd6eVhhZFMzZmIxaDkvODVmZmxGb3U2aVZnOWJFOW44RysvKzN0di9YMzlU
a0JBZ1FJRUNCQWdBQ0JsN0pBenpNZ2d3MWZDOGZDCmYxMVlMbm43SmUyQzlTT3VQS0pzZkhaamU1
blR6RnRubHN2ZWNWbFo4NTlyeXV4M3p5Njc3YlJiK2ViZDMzemV3dlhCZnEvTlg5YzkKTzlNOUU5
TGQ5dXltWjl1bjNRWGh0Ly94OXU2bTh2T0hmOTQrci92V3k2M3E0OFNEVG13WDFML3BnRGYxbjls
NTZwbm5GcDYzTDJqKwpjOTFwMTVXNy91MnU4dGZ6LzFvKzlxYVBkYis4elkrblhuZHFtYlY0VnYr
MjdmbjB2NkRIa3hlNmY0L0QyMHlBQUFFQ0JBZ1FJRURnCi8wU2c1eG1RbXFMZXFhcXVrVmovelBx
eS9HL0x5N2Z1K1ZZNTRjQVR5cVJ4azBxOUxHblZFNnZLemlOMmJpOWhxbmVKK3Y2Uzc1ZDcKVnR4
VDFxNWYyeTVXdithK2E5cTdTSDN4aEMrMmk4VHJuYWpxdXBGNnBxVFg4ZHNYRFBDZmVtbFZYYzl4
MWFLcjJqdGNIZjJxbzl0MQpIRFhEVGY5eVUvbmdHejVZTGw1NGNmdTMwK21VRlkrdktEOSs4TWZs
c0FtSGxYbzNxL052ZnU0TXo0Ti9mYkFzT210UmV4blhWKy80CmF2c2RhMms1WmNvcDVZRlZEN1Nm
MS9jemFleWsvdHoxaTB0V0xtbnZtRldmei8yZnVlM245WGs5TS9QMHMwLzM5S21MOUYrSWI5M2YK
Z3dBQkFnUUlFQ0JBZ0VDS3dJam1oL0l0NzYrN2plUm56am16ZlBlKzcvWnZxUXZNTHp2eHNqTGp5
Qm50SGFMTy9lbTV6N3RONzZoZApScFdWLzdHeS9QYlIzNVkzZnZ1TlplVE9JOXNmeUd0Um1UWnhX
cnRRdko1dHFJK0JqdC8vVFFkNFVrdkFHWFBPS0l0WFBuY0pXTDFiClZWMFRjdEhiTGlxNzdyeHJ1
ZU5QZDVUVGYzUjZ1dzZsSHVib0E0NHUzM3ZYOThyWWtXUEw1QzlQTG4vYjhMZnlqZ1BmVVg3Ni9w
KzIKZCttYWVPbkU4dWlUajVZajlqK2lYSDNLMVdYYWxkUEsrbWZYUDFleW1qdGYxV04zSHgrKzhj
UGxHM2Qvby90cC84ZHFkT1hKVjdicgpTQWJ5cWV0V0Juci85UTVjdmZidi82YWVFQ0JBZ0FBQkFn
UUlFSGlKQ3d5cWdMeVE5MUQ3VGIxOWJ6MHpVai9XVytIdXZjZmVMK1NRCjI5MzMwU2NlYmYrZGtW
ZU1lY1UyWDFQUDF0U0Y2TjExSDl0OGtTOFNJRUNBQUFFQ0JBZ1FJTEREQkhaNEFkbGh5UjJZQUFF
Q0JBZ1EKSUVDQUFJRTRnZWNXWWNURkZwZ0FBUUlFQ0JBZ1FJQUFnVVFCQlNSeGFqSVRJRUNBQUFF
Q0JBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQQpnQUNCUkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZC
QVFnY25OZ0VDQkFnUUlFQ0FBSUZFQVFVa2NXb3lFeUJBZ0FBQkFnUUlFQWdWClVFQkNCeWMyQVFJ
RUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNCQWdRQ0JWUVFFSUhKellCQWdRSUVDQkFnQUNC
UkFFRkpIRnEKTWhNZ1FJQUFBUUlFQ0JBSUZWQkFRZ2NuTmdFQ0JBZ1FJRUNBQUlGRUFRVWtjV295
RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRQpDQkFnUUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVD
QkFnUUNCVlFRRUlISnpZQkFnUUlFQ0JBZ0FDQlJBRUZKSEZxTWhNZ1FJQUFBUUlFCkNCQUlGVkJB
UWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVD
QkFnUUlBQWdVUUIKQlNSeGFqSVRJRUNBQUFFQ0JBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0JS
QUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBUWdjbgpOZ0VDQkFnUUlFQ0FBSUZFQVFVa2NXb3lF
eUJBZ0FBQkFnUUlFQWdWVUVCQ0J5YzJBUUlFQ0JBZ1FJQUFnVVFCQlNSeGFqSVRJRUNBCkFBRUNC
QWdRQ0JWUVFFSUhKellCQWdRSUVDQkFnQUNCUkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZCQVFn
Y25OZ0VDQkFnUUlFQ0EKQUlGRUFRVWtjV295RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRUNC
QWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNCQWdRQ0JWUQpRRUlISnpZQkFnUUlFQ0JBZ0FDQlJB
RUZKSEZxTWhNZ1FJQUFBUUlFQ0JBSUZWQkFRZ2NuTmdFQ0JBZ1FJRUNBQUlGRUFRVWtjV295CkV5
QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVDQkFn
UUNCVlFRRUlISnpZQkFnUUkKRUNCQWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBUWdj
bk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5QkFnQUFCQWdRSQpFQWdWVUVCQ0J5YzJBUUlFQ0JB
Z1FJQUFnVVFCQlNSeGFqSVRJRUNBQUFFQ0JBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0JSQUVG
CkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZCQVFnY25OZ0VDQkFnUUlFQ0FBSUZFQVFVa2NXb3lFeUJB
Z0FBQkFnUUlFQWdWVUVCQ0J5YzIKQVFJRUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNCQWdR
Q0JWUVFFSUhKellCQWdRSUVDQkFnQUNCUkFFRkpIRnFNaE1nUUlBQQpBUUlFQ0JBSUZWQkFRZ2Nu
TmdFQ0JBZ1FJRUNBQUlGRUFRVWtjV295RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRUNCQWdR
SUFBCmdVUUJCU1J4YWpJVElFQ0FBQUVDQkFnUUNCVlFRRUlISnpZQkFnUUlFQ0JBZ0FDQlJBRUZK
SEZxTWhNZ1FJQUFBUUlFQ0JBSUZWQkEKUWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5QkFn
QUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJVApJRUNBQUFFQ0JBZ1FD
QlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBUWdjbk5n
RUNCQWdRCklFQ0FBSUZFQVFVa2NXb3lFeUJBZ0FBQkFnUUlFQWdWVUVCQ0J5YzJBUUlFQ0d5bHNp
OEFBQW1PU1VSQlZCQWdRSUFBZ1VRQkJTUngKYWpJVElFQ0FBQUVDQkFnUUNCVlFRRUlISnpZQkFn
UUlFQ0JBZ0FDQlJBRUZKSEZxTWhNZ1FJQUFBUUlFQ0JBSUZWQkFRZ2NuTmdFQwpCQWdRSUVDQUFJ
RkVBUVVrY1dveUV5QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJ
VElFQ0FBQUVDCkJBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJ
RUNCQUlGVkJBUWdjbk5nRUNCQWdRSUVDQUFJRkUKQVFVa2NXb3lFeUJBZ0FBQkFnUUlFQWdWVUVC
Q0J5YzJBUUlFQ0JBZ1FJQUFnVVFCQlNSeGFqSVRJRUNBQUFFQ0JBZ1FDQlZRUUVJSApKellCQWdR
SUVDQkFnQUNCUkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZCQVFnY25OZ0VDQkFnUUlFQ0FBSUZF
QVFVa2NXb3lFeUJBCmdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRUNCQWdRSUFBZ1VRQkJTUnhhaklU
SUVDQUFBRUNCQWdRQ0JWUVFFSUhKellCQWdRSUVDQkEKZ0FDQlJBRUZKSEZxTWhNZ1FJQUFBUUlF
Q0JBSUZWQkFRZ2NuTmdFQ0JBZ1FJRUNBQUlGRUFRVWtjV295RXlCQWdBQUJBZ1FJRUFnVgpVRUJD
QnljMkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVDQkFnUUNCVlFRRUlISnpZQkFnUUlF
Q0JBZ0FDQlJBRUZKSEZxCk1oTWdRSUFBQVFJRUNCQUlGVkJBUWdjbk5nRUNCQWdRSUVDQUFJRkVB
UVVrY1dveUV5QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUUKQ0JBZ1FJQUFnVVFCQlNSeGFqSVRJ
RUNBQUFFQ0JBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJRQpD
QkFJRlZCQVFnY25OZ0VDQkFnUUlFQ0FBSUZFQVFVa2NXb3lFeUJBZ0FBQkFnUUlFQWdWVUVCQ0J5
YzJBUUlFQ0JBZ1FJQUFnVVFCCkJTUnhhaklUSUVDQUFBRUNCQWdRQ0JWUVFFSUhKellCQWdRSUVD
QkFnQUNCUkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZCQVFnY24KTmdFQ0JBZ1FJRUNBQUlGRUFR
VWtjV295RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVD
QQpBQUVDQkFnUUNCVlFRRUlISnpZQkFnUUlFQ0JBZ0FDQlJBRUZKSEZxTWhNZ1FJQUFBUUlFQ0JB
SUZWQkFRZ2NuTmdFQ0JBZ1FJRUNBCkFJRkVBUVVrY1dveUV5QkFnQUFCQWdRSUVBZ1ZVRUJDQnlj
MkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVDQkFnUUNCVlEKUUVJSEp6WUJBZ1FJRUNC
QWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBUWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVr
Y1dveQpFeUJBZ0FBQkFnUUlFQWdWVUVCQ0J5YzJBUUlFQ0JBZ1FJQUFnVVFCQlNSeGFqSVRJRUNB
QUFFQ0JBZ1FDQlZRUUVJSEp6WUJBZ1FJCkVDQkFnQUNCUkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJ
RlZCQVFnY25OZ0VDQkFnUUlFQ0FBSUZFQVFVa2NXb3lFeUJBZ0FBQkFnUUkKRUFnVlVFQkNCeWMy
QVFJRUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNCQWdRQ0JWUVFFSUhKellCQWdRSUVDQkFn
QUNCUkFFRgpKSEZxTWhNZ1FJQUFBUUlFQ0JBSUZWQkFRZ2NuTmdFQ0JBZ1FJRUNBQUlGRUFRVWtj
V295RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyCkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJVElFQ0FB
QUVDQkFnUUNCVlFRRUlISnpZQkFnUUlFQ0JBZ0FDQlJBRUZKSEZxTWhNZ1FJQUEKQVFJRUNCQUlG
VkJBUWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFR
SUVDQkFnUUlBQQpnVVFCQlNSeGFqSVRJRUNBQUFFQ0JBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdB
Q0JSQUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBClFnY25OZ0VDQkFnUUlFQ0FBSUZFQVFVa2NX
b3lFeUJBZ0FBQkFnUUlFQWdWVUVCQ0J5YzJBUUlFQ0JBZ1FJQUFnVVFCQlNSeGFqSVQKSUVDQUFB
RUNCQWdRQ0JWUVFFSUhKellCQWdRSUVDQkFnQUNCUkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZC
QVFnY25OZ0VDQkFnUQpJRUNBQUlGRUFRVWtjV295RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJ
RUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNCQWdRCkNCVlFRRUlISnpZQkFnUUlFQ0JBZ0FD
QlJBRUZKSEZxTWhNZ1FJQUFBUUlFQ0JBSUZWQkFRZ2NuTmdFQ0JBZ1FJRUNBQUlGRUFRVWsKY1dv
eUV5QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVDQkFnUUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVD
QkFnUUNCVlFRRUlISnpZQgpBZ1FJRUNCQWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJB
UWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5QkFnQUFCCkFnUUlFQWdWVUVCQ0J5YzJBUUlF
Q0JBZ1FJQUFnVVFCQlNSeGFqSVRJRUNBQUFFQ0JBZ1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0IK
UkFFRkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZCQVFnY25OZ0VDQkFnUUlFQ0FBSUZFQVFVa2NXb3lF
eUJBZ0FBQkFnUUlFQWdWVUVCQwpCeWMyQVFJRUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNC
QWdRQ0JWUVFFSUhKellCQWdRSUVDQkFnQUNCUkFFRkpIRnFNaE1nClFJQUFBUUlFQ0JBSUZWQkFR
Z2NuTmdFQ0JBZ1FJRUNBQUlGRUFRVWtjV295RXlCQWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRUNC
QWcKUUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVDQkFnUUNCVlFRRUlISnpZQkFnUUlFQ0JBZ0FDQlJB
RUZKSEZxTWhNZ1FJQUFBUUlFQ0JBSQpGVkJBUWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5
QkFnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVDQkFnUUlBQWdVUUJCU1J4CmFqSVRJRUNBQUFFQ0JB
Z1FDQlZRUUVJSEp6WUJBZ1FJRUNCQWdBQ0JSQUVGSkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBUWdj
bk5nRUMKQkFnUUlFQ0FBSUZFQVFVa2NXb3lFeUJBZ0FBQkFnUUlFQWdWVUVCQ0J5YzJBUUlFQ0JB
Z1FJQUFnVVFCQlNSeGFqSVRJRUNBQUFFQwpCQWdRQ0JWUVFFSUhKellCQWdRSUVDQkFnQUNCUkFF
RkpIRnFNaE1nUUlBQUFRSUVDQkFJRlZCQVFnY25OZ0VDQkFnUUlFQ0FBSUZFCkFRVWtjV295RXlC
QWdBQUJBZ1FJRUFnVlVFQkNCeWMyQVFJRUNCQWdRSUFBZ1VRQkJTUnhhaklUSUVDQUFBRUNCQWdR
Q0JWUVFFSUgKSnpZQkFnUUlFQ0JBZ0FDQlJBRUZKSEZxTWhNZ1FJQUFBUUlFQ0JBSUZWQkFRZ2Nu
TmdFQ0JBZ1FJRUNBQUlGRUFRVWtjV295RXlCQQpnQUFCQWdRSUVBZ1ZVRUJDQnljMkFRSUVDQkFn
UUlBQWdVUUJCU1J4YWpJVElFQ0FBQUVDQkFnUUNCVlFRRUlISnpZQkFnUUlFQ0JBCmdBQ0JSQUVG
SkhGcU1oTWdRSUFBQVFJRUNCQUlGVkJBUWdjbk5nRUNCQWdRSUVDQUFJRkVBUVVrY1dveUV5QkFn
QUFCQWdRSUVBZ1YKVUVCQ0J5YzJBUUlFQ0JBZ1FJQUFnVVFCQlNSeGFqSVRJRUNBQUFFQ0JBZ1FD
Qlg0WDk1R2lvUTl3bUJQQUFBQUFFbEZUa1N1UW1DQwoK
</data>
<flag name="review"
          id="75070"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>