<?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>52162</bug_id>
          
          <creation_ts>2011-01-10 11:49:08 -0800</creation_ts>
          <short_desc>Implement CSS3 Images cross-fade() image function</short_desc>
          <delta_ts>2012-01-13 16:32:57 -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>CSS</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72639</dependson>
          <blocked>46590</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>mitz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>peter</cc>
    
    <cc>rniwa</cc>
    
    <cc>sebastian</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>webmaster</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>331786</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-10 11:49:08 -0800</bug_when>
    <thetext>We should implement http://dev.w3.org/csswg/css3-images/#cross-fade-function so that we can enable transitions for background-image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458558</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-29 16:39:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/10042838&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492309</commentid>
    <comment_count>2</comment_count>
      <attachid>112832</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-10-28 01:33:11 -0700</bug_when>
    <thetext>Created attachment 112832
parse -webkit-cross-fade</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492443</commentid>
    <comment_count>3</comment_count>
      <attachid>112832</attachid>
    <who name="">mitz</who>
    <bug_when>2011-10-28 07:40:48 -0700</bug_when>
    <thetext>Comment on attachment 112832
parse -webkit-cross-fade

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

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:29
&gt; +#include &quot;RenderObject.h&quot;

It looks like a forward declaration of RenderObject would suffice here.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:35
&gt; +

No need for this empty line.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:41
&gt; +    // TODO: what do we show if these haven&apos;t been set yet!?

WebKit style is to use “FIXME” in comments, not “TODO”.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:61
&gt; +    UNUSED_PARAM(size);
&gt; +    
&gt; +    if (size.isEmpty())

size is not unused after all…

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:64
&gt; +    return 0;

But maybe it should be?

&gt; Source/WebCore/css/CSSCrossfadeValue.h:46
&gt; +    virtual String cssText() const;
&gt; +
&gt; +    virtual PassRefPtr&lt;Image&gt; image(RenderObject*, const IntSize&amp;);
&gt; +    virtual bool isFixedSize() const { return false; }
&gt; +    virtual IntSize fixedSize(const RenderObject*);

These should can all be marked OVERRIDE.

&gt; Source/WebCore/css/CSSParser.h:94
&gt; +    bool parseFillImage(CSSParserValueList *, RefPtr&lt;CSSValue&gt;&amp;);

Extra space before the star.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492532</commentid>
    <comment_count>4</comment_count>
      <attachid>112832</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-28 10:58:43 -0700</bug_when>
    <thetext>Comment on attachment 112832
parse -webkit-cross-fade

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

Also, patch doesn&apos;t apply.

&gt; LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:16
&gt; +PASS testCrossfade(&quot;background-image: -webkit-cross-fade(20%, url(http://example.com/a.png), url(http://example.com/b.png))&quot;, &quot;background-image&quot;) is &quot;none&quot;
&gt; +PASS successfullyParsed is true

You should test
-webkit-cross-fade(url(..),)
-webkit-cross-fade(,)
-webkit-cross-fade(,url(...)) as well.

&gt; Source/WebCore/css/CSSCrossfadeValue.h:50
&gt; +    void setFromImage(const PassRefPtr&lt;CSSImageValue&gt; fromImage) { m_fromImage = fromImage; }
&gt; +    void setToImage(const PassRefPtr&lt;CSSImageValue&gt; toImage) { m_toImage = toImage; }
&gt; +    void setPercentage(const PassRefPtr&lt;CSSPrimitiveValue&gt; percentage) { m_percentage = percentage; }

No need for the consts.

Perhaps you should just pass the two CSSImageValues into the create() method and ctor?

&gt; Source/WebCore/css/CSSParser.cpp:2791
&gt; +bool CSSParser::parseFillImage(CSSParserValueList * valueList, RefPtr&lt;CSSValue&gt;&amp; value)

No space before the * for any of these.

&gt; Source/WebCore/css/CSSParser.cpp:6195
&gt; +    RefPtr&lt;CSSCrossfadeValue&gt; result = CSSCrossfadeValue::create();

Might as well delay this until you actually need it.

&gt; Source/WebCore/css/CSSParser.cpp:6229
&gt; +    if (!a || a-&gt;unit != CSSPrimitiveValue::CSS_PERCENTAGE)
&gt; +        return false;

Should we allow fractions here (&quot;0.4&quot;)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492740</commentid>
    <comment_count>5</comment_count>
      <attachid>112928</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-10-28 15:56:28 -0700</bug_when>
    <thetext>Created attachment 112928
address changes

The only thing (as far as I can see) that this patch doesn&apos;t address is Simon&apos;s last question about fractions. To which I say: I don&apos;t know! Should we? The spec says &quot;&lt;percentage&gt;&quot; but I don&apos;t know what that actually means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492759</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-10-28 16:12:35 -0700</bug_when>
    <thetext>Parsing part landed in r98775.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492902</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-28 23:43:15 -0700</bug_when>
    <thetext>Fixed the expected result in http://trac.webkit.org/changeset/98797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495639</commentid>
    <comment_count>8</comment_count>
      <attachid>113523</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-03 10:59:39 -0700</bug_when>
    <thetext>Created attachment 113523
[preliminary] render cross-fade

Concerns:

1. loader/cache/CachedResourceClient.h -- multiple inheritance of two things which inherit from CachedResourceClient seems not to work. I&apos;ll need some assistance there from someone who knows the finer points of C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496284</commentid>
    <comment_count>9</comment_count>
      <attachid>113676</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-04 10:40:37 -0700</bug_when>
    <thetext>Created attachment 113676
[preliminary] render cross-fade - should apply now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496288</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 10:43:45 -0700</bug_when>
    <thetext>Attachment 113676 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.p...&quot; exit_code: 1

Source/WebCore/css/CSSCrossfadeValue.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/CSSCrossfadeValue.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:63:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:67:  Missing space before ( in if(  [whitespace/parens] [5]
Source/WebCore/platform/graphics/GeneratorGeneratedImage.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/graphics/GeneratorGeneratedImage.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/graphics/GeneratorGeneratedImage.h:44:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/css/CSSCrossfadeValue.h:57:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/css/CSSCrossfadeValue.h:58:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/css/CSSCrossfadeValue.h:59:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:53:  The parameter name &quot;observer&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:53:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 14 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496297</commentid>
    <comment_count>11</comment_count>
      <attachid>113676</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-11-04 10:53:57 -0700</bug_when>
    <thetext>Comment on attachment 113676
[preliminary] render cross-fade - should apply now

Attachment 113676 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10336017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496299</commentid>
    <comment_count>12</comment_count>
      <attachid>113676</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 10:54:31 -0700</bug_when>
    <thetext>Comment on attachment 113676
[preliminary] render cross-fade - should apply now

Attachment 113676 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10333020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496305</commentid>
    <comment_count>13</comment_count>
      <attachid>113676</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-04 10:56:48 -0700</bug_when>
    <thetext>Comment on attachment 113676
[preliminary] render cross-fade - should apply now

Attachment 113676 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10333022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496306</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-04 10:57:25 -0700</bug_when>
    <thetext>Oh, the other build systems again. Someday I&apos;ll remember that without being reminded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496316</commentid>
    <comment_count>15</comment_count>
      <attachid>113676</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-04 11:05:09 -0700</bug_when>
    <thetext>Comment on attachment 113676
[preliminary] render cross-fade - should apply now

Attachment 113676 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10334021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500453</commentid>
    <comment_count>16</comment_count>
      <attachid>114611</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-10 18:05:30 -0800</bug_when>
    <thetext>Created attachment 114611
[preliminary] render cross-fade

I was hoping that this would be in a commit-able state today, but then I got to writing tests. For some reason, the images don&apos;t render in DRT, even though I followed the code through the debugger and can see that the images are valid and the rendering code is being called. This will require further investigation...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500882</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-11 10:18:19 -0800</bug_when>
    <thetext>Do you need to wait for the image load events before testing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501002</commentid>
    <comment_count>18</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-11 12:36:18 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Do you need to wait for the image load events before testing?

Maybe? I tried data-urls too, which other people seem to use without waiting for any sort of load events, and they don&apos;t help any. (I&apos;d also somewhat expect DRT to wait for images to finish loading before spitting out an image, but maybe not).

The ones that use -webkit-canvas inputs do work, though, so it&apos;s definitely related to image loading.

Making gratuitous use of layoutTestController.display() doesn&apos;t help like I expected it to, either (not that I was going to keep it that way, just for trying to see *something*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502178</commentid>
    <comment_count>19</comment_count>
      <attachid>115002</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 12:23:58 -0800</bug_when>
    <thetext>Created attachment 115002
Render Cross-fade

Have at it! I have a feeling this is going to need a good bit of review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502195</commentid>
    <comment_count>20</comment_count>
      <attachid>115002</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-14 12:35:24 -0800</bug_when>
    <thetext>Comment on attachment 115002
Render Cross-fade

Attachment 115002 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10484022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502199</commentid>
    <comment_count>21</comment_count>
      <attachid>115011</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 12:37:00 -0800</bug_when>
    <thetext>Created attachment 115011
Render Cross-Fade (plus build system changes for other ports)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502213</commentid>
    <comment_count>22</comment_count>
      <attachid>115011</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-14 12:47:51 -0800</bug_when>
    <thetext>Comment on attachment 115011
Render Cross-Fade (plus build system changes for other ports)

Attachment 115011 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10487026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502259</commentid>
    <comment_count>23</comment_count>
      <attachid>115011</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-14 13:39:00 -0800</bug_when>
    <thetext>Comment on attachment 115011
Render Cross-Fade (plus build system changes for other ports)

Attachment 115011 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10485041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502263</commentid>
    <comment_count>24</comment_count>
      <attachid>115011</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-11-14 13:41:19 -0800</bug_when>
    <thetext>Comment on attachment 115011
Render Cross-Fade (plus build system changes for other ports)

Attachment 115011 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10487042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502268</commentid>
    <comment_count>25</comment_count>
      <attachid>115025</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 13:43:36 -0800</bug_when>
    <thetext>Created attachment 115025
Render Cross-Fade (plus build fix for non-Mac)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502279</commentid>
    <comment_count>26</comment_count>
      <attachid>115025</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-14 13:51:54 -0800</bug_when>
    <thetext>Comment on attachment 115025
Render Cross-Fade (plus build fix for non-Mac)

Attachment 115025 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10372237</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502284</commentid>
    <comment_count>27</comment_count>
      <attachid>115027</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 13:56:06 -0800</bug_when>
    <thetext>Created attachment 115027
Render Cross-Fade (plus build fix for non-debug)

Perhaps I should get out my VMs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502306</commentid>
    <comment_count>28</comment_count>
      <attachid>115027</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-14 14:25:24 -0800</bug_when>
    <thetext>Comment on attachment 115027
Render Cross-Fade (plus build fix for non-debug)

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

This is a good start! I&apos;d like to see a test case with a tiled cross-fade image.

&gt; LayoutTests/css3/images/cross-fade-invalidation.html:16
&gt; +    if(window.layoutTestController)
&gt; +	layoutTestController.notifyDone();

Need to indent there

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:71
&gt; +    if (value-&gt;isImageValue())
&gt; +        return static_cast&lt;CSSImageValue*&gt;(value.get())-&gt;cachedOrPendingImage()-&gt;isPendingImage();
&gt; +
&gt; +    if (value-&gt;isImageGeneratorValue())
&gt; +        return static_cast&lt;CSSImageGeneratorValue*&gt;(value.get())-&gt;isPending();

These two bare functions look like candidates for a virtual method.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:117
&gt; +    CachedImage* fromImage, * toImage;

We don&apos;t declare multiple variables on one line like this.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:120
&gt; +    fromImage = cachedImageForCSSValue(m_fromImage, renderer, size);
&gt; +    toImage = cachedImageForCSSValue(m_toImage, renderer, size);

Initialize at declaration!

&gt; Source/WebCore/css/CSSCrossfadeValue.h:42
&gt; +    static PassRefPtr&lt;CSSCrossfadeValue&gt; create(PassRefPtr&lt;CSSValue&gt; fromImage, PassRefPtr&lt;CSSValue&gt; toImage) { return adoptRef(new CSSCrossfadeValue(fromImage, toImage)); }

Break this onto 3 lines.

&gt; Source/WebCore/css/CSSCrossfadeValue.h:43
&gt; +    ~CSSCrossfadeValue() { }

You can remove this.

&gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:117
&gt; +    if (isPending())
&gt; +        m_image = StylePendingImage::create(this).get();

It seems odd that calling this method has the side-effect of changing m_image.

&gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:198
&gt; +    case CrossfadeClass:
&gt; +        return static_cast&lt;const CSSCrossfadeValue*&gt;(this)-&gt;isPending();
&gt; +    case CanvasClass:
&gt; +        return static_cast&lt;const CSSCanvasValue*&gt;(this)-&gt;isPending();
&gt; +    case LinearGradientClass:
&gt; +        return static_cast&lt;const CSSLinearGradientValue*&gt;(this)-&gt;isPending();
&gt; +    case RadialGradientClass:
&gt; +        return static_cast&lt;const CSSRadialGradientValue*&gt;(this)-&gt;isPending();
&gt; +    default:

Erm, why not use virtual methods?

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:45
&gt; +    m_size = size;

Does the superclass not have a ctor that sets the size?

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:64
&gt; +    float inversePercentage = 1.0f - m_percentage;

Use 1, not 1.0f

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:69
&gt; +    fromImage = m_fromImage-&gt;image();
&gt; +    fromImageSize = fromImage-&gt;size();
&gt; +    toImage = m_toImage-&gt;image();
&gt; +    toImageSize = toImage-&gt;size();

Declare at first use. This is C++, not C :)

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:76
&gt; +    crossfadeImageSize = IntSize(fromImageSize.width() * inversePercentage + toImageSize.width() * m_percentage,
&gt; +                                 fromImageSize.height() * inversePercentage + toImageSize.height() * m_percentage);

Does the spec say anything about interpolating sizes? I&apos;m not sure it&apos;s correct to animate the size too.

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:73
&gt; +    : m_ownerValue(ownerValue)
&gt; +    , m_ready(false) { }

These should be indented.

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:76
&gt; +    virtual void imageChanged(CachedImage* image, const IntRect* rect = 0) OVERRIDE {

{ on new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502362</commentid>
    <comment_count>29</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 15:12:02 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 115027 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115027&amp;action=review
&gt; &gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:76
&gt; &gt; +    crossfadeImageSize = IntSize(fromImageSize.width() * inversePercentage + toImageSize.width() * m_percentage,
&gt; &gt; +                                 fromImageSize.height() * inversePercentage + toImageSize.height() * m_percentage);
&gt; 
&gt; Does the spec say anything about interpolating sizes? I&apos;m not sure it&apos;s correct to animate the size too.

Yep, that&apos;s what it says to do with the size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502365</commentid>
    <comment_count>30</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 15:12:37 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; Yep, that&apos;s what it says to do with the size.

More precisely, given &apos;&apos;cross-fade(A,B,p)&apos;&apos;, where A and B are images and p is a percentage between 0% and 100%, the function represents an image with width equal to widthA × (1-p) + widthB × p and height equal to heightA × (1-p) + heightB × p. The contents of the image must be constructed by first scaling A and B to the size of the generated image, then applying dissolve(A,1-p) plus dissolve(B,p).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502386</commentid>
    <comment_count>31</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-14 15:33:32 -0800</bug_when>
    <thetext>As discussed on IRC, we can&apos;t use SrcOver compositing to do this effect. We need additive blending.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502684</commentid>
    <comment_count>32</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 23:42:27 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; As discussed on IRC, we can&apos;t use SrcOver compositing to do this effect. We need additive blending.

I wonder (based on our conversation before)... is it not equivalent to paint opaque white behind the images and then continue on exactly as-is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502687</commentid>
    <comment_count>33</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-14 23:50:26 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; As discussed on IRC, we can&apos;t use SrcOver compositing to do this effect. We need additive blending.
&gt; 
&gt; I wonder (based on our conversation before)... is it not equivalent to paint opaque white behind the images and then continue on exactly as-is?

Of course not, in the case of images with alpha. Nevermind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503422</commentid>
    <comment_count>34</comment_count>
      <attachid>115275</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-15 16:32:48 -0800</bug_when>
    <thetext>Created attachment 115275
Render Cross-Fade</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503437</commentid>
    <comment_count>35</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-15 16:43:44 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 115027 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115027&amp;action=review
&gt; 
&gt; This is a good start! I&apos;d like to see a test case with a tiled cross-fade image.

I&apos;ve made one in -simple and one in -tiled do actual tiling. This was an excellent call, because it was actually broken. Fixed.

&gt; &gt; Source/WebCore/css/CSSCrossfadeValue.cpp:71
&gt; &gt; +    if (value-&gt;isImageValue())
&gt; &gt; +        return static_cast&lt;CSSImageValue*&gt;(value.get())-&gt;cachedOrPendingImage()-&gt;isPendingImage();
&gt; &gt; +
&gt; &gt; +    if (value-&gt;isImageGeneratorValue())
&gt; &gt; +        return static_cast&lt;CSSImageGeneratorValue*&gt;(value.get())-&gt;isPending();
&gt; 
&gt; These two bare functions look like candidates for a virtual method.

The only common ancestor that CSSImageValue and CSSImageGeneratorValue share is CSSValue, not an ideal place for this. We could add another class here in between and make these virtual, but it&apos;s unclear that there&apos;s a point, with the devirtualization efforts that seem to be going on.

&gt; &gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:117
&gt; &gt; +    if (isPending())
&gt; &gt; +        m_image = StylePendingImage::create(this).get();
&gt; 
&gt; It seems odd that calling this method has the side-effect of changing m_image.

That&apos;s how generatedImage() worked before, I believe. It is a little strange though; I&apos;m open to suggestions!

&gt; &gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:45
&gt; &gt; +    m_size = size;
&gt; 
&gt; Does the superclass not have a ctor that sets the size?

The superclass doesn&apos;t have any constructors. Should it? Can you not initialize members of the superclass in initializer lists? (it seems that you can&apos;t)

&gt; &gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:69
&gt; &gt; +    fromImage = m_fromImage-&gt;image();
&gt; &gt; +    fromImageSize = fromImage-&gt;size();
&gt; &gt; +    toImage = m_toImage-&gt;image();
&gt; &gt; +    toImageSize = toImage-&gt;size();
&gt; 
&gt; Declare at first use. This is C++, not C :)

My background shining through!

(In reply to comment #31)
&gt; As discussed on IRC, we can&apos;t use SrcOver compositing to do this effect. We need additive blending.

Fixed, we now use a transparency layer and CompositePlusLighter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503450</commentid>
    <comment_count>36</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-15 16:55:57 -0800</bug_when>
    <thetext>&gt;&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:76
&gt;&gt; +    virtual void imageChanged(CachedImage* image, const IntRect* rect = 0) OVERRIDE {
&gt;
&gt; { on new line.

Style bot is red because I made this change, so ignore it, I guess. Unless it&apos;s right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503453</commentid>
    <comment_count>37</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-15 17:01:00 -0800</bug_when>
    <thetext>+levin: Maybe a style-checker bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503475</commentid>
    <comment_count>38</comment_count>
      <attachid>115275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 17:45:38 -0800</bug_when>
    <thetext>Comment on attachment 115275
Render Cross-Fade

Attachment 115275 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10487536

New failing tests:
css3/images/cross-fade-simple.html
css3/images/cross-fade-invalidation.html
fast/css/getComputedStyle/computed-style-cross-fade.html
css3/images/cross-fade-tiled.html
css3/images/cross-fade-blending.html
css3/images/cross-fade-sizing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503477</commentid>
    <comment_count>39</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-15 17:52:32 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; +levin: Maybe a style-checker bug?


A style checker bug, but it shouldn&apos;t be hit often and shouldn&apos;t be hit in this case (because it is only hit if someone is inlining a virtual function).

(In reply to comment #36)
&gt; &gt;&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:76
&gt; &gt;&gt; +    virtual void imageChanged(CachedImage* image, const IntRect* rect = 0) OVERRIDE {
&gt; &gt;
&gt; &gt; { on new line.
&gt; 
&gt; Style bot is red because I made this change, so ignore it, I guess. Unless it&apos;s right?

The code is defining an inline function but since it is virtual and never called directly, the function will never be inlined, so it doesn&apos;t make sense to write it this way. In the past, I&apos;ve been told (by ap) not to write functions inline in WebKit if they aren&apos;t meant to be inlined.

If this function isn&apos;t inlined, the style checker will no longer complain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503539</commentid>
    <comment_count>40</comment_count>
      <attachid>115306</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-15 20:15:49 -0800</bug_when>
    <thetext>Created attachment 115306
Render Cross-Fade (and allow fractional cross-fade amounts, and clamp them to 0-1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503546</commentid>
    <comment_count>41</comment_count>
      <attachid>115308</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-15 20:22:32 -0800</bug_when>
    <thetext>Created attachment 115308
Render Cross-Fade (Windows build fix, hopefully)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503565</commentid>
    <comment_count>42</comment_count>
      <attachid>115308</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 21:05:37 -0800</bug_when>
    <thetext>Comment on attachment 115308
Render Cross-Fade (Windows build fix, hopefully)

Attachment 115308 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10372836

New failing tests:
css3/images/cross-fade-tiled.html
css3/images/cross-fade-invalidation.html
css3/images/cross-fade-blending.html
css3/images/cross-fade-simple.html
css3/images/cross-fade-sizing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503970</commentid>
    <comment_count>43</comment_count>
      <attachid>115308</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-16 09:33:53 -0800</bug_when>
    <thetext>Comment on attachment 115308
Render Cross-Fade (Windows build fix, hopefully)

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

&gt; LayoutTests/css3/images/cross-fade-tiled.html:9
&gt; +	-webkit-transform:translateZ(0);

Why the translateZ()?

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:42
&gt; +CachedImage* cachedImageForCSSValue(PassRefPtr&lt;CSSValue&gt;, const RenderObject*, const IntSize&amp;);
&gt; +void loadSubimage(PassRefPtr&lt;CSSValue&gt;, CachedResourceLoader*);
&gt; +bool subimageIsPending(PassRefPtr&lt;CSSValue&gt;);

You could just move the functions to the stop of the file and make them static.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:62
&gt; +    IntSize size;
&gt; +
&gt; +    CachedImage* fromImage = cachedImageForCSSValue(m_fromImage, renderer, size);
&gt; +    CachedImage* toImage = cachedImageForCSSValue(m_toImage, renderer, size);

Seems weird to send in an empty size here.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:85
&gt; +bool subimageIsPending(PassRefPtr&lt;CSSValue&gt; value)

You should only use PassRefPtr&lt;CSSValue&gt; if you&apos;re passing ownership, which doesn&apos;t seem to be the case here. Can you pass a const CSSValue*?

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:98
&gt; +void loadSubimage(PassRefPtr&lt;CSSValue&gt; value, CachedResourceLoader* cachedResourceLoader)

Ditto.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:113
&gt; +CachedImage* cachedImageForCSSValue(PassRefPtr&lt;CSSValue&gt; value, const RenderObject* renderer, const IntSize&amp; size)

Ditto.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:115
&gt;      UNUSED_PARAM(size);

Are you going to use size?

&gt; Source/WebCore/css/CSSCrossfadeValue.h:65
&gt; +    // NOTE: We put the ImageObserver in a member instead of inheriting from it

No need for &quot;NOTE:&quot;.

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp:76
&gt; +    context-&gt;beginTransparencyLayer(1.0);

1.0 -&gt; 1

&gt; Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h:62
&gt; +    CachedImage* m_fromImage;
&gt; +    CachedImage* m_toImage;

I&apos;d like to see a comment about who owns these CachedImages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503999</commentid>
    <comment_count>44</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-16 10:00:31 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #37)
&gt; &gt; +levin: Maybe a style-checker bug?
&gt; A style checker bug, but it shouldn&apos;t be hit often.

fwiw, I did fix the style checker bug as well (even though I don&apos;t think it should appear hardly ever... but if someone inlines a virtual function, I don&apos;t want to give them an obtuse error. If we want to flag it, the error should be more specific.)
https://bugs.webkit.org/show_bug.cgi?id=72515</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504440</commentid>
    <comment_count>45</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-16 17:28:53 -0800</bug_when>
    <thetext>Landed in r100535, with Simon&apos;s changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504611</commentid>
    <comment_count>46</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-16 23:57:44 -0800</bug_when>
    <thetext>It broke fast/css/getComputedStyle/computed-style-cross-fade.html on the Qt bot:

(In reply to comment #45)
&gt; Landed in r100535, with Simon&apos;s changes.

--- /ramdisk/qt-linux-64-release/build/layout-test-results/fast/css/getComputedStyle/computed-style-cross-fade-expected.txt 
+++ /ramdisk/qt-linux-64-release/build/layout-test-results/fast/css/getComputedStyle/computed-style-cross-fade-actual.txt 
@@ -1,22 +1,7 @@
-Blocked access to external URL http://example.com/example.png
 Blocked access to external URL http://example.com/example.png
 Blocked access to external URL http://example.com/a.png
 Blocked access to external URL http://example.com/b.png
-Blocked access to external URL http://example.com/example.png
 Blocked access to external URL http://example.com/c.png
-Blocked access to external URL http://example.com/a.png
-Blocked access to external URL http://example.com/b.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
 -webkit-cross-fade</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504901</commentid>
    <comment_count>47</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-17 08:51:06 -0800</bug_when>
    <thetext>It fails on GTK with similar diff:

--- /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/css/getComputedStyle/computed-style-cross-fade-expected.txt 
+++ /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/css/getComputedStyle/computed-style-cross-fade-actual.txt 
@@ -1,22 +1,11 @@
-Blocked access to external URL http://example.com/example.png
 Blocked access to external URL http://example.com/example.png
 Blocked access to external URL http://example.com/a.png
 Blocked access to external URL http://example.com/b.png
-Blocked access to external URL http://example.com/example.png
 Blocked access to external URL http://example.com/c.png
-Blocked access to external URL http://example.com/a.png
-Blocked access to external URL http://example.com/b.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
-Blocked access to external URL http://example.com/example.png
+Blocked access to external URL http://www.iana.org/domains/example/
+Blocked access to external URL http://www.iana.org/domains/example/
+Blocked access to external URL http://www.iana.org/domains/example/
+Blocked access to external URL http://www.iana.org/domains/example/
 -webkit-cross-fade</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504903</commentid>
    <comment_count>48</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-17 08:55:04 -0800</bug_when>
    <thetext>I skipped fast/css/getComputedStyle/computed-style-cross-fade.html on Qt temporarily to make buildbot happier: http://trac.webkit.org/changeset/100633 .

Please unskip it when a proper fix landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505078</commentid>
    <comment_count>49</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-17 12:11:40 -0800</bug_when>
    <thetext>(In reply to comment #47)
&gt; It fails on GTK with similar diff:
&gt; 
&gt; --- /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/css/getComputedStyle/computed-style-cross-fade-expected.txt 
&gt; +++ /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/css/getComputedStyle/computed-style-cross-fade-actual.txt 
&gt; @@ -1,22 +1,11 @@
&gt; -Blocked access to external URL http://example.com/example.png

Oh boy; I was hoping those wouldn&apos;t be a problem (would be consistent) but I was wrong. What do we use for images? I can&apos;t use anything on the local filesystem, as it resolves it to an absolute path which will certainly be broken on many systems. It looks like some of the other tests use &quot;dummy://test.png&quot; -- is that what I should be using? I&apos;ll try it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505100</commentid>
    <comment_count>50</comment_count>
      <attachid>115659</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-17 12:28:47 -0800</bug_when>
    <thetext>Created attachment 115659
Fix the getComputedStyle test to use dummy://</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505206</commentid>
    <comment_count>51</comment_count>
      <attachid>115678</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-17 14:15:08 -0800</bug_when>
    <thetext>Created attachment 115678
Fix layering violation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505276</commentid>
    <comment_count>52</comment_count>
      <attachid>115659</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 15:20:08 -0800</bug_when>
    <thetext>Comment on attachment 115659
Fix the getComputedStyle test to use dummy://

Clearing flags on attachment: 115659

Committed r100687: &lt;http://trac.webkit.org/changeset/100687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511117</commentid>
    <comment_count>53</comment_count>
      <attachid>115678</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-29 14:38:41 -0800</bug_when>
    <thetext>Comment on attachment 115678
Fix layering violation

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

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:58
&gt; +        
&gt; +        if (!styleCachedImage)

I&apos;d omit the blank line here.

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:158
&gt; +    UNUSED_PARAM(image);

You could just omit the parameter name instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511284</commentid>
    <comment_count>54</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-29 18:27:49 -0800</bug_when>
    <thetext>I just noticed something weird about refreshing when the page is in the cache (looks like freeing something we shouldn&apos;t be, but it&apos;s not a crash, the image shows up as the nullImage tiled over the whole space), so I&apos;m going to look at that tomorrow and not land this as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512022</commentid>
    <comment_count>55</comment_count>
      <attachid>117250</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-30 12:39:52 -0800</bug_when>
    <thetext>Created attachment 117250
fix layering violation, take 2

More thorough testing this time, and it seems to work perfectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512065</commentid>
    <comment_count>56</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-11-30 13:23:23 -0800</bug_when>
    <thetext>Landed in r101546.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536081</commentid>
    <comment_count>57</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-01-13 16:32:57 -0800</bug_when>
    <thetext>Not sure why this is still open.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112832</attachid>
            <date>2011-10-28 01:33:11 -0700</date>
            <delta_ts>2011-10-28 15:56:28 -0700</delta_ts>
            <desc>parse -webkit-cross-fade</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>30347</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMDVmNjQwLi5kYzRmNzRiIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAt
MjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCAtd2Via2l0LWNyb3NzLWZh
ZGUgaXMgcGFyc2VkIGNvcnJlY3RseS4KKworICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFk
ZS5odG1sOiBBZGRlZC4KKwogMjAxMS0xMC0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDI2MjIwNT4gQWxsb3cgY29sdW1uIHBy
b2dyZXNzaW9uIHRvIGJlIGluZGVwZW5kZW50IG9mIHdyaXRpbmcgbW9kZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9z
cy1mYWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjEyNzAzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorLXdlYmtpdC1jcm9zcy1mYWRlCisKKworUEFT
UyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcpLCA1MCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9z
cy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1
JSksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA1MCUpIiwgImJhY2tncm91
bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwo
aHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyks
IDI1JSksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA1MCUpIgorUEFTUyB0
ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSki
CitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFk
ZSgtd2Via2l0LWxpbmVhci1ncmFkaWVudChibGFjaywgd2hpdGUpLCB1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2V4YW1wbGUucG5nKSwgMTIlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJr
aXQtY3Jvc3MtZmFkZSgtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsYWNrLCB3aGl0ZSks
IHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAxMiUpIgorUEFTUyB0ZXN0Q3Jv
c3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUo
ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUu
Y29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksKSIs
ICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4
YW1wbGUucG5nKSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgorUEFTUyB0ZXN0Q3Jv
c3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9u
ZSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1m
YWRlKHVybCgiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgorUEFTUyB0ZXN0Q3Jvc3Nm
YWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoMTBweCAyMCUgNXB4ICNi
YmIpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BBU1MgdGVzdENyb3NzZmFkZSgi
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSgt
d2Via2l0LWNyb3NzLWZhZGUoKSkpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BB
U1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKDIw
JSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
Yi5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LWNyb3NzLWZhZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTA2
YWM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRT
dHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworZnVuY3Rpb24gdGVzdENyb3NzZmFkZShjc3MsIHF1
ZXJ5UHJvcCkKK3sKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgZGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBjc3MpOworICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZGl2KTsKKworICAgIHZhciByZXN1bHQgPSBnZXRDb21wdXRlZFN0eWxlKGRp
dikuZ2V0UHJvcGVydHlWYWx1ZShxdWVyeVByb3ApOworICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZGl2KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitkZWJ1ZygnPHA+LXdlYmtpdC1j
cm9zcy1mYWRlPC9wPicpOworCisvLyBWYWxpZAorCitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgi
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5j
b20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAl
KSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxl
LnBuZyksIDUwJSkiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIHVybCho
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA1MCUpIiwgImJhY2tncm91bmQtaW1hZ2Ui
KScsICciLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA1MCUpIicpOworc2hvdWxkQmUoJ3Rl
c3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2MucG5nKSwgLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhh
bXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMjUlKSwgNTAl
KSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2MucG5nKSwgLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMjUlKSwgNTAlKSIn
KTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNy
b3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEyJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywg
JyItd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywg
d2hpdGUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMTIlKSInKTsKKwor
Ly8gSW52YWxpZAorCitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSkiLCAiYmFja2dyb3VuZC1pbWFnZSIp
JywgJyJub25lIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6
IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
dXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksKSIsICJiYWNrZ3JvdW5kLWltYWdl
IiknLCAnIm5vbmUiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
KSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5vbmUiJyk7CitzaG91bGRCZSgndGVzdENyb3Nz
ZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCksIHVybChodHRwOi8v
ZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5vbmUi
Jyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKHVybCgiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxk
QmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgx
MHB4IDIwJSA1cHggI2JiYikiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hv
dWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFk
ZSgtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKCkpKSIsICJiYWNrZ3JvdW5k
LWltYWdlIiknLCAnIm5vbmUiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKDIwJSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9h
LnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdl
IiknLCAnIm5vbmUiJyk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA2MGY1NDA4Li42YTA3YTdlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAK
KzIwMTEtMTAtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUGFyc2UgLXdlYmtpdC1jcm9zcy1mYWRl
IGFjY29yZGluZyB0byB0aGUgQ1NTMyBJbWFnZXMgVmFsdWVzIHNwZWNpZmljYXRpb24uCisgICAg
ICAgIAorICAgICAgICBBbHNvLCBhZGp1c3Qgb3RoZXIgQ1NTIHBhcnNpbmcgZnVuY3Rpb25zIHRv
IHN1cHBvcnQgbmVzdGVkIGZ1bmN0aW9ucywgYnkgdXNpbmcgYSBzcGVjaWZpYyBDU1MgdmFsdWUg
bGlzdAorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwgb25lLiBUaGlzIGFsbG93cyAtIGZv
ciBleGFtcGxlIC0gY3Jvc3MtZmFkZSB0byBwYXNzIGVhY2ggb2YgaXRzIGFyZ3VtZW50cyBiYWNr
IGludG8KKyAgICAgICAgcGFyc2VGaWxsSW1hZ2UgYW5kIHRvIHN1Y2Nlc3NmdWxseSBwYXJzZSBp
bWFnZSBmdW5jdGlvbnMgaW4gdGhpcyBmYXNoaW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3Nz
L2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS5odG1sCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2Zh
ZGVWYWx1ZTo6fkNTU0Nyb3NzZmFkZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3Nz
ZmFkZVZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVl
OjpmaXhlZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdl
KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0Nyb3NzZmFkZVZhbHVlOjppc0ZpeGVkU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9z
c2ZhZGVWYWx1ZTo6c2V0RnJvbUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFk
ZVZhbHVlOjpzZXRUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVl
OjpzZXRQZXJjZW50YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpD
U1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJz
ZUZpbGxJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3Bl
cnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VCb3JkZXJJbWFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRGVwcmVjYXRlZEdyYWRpZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VMaW5lYXJHcmFkaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlUmFkaWFsR3JhZGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjppc0dlbmVyYXRlZEltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6cGFyc2VDcm9zc2ZhZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUNhbnZhcyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorCiAyMDExLTEwLTI3ICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzEwMjYyMjA1PiBBbGxvdyBjb2x1bW4gcHJvZ3Jlc3Npb24gdG8gYmUgaW5kZXBlbmRlbnQgb2Yg
d3JpdGluZyBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMjIxYTg5OS4uOTk1NWIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjg0LDYgKzY4NCw4IEBA
CiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2MTJB
NTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJFOEUy
QzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAxMDBG
QUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYxM0E3
RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1Bh
cnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTJEOEZFQkRDMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDhGRUJEQTE0
M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICovOyB9OworCQkyRDhGRUJE
RDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAv
KiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovOyB9OwogCQkyRDkwNjYwNjBCRTE0MUQ0MDA5NTY5OTgg
LyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCAqLzsg
fTsKIAkJMkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNTBCRTE0MUQ0MDA5
NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkyRTA4ODhENDExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTA4
ODhEMjExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgKi87IH07CkBAIC03NzM4
LDYgKzc3NDAsOCBAQAogCQkyQkU4RTJDNjEyQTU4OUVDMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFy
c2V0UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhUTUxNZXRhQ2hh
cnNldFBhcnNlci5oOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBhcnNlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRN
TE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHBhdGggPSBwYXJzZXIvSFRNTE1ldGFDaGFy
c2V0UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUxM0E3
RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYXJzaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8q
IENTU0Nyb3NzZmFkZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U0Nyb3NzZmFkZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOTA2NjA0
MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEOTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xp
cGJvYXJkTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwpAQCAtMjA0MTcsNiArMjA0MjEsOCBAQAogCQkJCUUxRUJCQkQzMEFBQzlCODcw
MDFGRThFMiAvKiBDU1NDaGFyc2V0UnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDQ0YwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0NoYXJzZXRSdWxlLmggKi8sCiAJCQkJODVDNTZDQUMwQUE4OUY4RTAwRDk1
NzU1IC8qIENTU0NoYXJzZXRSdWxlLmlkbCAqLywKKwkJCQkyRDhGRUJEQTE0M0UzRUY3MDA3MjUw
MkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICovLAorCQkJCTJEOEZFQkRCMTQzRTNFRjcwMDcy
NTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovLAogCQkJCUJDRUE0NzdDMDk3Q0FBQzgwMDk0
QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovLAogCQkJCUJDRUE0NzdE
MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCAqLywKIAkJ
CQlBQTA5NzhFRDBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgKi8s
CkBAIC0yNDQ5NCw2ICsyNDUwMCw3IEBACiAJCQkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8q
IEV2ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIzQTg4NzIxNDU2MzJGOTAwM0FF
OEY1IC8qIERPTURPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDYy
RjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3MzMxLDYgKzI3MzM4LDcgQEAKIAkJCQk5NzY2NTA0
RjE0NEZCRkZFMDBGNkJCNTEgLyogRXZlbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUEwRUUwREY1MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEwRUUwREY3MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
U2hhZGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDhGRUJEQzE0M0UzRUY3MDA3MjUwMkIg
LyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43MGYwZTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3Nz
ZmFkZVZhbHVlLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCisKKyNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NDcm9zc2ZhZGVWYWx1ZTo6fkNT
U0Nyb3NzZmFkZVZhbHVlKCkKK3sKKworfQorCitTdHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNz
c1RleHQoKSBjb25zdAoreworICAgIFN0cmluZyByZXN1bHQgPSAiLXdlYmtpdC1jcm9zcy1mYWRl
KCI7CisgICAgLy8gVE9ETzogd2hhdCBkbyB3ZSBzaG93IGlmIHRoZXNlIGhhdmVuJ3QgYmVlbiBz
ZXQgeWV0IT8KKyAgICByZXN1bHQgKz0gbV9mcm9tSW1hZ2UtPmNzc1RleHQoKSArICIsICI7Cisg
ICAgcmVzdWx0ICs9IG1fdG9JbWFnZS0+Y3NzVGV4dCgpICsgIiwgIjsKKyAgICByZXN1bHQgKz0g
bV9wZXJjZW50YWdlLT5jc3NUZXh0KCk7CisgICAgcmVzdWx0ICs9ICIpIjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitJbnRTaXplIENTU0Nyb3NzZmFkZVZhbHVlOjpmaXhlZFNpemUoY29uc3Qg
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3sKKyAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOwor
ICAgIAorICAgIHJldHVybiBJbnRTaXplKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IENTU0Ny
b3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXpl
JiBzaXplKQoreworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJlcik7CisgICAgVU5VU0VEX1BBUkFN
KHNpemUpOworICAgIAorICAgIGlmIChzaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hYjdiYzRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDU1NDcm9z
c2ZhZGVWYWx1ZV9oCisjZGVmaW5lIENTU0Nyb3NzZmFkZVZhbHVlX2gKKworI2luY2x1ZGUgIkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCisjaW5j
bHVkZSAiSW1hZ2VPYnNlcnZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERv
Y3VtZW50OworCitjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1ZSA6IHB1YmxpYyBDU1NJbWFnZUdlbmVy
YXRvclZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVW
YWx1ZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Nyb3NzZmFkZVZhbHVlKTsg
fQorICAgIHZpcnR1YWwgfkNTU0Nyb3NzZmFkZVZhbHVlKCk7CisKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBjc3NUZXh0KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdl
KFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGaXhl
ZFNpemUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBmaXhl
ZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisKKyAgICB2b2lkIHNldEZyb21JbWFnZShjb25z
dCBQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGZyb21JbWFnZSkgeyBtX2Zyb21JbWFnZSA9IGZy
b21JbWFnZTsgfQorICAgIHZvaWQgc2V0VG9JbWFnZShjb25zdCBQYXNzUmVmUHRyPENTU0ltYWdl
VmFsdWU+IHRvSW1hZ2UpIHsgbV90b0ltYWdlID0gdG9JbWFnZTsgfQorICAgIHZvaWQgc2V0UGVy
Y2VudGFnZShjb25zdCBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlKSB7
IG1fcGVyY2VudGFnZSA9IHBlcmNlbnRhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBDU1NDcm9zc2Zh
ZGVWYWx1ZSgpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBtX2Zy
b21JbWFnZTsKKyAgICBSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gbV90b0ltYWdlOworICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9wZXJjZW50YWdlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gQ1NTQ3Jvc3NmYWRlVmFsdWVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAppbmRleCA2OWY3MmNlLi5hNjU1Y2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlVmFsdWUuaCIKICNp
bmNsdWRlICJDU1NDYW52YXNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDdXJzb3JJbWFnZVZh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTRmxleFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VS
dWxlLmgiCkBAIC0xMjEwLDcgKzEyMTEsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShp
bnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+
bmV4dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGlzR2VuZXJhdGVkSW1h
Z2VWYWx1ZSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChwYXJzZUdlbmVyYXRlZEltYWdlKHBh
cnNlZFZhbHVlKSkKKyAgICAgICAgICAgIGlmIChwYXJzZUdlbmVyYXRlZEltYWdlKG1fdmFsdWVM
aXN0LCBwYXJzZWRWYWx1ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNzE1
LDcgKzI3MTYsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb250ZW50KGludCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KQogICAgICAgICAgICAgICAgIGlmICghcGFyc2VkVmFsdWUpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNHZW5l
cmF0ZWRJbWFnZVZhbHVlKHZhbCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXBhcnNlR2VuZXJh
dGVkSW1hZ2UocGFyc2VkVmFsdWUpKQorICAgICAgICAgICAgICAgIGlmICghcGFyc2VHZW5lcmF0
ZWRJbWFnZShtX3ZhbHVlTGlzdCwgcGFyc2VkVmFsdWUpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0yNzg3LDIyICsyNzg4LDIyIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1Bh
cnNlcjo6cGFyc2VCYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVybiBwYXJzZUNvbG9yKCk7CiB9
CiAKLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbGxJbWFnZShSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1
ZSkKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbGxJbWFnZShDU1NQYXJzZXJWYWx1ZUxpc3QgKiB2
YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlKQogewotICAgIGlmIChtX3ZhbHVlTGlz
dC0+Y3VycmVudCgpLT5pZCA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICBpZiAodmFsdWVMaXN0LT5j
dXJyZW50KCktPmlkID09IENTU1ZhbHVlTm9uZSkgewogICAgICAgICB2YWx1ZSA9IENTU0ltYWdl
VmFsdWU6OmNyZWF0ZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKG1f
dmFsdWVMaXN0LT5jdXJyZW50KCktPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkp
IHsKKyAgICBpZiAodmFsdWVMaXN0LT5jdXJyZW50KCktPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19VUkkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoZSBjb21wbGV0ZVVSTCBjYWxsIHNo
b3VsZCBiZSBkb25lIHdoZW4gdXNpbmcgdGhlIENTU0ltYWdlVmFsdWUsCiAgICAgICAgIC8vIG5v
dCB3aGVuIGNyZWF0aW5nIGl0LgogICAgICAgICBpZiAobV9zdHlsZVNoZWV0KQotICAgICAgICAg
ICAgdmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobV9zdHlsZVNoZWV0LT5jb21wbGV0ZVVS
TChtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5zdHJpbmcpKTsKKyAgICAgICAgICAgIHZhbHVlID0g
Q1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKG1fc3R5bGVTaGVldC0+Y29tcGxldGVVUkwodmFsdWVMaXN0
LT5jdXJyZW50KCktPnN0cmluZykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBpZiAoaXNHZW5lcmF0ZWRJbWFnZVZhbHVlKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpKQotICAg
ICAgICByZXR1cm4gcGFyc2VHZW5lcmF0ZWRJbWFnZSh2YWx1ZSk7CisgICAgaWYgKGlzR2VuZXJh
dGVkSW1hZ2VWYWx1ZSh2YWx1ZUxpc3QtPmN1cnJlbnQoKSkpCisgICAgICAgIHJldHVybiBwYXJz
ZUdlbmVyYXRlZEltYWdlKHZhbHVlTGlzdCwgdmFsdWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwog
fQpAQCAtMzA2NCw3ICszMDY1LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3BlcnR5
KGludCBwcm9wSWQsIGludCYgcHJvcElkMSwgaW50JiBwcm9wSWQyLAogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZElt
YWdlOgogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrSW1hZ2U6Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUZpbGxJbWFnZShjdXJyVmFsdWUpKQorICAgICAg
ICAgICAgICAgICAgICBpZiAocGFyc2VGaWxsSW1hZ2UobV92YWx1ZUxpc3QsIGN1cnJWYWx1ZSkp
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
QmFja2dyb3VuZENsaXA6CkBAIC01MjUyLDcgKzUyNTMsNyBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VCb3JkZXJJbWFnZShpbnQgcHJvcElkLCBSZWZQdHI8Q1NTVmFsdWU+JiByZXN1bHQpCiAgICAg
ICAgICAgICAgICAgY29udGV4dC5jb21taXRJbWFnZShDU1NJbWFnZVZhbHVlOjpjcmVhdGUobV9z
dHlsZVNoZWV0LT5jb21wbGV0ZVVSTCh2YWwtPnN0cmluZykpKTsKICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoaXNHZW5lcmF0ZWRJbWFnZVZhbHVlKHZhbCkpIHsKICAgICAgICAgICAgICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHZhbHVlOwotICAgICAgICAgICAgICAgIGlmIChwYXJzZUdlbmVyYXRlZElt
YWdlKHZhbHVlKSkKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VHZW5lcmF0ZWRJbWFnZShtX3Zh
bHVlTGlzdCwgdmFsdWUpKQogICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbW1pdEltYWdl
KHZhbHVlKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTU3NTgsMTAgKzU3NTksMTAgQEAgc3RhdGljIGJvb2wgcGFyc2VEZXByZWNh
dGVkR3JhZGllbnRDb2xvclN0b3AoQ1NTUGFyc2VyKiBwLCBDU1NQYXJzZXJWYWx1ZSogYSwgQ1MK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVwcmVjYXRlZEdy
YWRpZW50KFJlZlB0cjxDU1NWYWx1ZT4mIGdyYWRpZW50KQorYm9vbCBDU1NQYXJzZXI6OnBhcnNl
RGVwcmVjYXRlZEdyYWRpZW50KENTU1BhcnNlclZhbHVlTGlzdCAqIHZhbHVlTGlzdCwgUmVmUHRy
PENTU1ZhbHVlPiYgZ3JhZGllbnQpCiB7CiAgICAgLy8gV2FsayB0aGUgYXJndW1lbnRzLgotICAg
IENTU1BhcnNlclZhbHVlTGlzdCogYXJncyA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0
aW9uLT5hcmdzLmdldCgpOworICAgIENTU1BhcnNlclZhbHVlTGlzdCogYXJncyA9IHZhbHVlTGlz
dC0+Y3VycmVudCgpLT5mdW5jdGlvbi0+YXJncy5nZXQoKTsKICAgICBpZiAoIWFyZ3MgfHwgYXJn
cy0+c2l6ZSgpID09IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTkxNywxMiArNTkx
OCwxMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VHcmFkaWVu
dENvbG9yT3JLZXl3b3JkKENTU1BhcnNlciogcCwgQwogICAgIHJldHVybiBwLT5wYXJzZUNvbG9y
KHZhbHVlKTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZWFyR3JhZGllbnQoUmVmUHRy
PENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdGluZykKK2Jvb2wg
Q1NTUGFyc2VyOjpwYXJzZUxpbmVhckdyYWRpZW50KENTU1BhcnNlclZhbHVlTGlzdCAqIHZhbHVl
TGlzdCwgUmVmUHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVh
dGluZykKIHsKICAgICBSZWZQdHI8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZT4gcmVzdWx0ID0gQ1NT
TGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlKHJlcGVhdGluZyk7CiAKICAgICAvLyBXYWxrIHRo
ZSBhcmd1bWVudHMuCi0gICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gbV92YWx1ZUxpc3Qt
PmN1cnJlbnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgQ1NTUGFyc2VyVmFsdWVMaXN0
KiBhcmdzID0gdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwogICAg
IGlmICghYXJncyB8fCAhYXJncy0+c2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAg
LTU5ODcsMTIgKzU5ODgsMTIgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZWFyR3JhZGllbnQo
UmVmUHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWEKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlUmFkaWFsR3JhZGllbnQoUmVmUHRyPENT
U1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdGluZykKK2Jvb2wgQ1NT
UGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRpZW50KENTU1BhcnNlclZhbHVlTGlzdCAqIHZhbHVlTGlz
dCwgUmVmUHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdGlu
ZykKIHsKICAgICBSZWZQdHI8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZT4gcmVzdWx0ID0gQ1NTUmFk
aWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRlKHJlcGVhdGluZyk7CiAKICAgICAvLyBXYWxrIHRoZSBh
cmd1bWVudHMuCi0gICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gbV92YWx1ZUxpc3QtPmN1
cnJlbnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBh
cmdzID0gdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwogICAgIGlm
ICghYXJncyB8fCAhYXJncy0+c2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTYx
NTQsNDMgKzYxNTUsOTAgQEAgYm9vbCBDU1NQYXJzZXI6OmlzR2VuZXJhdGVkSW1hZ2VWYWx1ZShD
U1NQYXJzZXJWYWx1ZSogdmFsKSBjb25zdAogICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZSh2
YWwtPmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KCIp
CiAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Vi
a2l0LXJhZGlhbC1ncmFkaWVudCgiKQogICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZSh2YWwt
PmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1yZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50KCIpCi0g
ICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0
LWNhbnZhcygiKTsKKyAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UodmFsLT5mdW5jdGlvbi0+
bmFtZSwgIi13ZWJraXQtY2FudmFzKCIpCisgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZh
bC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LWNyb3NzLWZhZGUoIik7CiB9CiAKLWJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUdlbmVyYXRlZEltYWdlKFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlKQorYm9v
bCBDU1NQYXJzZXI6OnBhcnNlR2VuZXJhdGVkSW1hZ2UoQ1NTUGFyc2VyVmFsdWVMaXN0ICogdmFs
dWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZSkKIHsKLSAgICBDU1NQYXJzZXJWYWx1ZSog
dmFsID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICBDU1NQYXJzZXJWYWx1ZSogdmFsID0g
dmFsdWVMaXN0LT5jdXJyZW50KCk7CiAKICAgICBpZiAodmFsLT51bml0ICE9IENTU1BhcnNlclZh
bHVlOjpGdW5jdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LWdyYWRpZW50KCIpKQotICAg
ICAgICByZXR1cm4gcGFyc2VEZXByZWNhdGVkR3JhZGllbnQodmFsdWUpOworICAgICAgICByZXR1
cm4gcGFyc2VEZXByZWNhdGVkR3JhZGllbnQodmFsdWVMaXN0LCB2YWx1ZSk7CiAKICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UodmFsLT5mdW5jdGlvbi0+bmFtZSwgIi13ZWJraXQtbGluZWFyLWdy
YWRpZW50KCIpKQotICAgICAgICByZXR1cm4gcGFyc2VMaW5lYXJHcmFkaWVudCh2YWx1ZSwgTm9u
UmVwZWF0aW5nKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlTGluZWFyR3JhZGllbnQodmFsdWVMaXN0
LCB2YWx1ZSwgTm9uUmVwZWF0aW5nKTsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWwt
PmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KCIpKQot
ICAgICAgICByZXR1cm4gcGFyc2VMaW5lYXJHcmFkaWVudCh2YWx1ZSwgUmVwZWF0aW5nKTsKKyAg
ICAgICAgcmV0dXJuIHBhcnNlTGluZWFyR3JhZGllbnQodmFsdWVMaXN0LCB2YWx1ZSwgUmVwZWF0
aW5nKTsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWwtPmZ1bmN0aW9uLT5uYW1lLCAi
LXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoIikpCi0gICAgICAgIHJldHVybiBwYXJzZVJhZGlhbEdy
YWRpZW50KHZhbHVlLCBOb25SZXBlYXRpbmcpOworICAgICAgICByZXR1cm4gcGFyc2VSYWRpYWxH
cmFkaWVudCh2YWx1ZUxpc3QsIHZhbHVlLCBOb25SZXBlYXRpbmcpOwogCiAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LXJlcGVhdGluZy1yYWRp
YWwtZ3JhZGllbnQoIikpCi0gICAgICAgIHJldHVybiBwYXJzZVJhZGlhbEdyYWRpZW50KHZhbHVl
LCBSZXBlYXRpbmcpOworICAgICAgICByZXR1cm4gcGFyc2VSYWRpYWxHcmFkaWVudCh2YWx1ZUxp
c3QsIHZhbHVlLCBSZXBlYXRpbmcpOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+
ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LWNhbnZhcygiKSkKLSAgICAgICAgcmV0dXJuIHBhcnNl
Q2FudmFzKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlQ2FudmFzKHZhbHVlTGlzdCwgdmFs
dWUpOworCisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICIt
d2Via2l0LWNyb3NzLWZhZGUoIikpCisgICAgICAgIHJldHVybiBwYXJzZUNyb3NzZmFkZSh2YWx1
ZUxpc3QsIHZhbHVlKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6
OnBhcnNlQ2FudmFzKFJlZlB0cjxDU1NWYWx1ZT4mIGNhbnZhcykKK2Jvb2wgQ1NTUGFyc2VyOjpw
YXJzZUNyb3NzZmFkZShDU1NQYXJzZXJWYWx1ZUxpc3QgKiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NW
YWx1ZT4mIGNyb3NzZmFkZSkKK3sKKyAgICBSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IHJlc3Vs
dCA9IENTU0Nyb3NzZmFkZVZhbHVlOjpjcmVhdGUoKTsKKworICAgIC8vIFdhbGsgdGhlIGFyZ3Vt
ZW50cy4KKyAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MgPSB2YWx1ZUxpc3QtPmN1cnJlbnQo
KS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgaWYgKCFhcmdzIHx8IGFyZ3MtPnNpemUoKSAh
PSA1KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQ1NTUGFyc2VyVmFsdWUqIGEgPSBhcmdz
LT5jdXJyZW50KCk7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBmcm9tSW1hZ2VWYWx1ZTsKKyAgICBS
ZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2VWYWx1ZTsKKworICAgIC8vIFRoZSBmaXJzdCBhcmd1bWVu
dCBpcyB0aGUgImZyb20iIGltYWdlLiAgSXQgaXMgYSBmaWxsIGltYWdlLgorICAgIGlmICghYSB8
fCAhcGFyc2VGaWxsSW1hZ2UoYXJncywgZnJvbUltYWdlVmFsdWUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmVzdWx0LT5zZXRGcm9tSW1hZ2Uoc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1
ZSo+KGZyb21JbWFnZVZhbHVlLmdldCgpKSk7CisgICAgYSA9IGFyZ3MtPm5leHQoKTsKKworICAg
IC8vIFNraXAgYSBjb21tYQorICAgIGlmIChhLT51bml0ICE9IENTU1BhcnNlclZhbHVlOjpPcGVy
YXRvciB8fCBhLT5pVmFsdWUgIT0gJywnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYSA9
IGFyZ3MtPm5leHQoKTsKKworICAgIC8vIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlICJ0byIg
aW1hZ2UuICBJdCBpcyBhIGZpbGwgaW1hZ2UuCisgICAgaWYgKCFhIHx8ICFwYXJzZUZpbGxJbWFn
ZShhcmdzLCB0b0ltYWdlVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0
LT5zZXRUb0ltYWdlKHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih0b0ltYWdlVmFsdWUuZ2V0
KCkpKTsKKyAgICBhID0gYXJncy0+bmV4dCgpOworCisgICAgLy8gU2tpcCBhIGNvbW1hCisgICAg
aWYgKGEtPnVuaXQgIT0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9yIHx8IGEtPmlWYWx1ZSAhPSAn
LCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhID0gYXJncy0+bmV4dCgpOworCisgICAg
Ly8gVGhlIHRoaXJkIGFyZ3VtZW50IGlzIHRoZSBjcm9zc2ZhZGUgdmFsdWUuICBJdCBpcyBhIHBl
cmNlbnRhZ2UuCisgICAgaWYgKCFhIHx8IGEtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QRVJDRU5UQUdFKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LT5zZXRQZXJj
ZW50YWdlKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZShhKSk7CisKKyAgICBjcm9zc2ZhZGUg
PSByZXN1bHQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUNh
bnZhcyhDU1NQYXJzZXJWYWx1ZUxpc3QgKiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIGNh
bnZhcykKIHsKICAgICBSZWZQdHI8Q1NTQ2FudmFzVmFsdWU+IHJlc3VsdCA9IENTU0NhbnZhc1Zh
bHVlOjpjcmVhdGUoKTsKIAogICAgIC8vIFdhbGsgdGhlIGFyZ3VtZW50cy4KLSAgICBDU1NQYXJz
ZXJWYWx1ZUxpc3QqIGFyZ3MgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5mdW5jdGlvbi0+YXJn
cy5nZXQoKTsKKyAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MgPSB2YWx1ZUxpc3QtPmN1cnJl
bnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CiAgICAgaWYgKCFhcmdzIHx8IGFyZ3MtPnNpemUo
KSAhPSAxKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRl
eCBjODA0ZTRiLi42NDYwNWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC05MSw3ICs5MSw3
IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQmFja2dyb3VuZENv
bG9yKCk7CiAKLSAgICBib29sIHBhcnNlRmlsbEltYWdlKFJlZlB0cjxDU1NWYWx1ZT4mKTsKKyAg
ICBib29sIHBhcnNlRmlsbEltYWdlKENTU1BhcnNlclZhbHVlTGlzdCAqLCBSZWZQdHI8Q1NTVmFs
dWU+Jik7CiAKICAgICBlbnVtIEZpbGxQb3NpdGlvbkZsYWcgeyBJbnZhbGlkRmlsbFBvc2l0aW9u
ID0gMCwgQW1iaWd1b3VzRmlsbFBvc2l0aW9uID0gMSwgWEZpbGxQb3NpdGlvbiA9IDIsIFlGaWxs
UG9zaXRpb24gPSA0IH07CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VGaWxsUG9zaXRp
b25Db21wb25lbnQoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgdW5zaWduZWQmIGN1bXVsYXRpdmVGbGFn
cywgRmlsbFBvc2l0aW9uRmxhZyYgaW5kaXZpZHVhbEZsYWcpOwpAQCAtMTc2LDEzICsxNzYsMTUg
QEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VGbGV4KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50
KTsKIAogICAgIC8vIEltYWdlIGdlbmVyYXRvcnMKLSAgICBib29sIHBhcnNlQ2FudmFzKFJlZlB0
cjxDU1NWYWx1ZT4mKTsKKyAgICBib29sIHBhcnNlQ2FudmFzKENTU1BhcnNlclZhbHVlTGlzdCAq
LCBSZWZQdHI8Q1NTVmFsdWU+Jik7CiAKLSAgICBib29sIHBhcnNlRGVwcmVjYXRlZEdyYWRpZW50
KFJlZlB0cjxDU1NWYWx1ZT4mKTsKLSAgICBib29sIHBhcnNlTGluZWFyR3JhZGllbnQoUmVmUHRy
PENTU1ZhbHVlPiYsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdGluZyk7Ci0gICAgYm9vbCBwYXJz
ZVJhZGlhbEdyYWRpZW50KFJlZlB0cjxDU1NWYWx1ZT4mLCBDU1NHcmFkaWVudFJlcGVhdCByZXBl
YXRpbmcpOworICAgIGJvb2wgcGFyc2VEZXByZWNhdGVkR3JhZGllbnQoQ1NTUGFyc2VyVmFsdWVM
aXN0ICosIFJlZlB0cjxDU1NWYWx1ZT4mKTsKKyAgICBib29sIHBhcnNlTGluZWFyR3JhZGllbnQo
Q1NTUGFyc2VyVmFsdWVMaXN0ICosIFJlZlB0cjxDU1NWYWx1ZT4mLCBDU1NHcmFkaWVudFJlcGVh
dCByZXBlYXRpbmcpOworICAgIGJvb2wgcGFyc2VSYWRpYWxHcmFkaWVudChDU1NQYXJzZXJWYWx1
ZUxpc3QgKiwgUmVmUHRyPENTU1ZhbHVlPiYsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdGluZyk7
CiAgICAgYm9vbCBwYXJzZUdyYWRpZW50Q29sb3JTdG9wcyhDU1NQYXJzZXJWYWx1ZUxpc3QqLCBD
U1NHcmFkaWVudFZhbHVlKiwgYm9vbCBleHBlY3RDb21tYSk7CiAKKyAgICBib29sIHBhcnNlQ3Jv
c3NmYWRlKENTU1BhcnNlclZhbHVlTGlzdCAqLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CisKICNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBpc1ZhbGlkRmlsdGVyQXJndW1lbnQoQ1NTUGFy
c2VyVmFsdWUqIGFyZ3VtZW50LCBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6RmlsdGVyT3BlcmF0aW9u
VHlwZSYsIHVuc2lnbmVkIGFyZ3VtZW50Q291bnQpOwogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVM
aXN0PiBwYXJzZUZpbHRlcigpOwpAQCAtMzE3LDcgKzMxOSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkZWxldGVGb250RmFjZU9ubHlWYWx1ZXMoKTsKIAogICAgIGJvb2wgaXNHZW5lcmF0ZWRJbWFn
ZVZhbHVlKENTU1BhcnNlclZhbHVlKikgY29uc3Q7Ci0gICAgYm9vbCBwYXJzZUdlbmVyYXRlZElt
YWdlKFJlZlB0cjxDU1NWYWx1ZT4mKTsKKyAgICBib29sIHBhcnNlR2VuZXJhdGVkSW1hZ2UoQ1NT
UGFyc2VyVmFsdWVMaXN0ICosIFJlZlB0cjxDU1NWYWx1ZT4mKTsKIAogICAgIGJvb2wgcGFyc2VW
YWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGludCBwcm9wSWQsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgaW1wb3J0YW50KTsKIAo=
</data>
<flag name="review"
          id="111002"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112928</attachid>
            <date>2011-10-28 15:56:28 -0700</date>
            <delta_ts>2011-10-28 16:05:22 -0700</delta_ts>
            <desc>address changes</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>31043</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZmY3MDVmLi45ODI3NjczIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAt
MjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCAtd2Via2l0LWNyb3NzLWZh
ZGUgaXMgcGFyc2VkIGNvcnJlY3RseS4KKworICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFk
ZS5odG1sOiBBZGRlZC4KKwogMjAxMS0xMC0yOCAgSm9obiBHcmVnZyAgPGpvaG5ueWdAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFk
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2Nv
bXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJiODNkZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKKy13ZWJraXQtY3Jvc3MtZmFkZQorCisKK1BBU1MgdGVz
dENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFk
ZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9leGFtcGxlLnBuZyksIDUwJSkiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQt
aW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWlt
YWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIKK1BBU1MgdGVzdENy
b3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8v
ZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1MCUpIiwg
ImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhh
bXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1MCUpIgorUEFT
UyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdl
YmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDEyJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNy
b3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUpLCB1cmwo
aHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMTIlKSIKK1BBU1MgdGVzdENyb3NzZmFk
ZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSki
LCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9l
eGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCkiLCAiYmFj
a2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxl
LnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BBU1MgdGVzdENyb3NzZmFk
ZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCksIHVybChodHRwOi8vZXhh
bXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQ
QVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwoIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BBU1MgdGVzdENyb3NzZmFkZSgi
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKDEwcHggMjAlIDVweCAjYmJiKSIs
ICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtp
dC1jcm9zcy1mYWRlKCkpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRl
c3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgyMCUsIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5n
KSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9hLnBuZyksKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRlc3RDcm9z
c2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsKSIsICJiYWNrZ3Jv
dW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1h
Z2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZykpIiwg
ImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCwsLCwsKSIsICJiYWNrZ3JvdW5kLWltYWdl
IikgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ2MGIwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFk
ZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2Z1
bmN0aW9uIHRlc3RDcm9zc2ZhZGUoY3NzLCBxdWVyeVByb3ApCit7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxl
JywgY3NzKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisKKyAgICB2YXIg
cmVzdWx0ID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocXVlcnlQcm9w
KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworZGVidWcoJzxwPi13ZWJraXQtY3Jvc3MtZmFkZTwvcD4nKTsKKworLy8gVmFsaWQK
Kworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyIt
d2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA1MCUpIicpOworc2hvdWxkQmUoJ3Rl
c3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhh
bXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5n
KSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Vi
a2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8v
ZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUu
cG5nKSwgNTAlKSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyIt
d2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQt
Y3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgi
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRp
ZW50KGJsYWNrLCB3aGl0ZSksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAx
MiUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQt
bGluZWFyLWdyYWRpZW50KHRvcCwgYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDEyJSkiJyk7CisKKy8vIEludmFsaWQKKworc2hvdWxkQmUoJ3Rlc3RD
cm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxl
LnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKK3Nob3VsZEJlKCd0ZXN0
Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcpLCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxkQmUoJ3Rl
c3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJu
b25lIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSgpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSkiLCAi
YmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUo
ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoIiwgImJhY2tncm91bmQt
aW1hZ2UiKScsICcibm9uZSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoMTBweCAyMCUgNXB4ICNiYmIpIiwgImJhY2tncm91
bmQtaW1hZ2UiKScsICcibm9uZSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQt
Y3Jvc3MtZmFkZSgpKSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxk
QmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgy
MCUsIHVybChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2IucG5nKSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxkQmUoJ3Rl
c3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2EucG5nKSwpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSIn
KTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNy
b3NzLWZhZGUoLCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxkQmUo
J3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsdXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9u
ZSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUoLCwsLCwpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKKwor
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhhNjY4NzEu
LmE0NGQ2MzMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMS0xMC0yOCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ1NT
MyBJbWFnZXMgY3Jvc3MtZmFkZSgpIGltYWdlIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjE2MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTAyMDkyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUGFyc2UgLXdlYmtpdC1jcm9zcy1mYWRlIGFjY29yZGluZyB0byB0aGUgQ1NTMyBJbWFn
ZXMgVmFsdWVzIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgQWxzbywgYWRqdXN0IG90aGVyIENT
UyBwYXJzaW5nIGZ1bmN0aW9ucyB0byBzdXBwb3J0IG5lc3RlZCBmdW5jdGlvbnMsIGJ5IHVzaW5n
IGEgc3BlY2lmaWMgQ1NTIHZhbHVlIGxpc3QKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgZ2xvYmFs
IG9uZS4gVGhpcyBhbGxvd3MgLSBmb3IgZXhhbXBsZSAtIGNyb3NzLWZhZGUgdG8gcGFzcyBlYWNo
IG9mIGl0cyBhcmd1bWVudHMgYmFjayBpbnRvCisgICAgICAgIHBhcnNlRmlsbEltYWdlIGFuZCB0
byBzdWNjZXNzZnVsbHkgcGFyc2UgaW1hZ2UgZnVuY3Rpb25zIGluIHRoaXMgZmFzaGlvbi4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNy
b3NzLWZhZGUuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGNzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6On5DU1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0Nyb3NzZmFkZVZhbHVlOjppbWFnZSk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNGaXhlZFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OnNldEZyb21JbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6c2V0VG9JbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6c2V0UGVyY2VudGFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q1NTQ3Jvc3NmYWRlVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUZpbGxQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlQm9yZGVySW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURl
cHJlY2F0ZWRHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlTGlu
ZWFyR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVJhZGlhbEdy
YWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6aXNHZW5lcmF0ZWRJbWFnZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHZW5lcmF0ZWRJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDYW52YXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDoKKwogMjAxMS0xMC0yOCAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gSW1wbGljaXRseSBza2lwIHJlbmRlciBzdXJmYWNlcyB0aGF0
IHdvbid0IGJlIGRyYXduCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZGQ5ZWZmMS4uM2EwZjc3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjg0LDYgKzY4NCw4
IEBACiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2
MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJF
OEUyQzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAx
MDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNW
R1BhcnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTJEOEZFQkRDMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDhGRUJE
QTE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICovOyB9OworCQkyRDhG
RUJERDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRCMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovOyB9OwogCQkyRDkwNjYwNjBCRTE0MUQ0MDA5NTY5
OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCAq
LzsgfTsKIAkJMkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNTBCRTE0MUQ0
MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkyRTA4ODhENDExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3Jt
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTA4ODhEMjExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgKi87IH07CkBAIC03
NzUyLDYgKzc3NTQsOCBAQAogCQkyQkU4RTJDNjEyQTU4OUVDMDBGQUQ1NTAgLyogSFRNTE1ldGFD
aGFyc2V0UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhUTUxNZXRh
Q2hhcnNldFBhcnNlci5oOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBhcnNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyog
SFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHBhdGggPSBwYXJzZXIvSFRNTE1ldGFD
aGFyc2V0UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdQYXJzaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJC
IC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOTA2
NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEOTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2xpcGJvYXJkTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMjA0NTksNiArMjA0NjMsOCBAQAogCQkJCUUxRUJCQkQzMEFBQzlC
ODcwMDFGRThFMiAvKiBDU1NDaGFyc2V0UnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDQ0YwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU0NoYXJzZXRSdWxlLmggKi8sCiAJCQkJODVDNTZDQUMwQUE4OUY4RTAw
RDk1NzU1IC8qIENTU0NoYXJzZXRSdWxlLmlkbCAqLywKKwkJCQkyRDhGRUJEQTE0M0UzRUY3MDA3
MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICovLAorCQkJCTJEOEZFQkRCMTQzRTNFRjcw
MDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovLAogCQkJCUJDRUE0NzdDMDk3Q0FBQzgw
MDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovLAogCQkJCUJDRUE0
NzdEMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCAqLywK
IAkJCQlBQTA5NzhFRDBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAg
Ki8sCkBAIC0yNDU0NCw2ICsyNDU1MCw3IEBACiAJCQkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3
IC8qIEV2ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIzQTg4NzIxNDU2MzJGOTAw
M0FFOEY1IC8qIERPTURPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFk
ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3MzkxLDYgKzI3Mzk4LDcgQEAKIAkJCQlBMEVF
MERGNTE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBMEVFMERGNzE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRl
cnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNCQjU5RjMxNDU3QTQwRDAwQUM1NkZFIC8qIERv
Y3VtZW50RXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDhGRUJEQzE0M0UzRUY3
MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lZTczOTJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworQ1NTQ3Jvc3NmYWRlVmFsdWU6On5DU1NDcm9zc2ZhZGVWYWx1ZSgpCit7
CisKK30KKworU3RyaW5nIENTU0Nyb3NzZmFkZVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKK3sKKyAg
ICBTdHJpbmcgcmVzdWx0ID0gIi13ZWJraXQtY3Jvc3MtZmFkZSgiOworICAgIHJlc3VsdCArPSBt
X2Zyb21JbWFnZS0+Y3NzVGV4dCgpICsgIiwgIjsKKyAgICByZXN1bHQgKz0gbV90b0ltYWdlLT5j
c3NUZXh0KCkgKyAiLCAiOworICAgIHJlc3VsdCArPSBtX3BlcmNlbnRhZ2UtPmNzc1RleHQoKTsK
KyAgICByZXN1bHQgKz0gIikiOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0ludFNpemUgQ1NT
Q3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQor
eworICAgIFVOVVNFRF9QQVJBTShyZW5kZXJlcik7CisKKyAgICByZXR1cm4gSW50U2l6ZSgpOwor
fQorCitQYXNzUmVmUHRyPEltYWdlPiBDU1NDcm9zc2ZhZGVWYWx1ZTo6aW1hZ2UoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0o
cmVuZGVyZXIpOworICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKworICAgIHJldHVybiAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Jvc3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NTk3NWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENTU0Nyb3NzZmFkZVZhbHVlX2gKKyNkZWZpbmUg
Q1NTQ3Jvc3NmYWRlVmFsdWVfaAorCisjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5o
IgorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1
ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5k
ZXJPYmplY3Q7CisKK2NsYXNzIENTU0Nyb3NzZmFkZVZhbHVlIDogcHVibGljIENTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Nyb3NzZmFk
ZVZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NS
ZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Ny
b3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9CisgICAgdmlydHVhbCB+Q1NTQ3Jv
c3NmYWRlVmFsdWUoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVS
UklERTsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0
KiwgY29uc3QgSW50U2l6ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0ZpeGVkU2l6
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBJbnRTaXpl
IGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKSBPVkVSUklERTsKKworICAgIHZvaWQgc2V0
UGVyY2VudGFnZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlKSB7IG1f
cGVyY2VudGFnZSA9IHBlcmNlbnRhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBDU1NDcm9zc2ZhZGVW
YWx1ZShQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJ
bWFnZVZhbHVlPiB0b0ltYWdlKQorICAgIDogbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQorICAgICwg
bV90b0ltYWdlKHRvSW1hZ2UpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxDU1NJbWFnZVZh
bHVlPiBtX2Zyb21JbWFnZTsKKyAgICBSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gbV90b0ltYWdlOwor
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9wZXJjZW50YWdlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ1NTQ3Jvc3NmYWRlVmFsdWVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwMGI5OGQ5Li44MDMwYjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlVmFs
dWUuaCIKICNpbmNsdWRlICJDU1NDYW52YXNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0NoYXJzZXRS
dWxlLmgiCisjaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDdXJz
b3JJbWFnZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRmxleFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
Rm9udEZhY2VSdWxlLmgiCkBAIC0xMjEzLDcgKzEyMTQsNyBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgICAgICBtX3Zh
bHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGlzR2Vu
ZXJhdGVkSW1hZ2VWYWx1ZSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChwYXJzZUdlbmVyYXRl
ZEltYWdlKHBhcnNlZFZhbHVlKSkKKyAgICAgICAgICAgIGlmIChwYXJzZUdlbmVyYXRlZEltYWdl
KG1fdmFsdWVMaXN0LCBwYXJzZWRWYWx1ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3Qt
Pm5leHQoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0yNzI5LDcgKzI3MzAsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb250ZW50KGludCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgICAgIGlmICghcGFyc2VkVmFsdWUp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaXNHZW5lcmF0ZWRJbWFnZVZhbHVlKHZhbCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXBh
cnNlR2VuZXJhdGVkSW1hZ2UocGFyc2VkVmFsdWUpKQorICAgICAgICAgICAgICAgIGlmICghcGFy
c2VHZW5lcmF0ZWRJbWFnZShtX3ZhbHVlTGlzdCwgcGFyc2VkVmFsdWUpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yODAxLDIyICsyODAyLDIyIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENTU1BhcnNlcjo6cGFyc2VCYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVybiBwYXJzZUNv
bG9yKCk7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbGxJbWFnZShSZWZQdHI8Q1NTVmFs
dWU+JiB2YWx1ZSkKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbGxJbWFnZShDU1NQYXJzZXJWYWx1
ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlPiYgdmFsdWUpCiB7Ci0gICAgaWYgKG1f
dmFsdWVMaXN0LT5jdXJyZW50KCktPmlkID09IENTU1ZhbHVlTm9uZSkgeworICAgIGlmICh2YWx1
ZUxpc3QtPmN1cnJlbnQoKS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgIHZhbHVlID0g
Q1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAg
ICBpZiAobV92YWx1ZUxpc3QtPmN1cnJlbnQoKS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1VSSSkgeworICAgIGlmICh2YWx1ZUxpc3QtPmN1cnJlbnQoKS0+dW5pdCA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewogICAgICAgICAvLyBGSVhNRTogVGhlIGNvbXBsZXRlVVJM
IGNhbGwgc2hvdWxkIGJlIGRvbmUgd2hlbiB1c2luZyB0aGUgQ1NTSW1hZ2VWYWx1ZSwKICAgICAg
ICAgLy8gbm90IHdoZW4gY3JlYXRpbmcgaXQuCiAgICAgICAgIGlmIChtX3N0eWxlU2hlZXQpCi0g
ICAgICAgICAgICB2YWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShtX3N0eWxlU2hlZXQtPmNv
bXBsZXRlVVJMKG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPnN0cmluZykpOworICAgICAgICAgICAg
dmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobV9zdHlsZVNoZWV0LT5jb21wbGV0ZVVSTCh2
YWx1ZUxpc3QtPmN1cnJlbnQoKS0+c3RyaW5nKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGlmIChpc0dlbmVyYXRlZEltYWdlVmFsdWUobV92YWx1ZUxpc3QtPmN1cnJlbnQo
KSkpCi0gICAgICAgIHJldHVybiBwYXJzZUdlbmVyYXRlZEltYWdlKHZhbHVlKTsKKyAgICBpZiAo
aXNHZW5lcmF0ZWRJbWFnZVZhbHVlKHZhbHVlTGlzdC0+Y3VycmVudCgpKSkKKyAgICAgICAgcmV0
dXJuIHBhcnNlR2VuZXJhdGVkSW1hZ2UodmFsdWVMaXN0LCB2YWx1ZSk7CiAKICAgICByZXR1cm4g
ZmFsc2U7CiB9CkBAIC0zMDc4LDcgKzMwNzksNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGaWxs
UHJvcGVydHkoaW50IHByb3BJZCwgaW50JiBwcm9wSWQxLCBpbnQmIHByb3BJZDIsCiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kSW1hZ2U6CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJ
bWFnZToKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlRmlsbEltYWdlKGN1cnJWYWx1ZSkp
CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUZpbGxJbWFnZShtX3ZhbHVlTGlzdCwgY3Vy
clZhbHVlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRCYWNrZ3JvdW5kQ2xpcDoKQEAgLTUyNjYsNyArNTI2Nyw3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUJvcmRlckltYWdlKGludCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHJlc3Vs
dCkKICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbW1pdEltYWdlKENTU0ltYWdlVmFsdWU6OmNy
ZWF0ZShtX3N0eWxlU2hlZXQtPmNvbXBsZXRlVVJMKHZhbC0+c3RyaW5nKSkpOwogICAgICAgICAg
ICAgfSBlbHNlIGlmIChpc0dlbmVyYXRlZEltYWdlVmFsdWUodmFsKSkgewogICAgICAgICAgICAg
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWU7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnNlR2Vu
ZXJhdGVkSW1hZ2UodmFsdWUpKQorICAgICAgICAgICAgICAgIGlmIChwYXJzZUdlbmVyYXRlZElt
YWdlKG1fdmFsdWVMaXN0LCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY29t
bWl0SW1hZ2UodmFsdWUpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNTc3MiwxMCArNTc3MywxMCBAQCBzdGF0aWMgYm9vbCBwYXJz
ZURlcHJlY2F0ZWRHcmFkaWVudENvbG9yU3RvcChDU1NQYXJzZXIqIHAsIENTU1BhcnNlclZhbHVl
KiBhLCBDUwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VEZXBy
ZWNhdGVkR3JhZGllbnQoUmVmUHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQpCitib29sIENTU1BhcnNl
cjo6cGFyc2VEZXByZWNhdGVkR3JhZGllbnQoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3Qs
IFJlZlB0cjxDU1NWYWx1ZT4mIGdyYWRpZW50KQogewogICAgIC8vIFdhbGsgdGhlIGFyZ3VtZW50
cy4KLSAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgp
LT5mdW5jdGlvbi0+YXJncy5nZXQoKTsKKyAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MgPSB2
YWx1ZUxpc3QtPmN1cnJlbnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CiAgICAgaWYgKCFhcmdz
IHx8IGFyZ3MtPnNpemUoKSA9PSAwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTU5MzEs
MTIgKzU5MzIsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNl
R3JhZGllbnRDb2xvck9yS2V5d29yZChDU1NQYXJzZXIqIHAsIEMKICAgICByZXR1cm4gcC0+cGFy
c2VDb2xvcih2YWx1ZSk7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUxpbmVhckdyYWRpZW50
KFJlZlB0cjxDU1NWYWx1ZT4mIGdyYWRpZW50LCBDU1NHcmFkaWVudFJlcGVhdCByZXBlYXRpbmcp
Citib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lYXJHcmFkaWVudChDU1NQYXJzZXJWYWx1ZUxpc3Qq
IHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWF0
IHJlcGVhdGluZykKIHsKICAgICBSZWZQdHI8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZT4gcmVzdWx0
ID0gQ1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlKHJlcGVhdGluZyk7CiAKICAgICAvLyBX
YWxrIHRoZSBhcmd1bWVudHMuCi0gICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gbV92YWx1
ZUxpc3QtPmN1cnJlbnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgQ1NTUGFyc2VyVmFs
dWVMaXN0KiBhcmdzID0gdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0aW9uLT5hcmdzLmdldCgp
OwogICAgIGlmICghYXJncyB8fCAhYXJncy0+c2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTYwMDEsMTIgKzYwMDIsMTIgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZWFyR3Jh
ZGllbnQoUmVmUHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWEKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlUmFkaWFsR3JhZGllbnQoUmVm
UHRyPENTU1ZhbHVlPiYgZ3JhZGllbnQsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdGluZykKK2Jv
b2wgQ1NTUGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRpZW50KENTU1BhcnNlclZhbHVlTGlzdCogdmFs
dWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JiBncmFkaWVudCwgQ1NTR3JhZGllbnRSZXBlYXQgcmVw
ZWF0aW5nKQogewogICAgIFJlZlB0cjxDU1NSYWRpYWxHcmFkaWVudFZhbHVlPiByZXN1bHQgPSBD
U1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVhdGUocmVwZWF0aW5nKTsKIAogICAgIC8vIFdhbGsg
dGhlIGFyZ3VtZW50cy4KLSAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MgPSBtX3ZhbHVlTGlz
dC0+Y3VycmVudCgpLT5mdW5jdGlvbi0+YXJncy5nZXQoKTsKKyAgICBDU1NQYXJzZXJWYWx1ZUxp
c3QqIGFyZ3MgPSB2YWx1ZUxpc3QtPmN1cnJlbnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CiAg
ICAgaWYgKCFhcmdzIHx8ICFhcmdzLT5zaXplKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtNjE2OCw0MyArNjE2OSw5MSBAQCBib29sIENTU1BhcnNlcjo6aXNHZW5lcmF0ZWRJbWFnZVZh
bHVlKENTU1BhcnNlclZhbHVlKiB2YWwpIGNvbnN0CiAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdD
YXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LXJlcGVhdGluZy1saW5lYXItZ3JhZGll
bnQoIikKICAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UodmFsLT5mdW5jdGlvbi0+bmFtZSwg
Ii13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCIpCiAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNl
KHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LXJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQo
IikKLSAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UodmFsLT5mdW5jdGlvbi0+bmFtZSwgIi13
ZWJraXQtY2FudmFzKCIpOworICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZSh2YWwtPmZ1bmN0
aW9uLT5uYW1lLCAiLXdlYmtpdC1jYW52YXMoIikKKyAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nh
c2UodmFsLT5mdW5jdGlvbi0+bmFtZSwgIi13ZWJraXQtY3Jvc3MtZmFkZSgiKTsKIH0KIAotYm9v
bCBDU1NQYXJzZXI6OnBhcnNlR2VuZXJhdGVkSW1hZ2UoUmVmUHRyPENTU1ZhbHVlPiYgdmFsdWUp
Citib29sIENTU1BhcnNlcjo6cGFyc2VHZW5lcmF0ZWRJbWFnZShDU1NQYXJzZXJWYWx1ZUxpc3Qq
IHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlPiYgdmFsdWUpCiB7Ci0gICAgQ1NTUGFyc2VyVmFs
dWUqIHZhbCA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgQ1NTUGFyc2VyVmFsdWUqIHZh
bCA9IHZhbHVlTGlzdC0+Y3VycmVudCgpOwogCiAgICAgaWYgKHZhbC0+dW5pdCAhPSBDU1NQYXJz
ZXJWYWx1ZTo6RnVuY3Rpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh2YWwtPmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1ncmFkaWVudCgiKSkK
LSAgICAgICAgcmV0dXJuIHBhcnNlRGVwcmVjYXRlZEdyYWRpZW50KHZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIHBhcnNlRGVwcmVjYXRlZEdyYWRpZW50KHZhbHVlTGlzdCwgdmFsdWUpOwogCiAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LWxpbmVh
ci1ncmFkaWVudCgiKSkKLSAgICAgICAgcmV0dXJuIHBhcnNlTGluZWFyR3JhZGllbnQodmFsdWUs
IE5vblJlcGVhdGluZyk7CisgICAgICAgIHJldHVybiBwYXJzZUxpbmVhckdyYWRpZW50KHZhbHVl
TGlzdCwgdmFsdWUsIE5vblJlcGVhdGluZyk7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
dmFsLT5mdW5jdGlvbi0+bmFtZSwgIi13ZWJraXQtcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgi
KSkKLSAgICAgICAgcmV0dXJuIHBhcnNlTGluZWFyR3JhZGllbnQodmFsdWUsIFJlcGVhdGluZyk7
CisgICAgICAgIHJldHVybiBwYXJzZUxpbmVhckdyYWRpZW50KHZhbHVlTGlzdCwgdmFsdWUsIFJl
cGVhdGluZyk7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsLT5mdW5jdGlvbi0+bmFt
ZSwgIi13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCIpKQotICAgICAgICByZXR1cm4gcGFyc2VSYWRp
YWxHcmFkaWVudCh2YWx1ZSwgTm9uUmVwZWF0aW5nKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmFk
aWFsR3JhZGllbnQodmFsdWVMaXN0LCB2YWx1ZSwgTm9uUmVwZWF0aW5nKTsKIAogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZSh2YWwtPmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1yZXBlYXRpbmct
cmFkaWFsLWdyYWRpZW50KCIpKQotICAgICAgICByZXR1cm4gcGFyc2VSYWRpYWxHcmFkaWVudCh2
YWx1ZSwgUmVwZWF0aW5nKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmFkaWFsR3JhZGllbnQodmFs
dWVMaXN0LCB2YWx1ZSwgUmVwZWF0aW5nKTsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2
YWwtPmZ1bmN0aW9uLT5uYW1lLCAiLXdlYmtpdC1jYW52YXMoIikpCi0gICAgICAgIHJldHVybiBw
YXJzZUNhbnZhcyh2YWx1ZSk7CisgICAgICAgIHJldHVybiBwYXJzZUNhbnZhcyh2YWx1ZUxpc3Qs
IHZhbHVlKTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWwtPmZ1bmN0aW9uLT5uYW1l
LCAiLXdlYmtpdC1jcm9zcy1mYWRlKCIpKQorICAgICAgICByZXR1cm4gcGFyc2VDcm9zc2ZhZGUo
dmFsdWVMaXN0LCB2YWx1ZSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUNhbnZhcyhSZWZQdHI8Q1NTVmFsdWU+JiBjYW52YXMpCitib29sIENTU1BhcnNl
cjo6cGFyc2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxD
U1NWYWx1ZT4mIGNyb3NzZmFkZSkKK3sKKyAgICBSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IHJl
c3VsdDsKKworICAgIC8vIFdhbGsgdGhlIGFyZ3VtZW50cy4KKyAgICBDU1NQYXJzZXJWYWx1ZUxp
c3QqIGFyZ3MgPSB2YWx1ZUxpc3QtPmN1cnJlbnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7Cisg
ICAgaWYgKCFhcmdzIHx8IGFyZ3MtPnNpemUoKSAhPSA1KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgQ1NTUGFyc2VyVmFsdWUqIGEgPSBhcmdzLT5jdXJyZW50KCk7CisgICAgUmVmUHRyPENT
U1ZhbHVlPiBmcm9tSW1hZ2VWYWx1ZTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2VWYWx1
ZTsKKworICAgIC8vIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgImZyb20iIGltYWdlLiBJdCBp
cyBhIGZpbGwgaW1hZ2UuCisgICAgaWYgKCFhIHx8ICFwYXJzZUZpbGxJbWFnZShhcmdzLCBmcm9t
SW1hZ2VWYWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhID0gYXJncy0+bmV4dCgp
OworCisgICAgLy8gU2tpcCBhIGNvbW1hCisgICAgaWYgKGEtPnVuaXQgIT0gQ1NTUGFyc2VyVmFs
dWU6Ok9wZXJhdG9yIHx8IGEtPmlWYWx1ZSAhPSAnLCcpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBhID0gYXJncy0+bmV4dCgpOworCisgICAgLy8gVGhlIHNlY29uZCBhcmd1bWVudCBpcyB0
aGUgInRvIiBpbWFnZS4gSXQgaXMgYSBmaWxsIGltYWdlLgorICAgIGlmICghYSB8fCAhcGFyc2VG
aWxsSW1hZ2UoYXJncywgdG9JbWFnZVZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGEgPSBhcmdzLT5uZXh0KCk7CisKKyAgICAvLyBTa2lwIGEgY29tbWEKKyAgICBpZiAoYS0+dW5p
dCAhPSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IgfHwgYS0+aVZhbHVlICE9ICcsJykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGEgPSBhcmdzLT5uZXh0KCk7CisKKyAgICAvLyBUaGUgdGhp
cmQgYXJndW1lbnQgaXMgdGhlIGNyb3NzZmFkZSB2YWx1ZS4gSXQgaXMgYSBwZXJjZW50YWdlLgor
ICAgIGlmICghYSB8fCBhLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFH
RSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gQ1NTQ3Jvc3NmYWRlVmFs
dWU6OmNyZWF0ZShzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oZnJvbUltYWdlVmFsdWUuZ2V0
KCkpLCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4odG9JbWFnZVZhbHVlLmdldCgpKSk7Cisg
ICAgcmVzdWx0LT5zZXRQZXJjZW50YWdlKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZShhKSk7
CisKKyAgICBjcm9zc2ZhZGUgPSByZXN1bHQ7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBDU1NQYXJzZXI6OnBhcnNlQ2FudmFzKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBS
ZWZQdHI8Q1NTVmFsdWU+JiBjYW52YXMpCiB7CiAgICAgUmVmUHRyPENTU0NhbnZhc1ZhbHVlPiBy
ZXN1bHQgPSBDU1NDYW52YXNWYWx1ZTo6Y3JlYXRlKCk7CiAKICAgICAvLyBXYWxrIHRoZSBhcmd1
bWVudHMuCi0gICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gbV92YWx1ZUxpc3QtPmN1cnJl
bnQoKS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdz
ID0gdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwogICAgIGlmICgh
YXJncyB8fCBhcmdzLT5zaXplKCkgIT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgKaW5kZXggMjg3NWY4MC4uNzQ0ZDNjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUJhY2tncm91bmRDb2xvcigpOwogCi0gICAgYm9vbCBwYXJzZUZpbGxJbWFnZShSZWZQ
dHI8Q1NTVmFsdWU+Jik7CisgICAgYm9vbCBwYXJzZUZpbGxJbWFnZShDU1NQYXJzZXJWYWx1ZUxp
c3QqLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CiAKICAgICBlbnVtIEZpbGxQb3NpdGlvbkZsYWcgeyBJ
bnZhbGlkRmlsbFBvc2l0aW9uID0gMCwgQW1iaWd1b3VzRmlsbFBvc2l0aW9uID0gMSwgWEZpbGxQ
b3NpdGlvbiA9IDIsIFlGaWxsUG9zaXRpb24gPSA0IH07CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gcGFyc2VGaWxsUG9zaXRpb25Db21wb25lbnQoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgdW5zaWdu
ZWQmIGN1bXVsYXRpdmVGbGFncywgRmlsbFBvc2l0aW9uRmxhZyYgaW5kaXZpZHVhbEZsYWcpOwpA
QCAtMTc2LDEzICsxNzYsMTUgQEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VGbGV4KGludCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KTsKIAogICAgIC8vIEltYWdlIGdlbmVyYXRvcnMKLSAgICBib29s
IHBhcnNlQ2FudmFzKFJlZlB0cjxDU1NWYWx1ZT4mKTsKKyAgICBib29sIHBhcnNlQ2FudmFzKENT
U1BhcnNlclZhbHVlTGlzdCosIFJlZlB0cjxDU1NWYWx1ZT4mKTsKIAotICAgIGJvb2wgcGFyc2VE
ZXByZWNhdGVkR3JhZGllbnQoUmVmUHRyPENTU1ZhbHVlPiYpOwotICAgIGJvb2wgcGFyc2VMaW5l
YXJHcmFkaWVudChSZWZQdHI8Q1NTVmFsdWU+JiwgQ1NTR3JhZGllbnRSZXBlYXQgcmVwZWF0aW5n
KTsKLSAgICBib29sIHBhcnNlUmFkaWFsR3JhZGllbnQoUmVmUHRyPENTU1ZhbHVlPiYsIENTU0dy
YWRpZW50UmVwZWF0IHJlcGVhdGluZyk7CisgICAgYm9vbCBwYXJzZURlcHJlY2F0ZWRHcmFkaWVu
dChDU1NQYXJzZXJWYWx1ZUxpc3QqLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CisgICAgYm9vbCBwYXJz
ZUxpbmVhckdyYWRpZW50KENTU1BhcnNlclZhbHVlTGlzdCosIFJlZlB0cjxDU1NWYWx1ZT4mLCBD
U1NHcmFkaWVudFJlcGVhdCByZXBlYXRpbmcpOworICAgIGJvb2wgcGFyc2VSYWRpYWxHcmFkaWVu
dChDU1NQYXJzZXJWYWx1ZUxpc3QqLCBSZWZQdHI8Q1NTVmFsdWU+JiwgQ1NTR3JhZGllbnRSZXBl
YXQgcmVwZWF0aW5nKTsKICAgICBib29sIHBhcnNlR3JhZGllbnRDb2xvclN0b3BzKENTU1BhcnNl
clZhbHVlTGlzdCosIENTU0dyYWRpZW50VmFsdWUqLCBib29sIGV4cGVjdENvbW1hKTsKIAorICAg
IGJvb2wgcGFyc2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgUmVmUHRyPENTU1ZhbHVl
PiYpOworCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgaXNWYWxpZEZpbHRlckFy
Z3VtZW50KENTU1BhcnNlclZhbHVlKiBhcmd1bWVudCwgV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkZp
bHRlck9wZXJhdGlvblR5cGUmLCB1bnNpZ25lZCBhcmd1bWVudENvdW50KTsKICAgICBQYXNzUmVm
UHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VGaWx0ZXIoKTsKQEAgLTMxNyw3ICszMTksNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGVsZXRlRm9udEZhY2VPbmx5VmFsdWVzKCk7CiAKICAgICBib29sIGlz
R2VuZXJhdGVkSW1hZ2VWYWx1ZShDU1NQYXJzZXJWYWx1ZSopIGNvbnN0OwotICAgIGJvb2wgcGFy
c2VHZW5lcmF0ZWRJbWFnZShSZWZQdHI8Q1NTVmFsdWU+Jik7CisgICAgYm9vbCBwYXJzZUdlbmVy
YXRlZEltYWdlKENTU1BhcnNlclZhbHVlTGlzdCosIFJlZlB0cjxDU1NWYWx1ZT4mKTsKIAogICAg
IGJvb2wgcGFyc2VWYWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGludCBwcm9wSWQs
IGNvbnN0IFN0cmluZyYsIGJvb2wgaW1wb3J0YW50KTsKIAo=
</data>
<flag name="review"
          id="111138"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113523</attachid>
            <date>2011-11-03 10:59:39 -0700</date>
            <delta_ts>2011-11-04 10:40:37 -0700</delta_ts>
            <desc>[preliminary] render cross-fade</desc>
            <filename>crossfade2.patch</filename>
            <type>text/plain</type>
            <size>35526</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA2ZjI4MTk1Li5jODZkMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02ODMsNiArNjgzLDEwIEBACiAJCTI5RDdCQ0ZB
MTQ0NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlEN0JDRjkxNDQ0QUY3RDAwNzA2
MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi87IH07CiAJCTJCRThFMkM3MTJBNTg5
RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBI
VE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJFOEUyQzkxMkE1OEEwMTAwRkFENTUw
IC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFD
aGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKKwkJMkQyRkMwNTgxNDYwQ0Q2RjAwMjYzNjMzIC8qIENy
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5jcHAgKi87IH07CisJCTJEMkZDMDU5MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQyRkMwNTUxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmggKi87IH07CisJCTJEMkZDMDVBMTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuY3BwICovOyB9OworCQkyRDJGQzA1QjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5o
ICovOyB9OwogCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDNBMEUzNTEz
QTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8q
IENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1
ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4
RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi87IH07CkBAIC01
MjUzLDcgKzUyNTcsNiBAQAogCQlCQ0UwMTM5QTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNo
ZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovOyB9OwogCQlCQ0Uw
MTM5QjBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyog
SlNTdHlsZVNoZWV0LmggKi87IH07CiAJCUJDRTA0QzhBMERBRkY3QTAwMDdBMEY0MSAvKiBHZW5l
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTA0Qzg5MERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEg
LyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCAqLzsgfTsKIAkJQkNFMUM0MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQxOTBEOTgyOTgw
MDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLzsgfTsKIAkJQkNFMUM0MUMwRDk4Mjk4MTAwM0IwMkYy
IC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi87IH07CiAJ
CUJDRTFDNDNCMEQ5ODMwRDMwMDNCMDJGMiAvKiBKU0xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTFDNDM5MEQ5ODMwRDMwMDNCMDJG
MiAvKiBKU0xvY2F0aW9uLmNwcCAqLzsgfTsKQEAgLTc3NTAsNiArNzc1MywxMCBAQAogCQkyOUQ3
QkNGOTE0NDRBRjdEMDA3MDYxOUMgLyogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkJFOEUyQzYxMkE1ODlFQzAwRkFENTUwIC8qIEhU
TUxNZXRhQ2hhcnNldFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBI
VE1MTWV0YUNoYXJzZXRQYXJzZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0YUNoYXJzZXRQYXJz
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFE
NTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hU
TUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
MkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU1MTQ2MENENkYwMDI2
MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1
NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1Bh
cnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXJzaW5n
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREExNDNFM0VGNzAw
NzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjUwNyw3ICsxMjUxNCw2IEBACiAJCUJDRTAx
Mzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRTAxMzk5MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3R5bGVTaGVldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJh
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0UwNEM5MzBEQUZGOTAyMDA3QTBGNDEgLyogR2Vu
ZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vu
ZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UxQzQxOTBE
OTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MUEw
RDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNFMUM0MjIwRDk4MjlGMjAwM0IwMkYyIC8qIExvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBMb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTA5
NCw3ICsxOTEwMCwxMCBAQAogCQkJCTM3MjAyMTk4MTA2MjEzQzYwMEYyNUM0QiAvKiBGb250U21v
b3RoaW5nTW9kZS5oICovLAogCQkJCTM3ODRDMzRBMEUxMUFBMzQwMDdEOEQ0OCAvKiBGb250VHJh
aXRzTWFzay5oICovLAogCQkJCUJDRTQ0MTM1MTJGNzQ5MEIwMDlCODRCOCAvKiBGb250V2lkdGhW
YXJpYW50LmggKi8sCi0JCQkJQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAorCQkJCTJEMkZDMDU2MTQ2MENENkYwMDI2MzYzMyAv
KiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCisJCQkJMkQyRkMwNTcxNDYwQ0Q2RjAw
MjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJQkMyM0YwREEwREFG
RjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJQkNFMDRDODkwREFGRjdB
MDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovLAogCQkJCTA4NkJCRDBFMTM2MDM5QzIwMDhCMTVE
OCAvKiBHbHlwaC5oICovLApAQCAtMjQ1NDEsNiArMjQ1NTAsOCBAQAogCQkJCTlCM0E4ODcyMTQ1
NjMyRjkwMDNBRThGNSAvKiBET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ2MkY1MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1ND
cm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkQyRkMwNTkxNDYwQ0Q2RjAwMjYz
NjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDJG
QzA1QjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjU2MjYsNyArMjU2MzcsNiBAQAogCQkJCTk3MjA1QUFGMTIzOTI4Q0EwMEIx
NzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM4
MUI4OTBDNDQyMkY3MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBH
ZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFCRjE1MDBGRDMz
OEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTZD
QjIxMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yNzM4Nyw2ICsyNzM5Nyw4IEBACiAJCQkJQTBFRTBERjcxNDRGODI1NTAwRjgw
QjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQkI1OUYz
MTQ1N0E0MEQwMEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTJEMkZDMDU4MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDJGQzA1QTE0NjBDRDZGMDAy
NjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCBlZTczOTJjLi5hN2ZkMzMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAgLTI2LDEyICsy
NiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVl
LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ1NTQ3Jvc3NmYWRlVmFsdWU6On5DU1NDcm9z
c2ZhZGVWYWx1ZSgpCi17CisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKyNp
bmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgorI2luY2x1
ZGUgIlN0eWxlR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogCi19CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1
ZTo6Y3NzVGV4dCgpIGNvbnN0CiB7CkBAIC00MywxOSArNDYsMzMgQEAgU3RyaW5nIENTU0Nyb3Nz
ZmFkZVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1JbnRT
aXplIENTU0Nyb3NzZmFkZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKK1Bhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJP
YmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIFVOVVNFRF9QQVJB
TShyZW5kZXJlcik7CisgICAgaWYgKHNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsK
IAotICAgIHJldHVybiBJbnRTaXplKCk7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hl
ZFJlc291cmNlTG9hZGVyID0gcmVuZGVyZXItPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCk7CisKKyAgICBTdHlsZUNhY2hlZEltYWdlICogZnJvbVN0eWxlSW1hZ2UgPSBtX2Zyb21J
bWFnZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIFN0eWxlQ2FjaGVk
SW1hZ2UgKiB0b1N0eWxlSW1hZ2UgPSBtX3RvSW1hZ2UtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291
cmNlTG9hZGVyKTsKKworICAgIGlmICghZnJvbVN0eWxlSW1hZ2UgfHwgIXRvU3R5bGVJbWFnZSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIW1fZ2VuZXJhdGVkSW1hZ2UpCisgICAgICAg
IG1fZ2VuZXJhdGVkSW1hZ2UgPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGZyb21T
dHlsZUltYWdlLT5jYWNoZWRJbWFnZSgpLCB0b1N0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCksIG1f
cGVyY2VudGFnZS0+Z2V0RG91YmxlVmFsdWUoKSAvIDEwMC4wLCB0aGlzLCBzaXplKTsKKworICAg
IHJldHVybiBtX2dlbmVyYXRlZEltYWdlLmdldCgpOwogfQogCi1QYXNzUmVmUHRyPEltYWdlPiBD
U1NDcm9zc2ZhZGVWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNoYW5nZWRJblJlY3QoY29uc3Qg
SW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIFVOVVNFRF9QQVJBTShy
ZW5kZXJlcik7Ci0gICAgVU5VU0VEX1BBUkFNKHNpemUpOwotCi0gICAgcmV0dXJuIDA7CisgICAg
VU5VU0VEX1BBUkFNKGltYWdlKTsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CisgICAgCisgICAg
UmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjbGllbnRzKCku
ZW5kKCk7CisgICAgZm9yIChSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9y
IGN1cnIgPSBjbGllbnRzKCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsrY3VycikKKyAgICAgICAg
Y29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihjdXJyLT5maXJzdCktPmltYWdlQ2hhbmdlZChzdGF0
aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KHRoaXMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAppbmRleCA1NjU5NzVhLi4w
NjU2NmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApAQCAtMjgsMjMg
KzI4LDIwIEBACiAKICNpbmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTSW1hZ2VWYWx1ZS5oIgotI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VP
YnNlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlck9iamVjdDsK
K2NsYXNzIERvY3VtZW50OwogCi1jbGFzcyBDU1NDcm9zc2ZhZGVWYWx1ZSA6IHB1YmxpYyBDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlIHsKK2NsYXNzIENTU0Nyb3NzZmFkZVZhbHVlIDogcHVibGljIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUsIHByaXZhdGUgSW1hZ2VPYnNlcnZlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRy
PENTU0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiB0b0lt
YWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbUltYWdlLCB0
b0ltYWdlKSk7IH0KLSAgICB2aXJ0dWFsIH5DU1NDcm9zc2ZhZGVWYWx1ZSgpOwogCiAgICAgdmly
dHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9i
amVjdCopIE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRQZXJjZW50YWdlKFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IHBlcmNlbnRhZ2UpIHsgbV9wZXJjZW50YWdlID0gcGVyY2VudGFnZTsg
fQogCkBAIC01NCwxMCArNTEsMTggQEAgcHJpdmF0ZToKICAgICAsIG1fdG9JbWFnZSh0b0ltYWdl
KQogICAgIHsKICAgICB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29u
c3QgSW1hZ2UqLCBjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBhdXNl
QW5pbWF0aW9uKGNvbnN0IEltYWdlKikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRHJhdyhjb25zdCBJbWFnZSopIHt9CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFk
dmFuY2VkKGNvbnN0IEltYWdlKikge30KKyAgICB2aXJ0dWFsIHZvaWQgZGVjb2RlZFNpemVDaGFu
Z2VkKGNvbnN0IEltYWdlKiwgaW50KSB7fQogCiAgICAgUmVmUHRyPENTU0ltYWdlVmFsdWU+IG1f
ZnJvbUltYWdlOwogICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBtX3RvSW1hZ2U7CiAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3BlcmNlbnRhZ2U7CisKKyAgICBSZWZQdHI8SW1hZ2U+
IG1fZ2VuZXJhdGVkSW1hZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggY2RhMTRmYi4uZDU5MDlhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMjgsNyArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0
b3IuaCIKLSNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZS5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTU4LDcgKzU4LDcgQEAgUGFzc1JlZlB0cjxJbWFn
ZT4gQ1NTR3JhZGllbnRWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3Qg
SW50U2l6ZSYKICAgICB9CiAKICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBpbWFnZS4KLSAg
ICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShjcmVhdGVH
cmFkaWVudChyZW5kZXJlciwgc2l6ZSksIHNpemUpOworICAgIFJlZlB0cjxJbWFnZT4gbmV3SW1h
Z2UgPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGNyZWF0ZUdyYWRpZW50KHJlbmRl
cmVyLCBzaXplKSwgc2l6ZSk7CiAgICAgaWYgKGNhY2hlYWJsZSkKICAgICAgICAgcHV0SW1hZ2Uo
c2l6ZSwgbmV3SW1hZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUNsaWVudC5oCmluZGV4IDRhYTJkZDIuLmJiMzY0ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oCkBAIC0z
Miw3ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFJlc291cmNlOwog
CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgZW51bSBDYWNoZWRSZXNvdXJjZUNsaWVudFR5cGUgewogICAgICAg
ICBCYXNlUmVzb3VyY2VUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKaW5kZXggZTI4OWRkNC4uYmNkMzQ5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC05OCw2ICs5OCw4IEBAIHB1
YmxpYzoKIAogY2xhc3MgQml0bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgewogICAgIGZyaWVuZCBj
bGFzcyBHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAgIGZy
aWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSwgSW1hZ2VP
YnNlcnZlciogb2JzZXJ2ZXIgPSAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNzY0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAK
QEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNp
bmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1ZS5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFn
ZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEludFNp
emUmIHNpemUpCisgICAgOiBtX2Zyb21JbWFnZShmcm9tSW1hZ2UpCisgICAgLCBtX3RvSW1hZ2Uo
dG9JbWFnZSkKKyAgICAsIG1fcGVyY2VudGFnZShwZXJjZW50YWdlKQorICAgICwgbV9vYnNlcnZl
cihvYnNlcnZlcikKK3sKKyAgICBtX3NpemUgPSBzaXplOworCisgICAgbV9mcm9tSW1hZ2UtPmFk
ZENsaWVudCh0aGlzKTsKKyAgICBtX3RvSW1hZ2UtPmFkZENsaWVudCh0aGlzKTsKK30KKworQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U6On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpCit7CisgICAg
bV9mcm9tSW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICBtX3RvSW1hZ2UtPnJlbW92ZUNs
aWVudCh0aGlzKTsKK30KKyAgICAKK3ZvaWQgZHJhd0Nyb3NzZmFkZShHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQKKwordm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCkKK3sK
KyAgICBVTlVTRURfUEFSQU0oY29tcG9zaXRlT3ApOworICAgIFVOVVNFRF9QQVJBTShzcmNSZWN0
KTsKKworICAgIEltYWdlICogZnJvbUltYWdlID0gTlVMTCwgKiB0b0ltYWdlID0gTlVMTDsKKyAg
ICBJbnRTaXplIGZyb21JbWFnZVNpemUsIHRvSW1hZ2VTaXplLCBjcm9zc2ZhZGVJbWFnZVNpemU7
CisgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxLjBmIC0gbV9wZXJjZW50YWdlOworICAg
IAorICAgIGlmKCFtX2Zyb21JbWFnZSB8fCAhbV90b0ltYWdlKQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgZnJvbUltYWdlID0gbV9mcm9tSW1hZ2UtPmltYWdlKCk7CisgICAgZnJvbUltYWdl
U2l6ZSA9IGZyb21JbWFnZS0+c2l6ZSgpOworICAgIHRvSW1hZ2UgPSBtX3RvSW1hZ2UtPmltYWdl
KCk7CisgICAgdG9JbWFnZVNpemUgPSB0b0ltYWdlLT5zaXplKCk7CisgICAgCisgICAgY3Jvc3Nm
YWRlSW1hZ2VTaXplID0gSW50U2l6ZShmcm9tSW1hZ2VTaXplLndpZHRoKCkgKiBpbnZlcnNlUGVy
Y2VudGFnZSArIHRvSW1hZ2VTaXplLndpZHRoKCkgKiBtX3BlcmNlbnRhZ2UsCisgICAgICAgIGZy
b21JbWFnZVNpemUuaGVpZ2h0KCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLmhl
aWdodCgpICogbV9wZXJjZW50YWdlKTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcigqY29udGV4dCk7CisgICAgY29udGV4dC0+Y2xpcChkc3RSZWN0KTsKKyAgICBj
b250ZXh0LT50cmFuc2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKworICAgIGNvbnRl
eHQtPnNhdmUoKTsKKyAgICBpZiAoY3Jvc3NmYWRlSW1hZ2VTaXplICE9IGZyb21JbWFnZVNpemUp
CisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNfY2FzdDxmbG9hdD4oY3Jv
c3NmYWRlSW1hZ2VTaXplLndpZHRoKCkpIC8gZnJvbUltYWdlU2l6ZS53aWR0aCgpLAorICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNyb3NzZmFkZUltYWdlU2l6ZS5oZWlnaHQoKSkgLyBm
cm9tSW1hZ2VTaXplLmhlaWdodCgpKSk7CisgICAgY29udGV4dC0+c2V0QWxwaGEoaW52ZXJzZVBl
cmNlbnRhZ2UpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShmcm9tSW1hZ2UsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIEludFBvaW50KCkpOworICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICAKKyAg
ICBjb250ZXh0LT5zYXZlKCk7CisgICAgaWYgKGNyb3NzZmFkZUltYWdlU2l6ZSAhPSB0b0ltYWdl
U2l6ZSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKHN0YXRpY19jYXN0PGZsb2F0
Pihjcm9zc2ZhZGVJbWFnZVNpemUud2lkdGgoKSkgLyB0b0ltYWdlU2l6ZS53aWR0aCgpLAorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNyb3NzZmFkZUltYWdlU2l6ZS5oZWlnaHQoKSkg
LyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSkpOworICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJh
dGlvbihDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICBjb250ZXh0LT5zZXRBbHBoYShtX3BlcmNl
bnRhZ2UpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZSh0b0ltYWdlLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBJbnRQb2ludCgpKTsKKyAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cit9CisKK3ZvaWQgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRl
cm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QpCit7CisgICAgLy8gQ3JlYXRlIGEgQml0bWFwSW1hZ2UgYW5kIGNhbGwgZHJhd1Bh
dHRlcm4gb24gaXQuCisgICAgT3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdl
QnVmZmVyOjpjcmVhdGUobV9zaXplKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgLy8gRmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgaW1hZ2UuCisgICAg
R3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgp
OworICAgIGdyYXBoaWNzQ29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwg
YWRqdXN0ZWRTaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsKKyAgICAKKyAgICAvLyBUaWxlIHRo
ZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KKyAgICBpbWFnZUJ1ZmZlci0+ZHJhd1Bh
dHRlcm4oY29udGV4dCwgcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xv
clNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0
KiByZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7CisgICAgbV9vYnNlcnZlci0+Y2hh
bmdlZEluUmVjdCh0aGlzLCAqcmVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZGIyZDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2VfaAorI2RlZmluZSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRlICJJ
bWFnZS5oIgorCisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJHZW5lcmF0ZWRJ
bWFnZS5oIgorI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgi
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENTU0Nyb3NzZmFkZVZhbHVlOworCitjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSA6IHB1
YmxpYyBHZW5lcmF0ZWRJbWFnZSwgcHJpdmF0ZSBDYWNoZWRJbWFnZUNsaWVudCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShD
YWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2Vu
dGFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZy
b21JbWFnZSwgdG9JbWFnZSwgcGVyY2VudGFnZSwgb2JzZXJ2ZXIsIHNpemUpKTsKKyAgICB9Cisg
ICAgdmlydHVhbCB+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKTsKKworcHJvdGVjdGVkOgorICAg
IHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCk7CisKKyAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSogZnJv
bUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNl
cnZlciogb2JzZXJ2ZXIsIGNvbnN0IEludFNpemUmIHNpemUpOworCisgICAgdmlydHVhbCB2b2lk
IGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0gMCk7CisKKyAgICBD
YWNoZWRJbWFnZSogbV9mcm9tSW1hZ2U7CisgICAgQ2FjaGVkSW1hZ2UqIG1fdG9JbWFnZTsKKyAg
ICBmbG9hdCBtX3BlcmNlbnRhZ2U7CisKKyAgICBJbWFnZU9ic2VydmVyKiBtX29ic2VydmVyOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRlZEltYWdlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUw
NmRmZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5l
cmF0ZWRJbWFnZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdlbmVyYXRlZElt
YWdlLmgiCi0KLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUgIkxlbmd0aC5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCi17
Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKLSAg
ICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9zaXRlT3ApOwotICAgIGNvbnRl
eHQtPmNsaXAoZHN0UmVjdCk7Ci0gICAgY29udGV4dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgpLCBk
c3RSZWN0LnkoKSk7Ci0gICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQot
ICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVj
dC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkpOwotICAgIGNv
bnRleHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0LnkoKSk7Ci0gICAgY29udGV4
dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSwgKm1fZ2VuZXJhdG9y
LmdldCgpKTsKLX0KLQotdm9pZCBHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qp
Ci17Ci0gICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5LWVxdWl2
YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLSAgICBJbnRT
aXplIGFkanVzdGVkU2l6ZSA9IG1fc2l6ZTsKLSAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0
ID0gc3JjUmVjdDsKLSAgICBtX2dlbmVyYXRvci0+YWRqdXN0UGFyYW1ldGVyc0ZvclRpbGVkRHJh
d2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVkU3JjUmVjdCk7Ci0KLSAgICAvLyBDcmVhdGUgYSBC
aXRtYXBJbWFnZSBhbmQgY2FsbCBkcmF3UGF0dGVybiBvbiBpdC4KLSAgICBPd25QdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShhZGp1c3RlZFNpemUpOwot
ICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEZpbGwgd2l0
aCB0aGUgZ3JhZGllbnQuCi0gICAgR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBp
bWFnZUJ1ZmZlci0+Y29udGV4dCgpOwotICAgIGdyYXBoaWNzQ29udGV4dC0+ZmlsbFJlY3QoRmxv
YXRSZWN0KEZsb2F0UG9pbnQoKSwgYWRqdXN0ZWRTaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsK
LQotICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgotICAgIGlt
YWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5U
cmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBvc2l0ZU9wLCBkZXN0UmVjdCk7
Ci19Ci0KLXZvaWQgR2VuZXJhdGVkSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExl
bmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUm
IGludHJpbnNpY1JhdGlvKQotewotICAgIEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9u
cyhpbnRyaW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LCBpbnRyaW5zaWNSYXRpbyk7Ci0gICAg
aW50cmluc2ljUmF0aW8gPSBGbG9hdFNpemUoKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKaW5kZXggZDI4ODcyYi4uYmVj
MzQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
ZWRJbWFnZS5oCkBAIC0zNiwxMiArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEdlbmVyYXRlZEltYWdlIDogcHVibGljIEltYWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5l
cmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEdlbmVyYXRlZEltYWdlKGdlbmVyYXRvciwgc2l6ZSkpOwotICAgIH0KLSAgICB2aXJ0
dWFsIH5HZW5lcmF0ZWRJbWFnZSgpIHt9Ci0KICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2Vj
dXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0K
QEAgLTU3LDE3ICs1MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVk
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9p
ZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qp
OwotICAgIAotICAgIEdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0
b3IsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgICAgIDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9y
KQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgIHsKLSAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0g
MDsKKworICAgIEdlbmVyYXRlZEltYWdlKCkgeyB9CiAKLSAgICBSZWZQdHI8R2VuZXJhdG9yPiBt
X2dlbmVyYXRvcjsKICAgICBJbnRTaXplIG1fc2l6ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTFmMDAzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2Uu
aCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiTGVuZ3RoLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVP
cCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQp
OworICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCk7CisgICAg
Y29udGV4dC0+Y2xpcChkc3RSZWN0KTsKKyAgICBjb250ZXh0LT50cmFuc2xhdGUoZHN0UmVjdC54
KCksIGRzdFJlY3QueSgpKTsKKyAgICBpZiAoZHN0UmVjdC5zaXplKCkgIT0gc3JjUmVjdC5zaXpl
KCkpCisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShkc3RSZWN0LndpZHRoKCkgLyBz
cmNSZWN0LndpZHRoKCksIGRzdFJlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSk7Cisg
ICAgY29udGV4dC0+dHJhbnNsYXRlKC1zcmNSZWN0LngoKSwgLXNyY1JlY3QueSgpKTsKKyAgICBj
b250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3NpemUpLCAqbV9nZW5l
cmF0b3IuZ2V0KCkpOworfQorCit2b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCkKK3sKKyAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUg
dmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1h
bmNlLgorICAgIEludFNpemUgYWRqdXN0ZWRTaXplID0gbV9zaXplOworICAgIEZsb2F0UmVjdCBh
ZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OworICAgIG1fZ2VuZXJhdG9yLT5hZGp1c3RQYXJhbWV0
ZXJzRm9yVGlsZWREcmF3aW5nKGFkanVzdGVkU2l6ZSwgYWRqdXN0ZWRTcmNSZWN0KTsKKworICAg
IC8vIENyZWF0ZSBhIEJpdG1hcEltYWdlIGFuZCBjYWxsIGRyYXdQYXR0ZXJuIG9uIGl0LgorICAg
IE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGFk
anVzdGVkU2l6ZSk7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gRmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgaW1hZ2UuCisgICAgR3JhcGhpY3NDb250ZXh0
KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAgIGdyYXBoaWNz
Q29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYWRqdXN0ZWRTaXplKSwg
Km1fZ2VuZXJhdG9yLmdldCgpKTsKKworICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRv
IHRoZSBjb250ZXh0LgorICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBhZGp1
c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNv
bXBvc2l0ZU9wLCBkZXN0UmVjdCk7Cit9CisKK3ZvaWQgR2VuZXJhdGVkSW1hZ2U6OmNvbXB1dGVJ
bnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmlu
c2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKQoreworICAgIEltYWdlOjpjb21w
dXRlSW50cmluc2ljRGltZW5zaW9ucyhpbnRyaW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LCBp
bnRyaW5zaWNSYXRpbyk7CisgICAgaW50cmluc2ljUmF0aW8gPSBGbG9hdFNpemUoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRvckdlbmVyYXRlZEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MWY4ZmZmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlX2gKKyNkZWZpbmUgR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2VfaAorCisjaW5jbHVkZSAiSW1hZ2UuaCIKKworI2luY2x1ZGUg
IkdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW50
U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U+
IGNyZWF0ZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBz
aXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZShnZW5lcmF0b3IsIHNpemUpKTsKKyAgICB9CisgICAgdmlydHVhbCB+R2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UoKSB7fQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
cik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0KTsKKworICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKFBhc3NS
ZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgICAg
IDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9yKQorICAgIHsKKyAgICAgICAgbV9zaXplID0gc2l6ZTsK
KyAgICB9CisKKyAgICBSZWZQdHI8R2VuZXJhdG9yPiBtX2dlbmVyYXRvcjsKK307CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBiZjFh
MTdmLi5iNTQ2YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgK
QEAgLTc5LDYgKzc5LDggQEAgY2xhc3MgSW1hZ2VPYnNlcnZlcjsKIAogY2xhc3MgSW1hZ2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbWFnZT4gewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFn
ZTsKKyAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5k
IGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oCmluZGV4IDY2YjZjYzMuLmM2NmJhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTI2LDYgKzEyNiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250
ZXh0OwogICAgICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgICAgIGZyaWVu
ZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgSW1hZ2VCdWZm
ZXJEYXRhIG1fZGF0YTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113676</attachid>
            <date>2011-11-04 10:40:37 -0700</date>
            <delta_ts>2011-11-10 18:05:30 -0800</delta_ts>
            <desc>[preliminary] render cross-fade - should apply now</desc>
            <filename>crossfade2.patch</filename>
            <type>text/plain</type>
            <size>35128</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwMWJjZDVlLi4zNzBiNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTEsNiArNjkxLDEwIEBACiAJCTI5RDdCQ0ZB
MTQ0NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlEN0JDRjkxNDQ0QUY3RDAwNzA2
MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi87IH07CiAJCTJCRThFMkM3MTJBNTg5
RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBI
VE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJFOEUyQzkxMkE1OEEwMTAwRkFENTUw
IC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFD
aGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKKwkJMkQyRkMwNTgxNDYwQ0Q2RjAwMjYzNjMzIC8qIENy
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5jcHAgKi87IH07CisJCTJEMkZDMDU5MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQyRkMwNTUxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmggKi87IH07CisJCTJEMkZDMDVBMTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuY3BwICovOyB9OworCQkyRDJGQzA1QjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5o
ICovOyB9OwogCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDNBMEUzNTEz
QTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8q
IENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1
ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4
RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi87IH07CkBAIC01
MjYyLDcgKzUyNjYsNiBAQAogCQlCQ0UwMTM5QTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNo
ZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovOyB9OwogCQlCQ0Uw
MTM5QjBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyog
SlNTdHlsZVNoZWV0LmggKi87IH07CiAJCUJDRTA0QzhBMERBRkY3QTAwMDdBMEY0MSAvKiBHZW5l
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTA0Qzg5MERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEg
LyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCAqLzsgfTsKIAkJQkNFMUM0MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQxOTBEOTgyOTgw
MDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLzsgfTsKIAkJQkNFMUM0MUMwRDk4Mjk4MTAwM0IwMkYy
IC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi87IH07CiAJ
CUJDRTFDNDNCMEQ5ODMwRDMwMDNCMDJGMiAvKiBKU0xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTFDNDM5MEQ5ODMwRDMwMDNCMDJG
MiAvKiBKU0xvY2F0aW9uLmNwcCAqLzsgfTsKQEAgLTc3NzIsNiArNzc3NSwxMCBAQAogCQkyOUQ3
QkNGOTE0NDRBRjdEMDA3MDYxOUMgLyogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkJFOEUyQzYxMkE1ODlFQzAwRkFENTUwIC8qIEhU
TUxNZXRhQ2hhcnNldFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBI
VE1MTWV0YUNoYXJzZXRQYXJzZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0YUNoYXJzZXRQYXJz
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFE
NTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hU
TUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
MkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU1MTQ2MENENkYwMDI2
MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVk
SW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1
NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1Bh
cnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXJzaW5n
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREExNDNFM0VGNzAw
NzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjUzMCw3ICsxMjUzNyw2IEBACiAJCUJDRTAx
Mzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRTAxMzk5MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3R5bGVTaGVldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJh
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0UwNEM5MzBEQUZGOTAyMDA3QTBGNDEgLyogR2Vu
ZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vu
ZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UxQzQxOTBE
OTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MUEw
RDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNFMUM0MjIwRDk4MjlGMjAwM0IwMkYyIC8qIExvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBMb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTEz
NSw3ICsxOTE0MSwxMCBAQAogCQkJCTM3MjAyMTk4MTA2MjEzQzYwMEYyNUM0QiAvKiBGb250U21v
b3RoaW5nTW9kZS5oICovLAogCQkJCTM3ODRDMzRBMEUxMUFBMzQwMDdEOEQ0OCAvKiBGb250VHJh
aXRzTWFzay5oICovLAogCQkJCUJDRTQ0MTM1MTJGNzQ5MEIwMDlCODRCOCAvKiBGb250V2lkdGhW
YXJpYW50LmggKi8sCi0JCQkJQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAorCQkJCTJEMkZDMDU2MTQ2MENENkYwMDI2MzYzMyAv
KiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCisJCQkJMkQyRkMwNTcxNDYwQ0Q2RjAw
MjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJQkMyM0YwREEwREFG
RjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJQkNFMDRDODkwREFGRjdB
MDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovLAogCQkJCTA4NkJCRDBFMTM2MDM5QzIwMDhCMTVE
OCAvKiBHbHlwaC5oICovLApAQCAtMjQ1OTEsNiArMjQ2MDAsOCBAQAogCQkJCTA3ODQ2Mzg1MTQ1
QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDhG
RUJERDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNjkzNzlDMTQ2MDlDNkMwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkQyRkMwNTkxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDJGQzA1QjE0NjBDRDZGMDAyNjM2MzMgLyog
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU2NzYsNyArMjU2
ODcsNiBAQAogCQkJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVDRTMgLyog
RlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5
M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNFMDRD
OTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNTJCRkNFOTEyOEFCRjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTZDQjIxMTBENUFDODAwMEE3N0M2NCAvKiBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzQ0NSw2ICsyNzQ1
NSw4IEBACiAJCQkJQ0RFQTc2MzAxNDYwOEE1MzAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDREVBNzYzNDE0NjBCNTZGMDA4QjMxRjEgLyogUGxhdGZv
cm1DbG9ja1BPU0lYLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhC
MzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDJGQzA1ODE0NjBDRDZGMDAy
NjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MkQyRkMwNUExNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKaW5k
ZXggZWU3MzkyYy4uNTMxOGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFs
dWUuY3BwCkBAIC0yNiwxMiArMjYsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDU1NDcm9zc2ZhZGVWYWx1ZS5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNTU0Nyb3Nz
ZmFkZVZhbHVlOjp+Q1NTQ3Jvc3NmYWRlVmFsdWUoKQoteworI2luY2x1ZGUgIkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIlN0eWxlQ2Fj
aGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKIAotfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJp
bmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNzc1RleHQoKSBjb25zdAogewpAQCAtNDMsMTkgKzQ2LDMz
IEBAIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSW50U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0
IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitQYXNzUmVmUHRyPEltYWdlPiBDU1NDcm9zc2ZhZGVW
YWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
IHsKLSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOworICAgIGlmIChzaXplLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gSW50U2l6ZSgpOworICAgIENhY2hlZFJl
c291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgp
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOworCisgICAgU3R5bGVDYWNoZWRJbWFnZSAqIGZyb21T
dHlsZUltYWdlID0gbV9mcm9tSW1hZ2UtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVy
KTsKKyAgICBTdHlsZUNhY2hlZEltYWdlICogdG9TdHlsZUltYWdlID0gbV90b0ltYWdlLT5jYWNo
ZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisKKyAgICBpZiAoIWZyb21TdHlsZUltYWdl
IHx8ICF0b1N0eWxlSW1hZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCFtX2dlbmVy
YXRlZEltYWdlKQorICAgICAgICBtX2dlbmVyYXRlZEltYWdlID0gQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2U6OmNyZWF0ZShmcm9tU3R5bGVJbWFnZS0+Y2FjaGVkSW1hZ2UoKSwgdG9TdHlsZUltYWdl
LT5jYWNoZWRJbWFnZSgpLCBtX3BlcmNlbnRhZ2UtPmdldERvdWJsZVZhbHVlKCkgLyAxMDAuMCwg
dGhpcywgc2l6ZSk7CisKKyAgICByZXR1cm4gbV9nZW5lcmF0ZWRJbWFnZS5nZXQoKTsKIH0KIAot
UGFzc1JlZlB0cjxJbWFnZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCog
cmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUpCit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjpj
aGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
LSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOwotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKKyAg
ICBVTlVTRURfUEFSQU0oaW1hZ2UpOworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKIAotICAgIHJl
dHVybiAwOworICAgIFJlbmRlck9iamVjdFNpemVDb3VudE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gY2xpZW50cygpLmVuZCgpOworICAgIGZvciAoUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpj
b25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygpLmJlZ2luKCk7IGN1cnIgIT0gZW5kOyArK2N1
cnIpCisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4oY3Vyci0+Zmlyc3QpLT5pbWFn
ZUNoYW5nZWQoc3RhdGljX2Nhc3Q8V3JhcHBlZEltYWdlUHRyPih0aGlzKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKaW5k
ZXggNTY1OTc1YS4uYzA4MmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmgKQEAgLTI4LDIzICsyOCwyMCBAQAogCiAjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgogI2lu
Y2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBS
ZW5kZXJPYmplY3Q7CitjbGFzcyBEb2N1bWVudDsKIAotY2xhc3MgQ1NTQ3Jvc3NmYWRlVmFsdWUg
OiBwdWJsaWMgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSB7CitjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1
ZSA6IHB1YmxpYyBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLCBwcml2YXRlIEltYWdlT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Nyb3NzZmFkZVZhbHVlPiBjcmVh
dGUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8Q1NTSW1h
Z2VWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Nyb3NzZmFkZVZhbHVl
KGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9Ci0gICAgdmlydHVhbCB+Q1NTQ3Jvc3NmYWRlVmFsdWUo
KTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50
U2l6ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBJbnRTaXplIGZpeGVkU2l6ZShj
b25zdCBSZW5kZXJPYmplY3QqKSBPVkVSUklERTsKIAogICAgIHZvaWQgc2V0UGVyY2VudGFnZShQ
YXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlKSB7IG1fcGVyY2VudGFnZSA9
IHBlcmNlbnRhZ2U7IH0KIApAQCAtNTUsOSArNTIsMTcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAg
fQogCisgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UqLCBjb25zdCBJ
bnRSZWN0Jik7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBhdXNlQW5pbWF0aW9uKGNvbnN0IElt
YWdlKikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdyhjb25zdCBJ
bWFnZSopIHt9CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNvbnN0IEltYWdl
Kikge30KKyAgICB2aXJ0dWFsIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlKiwg
aW50KSB7fQorCiAgICAgUmVmUHRyPENTU0ltYWdlVmFsdWU+IG1fZnJvbUltYWdlOwogICAgIFJl
ZlB0cjxDU1NJbWFnZVZhbHVlPiBtX3RvSW1hZ2U7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBtX3BlcmNlbnRhZ2U7CisKKyAgICBSZWZQdHI8SW1hZ2U+IG1fZ2VuZXJhdGVkSW1hZ2U7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGll
bnRWYWx1ZS5jcHAKaW5kZXggY2RhMTRmYi4uZDU5MDlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ1NTVmFs
dWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKLSNpbmNsdWRlICJH
ZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCiAj
aW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNp
emUuaCIKQEAgLTU4LDcgKzU4LDcgQEAgUGFzc1JlZlB0cjxJbWFnZT4gQ1NTR3JhZGllbnRWYWx1
ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYKICAgICB9CiAK
ICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBpbWFnZS4KLSAgICBSZWZQdHI8SW1hZ2U+IG5l
d0ltYWdlID0gR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShjcmVhdGVHcmFkaWVudChyZW5kZXJlciwg
c2l6ZSksIHNpemUpOworICAgIFJlZlB0cjxJbWFnZT4gbmV3SW1hZ2UgPSBHZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZTo6Y3JlYXRlKGNyZWF0ZUdyYWRpZW50KHJlbmRlcmVyLCBzaXplKSwgc2l6ZSk7
CiAgICAgaWYgKGNhY2hlYWJsZSkKICAgICAgICAgcHV0SW1hZ2Uoc2l6ZSwgbmV3SW1hZ2UpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVu
dC5oCmluZGV4IDRhYTJkZDIuLmJiMzY0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oCkBAIC0zMiw3ICszMiw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFJlc291cmNlOwogCiBjbGFzcyBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
ZW51bSBDYWNoZWRSZXNvdXJjZUNsaWVudFR5cGUgewogICAgICAgICBCYXNlUmVzb3VyY2VUeXBl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5k
ZXggZTI4OWRkNC4uYmNkMzQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCkBAIC05OCw2ICs5OCw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQml0
bWFwSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFn
ZTsKKyAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5k
IGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNy
ZWF0ZShOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIg
PSAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI5YjllNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTAsMCArMSwxMTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJDU1NDcm9zc2Zh
ZGVWYWx1ZS5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNo
ZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFn
ZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgOiBt
X2Zyb21JbWFnZShmcm9tSW1hZ2UpCisgICAgLCBtX3RvSW1hZ2UodG9JbWFnZSkKKyAgICAsIG1f
cGVyY2VudGFnZShwZXJjZW50YWdlKQorICAgICwgbV9vYnNlcnZlcihvYnNlcnZlcikKK3sKKyAg
ICBtX3NpemUgPSBzaXplOworCisgICAgbV9mcm9tSW1hZ2UtPmFkZENsaWVudCh0aGlzKTsKKyAg
ICBtX3RvSW1hZ2UtPmFkZENsaWVudCh0aGlzKTsKK30KKworQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2U6On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpCit7CisgICAgbV9mcm9tSW1hZ2UtPnJlbW92
ZUNsaWVudCh0aGlzKTsKKyAgICBtX3RvSW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKK30KKwor
dm9pZCBkcmF3Q3Jvc3NmYWRlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dAorCit2b2lkIENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQoreworICAgIFVOVVNFRF9QQVJBTShjb21w
b3NpdGVPcCk7CisgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOworCisgICAgSW1hZ2UgKiBmcm9t
SW1hZ2UgPSBOVUxMLCAqIHRvSW1hZ2UgPSBOVUxMOworICAgIEludFNpemUgZnJvbUltYWdlU2l6
ZSwgdG9JbWFnZVNpemUsIGNyb3NzZmFkZUltYWdlU2l6ZTsKKyAgICBmbG9hdCBpbnZlcnNlUGVy
Y2VudGFnZSA9IDEuMGYgLSBtX3BlcmNlbnRhZ2U7CisKKyAgICBpZighbV9mcm9tSW1hZ2UgfHwg
IW1fdG9JbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJvbUltYWdlID0gbV9mcm9tSW1h
Z2UtPmltYWdlKCk7CisgICAgZnJvbUltYWdlU2l6ZSA9IGZyb21JbWFnZS0+c2l6ZSgpOworICAg
IHRvSW1hZ2UgPSBtX3RvSW1hZ2UtPmltYWdlKCk7CisgICAgdG9JbWFnZVNpemUgPSB0b0ltYWdl
LT5zaXplKCk7CisKKyAgICBjcm9zc2ZhZGVJbWFnZVNpemUgPSBJbnRTaXplKGZyb21JbWFnZVNp
emUud2lkdGgoKSAqIGludmVyc2VQZXJjZW50YWdlICsgdG9JbWFnZVNpemUud2lkdGgoKSAqIG1f
cGVyY2VudGFnZSwKKyAgICAgICAgZnJvbUltYWdlU2l6ZS5oZWlnaHQoKSAqIGludmVyc2VQZXJj
ZW50YWdlICsgdG9JbWFnZVNpemUuaGVpZ2h0KCkgKiBtX3BlcmNlbnRhZ2UpOworCisgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0
LT5jbGlwKGRzdFJlY3QpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0
UmVjdC55KCkpOworCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlmIChjcm9zc2ZhZGVJbWFn
ZVNpemUgIT0gZnJvbUltYWdlU2l6ZSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXpl
KHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUud2lkdGgoKSkgLyBmcm9tSW1h
Z2VTaXplLndpZHRoKCksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRl
SW1hZ2VTaXplLmhlaWdodCgpKSAvIGZyb21JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb250
ZXh0LT5zZXRBbHBoYShpbnZlcnNlUGVyY2VudGFnZSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdl
KGZyb21JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4
dC0+cmVzdG9yZSgpOworCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlmIChjcm9zc2ZhZGVJ
bWFnZVNpemUgIT0gdG9JbWFnZVNpemUpCisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6
ZShzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLndpZHRoKCkpIC8gdG9JbWFn
ZVNpemUud2lkdGgoKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJ
bWFnZVNpemUuaGVpZ2h0KCkpIC8gdG9JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0
LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4
dC0+c2V0QWxwaGEobV9wZXJjZW50YWdlKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UodG9JbWFn
ZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4dC0+cmVzdG9y
ZSgpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQoreworICAgIC8vIFRPRE8KKyAgICBVTlVTRURf
UEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOworICAgIFVOVVNFRF9Q
QVJBTShwYXR0ZXJuVHJhbnNmb3JtKTsKKyAgICBVTlVTRURfUEFSQU0ocGhhc2UpOworICAgIFVO
VVNFRF9QQVJBTShzdHlsZUNvbG9yU3BhY2UpOworICAgIFVOVVNFRF9QQVJBTShjb21wb3NpdGVP
cCk7CisgICAgVU5VU0VEX1BBUkFNKGRlc3RSZWN0KTsKK30KKwordm9pZCBDcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZTo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVj
dCogcmVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW1hZ2UpOworICAgIG1fb2JzZXJ2ZXItPmNo
YW5nZWRJblJlY3QodGhpcywgKnJlY3QpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2RiMmQzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlX2gKKyNkZWZpbmUgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2VfaAorCisjaW5jbHVkZSAi
SW1hZ2UuaCIKKworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiR2VuZXJhdGVk
SW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5o
IgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDU1NDcm9zc2ZhZGVWYWx1ZTsKKworY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBw
dWJsaWMgR2VuZXJhdGVkSW1hZ2UsIHByaXZhdGUgQ2FjaGVkSW1hZ2VDbGllbnQgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENyb3NzZmFkZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUo
Q2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2FjaGVkSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNl
bnRhZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShm
cm9tSW1hZ2UsIHRvSW1hZ2UsIHBlcmNlbnRhZ2UsIG9ic2VydmVyLCBzaXplKSk7CisgICAgfQor
ICAgIHZpcnR1YWwgfkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKCk7CisKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QpOworCisgICAgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIGZy
b21JbWFnZSwgQ2FjaGVkSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdlT2Jz
ZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBJbnRTaXplJiBzaXplKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IDApOworCisgICAg
Q2FjaGVkSW1hZ2UqIG1fZnJvbUltYWdlOworICAgIENhY2hlZEltYWdlKiBtX3RvSW1hZ2U7Cisg
ICAgZmxvYXQgbV9wZXJjZW50YWdlOworCisgICAgSW1hZ2VPYnNlcnZlciogbV9vYnNlcnZlcjsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVl
MDZkZmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2Vu
ZXJhdGVkSW1hZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW5lcmF0ZWRJ
bWFnZS5oIgotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlICJMZW5ndGguaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIEdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQot
ewotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0g
ICAgY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wKTsKLSAgICBjb250
ZXh0LT5jbGlwKGRzdFJlY3QpOwotICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwg
ZHN0UmVjdC55KCkpOwotICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkK
LSAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKGRzdFJlY3Qud2lkdGgoKSAvIHNyY1Jl
Y3Qud2lkdGgoKSwgZHN0UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKLSAgICBj
b250ZXh0LT50cmFuc2xhdGUoLXNyY1JlY3QueCgpLCAtc3JjUmVjdC55KCkpOwotICAgIGNvbnRl
eHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSksICptX2dlbmVyYXRv
ci5nZXQoKSk7Ci19Ci0KLXZvaWQgR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KQotewotICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVp
dmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgSW50
U2l6ZSBhZGp1c3RlZFNpemUgPSBtX3NpemU7Ci0gICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVj
dCA9IHNyY1JlY3Q7Ci0gICAgbV9nZW5lcmF0b3ItPmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERy
YXdpbmcoYWRqdXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3QpOwotCi0gICAgLy8gQ3JlYXRlIGEg
Qml0bWFwSW1hZ2UgYW5kIGNhbGwgZHJhd1BhdHRlcm4gb24gaXQuCi0gICAgT3duUHRyPEltYWdl
QnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYWRqdXN0ZWRTaXplKTsK
LSAgICBpZiAoIWltYWdlQnVmZmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGaWxsIHdp
dGggdGhlIGdyYWRpZW50LgotICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0g
aW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKLSAgICBncmFwaGljc0NvbnRleHQtPmZpbGxSZWN0KEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7
Ci0KLSAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBp
bWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJu
VHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3Qp
OwotfQotCi12b2lkIEdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhM
ZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXpl
JiBpbnRyaW5zaWNSYXRpbykKLXsKLSAgICBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lv
bnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8pOwotICAg
IGludHJpbnNpY1JhdGlvID0gRmxvYXRTaXplKCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCmluZGV4IGQyODg3MmIuLmJl
YzM0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dGVkSW1hZ2UuaApAQCAtMzYsMTIgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBHZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8R2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2Vu
ZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBHZW5lcmF0ZWRJbWFnZShnZW5lcmF0b3IsIHNpemUpKTsKLSAgICB9Ci0gICAgdmly
dHVhbCB+R2VuZXJhdGVkSW1hZ2UoKSB7fQotCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNl
Y3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9
CkBAIC01NywxNyArNTEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2Rl
ZFNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZv
aWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0
ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KTsKLSAgICAKLSAgICBHZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJh
dG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgICAgICA6IG1fZ2VuZXJhdG9yKGdlbmVyYXRv
cikKLSAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICB7Ci0gICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSA9
IDA7CisKKyAgICBHZW5lcmF0ZWRJbWFnZSgpIHsgfQogCi0gICAgUmVmUHRyPEdlbmVyYXRvcj4g
bV9nZW5lcmF0b3I7CiAgICAgSW50U2l6ZSBtX3NpemU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExZjAwMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIkxlbmd0aC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3ApCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0
KTsKKyAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9zaXRlT3ApOworICAg
IGNvbnRleHQtPmNsaXAoZHN0UmVjdCk7CisgICAgY29udGV4dC0+dHJhbnNsYXRlKGRzdFJlY3Qu
eCgpLCBkc3RSZWN0LnkoKSk7CisgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6
ZSgpKQorICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoZHN0UmVjdC53aWR0aCgpIC8g
c3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkpOwor
ICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0LnkoKSk7CisgICAg
Y29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSwgKm1fZ2Vu
ZXJhdG9yLmdldCgpKTsKK30KKwordm9pZCBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QpCit7CisgICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRl
IHZpc3VhbGx5LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3Jt
YW5jZS4KKyAgICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IG1fc2l6ZTsKKyAgICBGbG9hdFJlY3Qg
YWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKKyAgICBtX2dlbmVyYXRvci0+YWRqdXN0UGFyYW1l
dGVyc0ZvclRpbGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVkU3JjUmVjdCk7CisKKyAg
ICAvLyBDcmVhdGUgYSBCaXRtYXBJbWFnZSBhbmQgY2FsbCBkcmF3UGF0dGVybiBvbiBpdC4KKyAg
ICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShh
ZGp1c3RlZFNpemUpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIC8vIEZpbGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGltYWdlLgorICAgIEdyYXBoaWNzQ29udGV4
dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICBncmFwaGlj
c0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSks
ICptX2dlbmVyYXRvci5nZXQoKSk7CisKKyAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50
byB0aGUgY29udGV4dC4KKyAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgYWRq
dXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBj
b21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIEdlbmVyYXRlZEltYWdlOjpjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJp
bnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykKK3sKKyAgICBJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwg
aW50cmluc2ljUmF0aW8pOworICAgIGludHJpbnNpY1JhdGlvID0gRmxvYXRTaXplKCk7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRv
ckdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFmOGZmZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZV9oCisjZGVmaW5lIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlX2gKKworI2luY2x1ZGUgIkltYWdlLmgiCisKKyNpbmNsdWRl
ICJHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2Ug
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
PiBjcmVhdGUoUGFzc1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRvciwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJhdG9yR2VuZXJh
dGVkSW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7CisgICAgfQorICAgIHZpcnR1YWwgfkdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlKCkge30KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0
b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCk7CisKKyAgICBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZShQYXNz
UmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgICAg
ICA6IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKKyAgICB7CisgICAgICAgIG1fc2l6ZSA9IHNpemU7
CisgICAgfQorCisgICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9nZW5lcmF0b3I7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggYmYx
YTE3Zi4uYjU0NmI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIEltYWdlT2JzZXJ2ZXI7CiAKIGNsYXNzIEltYWdlIDog
cHVibGljIFJlZkNvdW50ZWQ8SW1hZ2U+IHsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1h
Z2U7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOworICAgIGZyaWVu
ZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaAppbmRleCA2NmI2Y2MzLi5jNjZiYWE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTEyNiw2ICsxMjYsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKICAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOworICAgICAgICBmcmll
bmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgICAgIGZyaWVuZCBjbGFzcyBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEltYWdlQnVm
ZmVyRGF0YSBtX2RhdGE7Cg==
</data>
<flag name="commit-queue"
          id="112117"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114611</attachid>
            <date>2011-11-10 18:05:30 -0800</date>
            <delta_ts>2011-11-14 12:23:58 -0800</delta_ts>
            <desc>[preliminary] render cross-fade</desc>
            <filename>crossfade-20111110.patch</filename>
            <type>text/plain</type>
            <size>58913</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtY2FudmFzLmh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWNhbnZhcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllYmZkNDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWNhbnZhcy5odG1sCkBAIC0wLDAg
KzEsMzMgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4OworCWhlaWdo
dDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cit2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAiY2FudmFzIiwgMTAwLCAx
MDApOworY2FudmFzLmZpbGxTdHlsZSA9ICJyZ2IoMCwwLDI1NSkiOworY2FudmFzLmZpbGxSZWN0
KDAsIDAsIDEwMCwgMTAwKTsKKwordmFyIGNhbnZhczIgPSBkb2N1bWVudC5nZXRDU1NDYW52YXND
b250ZXh0KCIyZCIsICJjYW52YXMyIiwgMTAwLCAxMDApOworY2FudmFzMi5maWxsU3R5bGUgPSAi
cmdiKDI1NSwwLDApIjsKK2NhbnZhczIuZmlsbFJlY3QoMCwgMCwgMTAwLCAxMDApOworCitzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworCWNhbnZhczIuZmlsbFN0eWxlID0gInJnYigwLDI1NSwwKSI7
CisJY2FudmFzMi5maWxsUmVjdCgwLCAwLCAxMDAsIDEwMCk7CisKKwlpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KHRydWUpOworCit9LCAwKTsKKworPC9zY3JpcHQ+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUg
c2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2
IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jYW52
YXMoY2FudmFzKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5nKSwgNDAlKTsiPjwvZGl2Pgor
PCEtLVRoZSBzZWNvbmQgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgZ3JlZW4gc3F1YXJl
LCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNy
b3NzLWZhZGUoLXdlYmtpdC1jYW52YXMoY2FudmFzMiksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAw
LnBuZyksIDAlKTsiPjwvZGl2PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtbmVzdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLW5lc3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmOWYwODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLW5lc3RlZC5odG1sCkBAIC0wLDAg
KzEsMjkgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4OworCWhlaWdo
dDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cit2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAiY2FudmFzIiwgMTAwLCAx
MDApOworY2FudmFzLmZpbGxTdHlsZSA9ICJyZ2IoMCwwLDI1NSkiOworY2FudmFzLmZpbGxSZWN0
KDAsIDAsIDEwMCwgMTAwKTsKKwordmFyIGNhbnZhczIgPSBkb2N1bWVudC5nZXRDU1NDYW52YXND
b250ZXh0KCIyZCIsICJjYW52YXMyIiwgMTAwLCAxMDApOworY2FudmFzMi5maWxsU3R5bGUgPSAi
cmdiKDI1NSwwLDApIjsKK2NhbnZhczIuZmlsbFJlY3QoMCwgMCwgMTAwLCAxMDApOworCitzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworCWNhbnZhczIuZmlsbFN0eWxlID0gInJnYigwLDI1NSwwKSI7
CisJY2FudmFzMi5maWxsUmVjdCgwLCAwLCAxMDAsIDEwMCk7Cit9LCAwKTsKKworPC9zY3JpcHQ+
Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIHB1cnBsZSBzcXVh
cmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Y3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5n
KSwgdXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIDUwJSksIHVybChyZXNvdXJjZXMvYmx1ZS0x
MDAucG5nKSwgNTAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQgY3Jvc3MtZmFkZSBzaG91bGQg
YXBwZWFyIGFzIGEgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL3JlZC0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9n
cmVlbi0xMDAucG5nKSwgMTAwJSksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dy
ZWVuLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL2JsdWUtMTAwLnBuZyksIDAlKSwgMTAwJSksIHVy
bChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgMCUpOyI+PC9kaXY+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
Y3Jvc3MtZmFkZS1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMxZjc3
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
c2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3
aWR0aDogMTBweDsKKwloZWlnaHQ6IDEwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4K
KzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBz
cXVhcmUsIDEweDEwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVl
bi0xMC5wbmcpLCAxMDAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQgY3Jvc3MtZmFkZSBzaG91
bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEweDEwcHguLS0+Cis8ZGl2IHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVl
bi0xMC5wbmcpLCB1cmwocmVzb3VyY2VzL3JlZC0xMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1U
aGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUs
IDEweDEwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3Nz
LWZhZGUodXJsKHJlc291cmNlcy9ibHVlLTEwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAu
cG5nKSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4M2EyNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCkBAIC0wLDAg
KzEsMTYgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4OworCWhlaWdo
dDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzwhLS1UaGUgZmlyc3QgY3Jv
c3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEweDEwcHguLS0+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJl
c291cmNlcy9yZWQtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5nKSwgMTAwJSk7
Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEw
MCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5nKSwgdXJs
KHJlc291cmNlcy9yZWQtMTAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRoaXJkIGNyb3Nz
LWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCA1NXg1NXB4Li0tPgor
PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNv
dXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcpLCA1MCUpOyI+
PC9kaXY+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjIyOThmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+
Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJn
aW46IDEwcHg7CisKKwktd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApOworCWJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworfQorPC9zdHlsZT4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBz
aG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEweDEwcHggaW4gdGhlIHRvcCBs
ZWZ0IGNvcm5lciBvZiB0aGUgZGl2Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwocmVzb3Vy
Y2VzL2dyZWVuLTEwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHNlY29uZCBjcm9zcy1m
YWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgZmlsbGluZyB0aGUgMTAw
eDEwMHB4IGRpdi4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL3JlZC0x
MC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91bGQgYXBw
ZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUsIDU1eDU1cHggaW4gdGhlIHRvcCBsZWZ0IGNvcm5l
ciBvZiB0aGUgZGl2Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVl
bi0xMC5wbmcpLCA0MCUpOyI+PC9kaXY+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUt
MTAucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAucG5nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBiZmQzYzM1N2M0YmJiM2QzYTg0ZGQ1MGM5NTllZjgxNjc3ODY5MzUKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDI3NjAKemNtVjsoM09EdE1QKTxoOzNLfExrMDAwZTFOSkxUcTAw
MFVBMDAwVUkxXkBzNmpXVy1AMDAwMDRYRipMdDAwNk8lCnozO2JhUDAwMFU+WCt1TCROa2M7KlA7
emYoWD40VHgwQylrTm1VbVFCKiVwVi15Kkl0azUrV2NhXmNzMnpBa3NUWAp6NiREWDxOcXxyU2hK
Kz98TDxMM141aCskPVJLTmo4aGF6Snw2YnBsYlYlR2BzNUt6WCFRQTk9TS1IZEFxQDJ4ZlMKei1r
U1ojUz5NXmB4N1hRYz98cyswMDhzcGIxajJNITBmMDIyU1FQSC0hQ1ZwKCVmJEJyNyFVeXRTT0xK
e1dAWkZPCnpfKFRIS3tKbE15blcjdnt2LWEqVGZNbVBkRVdjMURiSnFXVmtzPiFrQm5BS3FNYiRQ
dWVrSz4/MCtkczsjVGhkSAp6MWpfVzRES2RzSkc4VWw7cU8ybjAjSUoxanJ7KmlXJChXWlc8ZT9m
XyZLYk5rb3tZT3Qta0slaHFsXlRoVCRtLWAKelhRTy12V3haNU1uZ0hlWkRBVXZVb0o7XlA2cSNT
bD1PJj9TaTg0aEw4U2FWbDBzc2g8IzV1Zmo0dllDWVhyMklnCnpyZjF9ZTFjXnl2clYtYmVZMzFu
MVg4UTU3UX42PnNFMG5gYztmUSFsJi1Bbm1qeFpPMXVXeXpgMFZQPiZuUGAjaQp6dHNMI2BTPVEh
Z2BNPXJVOSk0NShKOy18ZFJxLWI1Jno/YnlvPnx7KT81cj1uNzZBNG5UQUxsU3pMaXd+dn4zMUoK
ejw+OVBQPztyczMxcHVfKG9idylyWStqUFk7dFZHWGl8cClkYXstQGdFLVVDYWA9NWV1JUQ7dj1f
bkZKP2AmSylxCno3ZTlkYE5mazM/TWRoWmFyYnxUMyVuU35mJnQoMWc1ZFkpQUljZCR3IXpgU2l6
ISZqXz12N2habG5JMjFYdUV8eAp6Zm1vMChXRDEwVCkhfX5fSFlXIWVld31MK1htd3V6ZVQ2d3R4
SmRgZFojQDcqQkxnSUVLWTlYdj5zdF5wM2Rwe14Kelhzd2EyYkJ7ODV7XiRCMTN0V25CO1k+anlR
fDkmems3Uk5zcUFWR3MtLUsrejB1cW8xYmY1fH1maTVydEVNTl5CCnpmSFFDZC1YSCprZkpoSm5t
SUUkRzAlPEA1dk96eEIwMTgxZCphM0VmWUgkRzVmcUt2Y1BKJVhZMjMhUEp6enVLPAp6NDFoO0sz
V21XO0ZhaDN5WCRYU3c1RVlfOXMqbzA+NTFCJk41RjEodWN8JD1eSTF+ZkxMeTM/T2wwZjs7Q2E0
JUgKemdRfXJKUChBYmBiUS16e1U0IzBkMmhib2kyS0BuamdifG5tKF9zelIwSmViSHVzYStHTjVh
ZUNNMGdkUDJOJUhHCno7WXpwYEpgVDZTN3ZVVDUwNCMtSCFqbEw8JE9yP2BNcHlfTkBrQno5U1I/
QHZBIzBIJHF5bmkkbnZmMnA4QFl7MAp6ayNYYiQyOFc/eG0+M3F1OFJMZ3BqTnhLZFZiKT93Rng4
bDJte3Y+fDx+QyohR2xCVm5yRER+d3JkVEplS1h3VD0KejV1MSVJIzh6T0JVfFg9NHU+O3MpPl5t
RnwkR3tvbDlCX1dQNytmLUxITGU3PTU3JiZsZmF9OHo7VUA4VHllaSVsCno/fTg3KGJNUnQoQS0p
UUs5RGczKWp+flhyQ3kpdFIxWiNwMUEoa0t7WSRRfD04VktoSXtlJSgxRypOLTVQam4pTgp6NVA4
STBWa3huWCpnP0VXOTQxYmE2aUozODdnOGlDblk0amFOb3BjcENPc3ktQShQMkVXSmh1c1N3TFAt
dHxYcnoKelVuTEtjS1R3bj9DS09MZjk3UkllUEJ9YHNLelRyVUwjMHY7c0JZOSlzK2hXK1QySC0x
ZU0pXlZOMFQjYF5PeGh2Cnp0Jl4qZlluQUpsZG5IZWwqT3p5ZlVvTXt+VW08QD17LSpyNjAjVSgw
IUJjXnd1dlZjKTtrM2QlZy1KITRxTHBIWgp6Vnd6JSFWdVJ1fSNaZWBebDdXKTk1PktmPj45RW96
cjZDJFopMWBVUnhVQH5RSUApRjBGZGF1WHIyRXM4PkJhT1AKej0pTHBfV2hHQD48dFhKRzxyP0wp
JTJFY3hGa3R2SVFXPlI7bFo/QkprTWxJPHh6RlJ6K2N2TGhVak11KW1IOEBlCnpEdHdoOW0xZE96
bTUtYFNSZDNaNCl0I3pzcyEhQX5ZOT94N1lUMFcwKWg/QHomIV45S3AzanxNSDI+dU1odzhBcAp6
aUYmeURZVzJoRko/Zkpobml7P3U4NSZnQG1vJnlUOEpjZEkkKHJTdz1RUEsoWGolKWsxWHxAPD1l
MXJpbTZgNiQKelJBd2MhaSNlZ0t1STtCUyhMU1d6dDM5bl9zSXlwU3FmV0VWNkozJW5UUUA8c1Qo
P3RxTFFoTENTVEEzJVFTWUhYCnpRSjx9IXFgeWJNVFl0KkgmPi00aWkkUjtnc0cqOVh6aFJ6WHF2
MnlDcyokVkZEeCtHWEpIfEw7d3NESF9LSTI7Xgp6dSEpXlhsMVl1cE87Z3leLWMoP14mJFExQll2
eVBzR147aGMkRCoqQFN5YCtgKX1UNFZKamleYmQ3SnF3M3E2WmkKemk9N3RUN0dFc3dFS0BEKEVG
VzFaU3BgXmF3Q2I/PiFgajR9WWg3Yn4kQSlVLVczJGV0LVI4QmVzVigxanp3TGNICnpucTlFbjdR
MFRuJi1NPVhCS3MhJEYkWDx8YyEjfFhfdDxvSEQ3JUR4KWUtQ0g7a2VINmpOPUM8ZG5kOGVOdkdl
UAp6UzxXZlc0Ykd6cjM+V1loKUdaaXQoUSlDcDlDREVeV0c7K2ZjeU9XQVJvaiowVEk+NEVQMWxY
KmNFb01PLVBrP1oKentrWiFwNEAoYmBNfmxhbHI8M096JmtKNk5tIzxmbVNGZzh7X2hScEFAMjVV
R0s4WmUhSmA9dW56Tj52Tl8ra0E1Cnp7ZFc0QF5WamdfYHElcVUxVUxrJjNGciE+MVYjaV8yUjtp
ajJAKFokMWpFNHIhTWxQVkZWYkhtVCt8aTxMaXxIXgp6ZyoqdjAzfCRyYWF+TGl4R157NDxkQUw9
MGV0MzVURW4tRFBMJlVwQ2tJMiU8TX5qVVhPQlEhViR3JFJTKWtqVDUKemRxdE47T1A1JElTK25G
dWo5UUUhcmFjeFA4eD95YmM1PG9yKCVubWs8THUlSjxMKWpxVCRaISErSCRxIXNtc3I8CnprWUIt
QmFWajFnQTA2S2l8QWBhQXNwVStyXmsyRG08cGtIMHlOQ09kPWYqNE5qcXpSaFcmRHVAbXhRdX0o
THxUVAp6VTVSNSF1MU9WMTt7czFYd2N2SEtVLUUoRXNnI2hFcWJXMH4oVyVYOGd0WWp5KD9UVS1p
bSlxUEdkKEIwRlQqc1cKekZoamJeWTFRc2s2UVYlVGt4VkZhUyFUUEtqe1ojYk5RQCsjQzQqVER2
dWQqNVhHZGs5JTJDVl89SmUjNjxaakN5CnokQDl0a2VsPXpfY1hlbUpjSyhMXiE4UHR7NHl9ZE91
M1ghPlBJcTB3eTVhU3s+eUs/OVpBalZoJVNPd01XZ0ZqYQp6aXImO3dwaSF7Q1V9JkBOPUVnI35M
USZ6cEV6Vm1HWXtoSTlaMCs0PHYjbn58bW0qJSNePHZCN2lzRFp0Kz4tMHgKelMkJFhlLU9Ub2M/
WSpWO3JUY2ZfYl9qUmUtUlpqWFNlYXMzVWZJeUQ7OWFmZCU8YGkweDRUI0R6RSl2ZGFiT1E9Cnpr
N1NSdUdOYGg+TzBRfjEpdS15RD5WWD1NbiYhUmdkJDtZSytRLX0xenUjP3QoKmNiRyNSb25mNmRi
Jk4kb0VpZAp6dHdDK1lWY2ctWSFfVnVZPmJrI1llX3d3QD9NVSZGJnFzd3ZyTl9kTGI9NW82KkVn
cylsczNZUmxFJCYpYW1SMXsKejtQcGQkNlJZVl5HbyFpcTFVTWwlQCM0cSRBTWMoRkpsVDFRZVg4
anZ7aCMpPiZ7flJHcTFOMmlpTUZJUlg/c2syCnotfDJ3VW9nS357RWtCJDhlRHNYPW5WUGY4WEdf
bksmSn49U0lpR2lhQDxQVWlAciNLVWhkTmh1S0R4QnoodyhsYgp6dUhNVW1tIzwjJnhwSng3ejVE
IUNtI2ImNEliQXpfb3FmSVNoVyhBITk9bzJGVStqS3E+OXl9fHozRmhYe2cmZ2MKemo9bHdiPWxX
Z3lGVyZhTGVkVWgtb2Zgdi0yS3ckVXpJKj4oKyYkQGktdT0tQnNTalIxJXo4TmVYI0hkQzxEd0BE
CnpQYiF8T0tkdEBNX302QnN6NFl2JCpJPmBIaC1aKDZ4SS1gaG1IRHF2IXYpVyYmbnJmPk0oUmhj
TjYoRDtqTk4qJQp6XnVfU1lqRjsybmd9KjhPdylkNk10RGs7JWBATHNrJDs5dyQoZChIJU81VWl4
SXJgVDJaUmNkQDxrTlIpQDIwMVUKei1tQVZwX0pSR09gKHlPU2s/SEpEXyluRmVqWCFzTTNIPFZT
Q1QoV3MtfWkqYGA9IzxHQV4tcFkzMjtiUmF7dkdmCno2OTUxVTY5RTk0b0VRS0EwM0F0MEt+eHdT
VmBPMFh8RFM7Znooai1edSMhPVFjdGVXbC1+aitUbyZwa3A1NGpUbgpPMDAwMDxNTlVNbkxTVFlw
czcodDEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvaW1hZ2VzL3Jlc291cmNlcy9ibHVlLTEwMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdl
cy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NzFlYTgyODg0NDQxZTFiZTM5
NjBiNGM5M2M5ZjBhZmMxMzc2ZjUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMwNgp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHZwXkRJbTxqMVNKMUFGZmp1dSNeTkElQ3gmKEJXTF5SfW9DT3x7I1M5
R0cKeiFYVjdaRmwmd2tQPntYRSk3Tz4jSGFDfSR4fmN0P1heQjd+JHI5SXk2NmdIZit8O31oMkly
I0cjRkVxJGg0UmRqCnozPFk7ai0rPUgmSzU/TDtgSk9KMEFyLWdZVU5CXjJWQmxiMGtvb155KVdQ
JVlOJnpRWldgYCt3UHQlRnFsJWhGNwp6NzBlSmhGJHY3ek47d0g7dXheNGRuMUVfUEI4PyEkQ25x
ZyswUDh2I002dmQzK2dVcGo3Pl4lKj43KXZERHVidTEKS3BVWE9AZ2VDeWpLVjxSJQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVz
b3VyY2VzL2dyZWVuLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M0OGRkYjQzOTc1MzAyZjUzMjE5MmRmN2EzZDgwNWMz
NDE2YThmMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjc1OAp6Y21WOyUzT1YoT1ApPGg7M0t8
TGswMDBlMU5KTFRxMDAwVUEwMDBVSTFeQHM2aldXLUAwMDAwNFhGKkx0MDA2TyUKejM7YmFQMDAw
VT5YK3VMJE5rYzsqUDt6ZihYPjRUeDBDKWtObVVtUUIqJXBWLXkqSXRrNStXY2FeY3MyekFrc1RY
Cno2JERYPE5xfHJTaEorP3xMPEwzXjVoKyQ9UktOajhoYXpKfDZicGxiViVHYHM1S3pYIVFBOT1N
LUhkQXFAMnhmUwp6LWtTWiNTPk1eYHg3WFFjP3xzKzAwOHNwYjFqMk0hMGYwMjJTUVBILSFDVnAo
JWYkQnI3IVV5dFNPTEp7V0BaRk8Kel8oVEhLe0psTXluVyN2e3YtYSpUZk1tUGRFV2MxRGJKcVdW
a3M+IWtCbkFLcU1iJFB1ZWtLPj8wK2RzOyNUaGRICnoxal9XNERLZHNKRzhVbDtxTzJuMCNJSjFq
cnsqaVckKFdaVzxlP2ZfJktiTmtve1lPdC1rSyVocWxeVGhUJG0tYAp6WFFPLXZXeFo1TW5nSGVa
REFVdlVvSjteUDZxI1NsPU8mP1NpODRoTDhTYVZsMHNzaDwjNXVmajR2WUNZWHIySWcKenJmMX1l
MWNeeXZyVi1iZVkzMW4xWDhRNTdRfjY+c0UwbmBjO2ZRIWwmLUFubWp4Wk8xdVd5emAwVlA+Jm5Q
YCNpCnp0c0wjYFM9USFnYE09clU5KTQ1KEo7LXxkUnEtYjUmej9ieW8+fHspPzVyPW43NkE0blRB
TGxTekxpd352fjMxSgp6PD45UFA/O3JzMzFwdV8ob2J3KXJZK2pQWTt0VkdYaXxwKWRhey1AZ0Ut
VUNhYD01ZXUlRDt2PV9uRko/YCZLKXEKejdlOWRgTmZrMz9NZGhaYXJifFQzJW5TfmYmdCgxZzVk
WSlBSWNkJHchemBTaXohJmpfPXY3aFpsbkkyMVh1RXx4CnpmbW8wKFdEMTBUKSF9fl9IWVchZWV3
fUwrWG13dXplVDZ3dHhKZGBkWiNANypCTGdJRUtZOVh2PnN0XnAzZHB7Xgp6WHN3YTJiQns4NXte
JEIxM3RXbkI7WT5qeVF8OSZ6azdSTnNxQVZHcy0tSyt6MHVxbzFiZjV8fWZpNXJ0RU1OXkIKemZI
UUNkLVhIKmtmSmhKbm1JRSRHMCU8QDV2T3p4QjAxODFkKmEzRWZZSCRHNWZxS3ZjUEolWFkyMyFQ
Snp6dUs8Cno0MWg7SzNXbVc7RmFoM3lYJFhTdzVFWV85cypvMD41MUImTjVGMSh1Y3wkPV5JMX5m
TEx5Mz9PbDBmOztDYTQlSAp6Z1F9ckpQKEFiYGJRLXp7VTQjMGQyaGJvaTJLQG5qZ2J8bm0oX3N6
UjBKZWJIdXNhK0dONWFlQ00wZ2RQMk4lSEcKejtZenBgSmBUNlM3dlVUNTA0Iy1IIWpsTDwkT3I/
YE1weV9OQGtCejlTUj9AdkEjMEgkcXluaSRudmYycDhAWXswCnprI1hiJDI4Vz94bT4zcXU4Ukxn
cGpOeEtkVmIpP3dGeDhsMm17dj58PH5DKiFHbEJWbnJERH53cmRUSmVLWHdUPQp6NXUxJUkjOHpP
QlV8WD00dT47cyk+Xm1GfCRHe29sOUJfV1A3K2YtTEhMZTc9NTcmJmxmYX04ejtVQDhUeWVpJWwK
ej99ODcoYk1SdChBLSlRSzlEZzMpan5+WHJDeSl0UjFaI3AxQShrS3tZJFF8PThWS2hJe2UlKDFH
Kk4tNVBqbilOCno1UDhJMFZreG5YKmc/RVc5NDFiYTZpSjM4N2c4aUNuWTRqYU5vcGNwQ09zeS1B
KFAyRVdKaHVzU3dMUC10fFhyegp6VW5MS2NLVHduP0NLT0xmOTdSSWVQQn1gc0t6VHJVTCMwdjtz
Qlk5KXMraFcrVDJILTFlTSleVk4wVCNgXk94aHYKenQmXipmWW5BSmxkbkhlbCpPenlmVW9Ne35V
bTxAPXstKnI2MCNVKDAhQmNed3V2VmMpO2szZCVnLUohNHFMcEhaCnpWd3olIVZ1UnV9I1plYF5s
N1cpOTU+S2Y+PjlFb3pyNkMkWikxYFVSeFVAflFJQClGMEZkYXVYcjJFczg+QmFPUAp6PSlMcF9X
aEdAPjx0WEpHPHI/TCklMkVjeEZrdHZJUVc+UjtsWj9CSmtNbEk8eHpGUnorY3ZMaFVqTXUpbUg4
QGUKekR0d2g5bTFkT3ptNS1gU1JkM1o0KXQjenNzISFBflk5P3g3WVQwVzApaD9AeiYhXjlLcDNq
fE1IMj51TWh3OEFwCnppRiZ5RFlXMmhGSj9mSmhuaXs/dTg1JmdAbW8meVQ4SmNkSSQoclN3PVFQ
SyhYaiUpazFYfEA8PWUxcmltNmA2JAp6UkF3YyFpI2VnS3VJO0JTKExTV3p0MzluX3NJeXBTcWZX
RVY2SjMlblRRQDxzVCg/dHFMUWhMQ1NUQTMlUVNZSFgKelFKPH0hcWB5Yk1UWXQqSCY+LTRpaSRS
O2dzRyo5WHpoUnpYcXYyeUNzKiRWRkR4K0dYSkh8TDt3c0RIX0tJMjteCnp1ISleWGwxWXVwTztn
eV4tYyg/XiYkUTFCWXZ5UHNHXjtoYyREKipAU3lgK2ApfVQ0VkpqaV5iZDdKcXczcTZaaQp6aT03
dFQ3R0Vzd0VLQEQoRUZXMVpTcGBeYXdDYj8+IWBqNH1ZaDdifiRBKVUtVzMkZXQtUjhCZXNWKDFq
endMY0gKem5xOUVuN1EwVG4mLU09WEJLcyEkRiRYPHxjISN8WF90PG9IRDclRHgpZS1DSDtrZUg2
ak49QzxkbmQ4ZU52R2VQCnpTPFdmVzRiR3pyMz5XWWgpR1ppdChRKUNwOUNERV5XRzsrZmN5T1dB
Um9qKjBUST40RVAxbFgqY0VvTU8tUGs/Wgp6e2taIXA0QChiYE1+bGFscjwzT3oma0o2Tm0jPGZt
U0ZnOHtfaFJwQUAyNVVHSzhaZSFKYD11bnpOPnZOXytrQTUKentkVzRAXlZqZ19gcSVxVTFVTGsm
M0ZyIT4xViNpXzJSO2lqMkAoWiQxakU0ciFNbFBWRlZiSG1UK3xpPExpfEheCnpnKip2MDN8JHJh
YX5MaXhHXns0PGRBTD0wZXQzNVRFbi1EUEwmVXBDa0kyJTxNfmpVWE9CUSFWJHckUlMpa2pUNQp6
ZHF0TjtPUDUkSVMrbkZ1ajlRRSFyYWN4UDh4P3liYzU8b3IoJW5tazxMdSVKPEwpanFUJFohIStI
JHEhc21zcjwKemtZQi1CYVZqMWdBMDZLaXxBYGFBc3BVK3JeazJEbTxwa0gweU5DT2Q9Zio0Tmpx
elJoVyZEdUBteFF1fShMfFRUCnpVNVI1IXUxT1YxO3tzMVh3Y3ZIS1UtRShFc2cjaEVxYlcwfihX
JVg4Z3RZankoP1RVLWltKXFQR2QoQjBGVCpzVwp6RmhqYl5ZMVFzazZRViVUa3hWRmFTIVRQS2p7
WiNiTlFAKyNDNCpURHZ1ZCo1WEdkazklMkNWXz1KZSM2PFpqQ3kKeiRAOXRrZWw9el9jWGVtSmNL
KExeIThQdHs0eX1kT3UzWCE+UElxMHd5NWFTez55Sz85WkFqVmglU093TVdnRmphCnppciY7d3Bp
IXtDVX0mQE49RWcjfkxRJnpwRXpWbUdZe2hJOVowKzQ8diNufnxtbSolI148dkI3aXNEWnQrPi0w
eAp6UyQkWGUtT1RvYz9ZKlY7clRjZl9iX2pSZS1SWmpYU2VhczNVZkl5RDs5YWZkJTxgaTB4NFQj
RHpFKXZkYWJPUT0Kems3U1J1R05gaD5PMFF+MSl1LXlEPlZYPU1uJiFSZ2QkO1lLK1EtfTF6dSM/
dCgqY2JHI1JvbmY2ZGImTiRvRWlkCnp0d0MrWVZjZy1ZIV9WdVk+YmsjWWVfd3dAP01VJkYmcXN3
dnJOX2RMYj01bzYqRWdzKWxzM1lSbEUkJilhbVIxewp6O1BwZCQ2UllWXkdvIWlxMVVNbCVAIzRx
JEFNYyhGSmxUMVFlWDhqdntoIyk+Jnt+UkdxMU4yaWlNRklSWD9zazIKei18MndVb2dLfntFa0Ik
OGVEc1g9blZQZjhYR19uSyZKfj1TSWlHaWFAPFBVaUByI0tVaGROaHVLRHhCeih3KGxiCnp1SE1V
bW0jPCMmeHBKeDd6NUQhQ20jYiY0SWJBel9vcWZJU2hXKEEhOT1vMkZVK2pLcT45eX18ejNGaFh7
ZyZnYwp6aj1sd2I9bFdneUZXJmFMZWRVaC1vZmB2LTJLdyRVekkqPigrJiRAaS11PS1Cc1NqUjEl
ejhOZVgjSGRDPER3QEQKelBiIXxPS2R0QE1ffTZCc3o0WXYkKkk+YEhoLVooNnhJLWBobUhEcXYh
dilXJiZucmY+TShSaGNONihEO2pOTiolCnpedV9TWWpGOzJuZ30qOE93KWQ2TXREazslYEBMc2sk
Ozl3JChkKEglTzVVaXhJcmBUMlpSY2RAPGtOUilAMjAxVQp6LW1BVnBfSlJHT2AoeU9Taz9ISkRf
KW5GZWpYIXNNM0g8VlNDVChXcy19aSpgYD0jPEdBXi1wWTMyO2JSYXt2R2YKejY5NTFVNjlFOTRv
RVFLQTAyQGd9S354d1NWYFRVYmdoVCkpQkdpRERqNEgkJVFiWSQyMDZkKW41fTZDPDgyfHRQCk0w
Nypxb002TjwkZkB1Oy1PYUs0PwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTBi
MDRhNThiY2NmNDYyNzU4YTIxNDcxZWU0ZDcxOTZjN2JiNjkxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAzMDUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08ajFTSjFBRmZqdXUjXk5BJUN4
JihCV0xeUn1vQ098eyNTOUdHCnohWFY3WkZsJndrUD57WEUpN08+I0hhQ30kMkl1dFRaPDtfTSRy
OUl5NjZnSGYrfDt9aDJJciNHI0ZFcSRoNFJkagp6MzxZO2otKz1IJks1P0w7ZDdkdGdBci1nWVVO
Ql4yVkJsYjBrb29eeSlXUCVZTiZ6enF1NWhLQ29UVGJLT14wPDgKemd1eFVFVktuTjE4QX4wZWZm
KyN4S3M3KVMlP1RqSWsoKSRMZk9TUHV1S219eCZVblYtRCRTZENmRyViNWJvRnl0Ckk9YWtSezAx
b0Q0QEJqYisKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFn
ZXMvcmVzb3VyY2VzL3JlZC0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNlMzI0NjczMDA2MDcwMmQ4MzY5
ZmYyMTZmZjFkZDk5NzU1NzcyMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjc1OQp6Y21WOyYz
T016TlApPGg7M0t8TGswMDBlMU5KTFRxMDAwVUEwMDBVSTFeQHM2aldXLUAwMDAwNFhGKkx0MDA2
TyUKejM7YmFQMDAwVT5YK3VMJE5rYzsqUDt6ZihYPjRUeDBDKWtObVVtUUIqJXBWLXkqSXRrNStX
Y2FeY3MyekFrc1RYCno2JERYPE5xfHJTaEorP3xMPEwzXjVoKyQ9UktOajhoYXpKfDZicGxiViVH
YHM1S3pYIVFBOT1NLUhkQXFAMnhmUwp6LWtTWiNTPk1eYHg3WFFjP3xzKzAwOHNwYjFqMk0hMGYw
MjJTUVBILSFDVnAoJWYkQnI3IVV5dFNPTEp7V0BaRk8Kel8oVEhLe0psTXluVyN2e3YtYSpUZk1t
UGRFV2MxRGJKcVdWa3M+IWtCbkFLcU1iJFB1ZWtLPj8wK2RzOyNUaGRICnoxal9XNERLZHNKRzhV
bDtxTzJuMCNJSjFqcnsqaVckKFdaVzxlP2ZfJktiTmtve1lPdC1rSyVocWxeVGhUJG0tYAp6WFFP
LXZXeFo1TW5nSGVaREFVdlVvSjteUDZxI1NsPU8mP1NpODRoTDhTYVZsMHNzaDwjNXVmajR2WUNZ
WHIySWcKenJmMX1lMWNeeXZyVi1iZVkzMW4xWDhRNTdRfjY+c0UwbmBjO2ZRIWwmLUFubWp4Wk8x
dVd5emAwVlA+Jm5QYCNpCnp0c0wjYFM9USFnYE09clU5KTQ1KEo7LXxkUnEtYjUmej9ieW8+fHsp
PzVyPW43NkE0blRBTGxTekxpd352fjMxSgp6PD45UFA/O3JzMzFwdV8ob2J3KXJZK2pQWTt0VkdY
aXxwKWRhey1AZ0UtVUNhYD01ZXUlRDt2PV9uRko/YCZLKXEKejdlOWRgTmZrMz9NZGhaYXJifFQz
JW5TfmYmdCgxZzVkWSlBSWNkJHchemBTaXohJmpfPXY3aFpsbkkyMVh1RXx4CnpmbW8wKFdEMTBU
KSF9fl9IWVchZWV3fUwrWG13dXplVDZ3dHhKZGBkWiNANypCTGdJRUtZOVh2PnN0XnAzZHB7Xgp6
WHN3YTJiQns4NXteJEIxM3RXbkI7WT5qeVF8OSZ6azdSTnNxQVZHcy0tSyt6MHVxbzFiZjV8fWZp
NXJ0RU1OXkIKemZIUUNkLVhIKmtmSmhKbm1JRSRHMCU8QDV2T3p4QjAxODFkKmEzRWZZSCRHNWZx
S3ZjUEolWFkyMyFQSnp6dUs8Cno0MWg7SzNXbVc7RmFoM3lYJFhTdzVFWV85cypvMD41MUImTjVG
MSh1Y3wkPV5JMX5mTEx5Mz9PbDBmOztDYTQlSAp6Z1F9ckpQKEFiYGJRLXp7VTQjMGQyaGJvaTJL
QG5qZ2J8bm0oX3N6UjBKZWJIdXNhK0dONWFlQ00wZ2RQMk4lSEcKejtZenBgSmBUNlM3dlVUNTA0
Iy1IIWpsTDwkT3I/YE1weV9OQGtCejlTUj9AdkEjMEgkcXluaSRudmYycDhAWXswCnprI1hiJDI4
Vz94bT4zcXU4UkxncGpOeEtkVmIpP3dGeDhsMm17dj58PH5DKiFHbEJWbnJERH53cmRUSmVLWHdU
PQp6NXUxJUkjOHpPQlV8WD00dT47cyk+Xm1GfCRHe29sOUJfV1A3K2YtTEhMZTc9NTcmJmxmYX04
ejtVQDhUeWVpJWwKej99ODcoYk1SdChBLSlRSzlEZzMpan5+WHJDeSl0UjFaI3AxQShrS3tZJFF8
PThWS2hJe2UlKDFHKk4tNVBqbilOCno1UDhJMFZreG5YKmc/RVc5NDFiYTZpSjM4N2c4aUNuWTRq
YU5vcGNwQ09zeS1BKFAyRVdKaHVzU3dMUC10fFhyegp6VW5MS2NLVHduP0NLT0xmOTdSSWVQQn1g
c0t6VHJVTCMwdjtzQlk5KXMraFcrVDJILTFlTSleVk4wVCNgXk94aHYKenQmXipmWW5BSmxkbkhl
bCpPenlmVW9Ne35VbTxAPXstKnI2MCNVKDAhQmNed3V2VmMpO2szZCVnLUohNHFMcEhaCnpWd3ol
IVZ1UnV9I1plYF5sN1cpOTU+S2Y+PjlFb3pyNkMkWikxYFVSeFVAflFJQClGMEZkYXVYcjJFczg+
QmFPUAp6PSlMcF9XaEdAPjx0WEpHPHI/TCklMkVjeEZrdHZJUVc+UjtsWj9CSmtNbEk8eHpGUnor
Y3ZMaFVqTXUpbUg4QGUKekR0d2g5bTFkT3ptNS1gU1JkM1o0KXQjenNzISFBflk5P3g3WVQwVzAp
aD9AeiYhXjlLcDNqfE1IMj51TWh3OEFwCnppRiZ5RFlXMmhGSj9mSmhuaXs/dTg1JmdAbW8meVQ4
SmNkSSQoclN3PVFQSyhYaiUpazFYfEA8PWUxcmltNmA2JAp6UkF3YyFpI2VnS3VJO0JTKExTV3p0
MzluX3NJeXBTcWZXRVY2SjMlblRRQDxzVCg/dHFMUWhMQ1NUQTMlUVNZSFgKelFKPH0hcWB5Yk1U
WXQqSCY+LTRpaSRSO2dzRyo5WHpoUnpYcXYyeUNzKiRWRkR4K0dYSkh8TDt3c0RIX0tJMjteCnp1
ISleWGwxWXVwTztneV4tYyg/XiYkUTFCWXZ5UHNHXjtoYyREKipAU3lgK2ApfVQ0VkpqaV5iZDdK
cXczcTZaaQp6aT03dFQ3R0Vzd0VLQEQoRUZXMVpTcGBeYXdDYj8+IWBqNH1ZaDdifiRBKVUtVzMk
ZXQtUjhCZXNWKDFqendMY0gKem5xOUVuN1EwVG4mLU09WEJLcyEkRiRYPHxjISN8WF90PG9IRDcl
RHgpZS1DSDtrZUg2ak49QzxkbmQ4ZU52R2VQCnpTPFdmVzRiR3pyMz5XWWgpR1ppdChRKUNwOUNE
RV5XRzsrZmN5T1dBUm9qKjBUST40RVAxbFgqY0VvTU8tUGs/Wgp6e2taIXA0QChiYE1+bGFscjwz
T3oma0o2Tm0jPGZtU0ZnOHtfaFJwQUAyNVVHSzhaZSFKYD11bnpOPnZOXytrQTUKentkVzRAXlZq
Z19gcSVxVTFVTGsmM0ZyIT4xViNpXzJSO2lqMkAoWiQxakU0ciFNbFBWRlZiSG1UK3xpPExpfEhe
CnpnKip2MDN8JHJhYX5MaXhHXns0PGRBTD0wZXQzNVRFbi1EUEwmVXBDa0kyJTxNfmpVWE9CUSFW
JHckUlMpa2pUNQp6ZHF0TjtPUDUkSVMrbkZ1ajlRRSFyYWN4UDh4P3liYzU8b3IoJW5tazxMdSVK
PEwpanFUJFohIStIJHEhc21zcjwKemtZQi1CYVZqMWdBMDZLaXxBYGFBc3BVK3JeazJEbTxwa0gw
eU5DT2Q9Zio0TmpxelJoVyZEdUBteFF1fShMfFRUCnpVNVI1IXUxT1YxO3tzMVh3Y3ZIS1UtRShF
c2cjaEVxYlcwfihXJVg4Z3RZankoP1RVLWltKXFQR2QoQjBGVCpzVwp6RmhqYl5ZMVFzazZRViVU
a3hWRmFTIVRQS2p7WiNiTlFAKyNDNCpURHZ1ZCo1WEdkazklMkNWXz1KZSM2PFpqQ3kKeiRAOXRr
ZWw9el9jWGVtSmNLKExeIThQdHs0eX1kT3UzWCE+UElxMHd5NWFTez55Sz85WkFqVmglU093TVdn
RmphCnppciY7d3BpIXtDVX0mQE49RWcjfkxRJnpwRXpWbUdZe2hJOVowKzQ8diNufnxtbSolI148
dkI3aXNEWnQrPi0weAp6UyQkWGUtT1RvYz9ZKlY7clRjZl9iX2pSZS1SWmpYU2VhczNVZkl5RDs5
YWZkJTxgaTB4NFQjRHpFKXZkYWJPUT0Kems3U1J1R05gaD5PMFF+MSl1LXlEPlZYPU1uJiFSZ2Qk
O1lLK1EtfTF6dSM/dCgqY2JHI1JvbmY2ZGImTiRvRWlkCnp0d0MrWVZjZy1ZIV9WdVk+YmsjWWVf
d3dAP01VJkYmcXN3dnJOX2RMYj01bzYqRWdzKWxzM1lSbEUkJilhbVIxewp6O1BwZCQ2UllWXkdv
IWlxMVVNbCVAIzRxJEFNYyhGSmxUMVFlWDhqdntoIyk+Jnt+UkdxMU4yaWlNRklSWD9zazIKei18
MndVb2dLfntFa0IkOGVEc1g9blZQZjhYR19uSyZKfj1TSWlHaWFAPFBVaUByI0tVaGROaHVLRHhC
eih3KGxiCnp1SE1VbW0jPCMmeHBKeDd6NUQhQ20jYiY0SWJBel9vcWZJU2hXKEEhOT1vMkZVK2pL
cT45eX18ejNGaFh7ZyZnYwp6aj1sd2I9bFdneUZXJmFMZWRVaC1vZmB2LTJLdyRVekkqPigrJiRA
aS11PS1Cc1NqUjElejhOZVgjSGRDPER3QEQKelBiIXxPS2R0QE1ffTZCc3o0WXYkKkk+YEhoLVoo
NnhJLWBobUhEcXYhdilXJiZucmY+TShSaGNONihEO2pOTiolCnpedV9TWWpGOzJuZ30qOE93KWQ2
TXREazslYEBMc2skOzl3JChkKEglTzVVaXhJcmBUMlpSY2RAPGtOUilAMjAxVQp6LW1BVnBfSlJH
T2AoeU9Taz9ISkRfKW5GZWpYIXNNM0g8VlNDVChXcy19aSpgYD0jPEdBXi1wWTMyO2JSYXt2R2YK
ejY5NTFVNjlFOTRvRVFLQTAzMW1+S354d1NXQmt2KzA3UWZWNkphRn42ezhDQWg3ezRrMHt9Z28w
dXN8fjkrTG43Ck4wMDJvdlBESExrVjFtKXZPNDklVQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL3JlZC0xMDAucG5n
IGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL3JlZC0xMDAucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJiMGQxZGY2MDk4Yzc2M2MxNzBjNWM2Zjc2MGI2MWFlOWU2N2ExYzAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDMwNQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkRJbTxqMVNKMUFGZmp1
dSNeTkElQ3gmKEJXTF5SfW9DT3x7I1M5R0cKeiFYVjdaRmwmd2tQPntYRSk3Tz4jSGFDfSR5NCst
cWRffHk7V1FsNztpRjFCI1pmYWYkZ0w2QDhWbzdSPkxWMEZNCnpoSnc0TlokTms+cEV5dl9KV20o
TGtjd014RkJtZDFGbU55e1lee0dEZEdJe0QoZ24/UlpqQ3lUbl5JMHJUSXcoagp6JW1gQk8xflc3
I3NEYz9IQ25rWHpUdEdELTF9akswa2lpN2pyUnEoJl9XTlI4YWc0e2Flcj98bGJTWjxVdERubXsK
SHItVVd8YEA+X34KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MGZmZmRhLi5lZjk4MmVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC02OTMsNiArNjkzLDEwIEBACiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1MCAvKiBI
VE1MTWV0YUNoYXJzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQ
YXJzZXIuaCAqLzsgfTsKIAkJMkJFOEUyQzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hh
cnNldFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNw
cCAqLzsgfTsKIAkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTBFMzUx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJENDgxRjAwMTQ2QjVDNEMwMEFBNzgzNCAv
KiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OworCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyog
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oICovOyB9OworCQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmNwcCAqLzsgfTsKKwkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuaCAqLzsgfTsKIAkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZh
bHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
OEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87IH07CiAJ
CTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNFM0VGNzAw
NzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQw
MDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUu
Y3BwICovOyB9OwpAQCAtMTM1OSw3ICsxMzYzLDYgQEAKIAkJNTAxQkFBQTkxMzk1MEUyQzAwRjdB
Q0VCIC8qIFdpbmRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDhDQ0E0RjEzQ0YxMDZC
MDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEQxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZs
b3dUaHJlYWQuaCAqLzsgfTsKIAkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZs
b3dUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwICovOyB9
OwotCQk1MEI0MjE1ODE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwQjQyMTU3MTQ2
OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oICovOyB9OwogCQk1MEU1NjZE
NjEzOUUzOEM1MDAyMTQ0MzMgLyogQ1NTV3JhcFNoYXBlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDFCQUFCMTEzOTUxMTRCMDBGN0FDRUIgLyog
Q1NTV3JhcFNoYXBlcy5jcHAgKi87IH07CiAJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAvKiBD
YWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMDE4NDZBMEIwODYwMkEwMDRB
ODI1RiAvKiBDYWNoZWRQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMDE4NDY4MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmNwcCAq
LzsgfTsKQEAgLTUyNzIsNyArNTI3NSw2IEBACiAJCUJDRTAxMzlBMEMwQkVGMTgwMDQzODYwQSAv
KiBKU1N0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNFMDEzOTgwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5jcHAgKi87
IH07CiAJCUJDRTAxMzlCMEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTAxMzk5MEMwQkVGMTgw
MDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCAqLzsgfTsKIAkJQkNFMDRDOEEwREFGRjdBMDAwN0Ew
RjQxIC8qIEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDRTA0Qzk0MERBRkY5
MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwNEM5MzBEQUZGOTAyMDA3QTBGNDEgLyogR2VuZXJh
dGVkSW1hZ2UuY3BwICovOyB9OwogCQlCQ0UxQzQxQjBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTFD
NDE5MEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oICovOyB9OwogCQlCQ0UxQzQxQzBEOTgy
OTgxMDAzQjAyRjIgLyogTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNFMUM0MUEwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNw
cCAqLzsgfTsKIAkJQkNFMUM0M0IwRDk4MzBEMzAwM0IwMkYyIC8qIEpTTG9jYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMUM0MzkwRDk4
MzBEMzAwM0IwMkYyIC8qIEpTTG9jYXRpb24uY3BwICovOyB9OwpAQCAtNzc4Nyw2ICs3Nzg5LDEw
IEBACiAJCTI5RDdCQ0Y5MTQ0NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQkU4RTJDNjEyQTU4OUVDMDBG
QUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEhUTUxNZXRhQ2hhcnNldFBhcnNlci5oOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRh
Q2hhcnNldFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQkU4RTJDODEy
QTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHBhdGgg
PSBwYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTUx
NDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU2MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDNBMEUzNTEzQTdENzYxMDBFODVB
RjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR1BhcnNpbmdFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDhGRUJE
QTE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDhGRUJEQjE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3Nm
YWRlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ3Jvc3NmYWRl
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNTYxLDcgKzEyNTY3LDYg
QEAKIAkJQkNFMDEzOTgwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHlsZVNoZWV0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMDEzOTkwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5
bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHlsZVNoZWV0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTA0Qzg5MERBRkY3QTAwMDdBMEY0
MSAvKiBHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRTA0QzkzMERBRkY5MDIwMDdB
MEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDRTFDNDE5MEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0UxQzQxQTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0UxQzQyMjBEOTgyOUYyMDAzQjAyRjIgLyogTG9jYXRpb24uaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IExvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5MTc2LDcgKzE5MTgxLDEwIEBACiAJCQkJMzcyMDIxOTgxMDYyMTNDNjAwRjI1QzRC
IC8qIEZvbnRTbW9vdGhpbmdNb2RlLmggKi8sCiAJCQkJMzc4NEMzNEEwRTExQUEzNDAwN0Q4RDQ4
IC8qIEZvbnRUcmFpdHNNYXNrLmggKi8sCiAJCQkJQkNFNDQxMzUxMkY3NDkwQjAwOUI4NEI4IC8q
IEZvbnRXaWR0aFZhcmlhbnQuaCAqLywKLQkJCQlCQ0UwNEM5MzBEQUZGOTAyMDA3QTBGNDEgLyog
R2VuZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCisJCQkJMkQyRkMwNTUxNDYwQ0Q2RjAwMjYz
NjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggKi8sCisJCQkJMkQyRkMwNTYxNDYwQ0Q2
RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1
NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlC
QzIzRjBEQTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlCQ0Uw
NEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8sCiAJCQkJMDg2QkJEMEUxMzYw
MzlDMjAwOEIxNUQ4IC8qIEdseXBoLmggKi8sCkBAIC0yMjMzMyw2ICsyMjM0MSw4IEBACiAJCQkJ
MTlCRkY2NEIxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxOUJGRjY0RDExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUw
MkFCNDgwQUQ0MzhDMDAwMzc4NTQwIC8qIERPTVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkQ0ODFGMDIxNDZCNUM1NTAwQUE3ODM0IC8qIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDQ4MUYwNDE0NkI1QzZCMDBB
QTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1
MDJBQjkyMEFENDM5NEUwMDM3ODU0MCAvKiBET01TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnRJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMkFCNEEwQUQ0MzhDMDAwMzc4NTQwIC8q
IERPTVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUw
MkFCOTMwQUQ0Mzk0RTAwMzc4NTQwIC8qIERPTVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDA0LDYgKzI1MDE0LDggQEAKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlBRDAzQUFGQTE0Njg0
NTUzMDBBMzlCNUIgLyogQ1NTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ0ODFGMDAx
NDZCNUM0QzAwQUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTJENDgxRjAzMTQ2QjVDNjUwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNUI1REM2OTExOUJCM0Q1MDAyQTg3OTAgLyog
QWJzdHJhY3REYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5ODY5
MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyOUMx
NkUxMzAwQzJFMjAwMkQ3OTRFIC8qIEFjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI1NzM5LDcgKzI1NzUxLDYgQEAKIAkJCQk5NzIwNUFBRjEyMzkyOENBMDBCMTcz
ODAgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFDODFC
ODkwQzQ0MjJGNzAwMTlFQ0UzIC8qIEZUUERpcmVjdG9yeVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDMyRTg0OTBDNTE0OTNGMDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUJDRTA0Qzk0MERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFn
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwRDdDNTBFOUMxRjI1MDAwRDZGNzUgLyogR2Vv
bG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDUyQkZDRTkxMjhBQkYxNTAwRkQzMzhE
IC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzU2Q0Iy
MTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggYjc3MDY5
Zi4uMWRiZTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBA
IC0yNiw4ICsyNiwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU0Nyb3Nz
ZmFkZVZhbHVlLmgiCiAKKyNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCisjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCisj
aW5jbHVkZSAiU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K0NTU0Nyb3NzZmFkZVZhbHVlOjp+Q1NTQ3Jvc3NmYWRlVmFsdWUoKQoreworCit9CisKIFN0cmlu
ZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5n
IHJlc3VsdCA9ICItd2Via2l0LWNyb3NzLWZhZGUoIjsKQEAgLTM4LDE5ICs1Miw0OSBAQCBTdHJp
bmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUludFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUsIFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHJlbmRlcmVyKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIHJldHVybiBJbnRTaXplKCk7
CisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291
cmNlTG9hZGVyKS0+Y2FjaGVkSW1hZ2UoKTsKKworICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVy
YXRvclZhbHVlKCkpIHsKKyAgICAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSogaW1hZ2VHZW5l
cmF0b3IgPSBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkp
OworICAgICAgICBpbWFnZUdlbmVyYXRvci0+YWRkQ2xpZW50KHJlbmRlcmVyLCBzaXplKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBDYWNoZWRJbWFnZShpbWFnZUdlbmVyYXRvci0+aW1hZ2UocmVuZGVy
ZXIsIHNpemUpLmdldCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogUGFzc1JlZlB0
cjxJbWFnZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHJlbmRlcmVyKTsKLSAg
ICBVTlVTRURfUEFSQU0oc2l6ZSk7CisgICAgaWYgKHNpemUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHJldHVybiAwOworICAgIENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsICog
dG9JbWFnZTsKKworICAgIGZyb21JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV9mcm9t
SW1hZ2UsIHJlbmRlcmVyLCBzaXplKTsKKyAgICB0b0ltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NW
YWx1ZShtX3RvSW1hZ2UsIHJlbmRlcmVyLCBzaXplKTsKKworICAgIGlmICghZnJvbUltYWdlIHx8
ICF0b0ltYWdlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1fZ2VuZXJhdGVkSW1hZ2UgPSBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGZyb21JbWFnZSwgdG9JbWFnZSwgbV9wZXJj
ZW50YWdlLT5nZXREb3VibGVWYWx1ZSgpIC8gMTAwLjAsICZtX2Nyb3NzZmFkZU9ic2VydmVyLCBz
aXplKTsKKworICAgIHJldHVybiBtX2dlbmVyYXRlZEltYWdlLmdldCgpOworfQorCit2b2lkIENT
U0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3QmIHJlY3QpCit7
CisgICAgVU5VU0VEX1BBUkFNKHJlY3QpOworCisgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFw
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBjbGllbnRzKCkuZW5kKCk7CisgICAgZm9yIChSZW5kZXJP
YmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGN1cnIgPSBjbGllbnRzKCkuYmVnaW4o
KTsgY3VyciAhPSBlbmQ7ICsrY3VycikgeworICAgICAgICBSZW5kZXJPYmplY3QqIGNsaWVudCA9
IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4oY3Vyci0+Zmlyc3QpOworICAgICAgICBjbGllbnQt
PmltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KHRoaXMpKTsKKyAgICB9
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmgKaW5kZXggZDU0OWZiZS4uMDIwZjEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmgKQEAgLTI3LDM5ICsyNyw2NCBAQAogI2RlZmluZSBDU1NDcm9zc2ZhZGVW
YWx1ZV9oCiAKICNpbmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCi0jaW5jbHVkZSAi
Q1NTSW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBE
b2N1bWVudDsKIAogY2xhc3MgQ1NTQ3Jvc3NmYWRlVmFsdWUgOiBwdWJsaWMgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ3Jvc3NmYWRl
VmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1Jl
ZlB0cjxDU1NJbWFnZVZhbHVlPiB0b0ltYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Jv
c3NmYWRlVmFsdWUoZnJvbUltYWdlLCB0b0ltYWdlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NDcm9zc2ZhZGVWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21JbWFn
ZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9CisgICAgfkNTU0Nyb3NzZmFk
ZVZhbHVlKCk7CiAKICAgICBTdHJpbmcgY3VzdG9tQ3NzVGV4dCgpIGNvbnN0OwogCiAgICAgUGFz
c1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwogICAg
IGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIEludFNpemUg
Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopOworICAgIEludFNpemUgZml4ZWRTaXplKGNv
bnN0IFJlbmRlck9iamVjdCopIHsgcmV0dXJuIEludFNpemUoKTsgfQogCiAgICAgdm9pZCBzZXRQ
ZXJjZW50YWdlKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBlcmNlbnRhZ2UpIHsgbV9w
ZXJjZW50YWdlID0gcGVyY2VudGFnZTsgfQogCiBwcml2YXRlOgotICAgIENTU0Nyb3NzZmFkZVZh
bHVlKFBhc3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gZnJvbUltYWdlLCBQYXNzUmVmUHRyPENTU0lt
YWdlVmFsdWU+IHRvSW1hZ2UpCisgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUoUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gZnJvbUltYWdlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB0b0ltYWdlKQogICAgICAgICA6
IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoQ3Jvc3NmYWRlQ2xhc3MpCiAgICAgICAgICwgbV9mcm9t
SW1hZ2UoZnJvbUltYWdlKQogICAgICAgICAsIG1fdG9JbWFnZSh0b0ltYWdlKQotICAgIHsKLSAg
ICB9CisgICAgICAgICwgbV9jcm9zc2ZhZGVPYnNlcnZlcih0aGlzKSB7IH0KIAotICAgIFJlZlB0
cjxDU1NJbWFnZVZhbHVlPiBtX2Zyb21JbWFnZTsKLSAgICBSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4g
bV90b0ltYWdlOworICAgIC8vIE5PVEU6IFdlIHB1dCB0aGUgSW1hZ2VPYnNlcnZlciBpbiBhIG1l
bWJlciBpbnN0ZWFkIG9mIGluaGVyaXRpbmcgZnJvbSBpdAorICAgIC8vIHRvIGF2b2lkIGFkZGlu
ZyBhIHZwdHIgdG8gQ1NTQ3Jvc3NmYWRlVmFsdWUuCisgICAgY2xhc3MgQ3Jvc3NmYWRlT2JzZXJ2
ZXJQcm94eSA6IHB1YmxpYyBJbWFnZU9ic2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIENy
b3NzZmFkZU9ic2VydmVyUHJveHkoQ1NTQ3Jvc3NmYWRlVmFsdWUqIG93bmVyVmFsdWUpIDogbV9v
d25lclZhbHVlKG93bmVyVmFsdWUpIHsgfQorICAgICAgICB2aXJ0dWFsIH5Dcm9zc2ZhZGVPYnNl
cnZlclByb3h5KCkgT1ZFUlJJREUgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VkSW5S
ZWN0KGNvbnN0IEltYWdlKiwgY29uc3QgSW50UmVjdCYgcmVjdCkgT1ZFUlJJREUgeyBtX293bmVy
VmFsdWUtPmNyb3NzZmFkZUNoYW5nZWQocmVjdCk7IH07CisgICAgICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRQYXVzZUFuaW1hdGlvbihjb25zdCBJbWFnZSopIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlKikgT1ZFUlJJREUg
eyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25BZHZhbmNlZChjb25zdCBJbWFnZSop
IE9WRVJSSURFIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNv
bnN0IEltYWdlKiwgaW50KSBPVkVSUklERSB7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBDU1ND
cm9zc2ZhZGVWYWx1ZSogbV9vd25lclZhbHVlOworICAgIH07CisKKyAgICB2b2lkIGNyb3NzZmFk
ZUNoYW5nZWQoY29uc3QgSW50UmVjdCYpOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBtX2Zyb21J
bWFnZTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fdG9JbWFnZTsKICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IG1fcGVyY2VudGFnZTsKKworICAgIFJlZlB0cjxJbWFnZT4gbV9nZW5lcmF0
ZWRJbWFnZTsKKworICAgIENyb3NzZmFkZU9ic2VydmVyUHJveHkgbV9jcm9zc2ZhZGVPYnNlcnZl
cjsKIH07CiAKK0NhY2hlZEltYWdlKiBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKFBhc3NSZWZQdHI8
Q1NTVmFsdWU+LCBSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENTU0Nyb3NzZmFkZVZhbHVlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCBmZWIwMWY0Li5iNTViNDc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogCi0jaW5jbHVk
ZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKLSNp
bmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIK
KyNpbmNsdWRlICJHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkdyYWRpZW50
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCkBAIC02Nyw3ICs2
Nyw3IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0dyYWRpZW50VmFsdWU6OmltYWdlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmCiAgICAgICAgIGdyYWRpZW50ID0gc3RhdGlj
X2Nhc3Q8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5jcmVhdGVHcmFkaWVudChyZW5k
ZXJlciwgc2l6ZSk7CiAgICAgfQogCi0gICAgUmVmUHRyPEltYWdlPiBuZXdJbWFnZSA9IEdlbmVy
YXRlZEltYWdlOjpjcmVhdGUoZ3JhZGllbnQsIHNpemUpOworICAgIFJlZlB0cjxJbWFnZT4gbmV3
SW1hZ2UgPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGdyYWRpZW50LCBzaXplKTsK
ICAgICBpZiAoY2FjaGVhYmxlKQogICAgICAgICBwdXRJbWFnZShzaXplLCBuZXdJbWFnZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggODVkMWFiZC4uZmMzOGNiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTYyOTAsNyArNjI5MCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZUNyb3NzZmFkZShDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1Zh
bHVlPiYKICAgICBpZiAoIWEgfHwgYS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BF
UkNFTlRBR0UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJlc3VsdCA9IENTU0Nyb3Nz
ZmFkZVZhbHVlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGZyb21JbWFnZVZh
bHVlLmdldCgpKSwgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHRvSW1hZ2VWYWx1ZS5nZXQo
KSkpOworICAgIHJlc3VsdCA9IENTU0Nyb3NzZmFkZVZhbHVlOjpjcmVhdGUoZnJvbUltYWdlVmFs
dWUsIHRvSW1hZ2VWYWx1ZSk7CiAgICAgcmVzdWx0LT5zZXRQZXJjZW50YWdlKGNyZWF0ZVByaW1p
dGl2ZU51bWVyaWNWYWx1ZShhKSk7CiAKICAgICBjcm9zc2ZhZGUgPSByZXN1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCBlMjg5ZGQ0
Li5iY2QzNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogCiBjbGFzcyBCaXRtYXBJbWFnZSA6
IHB1YmxpYyBJbWFnZSB7CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOworICAgIGZy
aWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKE5hdGl2
ZUltYWdlUHRyIG5hdGl2ZUltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgz
MDYzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgi
CisKKyNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1ZS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKENhY2hlZEltYWdlKiBm
cm9tSW1hZ2UsIENhY2hlZEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9i
c2VydmVyKiBvYnNlcnZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICA6IG1fZnJvbUltYWdl
KGZyb21JbWFnZSkKKyAgICAsIG1fdG9JbWFnZSh0b0ltYWdlKQorICAgICwgbV9wZXJjZW50YWdl
KHBlcmNlbnRhZ2UpCisgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwgbV9jcm9zc2Zh
ZGVTdWJpbWFnZU9ic2VydmVyKGFkb3B0UHRyKG5ldyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVy
UHJveHkodGhpcykpKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisKKyAgICBtX2Zyb21JbWFnZS0+
YWRkQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7CisgICAgbV90b0lt
YWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKKworICAg
IG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci0+c2V0UmVhZHkodHJ1ZSk7Cit9CisKK0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOjp+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKQoreworICAgIG1f
ZnJvbUltYWdlLT5yZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgp
KTsKKyAgICBtX3RvSW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXIuZ2V0KCkpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jvc3Nm
YWRlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBJbWFnZSogZnJvbUltYWdlID0g
MDsKKyAgICBJbWFnZSogdG9JbWFnZSA9IDA7CisgICAgSW50U2l6ZSBmcm9tSW1hZ2VTaXplLCB0
b0ltYWdlU2l6ZSwgY3Jvc3NmYWRlSW1hZ2VTaXplOworICAgIGZsb2F0IGludmVyc2VQZXJjZW50
YWdlID0gMS4wZiAtIG1fcGVyY2VudGFnZTsKKworICAgIGZyb21JbWFnZSA9IG1fZnJvbUltYWdl
LT5pbWFnZSgpOworICAgIGZyb21JbWFnZVNpemUgPSBmcm9tSW1hZ2UtPnNpemUoKTsKKyAgICB0
b0ltYWdlID0gbV90b0ltYWdlLT5pbWFnZSgpOworICAgIHRvSW1hZ2VTaXplID0gdG9JbWFnZS0+
c2l6ZSgpOworCisgICAgY3Jvc3NmYWRlSW1hZ2VTaXplID0gSW50U2l6ZShmcm9tSW1hZ2VTaXpl
LndpZHRoKCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLndpZHRoKCkgKiBtX3Bl
cmNlbnRhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tSW1hZ2VTaXpl
LmhlaWdodCgpICogaW52ZXJzZVBlcmNlbnRhZ2UgKyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSAqIG1f
cGVyY2VudGFnZSk7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
KmNvbnRleHQpOworCisgICAgLy8gRHJhdyB0aGUgaW1hZ2Ugd2UncmUgZmFkaW5nIGF3YXkgZnJv
bS4KKyAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgaWYgKGNyb3NzZmFkZUltYWdlU2l6ZSAhPSBm
cm9tSW1hZ2VTaXplKQorICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGNyb3NzZmFkZUltYWdlU2l6ZS53aWR0aCgpKSAvIGZyb21JbWFnZVNpemUud2lk
dGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0
Pihjcm9zc2ZhZGVJbWFnZVNpemUuaGVpZ2h0KCkpIC8gZnJvbUltYWdlU2l6ZS5oZWlnaHQoKSkp
OworICAgIGNvbnRleHQtPnNldEFscGhhKGludmVyc2VQZXJjZW50YWdlKTsKKyAgICBjb250ZXh0
LT5kcmF3SW1hZ2UoZnJvbUltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpKTsK
KyAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisKKyAgICAvLyBEcmF3IHRoZSBpbWFnZSB3ZSdyZSBm
YWRpbmcgdG93YXJkcy4KKyAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgaWYgKGNyb3NzZmFkZUlt
YWdlU2l6ZSAhPSB0b0ltYWdlU2l6ZSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXpl
KHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUud2lkdGgoKSkgLyB0b0ltYWdl
U2l6ZS53aWR0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGNyb3NzZmFkZUltYWdlU2l6ZS5oZWlnaHQoKSkgLyB0b0ltYWdlU2l6ZS5oZWln
aHQoKSkpOworICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVTb3Vy
Y2VPdmVyKTsKKyAgICBjb250ZXh0LT5zZXRBbHBoYShtX3BlcmNlbnRhZ2UpOworICAgIGNvbnRl
eHQtPmRyYXdJbWFnZSh0b0ltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpKTsK
KyAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cit9CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0
b3IgY29tcG9zaXRlT3ApCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbXBvc2l0ZU9wKTsKKyAgICBV
TlVTRURfUEFSQU0oc3JjUmVjdCk7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoKmNvbnRleHQpOworICAgIGNvbnRleHQtPmNsaXAoZHN0UmVjdCk7CisgICAgY29u
dGV4dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgpLCBkc3RSZWN0LnkoKSk7CisKKyAgICBkcmF3Q3Jv
c3NmYWRlKGNvbnRleHQpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQoreworICAgIE93blB0cjxJ
bWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKG1fc2l6ZSk7Cisg
ICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRmlsbCB3aXRo
IHRoZSBjcm9zcy1mYWRlZCBpbWFnZS4KKyAgICBHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29u
dGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7CisgICAgZHJhd0Nyb3NzZmFkZShncmFwaGlj
c0NvbnRleHQpOworCisgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRl
eHQuCisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIHNyY1JlY3QsIHBhdHRl
cm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBvc2l0ZU9wLCBkZXN0UmVj
dCk7Cit9CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmltYWdlQ2hhbmdlZChDYWNo
ZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFN
KGltYWdlKTsKKyAgICBtX29ic2VydmVyLT5jaGFuZ2VkSW5SZWN0KHRoaXMsICpyZWN0KTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Ny
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTg4MjMzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisjZGVmaW5lIENyb3NzZmFkZUdl
bmVyYXRlZEltYWdlX2gKKworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiR2Vu
ZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlT2JzZXJ2
ZXIuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU0Nyb3NzZmFkZVZhbHVlOworY2xhc3MgQ3Jv
c3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OworCitjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZSA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CisgICAgZnJpZW5kIENyb3NzZmFkZVN1Ymlt
YWdlT2JzZXJ2ZXJQcm94eTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZElt
YWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoZnJvbUltYWdlLCB0b0ltYWdlLCBwZXJjZW50YWdlLCBv
YnNlcnZlciwgc2l6ZSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZSgpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAgdmly
dHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKworICAgIENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZEltYWdlKiB0b0ltYWdlLCBm
bG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiwgY29uc3QgSW50U2l6ZSYpOworCisgICAg
dm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IDApOworCitw
cml2YXRlOgorICAgIHZvaWQgZHJhd0Nyb3NzZmFkZShHcmFwaGljc0NvbnRleHQqKTsKKworICAg
IENhY2hlZEltYWdlKiBtX2Zyb21JbWFnZTsKKyAgICBDYWNoZWRJbWFnZSogbV90b0ltYWdlOwor
ICAgIGZsb2F0IG1fcGVyY2VudGFnZTsKKworICAgIEltYWdlT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7
CisgICAgT3duUHRyPENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eT4gbV9jcm9zc2ZhZGVT
dWJpbWFnZU9ic2VydmVyOworfTsKKworY2xhc3MgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclBy
b3h5IDogcHVibGljIENhY2hlZEltYWdlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBDcm9zc2ZhZGVT
dWJpbWFnZU9ic2VydmVyUHJveHkoQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UqIG93bmVyVmFsdWUp
CisgICAgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkKKyAgICAsIG1fcmVhZHkoZmFsc2UpIHsg
fQorCisgICAgdmlydHVhbCB+Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KCkgT1ZFUlJJ
REUgeyB9CisgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSogaW1hZ2Us
IGNvbnN0IEludFJlY3QqIHJlY3QgPSAwKSBPVkVSUklERSB7CisgICAgICAgIGlmIChtX3JlYWR5
KQorICAgICAgICAgICAgbV9vd25lclZhbHVlLT5pbWFnZUNoYW5nZWQoaW1hZ2UsIHJlY3QpOwor
ICAgIH0KKyAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9
Citwcml2YXRlOgorICAgIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKiBtX293bmVyVmFsdWU7Cisg
ICAgYm9vbCBtX3JlYWR5OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWUwNmRmZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCi0KLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1
ZGUgIkxlbmd0aC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgR2VuZXJhdGVkSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0
b3IgY29tcG9zaXRlT3ApCi17Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKCpjb250ZXh0KTsKLSAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9z
aXRlT3ApOwotICAgIGNvbnRleHQtPmNsaXAoZHN0UmVjdCk7Ci0gICAgY29udGV4dC0+dHJhbnNs
YXRlKGRzdFJlY3QueCgpLCBkc3RSZWN0LnkoKSk7Ci0gICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9
IHNyY1JlY3Quc2l6ZSgpKQotICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoZHN0UmVj
dC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5o
ZWlnaHQoKSkpOwotICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0
LnkoKSk7Ci0gICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9z
aXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsKLX0KLQotdm9pZCBHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QpCi17Ci0gICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92
aWRlIHZpc3VhbGx5LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJm
b3JtYW5jZS4KLSAgICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IG1fc2l6ZTsKLSAgICBGbG9hdFJl
Y3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKLSAgICBtX2dlbmVyYXRvci0+YWRqdXN0UGFy
YW1ldGVyc0ZvclRpbGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVkU3JjUmVjdCk7Ci0K
LSAgICAvLyBDcmVhdGUgYSBCaXRtYXBJbWFnZSBhbmQgY2FsbCBkcmF3UGF0dGVybiBvbiBpdC4K
LSAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShhZGp1c3RlZFNpemUpOwotICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIC8vIEZpbGwgd2l0aCB0aGUgZ3JhZGllbnQuCi0gICAgR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwotICAgIGdyYXBoaWNzQ29u
dGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYWRqdXN0ZWRTaXplKSwgKm1f
Z2VuZXJhdG9yLmdldCgpKTsKLQotICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRo
ZSBjb250ZXh0LgotICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBhZGp1c3Rl
ZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBv
c2l0ZU9wLCBkZXN0UmVjdCk7Ci19Ci0KLXZvaWQgR2VuZXJhdGVkSW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2lj
SGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKQotewotICAgIEltYWdlOjpjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyhpbnRyaW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LCBpbnRy
aW5zaWNSYXRpbyk7Ci0gICAgaW50cmluc2ljUmF0aW8gPSBGbG9hdFNpemUoKTsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgK
aW5kZXggZDI4ODcyYi4uYmVjMzQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC0zNiwxMiArMzYsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEdlbmVyYXRlZEltYWdlIDogcHVibGljIEltYWdlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyYXRlZEltYWdlKGdlbmVyYXRvciwgc2l6ZSkp
OwotICAgIH0KLSAgICB2aXJ0dWFsIH5HZW5lcmF0ZWRJbWFnZSgpIHt9Ci0KICAgICB2aXJ0dWFs
IGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKSB7
IG1fc2l6ZSA9IHNpemU7IH0KQEAgLTU3LDE3ICs1MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QpOwotICAgIAotICAgIEdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8
R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgICAgIDogbV9n
ZW5lcmF0b3IoZ2VuZXJhdG9yKQotICAgICAgICAsIG1fc2l6ZShzaXplKQotICAgIHsKLSAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QpID0gMDsKKworICAgIEdlbmVyYXRlZEltYWdlKCkgeyB9CiAKLSAgICBS
ZWZQdHI8R2VuZXJhdG9yPiBtX2dlbmVyYXRvcjsKICAgICBJbnRTaXplIG1fc2l6ZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRvckdlbmVyYXRlZEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hYTFmMDAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuaCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAi
TGVuZ3RoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBHZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoKmNvbnRleHQpOworICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihj
b21wb3NpdGVPcCk7CisgICAgY29udGV4dC0+Y2xpcChkc3RSZWN0KTsKKyAgICBjb250ZXh0LT50
cmFuc2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKyAgICBpZiAoZHN0UmVjdC5zaXpl
KCkgIT0gc3JjUmVjdC5zaXplKCkpCisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShk
c3RSZWN0LndpZHRoKCkgLyBzcmNSZWN0LndpZHRoKCksIGRzdFJlY3QuaGVpZ2h0KCkgLyBzcmNS
ZWN0LmhlaWdodCgpKSk7CisgICAgY29udGV4dC0+dHJhbnNsYXRlKC1zcmNSZWN0LngoKSwgLXNy
Y1JlY3QueSgpKTsKKyAgICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBtX3NpemUpLCAqbV9nZW5lcmF0b3IuZ2V0KCkpOworfQorCit2b2lkIEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3Np
dGVPcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICAvLyBBbGxvdyB0aGUgZ2Vu
ZXJhdG9yIHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBm
b3IgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgIEludFNpemUgYWRqdXN0ZWRTaXplID0gbV9zaXpl
OworICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OworICAgIG1fZ2VuZXJh
dG9yLT5hZGp1c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5nKGFkanVzdGVkU2l6ZSwgYWRqdXN0
ZWRTcmNSZWN0KTsKKworICAgIC8vIENyZWF0ZSBhIEJpdG1hcEltYWdlIGFuZCBjYWxsIGRyYXdQ
YXR0ZXJuIG9uIGl0LgorICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKGFkanVzdGVkU2l6ZSk7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gRmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgaW1hZ2UuCisg
ICAgR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4
dCgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgYWRqdXN0ZWRTaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsKKworICAgIC8vIFRpbGUgdGhl
IGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgorICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0
dGVybihjb250ZXh0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBz
dHlsZUNvbG9yU3BhY2UsIGNvbXBvc2l0ZU9wLCBkZXN0UmVjdCk7Cit9CisKK3ZvaWQgR2VuZXJh
dGVkSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lk
dGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKQor
eworICAgIEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhpbnRyaW5zaWNXaWR0aCwg
aW50cmluc2ljSGVpZ2h0LCBpbnRyaW5zaWNSYXRpbyk7CisgICAgaW50cmluc2ljUmF0aW8gPSBG
bG9hdFNpemUoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTA5Y2E3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKQEAgLTAsMCAr
MSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdlbmVyYXRvckdlbmVyYXRlZElt
YWdlX2gKKyNkZWZpbmUgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2VfaAorCisjaW5jbHVkZSAiR2Vu
ZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJJbWFnZS5o
IgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMg
R2VuZXJhdGVkSW1hZ2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRvciwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7CisgICAgfQorICAgIHZp
cnR1YWwgfkdlbmVyYXRvckdlbmVyYXRlZEltYWdlKCkgeyB9CisKK3Byb3RlY3RlZDoKKyAgICB2
aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHBhdHRlcm5UcmFuc2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworCisgICAgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UoUGFzc1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRvciwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKKyAgICAgICAgOiBtX2dlbmVyYXRvcihnZW5lcmF0b3IpCisgICAgeworICAgICAg
ICBtX3NpemUgPSBzaXplOworICAgIH0KKworICAgIFJlZlB0cjxHZW5lcmF0b3I+IG1fZ2VuZXJh
dG9yOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZS5oCmluZGV4IGJmMWExN2YuLmI1NDZiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2UuaApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBJbWFnZU9ic2VydmVyOwog
CiBjbGFzcyBJbWFnZSA6IHB1YmxpYyBSZWZDb3VudGVkPEltYWdlPiB7CiAgICAgZnJpZW5kIGNs
YXNzIEdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTsKKyAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJp
ZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMDg4OTlhNi4uN2RmMTM0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBA
IC0xMjYsNiArMTI2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGZyaWVuZCBj
bGFzcyBHcmFwaGljc0NvbnRleHQ7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFn
ZTsKKyAgICAgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOworICAgICAg
ICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBJbWFnZUJ1ZmZlckRhdGEgbV9kYXRhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115002</attachid>
            <date>2011-11-14 12:23:58 -0800</date>
            <delta_ts>2011-11-14 12:37:00 -0800</delta_ts>
            <desc>Render Cross-fade</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>89450</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDYyNjY1Li5mZWVmNWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKworICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZzogQWRkZWQuCisgICAg
ICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmc6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5w
bmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLXNpemluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
dGlsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFu
ICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3RzIGZv
ciAgbmV3IHdlYnNxbCBlcnJvciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUwNTMwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAw
cHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2lmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaWYo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBz
aG91bGQgYXBwZWFyIGFzIGEgbGlnaHQgZ3JlZW4gc3F1YXJlIHdpdGggYSBkYXJrZXIgZ3JlZW4g
Y2lyY2xlIGluc2lkZSBpdC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcpLCB1cmwocmVzb3Vy
Y2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mOGRiNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aHRt
bD4KKzxzdHlsZT4KK2RpdgoreworCXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1h
cmdpbjogMTBweDsKK30KKzwvc3R5bGU+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxk
IGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9yZWQt
MTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8
IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNx
dWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIHVybChyZXNvdXJjZXMv
cmVkLTEwMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91
bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2Js
dWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDUwJSk7Ij48L2Rpdj4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
c2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhY2UxYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4
OworCWhlaWdodDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzwhLS1UaGUg
Zmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEw
eDEwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5n
KSwgMTAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVh
ciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAu
cG5nKSwgdXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRo
aXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCA1NXg1
NXB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcp
LCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9z
cy1mYWRlLXRpbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3
MGY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtdGlsZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxzdHlsZT4KK2Rpdgorewor
CXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKKworCS13ZWJr
aXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7CisJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9
Cis8L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAx
MDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwo
cmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCAxMDAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQg
Y3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBw
eC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL3JlZC0xMDAucG5nKSwg
MCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRoaXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IGJsdWUtZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ibHVlLTEwMC5wbmcpLCB1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcgYi9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjI5NDllMDhkODdkZmNkYzA5ODdlYWVmNjc2OTJjN2ExYzE2YWE1MApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNzYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5BVH0yVjg8NlpaST0+ZjQzNDZM
WWhEYzBKUER1RmlmNCtzeXN0TjEzClo3KkUkNnc+OzlyWlV2TlBATzFUYVM/ODN7MU9SaEM2Yysj
aAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jl
c291cmNlcy9ibHVlLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3OGFlNzI1MzNjNzc0NmM4YTRkMmY2
ZWVmMzJhODEzN2VlMWY0YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTIKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEQrOXktdThLP0hLKDJfVmkoYG17Cm1X
TzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0tiTGgqMn43WTJqfXcmdQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVz
b3VyY2VzL2dyZWVuLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzOWIwZDAyZDM0MmJiZjFlZGQyZWJiY2MyZmY0ZmY4
YjAzMmUxMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzQKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB2cF5BVH0yVjg8NlpaST0+ZjQzM3xGWGhEYzBKUFdhKWtBYHxLbi1eIXFgCldlJSRpbik0RlYr
QiFqMWBwVVhPQGdlQ3dTU2BwbTwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAucG5nIGIvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1
YmJiZTVjNTc2MGQ5MDVkYjRiZjAxNWI1YjdmYWEyNzQ2N2M3ZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEU1
bTtWbGVoeWJmTHN3ejdzbjZACm0kPmFuSCoyTWBUSnh6ZlF7dE9KUDYlMzVjTmVAYlpAKGlBP2Vs
RntyNX1FK2BuaUZJSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcgYi9MYXlvdXRUZXN0
cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDRmOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcKQEAgLTAsMCArMSw1IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2
aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBz
dHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InJlZCI+CisgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZWQiIHRvPSJncmVlbiIgYmVnaW49IjBzIiBk
dXI9IjAuMDFzIiBmaWxsPSJmcmVlemUiIC8+CisgIDwvY2lyY2xlPgorPC9zdmc+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
cmVzb3VyY2VzL3JlZC0xMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMv
cmVkLTEwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmEyYmYzMTIxNWUzMGNmYTc4OTBmZTA2MDQ1OTFhM2Rl
ZGVmYjE3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHZwXkFUfTJWODw2WlpJPT5mNGlGbXA9aERjMEp7JkRgbWh4cm1gM3wzOXAKYSRIaDQ1QE52dGkr
S0dpZ2M/TTVjS2JMaCoyfjdhNFJ+Nm0+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcgYi9MYXlv
dXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcz
ZGQ3NThhZGY0MjRkYjgyOWNlMzM5N2ZjOWMzMWI3ZjRhNDVlZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WD53
ZzlZJHchPiNLKDJfVmkoYG17Cm1XTzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0ti
TGgqMn43YWwxYD8kSgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMjRjMTNmNGEyMDg0
MmFiMmU5YjQ1OGFjYjc3ZDJlZGQ3NDQ2OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQzMzcK
emNtZUhPZHB5KGFgYEAlIUEoVCo8ckd0N1okREcyZjZNOW5nRDNRWSlOOyVIP1lAP0QmcUV6SHFz
WmBGeW9GX3R4CnpKY3diMjx4RTJrK3Nyb0trTFE9IT4tK291e2B+IyVlWkJTPHlJcjVfelY3Uk9V
Kz9SRS09RGNfZGReVUleVWxwNgp6NUo+cDYoYUZDK3BiYztraHxkRGI0fiEpRi18eiV9OVBtQTU7
cD0kKXMtdnJxcEY3QSZgLStwNmdYMn44dEQ1USMKem4oQThpJTM5am1fViNLanN6O1F5b1JxSkEt
NDNZJnl1aDRLb0c/OW87c281KDh8fiFtYmA9QikxVj4mTmFQMlNeCnpYWkshQiVfbTE2eShZRV5h
czhwazYqSiF4REo4QyMlM0NmXllUJE1tQ0JKZEVQSE5hZyFRPjB7TTVCK14ybUJJMQp6RUN+cXAr
KGRedzVeZk47cilTQGhIPlMhTHI2bkladDY7WEZqOC13UUdfOT5MSGY7TlIkP0l+NXhSUXdZTUto
RTcKelRJUSE9QHFzejh0O35zbyU8RV5QWiVoMlMmayFsblE1WkIrR2B8SmI7TzBBeDk+YClsYnx5
VSQ1fVRFUVMzZyQmCnpCdX08ez9yaTx0Y2lVanMtSS1Kc18xWUY9QUIjLUxDYj9AYFh2WVpoe2d+
WlBvc09zQGxRemB+KUVfXjNyV0MxXwp6PXNZK3QtMkUqPWR7fC1NeUdNJUF4Pj18R1FYMDgocyEp
aEpFOVl9XzR3ZTcqQGtEYVltfXJjOSh2RVgmcTQpYWIKenc4SzJfa0FnWnM+WjdFcGorTGYqVDQp
U3FzQUc8fD84ejB8UzJaXjY+enFpcm52YEk5VkMhQylKKFVnQGFARXxOCnpNK0c8Qk8mYVo+RVNO
c1pQZHxiYHFHbVppTEB8OD1uTnExPXFARlFZRDZiK0FBSTF2fHNVdEVFYllZUn5EJXpzPQp6eV4p
fHR2cmB7bkZgV3hta0IqdVhpTmheI2NHckNoSUlxOUs9PWhCWEdGU0V3SzBHZERwWEIpSUo+Nkpo
aHkwKGYKeitNUnRiMVFsdl4+RmtleE58Ny1QWShpfSp3VXQ9M0RsRFpBRX5rPDk1Kn0xO2tGM1hL
YmYyZGJNQCpDI1pjQ0VKCnpgcXt0RUBFfmlKalUtRkVYOSteanYrcz0qN307TF5Wc2hnPSFCMWx9
Jk1ibEhDKWxkYGN6VW5AUnR1cj4+eyhtLQp6QTh3bVhBfC0xUkBaVWR3PigzR1U4dCEhbmsoRmxG
KChyUnt5SyghfWx+VmtAI3A0WjlPS35iRUV+aSVTSWglNCUKemQjPX0xUD1QPC0jPzxIIVliQW19
VDFCJUJuTmJHS1FTeyNacGpMQTZST3FoUllQRCh2M1d2VTlwR21DbHhINlRZCnphKFN3djw2LSZC
ZzVieG9MPE9xZWdaSkJaNmMkdCRWOWNRaEtmSDh3YExvRV4xaGlxVmA/LVlxanF4Kkx3Kio3KQp6
PFF+Mm9vOEBwUiZnOUBgXmZNdmIxZmtQO01tPnU4STxiQHVDMXpiVnFzfU5GP2ZFfUVDIXw/KlE7
TTF3YEU3VTkKendEfkFYSzNEU18tanA5fGR1VkRxUUJGNHY3eWVMKD0kTkREWmVKZGFGd1l8VERx
Nnc3NihVKWs+ODxaT05uXnVVCnohTjNlQXxHVjlyeUp9eWNSNiFzKD09OH5CN1hyWik1LVJVV0tx
fkUqOVFOZE15WnVMZV9vJmV6O3d9d1JzeXAoTAp6TkF+Uk4/MWx4SXJpVXZxNHV3aj1sRSkqP3t5
ZC1qX0UmZiFYdFBzb3FPcHU9O3ZAdlVeWjd8cChJcD1nekV+bXwKejxOQjxZI0lqcm92fXZqekp3
c3pwYCZEJXp4QFU1JHNGJnlNdzMyUnV6PGR5PkM+JDlNezktMCpwJWQ5a0h2OWVZCnpwSy1mQWFB
ZkUldGBUSypGaiFVSENIKVQ5bGkoayZ0SXoqLTYhQzVvSDE2SGA8Jnp4ODVHWWc+d1NudVNAbVha
Sgp6YVpJbSp7NkYqbF45TikmZWRxcyNAeXx5KTdlMmwjRjVlTWk5SmdTO3NZfXM9Nl9rcHM7eEIw
ek1Mbl9FZEByfGkKemR9YipRaXA1PTJEMzBUYnFZO1JzdjU2a0E3OHV+bCt5KXQqZWVfKTw9USMq
ZV9aJWBAX2duKmgreHFQSmxmZE1pCnpyd3tMMDR7eSttazhqdlptN1U3dnxEdlFRSm5OanhGMEsk
YHd+NH1JPEEyUj9gT2h3fGQwITw7ZW1fdUhRIyhiLQp6ISRuSWZsPmBpZztjVXZoVSl4bXA9YTVS
aEdEemlxUyk/K2JPajFQdmRjbCZBVkAxJCM+OzdCQXo0dj5HVFRncTUKekpGKDBFWExwPGJiWUc3
QHJNSSloZ1M0fk0md01LPFU8KnZkPm4oOUdpTHVzbnc0fGM3Uk8rUVgrcHcxKjMpN15FCnpvT0Rm
ZXpmOXk4b3RhOEFndlQ8SzshY3w7VyUjdEY+MUNLNm42Y3h5ZkZsUF9ZPCNNU1dNb0s8ZU1Aentf
QVNOdgp6VDVGbStaRHMpTE9QOyFvcndTLShoPlgyeUJBUlNMPiNMO0xJSjlfRGhkejR0JVlNVFBr
RDtSR00/TCRLRHkjWjAKemkjKUB5ODNlcUNEPFJoJW45WCZXSGlIaEtPfW4kJndoM19NTmxyMlUy
KUpEP009Tk9WaWpMcHBnXkk5Y1lETn1HCnpnU29nd3spcjk9KXhDZThvRU5MZFNhd1RIWCUkQX1A
SDJXTERNRGlIeHghOzFJVjhNNG88K3NzV21CYSFKPV9GRAp6VX5XLWNXTD1VcVg8eGohZkk1cWJo
IWx4cVMzVmVPakt5X2luIzV3PFR6dExzY0d7Ky09PFA5fEFOUUpqKlIrSmEKempTSUx2LSVoViZC
QGlpK2M9ezxGdU9CQ01KT2AwRi1vdG1zcUpAclpTcUcyRU1oT2loQmxod2xkTGRSO2hxXzt2Cnp2
M3ZXOVppPTRoOF40OGByT2MrS0YpfkdgJklEfiFyNHhNUWpiVTNgaDlRdyQ3c2F+WF48aTJoSiEl
YSZjRFdsUgp6UkZSRE1GOVZvbWl2UUJ3aHwwOEpUYH4tMjw+V0BIOHh5UHhhP31kQlZfaStldTs8
ZmIoXy1mKXYrXkZLZUx4SVoKempkIWQ9SDFTPXtAcl8yPD8/YyEwbW8xa15sKDU8Y1F6bS1gYlcm
S191ekJBRlEzbGc8T1JKZGtTbnZNRilobnpTCnpUbWxNSFJ5RnRLQVdabUs9SkZUIVUyREtqZHx5
KXdgNVpEK01kJU00aWxKdWV2eihiSD1oJH0pU0syYXpGYkM+awp6MV9IT3xXOXpoYTw9ZzhmTTZt
UHxBKkA5TGFsVzxITj9qUCZjOHBXP0BJJVYyMUoheGZqMlI1QWY/NzJiaEwofCYKemo+NTdEPGUl
VXxENlY+LTBie2w3NCNTTH5NYyFmIzxBSVEodSU3Rmk2PDdpcFduMGspbjRfQU1EMTliKntLKiQ5
CnpZO0dkfUUlfEVFQWJibX1Fc25nQ2soSWtMRDQ+NngpaG59SlVUSiRIJUNeTEAlVkdOTFUkTWxT
MHdOOWk5LVpsegp6M1k3SmFQPE5wV1NTMik5RFU1RzYkXyF0RWlRKEdKKV9YTzV7NjtHY09hPVg9
Q09VQFJKblBpRG05Jj8yblZ+TGgKemgmSz5aRXR5cVYhKXdpKVZEcmBSMS1ZfUFANVV6RikqO0kh
JXN2PD1lOXY+JlZpWXNIdklgPmhIPzF3QHNnPk97CnoteiRDWDxyZDhXbkprKiZDYnM/RW5RKUFJ
eXkwPCVkV1p2Sz5pfEo5aEolRFglOXBfSCp2eyEjJXREND8+eWt4LQp6QXAkezxCOzxMYHJObSg8
cT8rfm8rRjVRSy1HXmpFM3NESjY8TT5ASjMmZFJOcEBVME4pfGM+SVAzWG8rZW9gJSQKekBzM3F2
NDVLMyo1dTYmXjxnQCMhN18kSX5IeitWQm9fJSFKem5qVjw2fEdERSN3PSFgVm8rb3ppaHVNSmAo
bmlrCno5PGBVMXZ8T0MkeWdTPEMkMnZ7cXlZWjwzUlcpUlF1M0dIc0YyKzAxPCpQcHJ4YGJVXmFH
bHw9YCRaKzltKE9SYgp6YUEoQkdaV1FlTzxJYFJMa3VPaVdHPSQmUiNUVFM2V2s/SDJCcSpVZ05E
VytKS1o3eyFnY0lebT0qOT1LKGpuOGIKenttbHpxJX11MFU7cXJQPC0oLShydHwkKWlzajs0fSgw
Pmg0MEZFMFAyd3IzcyNedSlmYDlfbSo0dTFkM1I0XmBDCno2SjReKDBrUjZNQXI9emZGUDEmSGRz
PWhTb0NeP047bVNvST9WITB+ZEs9S2BobmAtMlphdn5VelZHSCl0b1NQewp6P1g/eU9mZ1pZOVc2
Ynd6V2ktbnleSVF4fG0rXzA5bXZRJGpadGxtZSpsVGtyai03O3wtOUU3UWJZR2Myej1CPEEKeigk
NWphU3s3I2IqQ1okOU5wbiYmKlEobiNJJkZtbWU3bUVmcyZxV210ZHpBYVZ8JnFvJl9Cfn10bD1h
YWBLUjNeCnoqbjZyZyREakpNPWhxQE1GMTh3X1VfaTx5YT5yRnpeTEBpR2I3YEshVy1hSHFPTHVE
PVFZQWgxMitgYmBVMmNpPAp6U3B6NmspWiQ5U0pBdSFVZnwzb2t3elEhcHl2SUtDZ1o/SiRoeUMl
S2BEJn47SDNPfCtIfmZMWnduVTNmYVNCNm8Kend3I2lpS2Q5VVpEI05nWER9b25ZVCZNV3NhXnxC
fDE4fl9eIWNMQEk+NyQkc0tvN21JeHYqalFNfTQkb0NSPXpoCno+RDFvamtDYldpY3NuYlZsI2Vh
NTJSSm5ZNFlpSlYkTiV+RG5TPSZoejxncz5Qd1FaI05wcFZ+amRYNEhobTkoeQp6M0phbWU+UFEy
OU95YEtrVlpqME1KViVGQk5GQmlabTQwdE1eMnlEQlFMYXNlTSlle0w5SztDbWF3dWAyRkd6PCUK
eio0JSgxbyhUZGI5KHw9TSlxXm89YDA0cnphSnRPRUBiPGQ7M08teVMjfWhLeUJ8TitHNWlOTW08
blpqPlV4d0xJCnpoKCRpUkhRdDBIP1dsWmEhZmBxUSlBI2MlIWdYMUNgWUtpYHAkdVdmYG1XVjla
K3g+ODR6eWNvUjZncUNAPElVZgp6bFV4MWxnZUQhai1jIV5oNko1ZmFuSnkmSWBXVkZONDxOJnF4
TGlEaDtpKVR5fDIxWD9IRXVRK084O0A5PmZyaF4KemcyYUdGLU1hSmJMckRRK0JYZzREeztOaWs8
OExiN2FyTyFWVFRPP0NkczFhbXt7UmRWajgzPChUVFJGKHhwQ1JgCnp7NVF0fTgrR09EKTVBanRT
RWlWdEwoUFl1Q0ZWI2VIVlgld1NVMXckeDtoPVAjR1V5SmpWSzRSc2tpdkg2PllDbQp6VUBGZlRh
TjItZjhVJER9NXI+dlRFJDBOdVRmYEFuUmZxK1NqV18hMkdgWms0dSh8YGJwfSo+WDlpRH1MOXZJ
anIKengyVXdPQ3stcl9eRjQmWXJKWTkyP2NSZTYwViQjS1hefFgqcyRVKlBpSWQoWjNwZF4pMlFG
fnY4NTl4dVBpJjt9Cno7dXdyajc5UCRSbVkkNGtQd0lASm5CVE8tUDJKfEleNjFzblA4ZH1MJSlx
UXt0UyVKcD0kcFJWZDU8TElhbF8+Rgp6YFlPflJQTGxBTW9RNCp4ZnhtRyE8Zz1QTHchLS1MMkd3
ajhHfWMxYGI9YzlCRH5vVm4hN35EJFRLRT8kPTEyPmgKenxBJmZ2Zz9+aD00cUkrO058MVF3QGgy
fEs7ZEBLdlgyIz5AdSRebGc5KzN6WD9raUxpUF9+VmRkeW9qbWdIKS1VCnojSU9hIUsjP15RRnJV
dnM8IzxwSnBibStwVVhISFY5b0I0Sm9KSkFle3tOczhmR1MpOFRfaSlTRGpMN19rKkhyVgp6QGdG
IXhtaCQoRDZZZWE9VnZkZE1aUnpONVFsJWA/bUhZXzwoaWJqdis1dkhyZkNLRjVBK1NZOE47Kzc0
Y24xRzsKei0jKmdZZjF8YF56RT94QytUS0B+YCMrRF4mejhldXRKQktzP2Jfdjc7fDUmV3wwPUtD
MHFRQ0RiSllvNjgxSjZ6CnpuO201cj00MCtwanF7VG53OTN6RmRVTFVxTThxP0dCU1lPI3grZWYy
THMjNXdhX3JZeWhEej5nPVROR2d0XkdYZQp6PXI7RmE5cUZVemZJaWNYdD58I2d0SjFoVihIY15V
MnIlZlZJTDdLI1hrYFUxYzN4dFFXPSU5TDgqYHA4K25Oe0AKenpBKThTNiV3JWdMbFdRSmQoKW9Z
TzBGY1hFYmg9QHNNQjJLZ2xzV09CTStPQF82PlMtJHstQ0tRM2oyaFdfSVJiCnppbzx7Zz5wYEle
R1lNKyZtNSpuQjVfR0xZR3lfTVRUdGQpTUV1M2l9UG1rTXEwMWFiKipIais5QUNVRlIzfUk2Vwp6
XkRqRTA9aFQ5JEVOMUU9cDZXNHBOK0E3eU9OaUs3aGRZIzMoKzRyaTN9RypnODRpVCFTciQxbFoh
TjQ/PmkoVHMKelVDLUpYckkxRSpXc2hwJndOKFFyV2YyX1FoUyVKSEhlVT8pRW8jTTNpencwcV5v
R1A0VDN6eXI0dHdlXmMyOGFvCnpZUkdmSm1FQyp8cCQyMWVxNWJzNlFBSzM9eWt6eGtCKCpwJSUt
eSZAVUFvfFk/NXpkWUJ3Zk81bHE9cThVQWFlRwp6bH0hOCFuaXZOSmNkKztfKjcrTShnVT1iXnBF
bTg1KD9jK2R4eVdCdmtaKT5pTnEkKiN2e2pGMDlXdmpkTnhaNFEKejEpcEFtdzstUlgoPGF+O1NU
UEZUMSpibyRxRCF2U0FJbihqZXF4QVZPRGU3MFU4NypUaUIoYSEjMT58fUloKSlvCnpqam44KXd5
eTV6alVnbEczRk4rVkpLOERpITtrRXZhJj52VjZnPWc8S0RvfmFBQExMOD4lLVlDTGBoOF84YGB5
Owp6bSN3ZURBYFk7cjhIN3pzRyV9dWdOZUk4ZnJYX1hZWH5iQHtFNTBRalAqbnRaI09NT3N5Tkpg
a1VoKVp3IUVLKGUKei0wTWUmTzxCZC1zPDd9O1NZNXI4OFI0LT83XmBIRk5GUyl2VzxvNW4jV2Fq
Qz5vVF99SnJ6OzVCOT1gWElLYk0tCnpzQWV6YjthYkN7ZUpEQSZld1J6UiozSzBEK3E2Sj90KDcx
eFQ7KXBESDlDIyQ9KWdLM09EPT00eCZmPypQPktuPwp6ZlVJZDs4OGxnRWZZIUh3O3tSTj97MSZA
PUMzUGs9R2dacyRyTDJ5QkhtT1FpeDFzYERnYnhGYjRXWDBka2FKNnYKel5yJSlzLU93YWBKe05f
cm1lbVhYQWQzaj8mUHB+fSVBSzl5RU58NHpacjZyYVc+bXV5KWVFbmNpZG9Bdi0wemJUCnp1SHNV
Wj0pP2UxVW8lRE4rJkFHbTs7QFJZUW5nSnwzVSZ3ZkJANn5JIUY5dDJHUntedyNvblRrY25nMmR1
fCMpQAp6UGYhe3pHRT5TSCMkWFN9Q31FZXJRaWh4MkRjfDNqUUsrY2YqRnRFNy10bjsjQD11ZXBh
ZGUxYV9LdDZ7SzA+VnsKeipJQW1FWktTYGtXbiRVPi1mbiVSMSt1ejxvKHR0TGZPYXRTKjhjVCNF
P2ltNmYoe0FfR0ArdkRfXy0lfV9jNm0wCnplUHVxQj00V2JAcEZLcXNifV5ZP3MoMWdFVXRJX2RJ
Xm14MEpWJVlNQmJvP1pPOSsldyZ7SmkmYFpMfE5SKnQ0PAp6TWl0QHRQaCpLZ0w7YXJUOXUmSjBO
YFR7TTREMnBJdXo3T0QhTyk/QD51cHY8JXB3VngodyR7ayNFQWRDOUpIIyEKeip2dXQ9YSYyVD0o
QmtDbXlyckgyaks4VClCPWAkJXdlamhfc01NRmR4X1o3UTkwPlpkeT9fMH1waG9STHpBdCE9Cno5
YTRZfkN5KGlgRVZjRWwwUEgoTzBWRVFve3E+b2cjP0w/fnkpbnw3MX4wc1VMJTlEO0ttQTF2T29k
Zz94Nz4qQwp6RFNZaD9ibC0qSz9CQ1lfQlNFcT1oRSVUMDRVPThALUAkWG9xUyZEaTZLc1E+ZUtF
ODZYUGk9aWloZFM2KUdSMUEKemRMV2Q0OWFOQlpLRTZHTi1TaiFqMUBqI1F1MEE0YipNJSVwKUpQ
Qi1fYVVGUCZTPW5WQ15UO1NXLVI5djJ9aTtZCnohOyRUXlIxT2tFO3JhNCNyMV5lazxYU2F7Z0Nh
aEpnSDgoKU99T34jVVFMb2ZVNGlQN0FYZm04OCs8VkVyWFFFagp6dUc9QkVpXjRuV1BJMypIQkV1
bkdJczRZLSp6P1dNeEppNGlgeX17JklQeWxSSWFmcmM4ekR4RSR7ZGFyZ15QLWQKeiFqRDtKYXBt
WU9BSyRDc0x7NW83TVdLTE9jeTFAeCtBbn4/ZjliN3Y1ZU82bHhEX1MxYTMlRzlJT3JYMEFKQFBR
CnpBakB9TCl3dmRWNWdDMyNXRTxET0YpKD1ScntXfjhaMmJYOHpLYE9OQSZ8YzM7VUhkR0I2dyo1
RnYzSTJEaWBwSQp6MnB8dzF4MiRwfGs4KilfIXxPej00VkJsUjBreSlARXZ4ZDJDKzdldSVUdXxs
Pml4ZSV7M3tvU0hHbnxrSG1selMKelNVVyVQNnp7Nm08MClSQTt7QU8pJTJUe04jcnlsPmhvXlhY
aXVkPWVBVyFrfjZ6P2k4QClZbXlFY3x5VVVZXlMzCnp5Iz9VQzlOfUdIe3pGPGtJbWVUOEpVUGRF
QUkqREJ8TnIqd2dAX2VfPCp1VShwUUpgITBSUGhtSShfUWckPXVfMQpHSH5zfTVgPUlkdgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUg
Nzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODViZjFhMWYy
YjkwNThjZjIxMjUxNGQ2NzYyMDUxNWI5NGE1Y2ZmNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTE1NzEKemNtZUkyYCNhUno5Pj4zNUdjbE5Rbl9TQTFOcDRZJFlvd1MrRjU2fEsrX0p8b00kSkts
YzlnPytseWkjUW1HJSV5CnpySlk9Jml4Zyh0KFFkYjsyLSF7e3gySjgoTTh3WTRTP1FRSHxHO19u
ZSRNJitHfHptVkBCNmRYZFZrbVl5dytPSgp6X1l9azNhaXo9fTgzYUxBSXk+IyRqVVdVbmY9S3cx
QnRlQSNPPnp8WSolPDVLOF9QYnhWVFoqV2p6RE5eT0RraVYKemk3REhoTGtrV3p2antiQEdCd2A5
MntwRmxhRHQ3NHdfS2lVMXpOJjd1RHcwTysxe1NZaD5pXjloSTBAazRvJXQ5CnpBSiltQkVkSWhk
VXA8KCViLSNrTiY0S0tMQXpyY2VnfTF8ZT5mOEsod1lhbjFzbytYUDBLWmpoQkMlU2tIIVg1Jgp6
JWFNMGRIdUY7Qy1zNiRTYSNwcmRnNjZLRClPNE5JdFN1QHFiSk8pQS0ySEhgZkJ2bk4/JHxLMVdk
NHdVQyZmc1AKenZlKE9fckZyNE9GcnxNQVd2Ymc3RUY1cjRgLWlmTmp3NDtKdm5HREJjNiF5aSo2
YFQza15TWTE+QE5OcHZWdV5aCnorTCZrbEt5JVFxZ2Q2WllSJXhMNylafT8lXlg0fCE3fmU5WXc4
bm5STkglWnFib3ojfnA9UmNFekkzeHhpYH58Kgp6PmdibHx4QzdIR1VwKFBhaElNdG0lUH55YlJf
P0lkWGU3ajtoQ0QwT2gmZXRMU2JhNmBPK20kJmUwbF81JkhZKEkKej5NSVNhemVrLU9NWV9KWDRP
REh8UUZsSmQqSjd5REpraFJBdDVRTHlWZUQtel91S0BCcFlPTChRQ25UPmUoO2AzCnooe1MjbkVh
NFA/dn4lSjtCZDVDOXRqV3lPWitkOGdhZlVjPCslaHghKXZvdlQ0THlDP3hsJSpzSGYwO1Rsande
TAp6QTctTGNOOClwWTwyVG8oY2ZIQDJ2KD53PVpAQkhzaDk0ZHJAdzZwNCooR1BGaHYqR3QrbVZD
Iz48OEU4VCRSLXsKelRgcU5TV0IwX0BTYXdfTTwoezJUY1pfPSF4VD1uK0poUUsrWmcke2YoTSM9
fmpRZ3VvVEpEcy1AU00yQ2RzQVBkCnojOXkwcUlPdVplIU5EemVNKygrUGwqXkpsN2dJLVdJNTlh
dGNfZSVHOUpVekVeMiVSMEVaYzY5X2c0RUdNUEc5TAp6YnM9KzNLVX5IbU1XczJ2PkdfWE9VUjVZ
TyN0djw9REtHTUJZeUN+VCE/an5QcV4+RC0jOyNSJEtGaXFOfDlxcEMKelRWYmx6KUdyS0tVQ0FU
SzxEOyh3akMhUHM/KjA3cjtPfT15Nl43OXBHTVpJcDkxXytHOCUtTiswYEVrZzNAWW51Cno+PGsk
JUhURUNCKk9eXl5AeTV9LSVzJD1PP0hTalUpTXs9dC1ibk4mOFFpP2N7K21sfXRPcjhTaiZSU1BV
WGVTZwp6YTYmZldXYVp7bG5kUU1nU3NuJjVrPjhTO2BERXVScihWTnE+Jnl3bFpMalhITjRiRzlS
QDNAWFpgU190IT9Adj0KenlePjVkIUx0fWNsQGltIyFfdzZXJXVWQn5gIXUhey1OQ1owYGA4dVJC
WkJKRllgbnwrVmgjN0xMK3tDemNOTW9eCno+dn1taG9GcDRweCorLTgyQVNeVzN4T3NHTFBlWis/
JHtIRFBQe1plODJWNmNyKVM2MD05XnxsWnF9dE0lSXVeaAp6KjRQP2RZZD9ffkp6ZWdWT0h1diNM
d2tReDxIQ0E2aE0qRWVsMDIxOzM4YVhOKTRid0EkSXBNM3FYVkJMQnVfU3gKenpDNXVNT21Hei1e
UXlOcmM4Wj9DRiFjNTB2ZnkpNkx5MVBXKik8YGgwMjhzV0ljdH58NkZlbDZ2b2J3RD9oczM/CnpO
P2x3ZiowaihWQkBEQmxDKDFBUDQ8dF9kbSooOCE/fk9CZ00rYHt8M0ctNUtqYzctY21zPWpGIVRQ
WlAkcipKcQp6IUc0ZTxkYE1PLWxEfnFTXnwrKkgxTUpNZUNLZ3Mwa3N4TFQkYj8zI0omeklWVHBe
SXZyVz1WeDArZVpWIXtiTFkKem1ZY15BVU0tTl9ld1FLXmNgUENNQlp0djBXPChUX0orV3ZNOCkl
ZkQwSiUmNCkjXlg1O2p7Vilrb0M1emgoISEjCnpSaksocXdtVS04MXdkeGlIKWtnbjtlZ1NhVHBl
M19uX29JJTMxc2AlMjh1PU16LVYha2FGZyh2MWxLYVktMCsoOAp6emd4SjQ1OWQzWksyQS1+T2l3
UCNFcnk5ZnJBU0cqSGZ1fkA8KCFDRWY9T3ZyWVNhRW5UX3E4XjxKPCpFZH1UQ0cKelQ3O35IQWBH
MjZIaylXNyFZWGYhTmRFNjczaXoxK3c1aDJ2JHRiMEdLQFI8N0BgdFV7Zn1DamVxRyVIO29peyop
Cno8RWtSNVFtZjIxPiUjN1Y5ZzNwZl90R0tfaypQcVZHcjlpbVA9dWxjRWs/MnVCO3xjZzdJd2Vt
Vys0PHdOSnUpQgp6NU9xYTkkajNQVlljNnhHcGZ5Q2AxNnxyKFdGQSRSM2NQYVpqOCt0ZE5UN0Ut
I1hfPEQkNytEPkdnbjVtTD9MOzMKejhlS3gka19UVWwwb1Z7MnhJSzBqIUpiTkdWTUxjRzJ7PVh7
KDZrVCNZXzNRfHJ3YjY9Nz0odSN2b3dZQThTfnxvCnpnRDw2fXFLRFUqckJ5TlQqREFocUwqN3F8
dEJVdHwjUSMlTiN9Uz88SyVDbFU/QGY/YTRrK1EkaV9gKjB0SjU7Nwp6KVk2dHoyTjU3al5qSHtX
LXl0T2sydjN2e2E/fCQpKUtJe2dIclV7eHJpZVE8ZUhNMEYqKzNhO0VASjVKQER7ZnYKenRDbXZs
MC05JlJFbHxVdClYZkBRXyV6Pj5scn4/fkBUU1VrPTNWJUZeNzhoZlN0NjAzWCF3dXw2TGJeRlMr
e25MCnp6fCohb0kxbzNGU2YtMXtFOHRealA1MEdwUH0yOytUYz0oSVB0bV5NZn13bE84UiF3Kzdx
QmpXJFA3OVoyOGlpagp6SXQ1YCgwIVFKJj0penFoaGdmYWAjNGx7bUk7YVQoZHdfdDlQVXo1ZXVw
MF9YfEgpcFlwQFAlJWlOfVo1SyE/bk0KenN9LUt7UDsmd302bExXT0ZCcXpJU2xEJVFlTDFNOTJI
TyRiNng8WWlydHQ5UEwmc3xoa0BRejh3MVVyOTxLMT9UCnpWQWFSeVVWPXpFem85TV9MaDJIUm4p
c0Q3QWYpJkpRbmV+UjVLYHdUR2BkZE1ZTiFFTzVib0AyZUYmVWYwSTg0KQp6SkUlRFRGeTYpdGZF
WmAoNzlpaFYtPlV+VFpVRnRnWTJePyZ1MFdHfU85cEM2SG5LM1lWfjE4bDs1WStGKXAlY2sKejha
JUlPTFg5ZFIjJVZ5fitPMUU0bmt5TEVAbXRHWUk2eGhzZEV9bzBIQlozK2FaXytwQFI+cnptaypK
SSpBIz9ACno3Z3s8X0EwcHtiTTYlaXw7YUxRYyZpd28+MEZHeVQmd311OUptWXU8I3xJcUdJRyh8
NkQzMGVwNzApPTV7fndWbwphdzRKJUNRZWtiK1pVPGpNQmhDKSlKMWd5MiReUW1nKUloVFUKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1z
aW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNmYyNmM2ZTIwZjcyYTJkMDk1MTQxMzI5ZmIzMWNhNTllOTNhMWIz
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTY1OQp6Y21lSE5gIyk1OUEzdFlJajliUG53YmA2
cHctayRVODVKaUlCOX5BfHFqNCQzdk0hLSk0eX1EJEhWcXtqbSlmPFAKemtYI2FTOEIlUCE4PWco
NVI5S2dKWVN6OGNTZDJaQ0lyOShmPi1Gc09vUyk5P3lrRm5UPWxnenJLQS1wSl5GMWZVCnokLSFE
JDt1OHF+MEhrZWdfOGtITTVlTlZYP2oldFpWVitKNUxtJTVCdD11RGgxTj9uWU1NUS1GUjM4JXhn
fDY+bwp6Sz1DczxWTTM/VnNaPEo7TFp8MiU+NmBjJVE7YnV5Y3ZzTz93Z2cmUUlAd3hVTFFkaEtD
anh7MDBVIW9VYXZlQzsKej9XRGtlO2gkZUlseEJLVFJAXktnO3xvOFJOWHh2TVElQ0FNSmxgN0Na
bmVxMTUjcSZjUzA2dURBQCkyaSlVKypuCnpURmgpLU96UWRoKDZnRCs/Rnd8PnR6PWRFSW5fR194
cy0haUUrWTVkSHc/XkFQX0BgMndDblI8ZFVoLTUkfCQoRwp6SUpVSmVKeyhhUG07cV9abWZES30y
aCthVWE2cj08bWclbUZveEMlPGVvSzNCPFY1SHxEY2BxO25JJERWcjN8cXkKejgkTUpXXjAqJThe
KXltYHVzM0JnVShjfCQhIz17amgkeWFkKGo/UzNWZCZjbllGQUVCM31MMnR0NX08YnNhK2p4Cnpr
YHAqTUVCJmw5TDE5RW92cDc+SFpGaX5GQT5DMHd0MTc5dkRWMiF4R3V7PDlGVGNxeFcwTm4wRmdI
Mjs3TUo+Mwp6aDVBKzR3X2B4aGVSSj1QTz8mSXwhYHpMQTNrfWElYmcxOCEpb2Z4PEw8WilKYCFs
bVd3I2pLSXQyZz8lLVpsc2gKejlGcjdEVlVCZj16ak1tMHhKR0hGNzxrTU1rMl9AJUllS2x9SWxL
TXU+WU11ZEdjSmhAOD00aHU+eTN4YFA0QnRrCnpzaVUhKFE9SUI4N2tiX3UlYGBwUy0jXmxFTCsh
IUNYbEhXfjg7aXRyV3h2a2BHYzJVJk95N3FrSm9eb3NSMWZeewp6QnJ3dTd3I3VZOypKcWNtajRO
Qm17T3JCSGo8JGgmdzVvMXlhR35JcE1xaGZQVnAzYWU7V092KXk5c2FWdEteeFIKejxEPSs1N0pl
fmdkflk7JmI0YU5xJChmJXpUNF9WYHxIVSFVeGk4OVNqTnl7Szckdz1JZXxiWFZ3NEEkQ3tqRGgp
CnpaK296V1cwRiM5Y0p0Rm1vditKZWU/YDlCVk9DbjsoJFc1aCN1Tkp8OUtYOGVSSVd3KSMoOVJH
ckRyfSV7YXtgeQp6Yj5AWVdxP1R4T0I0X00oRldvK3xmYC1TKGhXQC1xRCRAeTlPSygtO1RFJVVo
Vml+Wl55bFg+fj18JW1sWmErPzsKem8rcWNGSkVRKmwkfV5XUV9HYGBVTmlVSiNSOGA1VUphP0Yr
VUghZHAoMUFPVmoofl9waChxQDV4PVdMP1VyV1glCnotYDwmV3ZERGBYISU8cnpecntwc1RndFpG
PURBTUF1OFpSJEg3Pm8hI3NhK35zSSVMey1mVWlhenxrPnc2UXlseAp6YDdKXzY+QUZHR2g8SFVE
WjNqb09VdUFiZUV0MFhULT93Wn0yKSNiZD5+THYrcXxWVlRWMXJDKSYkWF9Tbz4lT1YKemMqJlQ7
TWJUbjRpUWQtbHkhOFA5MCZNcn5iJlViWFUrb1AjWlleaSFUcys7e1NXUk9fLSFSJjlBY3BhYjtW
NUJJCnp3RXI1PD5PYnRDbk8+QmVVRkZUb2FYZD18MDB+NEE4RztjWUEoWUpQR0czSDJQc0F7Z3Um
aExlXyorKjhkPkE8dQp6TExpTHYtJn0mJD1Ba2UjSWJQKUJEbDNFSGF1SHpPRDlBaW5YZCY/VDBp
aWQtZkY9YTlGMShPWU1LfUl2MGdVakIKenV7V2ZwUi1EOExFdTFfNSFNZkUheWtXKXI/NFFgP28/
UHliSWM/ZTZpNylxWUdIUU1qO2hhZC0pUyp2UCkpcXVzCnpUdFFIdWRtPklyY280eUY9dG9uYlh+
aEpCLWBmdEo0dDU7TGI7TClsYzJWalc7KHtWaWJFbDdDWFdTcWBWa0JrMQp6d1pWYFpDe2s9Wis8
PSs4THhCdVE+aEAke2hgbk9Xb2NWVlBEeEYyTiUxUHwjcElmKHQhZWNMIWJoaXI1VXFPU0IKelRn
XlVWPkhfMypZWiFUYVB0d34kSy1scG4xbmBKJlRXXkNRPT9ISyZMVyVWP00hXntudG0zREIlREBu
MWxvWW0zCnpvSCN9YjdvfWlIYVRrT2tSMjFudiMqQFArO0doKXpzZUt5OGtPKDYyUUNgRTgyMVlA
ekIjRlUyQCZ8JDtWPFp4VAp6OGEtcihRRSZfT0NyPGVAUCtaX3JrN2RiRiM2KVloMDNmXlRMVTZC
bHJISV4kVGRvP0ZxWHl2dztSTE5aMU1XZTEKemheXiVsSk99KmBCPFU4RmF0R2YwXm42Zyg5dkxG
YmpJfH1XNS1VTWtqKUtpI0VHS1pZSyU3OD01KHRMaHBIM0E+Cno4ancobikrQSpgQSgtJXh5aWoj
b19tZWd6U0gjei1LLVUpMyRPPVJTM1BZN2dOeDZLQG5iNnJXKzdTSHUlIX5hMwp6TU1ZWXlWOGtu
fDVmZns4dW5ZbGtnSyZtRUkzKF52YyQ1aUo2UH0wZyNRMykpTXQpdTYhalc9Ujh+SHMwQDNYUHEK
emlPbDs3P1JzWXhDU0ltczs5P0hpZShSa3YmaytiQCVjTUxSWU0kKU83bEpPTD9YXm5iYH0wRWMl
c313KFQmbV5ICnp2aU1TMEdrP01OVWpmVTUmSFJeVllpamJCRndKJkFtN1okMlRPSmM9Q3EqKmtN
KjlecmshKnN0cH5YWDIxdCRYJQp6TilWdVUjP3dLRl9IN1hDQWwtJG5PTEFSRHc4YG9WN3Blc3Um
PFl8Yk1zdXliZ3k4R2pBLUpVUmlxUEkrWHUwNj4KenooNWUmQWkpZzs0fl5jPDZXWkdhTSlFIT41
SGp5M0klI3xQc0w8WWRYbDMkciR7c1RoYzdxWXUqcXZJfi1oPTJwCnpMRDRyU2gwSDQ8NVB0YU82
amY7TkFfVHl4U3ojV2g9QSYycW13OFJYJTd0UXtoO1oxRTFIXmdLSGc+JTxBPHdwZQp6NW4+N2A8
ayZrd0BKWiZ+WUB3aGNsY0J2blNhY3c7OWdJfV9qY1peS0w/cWZVSGUlTnkoNyl4IyZgeXVETFYt
dkUKekt7PDYlcCpYQlk9aXNLYHRsKyt+KChkOUIxbWsmU15gajQtWjl4TEFMOHVfKCUxazhUTUZM
dGU7aVZKI0E2cTBgCnpZUDNpSG5ofEhPezBwI0ZBTERfSTJsaV5pZyRNUk9IP1ordyM9Zz93RHZo
aTM+WGowSD9TckBTdDcrbD9AYF5CRgphOE1JKDRtNW5MN3h1YnRxMUdaS1VgKSpxdFB5N3IwbCRr
UkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1zaXppbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIxMTY0NzAzNGRiOGE1Y2FkZTNmZDQzZDgzMjdiNjI1Njgx
NjRhOQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE4MTUKemNtZUhOYCZVeX03UVF6YDUmfGtn
M05sZz85c3d4fGk+RXduaHk7YFhAKGA7aUctKEpSajlfPyNmfF4ydFdyfFBACnpwY1Y7RiNtWG9K
MGpvVGVLb098WjV2VUBsTyViUk5pZk5HWWp0eG1LTExrJEJWM3NyWXI+eUw/JnAhS315VStLMQp6
YDwjMHd6O0V3KiUtPThvMElhOFlkRiUlT0g5UDx5ZzM7PWJoNXU9SzlRMCRzQChnQSVxOVBjXzV8
ZCY5ZHh5d3kKeiRIKmBUZCZsckYyN1Jaa3FmP2otIV5TMyhaV2tGQU10OEU2ZUlfQDlxSEsqT2xM
SUpaR0NtLUk4NXRjRDBSU21yCnojKH18T3kjYyFOcENYRURoTz1GY1Zse3xTeHlRcVVTbWRIUiN8
fH1oOWVMJGdaeyReWUVqRTxqWCh+eXJLfFJsQQp6eF55Sn1qdmA3P1RGKn4yUHZ4IWUpVEorY2xX
RldiWE1DJXEoMC1xSmtYcXlYLTloUHV2LSNLdndNLWcrcSp2RV4KenF3WXNSe3ZCPHlfN1VCfERV
ZlBOd3Y8S2YlbD9PK3g3bDlPI0BAT1V1V3dDbip4REp4bnFVckEke0J0OWkoMSU4CnpMJWlVRUwl
Wj90O2otd15DIyszRntieWJtK2M+bSFgNmRRZUFUQEFEb3RPO25AUncmenpLWFBXQW5gVFlQI3h8
cgp6SmBFKE5PVkxCcT56e1JWYnd8dzJ1SUV7MEAyZDNOWiNeM0JTKkpCT2lBeXteTVhVTWVoNEkz
d0czflJsZDtgQm4Kej81cjAhPWc7RTQ2YWp0VHh6UlFeP2B8bEwzd0NeMj92VSE8V209NmpZYVd8
bU1QSEljQGJlRV89bnhEfD99Wih4Cnp3dV59dFh7dyMhaStVdzkwZUxtMF9BVH55aG9AZ2sweGx4
T0hYWEJiSzZfQEdueDZgRCYhYipDNUd5U0QoQDY1Pgp6YFBxYzUoR3opLTslflF9P1ZBYjdiMiVz
IWomeGwheCE7fX49JShpN29fQHxTZUFgZzJ5QjN8I1h1cS1HdDdsO0IKemVmNG9QPiVmVVJyKyhM
TT1mOUV8P29JZ0BaOUBaOVojSlpeVlElUDtrXiNjZ2JOQWxNPSVfRCQ3QVUjUjlkRH1KCnojTlUj
Wk1FfDx7YDAmb2coWlZnVW03M140ZERkdkg3ZDdHc3xNYkE4TnNna05wbk9AOVd7PlRLM0JzcDMh
Q0ZuPAp6T2l+djxoezU9MD0ocHYhSmJCUmxxNisoT1BXKk9hV2wyejE9V20zXnpLX00+NEp9IS0/
d3k7WklYMmBZI1JBaVAKek1Pbl5NS0x1IS10MCQrNk1aYmh2S1NoPD9lZmFWNG4/YGglUmY1VTZI
dkwmb3ckWUAoUEMlczlHYylOR0xQMmwxCnp4WkxLNV8tPTEqKTBOdGo3a0VQUnhldzNYKmtuKndF
MnZGOWhfP0xwM2docUl3XjtzdzhYP3YlZXxwe2QqVnhaQgp6Kl9xV2wmaFJTMzQoMGU7VndlUzUp
Tzs8PE98UiF4SExnNX4rTVNeT2s0NGU2TUNhKWI7Pk5jdS1XT1ojezc5V0AKeihFMkZSTzI1bzVY
KykhalAyRGJqUGwoJTlRcVJlQzYqOChtakhOZWE2QXhBalN5bXhpIU1odFBgJH5JbV5iTCVTCnpx
LW15PCVoYSElVkVXckcoYCozJTReVFhJQTRtWnUxQSlpT0k8T2chb1draDhaVTNTQlNwaGoxc0o3
QTx5LUcrYQp6ZWpeO0g1T013TT5+VzxuaWd7fVY3RWpeO0FPZVpqIyo+Q25OY3AwZytrS3Zqam5q
JWxBbGhsaldza1M2c2xGdFIKeloxWmlMJExjXjEybHpkQz9IfEMhWlBMY08/VUE1VnFUQC1qX2Zf
SCFlVUMmdzswNkElYHxacmpXNnwxYXNISHFzCnpBfSFjfTsxdUlZc2BnNUhPWGlrUEVTdD5eZVNm
cnczQFV6SEdgZCM0SXpYQF5QN2p+PF5UQFB0S0VDeTlqQGk4QAp6RUlzQU9SeFhHM29lUFBEUjJy
YUFifDdlKlh6UklfSHNsMDIhIz5JZGgxVW5KamttUGA/K1h8PVIhfHduZ20oLVIKenhVQCpke3At
QnBBeyFMfm0qKm1tZj5UbmRsIXUmJlFuOEI9c3EybSVrSH1OJTBTPkByViRlQkUjRzRgJlF6SGlg
CnoycWBkQ3ZOUitjM0s1OHJMSnJZPCZHZDtDbytMVkdybENVUypFb1JHdGdKYEhiVihEUCh8RDFo
bDdQU2hQWkRWUwp6bnk2d0RBclJxek97cituPVR7c0tIK1Ywck19WXdxP3UpZGB1WThxYnhLKnUo
SWtJP2VrSG1wSnBPMjFlWXgldEkKekB+WCU8MS03SyR1QWU1VD1sfnYrSkAlb0tpc2NqdCoxPGtY
OVJSTm5UcFA9cDlOcmYmWlkpOzxqMHhgPUNiYUQ4CnpSIUE0VkZJQ2pLNSFRSG1zQzIxbUUtZnVw
Izg3VWtAYnsxcCNGTWp4VG9xRDhSem5UQCNqQS0qVDdXMlpWTHlxKAp6cmk4Q2AmO1p2RzFRUTcz
aER0SnEjdFU/e0BpWk5TKXZnfVczKklEN0Q4PU9xNi17Qmk0KjRNOEx0UTB5Z05gPS0KelArcXJA
TzBHVzhhbGxfdz5YczhgY3N5UkV0TWdidVlmQ157PUorPHsrKzN6KyhZZ2w7PTlITUpramBabyMr
Z3FGCnpaemBIeUE1dkQ7MENFRlRoVW97ZG41YXlBTmR1aXphTmFeMDEkdSVGKDFYSzEkYD04ejRf
cTZ8d0UqdTY3Jm4kTgp6OUw5dXE0SE1YR3hxTDhZcmwqMlBCK0EqWHJTY3QhejJlMT9pSFI/Q2x1
U0xOQXhvR3dSZ3xDbDQ/Yl4oJklsQCMKej4jMktJU3MoOTU7PFEoX1hSTEFQNDBMR2xWJko1fnMo
Um8kZnVLJmtqPXImeU1EUmFhO3o9aXkjU3Y+JXswa0U0CnpefE48cT1CZz9uLVEpbnsxNkJFSmNM
PHIjdHdPd0l5d01zckh6Tj5OO2JoUi1AWDlPfjU/bkpZeUJGUn4laXNnIQp6JXJZIykyKXNmKXxN
VDJyayFkPnkwR1FLRC12VFRWQn1AJTRITlpqKGZDMkZUMXByfnRnTF4ycnlMQH18NHVjKkgKZ2Rq
R1pLa3A8bDUwa2I7O25MRkV8RlRWa2JyPUxmKWB6UHN0MHd7YlgtVChqcQoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1h
Z2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVyIGF0ICgxOCwxMCkgc2l6
ZSAxMDJ4MTAyCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMngxMDIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwxMjIpIHNpemUgMTAyeDEw
MgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEwMngxMDIgW2JvcmRlcjog
KDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNpemUgMTAyeDEwMgorICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBz
b2xpZCAjMDAwMDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNzk0ZTIyLi4wYjlmMzdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsOTMgQEAKKzIwMTEtMTEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUo
KSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlciAtd2Via2l0
LWNyb3NzLWZhZGUuIE9ubHkgY3Jvc3MtZmFkZXMgZW50aXJlbHkgY29tcG9zZWQgb2YgaW1hZ2Vz
IHdpbGwgcmVuZGVyIGZvciBub3csCisgICAgICAgIGNyb3NzLWZhZGVzIGludm9sdmluZyBnZW5l
cmF0ZWQgaW1hZ2VzIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgIFJlb3JnYW5p
emUgR2VuZXJhdGVkSW1hZ2UgdG8gYmUgdGhlIGJhc2UgY2xhc3MgZm9yIEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlIGFuZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS4KKworICAgICAgICBBZGQgYSBw
ZW5kaW5nIHN0YXRlIHRvIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUsIHdoaWNoIGlzIHVzZWQgdG8g
ZW5hYmxlIHRoZSBwZW5kaW5nLWltYWdlcyBsb2FkaW5nCisgICAgICAgIG1lY2hhbmlzbSBmb3Ig
LXdlYmtpdC1jcm9zcy1mYWRlJ3Mgc3ViLWltYWdlcy4gUmV3b3JrIHRoZSBsb2dpYyBpbiBDU1NT
dHlsZVNlbGVjdG9yIHRvIHN1cHBvcnQgcGVuZGluZworICAgICAgICBnZW5lcmF0ZWQgaW1hZ2Vz
LgorCisgICAgICAgIFRlc3RzOiBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5o
dG1sCisgICAgICAgICAgICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisg
ICAgICAgICAgICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAg
ICAgICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ2FudmFz
VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbnZhc1ZhbHVlOjppc1BlbmRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FudmFzVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAg
ICAqIGNzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9z
c2ZhZGVWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZh
bHVlOjpsb2FkU3ViaW1hZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnN1YmltYWdlSXNQZW5kaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRTdWJpbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpj
YWNoZWRJbWFnZUZvckNTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZh
bHVlOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3Jvc3Nm
YWRlQ2hhbmdlZCk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0Nyb3NzZmFkZVZhbHVlOjp+Q1NTQ3Jvc3NmYWRlVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
cm9zc2ZhZGVWYWx1ZTo6Q1NTQ3Jvc3NmYWRlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Q3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZU9ic2VydmVyUHJveHk6OkNyb3NzZmFkZU9ic2VydmVy
UHJveHkpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OmltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGll
bnRWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1ZTo6aXNQZW5kaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OmxvYWRTdWJpbWFnZXMpOgor
ICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdlbmVyYXRlZE9yUGVuZGluZ0ltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdlbmVyYXRlZEltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmlzUGVuZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1hZ2VzKToK
KyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNyb3NzZmFk
ZSk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
dHlsZVNlbGVjdG9yOjpnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcyk6CisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2U6On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd0Nyb3NzZmFkZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3Jl
OjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29y
ZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmltYWdlQ2hhbmdlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlU3ViaW1hZ2VP
YnNlcnZlclByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eTo6c2V0UmVhZHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0ZWRJbWFnZTo6R2VuZXJhdGVkSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdl
OjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3
UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0ZWRJbWFnZTo6Y29tcHV0ZUludHJp
bnNpY0RpbWVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRlZEltYWdlLmguCisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZElt
YWdlOjp+R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2U6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBlbmRpbmdJbWFnZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUGVuZGluZ0ltYWdlOjpjc3NJbWFnZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUGVuZGluZ0ltYWdlOjpjc3NJbWFnZUdlbmVyYXRvclZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpTdHlsZVBlbmRpbmdJbWFnZSk6CisKIDIwMTEtMTEtMTQg
IE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV0dXJu
IG1vcmUgY29tcGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBm
MjNiMTcwLi4xYTMxMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTksNiArNjk5LDEwIEBACiAJCTJCRThFMkM3MTJBNTg5
RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBI
VE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJFOEUyQzkxMkE1OEEwMTAwRkFENTUw
IC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFD
aGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNW
R1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJENDgxRjAwMTQ2
QjVDNEMwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NDE0NjBDRDZGMDAyNjM2
MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OworCQkyRDQ4MUYwMjE0NkI1
QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAv
KiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovOyB9OworCQkyRDQ4MUYwMzE0NkI1QzY1MDBB
QTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKKwkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3
ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuaCAqLzsgfTsKIAkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8q
IENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1
ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4
RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi87IH07CiAJCTJE
OTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNDBCRTE0MUQ0MDA5NTY5OTgg
LyogTGF5b3V0U3RhdGUuY3BwICovOyB9OwpAQCAtNTI3Nyw3ICs1MjgxLDYgQEAKIAkJQkNFMDEz
OUEwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2MEEgLyog
SlNTdHlsZVNoZWV0LmNwcCAqLzsgfTsKIAkJQkNFMDEzOUIwQzBCRUYxODAwNDM4NjBBIC8qIEpT
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNFMDEzOTkwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5oICovOyB9OwogCQlC
Q0UwNEM4QTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyog
R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTA0QzkzMERBRkY5
MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJCUJDRTFDNDFCMEQ5ODI5
ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi87
IH07CiAJCUJDRTFDNDFDMEQ5ODI5ODEwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQxQTBEOTgyOTgwMDAz
QjAyRjIgLyogTG9jYXRpb24uY3BwICovOyB9OwogCQlCQ0UxQzQzQjBEOTgzMEQzMDAzQjAyRjIg
LyogSlNMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0UxQzQzOTBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgKi87IH07
CkBAIC03ODAzLDYgKzc4MDYsMTAgQEAKIAkJMjlEN0JDRjkxNDQ0QUY3RDAwNzA2MTlDIC8qIEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7IHBh
dGggPSBwYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJz
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSFRNTE1ldGFDaGFy
c2V0UGFyc2VyLmNwcDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyog
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTYxNDYwQ0Q2
RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVy
YXRvckdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
M0EwRTM1MTNBN0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGFyc2luZ0Vycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJEOEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDcm9zc2ZhZGVW
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRCMTQzRTNFRjcw
MDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTI1NzcsNyArMTI1ODQsNiBAQAogCQlCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNT
dHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0
eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UwMTM5OTBDMEJF
RjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1N0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNF
MDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2F0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFDNDIyMEQ5ODI5RjIwMDNCMDJGMiAv
KiBMb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTG9jYXRpb24uaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMTIsNyArMTkyMTgsMTAgQEAKIAkJCQkzNzIw
MjE5ODEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01vZGUuaCAqLywKIAkJCQkzNzg0
QzM0QTBFMTFBQTM0MDA3RDhENDggLyogRm9udFRyYWl0c01hc2suaCAqLywKIAkJCQlCQ0U0NDEz
NTEyRjc0OTBCMDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFudC5oICovLAotCQkJCUJDRTA0Qzkz
MERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCisJCQkJMkQyRkMwNTQx
NDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQky
RDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLywK
KwkJCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2Uu
Y3BwICovLAorCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZS5oICovLAogCQkJCUJDMjNGMERBMERBRkY0QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJ
bWFnZS5oICovLAogCQkJCUJDRTA0Qzg5MERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3IuaCAq
LywKIAkJCQkwODZCQkQwRTEzNjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCAqLywKQEAgLTIyMzcz
LDYgKzIyMzgyLDggQEAKIAkJCQkxOUJGRjY0QjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5QkZGNjREMTFDMEYy
QUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NTAyQUI0ODBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDQ4MUYwMjE0NkI1QzU1
MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODUwMkFCOTIwQUQ0Mzk0RTAwMzc4NTQwIC8qIERPTVNWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI0
QTBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NTAyQUI5MzBBRDQzOTRFMDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNw
bGFjZW1lbnRNYXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNTIsNiAr
MjUwNjMsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0g
KAogCQkJCUFEMDNBQUZBMTQ2ODQ1NTMwMEEzOUI1QiAvKiBDU1NWYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkyRDQ4MUYwMDE0NkI1QzRDMDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ0ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8q
IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1QjVEQzY5
MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxRTFCMUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5NEUgLyogQWNjZXNzaWJpbGl0eUFs
bEluT25lLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU3ODcsNyArMjU4MDAsNiBAQAogCQkJCTk3
MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFy
c2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5M0YwMEIxNTAwRiAvKiBH
Q0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNFMDRDOTQwREFGRjkwMjAwN0Ew
RjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFODBEN0M1MEU5
QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNTJC
RkNFOTEyOEFCRjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNTZDQjIxMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ2FudmFzVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCmlu
ZGV4IDIzMmE1MjUuLmVmYWQ3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YW52YXNWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCkBA
IC00NCw2ICs0NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRml4ZWRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCop
OwogCisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZv
aWQgbG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciopIHsgfQorCiAgICAgdm9pZCBz
ZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCBiNzcwNjlmLi42
M2I3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAgLTI2
LDggKzI2LDIxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRl
VmFsdWUuaCIKIAorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKKyNpbmNsdWRlICJDYWNoZWRJ
bWFnZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuaCIKKyNpbmNs
dWRlICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorQ2Fj
aGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4sIFJl
bmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKK3ZvaWQgbG9hZFN1YmltYWdlKFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+LCBDYWNoZWRSZXNvdXJjZUxvYWRlciopOworYm9vbCBzdWJpbWFnZUlzUGVu
ZGluZyhQYXNzUmVmUHRyPENTU1ZhbHVlPik7CisKIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6
Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdCA9ICItd2Via2l0LWNy
b3NzLWZhZGUoIjsKQEAgLTM4LDE5ICs1MSw4NyBAQCBTdHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6
OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUludFNpemUg
Q1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQorYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKIHsKLSAgICBVTlVT
RURfUEFSQU0ocmVuZGVyZXIpOworICAgIHJldHVybiBzdWJpbWFnZUlzUGVuZGluZyhtX2Zyb21J
bWFnZSkgfHwgc3ViaW1hZ2VJc1BlbmRpbmcobV90b0ltYWdlKTsKK30KIAotICAgIHJldHVybiBJ
bnRTaXplKCk7Cit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjpsb2FkU3ViaW1hZ2VzKENhY2hlZFJl
c291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBsb2FkU3ViaW1hZ2Uo
bV9mcm9tSW1hZ2UsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICBsb2FkU3ViaW1hZ2UobV90
b0ltYWdlLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiB9CiAKLVBhc3NSZWZQdHI8SW1hZ2U+IENT
U0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRT
aXplJiBzaXplKQorYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQYXNzUmVmUHRyPENTU1ZhbHVlPiB2
YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Y2FjaGVkT3JQZW5kaW5n
SW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKTsKKworICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVy
YXRvclZhbHVlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRv
clZhbHVlKj4odmFsdWUuZ2V0KCkpLT5pc1BlbmRpbmcoKTsKKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIGxvYWRTdWJpbWFnZShQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1
ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIGlm
ICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VW
YWx1ZSo+KHZhbHVlLmdldCgpKS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9y
VmFsdWUoKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4o
dmFsdWUuZ2V0KCkpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitDYWNo
ZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1
ZSwgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBV
TlVTRURfUEFSQU0ocmVuZGVyZXIpOwogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKIAotICAgIHJl
dHVybiAwOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9
IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOworCisgICAgaWYg
KHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0lt
YWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVy
KS0+Y2FjaGVkSW1hZ2UoKTsKKworICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVl
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIChh
bmQgdGh1cyBjcm9zcy1mYWRlcyB3aXRoIGdyYWRpZW50cyBhbmQgY2FudmFzKS4KKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1Bhc3NS
ZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlmIChzaXplLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBDYWNoZWRJbWFnZSogZnJvbUltYWdlLCAqIHRvSW1hZ2U7
CisKKyAgICBmcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fZnJvbUltYWdlLCBy
ZW5kZXJlciwgc2l6ZSk7CisgICAgdG9JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV90
b0ltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisKKyAgICBpZiAoIWZyb21JbWFnZSB8fCAhdG9JbWFn
ZSkKKyAgICAgICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2UoKTsKKworICAgIG1fZ2VuZXJhdGVk
SW1hZ2UgPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGZyb21JbWFnZSwgdG9JbWFn
ZSwgbV9wZXJjZW50YWdlLT5nZXREb3VibGVWYWx1ZSgpIC8gMTAwLjAsICZtX2Nyb3NzZmFkZU9i
c2VydmVyLCBzaXplKTsKKworICAgIHJldHVybiBtX2dlbmVyYXRlZEltYWdlLmdldCgpOworfQor
Cit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
IHJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKHJlY3QpOworCisgICAgUmVuZGVyT2JqZWN0U2l6
ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjbGllbnRzKCkuZW5kKCk7CisgICAgZm9y
IChSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGN1cnIgPSBjbGllbnRz
KCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsrY3VycikgeworICAgICAgICBSZW5kZXJPYmplY3Qq
IGNsaWVudCA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4oY3Vyci0+Zmlyc3QpOworICAgICAg
ICBjbGllbnQtPmltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KHRoaXMp
KTsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmgKaW5kZXggZDU0OWZiZS4uZmFjODQxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKQEAgLTI3LDM3ICsyNyw2MyBAQAogI2RlZmluZSBDU1ND
cm9zc2ZhZGVWYWx1ZV9oCiAKICNpbmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCi0j
aW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBSZW5kZXJPYmplY3Q7
CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgQ1NTQ3Jvc3NmYWRlVmFsdWUgOiBwdWJsaWMgQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NT
Q3Jvc3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGZyb21JbWFn
ZSwgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiB0b0ltYWdlKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbUltYWdlLCB0b0ltYWdlKSk7IH0KKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IENTU0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9CisgICAgfkNT
U0Nyb3NzZmFkZVZhbHVlKCkgeyB9CiAKICAgICBTdHJpbmcgY3VzdG9tQ3NzVGV4dCgpIGNvbnN0
OwogCiAgICAgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50
U2l6ZSYpOwogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopOworICAgIEludFNpemUg
Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopIHsgcmV0dXJuIEludFNpemUoKTsgfQorCisg
ICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdDsKKyAgICB2b2lkIGxvYWRTdWJpbWFnZXMoQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqKTsKIAogICAgIHZvaWQgc2V0UGVyY2VudGFnZShQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlKSB7IG1fcGVyY2VudGFnZSA9IHBlcmNlbnRhZ2U7
IH0KIAogcHJpdmF0ZToKLSAgICBDU1NDcm9zc2ZhZGVWYWx1ZShQYXNzUmVmUHRyPENTU0ltYWdl
VmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiB0b0ltYWdlKQorICAg
IENTU0Nyb3NzZmFkZVZhbHVlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21JbWFnZSwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gdG9JbWFnZSkKICAgICAgICAgOiBDU1NJbWFnZUdlbmVyYXRvclZhbHVl
KENyb3NzZmFkZUNsYXNzKQogICAgICAgICAsIG1fZnJvbUltYWdlKGZyb21JbWFnZSkKICAgICAg
ICAgLCBtX3RvSW1hZ2UodG9JbWFnZSkKLSAgICB7Ci0gICAgfQorICAgICAgICAsIG1fY3Jvc3Nm
YWRlT2JzZXJ2ZXIodGhpcykgeyB9CisKKyAgICAvLyBOT1RFOiBXZSBwdXQgdGhlIEltYWdlT2Jz
ZXJ2ZXIgaW4gYSBtZW1iZXIgaW5zdGVhZCBvZiBpbmhlcml0aW5nIGZyb20gaXQKKyAgICAvLyB0
byBhdm9pZCBhZGRpbmcgYSB2cHRyIHRvIENTU0Nyb3NzZmFkZVZhbHVlLgorICAgIGNsYXNzIENy
b3NzZmFkZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgSW1hZ2VPYnNlcnZlciB7CisgICAgcHVibGlj
OgorICAgICAgICBDcm9zc2ZhZGVPYnNlcnZlclByb3h5KENTU0Nyb3NzZmFkZVZhbHVlKiBvd25l
clZhbHVlKSA6IG1fb3duZXJWYWx1ZShvd25lclZhbHVlKSB7IH0KKyAgICAgICAgdmlydHVhbCB+
Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSgpIE9WRVJSSURFIHsgfQorICAgICAgICB2aXJ0dWFsIHZv
aWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSosIGNvbnN0IEludFJlY3QmIHJlY3QpIE9WRVJS
SURFIHsgbV9vd25lclZhbHVlLT5jcm9zc2ZhZGVDaGFuZ2VkKHJlY3QpOyB9OworICAgICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUGF1c2VBbmltYXRpb24oY29uc3QgSW1hZ2UqKSBPVkVSUklERSB7
IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdyhjb25zdCBJbWFn
ZSopIE9WRVJSSURFIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uQWR2YW5jZWQo
Y29uc3QgSW1hZ2UqKSBPVkVSUklERSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRlY29kZWRT
aXplQ2hhbmdlZChjb25zdCBJbWFnZSosIGludCkgT1ZFUlJJREUgeyB9CisgICAgcHJpdmF0ZToK
KyAgICAgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJWYWx1ZTsKKyAgICB9OworCisgICAg
dm9pZCBjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3QmKTsKIAotICAgIFJlZlB0cjxDU1NJ
bWFnZVZhbHVlPiBtX2Zyb21JbWFnZTsKLSAgICBSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gbV90b0lt
YWdlOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV9mcm9tSW1hZ2U7CisgICAgUmVmUHRyPENTU1Zh
bHVlPiBtX3RvSW1hZ2U7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3BlcmNlbnRh
Z2U7CisKKyAgICBSZWZQdHI8SW1hZ2U+IG1fZ2VuZXJhdGVkSW1hZ2U7CisKKyAgICBDcm9zc2Zh
ZGVPYnNlcnZlclByb3h5IG1fY3Jvc3NmYWRlT2JzZXJ2ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggZmVi
MDFmNC4uYjU1YjQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApA
QCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU0dyYWRp
ZW50VmFsdWUuaCIKIAotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJD
U1NTdHlsZVNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRl
ICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2Uu
aCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgpAQCAtNjcsNyArNjcsNyBAQCBQYXNzUmVmUHRyPEltYWdlPiBDU1NHcmFkaWVu
dFZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJgogICAg
ICAgICBncmFkaWVudCA9IHN0YXRpY19jYXN0PENTU1JhZGlhbEdyYWRpZW50VmFsdWUqPih0aGlz
KS0+Y3JlYXRlR3JhZGllbnQocmVuZGVyZXIsIHNpemUpOwogICAgIH0KIAotICAgIFJlZlB0cjxJ
bWFnZT4gbmV3SW1hZ2UgPSBHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGdyYWRpZW50LCBzaXplKTsK
KyAgICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmNy
ZWF0ZShncmFkaWVudCwgc2l6ZSk7CiAgICAgaWYgKGNhY2hlYWJsZSkKICAgICAgICAgcHV0SW1h
Z2Uoc2l6ZSwgbmV3SW1hZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhZGllbnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaApp
bmRleCBmMTNhYzk4Li5lYTEwZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhZGllbnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVl
LmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9i
amVjdCopIGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQogCisgICAgYm9vbCBpc1BlbmRpbmco
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRS
ZXNvdXJjZUxvYWRlciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgQ1NTR3JhZGllbnRWYWx1ZShD
bGFzc1R5cGUgY2xhc3NUeXBlLCBDU1NHcmFkaWVudFJlcGVhdCByZXBlYXQsIGJvb2wgZGVwcmVj
YXRlZFR5cGUgPSBmYWxzZSkKICAgICAgICAgOiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKGNsYXNz
VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcApp
bmRleCAxYzNjNjUyLi40MWI0NjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW1hZ2UuaCIK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZEltYWdl
LmgiCisjaW5jbHVkZSAiU3R5bGVQZW5kaW5nSW1hZ2UuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTEwLDEzICsxMTEsMjYgQEAg
dm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpwdXRJbWFnZShjb25zdCBJbnRTaXplJiBzaXpl
LCBQYXNzUmVmUHRyPEltYWdlPiBpbWEKICAgICBtX2ltYWdlcy5hZGQoc2l6ZSwgaW1hZ2UpOwog
fQogCitTdHlsZUltYWdlKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpnZW5lcmF0ZWRPclBlbmRp
bmdJbWFnZSgpCit7CisgICAgaWYgKGlzUGVuZGluZygpKQorICAgICAgICBtX2ltYWdlID0gU3R5
bGVQZW5kaW5nSW1hZ2U6OmNyZWF0ZSh0aGlzKS5nZXQoKTsKKyAgICBlbHNlIGlmICghbV9hY2Nl
c3NlZEltYWdlKSB7CisgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CisgICAgICAgIG1f
aW1hZ2UgPSBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUodGhpcywgaXNGaXhlZFNpemUoKSk7
CisgICAgfQorCisgICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7Cit9CisKIFN0eWxlR2VuZXJhdGVk
SW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdlbmVyYXRlZEltYWdlKCkKIHsKICAgICBp
ZiAoIW1fYWNjZXNzZWRJbWFnZSkgewogICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwog
ICAgICAgICBtX2ltYWdlID0gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKHRoaXMsIGlzRml4
ZWRTaXplKCkpOwogICAgIH0KLSAgICByZXR1cm4gbV9pbWFnZS5nZXQoKTsKKworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxTdHlsZUdlbmVyYXRlZEltYWdlKj4obV9pbWFnZS5nZXQoKSk7CiB9CiAK
IFBhc3NSZWZQdHI8SW1hZ2U+IENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmltYWdlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xNzAsNCArMTg0LDQxIEBA
IEludFNpemUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIEludFNpemUoKTsKIH0KIAorYm9vbCBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAoreworICAgIHN3aXRjaCAoY2xhc3NU
eXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgorICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgQ1NTQ3Jvc3NmYWRlVmFsdWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAg
Y2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENTU0Nh
bnZhc1ZhbHVlKj4odGhpcyktPmlzUGVuZGluZygpOworICAgIGNhc2UgTGluZWFyR3JhZGllbnRD
bGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENTU0xpbmVhckdyYWRpZW50
VmFsdWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgY2FzZSBSYWRpYWxHcmFkaWVudENsYXNz
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTUmFkaWFsR3JhZGllbnRWYWx1
ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENTU0ltYWdl
R2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hl
ZFJlc291cmNlTG9hZGVyKQoreworICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKKyAgICBjYXNl
IENyb3NzZmFkZUNsYXNzOgorICAgICAgICBzdGF0aWNfY2FzdDxDU1NDcm9zc2ZhZGVWYWx1ZSo+
KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTQ2FudmFz
VmFsdWUqPih0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hl
ZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSYWRpYWxHcmFkaWVu
dENsYXNzOgorICAgICAgICBzdGF0aWNfY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZhbHVlKj4odGhp
cyktPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZUdlbmVyYXRvclZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5oCmluZGV4IGQwZWI2NWIuLjFhYjQ0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApAQCAtMzMsOSArMzMsMTEgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIEltYWdl
OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgU3R5bGVHZW5lcmF0ZWRJbWFnZTsKK2NsYXNz
IFN0eWxlSW1hZ2U7CiAKIHN0cnVjdCBTaXplQW5kQ291bnQgewogICAgIFNpemVBbmRDb3VudChJ
bnRTaXplIG5ld1NpemUgPSBJbnRTaXplKCksIGludCBuZXdDb3VudCA9IDApCkBAIC01OCwxMSAr
NjAsMTYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlck9iamVjdCopOwog
ICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUm
KTsKIAorICAgIFN0eWxlSW1hZ2UqIGdlbmVyYXRlZE9yUGVuZGluZ0ltYWdlKCk7CiAgICAgU3R5
bGVHZW5lcmF0ZWRJbWFnZSogZ2VuZXJhdGVkSW1hZ2UoKTsKIAogICAgIGJvb2wgaXNGaXhlZFNp
emUoKSBjb25zdDsKICAgICBJbnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKTsK
IAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Q7CisKKyAgICB2b2lkIGxvYWRTdWJpbWFnZXMo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKwogcHJvdGVjdGVkOgogICAgIENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUoQ2xhc3NUeXBlKTsKIApAQCAtNzAsNyArNzcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBwdXRJbWFnZShjb25zdCBJbnRTaXplJiwgUGFzc1JlZlB0cjxJbWFnZT4pOwogICAgIGNv
bnN0IFJlbmRlck9iamVjdFNpemVDb3VudE1hcCYgY2xpZW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50czsgfQogCi0gICAgUmVmUHRyPFN0eWxlR2VuZXJhdGVkSW1hZ2U+IG1faW1hZ2U7Cisg
ICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAgICAgYm9vbCBtX2FjY2Vzc2VkSW1hZ2U7
CiAKICAgICBIYXNoQ291bnRlZFNldDxJbnRTaXplPiBtX3NpemVzOyAvLyBBIGNvdW50IG9mIGhv
dyBtYW55IHRpbWVzIGEgZ2l2ZW4gaW1hZ2Ugc2l6ZSBpcyBpbiB1c2UuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDg1ZDFhYmQuLmZjMzhjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCkBAIC02MjkwLDcgKzYyOTAsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDcm9zc2ZhZGUo
Q1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mCiAgICAgaWYg
KCFhIHx8IGEtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXN1bHQgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3Jl
YXRlKHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihmcm9tSW1hZ2VWYWx1ZS5nZXQoKSksIHN0
YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih0b0ltYWdlVmFsdWUuZ2V0KCkpKTsKKyAgICByZXN1
bHQgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKGZyb21JbWFnZVZhbHVlLCB0b0ltYWdlVmFs
dWUpOwogICAgIHJlc3VsdC0+c2V0UGVyY2VudGFnZShjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFs
dWUoYSkpOwogCiAgICAgY3Jvc3NmYWRlID0gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCmluZGV4IDZiZWU4MzYuLmQyZjMzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQyNDYsNyArNDI0Niw3IEBAIFN0eWxlSW1hZ2Uq
IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlSW1hZ2UoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NT
VmFsdWUqIHZhbHVlCiAgICAgICAgIHJldHVybiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUocHJv
cGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZSkpOwogCiAgICAgaWYgKHZh
bHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSktPmdlbmVyYXRlZEltYWdlKCk7CisgICAg
ICAgIHJldHVybiBnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFsdWUocHJvcGVydHksIHN0YXRpY19j
YXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSkpOwogCiAgICAgcmV0dXJuIDA7CiB9
CkBAIC00MjU5LDYgKzQyNTksMTQgQEAgU3R5bGVJbWFnZSogQ1NTU3R5bGVTZWxlY3Rvcjo6Y2Fj
aGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIEMKICAgICByZXR1
cm4gaW1hZ2U7CiB9CiAKK1N0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OmdlbmVyYXRlZE9y
UGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlKiB2YWx1ZSkKK3sKKyAgICBTdHlsZUltYWdlKiBpbWFnZSA9IHZhbHVlLT5nZW5lcmF0
ZWRPclBlbmRpbmdJbWFnZSgpOworICAgIGlmIChpbWFnZSAmJiBpbWFnZS0+aXNQZW5kaW5nSW1h
Z2UoKSkKKyAgICAgICAgbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7Cisg
ICAgcmV0dXJuIGltYWdlOworfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEZpbGxJbWFn
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBGaWxsTGF5ZXIqIGxheWVyLCBDU1NWYWx1ZSogdmFs
dWUpCiB7CiAgICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpKSB7CkBAIC01NTc2LDYgKzU1
ODQsMjQgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKENT
U1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogc3QKIAogI2VuZGlmCiAKK1N0eWxlSW1hZ2Uq
IENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2UoU3R5bGVQZW5kaW5nSW1hZ2UqIHBl
bmRpbmdJbWFnZSkKK3sKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VM
b2FkZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7CisK
KyAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZhbHVlKCkpIHsKKyAgICAgICAgQ1NTSW1h
Z2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpOworICAg
ICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIp
OworICAgIH0KKworICAgIGlmIChwZW5kaW5nSW1hZ2UtPmNzc0ltYWdlR2VuZXJhdG9yVmFsdWUo
KSkgeworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiBpbWFnZUdlbmVyYXRvclZhbHVl
ID0gcGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRvclZhbHVlKCk7CisgICAgICAgIGltYWdl
R2VuZXJhdG9yVmFsdWUtPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAg
ICAgICByZXR1cm4gaW1hZ2VHZW5lcmF0b3JWYWx1ZS0+Z2VuZXJhdGVkSW1hZ2UoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGlu
Z0ltYWdlcygpCiB7CiAgICAgaWYgKG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcy5pc0VtcHR5KCkp
CkBAIC01NTg1LDE0ICs1NjExLDEyIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRp
bmdJbWFnZXMoKQogICAgIGZvciAoSGFzaFNldDxpbnQ+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1f
cGVuZGluZ0ltYWdlUHJvcGVydGllcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAg
ICAgQ1NTUHJvcGVydHlJRCBjdXJyZW50UHJvcGVydHkgPSBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0
eUlEPigqaXQpOwogCi0gICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJj
ZUxvYWRlciA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsK
LQogICAgICAgICBzd2l0Y2ggKGN1cnJlbnRQcm9wZXJ0eSkgewogICAgICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZTogewogICAgICAgICAgICAgICAgIGZvciAoRmlsbExh
eWVyKiBiYWNrZ3JvdW5kTGF5ZXIgPSBtX3N0eWxlLT5hY2Nlc3NCYWNrZ3JvdW5kTGF5ZXJzKCk7
IGJhY2tncm91bmRMYXllcjsgYmFja2dyb3VuZExheWVyID0gYmFja2dyb3VuZExheWVyLT5uZXh0
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJhY2tncm91bmRMYXllci0+aW1hZ2UoKSAm
JiBiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxT
dHlsZVBlbmRpbmdJbWFnZSo+KGJhY2tncm91bmRMYXllci0+aW1hZ2UoKSktPmNzc0ltYWdlVmFs
dWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRMYXllci0+c2V0SW1hZ2Uo
aW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFn
ZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGJhY2tncm91bmRMYXllci0+aW1hZ2Uo
KSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZExheWVyLT5zZXRJbWFnZShs
b2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01NjAxLDExICs1NjI1LDExIEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUNvbnRlbnQ6IHsKICAgICAgICAgICAgICAgICBmb3IgKENvbnRlbnREYXRhKiBjb250ZW50
RGF0YSA9IGNvbnN0X2Nhc3Q8Q29udGVudERhdGEqPihtX3N0eWxlLT5jb250ZW50RGF0YSgpKTsg
Y29udGVudERhdGE7IGNvbnRlbnREYXRhID0gY29udGVudERhdGEtPm5leHQoKSkgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoY29udGVudERhdGEtPmlzSW1hZ2UoKSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3R5bGVJbWFnZSogaW1hZ2UgPSBzdGF0aWNfY2FzdDxJbWFnZUNv
bnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgU3R5bGVJbWFnZSogaW1hZ2UgPSBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29u
dGVudERhdGEpLT5pbWFnZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlLT5p
c1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VW
YWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFN0eWxlUGVuZGluZ0ltYWdlKj4o
aW1hZ2UpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2Uo
Y2FjaGVkUmVzb3VyY2VMb2FkZXIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5zZXRJbWFnZShjYWNo
ZWRJbWFnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVk
SW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4o
aW1hZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGVkSW1hZ2UpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEltYWdlQ29udGVudERh
dGEqPihjb250ZW50RGF0YSktPnNldEltYWdlKGxvYWRlZEltYWdlKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAg
LTU2MTgsOCArNTY0Miw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFn
ZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgQ3Vyc29yRGF0YSYgY3VycmVudEN1cnNvciA9
IGN1cnNvckxpc3QtPmF0KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFN0eWxlSW1h
Z2UqIGltYWdlID0gY3VycmVudEN1cnNvci5pbWFnZSgpKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxT
dHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q3Vyc29yLnNldEltYWdlKGltYWdlVmFsdWUtPmNh
Y2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0
aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRDdXJzb3Iuc2V0SW1hZ2UobG9hZGVkSW1hZ2UpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgfQpAQCAtNTYyOSwxNiArNTY1MywxNiBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKIAogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUxpc3RTdHlsZUltYWdlOiB7CiAgICAgICAgICAgICAgICAgaWYgKG1fc3R5bGUtPmxpc3RTdHls
ZUltYWdlKCkgJiYgbV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKSkg
ewotICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5saXN0U3R5bGVJbWFnZSgpKS0+Y3Nz
SW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRMaXN0U3R5bGVJ
bWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAg
ICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1h
Z2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5saXN0U3R5bGVJbWFn
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldExpc3RTdHlsZUltYWdlKGxv
YWRlZEltYWdlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbWFnZVNv
dXJjZTogewogICAgICAgICAgICAgICAgIGlmIChtX3N0eWxlLT5ib3JkZXJJbWFnZVNvdXJjZSgp
ICYmIG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0
PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSktPmNzc0lt
YWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Qm9yZGVySW1hZ2VT
b3VyY2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0lt
YWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+Ym9yZGVySW1hZ2VT
b3VyY2UoKSkpOworICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJJbWFnZVNv
dXJjZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQpAQCAtNTY0Nyw4ICs1NjcxLDggQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAgICAgICAgICAgaWYgKFN0eWxlUmVm
bGVjdGlvbiogcmVmbGVjdGlvbiA9IG1fc3R5bGUtPmJveFJlZmxlY3QoKSkgewogICAgICAgICAg
ICAgICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFnZSYgbWFza0ltYWdlID0gcmVmbGVjdGlvbi0+
bWFzaygpOwogICAgICAgICAgICAgICAgICAgICBpZiAobWFza0ltYWdlLmltYWdlKCkgJiYgbWFz
a0ltYWdlLmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJ
bWFnZSo+KG1hc2tJbWFnZS5pbWFnZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcmVmbGVjdGlvbi0+c2V0TWFzayhOaW5lUGllY2VJbWFnZShpbWFnZVZhbHVl
LT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciksIG1hc2tJbWFnZS5pbWFnZVNsaWNl
cygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9yZGVyU2xpY2VzKCksIG1hc2tJbWFn
ZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxlKCksIG1hc2tJbWFnZS52ZXJ0aWNh
bFJ1bGUoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1h
Z2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obWFz
a0ltYWdlLmltYWdlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZmxlY3Rpb24tPnNl
dE1hc2soTmluZVBpZWNlSW1hZ2UobG9hZGVkSW1hZ2UsIG1hc2tJbWFnZS5pbWFnZVNsaWNlcygp
LCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9yZGVyU2xpY2VzKCksIG1hc2tJbWFnZS5v
dXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxlKCksIG1hc2tJbWFnZS52ZXJ0aWNhbFJ1
bGUoKSkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtNTY1Niw4ICs1NjgwLDggQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXNrQm94SW1hZ2VTb3VyY2U6IHsKICAgICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+
bWFza0JveEltYWdlU291cmNlKCkgJiYgbV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCktPmlz
UGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1h
Z2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+bWFza0Jv
eEltYWdlU291cmNlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldE1hc2tCb3hJbWFnZVNvdXJjZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNo
ZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2Fk
ZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2Uq
PihtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3VyY2UoKSkpOworICAgICAgICAgICAgICAgICAgICBt
X3N0eWxlLT5zZXRNYXNrQm94SW1hZ2VTb3VyY2UobG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTU2NjUsOCAr
NTY4OSw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFnZTogewogICAgICAgICAgICAg
ICAgIGZvciAoRmlsbExheWVyKiBtYXNrTGF5ZXIgPSBtX3N0eWxlLT5hY2Nlc3NNYXNrTGF5ZXJz
KCk7IG1hc2tMYXllcjsgbWFza0xheWVyID0gbWFza0xheWVyLT5uZXh0KCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1hc2tMYXllci0+aW1hZ2UoKSAmJiBtYXNrTGF5ZXItPmltYWdlKCkt
PmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFs
dWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tMYXll
ci0+aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1h
c2tMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VM
b2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdl
ID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tM
YXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbWFza0xheWVyLT5zZXRJ
bWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuaAppbmRleCBkZmI5ZWFjLi5kYTIyNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWU7CiBjbGFz
cyBDU1NQcm9wZXJ0eTsKIGNsYXNzIENTU0ZvbnRGYWNlOwogY2xhc3MgQ1NTRm9udEZhY2VSdWxl
OworY2xhc3MgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTsKIGNsYXNzIENTU0ltYWdlVmFsdWU7CiBj
bGFzcyBDU1NSZWdpb25TdHlsZVJ1bGU7CiBjbGFzcyBDU1NSdWxlTGlzdDsKQEAgLTY2LDYgKzY3
LDcgQEAgY2xhc3MgUnVsZURhdGE7CiBjbGFzcyBSdWxlU2V0OwogY2xhc3MgU2V0dGluZ3M7CiBj
bGFzcyBTdHlsZUltYWdlOworY2xhc3MgU3R5bGVQZW5kaW5nSW1hZ2U7CiBjbGFzcyBTdHlsZVNo
ZWV0OwogY2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtMjgw
LDYgKzI4Miw3IEBAIHB1YmxpYzoKIAogICAgIFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UoQ1NTUHJv
cGVydHlJRCwgQ1NTVmFsdWUqKTsKICAgICBTdHlsZUltYWdlKiBjYWNoZWRPclBlbmRpbmdGcm9t
VmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VWYWx1ZSopOworICAgIFN0eWxlSW1hZ2UqIGdl
bmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlELCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlKik7CiAKICAgICBib29sIGFwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlOyB9CiAgICAgYm9vbCBhcHBs
eVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9hcHBseVByb3Bl
cnR5VG9WaXNpdGVkTGlua1N0eWxlOyB9CkBAIC0zMjcsNiArMzMwLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSopOwogI2VuZGlmCiAKKyAg
ICBTdHlsZUltYWdlKiBsb2FkUGVuZGluZ0ltYWdlKFN0eWxlUGVuZGluZ0ltYWdlKik7CiAgICAg
dm9pZCBsb2FkUGVuZGluZ0ltYWdlcygpOwogCiAgICAgc3RydWN0IE1hdGNoZWRTdHlsZURlY2xh
cmF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oCmluZGV4IGUyODlkZDQuLmJjZDM0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAKIGNs
YXNzIEJpdG1hcEltYWdlIDogcHVibGljIEltYWdlIHsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJh
dGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOworICAg
IGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJpdG1hcElt
YWdlPiBjcmVhdGUoTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9i
c2VydmVyID0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iNGJkM2IyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC0wLDAgKzEs
MTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCisjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UoQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2FjaGVkSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBl
cmNlbnRhZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQor
ICAgIDogbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQorICAgICwgbV90b0ltYWdlKHRvSW1hZ2UpCisg
ICAgLCBtX3BlcmNlbnRhZ2UocGVyY2VudGFnZSkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIp
CisgICAgLCBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIoYWRvcHRQdHIobmV3IENyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSh0aGlzKSkpCit7CisgICAgbV9zaXplID0gc2l6ZTsKKwor
ICAgIG1fZnJvbUltYWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdl
dCgpKTsKKyAgICBtX3RvSW1hZ2UtPmFkZENsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXIuZ2V0KCkpOworCisgICAgbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLT5zZXRSZWFkeSh0
cnVlKTsKK30KKworQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZSgpCit7CisgICAgbV9mcm9tSW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1Ymlt
YWdlT2JzZXJ2ZXIuZ2V0KCkpOworICAgIG1fdG9JbWFnZS0+cmVtb3ZlQ2xpZW50KG1fY3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7Cit9CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2U6OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIElt
YWdlKiBmcm9tSW1hZ2UgPSAwOworICAgIEltYWdlKiB0b0ltYWdlID0gMDsKKyAgICBJbnRTaXpl
IGZyb21JbWFnZVNpemUsIHRvSW1hZ2VTaXplLCBjcm9zc2ZhZGVJbWFnZVNpemU7CisgICAgZmxv
YXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxLjBmIC0gbV9wZXJjZW50YWdlOworCisgICAgZnJvbUlt
YWdlID0gbV9mcm9tSW1hZ2UtPmltYWdlKCk7CisgICAgZnJvbUltYWdlU2l6ZSA9IGZyb21JbWFn
ZS0+c2l6ZSgpOworICAgIHRvSW1hZ2UgPSBtX3RvSW1hZ2UtPmltYWdlKCk7CisgICAgdG9JbWFn
ZVNpemUgPSB0b0ltYWdlLT5zaXplKCk7CisKKyAgICAvLyBEcmF3IG5vdGhpbmcgaWYgZWl0aGVy
IG9mIHRoZSBpbWFnZXMgaGFzbid0IGxvYWRlZCB5ZXQuCisgICAgaWYgKGZyb21JbWFnZSA9PSBJ
bWFnZTo6bnVsbEltYWdlKCkgfHwgdG9JbWFnZSA9PSBJbWFnZTo6bnVsbEltYWdlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNyb3NzZmFkZUltYWdlU2l6ZSA9IEludFNpemUoZnJvbUltYWdl
U2l6ZS53aWR0aCgpICogaW52ZXJzZVBlcmNlbnRhZ2UgKyB0b0ltYWdlU2l6ZS53aWR0aCgpICog
bV9wZXJjZW50YWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUltYWdl
U2l6ZS5oZWlnaHQoKSAqIGludmVyc2VQZXJjZW50YWdlICsgdG9JbWFnZVNpemUuaGVpZ2h0KCkg
KiBtX3BlcmNlbnRhZ2UpOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKCpjb250ZXh0KTsKKworICAgIC8vIERyYXcgdGhlIGltYWdlIHdlJ3JlIGZhZGluZyBhd2F5
IGZyb20uCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlmIChjcm9zc2ZhZGVJbWFnZVNpemUg
IT0gZnJvbUltYWdlU2l6ZSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKHN0YXRp
Y19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUud2lkdGgoKSkgLyBmcm9tSW1hZ2VTaXpl
LndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxm
bG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLmhlaWdodCgpKSAvIGZyb21JbWFnZVNpemUuaGVpZ2h0
KCkpKTsKKyAgICBjb250ZXh0LT5zZXRBbHBoYShpbnZlcnNlUGVyY2VudGFnZSk7CisgICAgY29u
dGV4dC0+ZHJhd0ltYWdlKGZyb21JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQo
KSk7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisgICAgLy8gRHJhdyB0aGUgaW1hZ2Ugd2Un
cmUgZmFkaW5nIHRvd2FyZHMuCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlmIChjcm9zc2Zh
ZGVJbWFnZVNpemUgIT0gdG9JbWFnZVNpemUpCisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0
U2l6ZShzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLndpZHRoKCkpIC8gdG9J
bWFnZVNpemUud2lkdGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUuaGVpZ2h0KCkpIC8gdG9JbWFnZVNpemUu
aGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRl
U291cmNlT3Zlcik7CisgICAgY29udGV4dC0+c2V0QWxwaGEobV9wZXJjZW50YWdlKTsKKyAgICBj
b250ZXh0LT5kcmF3SW1hZ2UodG9JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQo
KSk7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wKQoreworICAgIFVOVVNFRF9QQVJBTShjb21wb3NpdGVPcCk7Cisg
ICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0LT5jbGlwKGRzdFJlY3QpOworICAg
IGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55KCkpOworCisgICAgZHJh
d0Nyb3NzZmFkZShjb250ZXh0KTsKK30KKwordm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBPd25Q
dHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShtX3NpemUp
OworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZpbGwg
d2l0aCB0aGUgY3Jvc3MtZmFkZWQgaW1hZ2UuCisgICAgR3JhcGhpY3NDb250ZXh0KiBncmFwaGlj
c0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAgIGRyYXdDcm9zc2ZhZGUoZ3Jh
cGhpY3NDb250ZXh0KTsKKworICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBj
b250ZXh0LgorICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBzcmNSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVz
dFJlY3QpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjppbWFnZUNoYW5nZWQo
Q2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQoreworICAgIFVOVVNFRF9Q
QVJBTShpbWFnZSk7CisgICAgbV9vYnNlcnZlci0+Y2hhbmdlZEluUmVjdCh0aGlzLCAqcmVjdCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Ny
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjE4ODIzMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCkBAIC0wLDAgKzEsODggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2VfaAorI2RlZmluZSBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUg
IkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZU9i
c2VydmVyLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1ZTsKK2NsYXNz
IENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsKKworY2xhc3MgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgeworICAgIGZyaWVuZCBDcm9zc2ZhZGVT
dWJpbWFnZU9ic2VydmVyUHJveHk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShDYWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNo
ZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2
ZXIsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFnZSwgdG9JbWFnZSwgcGVyY2VudGFn
ZSwgb2JzZXJ2ZXIsIHNpemUpKTsKKyAgICB9CisgICAgdmlydHVhbCB+Q3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UoKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAg
IHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisKKyAgICBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFn
ZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNlcnZlciosIGNvbnN0IEludFNpemUmKTsKKwor
ICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKTsK
KworcHJpdmF0ZToKKyAgICB2b2lkIGRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0Kik7CisK
KyAgICBDYWNoZWRJbWFnZSogbV9mcm9tSW1hZ2U7CisgICAgQ2FjaGVkSW1hZ2UqIG1fdG9JbWFn
ZTsKKyAgICBmbG9hdCBtX3BlcmNlbnRhZ2U7CisKKyAgICBJbWFnZU9ic2VydmVyKiBtX29ic2Vy
dmVyOworICAgIE93blB0cjxDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk+IG1fY3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlcjsKK307CisKK2NsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eSA6IHB1YmxpYyBDYWNoZWRJbWFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgQ3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKiBvd25lclZh
bHVlKQorICAgIDogbV9vd25lclZhbHVlKG93bmVyVmFsdWUpCisgICAgLCBtX3JlYWR5KGZhbHNl
KSB7IH0KKworICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSgpIE9W
RVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGlt
YWdlLCBjb25zdCBJbnRSZWN0KiByZWN0ID0gMCkgT1ZFUlJJREUgeworICAgICAgICBpZiAobV9y
ZWFkeSkKKyAgICAgICAgICAgIG1fb3duZXJWYWx1ZS0+aW1hZ2VDaGFuZ2VkKGltYWdlLCByZWN0
KTsKKyAgICB9CisgICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFk
eTsgfQorcHJpdmF0ZToKKyAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSogbV9vd25lclZhbHVl
OworICAgIGJvb2wgbV9yZWFkeTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDVlMDZkZmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0j
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNp
bmNsdWRlICJMZW5ndGguaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIEdlbmVyYXRl
ZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wKQotewotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcigqY29udGV4dCk7Ci0gICAgY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNv
bXBvc2l0ZU9wKTsKLSAgICBjb250ZXh0LT5jbGlwKGRzdFJlY3QpOwotICAgIGNvbnRleHQtPnRy
YW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55KCkpOwotICAgIGlmIChkc3RSZWN0LnNpemUo
KSAhPSBzcmNSZWN0LnNpemUoKSkKLSAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKGRz
dFJlY3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgoKSwgZHN0UmVjdC5oZWlnaHQoKSAvIHNyY1Jl
Y3QuaGVpZ2h0KCkpKTsKLSAgICBjb250ZXh0LT50cmFuc2xhdGUoLXNyY1JlY3QueCgpLCAtc3Jj
UmVjdC55KCkpOwotICAgIGNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IG1fc2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7Ci19Ci0KLXZvaWQgR2VuZXJhdGVkSW1hZ2U6
OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8g
cHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIg
cGVyZm9ybWFuY2UuCi0gICAgSW50U2l6ZSBhZGp1c3RlZFNpemUgPSBtX3NpemU7Ci0gICAgRmxv
YXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7Ci0gICAgbV9nZW5lcmF0b3ItPmFkanVz
dFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3Qp
OwotCi0gICAgLy8gQ3JlYXRlIGEgQml0bWFwSW1hZ2UgYW5kIGNhbGwgZHJhd1BhdHRlcm4gb24g
aXQuCi0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpj
cmVhdGUoYWRqdXN0ZWRTaXplKTsKLSAgICBpZiAoIWltYWdlQnVmZmVyKQotICAgICAgICByZXR1
cm47Ci0KLSAgICAvLyBGaWxsIHdpdGggdGhlIGdyYWRpZW50LgotICAgIEdyYXBoaWNzQ29udGV4
dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKLSAgICBncmFwaGlj
c0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSks
ICptX2dlbmVyYXRvci5nZXQoKSk7Ci0KLSAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50
byB0aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgYWRq
dXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBj
b21wb3NpdGVPcCwgZGVzdFJlY3QpOwotfQotCi12b2lkIEdlbmVyYXRlZEltYWdlOjpjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJp
bnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykKLXsKLSAgICBJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwg
aW50cmluc2ljUmF0aW8pOwotICAgIGludHJpbnNpY1JhdGlvID0gRmxvYXRTaXplKCk7Ci19Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFn
ZS5oCmluZGV4IGQyODg3MmIuLmJlYzM0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaApAQCAtMzYsMTIgKzM2LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNz
UmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0ZWRJbWFnZShnZW5lcmF0b3IsIHNp
emUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+R2VuZXJhdGVkSW1hZ2UoKSB7fQotCiAgICAgdmly
dHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYgc2l6
ZSkgeyBtX3NpemUgPSBzaXplOyB9CkBAIC01NywxNyArNTEsMTIgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByb3Rl
Y3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKLSAgICAKLSAgICBHZW5lcmF0ZWRJbWFnZShQYXNzUmVm
UHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgICAgICA6
IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKLSAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICB7Ci0g
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0KSA9IDA7CisKKyAgICBHZW5lcmF0ZWRJbWFnZSgpIHsgfQogCi0g
ICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9nZW5lcmF0b3I7CiAgICAgSW50U2l6ZSBtX3NpemU7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWExZjAwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcApAQCAtMCwwICsxLDc1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1
ZGUgIkxlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRp
b24oY29tcG9zaXRlT3ApOworICAgIGNvbnRleHQtPmNsaXAoZHN0UmVjdCk7CisgICAgY29udGV4
dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgpLCBkc3RSZWN0LnkoKSk7CisgICAgaWYgKGRzdFJlY3Qu
c2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQorICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNp
emUoZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8g
c3JjUmVjdC5oZWlnaHQoKSkpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCks
IC1zcmNSZWN0LnkoKSk7CisgICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgbV9zaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsKK30KKwordm9pZCBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29t
cG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgLy8gQWxsb3cgdGhl
IGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRl
cnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IG1f
c2l6ZTsKKyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKKyAgICBtX2dl
bmVyYXRvci0+YWRqdXN0UGFyYW1ldGVyc0ZvclRpbGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFk
anVzdGVkU3JjUmVjdCk7CisKKyAgICAvLyBDcmVhdGUgYSBCaXRtYXBJbWFnZSBhbmQgY2FsbCBk
cmF3UGF0dGVybiBvbiBpdC4KKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShhZGp1c3RlZFNpemUpOworICAgIGlmICghaW1hZ2VCdWZmZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZpbGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGltYWdl
LgorICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNv
bnRleHQoKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7CisKKyAgICAvLyBUaWxl
IHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KKyAgICBpbWFnZUJ1ZmZlci0+ZHJh
d1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFz
ZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIEdl
bmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNp
Y1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRp
bykKK3sKKyAgICBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lk
dGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8pOworICAgIGludHJpbnNpY1JhdGlv
ID0gRmxvYXRTaXplKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwOWNhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZV9oCisjZGVmaW5lIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlX2gKKworI2luY2x1ZGUg
IkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSW1h
Z2UuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIDogcHVi
bGljIEdlbmVyYXRlZEltYWdlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0
b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKGdlbmVyYXRvciwgc2l6ZSkpOworICAgIH0KKyAg
ICB2aXJ0dWFsIH5HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSgpIHsgfQorCitwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKworICAgIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IElu
dFNpemUmIHNpemUpCisgICAgICAgIDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9yKQorICAgIHsKKyAg
ICAgICAgbV9zaXplID0gc2l6ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8R2VuZXJhdG9yPiBtX2dl
bmVyYXRvcjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAppbmRleCBiZjFhMTdmLi5iNTQ2YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTc5LDYgKzc5LDggQEAgY2xhc3MgSW1hZ2VPYnNlcnZl
cjsKIAogY2xhc3MgSW1hZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZT4gewogICAgIGZyaWVu
ZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAg
IGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDA4ODk5YTYuLjdkZjEz
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aApAQCAtMTI2LDYgKzEyNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBmcmll
bmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogICAgICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVk
SW1hZ2U7CisgICAgICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAg
ICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgSW1hZ2VCdWZmZXJEYXRhIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKaW5kZXggYzBlZTEzOS4uOWFh
MGUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVu
ZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVu
ZGluZ0ltYWdlLmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgU3R5bGVQZW5kaW5nSW1hZ2Vf
aAogI2RlZmluZSBTdHlsZVBlbmRpbmdJbWFnZV9oCiAKKyNpbmNsdWRlICJDU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdl
LmgiCiAjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgogCkBAIC0zNywxMiArMzksMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdHlsZVBlbmRpbmdJbWFnZSA6IHB1YmxpYyBTdHlsZUlt
YWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVBlbmRpbmdJbWFnZT4g
Y3JlYXRlKENTU0ltYWdlVmFsdWUqIHZhbHVlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVQ
ZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUGVuZGlu
Z0ltYWdlPiBjcmVhdGUoQ1NTVmFsdWUqIHZhbHVlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5
bGVQZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQogCi0gICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQdHIg
ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFdyYXBwZWRJbWFn
ZVB0ciBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1f
dmFsdWUpOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQotICAgIENTU0ltYWdlVmFsdWUqIGNzc0ltYWdlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgQ1NTSW1hZ2VWYWx1ZSogY3NzSW1h
Z2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmlzSW1hZ2VWYWx1ZSgpID8gc3RhdGlj
X2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1fdmFsdWUpIDogMDsgfQorICAgIENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUqIGNzc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
LT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSA/IHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9y
VmFsdWUqPihtX3ZhbHVlKSA6IDA7IH0KICAgICAKICAgICB2aXJ0dWFsIEludFNpemUgaW1hZ2VT
aXplKGNvbnN0IFJlbmRlck9iamVjdCosIGZsb2F0IC8qbXVsdGlwbGllciovKSBjb25zdCB7IHJl
dHVybiBJbnRTaXplKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRo
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTU5LDEzICs2MiwxMyBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBTdHlsZVBlbmRpbmdJbWFnZShDU1NJbWFnZVZhbHVl
KiB2YWx1ZSkKKyAgICBTdHlsZVBlbmRpbmdJbWFnZShDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAg
IDogbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgICAgIG1faXNQZW5kaW5nSW1hZ2UgPSB0cnVl
OwogICAgIH0KIAotICAgIENTU0ltYWdlVmFsdWUqIG1fdmFsdWU7IC8vIE5vdCByZXRhaW5lZDsg
aXQgb3ducyB1cy4KKyAgICBDU1NWYWx1ZSogbV92YWx1ZTsgLy8gTm90IHJldGFpbmVkOyBpdCBv
d25zIHVzLgogfTsKIAogfQo=
</data>
<flag name="commit-queue"
          id="113795"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115011</attachid>
            <date>2011-11-14 12:37:00 -0800</date>
            <delta_ts>2011-11-14 13:43:36 -0800</delta_ts>
            <desc>Render Cross-Fade (plus build system changes for other ports)</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>94202</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDYyNjY1Li5mZWVmNWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKworICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZzogQWRkZWQuCisgICAg
ICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmc6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5w
bmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLXNpemluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
dGlsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFu
ICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3RzIGZv
ciAgbmV3IHdlYnNxbCBlcnJvciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUwNTMwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAw
cHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2lmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaWYo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBz
aG91bGQgYXBwZWFyIGFzIGEgbGlnaHQgZ3JlZW4gc3F1YXJlIHdpdGggYSBkYXJrZXIgZ3JlZW4g
Y2lyY2xlIGluc2lkZSBpdC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcpLCB1cmwocmVzb3Vy
Y2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mOGRiNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aHRt
bD4KKzxzdHlsZT4KK2RpdgoreworCXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1h
cmdpbjogMTBweDsKK30KKzwvc3R5bGU+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxk
IGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9yZWQt
MTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8
IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNx
dWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIHVybChyZXNvdXJjZXMv
cmVkLTEwMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91
bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2Js
dWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDUwJSk7Ij48L2Rpdj4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
c2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhY2UxYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4
OworCWhlaWdodDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzwhLS1UaGUg
Zmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEw
eDEwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5n
KSwgMTAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVh
ciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAu
cG5nKSwgdXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRo
aXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCA1NXg1
NXB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcp
LCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9z
cy1mYWRlLXRpbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3
MGY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtdGlsZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxzdHlsZT4KK2Rpdgorewor
CXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKKworCS13ZWJr
aXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7CisJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9
Cis8L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAx
MDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwo
cmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCAxMDAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQg
Y3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBw
eC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL3JlZC0xMDAucG5nKSwg
MCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRoaXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IGJsdWUtZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ibHVlLTEwMC5wbmcpLCB1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcgYi9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjI5NDllMDhkODdkZmNkYzA5ODdlYWVmNjc2OTJjN2ExYzE2YWE1MApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNzYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5BVH0yVjg8NlpaST0+ZjQzNDZM
WWhEYzBKUER1RmlmNCtzeXN0TjEzClo3KkUkNnc+OzlyWlV2TlBATzFUYVM/ODN7MU9SaEM2Yysj
aAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jl
c291cmNlcy9ibHVlLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3OGFlNzI1MzNjNzc0NmM4YTRkMmY2
ZWVmMzJhODEzN2VlMWY0YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTIKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEQrOXktdThLP0hLKDJfVmkoYG17Cm1X
TzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0tiTGgqMn43WTJqfXcmdQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVz
b3VyY2VzL2dyZWVuLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzOWIwZDAyZDM0MmJiZjFlZGQyZWJiY2MyZmY0ZmY4
YjAzMmUxMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzQKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB2cF5BVH0yVjg8NlpaST0+ZjQzM3xGWGhEYzBKUFdhKWtBYHxLbi1eIXFgCldlJSRpbik0RlYr
QiFqMWBwVVhPQGdlQ3dTU2BwbTwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAucG5nIGIvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1
YmJiZTVjNTc2MGQ5MDVkYjRiZjAxNWI1YjdmYWEyNzQ2N2M3ZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEU1
bTtWbGVoeWJmTHN3ejdzbjZACm0kPmFuSCoyTWBUSnh6ZlF7dE9KUDYlMzVjTmVAYlpAKGlBP2Vs
RntyNX1FK2BuaUZJSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcgYi9MYXlvdXRUZXN0
cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDRmOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcKQEAgLTAsMCArMSw1IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2
aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBz
dHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InJlZCI+CisgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZWQiIHRvPSJncmVlbiIgYmVnaW49IjBzIiBk
dXI9IjAuMDFzIiBmaWxsPSJmcmVlemUiIC8+CisgIDwvY2lyY2xlPgorPC9zdmc+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
cmVzb3VyY2VzL3JlZC0xMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMv
cmVkLTEwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmEyYmYzMTIxNWUzMGNmYTc4OTBmZTA2MDQ1OTFhM2Rl
ZGVmYjE3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHZwXkFUfTJWODw2WlpJPT5mNGlGbXA9aERjMEp7JkRgbWh4cm1gM3wzOXAKYSRIaDQ1QE52dGkr
S0dpZ2M/TTVjS2JMaCoyfjdhNFJ+Nm0+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcgYi9MYXlv
dXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcz
ZGQ3NThhZGY0MjRkYjgyOWNlMzM5N2ZjOWMzMWI3ZjRhNDVlZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WD53
ZzlZJHchPiNLKDJfVmkoYG17Cm1XTzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0ti
TGgqMn43YWwxYD8kSgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMjRjMTNmNGEyMDg0
MmFiMmU5YjQ1OGFjYjc3ZDJlZGQ3NDQ2OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQzMzcK
emNtZUhPZHB5KGFgYEAlIUEoVCo8ckd0N1okREcyZjZNOW5nRDNRWSlOOyVIP1lAP0QmcUV6SHFz
WmBGeW9GX3R4CnpKY3diMjx4RTJrK3Nyb0trTFE9IT4tK291e2B+IyVlWkJTPHlJcjVfelY3Uk9V
Kz9SRS09RGNfZGReVUleVWxwNgp6NUo+cDYoYUZDK3BiYztraHxkRGI0fiEpRi18eiV9OVBtQTU7
cD0kKXMtdnJxcEY3QSZgLStwNmdYMn44dEQ1USMKem4oQThpJTM5am1fViNLanN6O1F5b1JxSkEt
NDNZJnl1aDRLb0c/OW87c281KDh8fiFtYmA9QikxVj4mTmFQMlNeCnpYWkshQiVfbTE2eShZRV5h
czhwazYqSiF4REo4QyMlM0NmXllUJE1tQ0JKZEVQSE5hZyFRPjB7TTVCK14ybUJJMQp6RUN+cXAr
KGRedzVeZk47cilTQGhIPlMhTHI2bkladDY7WEZqOC13UUdfOT5MSGY7TlIkP0l+NXhSUXdZTUto
RTcKelRJUSE9QHFzejh0O35zbyU8RV5QWiVoMlMmayFsblE1WkIrR2B8SmI7TzBBeDk+YClsYnx5
VSQ1fVRFUVMzZyQmCnpCdX08ez9yaTx0Y2lVanMtSS1Kc18xWUY9QUIjLUxDYj9AYFh2WVpoe2d+
WlBvc09zQGxRemB+KUVfXjNyV0MxXwp6PXNZK3QtMkUqPWR7fC1NeUdNJUF4Pj18R1FYMDgocyEp
aEpFOVl9XzR3ZTcqQGtEYVltfXJjOSh2RVgmcTQpYWIKenc4SzJfa0FnWnM+WjdFcGorTGYqVDQp
U3FzQUc8fD84ejB8UzJaXjY+enFpcm52YEk5VkMhQylKKFVnQGFARXxOCnpNK0c8Qk8mYVo+RVNO
c1pQZHxiYHFHbVppTEB8OD1uTnExPXFARlFZRDZiK0FBSTF2fHNVdEVFYllZUn5EJXpzPQp6eV4p
fHR2cmB7bkZgV3hta0IqdVhpTmheI2NHckNoSUlxOUs9PWhCWEdGU0V3SzBHZERwWEIpSUo+Nkpo
aHkwKGYKeitNUnRiMVFsdl4+RmtleE58Ny1QWShpfSp3VXQ9M0RsRFpBRX5rPDk1Kn0xO2tGM1hL
YmYyZGJNQCpDI1pjQ0VKCnpgcXt0RUBFfmlKalUtRkVYOSteanYrcz0qN307TF5Wc2hnPSFCMWx9
Jk1ibEhDKWxkYGN6VW5AUnR1cj4+eyhtLQp6QTh3bVhBfC0xUkBaVWR3PigzR1U4dCEhbmsoRmxG
KChyUnt5SyghfWx+VmtAI3A0WjlPS35iRUV+aSVTSWglNCUKemQjPX0xUD1QPC0jPzxIIVliQW19
VDFCJUJuTmJHS1FTeyNacGpMQTZST3FoUllQRCh2M1d2VTlwR21DbHhINlRZCnphKFN3djw2LSZC
ZzVieG9MPE9xZWdaSkJaNmMkdCRWOWNRaEtmSDh3YExvRV4xaGlxVmA/LVlxanF4Kkx3Kio3KQp6
PFF+Mm9vOEBwUiZnOUBgXmZNdmIxZmtQO01tPnU4STxiQHVDMXpiVnFzfU5GP2ZFfUVDIXw/KlE7
TTF3YEU3VTkKendEfkFYSzNEU18tanA5fGR1VkRxUUJGNHY3eWVMKD0kTkREWmVKZGFGd1l8VERx
Nnc3NihVKWs+ODxaT05uXnVVCnohTjNlQXxHVjlyeUp9eWNSNiFzKD09OH5CN1hyWik1LVJVV0tx
fkUqOVFOZE15WnVMZV9vJmV6O3d9d1JzeXAoTAp6TkF+Uk4/MWx4SXJpVXZxNHV3aj1sRSkqP3t5
ZC1qX0UmZiFYdFBzb3FPcHU9O3ZAdlVeWjd8cChJcD1nekV+bXwKejxOQjxZI0lqcm92fXZqekp3
c3pwYCZEJXp4QFU1JHNGJnlNdzMyUnV6PGR5PkM+JDlNezktMCpwJWQ5a0h2OWVZCnpwSy1mQWFB
ZkUldGBUSypGaiFVSENIKVQ5bGkoayZ0SXoqLTYhQzVvSDE2SGA8Jnp4ODVHWWc+d1NudVNAbVha
Sgp6YVpJbSp7NkYqbF45TikmZWRxcyNAeXx5KTdlMmwjRjVlTWk5SmdTO3NZfXM9Nl9rcHM7eEIw
ek1Mbl9FZEByfGkKemR9YipRaXA1PTJEMzBUYnFZO1JzdjU2a0E3OHV+bCt5KXQqZWVfKTw9USMq
ZV9aJWBAX2duKmgreHFQSmxmZE1pCnpyd3tMMDR7eSttazhqdlptN1U3dnxEdlFRSm5OanhGMEsk
YHd+NH1JPEEyUj9gT2h3fGQwITw7ZW1fdUhRIyhiLQp6ISRuSWZsPmBpZztjVXZoVSl4bXA9YTVS
aEdEemlxUyk/K2JPajFQdmRjbCZBVkAxJCM+OzdCQXo0dj5HVFRncTUKekpGKDBFWExwPGJiWUc3
QHJNSSloZ1M0fk0md01LPFU8KnZkPm4oOUdpTHVzbnc0fGM3Uk8rUVgrcHcxKjMpN15FCnpvT0Rm
ZXpmOXk4b3RhOEFndlQ8SzshY3w7VyUjdEY+MUNLNm42Y3h5ZkZsUF9ZPCNNU1dNb0s8ZU1Aentf
QVNOdgp6VDVGbStaRHMpTE9QOyFvcndTLShoPlgyeUJBUlNMPiNMO0xJSjlfRGhkejR0JVlNVFBr
RDtSR00/TCRLRHkjWjAKemkjKUB5ODNlcUNEPFJoJW45WCZXSGlIaEtPfW4kJndoM19NTmxyMlUy
KUpEP009Tk9WaWpMcHBnXkk5Y1lETn1HCnpnU29nd3spcjk9KXhDZThvRU5MZFNhd1RIWCUkQX1A
SDJXTERNRGlIeHghOzFJVjhNNG88K3NzV21CYSFKPV9GRAp6VX5XLWNXTD1VcVg8eGohZkk1cWJo
IWx4cVMzVmVPakt5X2luIzV3PFR6dExzY0d7Ky09PFA5fEFOUUpqKlIrSmEKempTSUx2LSVoViZC
QGlpK2M9ezxGdU9CQ01KT2AwRi1vdG1zcUpAclpTcUcyRU1oT2loQmxod2xkTGRSO2hxXzt2Cnp2
M3ZXOVppPTRoOF40OGByT2MrS0YpfkdgJklEfiFyNHhNUWpiVTNgaDlRdyQ3c2F+WF48aTJoSiEl
YSZjRFdsUgp6UkZSRE1GOVZvbWl2UUJ3aHwwOEpUYH4tMjw+V0BIOHh5UHhhP31kQlZfaStldTs8
ZmIoXy1mKXYrXkZLZUx4SVoKempkIWQ9SDFTPXtAcl8yPD8/YyEwbW8xa15sKDU8Y1F6bS1gYlcm
S191ekJBRlEzbGc8T1JKZGtTbnZNRilobnpTCnpUbWxNSFJ5RnRLQVdabUs9SkZUIVUyREtqZHx5
KXdgNVpEK01kJU00aWxKdWV2eihiSD1oJH0pU0syYXpGYkM+awp6MV9IT3xXOXpoYTw9ZzhmTTZt
UHxBKkA5TGFsVzxITj9qUCZjOHBXP0BJJVYyMUoheGZqMlI1QWY/NzJiaEwofCYKemo+NTdEPGUl
VXxENlY+LTBie2w3NCNTTH5NYyFmIzxBSVEodSU3Rmk2PDdpcFduMGspbjRfQU1EMTliKntLKiQ5
CnpZO0dkfUUlfEVFQWJibX1Fc25nQ2soSWtMRDQ+NngpaG59SlVUSiRIJUNeTEAlVkdOTFUkTWxT
MHdOOWk5LVpsegp6M1k3SmFQPE5wV1NTMik5RFU1RzYkXyF0RWlRKEdKKV9YTzV7NjtHY09hPVg9
Q09VQFJKblBpRG05Jj8yblZ+TGgKemgmSz5aRXR5cVYhKXdpKVZEcmBSMS1ZfUFANVV6RikqO0kh
JXN2PD1lOXY+JlZpWXNIdklgPmhIPzF3QHNnPk97CnoteiRDWDxyZDhXbkprKiZDYnM/RW5RKUFJ
eXkwPCVkV1p2Sz5pfEo5aEolRFglOXBfSCp2eyEjJXREND8+eWt4LQp6QXAkezxCOzxMYHJObSg8
cT8rfm8rRjVRSy1HXmpFM3NESjY8TT5ASjMmZFJOcEBVME4pfGM+SVAzWG8rZW9gJSQKekBzM3F2
NDVLMyo1dTYmXjxnQCMhN18kSX5IeitWQm9fJSFKem5qVjw2fEdERSN3PSFgVm8rb3ppaHVNSmAo
bmlrCno5PGBVMXZ8T0MkeWdTPEMkMnZ7cXlZWjwzUlcpUlF1M0dIc0YyKzAxPCpQcHJ4YGJVXmFH
bHw9YCRaKzltKE9SYgp6YUEoQkdaV1FlTzxJYFJMa3VPaVdHPSQmUiNUVFM2V2s/SDJCcSpVZ05E
VytKS1o3eyFnY0lebT0qOT1LKGpuOGIKenttbHpxJX11MFU7cXJQPC0oLShydHwkKWlzajs0fSgw
Pmg0MEZFMFAyd3IzcyNedSlmYDlfbSo0dTFkM1I0XmBDCno2SjReKDBrUjZNQXI9emZGUDEmSGRz
PWhTb0NeP047bVNvST9WITB+ZEs9S2BobmAtMlphdn5VelZHSCl0b1NQewp6P1g/eU9mZ1pZOVc2
Ynd6V2ktbnleSVF4fG0rXzA5bXZRJGpadGxtZSpsVGtyai03O3wtOUU3UWJZR2Myej1CPEEKeigk
NWphU3s3I2IqQ1okOU5wbiYmKlEobiNJJkZtbWU3bUVmcyZxV210ZHpBYVZ8JnFvJl9Cfn10bD1h
YWBLUjNeCnoqbjZyZyREakpNPWhxQE1GMTh3X1VfaTx5YT5yRnpeTEBpR2I3YEshVy1hSHFPTHVE
PVFZQWgxMitgYmBVMmNpPAp6U3B6NmspWiQ5U0pBdSFVZnwzb2t3elEhcHl2SUtDZ1o/SiRoeUMl
S2BEJn47SDNPfCtIfmZMWnduVTNmYVNCNm8Kend3I2lpS2Q5VVpEI05nWER9b25ZVCZNV3NhXnxC
fDE4fl9eIWNMQEk+NyQkc0tvN21JeHYqalFNfTQkb0NSPXpoCno+RDFvamtDYldpY3NuYlZsI2Vh
NTJSSm5ZNFlpSlYkTiV+RG5TPSZoejxncz5Qd1FaI05wcFZ+amRYNEhobTkoeQp6M0phbWU+UFEy
OU95YEtrVlpqME1KViVGQk5GQmlabTQwdE1eMnlEQlFMYXNlTSlle0w5SztDbWF3dWAyRkd6PCUK
eio0JSgxbyhUZGI5KHw9TSlxXm89YDA0cnphSnRPRUBiPGQ7M08teVMjfWhLeUJ8TitHNWlOTW08
blpqPlV4d0xJCnpoKCRpUkhRdDBIP1dsWmEhZmBxUSlBI2MlIWdYMUNgWUtpYHAkdVdmYG1XVjla
K3g+ODR6eWNvUjZncUNAPElVZgp6bFV4MWxnZUQhai1jIV5oNko1ZmFuSnkmSWBXVkZONDxOJnF4
TGlEaDtpKVR5fDIxWD9IRXVRK084O0A5PmZyaF4KemcyYUdGLU1hSmJMckRRK0JYZzREeztOaWs8
OExiN2FyTyFWVFRPP0NkczFhbXt7UmRWajgzPChUVFJGKHhwQ1JgCnp7NVF0fTgrR09EKTVBanRT
RWlWdEwoUFl1Q0ZWI2VIVlgld1NVMXckeDtoPVAjR1V5SmpWSzRSc2tpdkg2PllDbQp6VUBGZlRh
TjItZjhVJER9NXI+dlRFJDBOdVRmYEFuUmZxK1NqV18hMkdgWms0dSh8YGJwfSo+WDlpRH1MOXZJ
anIKengyVXdPQ3stcl9eRjQmWXJKWTkyP2NSZTYwViQjS1hefFgqcyRVKlBpSWQoWjNwZF4pMlFG
fnY4NTl4dVBpJjt9Cno7dXdyajc5UCRSbVkkNGtQd0lASm5CVE8tUDJKfEleNjFzblA4ZH1MJSlx
UXt0UyVKcD0kcFJWZDU8TElhbF8+Rgp6YFlPflJQTGxBTW9RNCp4ZnhtRyE8Zz1QTHchLS1MMkd3
ajhHfWMxYGI9YzlCRH5vVm4hN35EJFRLRT8kPTEyPmgKenxBJmZ2Zz9+aD00cUkrO058MVF3QGgy
fEs7ZEBLdlgyIz5AdSRebGc5KzN6WD9raUxpUF9+VmRkeW9qbWdIKS1VCnojSU9hIUsjP15RRnJV
dnM8IzxwSnBibStwVVhISFY5b0I0Sm9KSkFle3tOczhmR1MpOFRfaSlTRGpMN19rKkhyVgp6QGdG
IXhtaCQoRDZZZWE9VnZkZE1aUnpONVFsJWA/bUhZXzwoaWJqdis1dkhyZkNLRjVBK1NZOE47Kzc0
Y24xRzsKei0jKmdZZjF8YF56RT94QytUS0B+YCMrRF4mejhldXRKQktzP2Jfdjc7fDUmV3wwPUtD
MHFRQ0RiSllvNjgxSjZ6CnpuO201cj00MCtwanF7VG53OTN6RmRVTFVxTThxP0dCU1lPI3grZWYy
THMjNXdhX3JZeWhEej5nPVROR2d0XkdYZQp6PXI7RmE5cUZVemZJaWNYdD58I2d0SjFoVihIY15V
MnIlZlZJTDdLI1hrYFUxYzN4dFFXPSU5TDgqYHA4K25Oe0AKenpBKThTNiV3JWdMbFdRSmQoKW9Z
TzBGY1hFYmg9QHNNQjJLZ2xzV09CTStPQF82PlMtJHstQ0tRM2oyaFdfSVJiCnppbzx7Zz5wYEle
R1lNKyZtNSpuQjVfR0xZR3lfTVRUdGQpTUV1M2l9UG1rTXEwMWFiKipIais5QUNVRlIzfUk2Vwp6
XkRqRTA9aFQ5JEVOMUU9cDZXNHBOK0E3eU9OaUs3aGRZIzMoKzRyaTN9RypnODRpVCFTciQxbFoh
TjQ/PmkoVHMKelVDLUpYckkxRSpXc2hwJndOKFFyV2YyX1FoUyVKSEhlVT8pRW8jTTNpencwcV5v
R1A0VDN6eXI0dHdlXmMyOGFvCnpZUkdmSm1FQyp8cCQyMWVxNWJzNlFBSzM9eWt6eGtCKCpwJSUt
eSZAVUFvfFk/NXpkWUJ3Zk81bHE9cThVQWFlRwp6bH0hOCFuaXZOSmNkKztfKjcrTShnVT1iXnBF
bTg1KD9jK2R4eVdCdmtaKT5pTnEkKiN2e2pGMDlXdmpkTnhaNFEKejEpcEFtdzstUlgoPGF+O1NU
UEZUMSpibyRxRCF2U0FJbihqZXF4QVZPRGU3MFU4NypUaUIoYSEjMT58fUloKSlvCnpqam44KXd5
eTV6alVnbEczRk4rVkpLOERpITtrRXZhJj52VjZnPWc8S0RvfmFBQExMOD4lLVlDTGBoOF84YGB5
Owp6bSN3ZURBYFk7cjhIN3pzRyV9dWdOZUk4ZnJYX1hZWH5iQHtFNTBRalAqbnRaI09NT3N5Tkpg
a1VoKVp3IUVLKGUKei0wTWUmTzxCZC1zPDd9O1NZNXI4OFI0LT83XmBIRk5GUyl2VzxvNW4jV2Fq
Qz5vVF99SnJ6OzVCOT1gWElLYk0tCnpzQWV6YjthYkN7ZUpEQSZld1J6UiozSzBEK3E2Sj90KDcx
eFQ7KXBESDlDIyQ9KWdLM09EPT00eCZmPypQPktuPwp6ZlVJZDs4OGxnRWZZIUh3O3tSTj97MSZA
PUMzUGs9R2dacyRyTDJ5QkhtT1FpeDFzYERnYnhGYjRXWDBka2FKNnYKel5yJSlzLU93YWBKe05f
cm1lbVhYQWQzaj8mUHB+fSVBSzl5RU58NHpacjZyYVc+bXV5KWVFbmNpZG9Bdi0wemJUCnp1SHNV
Wj0pP2UxVW8lRE4rJkFHbTs7QFJZUW5nSnwzVSZ3ZkJANn5JIUY5dDJHUntedyNvblRrY25nMmR1
fCMpQAp6UGYhe3pHRT5TSCMkWFN9Q31FZXJRaWh4MkRjfDNqUUsrY2YqRnRFNy10bjsjQD11ZXBh
ZGUxYV9LdDZ7SzA+VnsKeipJQW1FWktTYGtXbiRVPi1mbiVSMSt1ejxvKHR0TGZPYXRTKjhjVCNF
P2ltNmYoe0FfR0ArdkRfXy0lfV9jNm0wCnplUHVxQj00V2JAcEZLcXNifV5ZP3MoMWdFVXRJX2RJ
Xm14MEpWJVlNQmJvP1pPOSsldyZ7SmkmYFpMfE5SKnQ0PAp6TWl0QHRQaCpLZ0w7YXJUOXUmSjBO
YFR7TTREMnBJdXo3T0QhTyk/QD51cHY8JXB3VngodyR7ayNFQWRDOUpIIyEKeip2dXQ9YSYyVD0o
QmtDbXlyckgyaks4VClCPWAkJXdlamhfc01NRmR4X1o3UTkwPlpkeT9fMH1waG9STHpBdCE9Cno5
YTRZfkN5KGlgRVZjRWwwUEgoTzBWRVFve3E+b2cjP0w/fnkpbnw3MX4wc1VMJTlEO0ttQTF2T29k
Zz94Nz4qQwp6RFNZaD9ibC0qSz9CQ1lfQlNFcT1oRSVUMDRVPThALUAkWG9xUyZEaTZLc1E+ZUtF
ODZYUGk9aWloZFM2KUdSMUEKemRMV2Q0OWFOQlpLRTZHTi1TaiFqMUBqI1F1MEE0YipNJSVwKUpQ
Qi1fYVVGUCZTPW5WQ15UO1NXLVI5djJ9aTtZCnohOyRUXlIxT2tFO3JhNCNyMV5lazxYU2F7Z0Nh
aEpnSDgoKU99T34jVVFMb2ZVNGlQN0FYZm04OCs8VkVyWFFFagp6dUc9QkVpXjRuV1BJMypIQkV1
bkdJczRZLSp6P1dNeEppNGlgeX17JklQeWxSSWFmcmM4ekR4RSR7ZGFyZ15QLWQKeiFqRDtKYXBt
WU9BSyRDc0x7NW83TVdLTE9jeTFAeCtBbn4/ZjliN3Y1ZU82bHhEX1MxYTMlRzlJT3JYMEFKQFBR
CnpBakB9TCl3dmRWNWdDMyNXRTxET0YpKD1ScntXfjhaMmJYOHpLYE9OQSZ8YzM7VUhkR0I2dyo1
RnYzSTJEaWBwSQp6MnB8dzF4MiRwfGs4KilfIXxPej00VkJsUjBreSlARXZ4ZDJDKzdldSVUdXxs
Pml4ZSV7M3tvU0hHbnxrSG1selMKelNVVyVQNnp7Nm08MClSQTt7QU8pJTJUe04jcnlsPmhvXlhY
aXVkPWVBVyFrfjZ6P2k4QClZbXlFY3x5VVVZXlMzCnp5Iz9VQzlOfUdIe3pGPGtJbWVUOEpVUGRF
QUkqREJ8TnIqd2dAX2VfPCp1VShwUUpgITBSUGhtSShfUWckPXVfMQpHSH5zfTVgPUlkdgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUg
Nzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODViZjFhMWYy
YjkwNThjZjIxMjUxNGQ2NzYyMDUxNWI5NGE1Y2ZmNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTE1NzEKemNtZUkyYCNhUno5Pj4zNUdjbE5Rbl9TQTFOcDRZJFlvd1MrRjU2fEsrX0p8b00kSkts
YzlnPytseWkjUW1HJSV5CnpySlk9Jml4Zyh0KFFkYjsyLSF7e3gySjgoTTh3WTRTP1FRSHxHO19u
ZSRNJitHfHptVkBCNmRYZFZrbVl5dytPSgp6X1l9azNhaXo9fTgzYUxBSXk+IyRqVVdVbmY9S3cx
QnRlQSNPPnp8WSolPDVLOF9QYnhWVFoqV2p6RE5eT0RraVYKemk3REhoTGtrV3p2antiQEdCd2A5
MntwRmxhRHQ3NHdfS2lVMXpOJjd1RHcwTysxe1NZaD5pXjloSTBAazRvJXQ5CnpBSiltQkVkSWhk
VXA8KCViLSNrTiY0S0tMQXpyY2VnfTF8ZT5mOEsod1lhbjFzbytYUDBLWmpoQkMlU2tIIVg1Jgp6
JWFNMGRIdUY7Qy1zNiRTYSNwcmRnNjZLRClPNE5JdFN1QHFiSk8pQS0ySEhgZkJ2bk4/JHxLMVdk
NHdVQyZmc1AKenZlKE9fckZyNE9GcnxNQVd2Ymc3RUY1cjRgLWlmTmp3NDtKdm5HREJjNiF5aSo2
YFQza15TWTE+QE5OcHZWdV5aCnorTCZrbEt5JVFxZ2Q2WllSJXhMNylafT8lXlg0fCE3fmU5WXc4
bm5STkglWnFib3ojfnA9UmNFekkzeHhpYH58Kgp6PmdibHx4QzdIR1VwKFBhaElNdG0lUH55YlJf
P0lkWGU3ajtoQ0QwT2gmZXRMU2JhNmBPK20kJmUwbF81JkhZKEkKej5NSVNhemVrLU9NWV9KWDRP
REh8UUZsSmQqSjd5REpraFJBdDVRTHlWZUQtel91S0BCcFlPTChRQ25UPmUoO2AzCnooe1MjbkVh
NFA/dn4lSjtCZDVDOXRqV3lPWitkOGdhZlVjPCslaHghKXZvdlQ0THlDP3hsJSpzSGYwO1Rsande
TAp6QTctTGNOOClwWTwyVG8oY2ZIQDJ2KD53PVpAQkhzaDk0ZHJAdzZwNCooR1BGaHYqR3QrbVZD
Iz48OEU4VCRSLXsKelRgcU5TV0IwX0BTYXdfTTwoezJUY1pfPSF4VD1uK0poUUsrWmcke2YoTSM9
fmpRZ3VvVEpEcy1AU00yQ2RzQVBkCnojOXkwcUlPdVplIU5EemVNKygrUGwqXkpsN2dJLVdJNTlh
dGNfZSVHOUpVekVeMiVSMEVaYzY5X2c0RUdNUEc5TAp6YnM9KzNLVX5IbU1XczJ2PkdfWE9VUjVZ
TyN0djw9REtHTUJZeUN+VCE/an5QcV4+RC0jOyNSJEtGaXFOfDlxcEMKelRWYmx6KUdyS0tVQ0FU
SzxEOyh3akMhUHM/KjA3cjtPfT15Nl43OXBHTVpJcDkxXytHOCUtTiswYEVrZzNAWW51Cno+PGsk
JUhURUNCKk9eXl5AeTV9LSVzJD1PP0hTalUpTXs9dC1ibk4mOFFpP2N7K21sfXRPcjhTaiZSU1BV
WGVTZwp6YTYmZldXYVp7bG5kUU1nU3NuJjVrPjhTO2BERXVScihWTnE+Jnl3bFpMalhITjRiRzlS
QDNAWFpgU190IT9Adj0KenlePjVkIUx0fWNsQGltIyFfdzZXJXVWQn5gIXUhey1OQ1owYGA4dVJC
WkJKRllgbnwrVmgjN0xMK3tDemNOTW9eCno+dn1taG9GcDRweCorLTgyQVNeVzN4T3NHTFBlWis/
JHtIRFBQe1plODJWNmNyKVM2MD05XnxsWnF9dE0lSXVeaAp6KjRQP2RZZD9ffkp6ZWdWT0h1diNM
d2tReDxIQ0E2aE0qRWVsMDIxOzM4YVhOKTRid0EkSXBNM3FYVkJMQnVfU3gKenpDNXVNT21Hei1e
UXlOcmM4Wj9DRiFjNTB2ZnkpNkx5MVBXKik8YGgwMjhzV0ljdH58NkZlbDZ2b2J3RD9oczM/CnpO
P2x3ZiowaihWQkBEQmxDKDFBUDQ8dF9kbSooOCE/fk9CZ00rYHt8M0ctNUtqYzctY21zPWpGIVRQ
WlAkcipKcQp6IUc0ZTxkYE1PLWxEfnFTXnwrKkgxTUpNZUNLZ3Mwa3N4TFQkYj8zI0omeklWVHBe
SXZyVz1WeDArZVpWIXtiTFkKem1ZY15BVU0tTl9ld1FLXmNgUENNQlp0djBXPChUX0orV3ZNOCkl
ZkQwSiUmNCkjXlg1O2p7Vilrb0M1emgoISEjCnpSaksocXdtVS04MXdkeGlIKWtnbjtlZ1NhVHBl
M19uX29JJTMxc2AlMjh1PU16LVYha2FGZyh2MWxLYVktMCsoOAp6emd4SjQ1OWQzWksyQS1+T2l3
UCNFcnk5ZnJBU0cqSGZ1fkA8KCFDRWY9T3ZyWVNhRW5UX3E4XjxKPCpFZH1UQ0cKelQ3O35IQWBH
MjZIaylXNyFZWGYhTmRFNjczaXoxK3c1aDJ2JHRiMEdLQFI8N0BgdFV7Zn1DamVxRyVIO29peyop
Cno8RWtSNVFtZjIxPiUjN1Y5ZzNwZl90R0tfaypQcVZHcjlpbVA9dWxjRWs/MnVCO3xjZzdJd2Vt
Vys0PHdOSnUpQgp6NU9xYTkkajNQVlljNnhHcGZ5Q2AxNnxyKFdGQSRSM2NQYVpqOCt0ZE5UN0Ut
I1hfPEQkNytEPkdnbjVtTD9MOzMKejhlS3gka19UVWwwb1Z7MnhJSzBqIUpiTkdWTUxjRzJ7PVh7
KDZrVCNZXzNRfHJ3YjY9Nz0odSN2b3dZQThTfnxvCnpnRDw2fXFLRFUqckJ5TlQqREFocUwqN3F8
dEJVdHwjUSMlTiN9Uz88SyVDbFU/QGY/YTRrK1EkaV9gKjB0SjU7Nwp6KVk2dHoyTjU3al5qSHtX
LXl0T2sydjN2e2E/fCQpKUtJe2dIclV7eHJpZVE8ZUhNMEYqKzNhO0VASjVKQER7ZnYKenRDbXZs
MC05JlJFbHxVdClYZkBRXyV6Pj5scn4/fkBUU1VrPTNWJUZeNzhoZlN0NjAzWCF3dXw2TGJeRlMr
e25MCnp6fCohb0kxbzNGU2YtMXtFOHRealA1MEdwUH0yOytUYz0oSVB0bV5NZn13bE84UiF3Kzdx
QmpXJFA3OVoyOGlpagp6SXQ1YCgwIVFKJj0penFoaGdmYWAjNGx7bUk7YVQoZHdfdDlQVXo1ZXVw
MF9YfEgpcFlwQFAlJWlOfVo1SyE/bk0KenN9LUt7UDsmd302bExXT0ZCcXpJU2xEJVFlTDFNOTJI
TyRiNng8WWlydHQ5UEwmc3xoa0BRejh3MVVyOTxLMT9UCnpWQWFSeVVWPXpFem85TV9MaDJIUm4p
c0Q3QWYpJkpRbmV+UjVLYHdUR2BkZE1ZTiFFTzVib0AyZUYmVWYwSTg0KQp6SkUlRFRGeTYpdGZF
WmAoNzlpaFYtPlV+VFpVRnRnWTJePyZ1MFdHfU85cEM2SG5LM1lWfjE4bDs1WStGKXAlY2sKejha
JUlPTFg5ZFIjJVZ5fitPMUU0bmt5TEVAbXRHWUk2eGhzZEV9bzBIQlozK2FaXytwQFI+cnptaypK
SSpBIz9ACno3Z3s8X0EwcHtiTTYlaXw7YUxRYyZpd28+MEZHeVQmd311OUptWXU8I3xJcUdJRyh8
NkQzMGVwNzApPTV7fndWbwphdzRKJUNRZWtiK1pVPGpNQmhDKSlKMWd5MiReUW1nKUloVFUKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1z
aW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNmYyNmM2ZTIwZjcyYTJkMDk1MTQxMzI5ZmIzMWNhNTllOTNhMWIz
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTY1OQp6Y21lSE5gIyk1OUEzdFlJajliUG53YmA2
cHctayRVODVKaUlCOX5BfHFqNCQzdk0hLSk0eX1EJEhWcXtqbSlmPFAKemtYI2FTOEIlUCE4PWco
NVI5S2dKWVN6OGNTZDJaQ0lyOShmPi1Gc09vUyk5P3lrRm5UPWxnenJLQS1wSl5GMWZVCnokLSFE
JDt1OHF+MEhrZWdfOGtITTVlTlZYP2oldFpWVitKNUxtJTVCdD11RGgxTj9uWU1NUS1GUjM4JXhn
fDY+bwp6Sz1DczxWTTM/VnNaPEo7TFp8MiU+NmBjJVE7YnV5Y3ZzTz93Z2cmUUlAd3hVTFFkaEtD
anh7MDBVIW9VYXZlQzsKej9XRGtlO2gkZUlseEJLVFJAXktnO3xvOFJOWHh2TVElQ0FNSmxgN0Na
bmVxMTUjcSZjUzA2dURBQCkyaSlVKypuCnpURmgpLU96UWRoKDZnRCs/Rnd8PnR6PWRFSW5fR194
cy0haUUrWTVkSHc/XkFQX0BgMndDblI8ZFVoLTUkfCQoRwp6SUpVSmVKeyhhUG07cV9abWZES30y
aCthVWE2cj08bWclbUZveEMlPGVvSzNCPFY1SHxEY2BxO25JJERWcjN8cXkKejgkTUpXXjAqJThe
KXltYHVzM0JnVShjfCQhIz17amgkeWFkKGo/UzNWZCZjbllGQUVCM31MMnR0NX08YnNhK2p4Cnpr
YHAqTUVCJmw5TDE5RW92cDc+SFpGaX5GQT5DMHd0MTc5dkRWMiF4R3V7PDlGVGNxeFcwTm4wRmdI
Mjs3TUo+Mwp6aDVBKzR3X2B4aGVSSj1QTz8mSXwhYHpMQTNrfWElYmcxOCEpb2Z4PEw8WilKYCFs
bVd3I2pLSXQyZz8lLVpsc2gKejlGcjdEVlVCZj16ak1tMHhKR0hGNzxrTU1rMl9AJUllS2x9SWxL
TXU+WU11ZEdjSmhAOD00aHU+eTN4YFA0QnRrCnpzaVUhKFE9SUI4N2tiX3UlYGBwUy0jXmxFTCsh
IUNYbEhXfjg7aXRyV3h2a2BHYzJVJk95N3FrSm9eb3NSMWZeewp6QnJ3dTd3I3VZOypKcWNtajRO
Qm17T3JCSGo8JGgmdzVvMXlhR35JcE1xaGZQVnAzYWU7V092KXk5c2FWdEteeFIKejxEPSs1N0pl
fmdkflk7JmI0YU5xJChmJXpUNF9WYHxIVSFVeGk4OVNqTnl7Szckdz1JZXxiWFZ3NEEkQ3tqRGgp
CnpaK296V1cwRiM5Y0p0Rm1vditKZWU/YDlCVk9DbjsoJFc1aCN1Tkp8OUtYOGVSSVd3KSMoOVJH
ckRyfSV7YXtgeQp6Yj5AWVdxP1R4T0I0X00oRldvK3xmYC1TKGhXQC1xRCRAeTlPSygtO1RFJVVo
Vml+Wl55bFg+fj18JW1sWmErPzsKem8rcWNGSkVRKmwkfV5XUV9HYGBVTmlVSiNSOGA1VUphP0Yr
VUghZHAoMUFPVmoofl9waChxQDV4PVdMP1VyV1glCnotYDwmV3ZERGBYISU8cnpecntwc1RndFpG
PURBTUF1OFpSJEg3Pm8hI3NhK35zSSVMey1mVWlhenxrPnc2UXlseAp6YDdKXzY+QUZHR2g8SFVE
WjNqb09VdUFiZUV0MFhULT93Wn0yKSNiZD5+THYrcXxWVlRWMXJDKSYkWF9Tbz4lT1YKemMqJlQ7
TWJUbjRpUWQtbHkhOFA5MCZNcn5iJlViWFUrb1AjWlleaSFUcys7e1NXUk9fLSFSJjlBY3BhYjtW
NUJJCnp3RXI1PD5PYnRDbk8+QmVVRkZUb2FYZD18MDB+NEE4RztjWUEoWUpQR0czSDJQc0F7Z3Um
aExlXyorKjhkPkE8dQp6TExpTHYtJn0mJD1Ba2UjSWJQKUJEbDNFSGF1SHpPRDlBaW5YZCY/VDBp
aWQtZkY9YTlGMShPWU1LfUl2MGdVakIKenV7V2ZwUi1EOExFdTFfNSFNZkUheWtXKXI/NFFgP28/
UHliSWM/ZTZpNylxWUdIUU1qO2hhZC0pUyp2UCkpcXVzCnpUdFFIdWRtPklyY280eUY9dG9uYlh+
aEpCLWBmdEo0dDU7TGI7TClsYzJWalc7KHtWaWJFbDdDWFdTcWBWa0JrMQp6d1pWYFpDe2s9Wis8
PSs4THhCdVE+aEAke2hgbk9Xb2NWVlBEeEYyTiUxUHwjcElmKHQhZWNMIWJoaXI1VXFPU0IKelRn
XlVWPkhfMypZWiFUYVB0d34kSy1scG4xbmBKJlRXXkNRPT9ISyZMVyVWP00hXntudG0zREIlREBu
MWxvWW0zCnpvSCN9YjdvfWlIYVRrT2tSMjFudiMqQFArO0doKXpzZUt5OGtPKDYyUUNgRTgyMVlA
ekIjRlUyQCZ8JDtWPFp4VAp6OGEtcihRRSZfT0NyPGVAUCtaX3JrN2RiRiM2KVloMDNmXlRMVTZC
bHJISV4kVGRvP0ZxWHl2dztSTE5aMU1XZTEKemheXiVsSk99KmBCPFU4RmF0R2YwXm42Zyg5dkxG
YmpJfH1XNS1VTWtqKUtpI0VHS1pZSyU3OD01KHRMaHBIM0E+Cno4ancobikrQSpgQSgtJXh5aWoj
b19tZWd6U0gjei1LLVUpMyRPPVJTM1BZN2dOeDZLQG5iNnJXKzdTSHUlIX5hMwp6TU1ZWXlWOGtu
fDVmZns4dW5ZbGtnSyZtRUkzKF52YyQ1aUo2UH0wZyNRMykpTXQpdTYhalc9Ujh+SHMwQDNYUHEK
emlPbDs3P1JzWXhDU0ltczs5P0hpZShSa3YmaytiQCVjTUxSWU0kKU83bEpPTD9YXm5iYH0wRWMl
c313KFQmbV5ICnp2aU1TMEdrP01OVWpmVTUmSFJeVllpamJCRndKJkFtN1okMlRPSmM9Q3EqKmtN
KjlecmshKnN0cH5YWDIxdCRYJQp6TilWdVUjP3dLRl9IN1hDQWwtJG5PTEFSRHc4YG9WN3Blc3Um
PFl8Yk1zdXliZ3k4R2pBLUpVUmlxUEkrWHUwNj4KenooNWUmQWkpZzs0fl5jPDZXWkdhTSlFIT41
SGp5M0klI3xQc0w8WWRYbDMkciR7c1RoYzdxWXUqcXZJfi1oPTJwCnpMRDRyU2gwSDQ8NVB0YU82
amY7TkFfVHl4U3ojV2g9QSYycW13OFJYJTd0UXtoO1oxRTFIXmdLSGc+JTxBPHdwZQp6NW4+N2A8
ayZrd0BKWiZ+WUB3aGNsY0J2blNhY3c7OWdJfV9qY1peS0w/cWZVSGUlTnkoNyl4IyZgeXVETFYt
dkUKekt7PDYlcCpYQlk9aXNLYHRsKyt+KChkOUIxbWsmU15gajQtWjl4TEFMOHVfKCUxazhUTUZM
dGU7aVZKI0E2cTBgCnpZUDNpSG5ofEhPezBwI0ZBTERfSTJsaV5pZyRNUk9IP1ordyM9Zz93RHZo
aTM+WGowSD9TckBTdDcrbD9AYF5CRgphOE1JKDRtNW5MN3h1YnRxMUdaS1VgKSpxdFB5N3IwbCRr
UkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1zaXppbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIxMTY0NzAzNGRiOGE1Y2FkZTNmZDQzZDgzMjdiNjI1Njgx
NjRhOQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE4MTUKemNtZUhOYCZVeX03UVF6YDUmfGtn
M05sZz85c3d4fGk+RXduaHk7YFhAKGA7aUctKEpSajlfPyNmfF4ydFdyfFBACnpwY1Y7RiNtWG9K
MGpvVGVLb098WjV2VUBsTyViUk5pZk5HWWp0eG1LTExrJEJWM3NyWXI+eUw/JnAhS315VStLMQp6
YDwjMHd6O0V3KiUtPThvMElhOFlkRiUlT0g5UDx5ZzM7PWJoNXU9SzlRMCRzQChnQSVxOVBjXzV8
ZCY5ZHh5d3kKeiRIKmBUZCZsckYyN1Jaa3FmP2otIV5TMyhaV2tGQU10OEU2ZUlfQDlxSEsqT2xM
SUpaR0NtLUk4NXRjRDBSU21yCnojKH18T3kjYyFOcENYRURoTz1GY1Zse3xTeHlRcVVTbWRIUiN8
fH1oOWVMJGdaeyReWUVqRTxqWCh+eXJLfFJsQQp6eF55Sn1qdmA3P1RGKn4yUHZ4IWUpVEorY2xX
RldiWE1DJXEoMC1xSmtYcXlYLTloUHV2LSNLdndNLWcrcSp2RV4KenF3WXNSe3ZCPHlfN1VCfERV
ZlBOd3Y8S2YlbD9PK3g3bDlPI0BAT1V1V3dDbip4REp4bnFVckEke0J0OWkoMSU4CnpMJWlVRUwl
Wj90O2otd15DIyszRntieWJtK2M+bSFgNmRRZUFUQEFEb3RPO25AUncmenpLWFBXQW5gVFlQI3h8
cgp6SmBFKE5PVkxCcT56e1JWYnd8dzJ1SUV7MEAyZDNOWiNeM0JTKkpCT2lBeXteTVhVTWVoNEkz
d0czflJsZDtgQm4Kej81cjAhPWc7RTQ2YWp0VHh6UlFeP2B8bEwzd0NeMj92VSE8V209NmpZYVd8
bU1QSEljQGJlRV89bnhEfD99Wih4Cnp3dV59dFh7dyMhaStVdzkwZUxtMF9BVH55aG9AZ2sweGx4
T0hYWEJiSzZfQEdueDZgRCYhYipDNUd5U0QoQDY1Pgp6YFBxYzUoR3opLTslflF9P1ZBYjdiMiVz
IWomeGwheCE7fX49JShpN29fQHxTZUFgZzJ5QjN8I1h1cS1HdDdsO0IKemVmNG9QPiVmVVJyKyhM
TT1mOUV8P29JZ0BaOUBaOVojSlpeVlElUDtrXiNjZ2JOQWxNPSVfRCQ3QVUjUjlkRH1KCnojTlUj
Wk1FfDx7YDAmb2coWlZnVW03M140ZERkdkg3ZDdHc3xNYkE4TnNna05wbk9AOVd7PlRLM0JzcDMh
Q0ZuPAp6T2l+djxoezU9MD0ocHYhSmJCUmxxNisoT1BXKk9hV2wyejE9V20zXnpLX00+NEp9IS0/
d3k7WklYMmBZI1JBaVAKek1Pbl5NS0x1IS10MCQrNk1aYmh2S1NoPD9lZmFWNG4/YGglUmY1VTZI
dkwmb3ckWUAoUEMlczlHYylOR0xQMmwxCnp4WkxLNV8tPTEqKTBOdGo3a0VQUnhldzNYKmtuKndF
MnZGOWhfP0xwM2docUl3XjtzdzhYP3YlZXxwe2QqVnhaQgp6Kl9xV2wmaFJTMzQoMGU7VndlUzUp
Tzs8PE98UiF4SExnNX4rTVNeT2s0NGU2TUNhKWI7Pk5jdS1XT1ojezc5V0AKeihFMkZSTzI1bzVY
KykhalAyRGJqUGwoJTlRcVJlQzYqOChtakhOZWE2QXhBalN5bXhpIU1odFBgJH5JbV5iTCVTCnpx
LW15PCVoYSElVkVXckcoYCozJTReVFhJQTRtWnUxQSlpT0k8T2chb1draDhaVTNTQlNwaGoxc0o3
QTx5LUcrYQp6ZWpeO0g1T013TT5+VzxuaWd7fVY3RWpeO0FPZVpqIyo+Q25OY3AwZytrS3Zqam5q
JWxBbGhsaldza1M2c2xGdFIKeloxWmlMJExjXjEybHpkQz9IfEMhWlBMY08/VUE1VnFUQC1qX2Zf
SCFlVUMmdzswNkElYHxacmpXNnwxYXNISHFzCnpBfSFjfTsxdUlZc2BnNUhPWGlrUEVTdD5eZVNm
cnczQFV6SEdgZCM0SXpYQF5QN2p+PF5UQFB0S0VDeTlqQGk4QAp6RUlzQU9SeFhHM29lUFBEUjJy
YUFifDdlKlh6UklfSHNsMDIhIz5JZGgxVW5KamttUGA/K1h8PVIhfHduZ20oLVIKenhVQCpke3At
QnBBeyFMfm0qKm1tZj5UbmRsIXUmJlFuOEI9c3EybSVrSH1OJTBTPkByViRlQkUjRzRgJlF6SGlg
CnoycWBkQ3ZOUitjM0s1OHJMSnJZPCZHZDtDbytMVkdybENVUypFb1JHdGdKYEhiVihEUCh8RDFo
bDdQU2hQWkRWUwp6bnk2d0RBclJxek97cituPVR7c0tIK1Ywck19WXdxP3UpZGB1WThxYnhLKnUo
SWtJP2VrSG1wSnBPMjFlWXgldEkKekB+WCU8MS03SyR1QWU1VD1sfnYrSkAlb0tpc2NqdCoxPGtY
OVJSTm5UcFA9cDlOcmYmWlkpOzxqMHhgPUNiYUQ4CnpSIUE0VkZJQ2pLNSFRSG1zQzIxbUUtZnVw
Izg3VWtAYnsxcCNGTWp4VG9xRDhSem5UQCNqQS0qVDdXMlpWTHlxKAp6cmk4Q2AmO1p2RzFRUTcz
aER0SnEjdFU/e0BpWk5TKXZnfVczKklEN0Q4PU9xNi17Qmk0KjRNOEx0UTB5Z05gPS0KelArcXJA
TzBHVzhhbGxfdz5YczhgY3N5UkV0TWdidVlmQ157PUorPHsrKzN6KyhZZ2w7PTlITUpramBabyMr
Z3FGCnpaemBIeUE1dkQ7MENFRlRoVW97ZG41YXlBTmR1aXphTmFeMDEkdSVGKDFYSzEkYD04ejRf
cTZ8d0UqdTY3Jm4kTgp6OUw5dXE0SE1YR3hxTDhZcmwqMlBCK0EqWHJTY3QhejJlMT9pSFI/Q2x1
U0xOQXhvR3dSZ3xDbDQ/Yl4oJklsQCMKej4jMktJU3MoOTU7PFEoX1hSTEFQNDBMR2xWJko1fnMo
Um8kZnVLJmtqPXImeU1EUmFhO3o9aXkjU3Y+JXswa0U0CnpefE48cT1CZz9uLVEpbnsxNkJFSmNM
PHIjdHdPd0l5d01zckh6Tj5OO2JoUi1AWDlPfjU/bkpZeUJGUn4laXNnIQp6JXJZIykyKXNmKXxN
VDJyayFkPnkwR1FLRC12VFRWQn1AJTRITlpqKGZDMkZUMXByfnRnTF4ycnlMQH18NHVjKkgKZ2Rq
R1pLa3A8bDUwa2I7O25MRkV8RlRWa2JyPUxmKWB6UHN0MHd7YlgtVChqcQoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1h
Z2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVyIGF0ICgxOCwxMCkgc2l6
ZSAxMDJ4MTAyCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMngxMDIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwxMjIpIHNpemUgMTAyeDEw
MgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEwMngxMDIgW2JvcmRlcjog
KDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNpemUgMTAyeDEwMgorICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBz
b2xpZCAjMDAwMDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjA1MjRiMi4uZTIyZTRkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UXVhZC5jcHAKQEAgLTEwODAsNyArMTA4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxNzk0ZTIyLi4yZDc1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
OTcgQEAKKzIwMTEtMTEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5j
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIx
NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlciAtd2Via2l0LWNyb3NzLWZhZGUu
IE9ubHkgY3Jvc3MtZmFkZXMgZW50aXJlbHkgY29tcG9zZWQgb2YgaW1hZ2VzIHdpbGwgcmVuZGVy
IGZvciBub3csCisgICAgICAgIGNyb3NzLWZhZGVzIGludm9sdmluZyBnZW5lcmF0ZWQgaW1hZ2Vz
IGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgIFJlb3JnYW5pemUgR2VuZXJhdGVk
SW1hZ2UgdG8gYmUgdGhlIGJhc2UgY2xhc3MgZm9yIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIGFu
ZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS4KKworICAgICAgICBBZGQgYSBwZW5kaW5nIHN0YXRl
IHRvIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUsIHdoaWNoIGlzIHVzZWQgdG8gZW5hYmxlIHRoZSBw
ZW5kaW5nLWltYWdlcyBsb2FkaW5nCisgICAgICAgIG1lY2hhbmlzbSBmb3IgLXdlYmtpdC1jcm9z
cy1mYWRlJ3Mgc3ViLWltYWdlcy4gUmV3b3JrIHRoZSBsb2dpYyBpbiBDU1NTdHlsZVNlbGVjdG9y
IHRvIHN1cHBvcnQgcGVuZGluZworICAgICAgICBnZW5lcmF0ZWQgaW1hZ2VzLgorCisgICAgICAg
IFRlc3RzOiBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisgICAgICAgICAgICAg
ICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAgICAgICAgICBjc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ2FudmFzVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDYW52YXNWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjppc1BlbmRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMp
OgorICAgICAgICAoV2ViQ29yZTo6c3ViaW1hZ2VJc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6bG9hZFN1YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3Nz
ZmFkZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6
On5DU1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1
ZTo6Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1ND
cm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jv
c3NmYWRlT2JzZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgICog
Y3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRW
YWx1ZTo6aW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTR3JhZGllbnRWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0lt
YWdlR2VuZXJhdG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjpzdHlsZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdlbmVy
YXRlZE9yUGVuZGluZ0Zyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjpsb2FkUGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNy
b3NzZmFkZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpzZXRSZWFkeSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2Uu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6On5HZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
ZW5kaW5nSW1hZ2U6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6
OmNzc0ltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNz
c0ltYWdlR2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1h
Z2U6OlN0eWxlUGVuZGluZ0ltYWdlKToKKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFuICA8
bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXR1cm4gbW9yZSBjb21wbGV0ZSBlcnJv
ciBhbmQgZXhjZXB0aW9uIG1lc3NhZ2VzIHdoZW4gYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggMGQyMTMzYy4uZjA3ZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0yNTA5LDYgKzI1MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rhc2hBcnJheS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNp
b25zM0QuaCBcCkBAIC0yNjI2LDcgKzI2MjgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRTbW9vdGhpbmdNb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUcmFpdHNNYXNrLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRXaWR0aFZhcmlhbnQuaCBcCi0JU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQx
ZDVjODQuLmQ1NjZmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTAzNiw2ICsxMDM2LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAgXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFF1YWQuY3BwIFwKQEAgLTEwNDQsNyArMTA0NSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgXAotICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIFwKQEAgLTIwNzIs
NiArMjA3Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhl
bWVNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggXApAQCAt
MjEwOSw2ICsyMTExLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDQ4MTY4YzMuLjFhY2ZkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzAsNiArMzMzMCw4IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFBvaW50M0QuY3BwJywKQEAgLTMzNDYsNyArMzM0OCw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L0dseXBoUGFnZVRyZWVOb2RlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmMjNiMTcwLi4xYTMxMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTksNiArNjk5LDEw
IEBACiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2
MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJF
OEUyQzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAx
MDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNW
R1BhcnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTJENDgxRjAwMTQ2QjVDNEMwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICov
OyB9OworCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZD
MDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovOyB9Owor
CQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTYx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKKwkJ
MkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NzE0NjBD
RDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLzsgfTsKIAkJMkQ4RkVC
REMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcy
NTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFk
ZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkw
NjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovOyB9OwpAQCAtNTI3Nyw3
ICs1MjgxLDYgQEAKIAkJQkNFMDEzOUEwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5
ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLzsgfTsKIAkJQkNFMDEzOUIw
QzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDEzOTkwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5
bGVTaGVldC5oICovOyB9OwogCQlCQ0UwNEM4QTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwNEM4
OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdl
bmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRTA0QzkzMERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87
IH07CiAJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMUM0MTkwRDk4Mjk4MDAwM0Iw
MkYyIC8qIExvY2F0aW9uLmggKi87IH07CiAJCUJDRTFDNDFDMEQ5ODI5ODEwMDNCMDJGMiAvKiBM
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0UxQzQxQTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uY3BwICovOyB9OwogCQlCQ0Ux
QzQzQjBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQzOTBEOTgzMEQzMDAzQjAyRjIgLyog
SlNMb2NhdGlvbi5jcHAgKi87IH07CkBAIC03ODAzLDYgKzc4MDYsMTAgQEAKIAkJMjlEN0JDRjkx
NDQ0QUY3RDAwNzA2MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0
YUNoYXJzZXRQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSFRNTE1l
dGFDaGFyc2V0UGFyc2VyLmg7IHBhdGggPSBwYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAv
KiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0
YUNoYXJzZXRQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1
NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTcxNDYw
Q0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEM0EwRTM1MTNBN0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5n
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGFyc2luZ0Vycm9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1NzcsNyArMTI1ODQsNiBAQAogCQlCQ0UwMTM5ODBD
MEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1N0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRl
ZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRl
ZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MTkwRDk4Mjk4
MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFDNDFBMEQ5ODI5
ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFD
NDIyMEQ5ODI5RjIwMDNCMDJGMiAvKiBMb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTG9jYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMTIsNyAr
MTkyMTgsMTAgQEAKIAkJCQkzNzIwMjE5ODEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGlu
Z01vZGUuaCAqLywKIAkJCQkzNzg0QzM0QTBFMTFBQTM0MDA3RDhENDggLyogRm9udFRyYWl0c01h
c2suaCAqLywKIAkJCQlCQ0U0NDEzNTEyRjc0OTBCMDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFu
dC5oICovLAotCQkJCUJDRTA0QzkzMERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5j
cHAgKi8sCisJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCAqLywKKwkJCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYz
MyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUJDMjNGMERBMERBRkY0QTQw
MDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUJDRTA0Qzg5MERBRkY3QTAwMDdB
MEY0MSAvKiBHZW5lcmF0b3IuaCAqLywKIAkJCQkwODZCQkQwRTEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCAqLywKQEAgLTIyMzczLDYgKzIyMzgyLDggQEAKIAkJCQkxOUJGRjY0QjExQzBGMkFD
MDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE5QkZGNjREMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI0ODBBRDQzOEMwMDAz
Nzg1NDAgLyogRE9NU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMkFCOTIwQUQ0Mzk0RTAw
Mzc4NTQwIC8qIERPTVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NTAyQUI0QTBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI5MzBBRDQzOTRFMDAz
Nzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjUwNTIsNiArMjUwNjMsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUFEMDNBQUZBMTQ2ODQ1NTMwMEEzOUI1QiAvKiBD
U1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMDE0NkI1QzRDMDBBQTc4MzQg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ0ODFG
MDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI1QjVEQzY5MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTFCMUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0
cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5
NEUgLyogQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU3ODcs
NyArMjU4MDAsNiBAQAogCQkJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3Rv
cnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVD
RTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5
MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFCRjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25D
bGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTZDQjIxMTBENUFDODAwMEE3N0M2
NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYW52YXNWYWx1ZS5oCmluZGV4IDIzMmE1MjUuLmVmYWQ3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYW52YXNWYWx1ZS5oCkBAIC00NCw2ICs0NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlz
Rml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIEludFNpemUgZml4ZWRTaXpl
KGNvbnN0IFJlbmRlck9iamVjdCopOwogCisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRl
ciopIHsgfQorCiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUg
PSBuYW1lOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmNwcAppbmRleCBiNzcwNjlmLi42M2I3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5jcHAKQEAgLTI2LDggKzI2LDIxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKIAorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUu
aCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0eWxl
Q2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUoUGFz
c1JlZlB0cjxDU1NWYWx1ZT4sIFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKK3ZvaWQg
bG9hZFN1YmltYWdlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+LCBDYWNoZWRSZXNvdXJjZUxvYWRlciop
OworYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQYXNzUmVmUHRyPENTU1ZhbHVlPik7CisKIFN0cmlu
ZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5n
IHJlc3VsdCA9ICItd2Via2l0LWNyb3NzLWZhZGUoIjsKQEAgLTM4LDE5ICs1MSw4NyBAQCBTdHJp
bmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUludFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5n
KCkgY29uc3QKIHsKLSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOworICAgIHJldHVybiBzdWJp
bWFnZUlzUGVuZGluZyhtX2Zyb21JbWFnZSkgfHwgc3ViaW1hZ2VJc1BlbmRpbmcobV90b0ltYWdl
KTsKK30KIAotICAgIHJldHVybiBJbnRTaXplKCk7Cit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjps
b2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikK
K3sKKyAgICBsb2FkU3ViaW1hZ2UobV9mcm9tSW1hZ2UsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsK
KyAgICBsb2FkU3ViaW1hZ2UobV90b0ltYWdlLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiB9CiAK
LVBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQ
YXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdl
dCgpKS0+Y2FjaGVkT3JQZW5kaW5nSW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKTsKKworICAgIGlm
ICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5pc1BlbmRpbmcoKTsK
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIGxvYWRTdWJpbWFnZShQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291
cmNlTG9hZGVyKQoreworICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKKyAgICAgICAg
c3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Y2FjaGVkSW1hZ2UoY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHZh
bHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJl
c291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCitDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOwogICAgIFVOVVNFRF9Q
QVJBTShzaXplKTsKIAotICAgIHJldHVybiAwOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBj
YWNoZWRSZXNvdXJjZUxvYWRlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpOworCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hlZEltYWdl
KGNhY2hlZFJlc291cmNlTG9hZGVyKS0+Y2FjaGVkSW1hZ2UoKTsKKworICAgIGlmICh2YWx1ZS0+
aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlIChhbmQgdGh1cyBjcm9zcy1mYWRlcyB3aXRoIGdyYWRpZW50cyBh
bmQgY2FudmFzKS4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFn
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlm
IChzaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBDYWNoZWRJbWFnZSog
ZnJvbUltYWdlLCAqIHRvSW1hZ2U7CisKKyAgICBmcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNT
U1ZhbHVlKG1fZnJvbUltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisgICAgdG9JbWFnZSA9IGNhY2hl
ZEltYWdlRm9yQ1NTVmFsdWUobV90b0ltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisKKyAgICBpZiAo
IWZyb21JbWFnZSB8fCAhdG9JbWFnZSkKKyAgICAgICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2Uo
KTsKKworICAgIG1fZ2VuZXJhdGVkSW1hZ2UgPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3Jl
YXRlKGZyb21JbWFnZSwgdG9JbWFnZSwgbV9wZXJjZW50YWdlLT5nZXREb3VibGVWYWx1ZSgpIC8g
MTAwLjAsICZtX2Nyb3NzZmFkZU9ic2VydmVyLCBzaXplKTsKKworICAgIHJldHVybiBtX2dlbmVy
YXRlZEltYWdlLmdldCgpOworfQorCit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVD
aGFuZ2VkKGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKHJlY3QpOwor
CisgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjbGll
bnRzKCkuZW5kKCk7CisgICAgZm9yIChSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0
ZXJhdG9yIGN1cnIgPSBjbGllbnRzKCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsrY3Vycikgewor
ICAgICAgICBSZW5kZXJPYmplY3QqIGNsaWVudCA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4o
Y3Vyci0+Zmlyc3QpOworICAgICAgICBjbGllbnQtPmltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxX
cmFwcGVkSW1hZ2VQdHI+KHRoaXMpKTsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKaW5kZXggZDU0OWZiZS4uZmFj
ODQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKQEAgLTI3LDM3ICsy
Nyw2MyBAQAogI2RlZmluZSBDU1NDcm9zc2ZhZGVWYWx1ZV9oCiAKICNpbmNsdWRlICJDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUg
IkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFn
ZU9ic2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkSW1hZ2U7
CiBjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgQ1NTQ3Jvc3Nm
YWRlVmFsdWUgOiBwdWJsaWMgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENT
U0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiB0b0ltYWdl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbUltYWdlLCB0b0lt
YWdlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1ZT4gY3JlYXRl
KFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9J
bWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwg
dG9JbWFnZSkpOyB9CisgICAgfkNTU0Nyb3NzZmFkZVZhbHVlKCkgeyB9CiAKICAgICBTdHJpbmcg
Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9i
amVjdCopOworICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopIHsgcmV0
dXJuIEludFNpemUoKTsgfQorCisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdDsKKyAgICB2b2lk
IGxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKIAogICAgIHZvaWQgc2V0UGVy
Y2VudGFnZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlKSB7IG1fcGVy
Y2VudGFnZSA9IHBlcmNlbnRhZ2U7IH0KIAogcHJpdmF0ZToKLSAgICBDU1NDcm9zc2ZhZGVWYWx1
ZShQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJbWFn
ZVZhbHVlPiB0b0ltYWdlKQorICAgIENTU0Nyb3NzZmFkZVZhbHVlKFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9JbWFnZSkKICAgICAgICAgOiBD
U1NJbWFnZUdlbmVyYXRvclZhbHVlKENyb3NzZmFkZUNsYXNzKQogICAgICAgICAsIG1fZnJvbUlt
YWdlKGZyb21JbWFnZSkKICAgICAgICAgLCBtX3RvSW1hZ2UodG9JbWFnZSkKLSAgICB7Ci0gICAg
fQorICAgICAgICAsIG1fY3Jvc3NmYWRlT2JzZXJ2ZXIodGhpcykgeyB9CisKKyAgICAvLyBOT1RF
OiBXZSBwdXQgdGhlIEltYWdlT2JzZXJ2ZXIgaW4gYSBtZW1iZXIgaW5zdGVhZCBvZiBpbmhlcml0
aW5nIGZyb20gaXQKKyAgICAvLyB0byBhdm9pZCBhZGRpbmcgYSB2cHRyIHRvIENTU0Nyb3NzZmFk
ZVZhbHVlLgorICAgIGNsYXNzIENyb3NzZmFkZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgSW1hZ2VP
YnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICBDcm9zc2ZhZGVPYnNlcnZlclByb3h5KENT
U0Nyb3NzZmFkZVZhbHVlKiBvd25lclZhbHVlKSA6IG1fb3duZXJWYWx1ZShvd25lclZhbHVlKSB7
IH0KKyAgICAgICAgdmlydHVhbCB+Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSgpIE9WRVJSSURFIHsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSosIGNvbnN0
IEludFJlY3QmIHJlY3QpIE9WRVJSSURFIHsgbV9vd25lclZhbHVlLT5jcm9zc2ZhZGVDaGFuZ2Vk
KHJlY3QpOyB9OworICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGF1c2VBbmltYXRpb24oY29u
c3QgSW1hZ2UqKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRHJhdyhjb25zdCBJbWFnZSopIE9WRVJSSURFIHsgfQorICAgICAgICB2aXJ0dWFsIHZv
aWQgYW5pbWF0aW9uQWR2YW5jZWQoY29uc3QgSW1hZ2UqKSBPVkVSUklERSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIGRlY29kZWRTaXplQ2hhbmdlZChjb25zdCBJbWFnZSosIGludCkgT1ZFUlJJ
REUgeyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJW
YWx1ZTsKKyAgICB9OworCisgICAgdm9pZCBjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
KTsKIAotICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBtX2Zyb21JbWFnZTsKLSAgICBSZWZQdHI8
Q1NTSW1hZ2VWYWx1ZT4gbV90b0ltYWdlOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV9mcm9tSW1h
Z2U7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBtX3RvSW1hZ2U7CiAgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBtX3BlcmNlbnRhZ2U7CisKKyAgICBSZWZQdHI8SW1hZ2U+IG1fZ2VuZXJhdGVk
SW1hZ2U7CisKKyAgICBDcm9zc2ZhZGVPYnNlcnZlclByb3h5IG1fY3Jvc3NmYWRlT2JzZXJ2ZXI7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGll
bnRWYWx1ZS5jcHAKaW5kZXggZmViMDFmNC4uYjU1YjQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFsdWUuaCIKIAotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiR2VuZXJh
dGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpAQCAtNjcsNyArNjcsNyBAQCBQYXNzUmVm
UHRyPEltYWdlPiBDU1NHcmFkaWVudFZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVy
LCBjb25zdCBJbnRTaXplJgogICAgICAgICBncmFkaWVudCA9IHN0YXRpY19jYXN0PENTU1JhZGlh
bEdyYWRpZW50VmFsdWUqPih0aGlzKS0+Y3JlYXRlR3JhZGllbnQocmVuZGVyZXIsIHNpemUpOwog
ICAgIH0KIAotICAgIFJlZlB0cjxJbWFnZT4gbmV3SW1hZ2UgPSBHZW5lcmF0ZWRJbWFnZTo6Y3Jl
YXRlKGdyYWRpZW50LCBzaXplKTsKKyAgICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShncmFkaWVudCwgc2l6ZSk7CiAgICAgaWYgKGNhY2hl
YWJsZSkKICAgICAgICAgcHV0SW1hZ2Uoc2l6ZSwgbmV3SW1hZ2UpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuaAppbmRleCBmMTNhYzk4Li5lYTEwZWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIEludFNpemUgZml4
ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQog
CisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQg
bG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgQ1NTR3JhZGllbnRWYWx1ZShDbGFzc1R5cGUgY2xhc3NUeXBlLCBDU1NHcmFkaWVudFJlcGVh
dCByZXBlYXQsIGJvb2wgZGVwcmVjYXRlZFR5cGUgPSBmYWxzZSkKICAgICAgICAgOiBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlKGNsYXNzVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmNwcAppbmRleCAxYzNjNjUyLi40MWI0NjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiU3R5bGVQZW5kaW5nSW1hZ2UuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTEwLDEzICsxMTEsMjYgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpwdXRJbWFn
ZShjb25zdCBJbnRTaXplJiBzaXplLCBQYXNzUmVmUHRyPEltYWdlPiBpbWEKICAgICBtX2ltYWdl
cy5hZGQoc2l6ZSwgaW1hZ2UpOwogfQogCitTdHlsZUltYWdlKiBDU1NJbWFnZUdlbmVyYXRvclZh
bHVlOjpnZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgpCit7CisgICAgaWYgKGlzUGVuZGluZygpKQor
ICAgICAgICBtX2ltYWdlID0gU3R5bGVQZW5kaW5nSW1hZ2U6OmNyZWF0ZSh0aGlzKS5nZXQoKTsK
KyAgICBlbHNlIGlmICghbV9hY2Nlc3NlZEltYWdlKSB7CisgICAgICAgIG1fYWNjZXNzZWRJbWFn
ZSA9IHRydWU7CisgICAgICAgIG1faW1hZ2UgPSBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUo
dGhpcywgaXNGaXhlZFNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7
Cit9CisKIFN0eWxlR2VuZXJhdGVkSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdlbmVy
YXRlZEltYWdlKCkKIHsKICAgICBpZiAoIW1fYWNjZXNzZWRJbWFnZSkgewogICAgICAgICBtX2Fj
Y2Vzc2VkSW1hZ2UgPSB0cnVlOwogICAgICAgICBtX2ltYWdlID0gU3R5bGVHZW5lcmF0ZWRJbWFn
ZTo6Y3JlYXRlKHRoaXMsIGlzRml4ZWRTaXplKCkpOwogICAgIH0KLSAgICByZXR1cm4gbV9pbWFn
ZS5nZXQoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdHlsZUdlbmVyYXRlZEltYWdlKj4o
bV9pbWFnZS5nZXQoKSk7CiB9CiAKIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0ltYWdlR2VuZXJhdG9y
VmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUp
CkBAIC0xNzAsNCArMTg0LDQxIEBAIEludFNpemUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Zml4
ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIEludFNpemUo
KTsKIH0KIAorYm9vbCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAor
eworICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQ3Jvc3NmYWRlVmFsdWUqPih0aGlz
KS0+aXNQZW5kaW5nKCk7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IENTU0NhbnZhc1ZhbHVlKj4odGhpcyktPmlzUGVuZGluZygpOworICAg
IGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IENTU0xpbmVhckdyYWRpZW50VmFsdWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgY2Fz
ZSBSYWRpYWxHcmFkaWVudENsYXNzOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMoQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIHN3aXRjaCAoY2xh
c3NUeXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgorICAgICAgICBzdGF0aWNfY2Fz
dDxDU1NDcm9zc2ZhZGVWYWx1ZSo+KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNl
TG9hZGVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAg
c3RhdGljX2Nhc3Q8Q1NTQ2FudmFzVmFsdWUqPih0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRS
ZXNvdXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZWFyR3JhZGllbnRD
bGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZSo+KHRoaXMp
LT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBSYWRpYWxHcmFkaWVudENsYXNzOgorICAgICAgICBzdGF0aWNfY2FzdDxDU1NSYWRp
YWxHcmFkaWVudFZhbHVlKj4odGhpcyktPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCmluZGV4IGQwZWI2NWIuLjFhYjQ0NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApAQCAtMzMs
OSArMzMsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjsKIGNsYXNzIEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgU3R5bGVH
ZW5lcmF0ZWRJbWFnZTsKK2NsYXNzIFN0eWxlSW1hZ2U7CiAKIHN0cnVjdCBTaXplQW5kQ291bnQg
ewogICAgIFNpemVBbmRDb3VudChJbnRTaXplIG5ld1NpemUgPSBJbnRTaXplKCksIGludCBuZXdD
b3VudCA9IDApCkBAIC01OCwxMSArNjAsMTYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50KFJlbmRlck9iamVjdCopOwogICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9i
amVjdCosIGNvbnN0IEludFNpemUmKTsKIAorICAgIFN0eWxlSW1hZ2UqIGdlbmVyYXRlZE9yUGVu
ZGluZ0ltYWdlKCk7CiAgICAgU3R5bGVHZW5lcmF0ZWRJbWFnZSogZ2VuZXJhdGVkSW1hZ2UoKTsK
IAogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdDsKICAgICBJbnRTaXplIGZpeGVkU2l6ZShj
b25zdCBSZW5kZXJPYmplY3QqKTsKIAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Q7CisKKyAg
ICB2b2lkIGxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKwogcHJvdGVjdGVk
OgogICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoQ2xhc3NUeXBlKTsKIApAQCAtNzAsNyArNzcs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwdXRJbWFnZShjb25zdCBJbnRTaXplJiwgUGFzc1Jl
ZlB0cjxJbWFnZT4pOwogICAgIGNvbnN0IFJlbmRlck9iamVjdFNpemVDb3VudE1hcCYgY2xpZW50
cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50czsgfQogCi0gICAgUmVmUHRyPFN0eWxlR2VuZXJh
dGVkSW1hZ2U+IG1faW1hZ2U7CisgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAgICAg
Ym9vbCBtX2FjY2Vzc2VkSW1hZ2U7CiAKICAgICBIYXNoQ291bnRlZFNldDxJbnRTaXplPiBtX3Np
emVzOyAvLyBBIGNvdW50IG9mIGhvdyBtYW55IHRpbWVzIGEgZ2l2ZW4gaW1hZ2Ugc2l6ZSBpcyBp
biB1c2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDg1ZDFhYmQuLmZjMzhjYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MjkwLDcgKzYyOTAsNyBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0
cjxDU1NWYWx1ZT4mCiAgICAgaWYgKCFhIHx8IGEtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QRVJDRU5UQUdFKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXN1bHQgPSBD
U1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihmcm9t
SW1hZ2VWYWx1ZS5nZXQoKSksIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih0b0ltYWdlVmFs
dWUuZ2V0KCkpKTsKKyAgICByZXN1bHQgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKGZyb21J
bWFnZVZhbHVlLCB0b0ltYWdlVmFsdWUpOwogICAgIHJlc3VsdC0+c2V0UGVyY2VudGFnZShjcmVh
dGVQcmltaXRpdmVOdW1lcmljVmFsdWUoYSkpOwogCiAgICAgY3Jvc3NmYWRlID0gcmVzdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDZiZWU4MzYuLmQyZjMz
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQyNDYsNyAr
NDI0Niw3IEBAIFN0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlSW1hZ2UoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTVmFsdWUqIHZhbHVlCiAgICAgICAgIHJldHVybiBjYWNoZWRP
clBlbmRpbmdGcm9tVmFsdWUocHJvcGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2
YWx1ZSkpOwogCiAgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkKLSAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSktPmdl
bmVyYXRlZEltYWdlKCk7CisgICAgICAgIHJldHVybiBnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFs
dWUocHJvcGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSkp
OwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC00MjU5LDYgKzQyNTksMTQgQEAgU3R5bGVJbWFnZSog
Q1NTU3R5bGVTZWxlY3Rvcjo6Y2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQg
cHJvcGVydHksIEMKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKK1N0eWxlSW1hZ2UqIENTU1N0eWxl
U2VsZWN0b3I6OmdlbmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5LCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBTdHlsZUltYWdlKiBp
bWFnZSA9IHZhbHVlLT5nZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgpOworICAgIGlmIChpbWFnZSAm
JiBpbWFnZS0+aXNQZW5kaW5nSW1hZ2UoKSkKKyAgICAgICAgbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0
aWVzLmFkZChwcm9wZXJ0eSk7CisgICAgcmV0dXJuIGltYWdlOworfQorCiB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6Om1hcEZpbGxJbWFnZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBGaWxsTGF5ZXIq
IGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1
ZSgpKSB7CkBAIC01NTc2LDYgKzU1ODQsMjQgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVh
dGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogc3QKIAog
I2VuZGlmCiAKK1N0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2Uo
U3R5bGVQZW5kaW5nSW1hZ2UqIHBlbmRpbmdJbWFnZSkKK3sKKyAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7CisKKyAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZhbHVl
KCkpIHsKKyAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFnZS0+
Y3NzSW1hZ2VWYWx1ZSgpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2Uo
Y2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIH0KKworICAgIGlmIChwZW5kaW5nSW1hZ2UtPmNz
c0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVl
KiBpbWFnZUdlbmVyYXRvclZhbHVlID0gcGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRvclZh
bHVlKCk7CisgICAgICAgIGltYWdlR2VuZXJhdG9yVmFsdWUtPmxvYWRTdWJpbWFnZXMoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VHZW5lcmF0b3JWYWx1ZS0+Z2Vu
ZXJhdGVkSW1hZ2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiB7CiAgICAgaWYgKG1fcGVuZGluZ0ltYWdl
UHJvcGVydGllcy5pc0VtcHR5KCkpCkBAIC01NTg1LDE0ICs1NjExLDEyIEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgIGZvciAoSGFzaFNldDxpbnQ+Ojpj
b25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKICAgICAgICAgQ1NTUHJvcGVydHlJRCBjdXJyZW50UHJvcGVydHkgPSBz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPigqaXQpOwogCi0gICAgICAgIENhY2hlZFJlc291cmNl
TG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKTsKLQogICAgICAgICBzd2l0Y2ggKGN1cnJlbnRQcm9wZXJ0eSkg
ewogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZTogewogICAgICAg
ICAgICAgICAgIGZvciAoRmlsbExheWVyKiBiYWNrZ3JvdW5kTGF5ZXIgPSBtX3N0eWxlLT5hY2Nl
c3NCYWNrZ3JvdW5kTGF5ZXJzKCk7IGJhY2tncm91bmRMYXllcjsgYmFja2dyb3VuZExheWVyID0g
YmFja2dyb3VuZExheWVyLT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJhY2tn
cm91bmRMYXllci0+aW1hZ2UoKSAmJiBiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCktPmlzUGVuZGlu
Z0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdl
VmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGJhY2tncm91bmRMYXllci0+
aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tn
cm91bmRMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZElt
YWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGJh
Y2tncm91bmRMYXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dy
b3VuZExheWVyLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01NjAxLDExICs1
NjI1LDExIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbnRlbnQ6IHsKICAgICAgICAgICAgICAgICBmb3Ig
KENvbnRlbnREYXRhKiBjb250ZW50RGF0YSA9IGNvbnN0X2Nhc3Q8Q29udGVudERhdGEqPihtX3N0
eWxlLT5jb250ZW50RGF0YSgpKTsgY29udGVudERhdGE7IGNvbnRlbnREYXRhID0gY29udGVudERh
dGEtPm5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudERhdGEtPmlzSW1h
Z2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3R5bGVJbWFnZSogaW1hZ2Ug
PSBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogaW1hZ2UgPSBzdGF0aWNfY2FzdDxJ
bWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFN0eWxlUGVuZGluZ0ltYWdlKj4oaW1hZ2UpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gaW1h
Z2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVu
dERhdGEpLT5zZXRJbWFnZShjYWNoZWRJbWFnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0
PFN0eWxlUGVuZGluZ0ltYWdlKj4oaW1hZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobG9hZGVkSW1hZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEltYWdlQ29udGVudERhdGEqPihjb250ZW50RGF0YSktPnNldEltYWdlKGxvYWRlZElt
YWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KQEAgLTU2MTgsOCArNTY0Miw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgQ3Vyc29y
RGF0YSYgY3VycmVudEN1cnNvciA9IGN1cnNvckxpc3QtPmF0KGkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKFN0eWxlSW1hZ2UqIGltYWdlID0gY3VycmVudEN1cnNvci5pbWFnZSgpKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFnZSgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdl
VmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKS0+Y3NzSW1hZ2VW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q3Vyc29yLnNl
dEltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0g
bG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDdXJzb3Iuc2V0SW1hZ2Uo
bG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtNTYyOSwxNiArNTY1Mywx
NiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKIAogICAgICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZUltYWdlOiB7CiAgICAgICAgICAgICAgICAg
aWYgKG1fc3R5bGUtPmxpc3RTdHlsZUltYWdlKCkgJiYgbV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2Uo
KS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVl
KiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5s
aXN0U3R5bGVJbWFnZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICBt
X3N0eWxlLT5zZXRMaXN0U3R5bGVJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRS
ZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJ
bWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPiht
X3N0eWxlLT5saXN0U3R5bGVJbWFnZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUt
PnNldExpc3RTdHlsZUltYWdlKGxvYWRlZEltYWdlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJJbWFnZVNvdXJjZTogewogICAgICAgICAgICAgICAgIGlmIChtX3N0eWxl
LT5ib3JkZXJJbWFnZVNvdXJjZSgpICYmIG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCktPmlz
UGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1h
Z2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+Ym9yZGVy
SW1hZ2VTb3VyY2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0Qm9yZGVySW1hZ2VTb3VyY2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVk
SW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4o
bV9zdHlsZS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSkpOworICAgICAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRCb3JkZXJJbWFnZVNvdXJjZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNTY0Nyw4ICs1Njcx
LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAg
ICAgICAgICAgaWYgKFN0eWxlUmVmbGVjdGlvbiogcmVmbGVjdGlvbiA9IG1fc3R5bGUtPmJveFJl
ZmxlY3QoKSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFnZSYgbWFz
a0ltYWdlID0gcmVmbGVjdGlvbi0+bWFzaygpOwogICAgICAgICAgICAgICAgICAgICBpZiAobWFz
a0ltYWdlLmltYWdlKCkgJiYgbWFza0ltYWdlLmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0
aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tJbWFnZS5pbWFnZSgpKS0+Y3NzSW1hZ2VW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVmbGVjdGlvbi0+c2V0TWFzayhOaW5l
UGllY2VJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciks
IG1hc2tJbWFnZS5pbWFnZVNsaWNlcygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9y
ZGVyU2xpY2VzKCksIG1hc2tJbWFnZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxl
KCksIG1hc2tJbWFnZS52ZXJ0aWNhbFJ1bGUoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
U3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0
eWxlUGVuZGluZ0ltYWdlKj4obWFza0ltYWdlLmltYWdlKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlZmxlY3Rpb24tPnNldE1hc2soTmluZVBpZWNlSW1hZ2UobG9hZGVkSW1hZ2UsIG1h
c2tJbWFnZS5pbWFnZVNsaWNlcygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9yZGVy
U2xpY2VzKCksIG1hc2tJbWFnZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxlKCks
IG1hc2tJbWFnZS52ZXJ0aWNhbFJ1bGUoKSkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTY1Niw4ICs1NjgwLDgg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAKICAgICAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrQm94SW1hZ2VTb3VyY2U6IHsKICAgICAgICAg
ICAgICAgICBpZiAobV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkgJiYgbV9zdHlsZS0+bWFz
a0JveEltYWdlU291cmNlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0lt
YWdlKj4obV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hc2tCb3hJbWFnZVNvdXJjZShpbWFnZVZh
bHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAg
ICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nh
c3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3VyY2UoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXNrQm94SW1hZ2VTb3VyY2UobG9hZGVk
SW1hZ2UpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KQEAgLTU2NjUsOCArNTY4OSw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9h
ZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJ
bWFnZTogewogICAgICAgICAgICAgICAgIGZvciAoRmlsbExheWVyKiBtYXNrTGF5ZXIgPSBtX3N0
eWxlLT5hY2Nlc3NNYXNrTGF5ZXJzKCk7IG1hc2tMYXllcjsgbWFza0xheWVyID0gbWFza0xheWVy
LT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2tMYXllci0+aW1hZ2UoKSAm
JiBtYXNrTGF5ZXItPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBl
bmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVk
SW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0
eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHls
ZVBlbmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbWFza0xheWVyLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCBkZmI5ZWFjLi5kYTIyNTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ1NT
UHJpbWl0aXZlVmFsdWU7CiBjbGFzcyBDU1NQcm9wZXJ0eTsKIGNsYXNzIENTU0ZvbnRGYWNlOwog
Y2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTsKIGNs
YXNzIENTU0ltYWdlVmFsdWU7CiBjbGFzcyBDU1NSZWdpb25TdHlsZVJ1bGU7CiBjbGFzcyBDU1NS
dWxlTGlzdDsKQEAgLTY2LDYgKzY3LDcgQEAgY2xhc3MgUnVsZURhdGE7CiBjbGFzcyBSdWxlU2V0
OwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTdHlsZUltYWdlOworY2xhc3MgU3R5bGVQZW5kaW5n
SW1hZ2U7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBT
dHlsZWRFbGVtZW50OwpAQCAtMjgwLDYgKzI4Miw3IEBAIHB1YmxpYzoKIAogICAgIFN0eWxlSW1h
Z2UqIHN0eWxlSW1hZ2UoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUqKTsKICAgICBTdHlsZUltYWdl
KiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VWYWx1ZSop
OworICAgIFN0eWxlSW1hZ2UqIGdlbmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0
eUlELCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKik7CiAKICAgICBib29sIGFwcGx5UHJvcGVydHlU
b1JlZ3VsYXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0
eWxlOyB9CiAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlOyB9CkBAIC0zMjcsNiAr
MzMwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NW
YWx1ZSopOwogI2VuZGlmCiAKKyAgICBTdHlsZUltYWdlKiBsb2FkUGVuZGluZ0ltYWdlKFN0eWxl
UGVuZGluZ0ltYWdlKik7CiAgICAgdm9pZCBsb2FkUGVuZGluZ0ltYWdlcygpOwogCiAgICAgc3Ry
dWN0IE1hdGNoZWRTdHlsZURlY2xhcmF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGUyODlkZDQuLmJjZDM0OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtOTgsNiAr
OTgsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEJpdG1hcEltYWdlIDogcHVibGljIEltYWdlIHsKICAg
ICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUoTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1h
Z2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGJkM2IyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNTU0Ny
b3NzZmFkZVZhbHVlLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKwordXNpbmcgbmFtZXNwYWNl
IHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2FjaGVkSW1h
Z2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyLCBj
b25zdCBJbnRTaXplJiBzaXplKQorICAgIDogbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQorICAgICwg
bV90b0ltYWdlKHRvSW1hZ2UpCisgICAgLCBtX3BlcmNlbnRhZ2UocGVyY2VudGFnZSkKKyAgICAs
IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIo
YWRvcHRQdHIobmV3IENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSh0aGlzKSkpCit7Cisg
ICAgbV9zaXplID0gc2l6ZTsKKworICAgIG1fZnJvbUltYWdlLT5hZGRDbGllbnQobV9jcm9zc2Zh
ZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKKyAgICBtX3RvSW1hZ2UtPmFkZENsaWVudChtX2Ny
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOworCisgICAgbV9jcm9zc2ZhZGVTdWJpbWFn
ZU9ic2VydmVyLT5zZXRSZWFkeSh0cnVlKTsKK30KKworQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6
On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpCit7CisgICAgbV9mcm9tSW1hZ2UtPnJlbW92ZUNs
aWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOworICAgIG1fdG9JbWFnZS0+
cmVtb3ZlQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7Cit9CisKK3Zv
aWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0KQoreworICAgIEltYWdlKiBmcm9tSW1hZ2UgPSAwOworICAgIEltYWdlKiB0b0lt
YWdlID0gMDsKKyAgICBJbnRTaXplIGZyb21JbWFnZVNpemUsIHRvSW1hZ2VTaXplLCBjcm9zc2Zh
ZGVJbWFnZVNpemU7CisgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxLjBmIC0gbV9wZXJj
ZW50YWdlOworCisgICAgZnJvbUltYWdlID0gbV9mcm9tSW1hZ2UtPmltYWdlKCk7CisgICAgZnJv
bUltYWdlU2l6ZSA9IGZyb21JbWFnZS0+c2l6ZSgpOworICAgIHRvSW1hZ2UgPSBtX3RvSW1hZ2Ut
PmltYWdlKCk7CisgICAgdG9JbWFnZVNpemUgPSB0b0ltYWdlLT5zaXplKCk7CisKKyAgICAvLyBE
cmF3IG5vdGhpbmcgaWYgZWl0aGVyIG9mIHRoZSBpbWFnZXMgaGFzbid0IGxvYWRlZCB5ZXQuCisg
ICAgaWYgKGZyb21JbWFnZSA9PSBJbWFnZTo6bnVsbEltYWdlKCkgfHwgdG9JbWFnZSA9PSBJbWFn
ZTo6bnVsbEltYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNyb3NzZmFkZUltYWdlU2l6
ZSA9IEludFNpemUoZnJvbUltYWdlU2l6ZS53aWR0aCgpICogaW52ZXJzZVBlcmNlbnRhZ2UgKyB0
b0ltYWdlU2l6ZS53aWR0aCgpICogbV9wZXJjZW50YWdlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnJvbUltYWdlU2l6ZS5oZWlnaHQoKSAqIGludmVyc2VQZXJjZW50YWdlICsg
dG9JbWFnZVNpemUuaGVpZ2h0KCkgKiBtX3BlcmNlbnRhZ2UpOworCisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKworICAgIC8vIERyYXcgdGhlIGlt
YWdlIHdlJ3JlIGZhZGluZyBhd2F5IGZyb20uCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlm
IChjcm9zc2ZhZGVJbWFnZVNpemUgIT0gZnJvbUltYWdlU2l6ZSkKKyAgICAgICAgY29udGV4dC0+
c2NhbGUoRmxvYXRTaXplKHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUud2lk
dGgoKSkgLyBmcm9tSW1hZ2VTaXplLndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLmhlaWdodCgpKSAv
IGZyb21JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0LT5zZXRBbHBoYShpbnZlcnNl
UGVyY2VudGFnZSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGZyb21JbWFnZSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisgICAg
Ly8gRHJhdyB0aGUgaW1hZ2Ugd2UncmUgZmFkaW5nIHRvd2FyZHMuCisgICAgY29udGV4dC0+c2F2
ZSgpOworICAgIGlmIChjcm9zc2ZhZGVJbWFnZVNpemUgIT0gdG9JbWFnZVNpemUpCisgICAgICAg
IGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRlSW1h
Z2VTaXplLndpZHRoKCkpIC8gdG9JbWFnZVNpemUud2lkdGgoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUuaGVp
Z2h0KCkpIC8gdG9JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0LT5zZXRDb21wb3Np
dGVPcGVyYXRpb24oQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4dC0+c2V0QWxwaGEo
bV9wZXJjZW50YWdlKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UodG9JbWFnZSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCit2
b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQoreworICAgIFVOVVNFRF9Q
QVJBTShjb21wb3NpdGVPcCk7CisgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOworCisgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0
LT5jbGlwKGRzdFJlY3QpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0
UmVjdC55KCkpOworCisgICAgZHJhd0Nyb3NzZmFkZShjb250ZXh0KTsKK30KKwordm9pZCBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCkKK3sKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShtX3NpemUpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIEZpbGwgd2l0aCB0aGUgY3Jvc3MtZmFkZWQgaW1hZ2UuCisgICAgR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwor
ICAgIGRyYXdDcm9zc2ZhZGUoZ3JhcGhpY3NDb250ZXh0KTsKKworICAgIC8vIFRpbGUgdGhlIGlt
YWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgorICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVy
bihjb250ZXh0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNw
YWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiBy
ZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7CisgICAgbV9vYnNlcnZlci0+Y2hhbmdl
ZEluUmVjdCh0aGlzLCAqcmVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ODIzMzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5o
CkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2VfaAorI2RlZmluZSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2Uu
aCIKKyNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1ND
cm9zc2ZhZGVWYWx1ZTsKK2NsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsKKwor
Y2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2Ugewor
ICAgIGZyaWVuZCBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShDYWNoZWRJ
bWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwg
SW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFn
ZSwgdG9JbWFnZSwgcGVyY2VudGFnZSwgb2JzZXJ2ZXIsIHNpemUpKTsKKyAgICB9CisgICAgdmly
dHVhbCB+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29t
cG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCk7CisKKyAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSogZnJvbUltYWdl
LCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNlcnZlcios
IGNvbnN0IEludFNpemUmKTsKKworICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwg
Y29uc3QgSW50UmVjdCogPSAwKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGRyYXdDcm9zc2ZhZGUo
R3JhcGhpY3NDb250ZXh0Kik7CisKKyAgICBDYWNoZWRJbWFnZSogbV9mcm9tSW1hZ2U7CisgICAg
Q2FjaGVkSW1hZ2UqIG1fdG9JbWFnZTsKKyAgICBmbG9hdCBtX3BlcmNlbnRhZ2U7CisKKyAgICBJ
bWFnZU9ic2VydmVyKiBtX29ic2VydmVyOworICAgIE93blB0cjxDcm9zc2ZhZGVTdWJpbWFnZU9i
c2VydmVyUHJveHk+IG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcjsKK307CisKK2NsYXNzIENy
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSA6IHB1YmxpYyBDYWNoZWRJbWFnZUNsaWVudCB7
CitwdWJsaWM6CisgICAgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KENyb3NzZmFkZUdl
bmVyYXRlZEltYWdlKiBvd25lclZhbHVlKQorICAgIDogbV9vd25lclZhbHVlKG93bmVyVmFsdWUp
CisgICAgLCBtX3JlYWR5KGZhbHNlKSB7IH0KKworICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1Ymlt
YWdlT2JzZXJ2ZXJQcm94eSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNo
YW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0ID0gMCkgT1ZFUlJJ
REUgeworICAgICAgICBpZiAobV9yZWFkeSkKKyAgICAgICAgICAgIG1fb3duZXJWYWx1ZS0+aW1h
Z2VDaGFuZ2VkKGltYWdlLCByZWN0KTsKKyAgICB9CisgICAgdm9pZCBzZXRSZWFkeShib29sIHJl
YWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQorcHJpdmF0ZToKKyAgICBDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZSogbV9vd25lclZhbHVlOworICAgIGJvb2wgbV9yZWFkeTsKK307CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJ
bWFnZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlMDZkZmQuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgotCi0jaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlICJMZW5ndGguaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi12b2lkIEdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQotewotICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0gICAgY29udGV4dC0+c2V0
Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wKTsKLSAgICBjb250ZXh0LT5jbGlwKGRzdFJl
Y3QpOwotICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55KCkpOwot
ICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKLSAgICAgICAgY29udGV4
dC0+c2NhbGUoRmxvYXRTaXplKGRzdFJlY3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgoKSwgZHN0
UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKLSAgICBjb250ZXh0LT50cmFuc2xh
dGUoLXNyY1JlY3QueCgpLCAtc3JjUmVjdC55KCkpOwotICAgIGNvbnRleHQtPmZpbGxSZWN0KEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7Ci19Ci0K
LXZvaWQgR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRl
cm5UcmFuc2Zvcm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJh
dG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAgIC8vIEFs
bG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBw
YXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgSW50U2l6ZSBhZGp1c3RlZFNp
emUgPSBtX3NpemU7Ci0gICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7Ci0g
ICAgbV9nZW5lcmF0b3ItPmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0ZWRT
aXplLCBhZGp1c3RlZFNyY1JlY3QpOwotCi0gICAgLy8gQ3JlYXRlIGEgQml0bWFwSW1hZ2UgYW5k
IGNhbGwgZHJhd1BhdHRlcm4gb24gaXQuCi0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYWRqdXN0ZWRTaXplKTsKLSAgICBpZiAoIWltYWdl
QnVmZmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGaWxsIHdpdGggdGhlIGdyYWRpZW50
LgotICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNv
bnRleHQoKTsKLSAgICBncmFwaGljc0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7Ci0KLSAgICAvLyBUaWxl
IHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJh
d1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFz
ZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOwotfQotCi12b2lkIEdl
bmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNp
Y1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRp
bykKLXsKLSAgICBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lk
dGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8pOwotICAgIGludHJpbnNpY1JhdGlv
ID0gRmxvYXRTaXplKCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCmluZGV4IGQyODg3MmIuLmJlYzM0M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaApAQCAt
MzYsMTIgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW5lcmF0ZWRJbWFn
ZSA6IHB1YmxpYyBJbWFnZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJh
dGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJ
bnRTaXplJiBzaXplKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0
ZWRJbWFnZShnZW5lcmF0b3IsIHNpemUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+R2VuZXJhdGVk
SW1hZ2UoKSB7fQotCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRhaW5lclNp
emUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9CkBAIC01NywxNyArNTEs
MTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCB7
IHJldHVybiAwOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENv
bXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKLSAgICAKLSAgICBH
ZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRT
aXplJiBzaXplKQotICAgICAgICA6IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKLSAgICAgICAgLCBt
X3NpemUoc2l6ZSkKLSAgICB7Ci0gICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSA9IDA7CisKKyAgICBHZW5l
cmF0ZWRJbWFnZSgpIHsgfQogCi0gICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9nZW5lcmF0b3I7CiAg
ICAgSW50U2l6ZSBtX3NpemU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExZjAwMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNw
cApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCisKKyNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIkxlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCit7CisgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0
LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9zaXRlT3ApOworICAgIGNvbnRleHQtPmNsaXAo
ZHN0UmVjdCk7CisgICAgY29udGV4dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgpLCBkc3RSZWN0Lnko
KSk7CisgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQorICAgICAgICBj
b250ZXh0LT5zY2FsZShGbG9hdFNpemUoZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgp
LCBkc3RSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkpOworICAgIGNvbnRleHQtPnRy
YW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0LnkoKSk7CisgICAgY29udGV4dC0+ZmlsbFJl
Y3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsK
K30KKwordm9pZCBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qp
Cit7CisgICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5LWVxdWl2
YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICBJbnRT
aXplIGFkanVzdGVkU2l6ZSA9IG1fc2l6ZTsKKyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0
ID0gc3JjUmVjdDsKKyAgICBtX2dlbmVyYXRvci0+YWRqdXN0UGFyYW1ldGVyc0ZvclRpbGVkRHJh
d2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVkU3JjUmVjdCk7CisKKyAgICAvLyBDcmVhdGUgYSBC
aXRtYXBJbWFnZSBhbmQgY2FsbCBkcmF3UGF0dGVybiBvbiBpdC4KKyAgICBPd25QdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShhZGp1c3RlZFNpemUpOwor
ICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZpbGwgd2l0
aCB0aGUgZ2VuZXJhdGVkIGltYWdlLgorICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250
ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmZpbGxS
ZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5n
ZXQoKSk7CisKKyAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4K
KyAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVz
dFJlY3QpOworfQorCit2b2lkIEdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5z
aW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxv
YXRTaXplJiBpbnRyaW5zaWNSYXRpbykKK3sKKyAgICBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0Rp
bWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8p
OworICAgIGludHJpbnNpY1JhdGlvID0gRmxvYXRTaXplKCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwOWNhNzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZV9oCisjZGVmaW5lIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlX2gKKworI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiR2VuZXJh
dG9yLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlIDogcHVibGljIEdlbmVyYXRlZEltYWdlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKGdlbmVyYXRv
ciwgc2l6ZSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSgp
IHsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAgdmlydHVh
bCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0KTsKKworICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R2VuZXJhdG9y
PiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgICAgIDogbV9nZW5lcmF0b3Io
Z2VuZXJhdG9yKQorICAgIHsKKyAgICAgICAgbV9zaXplID0gc2l6ZTsKKyAgICB9CisKKyAgICBS
ZWZQdHI8R2VuZXJhdG9yPiBtX2dlbmVyYXRvcjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBiZjFhMTdmLi5iNTQ2YjQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTc5LDYgKzc5LDgg
QEAgY2xhc3MgSW1hZ2VPYnNlcnZlcjsKIAogY2xhc3MgSW1hZ2UgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbWFnZT4gewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQg
Y2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CmluZGV4IDA4ODk5YTYuLjdkZjEzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTI2LDYgKzEyNiw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogICAgICAgICBm
cmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgICAgIGZyaWVuZCBjbGFzcyBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgSW1hZ2VCdWZmZXJEYXRhIG1fZGF0YTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdl
LmgKaW5kZXggYzBlZTEzOS4uOWFhMGUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5k
ZWYgU3R5bGVQZW5kaW5nSW1hZ2VfaAogI2RlZmluZSBTdHlsZVBlbmRpbmdJbWFnZV9oCiAKKyNp
bmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1
ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgogCkBAIC0z
NywxMiArMzksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdHlsZVBlbmRpbmdJ
bWFnZSA6IHB1YmxpYyBTdHlsZUltYWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHlsZVBlbmRpbmdJbWFnZT4gY3JlYXRlKENTU0ltYWdlVmFsdWUqIHZhbHVlKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU3R5bGVQZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0eWxlUGVuZGluZ0ltYWdlPiBjcmVhdGUoQ1NTVmFsdWUqIHZhbHVlKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU3R5bGVQZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQogCi0gICAgdmly
dHVhbCBXcmFwcGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAg
ICB2aXJ0dWFsIFdyYXBwZWRJbWFnZVB0ciBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1fdmFsdWUpOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IGNzc1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQotICAgIENTU0lt
YWdlVmFsdWUqIGNzc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAg
Q1NTSW1hZ2VWYWx1ZSogY3NzSW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmlz
SW1hZ2VWYWx1ZSgpID8gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1fdmFsdWUpIDogMDsg
fQorICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqIGNzc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSA/IHN0YXRpY19j
YXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPihtX3ZhbHVlKSA6IDA7IH0KICAgICAKICAgICB2
aXJ0dWFsIEludFNpemUgaW1hZ2VTaXplKGNvbnN0IFJlbmRlck9iamVjdCosIGZsb2F0IC8qbXVs
dGlwbGllciovKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTU5LDEz
ICs2MiwxMyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBTdHlsZVBlbmRp
bmdJbWFnZShDU1NJbWFnZVZhbHVlKiB2YWx1ZSkKKyAgICBTdHlsZVBlbmRpbmdJbWFnZShDU1NW
YWx1ZSogdmFsdWUpCiAgICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgICAgIG1f
aXNQZW5kaW5nSW1hZ2UgPSB0cnVlOwogICAgIH0KIAotICAgIENTU0ltYWdlVmFsdWUqIG1fdmFs
dWU7IC8vIE5vdCByZXRhaW5lZDsgaXQgb3ducyB1cy4KKyAgICBDU1NWYWx1ZSogbV92YWx1ZTsg
Ly8gTm90IHJldGFpbmVkOyBpdCBvd25zIHVzLgogfTsKIAogfQo=
</data>
<flag name="commit-queue"
          id="113805"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115025</attachid>
            <date>2011-11-14 13:43:36 -0800</date>
            <delta_ts>2011-11-14 13:56:06 -0800</delta_ts>
            <desc>Render Cross-Fade (plus build fix for non-Mac)</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>94208</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDYyNjY1Li5mZWVmNWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKworICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZzogQWRkZWQuCisgICAg
ICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmc6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5w
bmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLXNpemluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
dGlsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFu
ICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3RzIGZv
ciAgbmV3IHdlYnNxbCBlcnJvciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUwNTMwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAw
cHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2lmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaWYo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBz
aG91bGQgYXBwZWFyIGFzIGEgbGlnaHQgZ3JlZW4gc3F1YXJlIHdpdGggYSBkYXJrZXIgZ3JlZW4g
Y2lyY2xlIGluc2lkZSBpdC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcpLCB1cmwocmVzb3Vy
Y2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mOGRiNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aHRt
bD4KKzxzdHlsZT4KK2RpdgoreworCXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1h
cmdpbjogMTBweDsKK30KKzwvc3R5bGU+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxk
IGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9yZWQt
MTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8
IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNx
dWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIHVybChyZXNvdXJjZXMv
cmVkLTEwMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91
bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2Js
dWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDUwJSk7Ij48L2Rpdj4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
c2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhY2UxYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4
OworCWhlaWdodDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzwhLS1UaGUg
Zmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEw
eDEwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5n
KSwgMTAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVh
ciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAu
cG5nKSwgdXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRo
aXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCA1NXg1
NXB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcp
LCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9z
cy1mYWRlLXRpbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3
MGY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtdGlsZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxzdHlsZT4KK2Rpdgorewor
CXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKKworCS13ZWJr
aXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7CisJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9
Cis8L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAx
MDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwo
cmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCAxMDAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQg
Y3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBw
eC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL3JlZC0xMDAucG5nKSwg
MCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRoaXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IGJsdWUtZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ibHVlLTEwMC5wbmcpLCB1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcgYi9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjI5NDllMDhkODdkZmNkYzA5ODdlYWVmNjc2OTJjN2ExYzE2YWE1MApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNzYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5BVH0yVjg8NlpaST0+ZjQzNDZM
WWhEYzBKUER1RmlmNCtzeXN0TjEzClo3KkUkNnc+OzlyWlV2TlBATzFUYVM/ODN7MU9SaEM2Yysj
aAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jl
c291cmNlcy9ibHVlLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3OGFlNzI1MzNjNzc0NmM4YTRkMmY2
ZWVmMzJhODEzN2VlMWY0YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTIKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEQrOXktdThLP0hLKDJfVmkoYG17Cm1X
TzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0tiTGgqMn43WTJqfXcmdQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVz
b3VyY2VzL2dyZWVuLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzOWIwZDAyZDM0MmJiZjFlZGQyZWJiY2MyZmY0ZmY4
YjAzMmUxMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzQKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB2cF5BVH0yVjg8NlpaST0+ZjQzM3xGWGhEYzBKUFdhKWtBYHxLbi1eIXFgCldlJSRpbik0RlYr
QiFqMWBwVVhPQGdlQ3dTU2BwbTwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAucG5nIGIvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1
YmJiZTVjNTc2MGQ5MDVkYjRiZjAxNWI1YjdmYWEyNzQ2N2M3ZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEU1
bTtWbGVoeWJmTHN3ejdzbjZACm0kPmFuSCoyTWBUSnh6ZlF7dE9KUDYlMzVjTmVAYlpAKGlBP2Vs
RntyNX1FK2BuaUZJSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcgYi9MYXlvdXRUZXN0
cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDRmOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcKQEAgLTAsMCArMSw1IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2
aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBz
dHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InJlZCI+CisgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZWQiIHRvPSJncmVlbiIgYmVnaW49IjBzIiBk
dXI9IjAuMDFzIiBmaWxsPSJmcmVlemUiIC8+CisgIDwvY2lyY2xlPgorPC9zdmc+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
cmVzb3VyY2VzL3JlZC0xMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMv
cmVkLTEwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmEyYmYzMTIxNWUzMGNmYTc4OTBmZTA2MDQ1OTFhM2Rl
ZGVmYjE3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHZwXkFUfTJWODw2WlpJPT5mNGlGbXA9aERjMEp7JkRgbWh4cm1gM3wzOXAKYSRIaDQ1QE52dGkr
S0dpZ2M/TTVjS2JMaCoyfjdhNFJ+Nm0+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcgYi9MYXlv
dXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcz
ZGQ3NThhZGY0MjRkYjgyOWNlMzM5N2ZjOWMzMWI3ZjRhNDVlZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WD53
ZzlZJHchPiNLKDJfVmkoYG17Cm1XTzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0ti
TGgqMn43YWwxYD8kSgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMjRjMTNmNGEyMDg0
MmFiMmU5YjQ1OGFjYjc3ZDJlZGQ3NDQ2OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQzMzcK
emNtZUhPZHB5KGFgYEAlIUEoVCo8ckd0N1okREcyZjZNOW5nRDNRWSlOOyVIP1lAP0QmcUV6SHFz
WmBGeW9GX3R4CnpKY3diMjx4RTJrK3Nyb0trTFE9IT4tK291e2B+IyVlWkJTPHlJcjVfelY3Uk9V
Kz9SRS09RGNfZGReVUleVWxwNgp6NUo+cDYoYUZDK3BiYztraHxkRGI0fiEpRi18eiV9OVBtQTU7
cD0kKXMtdnJxcEY3QSZgLStwNmdYMn44dEQ1USMKem4oQThpJTM5am1fViNLanN6O1F5b1JxSkEt
NDNZJnl1aDRLb0c/OW87c281KDh8fiFtYmA9QikxVj4mTmFQMlNeCnpYWkshQiVfbTE2eShZRV5h
czhwazYqSiF4REo4QyMlM0NmXllUJE1tQ0JKZEVQSE5hZyFRPjB7TTVCK14ybUJJMQp6RUN+cXAr
KGRedzVeZk47cilTQGhIPlMhTHI2bkladDY7WEZqOC13UUdfOT5MSGY7TlIkP0l+NXhSUXdZTUto
RTcKelRJUSE9QHFzejh0O35zbyU8RV5QWiVoMlMmayFsblE1WkIrR2B8SmI7TzBBeDk+YClsYnx5
VSQ1fVRFUVMzZyQmCnpCdX08ez9yaTx0Y2lVanMtSS1Kc18xWUY9QUIjLUxDYj9AYFh2WVpoe2d+
WlBvc09zQGxRemB+KUVfXjNyV0MxXwp6PXNZK3QtMkUqPWR7fC1NeUdNJUF4Pj18R1FYMDgocyEp
aEpFOVl9XzR3ZTcqQGtEYVltfXJjOSh2RVgmcTQpYWIKenc4SzJfa0FnWnM+WjdFcGorTGYqVDQp
U3FzQUc8fD84ejB8UzJaXjY+enFpcm52YEk5VkMhQylKKFVnQGFARXxOCnpNK0c8Qk8mYVo+RVNO
c1pQZHxiYHFHbVppTEB8OD1uTnExPXFARlFZRDZiK0FBSTF2fHNVdEVFYllZUn5EJXpzPQp6eV4p
fHR2cmB7bkZgV3hta0IqdVhpTmheI2NHckNoSUlxOUs9PWhCWEdGU0V3SzBHZERwWEIpSUo+Nkpo
aHkwKGYKeitNUnRiMVFsdl4+RmtleE58Ny1QWShpfSp3VXQ9M0RsRFpBRX5rPDk1Kn0xO2tGM1hL
YmYyZGJNQCpDI1pjQ0VKCnpgcXt0RUBFfmlKalUtRkVYOSteanYrcz0qN307TF5Wc2hnPSFCMWx9
Jk1ibEhDKWxkYGN6VW5AUnR1cj4+eyhtLQp6QTh3bVhBfC0xUkBaVWR3PigzR1U4dCEhbmsoRmxG
KChyUnt5SyghfWx+VmtAI3A0WjlPS35iRUV+aSVTSWglNCUKemQjPX0xUD1QPC0jPzxIIVliQW19
VDFCJUJuTmJHS1FTeyNacGpMQTZST3FoUllQRCh2M1d2VTlwR21DbHhINlRZCnphKFN3djw2LSZC
ZzVieG9MPE9xZWdaSkJaNmMkdCRWOWNRaEtmSDh3YExvRV4xaGlxVmA/LVlxanF4Kkx3Kio3KQp6
PFF+Mm9vOEBwUiZnOUBgXmZNdmIxZmtQO01tPnU4STxiQHVDMXpiVnFzfU5GP2ZFfUVDIXw/KlE7
TTF3YEU3VTkKendEfkFYSzNEU18tanA5fGR1VkRxUUJGNHY3eWVMKD0kTkREWmVKZGFGd1l8VERx
Nnc3NihVKWs+ODxaT05uXnVVCnohTjNlQXxHVjlyeUp9eWNSNiFzKD09OH5CN1hyWik1LVJVV0tx
fkUqOVFOZE15WnVMZV9vJmV6O3d9d1JzeXAoTAp6TkF+Uk4/MWx4SXJpVXZxNHV3aj1sRSkqP3t5
ZC1qX0UmZiFYdFBzb3FPcHU9O3ZAdlVeWjd8cChJcD1nekV+bXwKejxOQjxZI0lqcm92fXZqekp3
c3pwYCZEJXp4QFU1JHNGJnlNdzMyUnV6PGR5PkM+JDlNezktMCpwJWQ5a0h2OWVZCnpwSy1mQWFB
ZkUldGBUSypGaiFVSENIKVQ5bGkoayZ0SXoqLTYhQzVvSDE2SGA8Jnp4ODVHWWc+d1NudVNAbVha
Sgp6YVpJbSp7NkYqbF45TikmZWRxcyNAeXx5KTdlMmwjRjVlTWk5SmdTO3NZfXM9Nl9rcHM7eEIw
ek1Mbl9FZEByfGkKemR9YipRaXA1PTJEMzBUYnFZO1JzdjU2a0E3OHV+bCt5KXQqZWVfKTw9USMq
ZV9aJWBAX2duKmgreHFQSmxmZE1pCnpyd3tMMDR7eSttazhqdlptN1U3dnxEdlFRSm5OanhGMEsk
YHd+NH1JPEEyUj9gT2h3fGQwITw7ZW1fdUhRIyhiLQp6ISRuSWZsPmBpZztjVXZoVSl4bXA9YTVS
aEdEemlxUyk/K2JPajFQdmRjbCZBVkAxJCM+OzdCQXo0dj5HVFRncTUKekpGKDBFWExwPGJiWUc3
QHJNSSloZ1M0fk0md01LPFU8KnZkPm4oOUdpTHVzbnc0fGM3Uk8rUVgrcHcxKjMpN15FCnpvT0Rm
ZXpmOXk4b3RhOEFndlQ8SzshY3w7VyUjdEY+MUNLNm42Y3h5ZkZsUF9ZPCNNU1dNb0s8ZU1Aentf
QVNOdgp6VDVGbStaRHMpTE9QOyFvcndTLShoPlgyeUJBUlNMPiNMO0xJSjlfRGhkejR0JVlNVFBr
RDtSR00/TCRLRHkjWjAKemkjKUB5ODNlcUNEPFJoJW45WCZXSGlIaEtPfW4kJndoM19NTmxyMlUy
KUpEP009Tk9WaWpMcHBnXkk5Y1lETn1HCnpnU29nd3spcjk9KXhDZThvRU5MZFNhd1RIWCUkQX1A
SDJXTERNRGlIeHghOzFJVjhNNG88K3NzV21CYSFKPV9GRAp6VX5XLWNXTD1VcVg8eGohZkk1cWJo
IWx4cVMzVmVPakt5X2luIzV3PFR6dExzY0d7Ky09PFA5fEFOUUpqKlIrSmEKempTSUx2LSVoViZC
QGlpK2M9ezxGdU9CQ01KT2AwRi1vdG1zcUpAclpTcUcyRU1oT2loQmxod2xkTGRSO2hxXzt2Cnp2
M3ZXOVppPTRoOF40OGByT2MrS0YpfkdgJklEfiFyNHhNUWpiVTNgaDlRdyQ3c2F+WF48aTJoSiEl
YSZjRFdsUgp6UkZSRE1GOVZvbWl2UUJ3aHwwOEpUYH4tMjw+V0BIOHh5UHhhP31kQlZfaStldTs8
ZmIoXy1mKXYrXkZLZUx4SVoKempkIWQ9SDFTPXtAcl8yPD8/YyEwbW8xa15sKDU8Y1F6bS1gYlcm
S191ekJBRlEzbGc8T1JKZGtTbnZNRilobnpTCnpUbWxNSFJ5RnRLQVdabUs9SkZUIVUyREtqZHx5
KXdgNVpEK01kJU00aWxKdWV2eihiSD1oJH0pU0syYXpGYkM+awp6MV9IT3xXOXpoYTw9ZzhmTTZt
UHxBKkA5TGFsVzxITj9qUCZjOHBXP0BJJVYyMUoheGZqMlI1QWY/NzJiaEwofCYKemo+NTdEPGUl
VXxENlY+LTBie2w3NCNTTH5NYyFmIzxBSVEodSU3Rmk2PDdpcFduMGspbjRfQU1EMTliKntLKiQ5
CnpZO0dkfUUlfEVFQWJibX1Fc25nQ2soSWtMRDQ+NngpaG59SlVUSiRIJUNeTEAlVkdOTFUkTWxT
MHdOOWk5LVpsegp6M1k3SmFQPE5wV1NTMik5RFU1RzYkXyF0RWlRKEdKKV9YTzV7NjtHY09hPVg9
Q09VQFJKblBpRG05Jj8yblZ+TGgKemgmSz5aRXR5cVYhKXdpKVZEcmBSMS1ZfUFANVV6RikqO0kh
JXN2PD1lOXY+JlZpWXNIdklgPmhIPzF3QHNnPk97CnoteiRDWDxyZDhXbkprKiZDYnM/RW5RKUFJ
eXkwPCVkV1p2Sz5pfEo5aEolRFglOXBfSCp2eyEjJXREND8+eWt4LQp6QXAkezxCOzxMYHJObSg8
cT8rfm8rRjVRSy1HXmpFM3NESjY8TT5ASjMmZFJOcEBVME4pfGM+SVAzWG8rZW9gJSQKekBzM3F2
NDVLMyo1dTYmXjxnQCMhN18kSX5IeitWQm9fJSFKem5qVjw2fEdERSN3PSFgVm8rb3ppaHVNSmAo
bmlrCno5PGBVMXZ8T0MkeWdTPEMkMnZ7cXlZWjwzUlcpUlF1M0dIc0YyKzAxPCpQcHJ4YGJVXmFH
bHw9YCRaKzltKE9SYgp6YUEoQkdaV1FlTzxJYFJMa3VPaVdHPSQmUiNUVFM2V2s/SDJCcSpVZ05E
VytKS1o3eyFnY0lebT0qOT1LKGpuOGIKenttbHpxJX11MFU7cXJQPC0oLShydHwkKWlzajs0fSgw
Pmg0MEZFMFAyd3IzcyNedSlmYDlfbSo0dTFkM1I0XmBDCno2SjReKDBrUjZNQXI9emZGUDEmSGRz
PWhTb0NeP047bVNvST9WITB+ZEs9S2BobmAtMlphdn5VelZHSCl0b1NQewp6P1g/eU9mZ1pZOVc2
Ynd6V2ktbnleSVF4fG0rXzA5bXZRJGpadGxtZSpsVGtyai03O3wtOUU3UWJZR2Myej1CPEEKeigk
NWphU3s3I2IqQ1okOU5wbiYmKlEobiNJJkZtbWU3bUVmcyZxV210ZHpBYVZ8JnFvJl9Cfn10bD1h
YWBLUjNeCnoqbjZyZyREakpNPWhxQE1GMTh3X1VfaTx5YT5yRnpeTEBpR2I3YEshVy1hSHFPTHVE
PVFZQWgxMitgYmBVMmNpPAp6U3B6NmspWiQ5U0pBdSFVZnwzb2t3elEhcHl2SUtDZ1o/SiRoeUMl
S2BEJn47SDNPfCtIfmZMWnduVTNmYVNCNm8Kend3I2lpS2Q5VVpEI05nWER9b25ZVCZNV3NhXnxC
fDE4fl9eIWNMQEk+NyQkc0tvN21JeHYqalFNfTQkb0NSPXpoCno+RDFvamtDYldpY3NuYlZsI2Vh
NTJSSm5ZNFlpSlYkTiV+RG5TPSZoejxncz5Qd1FaI05wcFZ+amRYNEhobTkoeQp6M0phbWU+UFEy
OU95YEtrVlpqME1KViVGQk5GQmlabTQwdE1eMnlEQlFMYXNlTSlle0w5SztDbWF3dWAyRkd6PCUK
eio0JSgxbyhUZGI5KHw9TSlxXm89YDA0cnphSnRPRUBiPGQ7M08teVMjfWhLeUJ8TitHNWlOTW08
blpqPlV4d0xJCnpoKCRpUkhRdDBIP1dsWmEhZmBxUSlBI2MlIWdYMUNgWUtpYHAkdVdmYG1XVjla
K3g+ODR6eWNvUjZncUNAPElVZgp6bFV4MWxnZUQhai1jIV5oNko1ZmFuSnkmSWBXVkZONDxOJnF4
TGlEaDtpKVR5fDIxWD9IRXVRK084O0A5PmZyaF4KemcyYUdGLU1hSmJMckRRK0JYZzREeztOaWs8
OExiN2FyTyFWVFRPP0NkczFhbXt7UmRWajgzPChUVFJGKHhwQ1JgCnp7NVF0fTgrR09EKTVBanRT
RWlWdEwoUFl1Q0ZWI2VIVlgld1NVMXckeDtoPVAjR1V5SmpWSzRSc2tpdkg2PllDbQp6VUBGZlRh
TjItZjhVJER9NXI+dlRFJDBOdVRmYEFuUmZxK1NqV18hMkdgWms0dSh8YGJwfSo+WDlpRH1MOXZJ
anIKengyVXdPQ3stcl9eRjQmWXJKWTkyP2NSZTYwViQjS1hefFgqcyRVKlBpSWQoWjNwZF4pMlFG
fnY4NTl4dVBpJjt9Cno7dXdyajc5UCRSbVkkNGtQd0lASm5CVE8tUDJKfEleNjFzblA4ZH1MJSlx
UXt0UyVKcD0kcFJWZDU8TElhbF8+Rgp6YFlPflJQTGxBTW9RNCp4ZnhtRyE8Zz1QTHchLS1MMkd3
ajhHfWMxYGI9YzlCRH5vVm4hN35EJFRLRT8kPTEyPmgKenxBJmZ2Zz9+aD00cUkrO058MVF3QGgy
fEs7ZEBLdlgyIz5AdSRebGc5KzN6WD9raUxpUF9+VmRkeW9qbWdIKS1VCnojSU9hIUsjP15RRnJV
dnM8IzxwSnBibStwVVhISFY5b0I0Sm9KSkFle3tOczhmR1MpOFRfaSlTRGpMN19rKkhyVgp6QGdG
IXhtaCQoRDZZZWE9VnZkZE1aUnpONVFsJWA/bUhZXzwoaWJqdis1dkhyZkNLRjVBK1NZOE47Kzc0
Y24xRzsKei0jKmdZZjF8YF56RT94QytUS0B+YCMrRF4mejhldXRKQktzP2Jfdjc7fDUmV3wwPUtD
MHFRQ0RiSllvNjgxSjZ6CnpuO201cj00MCtwanF7VG53OTN6RmRVTFVxTThxP0dCU1lPI3grZWYy
THMjNXdhX3JZeWhEej5nPVROR2d0XkdYZQp6PXI7RmE5cUZVemZJaWNYdD58I2d0SjFoVihIY15V
MnIlZlZJTDdLI1hrYFUxYzN4dFFXPSU5TDgqYHA4K25Oe0AKenpBKThTNiV3JWdMbFdRSmQoKW9Z
TzBGY1hFYmg9QHNNQjJLZ2xzV09CTStPQF82PlMtJHstQ0tRM2oyaFdfSVJiCnppbzx7Zz5wYEle
R1lNKyZtNSpuQjVfR0xZR3lfTVRUdGQpTUV1M2l9UG1rTXEwMWFiKipIais5QUNVRlIzfUk2Vwp6
XkRqRTA9aFQ5JEVOMUU9cDZXNHBOK0E3eU9OaUs3aGRZIzMoKzRyaTN9RypnODRpVCFTciQxbFoh
TjQ/PmkoVHMKelVDLUpYckkxRSpXc2hwJndOKFFyV2YyX1FoUyVKSEhlVT8pRW8jTTNpencwcV5v
R1A0VDN6eXI0dHdlXmMyOGFvCnpZUkdmSm1FQyp8cCQyMWVxNWJzNlFBSzM9eWt6eGtCKCpwJSUt
eSZAVUFvfFk/NXpkWUJ3Zk81bHE9cThVQWFlRwp6bH0hOCFuaXZOSmNkKztfKjcrTShnVT1iXnBF
bTg1KD9jK2R4eVdCdmtaKT5pTnEkKiN2e2pGMDlXdmpkTnhaNFEKejEpcEFtdzstUlgoPGF+O1NU
UEZUMSpibyRxRCF2U0FJbihqZXF4QVZPRGU3MFU4NypUaUIoYSEjMT58fUloKSlvCnpqam44KXd5
eTV6alVnbEczRk4rVkpLOERpITtrRXZhJj52VjZnPWc8S0RvfmFBQExMOD4lLVlDTGBoOF84YGB5
Owp6bSN3ZURBYFk7cjhIN3pzRyV9dWdOZUk4ZnJYX1hZWH5iQHtFNTBRalAqbnRaI09NT3N5Tkpg
a1VoKVp3IUVLKGUKei0wTWUmTzxCZC1zPDd9O1NZNXI4OFI0LT83XmBIRk5GUyl2VzxvNW4jV2Fq
Qz5vVF99SnJ6OzVCOT1gWElLYk0tCnpzQWV6YjthYkN7ZUpEQSZld1J6UiozSzBEK3E2Sj90KDcx
eFQ7KXBESDlDIyQ9KWdLM09EPT00eCZmPypQPktuPwp6ZlVJZDs4OGxnRWZZIUh3O3tSTj97MSZA
PUMzUGs9R2dacyRyTDJ5QkhtT1FpeDFzYERnYnhGYjRXWDBka2FKNnYKel5yJSlzLU93YWBKe05f
cm1lbVhYQWQzaj8mUHB+fSVBSzl5RU58NHpacjZyYVc+bXV5KWVFbmNpZG9Bdi0wemJUCnp1SHNV
Wj0pP2UxVW8lRE4rJkFHbTs7QFJZUW5nSnwzVSZ3ZkJANn5JIUY5dDJHUntedyNvblRrY25nMmR1
fCMpQAp6UGYhe3pHRT5TSCMkWFN9Q31FZXJRaWh4MkRjfDNqUUsrY2YqRnRFNy10bjsjQD11ZXBh
ZGUxYV9LdDZ7SzA+VnsKeipJQW1FWktTYGtXbiRVPi1mbiVSMSt1ejxvKHR0TGZPYXRTKjhjVCNF
P2ltNmYoe0FfR0ArdkRfXy0lfV9jNm0wCnplUHVxQj00V2JAcEZLcXNifV5ZP3MoMWdFVXRJX2RJ
Xm14MEpWJVlNQmJvP1pPOSsldyZ7SmkmYFpMfE5SKnQ0PAp6TWl0QHRQaCpLZ0w7YXJUOXUmSjBO
YFR7TTREMnBJdXo3T0QhTyk/QD51cHY8JXB3VngodyR7ayNFQWRDOUpIIyEKeip2dXQ9YSYyVD0o
QmtDbXlyckgyaks4VClCPWAkJXdlamhfc01NRmR4X1o3UTkwPlpkeT9fMH1waG9STHpBdCE9Cno5
YTRZfkN5KGlgRVZjRWwwUEgoTzBWRVFve3E+b2cjP0w/fnkpbnw3MX4wc1VMJTlEO0ttQTF2T29k
Zz94Nz4qQwp6RFNZaD9ibC0qSz9CQ1lfQlNFcT1oRSVUMDRVPThALUAkWG9xUyZEaTZLc1E+ZUtF
ODZYUGk9aWloZFM2KUdSMUEKemRMV2Q0OWFOQlpLRTZHTi1TaiFqMUBqI1F1MEE0YipNJSVwKUpQ
Qi1fYVVGUCZTPW5WQ15UO1NXLVI5djJ9aTtZCnohOyRUXlIxT2tFO3JhNCNyMV5lazxYU2F7Z0Nh
aEpnSDgoKU99T34jVVFMb2ZVNGlQN0FYZm04OCs8VkVyWFFFagp6dUc9QkVpXjRuV1BJMypIQkV1
bkdJczRZLSp6P1dNeEppNGlgeX17JklQeWxSSWFmcmM4ekR4RSR7ZGFyZ15QLWQKeiFqRDtKYXBt
WU9BSyRDc0x7NW83TVdLTE9jeTFAeCtBbn4/ZjliN3Y1ZU82bHhEX1MxYTMlRzlJT3JYMEFKQFBR
CnpBakB9TCl3dmRWNWdDMyNXRTxET0YpKD1ScntXfjhaMmJYOHpLYE9OQSZ8YzM7VUhkR0I2dyo1
RnYzSTJEaWBwSQp6MnB8dzF4MiRwfGs4KilfIXxPej00VkJsUjBreSlARXZ4ZDJDKzdldSVUdXxs
Pml4ZSV7M3tvU0hHbnxrSG1selMKelNVVyVQNnp7Nm08MClSQTt7QU8pJTJUe04jcnlsPmhvXlhY
aXVkPWVBVyFrfjZ6P2k4QClZbXlFY3x5VVVZXlMzCnp5Iz9VQzlOfUdIe3pGPGtJbWVUOEpVUGRF
QUkqREJ8TnIqd2dAX2VfPCp1VShwUUpgITBSUGhtSShfUWckPXVfMQpHSH5zfTVgPUlkdgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUg
Nzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODViZjFhMWYy
YjkwNThjZjIxMjUxNGQ2NzYyMDUxNWI5NGE1Y2ZmNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTE1NzEKemNtZUkyYCNhUno5Pj4zNUdjbE5Rbl9TQTFOcDRZJFlvd1MrRjU2fEsrX0p8b00kSkts
YzlnPytseWkjUW1HJSV5CnpySlk9Jml4Zyh0KFFkYjsyLSF7e3gySjgoTTh3WTRTP1FRSHxHO19u
ZSRNJitHfHptVkBCNmRYZFZrbVl5dytPSgp6X1l9azNhaXo9fTgzYUxBSXk+IyRqVVdVbmY9S3cx
QnRlQSNPPnp8WSolPDVLOF9QYnhWVFoqV2p6RE5eT0RraVYKemk3REhoTGtrV3p2antiQEdCd2A5
MntwRmxhRHQ3NHdfS2lVMXpOJjd1RHcwTysxe1NZaD5pXjloSTBAazRvJXQ5CnpBSiltQkVkSWhk
VXA8KCViLSNrTiY0S0tMQXpyY2VnfTF8ZT5mOEsod1lhbjFzbytYUDBLWmpoQkMlU2tIIVg1Jgp6
JWFNMGRIdUY7Qy1zNiRTYSNwcmRnNjZLRClPNE5JdFN1QHFiSk8pQS0ySEhgZkJ2bk4/JHxLMVdk
NHdVQyZmc1AKenZlKE9fckZyNE9GcnxNQVd2Ymc3RUY1cjRgLWlmTmp3NDtKdm5HREJjNiF5aSo2
YFQza15TWTE+QE5OcHZWdV5aCnorTCZrbEt5JVFxZ2Q2WllSJXhMNylafT8lXlg0fCE3fmU5WXc4
bm5STkglWnFib3ojfnA9UmNFekkzeHhpYH58Kgp6PmdibHx4QzdIR1VwKFBhaElNdG0lUH55YlJf
P0lkWGU3ajtoQ0QwT2gmZXRMU2JhNmBPK20kJmUwbF81JkhZKEkKej5NSVNhemVrLU9NWV9KWDRP
REh8UUZsSmQqSjd5REpraFJBdDVRTHlWZUQtel91S0BCcFlPTChRQ25UPmUoO2AzCnooe1MjbkVh
NFA/dn4lSjtCZDVDOXRqV3lPWitkOGdhZlVjPCslaHghKXZvdlQ0THlDP3hsJSpzSGYwO1Rsande
TAp6QTctTGNOOClwWTwyVG8oY2ZIQDJ2KD53PVpAQkhzaDk0ZHJAdzZwNCooR1BGaHYqR3QrbVZD
Iz48OEU4VCRSLXsKelRgcU5TV0IwX0BTYXdfTTwoezJUY1pfPSF4VD1uK0poUUsrWmcke2YoTSM9
fmpRZ3VvVEpEcy1AU00yQ2RzQVBkCnojOXkwcUlPdVplIU5EemVNKygrUGwqXkpsN2dJLVdJNTlh
dGNfZSVHOUpVekVeMiVSMEVaYzY5X2c0RUdNUEc5TAp6YnM9KzNLVX5IbU1XczJ2PkdfWE9VUjVZ
TyN0djw9REtHTUJZeUN+VCE/an5QcV4+RC0jOyNSJEtGaXFOfDlxcEMKelRWYmx6KUdyS0tVQ0FU
SzxEOyh3akMhUHM/KjA3cjtPfT15Nl43OXBHTVpJcDkxXytHOCUtTiswYEVrZzNAWW51Cno+PGsk
JUhURUNCKk9eXl5AeTV9LSVzJD1PP0hTalUpTXs9dC1ibk4mOFFpP2N7K21sfXRPcjhTaiZSU1BV
WGVTZwp6YTYmZldXYVp7bG5kUU1nU3NuJjVrPjhTO2BERXVScihWTnE+Jnl3bFpMalhITjRiRzlS
QDNAWFpgU190IT9Adj0KenlePjVkIUx0fWNsQGltIyFfdzZXJXVWQn5gIXUhey1OQ1owYGA4dVJC
WkJKRllgbnwrVmgjN0xMK3tDemNOTW9eCno+dn1taG9GcDRweCorLTgyQVNeVzN4T3NHTFBlWis/
JHtIRFBQe1plODJWNmNyKVM2MD05XnxsWnF9dE0lSXVeaAp6KjRQP2RZZD9ffkp6ZWdWT0h1diNM
d2tReDxIQ0E2aE0qRWVsMDIxOzM4YVhOKTRid0EkSXBNM3FYVkJMQnVfU3gKenpDNXVNT21Hei1e
UXlOcmM4Wj9DRiFjNTB2ZnkpNkx5MVBXKik8YGgwMjhzV0ljdH58NkZlbDZ2b2J3RD9oczM/CnpO
P2x3ZiowaihWQkBEQmxDKDFBUDQ8dF9kbSooOCE/fk9CZ00rYHt8M0ctNUtqYzctY21zPWpGIVRQ
WlAkcipKcQp6IUc0ZTxkYE1PLWxEfnFTXnwrKkgxTUpNZUNLZ3Mwa3N4TFQkYj8zI0omeklWVHBe
SXZyVz1WeDArZVpWIXtiTFkKem1ZY15BVU0tTl9ld1FLXmNgUENNQlp0djBXPChUX0orV3ZNOCkl
ZkQwSiUmNCkjXlg1O2p7Vilrb0M1emgoISEjCnpSaksocXdtVS04MXdkeGlIKWtnbjtlZ1NhVHBl
M19uX29JJTMxc2AlMjh1PU16LVYha2FGZyh2MWxLYVktMCsoOAp6emd4SjQ1OWQzWksyQS1+T2l3
UCNFcnk5ZnJBU0cqSGZ1fkA8KCFDRWY9T3ZyWVNhRW5UX3E4XjxKPCpFZH1UQ0cKelQ3O35IQWBH
MjZIaylXNyFZWGYhTmRFNjczaXoxK3c1aDJ2JHRiMEdLQFI8N0BgdFV7Zn1DamVxRyVIO29peyop
Cno8RWtSNVFtZjIxPiUjN1Y5ZzNwZl90R0tfaypQcVZHcjlpbVA9dWxjRWs/MnVCO3xjZzdJd2Vt
Vys0PHdOSnUpQgp6NU9xYTkkajNQVlljNnhHcGZ5Q2AxNnxyKFdGQSRSM2NQYVpqOCt0ZE5UN0Ut
I1hfPEQkNytEPkdnbjVtTD9MOzMKejhlS3gka19UVWwwb1Z7MnhJSzBqIUpiTkdWTUxjRzJ7PVh7
KDZrVCNZXzNRfHJ3YjY9Nz0odSN2b3dZQThTfnxvCnpnRDw2fXFLRFUqckJ5TlQqREFocUwqN3F8
dEJVdHwjUSMlTiN9Uz88SyVDbFU/QGY/YTRrK1EkaV9gKjB0SjU7Nwp6KVk2dHoyTjU3al5qSHtX
LXl0T2sydjN2e2E/fCQpKUtJe2dIclV7eHJpZVE8ZUhNMEYqKzNhO0VASjVKQER7ZnYKenRDbXZs
MC05JlJFbHxVdClYZkBRXyV6Pj5scn4/fkBUU1VrPTNWJUZeNzhoZlN0NjAzWCF3dXw2TGJeRlMr
e25MCnp6fCohb0kxbzNGU2YtMXtFOHRealA1MEdwUH0yOytUYz0oSVB0bV5NZn13bE84UiF3Kzdx
QmpXJFA3OVoyOGlpagp6SXQ1YCgwIVFKJj0penFoaGdmYWAjNGx7bUk7YVQoZHdfdDlQVXo1ZXVw
MF9YfEgpcFlwQFAlJWlOfVo1SyE/bk0KenN9LUt7UDsmd302bExXT0ZCcXpJU2xEJVFlTDFNOTJI
TyRiNng8WWlydHQ5UEwmc3xoa0BRejh3MVVyOTxLMT9UCnpWQWFSeVVWPXpFem85TV9MaDJIUm4p
c0Q3QWYpJkpRbmV+UjVLYHdUR2BkZE1ZTiFFTzVib0AyZUYmVWYwSTg0KQp6SkUlRFRGeTYpdGZF
WmAoNzlpaFYtPlV+VFpVRnRnWTJePyZ1MFdHfU85cEM2SG5LM1lWfjE4bDs1WStGKXAlY2sKejha
JUlPTFg5ZFIjJVZ5fitPMUU0bmt5TEVAbXRHWUk2eGhzZEV9bzBIQlozK2FaXytwQFI+cnptaypK
SSpBIz9ACno3Z3s8X0EwcHtiTTYlaXw7YUxRYyZpd28+MEZHeVQmd311OUptWXU8I3xJcUdJRyh8
NkQzMGVwNzApPTV7fndWbwphdzRKJUNRZWtiK1pVPGpNQmhDKSlKMWd5MiReUW1nKUloVFUKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1z
aW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNmYyNmM2ZTIwZjcyYTJkMDk1MTQxMzI5ZmIzMWNhNTllOTNhMWIz
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTY1OQp6Y21lSE5gIyk1OUEzdFlJajliUG53YmA2
cHctayRVODVKaUlCOX5BfHFqNCQzdk0hLSk0eX1EJEhWcXtqbSlmPFAKemtYI2FTOEIlUCE4PWco
NVI5S2dKWVN6OGNTZDJaQ0lyOShmPi1Gc09vUyk5P3lrRm5UPWxnenJLQS1wSl5GMWZVCnokLSFE
JDt1OHF+MEhrZWdfOGtITTVlTlZYP2oldFpWVitKNUxtJTVCdD11RGgxTj9uWU1NUS1GUjM4JXhn
fDY+bwp6Sz1DczxWTTM/VnNaPEo7TFp8MiU+NmBjJVE7YnV5Y3ZzTz93Z2cmUUlAd3hVTFFkaEtD
anh7MDBVIW9VYXZlQzsKej9XRGtlO2gkZUlseEJLVFJAXktnO3xvOFJOWHh2TVElQ0FNSmxgN0Na
bmVxMTUjcSZjUzA2dURBQCkyaSlVKypuCnpURmgpLU96UWRoKDZnRCs/Rnd8PnR6PWRFSW5fR194
cy0haUUrWTVkSHc/XkFQX0BgMndDblI8ZFVoLTUkfCQoRwp6SUpVSmVKeyhhUG07cV9abWZES30y
aCthVWE2cj08bWclbUZveEMlPGVvSzNCPFY1SHxEY2BxO25JJERWcjN8cXkKejgkTUpXXjAqJThe
KXltYHVzM0JnVShjfCQhIz17amgkeWFkKGo/UzNWZCZjbllGQUVCM31MMnR0NX08YnNhK2p4Cnpr
YHAqTUVCJmw5TDE5RW92cDc+SFpGaX5GQT5DMHd0MTc5dkRWMiF4R3V7PDlGVGNxeFcwTm4wRmdI
Mjs3TUo+Mwp6aDVBKzR3X2B4aGVSSj1QTz8mSXwhYHpMQTNrfWElYmcxOCEpb2Z4PEw8WilKYCFs
bVd3I2pLSXQyZz8lLVpsc2gKejlGcjdEVlVCZj16ak1tMHhKR0hGNzxrTU1rMl9AJUllS2x9SWxL
TXU+WU11ZEdjSmhAOD00aHU+eTN4YFA0QnRrCnpzaVUhKFE9SUI4N2tiX3UlYGBwUy0jXmxFTCsh
IUNYbEhXfjg7aXRyV3h2a2BHYzJVJk95N3FrSm9eb3NSMWZeewp6QnJ3dTd3I3VZOypKcWNtajRO
Qm17T3JCSGo8JGgmdzVvMXlhR35JcE1xaGZQVnAzYWU7V092KXk5c2FWdEteeFIKejxEPSs1N0pl
fmdkflk7JmI0YU5xJChmJXpUNF9WYHxIVSFVeGk4OVNqTnl7Szckdz1JZXxiWFZ3NEEkQ3tqRGgp
CnpaK296V1cwRiM5Y0p0Rm1vditKZWU/YDlCVk9DbjsoJFc1aCN1Tkp8OUtYOGVSSVd3KSMoOVJH
ckRyfSV7YXtgeQp6Yj5AWVdxP1R4T0I0X00oRldvK3xmYC1TKGhXQC1xRCRAeTlPSygtO1RFJVVo
Vml+Wl55bFg+fj18JW1sWmErPzsKem8rcWNGSkVRKmwkfV5XUV9HYGBVTmlVSiNSOGA1VUphP0Yr
VUghZHAoMUFPVmoofl9waChxQDV4PVdMP1VyV1glCnotYDwmV3ZERGBYISU8cnpecntwc1RndFpG
PURBTUF1OFpSJEg3Pm8hI3NhK35zSSVMey1mVWlhenxrPnc2UXlseAp6YDdKXzY+QUZHR2g8SFVE
WjNqb09VdUFiZUV0MFhULT93Wn0yKSNiZD5+THYrcXxWVlRWMXJDKSYkWF9Tbz4lT1YKemMqJlQ7
TWJUbjRpUWQtbHkhOFA5MCZNcn5iJlViWFUrb1AjWlleaSFUcys7e1NXUk9fLSFSJjlBY3BhYjtW
NUJJCnp3RXI1PD5PYnRDbk8+QmVVRkZUb2FYZD18MDB+NEE4RztjWUEoWUpQR0czSDJQc0F7Z3Um
aExlXyorKjhkPkE8dQp6TExpTHYtJn0mJD1Ba2UjSWJQKUJEbDNFSGF1SHpPRDlBaW5YZCY/VDBp
aWQtZkY9YTlGMShPWU1LfUl2MGdVakIKenV7V2ZwUi1EOExFdTFfNSFNZkUheWtXKXI/NFFgP28/
UHliSWM/ZTZpNylxWUdIUU1qO2hhZC0pUyp2UCkpcXVzCnpUdFFIdWRtPklyY280eUY9dG9uYlh+
aEpCLWBmdEo0dDU7TGI7TClsYzJWalc7KHtWaWJFbDdDWFdTcWBWa0JrMQp6d1pWYFpDe2s9Wis8
PSs4THhCdVE+aEAke2hgbk9Xb2NWVlBEeEYyTiUxUHwjcElmKHQhZWNMIWJoaXI1VXFPU0IKelRn
XlVWPkhfMypZWiFUYVB0d34kSy1scG4xbmBKJlRXXkNRPT9ISyZMVyVWP00hXntudG0zREIlREBu
MWxvWW0zCnpvSCN9YjdvfWlIYVRrT2tSMjFudiMqQFArO0doKXpzZUt5OGtPKDYyUUNgRTgyMVlA
ekIjRlUyQCZ8JDtWPFp4VAp6OGEtcihRRSZfT0NyPGVAUCtaX3JrN2RiRiM2KVloMDNmXlRMVTZC
bHJISV4kVGRvP0ZxWHl2dztSTE5aMU1XZTEKemheXiVsSk99KmBCPFU4RmF0R2YwXm42Zyg5dkxG
YmpJfH1XNS1VTWtqKUtpI0VHS1pZSyU3OD01KHRMaHBIM0E+Cno4ancobikrQSpgQSgtJXh5aWoj
b19tZWd6U0gjei1LLVUpMyRPPVJTM1BZN2dOeDZLQG5iNnJXKzdTSHUlIX5hMwp6TU1ZWXlWOGtu
fDVmZns4dW5ZbGtnSyZtRUkzKF52YyQ1aUo2UH0wZyNRMykpTXQpdTYhalc9Ujh+SHMwQDNYUHEK
emlPbDs3P1JzWXhDU0ltczs5P0hpZShSa3YmaytiQCVjTUxSWU0kKU83bEpPTD9YXm5iYH0wRWMl
c313KFQmbV5ICnp2aU1TMEdrP01OVWpmVTUmSFJeVllpamJCRndKJkFtN1okMlRPSmM9Q3EqKmtN
KjlecmshKnN0cH5YWDIxdCRYJQp6TilWdVUjP3dLRl9IN1hDQWwtJG5PTEFSRHc4YG9WN3Blc3Um
PFl8Yk1zdXliZ3k4R2pBLUpVUmlxUEkrWHUwNj4KenooNWUmQWkpZzs0fl5jPDZXWkdhTSlFIT41
SGp5M0klI3xQc0w8WWRYbDMkciR7c1RoYzdxWXUqcXZJfi1oPTJwCnpMRDRyU2gwSDQ8NVB0YU82
amY7TkFfVHl4U3ojV2g9QSYycW13OFJYJTd0UXtoO1oxRTFIXmdLSGc+JTxBPHdwZQp6NW4+N2A8
ayZrd0BKWiZ+WUB3aGNsY0J2blNhY3c7OWdJfV9qY1peS0w/cWZVSGUlTnkoNyl4IyZgeXVETFYt
dkUKekt7PDYlcCpYQlk9aXNLYHRsKyt+KChkOUIxbWsmU15gajQtWjl4TEFMOHVfKCUxazhUTUZM
dGU7aVZKI0E2cTBgCnpZUDNpSG5ofEhPezBwI0ZBTERfSTJsaV5pZyRNUk9IP1ordyM9Zz93RHZo
aTM+WGowSD9TckBTdDcrbD9AYF5CRgphOE1JKDRtNW5MN3h1YnRxMUdaS1VgKSpxdFB5N3IwbCRr
UkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1zaXppbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIxMTY0NzAzNGRiOGE1Y2FkZTNmZDQzZDgzMjdiNjI1Njgx
NjRhOQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE4MTUKemNtZUhOYCZVeX03UVF6YDUmfGtn
M05sZz85c3d4fGk+RXduaHk7YFhAKGA7aUctKEpSajlfPyNmfF4ydFdyfFBACnpwY1Y7RiNtWG9K
MGpvVGVLb098WjV2VUBsTyViUk5pZk5HWWp0eG1LTExrJEJWM3NyWXI+eUw/JnAhS315VStLMQp6
YDwjMHd6O0V3KiUtPThvMElhOFlkRiUlT0g5UDx5ZzM7PWJoNXU9SzlRMCRzQChnQSVxOVBjXzV8
ZCY5ZHh5d3kKeiRIKmBUZCZsckYyN1Jaa3FmP2otIV5TMyhaV2tGQU10OEU2ZUlfQDlxSEsqT2xM
SUpaR0NtLUk4NXRjRDBSU21yCnojKH18T3kjYyFOcENYRURoTz1GY1Zse3xTeHlRcVVTbWRIUiN8
fH1oOWVMJGdaeyReWUVqRTxqWCh+eXJLfFJsQQp6eF55Sn1qdmA3P1RGKn4yUHZ4IWUpVEorY2xX
RldiWE1DJXEoMC1xSmtYcXlYLTloUHV2LSNLdndNLWcrcSp2RV4KenF3WXNSe3ZCPHlfN1VCfERV
ZlBOd3Y8S2YlbD9PK3g3bDlPI0BAT1V1V3dDbip4REp4bnFVckEke0J0OWkoMSU4CnpMJWlVRUwl
Wj90O2otd15DIyszRntieWJtK2M+bSFgNmRRZUFUQEFEb3RPO25AUncmenpLWFBXQW5gVFlQI3h8
cgp6SmBFKE5PVkxCcT56e1JWYnd8dzJ1SUV7MEAyZDNOWiNeM0JTKkpCT2lBeXteTVhVTWVoNEkz
d0czflJsZDtgQm4Kej81cjAhPWc7RTQ2YWp0VHh6UlFeP2B8bEwzd0NeMj92VSE8V209NmpZYVd8
bU1QSEljQGJlRV89bnhEfD99Wih4Cnp3dV59dFh7dyMhaStVdzkwZUxtMF9BVH55aG9AZ2sweGx4
T0hYWEJiSzZfQEdueDZgRCYhYipDNUd5U0QoQDY1Pgp6YFBxYzUoR3opLTslflF9P1ZBYjdiMiVz
IWomeGwheCE7fX49JShpN29fQHxTZUFgZzJ5QjN8I1h1cS1HdDdsO0IKemVmNG9QPiVmVVJyKyhM
TT1mOUV8P29JZ0BaOUBaOVojSlpeVlElUDtrXiNjZ2JOQWxNPSVfRCQ3QVUjUjlkRH1KCnojTlUj
Wk1FfDx7YDAmb2coWlZnVW03M140ZERkdkg3ZDdHc3xNYkE4TnNna05wbk9AOVd7PlRLM0JzcDMh
Q0ZuPAp6T2l+djxoezU9MD0ocHYhSmJCUmxxNisoT1BXKk9hV2wyejE9V20zXnpLX00+NEp9IS0/
d3k7WklYMmBZI1JBaVAKek1Pbl5NS0x1IS10MCQrNk1aYmh2S1NoPD9lZmFWNG4/YGglUmY1VTZI
dkwmb3ckWUAoUEMlczlHYylOR0xQMmwxCnp4WkxLNV8tPTEqKTBOdGo3a0VQUnhldzNYKmtuKndF
MnZGOWhfP0xwM2docUl3XjtzdzhYP3YlZXxwe2QqVnhaQgp6Kl9xV2wmaFJTMzQoMGU7VndlUzUp
Tzs8PE98UiF4SExnNX4rTVNeT2s0NGU2TUNhKWI7Pk5jdS1XT1ojezc5V0AKeihFMkZSTzI1bzVY
KykhalAyRGJqUGwoJTlRcVJlQzYqOChtakhOZWE2QXhBalN5bXhpIU1odFBgJH5JbV5iTCVTCnpx
LW15PCVoYSElVkVXckcoYCozJTReVFhJQTRtWnUxQSlpT0k8T2chb1draDhaVTNTQlNwaGoxc0o3
QTx5LUcrYQp6ZWpeO0g1T013TT5+VzxuaWd7fVY3RWpeO0FPZVpqIyo+Q25OY3AwZytrS3Zqam5q
JWxBbGhsaldza1M2c2xGdFIKeloxWmlMJExjXjEybHpkQz9IfEMhWlBMY08/VUE1VnFUQC1qX2Zf
SCFlVUMmdzswNkElYHxacmpXNnwxYXNISHFzCnpBfSFjfTsxdUlZc2BnNUhPWGlrUEVTdD5eZVNm
cnczQFV6SEdgZCM0SXpYQF5QN2p+PF5UQFB0S0VDeTlqQGk4QAp6RUlzQU9SeFhHM29lUFBEUjJy
YUFifDdlKlh6UklfSHNsMDIhIz5JZGgxVW5KamttUGA/K1h8PVIhfHduZ20oLVIKenhVQCpke3At
QnBBeyFMfm0qKm1tZj5UbmRsIXUmJlFuOEI9c3EybSVrSH1OJTBTPkByViRlQkUjRzRgJlF6SGlg
CnoycWBkQ3ZOUitjM0s1OHJMSnJZPCZHZDtDbytMVkdybENVUypFb1JHdGdKYEhiVihEUCh8RDFo
bDdQU2hQWkRWUwp6bnk2d0RBclJxek97cituPVR7c0tIK1Ywck19WXdxP3UpZGB1WThxYnhLKnUo
SWtJP2VrSG1wSnBPMjFlWXgldEkKekB+WCU8MS03SyR1QWU1VD1sfnYrSkAlb0tpc2NqdCoxPGtY
OVJSTm5UcFA9cDlOcmYmWlkpOzxqMHhgPUNiYUQ4CnpSIUE0VkZJQ2pLNSFRSG1zQzIxbUUtZnVw
Izg3VWtAYnsxcCNGTWp4VG9xRDhSem5UQCNqQS0qVDdXMlpWTHlxKAp6cmk4Q2AmO1p2RzFRUTcz
aER0SnEjdFU/e0BpWk5TKXZnfVczKklEN0Q4PU9xNi17Qmk0KjRNOEx0UTB5Z05gPS0KelArcXJA
TzBHVzhhbGxfdz5YczhgY3N5UkV0TWdidVlmQ157PUorPHsrKzN6KyhZZ2w7PTlITUpramBabyMr
Z3FGCnpaemBIeUE1dkQ7MENFRlRoVW97ZG41YXlBTmR1aXphTmFeMDEkdSVGKDFYSzEkYD04ejRf
cTZ8d0UqdTY3Jm4kTgp6OUw5dXE0SE1YR3hxTDhZcmwqMlBCK0EqWHJTY3QhejJlMT9pSFI/Q2x1
U0xOQXhvR3dSZ3xDbDQ/Yl4oJklsQCMKej4jMktJU3MoOTU7PFEoX1hSTEFQNDBMR2xWJko1fnMo
Um8kZnVLJmtqPXImeU1EUmFhO3o9aXkjU3Y+JXswa0U0CnpefE48cT1CZz9uLVEpbnsxNkJFSmNM
PHIjdHdPd0l5d01zckh6Tj5OO2JoUi1AWDlPfjU/bkpZeUJGUn4laXNnIQp6JXJZIykyKXNmKXxN
VDJyayFkPnkwR1FLRC12VFRWQn1AJTRITlpqKGZDMkZUMXByfnRnTF4ycnlMQH18NHVjKkgKZ2Rq
R1pLa3A8bDUwa2I7O25MRkV8RlRWa2JyPUxmKWB6UHN0MHd7YlgtVChqcQoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1h
Z2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVyIGF0ICgxOCwxMCkgc2l6
ZSAxMDJ4MTAyCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMngxMDIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwxMjIpIHNpemUgMTAyeDEw
MgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEwMngxMDIgW2JvcmRlcjog
KDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNpemUgMTAyeDEwMgorICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBz
b2xpZCAjMDAwMDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjA1MjRiMi4uZTIyZTRkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UXVhZC5jcHAKQEAgLTEwODAsNyArMTA4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxNzk0ZTIyLi4yZDc1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
OTcgQEAKKzIwMTEtMTEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5j
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIx
NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlciAtd2Via2l0LWNyb3NzLWZhZGUu
IE9ubHkgY3Jvc3MtZmFkZXMgZW50aXJlbHkgY29tcG9zZWQgb2YgaW1hZ2VzIHdpbGwgcmVuZGVy
IGZvciBub3csCisgICAgICAgIGNyb3NzLWZhZGVzIGludm9sdmluZyBnZW5lcmF0ZWQgaW1hZ2Vz
IGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgIFJlb3JnYW5pemUgR2VuZXJhdGVk
SW1hZ2UgdG8gYmUgdGhlIGJhc2UgY2xhc3MgZm9yIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIGFu
ZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS4KKworICAgICAgICBBZGQgYSBwZW5kaW5nIHN0YXRl
IHRvIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUsIHdoaWNoIGlzIHVzZWQgdG8gZW5hYmxlIHRoZSBw
ZW5kaW5nLWltYWdlcyBsb2FkaW5nCisgICAgICAgIG1lY2hhbmlzbSBmb3IgLXdlYmtpdC1jcm9z
cy1mYWRlJ3Mgc3ViLWltYWdlcy4gUmV3b3JrIHRoZSBsb2dpYyBpbiBDU1NTdHlsZVNlbGVjdG9y
IHRvIHN1cHBvcnQgcGVuZGluZworICAgICAgICBnZW5lcmF0ZWQgaW1hZ2VzLgorCisgICAgICAg
IFRlc3RzOiBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisgICAgICAgICAgICAg
ICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAgICAgICAgICBjc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ2FudmFzVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDYW52YXNWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjppc1BlbmRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMp
OgorICAgICAgICAoV2ViQ29yZTo6c3ViaW1hZ2VJc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6bG9hZFN1YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3Nz
ZmFkZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6
On5DU1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1
ZTo6Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1ND
cm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jv
c3NmYWRlT2JzZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgICog
Y3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRW
YWx1ZTo6aW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTR3JhZGllbnRWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0lt
YWdlR2VuZXJhdG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjpzdHlsZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdlbmVy
YXRlZE9yUGVuZGluZ0Zyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjpsb2FkUGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNy
b3NzZmFkZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpzZXRSZWFkeSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2Uu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6On5HZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
ZW5kaW5nSW1hZ2U6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6
OmNzc0ltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNz
c0ltYWdlR2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1h
Z2U6OlN0eWxlUGVuZGluZ0ltYWdlKToKKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFuICA8
bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXR1cm4gbW9yZSBjb21wbGV0ZSBlcnJv
ciBhbmQgZXhjZXB0aW9uIG1lc3NhZ2VzIHdoZW4gYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggMGQyMTMzYy4uZjA3ZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0yNTA5LDYgKzI1MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rhc2hBcnJheS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNp
b25zM0QuaCBcCkBAIC0yNjI2LDcgKzI2MjgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRTbW9vdGhpbmdNb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUcmFpdHNNYXNrLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRXaWR0aFZhcmlhbnQuaCBcCi0JU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQx
ZDVjODQuLmQ1NjZmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTAzNiw2ICsxMDM2LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAgXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFF1YWQuY3BwIFwKQEAgLTEwNDQsNyArMTA0NSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgXAotICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIFwKQEAgLTIwNzIs
NiArMjA3Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhl
bWVNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggXApAQCAt
MjEwOSw2ICsyMTExLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDQ4MTY4YzMuLjFhY2ZkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzAsNiArMzMzMCw4IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFBvaW50M0QuY3BwJywKQEAgLTMzNDYsNyArMzM0OCw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L0dseXBoUGFnZVRyZWVOb2RlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmMjNiMTcwLi4xYTMxMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTksNiArNjk5LDEw
IEBACiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2
MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJF
OEUyQzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAx
MDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNW
R1BhcnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTJENDgxRjAwMTQ2QjVDNEMwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICov
OyB9OworCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZD
MDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovOyB9Owor
CQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTYx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKKwkJ
MkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NzE0NjBD
RDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLzsgfTsKIAkJMkQ4RkVC
REMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcy
NTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFk
ZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkw
NjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovOyB9OwpAQCAtNTI3Nyw3
ICs1MjgxLDYgQEAKIAkJQkNFMDEzOUEwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5
ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLzsgfTsKIAkJQkNFMDEzOUIw
QzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDEzOTkwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5
bGVTaGVldC5oICovOyB9OwogCQlCQ0UwNEM4QTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwNEM4
OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdl
bmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRTA0QzkzMERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87
IH07CiAJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMUM0MTkwRDk4Mjk4MDAwM0Iw
MkYyIC8qIExvY2F0aW9uLmggKi87IH07CiAJCUJDRTFDNDFDMEQ5ODI5ODEwMDNCMDJGMiAvKiBM
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0UxQzQxQTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uY3BwICovOyB9OwogCQlCQ0Ux
QzQzQjBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQzOTBEOTgzMEQzMDAzQjAyRjIgLyog
SlNMb2NhdGlvbi5jcHAgKi87IH07CkBAIC03ODAzLDYgKzc4MDYsMTAgQEAKIAkJMjlEN0JDRjkx
NDQ0QUY3RDAwNzA2MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0
YUNoYXJzZXRQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSFRNTE1l
dGFDaGFyc2V0UGFyc2VyLmg7IHBhdGggPSBwYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAv
KiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0
YUNoYXJzZXRQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1
NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTcxNDYw
Q0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEM0EwRTM1MTNBN0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5n
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGFyc2luZ0Vycm9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1NzcsNyArMTI1ODQsNiBAQAogCQlCQ0UwMTM5ODBD
MEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1N0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRl
ZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRl
ZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MTkwRDk4Mjk4
MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFDNDFBMEQ5ODI5
ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFD
NDIyMEQ5ODI5RjIwMDNCMDJGMiAvKiBMb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTG9jYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMTIsNyAr
MTkyMTgsMTAgQEAKIAkJCQkzNzIwMjE5ODEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGlu
Z01vZGUuaCAqLywKIAkJCQkzNzg0QzM0QTBFMTFBQTM0MDA3RDhENDggLyogRm9udFRyYWl0c01h
c2suaCAqLywKIAkJCQlCQ0U0NDEzNTEyRjc0OTBCMDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFu
dC5oICovLAotCQkJCUJDRTA0QzkzMERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5j
cHAgKi8sCisJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCAqLywKKwkJCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYz
MyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUJDMjNGMERBMERBRkY0QTQw
MDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUJDRTA0Qzg5MERBRkY3QTAwMDdB
MEY0MSAvKiBHZW5lcmF0b3IuaCAqLywKIAkJCQkwODZCQkQwRTEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCAqLywKQEAgLTIyMzczLDYgKzIyMzgyLDggQEAKIAkJCQkxOUJGRjY0QjExQzBGMkFD
MDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE5QkZGNjREMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI0ODBBRDQzOEMwMDAz
Nzg1NDAgLyogRE9NU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMkFCOTIwQUQ0Mzk0RTAw
Mzc4NTQwIC8qIERPTVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NTAyQUI0QTBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI5MzBBRDQzOTRFMDAz
Nzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjUwNTIsNiArMjUwNjMsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUFEMDNBQUZBMTQ2ODQ1NTMwMEEzOUI1QiAvKiBD
U1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMDE0NkI1QzRDMDBBQTc4MzQg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ0ODFG
MDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI1QjVEQzY5MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTFCMUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0
cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5
NEUgLyogQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU3ODcs
NyArMjU4MDAsNiBAQAogCQkJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3Rv
cnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVD
RTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5
MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFCRjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25D
bGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTZDQjIxMTBENUFDODAwMEE3N0M2
NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYW52YXNWYWx1ZS5oCmluZGV4IDIzMmE1MjUuLmVmYWQ3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYW52YXNWYWx1ZS5oCkBAIC00NCw2ICs0NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlz
Rml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIEludFNpemUgZml4ZWRTaXpl
KGNvbnN0IFJlbmRlck9iamVjdCopOwogCisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRl
ciopIHsgfQorCiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUg
PSBuYW1lOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmNwcAppbmRleCBiNzcwNjlmLi42M2I3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5jcHAKQEAgLTI2LDggKzI2LDIxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKIAorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUu
aCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0eWxl
Q2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUoUGFz
c1JlZlB0cjxDU1NWYWx1ZT4sIFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKK3ZvaWQg
bG9hZFN1YmltYWdlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+LCBDYWNoZWRSZXNvdXJjZUxvYWRlciop
OworYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQYXNzUmVmUHRyPENTU1ZhbHVlPik7CisKIFN0cmlu
ZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5n
IHJlc3VsdCA9ICItd2Via2l0LWNyb3NzLWZhZGUoIjsKQEAgLTM4LDE5ICs1MSw4NyBAQCBTdHJp
bmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUludFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5n
KCkgY29uc3QKIHsKLSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOworICAgIHJldHVybiBzdWJp
bWFnZUlzUGVuZGluZyhtX2Zyb21JbWFnZSkgfHwgc3ViaW1hZ2VJc1BlbmRpbmcobV90b0ltYWdl
KTsKK30KIAotICAgIHJldHVybiBJbnRTaXplKCk7Cit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjps
b2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikK
K3sKKyAgICBsb2FkU3ViaW1hZ2UobV9mcm9tSW1hZ2UsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsK
KyAgICBsb2FkU3ViaW1hZ2UobV90b0ltYWdlLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiB9CiAK
LVBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQ
YXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdl
dCgpKS0+Y2FjaGVkT3JQZW5kaW5nSW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKTsKKworICAgIGlm
ICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5pc1BlbmRpbmcoKTsK
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIGxvYWRTdWJpbWFnZShQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291
cmNlTG9hZGVyKQoreworICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKKyAgICAgICAg
c3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Y2FjaGVkSW1hZ2UoY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHZh
bHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJl
c291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCitDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOwogICAgIFVOVVNFRF9Q
QVJBTShzaXplKTsKIAotICAgIHJldHVybiAwOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBj
YWNoZWRSZXNvdXJjZUxvYWRlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpOworCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hlZEltYWdl
KGNhY2hlZFJlc291cmNlTG9hZGVyKS0+Y2FjaGVkSW1hZ2UoKTsKKworICAgIGlmICh2YWx1ZS0+
aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlIChhbmQgdGh1cyBjcm9zcy1mYWRlcyB3aXRoIGdyYWRpZW50cyBh
bmQgY2FudmFzKS4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFn
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlm
IChzaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBDYWNoZWRJbWFnZSog
ZnJvbUltYWdlLCAqIHRvSW1hZ2U7CisKKyAgICBmcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNT
U1ZhbHVlKG1fZnJvbUltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisgICAgdG9JbWFnZSA9IGNhY2hl
ZEltYWdlRm9yQ1NTVmFsdWUobV90b0ltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisKKyAgICBpZiAo
IWZyb21JbWFnZSB8fCAhdG9JbWFnZSkKKyAgICAgICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2Uo
KTsKKworICAgIG1fZ2VuZXJhdGVkSW1hZ2UgPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3Jl
YXRlKGZyb21JbWFnZSwgdG9JbWFnZSwgbV9wZXJjZW50YWdlLT5nZXREb3VibGVWYWx1ZSgpIC8g
MTAwLjAsICZtX2Nyb3NzZmFkZU9ic2VydmVyLCBzaXplKTsKKworICAgIHJldHVybiBtX2dlbmVy
YXRlZEltYWdlLmdldCgpOworfQorCit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVD
aGFuZ2VkKGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKHJlY3QpOwor
CisgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjbGll
bnRzKCkuZW5kKCk7CisgICAgZm9yIChSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0
ZXJhdG9yIGN1cnIgPSBjbGllbnRzKCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsrY3Vycikgewor
ICAgICAgICBSZW5kZXJPYmplY3QqIGNsaWVudCA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4o
Y3Vyci0+Zmlyc3QpOworICAgICAgICBjbGllbnQtPmltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxX
cmFwcGVkSW1hZ2VQdHI+KHRoaXMpKTsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKaW5kZXggZDU0OWZiZS4uZmFj
ODQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKQEAgLTI3LDM3ICsy
Nyw2MyBAQAogI2RlZmluZSBDU1NDcm9zc2ZhZGVWYWx1ZV9oCiAKICNpbmNsdWRlICJDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUg
IkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFn
ZU9ic2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkSW1hZ2U7
CiBjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgQ1NTQ3Jvc3Nm
YWRlVmFsdWUgOiBwdWJsaWMgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENT
U0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiB0b0ltYWdl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbUltYWdlLCB0b0lt
YWdlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1ZT4gY3JlYXRl
KFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9J
bWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwg
dG9JbWFnZSkpOyB9CisgICAgfkNTU0Nyb3NzZmFkZVZhbHVlKCkgeyB9CiAKICAgICBTdHJpbmcg
Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9i
amVjdCopOworICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopIHsgcmV0
dXJuIEludFNpemUoKTsgfQorCisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdDsKKyAgICB2b2lk
IGxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKIAogICAgIHZvaWQgc2V0UGVy
Y2VudGFnZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlKSB7IG1fcGVy
Y2VudGFnZSA9IHBlcmNlbnRhZ2U7IH0KIAogcHJpdmF0ZToKLSAgICBDU1NDcm9zc2ZhZGVWYWx1
ZShQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NJbWFn
ZVZhbHVlPiB0b0ltYWdlKQorICAgIENTU0Nyb3NzZmFkZVZhbHVlKFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9JbWFnZSkKICAgICAgICAgOiBD
U1NJbWFnZUdlbmVyYXRvclZhbHVlKENyb3NzZmFkZUNsYXNzKQogICAgICAgICAsIG1fZnJvbUlt
YWdlKGZyb21JbWFnZSkKICAgICAgICAgLCBtX3RvSW1hZ2UodG9JbWFnZSkKLSAgICB7Ci0gICAg
fQorICAgICAgICAsIG1fY3Jvc3NmYWRlT2JzZXJ2ZXIodGhpcykgeyB9CisKKyAgICAvLyBOT1RF
OiBXZSBwdXQgdGhlIEltYWdlT2JzZXJ2ZXIgaW4gYSBtZW1iZXIgaW5zdGVhZCBvZiBpbmhlcml0
aW5nIGZyb20gaXQKKyAgICAvLyB0byBhdm9pZCBhZGRpbmcgYSB2cHRyIHRvIENTU0Nyb3NzZmFk
ZVZhbHVlLgorICAgIGNsYXNzIENyb3NzZmFkZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgSW1hZ2VP
YnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICBDcm9zc2ZhZGVPYnNlcnZlclByb3h5KENT
U0Nyb3NzZmFkZVZhbHVlKiBvd25lclZhbHVlKSA6IG1fb3duZXJWYWx1ZShvd25lclZhbHVlKSB7
IH0KKyAgICAgICAgdmlydHVhbCB+Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSgpIE9WRVJSSURFIHsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSosIGNvbnN0
IEludFJlY3QmIHJlY3QpIE9WRVJSSURFIHsgbV9vd25lclZhbHVlLT5jcm9zc2ZhZGVDaGFuZ2Vk
KHJlY3QpOyB9OworICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGF1c2VBbmltYXRpb24oY29u
c3QgSW1hZ2UqKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRHJhdyhjb25zdCBJbWFnZSopIE9WRVJSSURFIHsgfQorICAgICAgICB2aXJ0dWFsIHZv
aWQgYW5pbWF0aW9uQWR2YW5jZWQoY29uc3QgSW1hZ2UqKSBPVkVSUklERSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIGRlY29kZWRTaXplQ2hhbmdlZChjb25zdCBJbWFnZSosIGludCkgT1ZFUlJJ
REUgeyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJW
YWx1ZTsKKyAgICB9OworCisgICAgdm9pZCBjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
KTsKIAotICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBtX2Zyb21JbWFnZTsKLSAgICBSZWZQdHI8
Q1NTSW1hZ2VWYWx1ZT4gbV90b0ltYWdlOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV9mcm9tSW1h
Z2U7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBtX3RvSW1hZ2U7CiAgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBtX3BlcmNlbnRhZ2U7CisKKyAgICBSZWZQdHI8SW1hZ2U+IG1fZ2VuZXJhdGVk
SW1hZ2U7CisKKyAgICBDcm9zc2ZhZGVPYnNlcnZlclByb3h5IG1fY3Jvc3NmYWRlT2JzZXJ2ZXI7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGll
bnRWYWx1ZS5jcHAKaW5kZXggZmViMDFmNC4uYjU1YjQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFsdWUuaCIKIAotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiR2VuZXJh
dGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpAQCAtNjcsNyArNjcsNyBAQCBQYXNzUmVm
UHRyPEltYWdlPiBDU1NHcmFkaWVudFZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVy
LCBjb25zdCBJbnRTaXplJgogICAgICAgICBncmFkaWVudCA9IHN0YXRpY19jYXN0PENTU1JhZGlh
bEdyYWRpZW50VmFsdWUqPih0aGlzKS0+Y3JlYXRlR3JhZGllbnQocmVuZGVyZXIsIHNpemUpOwog
ICAgIH0KIAotICAgIFJlZlB0cjxJbWFnZT4gbmV3SW1hZ2UgPSBHZW5lcmF0ZWRJbWFnZTo6Y3Jl
YXRlKGdyYWRpZW50LCBzaXplKTsKKyAgICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShncmFkaWVudCwgc2l6ZSk7CiAgICAgaWYgKGNhY2hl
YWJsZSkKICAgICAgICAgcHV0SW1hZ2Uoc2l6ZSwgbmV3SW1hZ2UpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuaAppbmRleCBmMTNhYzk4Li5lYTEwZWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIEludFNpemUgZml4
ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQog
CisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQg
bG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgQ1NTR3JhZGllbnRWYWx1ZShDbGFzc1R5cGUgY2xhc3NUeXBlLCBDU1NHcmFkaWVudFJlcGVh
dCByZXBlYXQsIGJvb2wgZGVwcmVjYXRlZFR5cGUgPSBmYWxzZSkKICAgICAgICAgOiBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlKGNsYXNzVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmNwcAppbmRleCAxYzNjNjUyLi40MWI0NjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiU3R5bGVQZW5kaW5nSW1hZ2UuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTEwLDEzICsxMTEsMjYgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpwdXRJbWFn
ZShjb25zdCBJbnRTaXplJiBzaXplLCBQYXNzUmVmUHRyPEltYWdlPiBpbWEKICAgICBtX2ltYWdl
cy5hZGQoc2l6ZSwgaW1hZ2UpOwogfQogCitTdHlsZUltYWdlKiBDU1NJbWFnZUdlbmVyYXRvclZh
bHVlOjpnZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgpCit7CisgICAgaWYgKGlzUGVuZGluZygpKQor
ICAgICAgICBtX2ltYWdlID0gU3R5bGVQZW5kaW5nSW1hZ2U6OmNyZWF0ZSh0aGlzKS5nZXQoKTsK
KyAgICBlbHNlIGlmICghbV9hY2Nlc3NlZEltYWdlKSB7CisgICAgICAgIG1fYWNjZXNzZWRJbWFn
ZSA9IHRydWU7CisgICAgICAgIG1faW1hZ2UgPSBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUo
dGhpcywgaXNGaXhlZFNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7
Cit9CisKIFN0eWxlR2VuZXJhdGVkSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdlbmVy
YXRlZEltYWdlKCkKIHsKICAgICBpZiAoIW1fYWNjZXNzZWRJbWFnZSkgewogICAgICAgICBtX2Fj
Y2Vzc2VkSW1hZ2UgPSB0cnVlOwogICAgICAgICBtX2ltYWdlID0gU3R5bGVHZW5lcmF0ZWRJbWFn
ZTo6Y3JlYXRlKHRoaXMsIGlzRml4ZWRTaXplKCkpOwogICAgIH0KLSAgICByZXR1cm4gbV9pbWFn
ZS5nZXQoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdHlsZUdlbmVyYXRlZEltYWdlKj4o
bV9pbWFnZS5nZXQoKSk7CiB9CiAKIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0ltYWdlR2VuZXJhdG9y
VmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUp
CkBAIC0xNzAsNCArMTg0LDQxIEBAIEludFNpemUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Zml4
ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIEludFNpemUo
KTsKIH0KIAorYm9vbCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAor
eworICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQ3Jvc3NmYWRlVmFsdWUqPih0aGlz
KS0+aXNQZW5kaW5nKCk7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IENTU0NhbnZhc1ZhbHVlKj4odGhpcyktPmlzUGVuZGluZygpOworICAg
IGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IENTU0xpbmVhckdyYWRpZW50VmFsdWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgY2Fz
ZSBSYWRpYWxHcmFkaWVudENsYXNzOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMoQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIHN3aXRjaCAoY2xh
c3NUeXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgorICAgICAgICBzdGF0aWNfY2Fz
dDxDU1NDcm9zc2ZhZGVWYWx1ZSo+KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNl
TG9hZGVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAg
c3RhdGljX2Nhc3Q8Q1NTQ2FudmFzVmFsdWUqPih0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRS
ZXNvdXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZWFyR3JhZGllbnRD
bGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZSo+KHRoaXMp
LT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBSYWRpYWxHcmFkaWVudENsYXNzOgorICAgICAgICBzdGF0aWNfY2FzdDxDU1NSYWRp
YWxHcmFkaWVudFZhbHVlKj4odGhpcyktPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCmluZGV4IGQwZWI2NWIuLjFhYjQ0NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApAQCAtMzMs
OSArMzMsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjsKIGNsYXNzIEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgU3R5bGVH
ZW5lcmF0ZWRJbWFnZTsKK2NsYXNzIFN0eWxlSW1hZ2U7CiAKIHN0cnVjdCBTaXplQW5kQ291bnQg
ewogICAgIFNpemVBbmRDb3VudChJbnRTaXplIG5ld1NpemUgPSBJbnRTaXplKCksIGludCBuZXdD
b3VudCA9IDApCkBAIC01OCwxMSArNjAsMTYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50KFJlbmRlck9iamVjdCopOwogICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9i
amVjdCosIGNvbnN0IEludFNpemUmKTsKIAorICAgIFN0eWxlSW1hZ2UqIGdlbmVyYXRlZE9yUGVu
ZGluZ0ltYWdlKCk7CiAgICAgU3R5bGVHZW5lcmF0ZWRJbWFnZSogZ2VuZXJhdGVkSW1hZ2UoKTsK
IAogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdDsKICAgICBJbnRTaXplIGZpeGVkU2l6ZShj
b25zdCBSZW5kZXJPYmplY3QqKTsKIAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Q7CisKKyAg
ICB2b2lkIGxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKwogcHJvdGVjdGVk
OgogICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoQ2xhc3NUeXBlKTsKIApAQCAtNzAsNyArNzcs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwdXRJbWFnZShjb25zdCBJbnRTaXplJiwgUGFzc1Jl
ZlB0cjxJbWFnZT4pOwogICAgIGNvbnN0IFJlbmRlck9iamVjdFNpemVDb3VudE1hcCYgY2xpZW50
cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50czsgfQogCi0gICAgUmVmUHRyPFN0eWxlR2VuZXJh
dGVkSW1hZ2U+IG1faW1hZ2U7CisgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAgICAg
Ym9vbCBtX2FjY2Vzc2VkSW1hZ2U7CiAKICAgICBIYXNoQ291bnRlZFNldDxJbnRTaXplPiBtX3Np
emVzOyAvLyBBIGNvdW50IG9mIGhvdyBtYW55IHRpbWVzIGEgZ2l2ZW4gaW1hZ2Ugc2l6ZSBpcyBp
biB1c2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDg1ZDFhYmQuLmZjMzhjYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MjkwLDcgKzYyOTAsNyBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0
cjxDU1NWYWx1ZT4mCiAgICAgaWYgKCFhIHx8IGEtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QRVJDRU5UQUdFKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXN1bHQgPSBD
U1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihmcm9t
SW1hZ2VWYWx1ZS5nZXQoKSksIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih0b0ltYWdlVmFs
dWUuZ2V0KCkpKTsKKyAgICByZXN1bHQgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKGZyb21J
bWFnZVZhbHVlLCB0b0ltYWdlVmFsdWUpOwogICAgIHJlc3VsdC0+c2V0UGVyY2VudGFnZShjcmVh
dGVQcmltaXRpdmVOdW1lcmljVmFsdWUoYSkpOwogCiAgICAgY3Jvc3NmYWRlID0gcmVzdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDZiZWU4MzYuLmQyZjMz
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQyNDYsNyAr
NDI0Niw3IEBAIFN0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlSW1hZ2UoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTVmFsdWUqIHZhbHVlCiAgICAgICAgIHJldHVybiBjYWNoZWRP
clBlbmRpbmdGcm9tVmFsdWUocHJvcGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2
YWx1ZSkpOwogCiAgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkKLSAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSktPmdl
bmVyYXRlZEltYWdlKCk7CisgICAgICAgIHJldHVybiBnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFs
dWUocHJvcGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSkp
OwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC00MjU5LDYgKzQyNTksMTQgQEAgU3R5bGVJbWFnZSog
Q1NTU3R5bGVTZWxlY3Rvcjo6Y2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQg
cHJvcGVydHksIEMKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKK1N0eWxlSW1hZ2UqIENTU1N0eWxl
U2VsZWN0b3I6OmdlbmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5LCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBTdHlsZUltYWdlKiBp
bWFnZSA9IHZhbHVlLT5nZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgpOworICAgIGlmIChpbWFnZSAm
JiBpbWFnZS0+aXNQZW5kaW5nSW1hZ2UoKSkKKyAgICAgICAgbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0
aWVzLmFkZChwcm9wZXJ0eSk7CisgICAgcmV0dXJuIGltYWdlOworfQorCiB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6Om1hcEZpbGxJbWFnZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBGaWxsTGF5ZXIq
IGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1
ZSgpKSB7CkBAIC01NTc2LDYgKzU1ODQsMjQgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVh
dGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogc3QKIAog
I2VuZGlmCiAKK1N0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2Uo
U3R5bGVQZW5kaW5nSW1hZ2UqIHBlbmRpbmdJbWFnZSkKK3sKKyAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7CisKKyAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZhbHVl
KCkpIHsKKyAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFnZS0+
Y3NzSW1hZ2VWYWx1ZSgpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2Uo
Y2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIH0KKworICAgIGlmIChwZW5kaW5nSW1hZ2UtPmNz
c0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVl
KiBpbWFnZUdlbmVyYXRvclZhbHVlID0gcGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRvclZh
bHVlKCk7CisgICAgICAgIGltYWdlR2VuZXJhdG9yVmFsdWUtPmxvYWRTdWJpbWFnZXMoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VHZW5lcmF0b3JWYWx1ZS0+Z2Vu
ZXJhdGVkSW1hZ2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiB7CiAgICAgaWYgKG1fcGVuZGluZ0ltYWdl
UHJvcGVydGllcy5pc0VtcHR5KCkpCkBAIC01NTg1LDE0ICs1NjExLDEyIEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgIGZvciAoSGFzaFNldDxpbnQ+Ojpj
b25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKICAgICAgICAgQ1NTUHJvcGVydHlJRCBjdXJyZW50UHJvcGVydHkgPSBz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPigqaXQpOwogCi0gICAgICAgIENhY2hlZFJlc291cmNl
TG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKTsKLQogICAgICAgICBzd2l0Y2ggKGN1cnJlbnRQcm9wZXJ0eSkg
ewogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZTogewogICAgICAg
ICAgICAgICAgIGZvciAoRmlsbExheWVyKiBiYWNrZ3JvdW5kTGF5ZXIgPSBtX3N0eWxlLT5hY2Nl
c3NCYWNrZ3JvdW5kTGF5ZXJzKCk7IGJhY2tncm91bmRMYXllcjsgYmFja2dyb3VuZExheWVyID0g
YmFja2dyb3VuZExheWVyLT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJhY2tn
cm91bmRMYXllci0+aW1hZ2UoKSAmJiBiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCktPmlzUGVuZGlu
Z0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdl
VmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGJhY2tncm91bmRMYXllci0+
aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tn
cm91bmRMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZElt
YWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGJh
Y2tncm91bmRMYXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dy
b3VuZExheWVyLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01NjAxLDExICs1
NjI1LDExIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbnRlbnQ6IHsKICAgICAgICAgICAgICAgICBmb3Ig
KENvbnRlbnREYXRhKiBjb250ZW50RGF0YSA9IGNvbnN0X2Nhc3Q8Q29udGVudERhdGEqPihtX3N0
eWxlLT5jb250ZW50RGF0YSgpKTsgY29udGVudERhdGE7IGNvbnRlbnREYXRhID0gY29udGVudERh
dGEtPm5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudERhdGEtPmlzSW1h
Z2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3R5bGVJbWFnZSogaW1hZ2Ug
PSBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogaW1hZ2UgPSBzdGF0aWNfY2FzdDxJ
bWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFN0eWxlUGVuZGluZ0ltYWdlKj4oaW1hZ2UpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gaW1h
Z2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVu
dERhdGEpLT5zZXRJbWFnZShjYWNoZWRJbWFnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0
PFN0eWxlUGVuZGluZ0ltYWdlKj4oaW1hZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobG9hZGVkSW1hZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEltYWdlQ29udGVudERhdGEqPihjb250ZW50RGF0YSktPnNldEltYWdlKGxvYWRlZElt
YWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KQEAgLTU2MTgsOCArNTY0Miw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgQ3Vyc29y
RGF0YSYgY3VycmVudEN1cnNvciA9IGN1cnNvckxpc3QtPmF0KGkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKFN0eWxlSW1hZ2UqIGltYWdlID0gY3VycmVudEN1cnNvci5pbWFnZSgpKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFnZSgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdl
VmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKS0+Y3NzSW1hZ2VW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q3Vyc29yLnNl
dEltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0g
bG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDdXJzb3Iuc2V0SW1hZ2Uo
bG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtNTYyOSwxNiArNTY1Mywx
NiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKIAogICAgICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZUltYWdlOiB7CiAgICAgICAgICAgICAgICAg
aWYgKG1fc3R5bGUtPmxpc3RTdHlsZUltYWdlKCkgJiYgbV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2Uo
KS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVl
KiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5s
aXN0U3R5bGVJbWFnZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICBt
X3N0eWxlLT5zZXRMaXN0U3R5bGVJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRS
ZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJ
bWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPiht
X3N0eWxlLT5saXN0U3R5bGVJbWFnZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUt
PnNldExpc3RTdHlsZUltYWdlKGxvYWRlZEltYWdlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJJbWFnZVNvdXJjZTogewogICAgICAgICAgICAgICAgIGlmIChtX3N0eWxl
LT5ib3JkZXJJbWFnZVNvdXJjZSgpICYmIG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCktPmlz
UGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1h
Z2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+Ym9yZGVy
SW1hZ2VTb3VyY2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0Qm9yZGVySW1hZ2VTb3VyY2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVk
SW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4o
bV9zdHlsZS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSkpOworICAgICAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRCb3JkZXJJbWFnZVNvdXJjZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNTY0Nyw4ICs1Njcx
LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAg
ICAgICAgICAgaWYgKFN0eWxlUmVmbGVjdGlvbiogcmVmbGVjdGlvbiA9IG1fc3R5bGUtPmJveFJl
ZmxlY3QoKSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFnZSYgbWFz
a0ltYWdlID0gcmVmbGVjdGlvbi0+bWFzaygpOwogICAgICAgICAgICAgICAgICAgICBpZiAobWFz
a0ltYWdlLmltYWdlKCkgJiYgbWFza0ltYWdlLmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0
aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tJbWFnZS5pbWFnZSgpKS0+Y3NzSW1hZ2VW
YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVmbGVjdGlvbi0+c2V0TWFzayhOaW5l
UGllY2VJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciks
IG1hc2tJbWFnZS5pbWFnZVNsaWNlcygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9y
ZGVyU2xpY2VzKCksIG1hc2tJbWFnZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxl
KCksIG1hc2tJbWFnZS52ZXJ0aWNhbFJ1bGUoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
U3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0
eWxlUGVuZGluZ0ltYWdlKj4obWFza0ltYWdlLmltYWdlKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlZmxlY3Rpb24tPnNldE1hc2soTmluZVBpZWNlSW1hZ2UobG9hZGVkSW1hZ2UsIG1h
c2tJbWFnZS5pbWFnZVNsaWNlcygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9yZGVy
U2xpY2VzKCksIG1hc2tJbWFnZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxlKCks
IG1hc2tJbWFnZS52ZXJ0aWNhbFJ1bGUoKSkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTY1Niw4ICs1NjgwLDgg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAKICAgICAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrQm94SW1hZ2VTb3VyY2U6IHsKICAgICAgICAg
ICAgICAgICBpZiAobV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkgJiYgbV9zdHlsZS0+bWFz
a0JveEltYWdlU291cmNlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0lt
YWdlKj4obV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hc2tCb3hJbWFnZVNvdXJjZShpbWFnZVZh
bHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAg
ICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nh
c3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3VyY2UoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXNrQm94SW1hZ2VTb3VyY2UobG9hZGVk
SW1hZ2UpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KQEAgLTU2NjUsOCArNTY4OSw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9h
ZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJ
bWFnZTogewogICAgICAgICAgICAgICAgIGZvciAoRmlsbExheWVyKiBtYXNrTGF5ZXIgPSBtX3N0
eWxlLT5hY2Nlc3NNYXNrTGF5ZXJzKCk7IG1hc2tMYXllcjsgbWFza0xheWVyID0gbWFza0xheWVy
LT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2tMYXllci0+aW1hZ2UoKSAm
JiBtYXNrTGF5ZXItPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBl
bmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVk
SW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0
eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHls
ZVBlbmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbWFza0xheWVyLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCBkZmI5ZWFjLi5kYTIyNTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ1NT
UHJpbWl0aXZlVmFsdWU7CiBjbGFzcyBDU1NQcm9wZXJ0eTsKIGNsYXNzIENTU0ZvbnRGYWNlOwog
Y2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTsKIGNs
YXNzIENTU0ltYWdlVmFsdWU7CiBjbGFzcyBDU1NSZWdpb25TdHlsZVJ1bGU7CiBjbGFzcyBDU1NS
dWxlTGlzdDsKQEAgLTY2LDYgKzY3LDcgQEAgY2xhc3MgUnVsZURhdGE7CiBjbGFzcyBSdWxlU2V0
OwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTdHlsZUltYWdlOworY2xhc3MgU3R5bGVQZW5kaW5n
SW1hZ2U7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBT
dHlsZWRFbGVtZW50OwpAQCAtMjgwLDYgKzI4Miw3IEBAIHB1YmxpYzoKIAogICAgIFN0eWxlSW1h
Z2UqIHN0eWxlSW1hZ2UoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUqKTsKICAgICBTdHlsZUltYWdl
KiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VWYWx1ZSop
OworICAgIFN0eWxlSW1hZ2UqIGdlbmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0
eUlELCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKik7CiAKICAgICBib29sIGFwcGx5UHJvcGVydHlU
b1JlZ3VsYXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0
eWxlOyB9CiAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlOyB9CkBAIC0zMjcsNiAr
MzMwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NW
YWx1ZSopOwogI2VuZGlmCiAKKyAgICBTdHlsZUltYWdlKiBsb2FkUGVuZGluZ0ltYWdlKFN0eWxl
UGVuZGluZ0ltYWdlKik7CiAgICAgdm9pZCBsb2FkUGVuZGluZ0ltYWdlcygpOwogCiAgICAgc3Ry
dWN0IE1hdGNoZWRTdHlsZURlY2xhcmF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGUyODlkZDQuLmJjZDM0OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtOTgsNiAr
OTgsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEJpdG1hcEltYWdlIDogcHVibGljIEltYWdlIHsKICAg
ICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUoTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1h
Z2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGJkM2IyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNTU0Ny
b3NzZmFkZVZhbHVlLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKwordXNpbmcgbmFtZXNwYWNl
IHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2FjaGVkSW1h
Z2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyLCBj
b25zdCBJbnRTaXplJiBzaXplKQorICAgIDogbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQorICAgICwg
bV90b0ltYWdlKHRvSW1hZ2UpCisgICAgLCBtX3BlcmNlbnRhZ2UocGVyY2VudGFnZSkKKyAgICAs
IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIo
YWRvcHRQdHIobmV3IENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSh0aGlzKSkpCit7Cisg
ICAgbV9zaXplID0gc2l6ZTsKKworICAgIG1fZnJvbUltYWdlLT5hZGRDbGllbnQobV9jcm9zc2Zh
ZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKKyAgICBtX3RvSW1hZ2UtPmFkZENsaWVudChtX2Ny
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOworCisgICAgbV9jcm9zc2ZhZGVTdWJpbWFn
ZU9ic2VydmVyLT5zZXRSZWFkeSh0cnVlKTsKK30KKworQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6
On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpCit7CisgICAgbV9mcm9tSW1hZ2UtPnJlbW92ZUNs
aWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOworICAgIG1fdG9JbWFnZS0+
cmVtb3ZlQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7Cit9CisKK3Zv
aWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0KQoreworICAgIEltYWdlKiBmcm9tSW1hZ2UgPSAwOworICAgIEltYWdlKiB0b0lt
YWdlID0gMDsKKyAgICBJbnRTaXplIGZyb21JbWFnZVNpemUsIHRvSW1hZ2VTaXplLCBjcm9zc2Zh
ZGVJbWFnZVNpemU7CisgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxLjBmIC0gbV9wZXJj
ZW50YWdlOworCisgICAgZnJvbUltYWdlID0gbV9mcm9tSW1hZ2UtPmltYWdlKCk7CisgICAgZnJv
bUltYWdlU2l6ZSA9IGZyb21JbWFnZS0+c2l6ZSgpOworICAgIHRvSW1hZ2UgPSBtX3RvSW1hZ2Ut
PmltYWdlKCk7CisgICAgdG9JbWFnZVNpemUgPSB0b0ltYWdlLT5zaXplKCk7CisKKyAgICAvLyBE
cmF3IG5vdGhpbmcgaWYgZWl0aGVyIG9mIHRoZSBpbWFnZXMgaGFzbid0IGxvYWRlZCB5ZXQuCisg
ICAgaWYgKGZyb21JbWFnZSA9PSBJbWFnZTo6bnVsbEltYWdlKCkgfHwgdG9JbWFnZSA9PSBJbWFn
ZTo6bnVsbEltYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNyb3NzZmFkZUltYWdlU2l6
ZSA9IEludFNpemUoZnJvbUltYWdlU2l6ZS53aWR0aCgpICogaW52ZXJzZVBlcmNlbnRhZ2UgKyB0
b0ltYWdlU2l6ZS53aWR0aCgpICogbV9wZXJjZW50YWdlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnJvbUltYWdlU2l6ZS5oZWlnaHQoKSAqIGludmVyc2VQZXJjZW50YWdlICsg
dG9JbWFnZVNpemUuaGVpZ2h0KCkgKiBtX3BlcmNlbnRhZ2UpOworCisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKworICAgIC8vIERyYXcgdGhlIGlt
YWdlIHdlJ3JlIGZhZGluZyBhd2F5IGZyb20uCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlm
IChjcm9zc2ZhZGVJbWFnZVNpemUgIT0gZnJvbUltYWdlU2l6ZSkKKyAgICAgICAgY29udGV4dC0+
c2NhbGUoRmxvYXRTaXplKHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUud2lk
dGgoKSkgLyBmcm9tSW1hZ2VTaXplLndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLmhlaWdodCgpKSAv
IGZyb21JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0LT5zZXRBbHBoYShpbnZlcnNl
UGVyY2VudGFnZSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGZyb21JbWFnZSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisgICAg
Ly8gRHJhdyB0aGUgaW1hZ2Ugd2UncmUgZmFkaW5nIHRvd2FyZHMuCisgICAgY29udGV4dC0+c2F2
ZSgpOworICAgIGlmIChjcm9zc2ZhZGVJbWFnZVNpemUgIT0gdG9JbWFnZVNpemUpCisgICAgICAg
IGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNfY2FzdDxmbG9hdD4oY3Jvc3NmYWRlSW1h
Z2VTaXplLndpZHRoKCkpIC8gdG9JbWFnZVNpemUud2lkdGgoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Pihjcm9zc2ZhZGVJbWFnZVNpemUuaGVp
Z2h0KCkpIC8gdG9JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0LT5zZXRDb21wb3Np
dGVPcGVyYXRpb24oQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4dC0+c2V0QWxwaGEo
bV9wZXJjZW50YWdlKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UodG9JbWFnZSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCit2
b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQoreworICAgIFVOVVNFRF9Q
QVJBTShjb21wb3NpdGVPcCk7CisgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOworCisgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0
LT5jbGlwKGRzdFJlY3QpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0
UmVjdC55KCkpOworCisgICAgZHJhd0Nyb3NzZmFkZShjb250ZXh0KTsKK30KKwordm9pZCBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCkKK3sKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShtX3NpemUpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIEZpbGwgd2l0aCB0aGUgY3Jvc3MtZmFkZWQgaW1hZ2UuCisgICAgR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwor
ICAgIGRyYXdDcm9zc2ZhZGUoZ3JhcGhpY3NDb250ZXh0KTsKKworICAgIC8vIFRpbGUgdGhlIGlt
YWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgorICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVy
bihjb250ZXh0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNw
YWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiBy
ZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7CisgICAgbV9vYnNlcnZlci0+Y2hhbmdl
ZEluUmVjdCh0aGlzLCAqcmVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1ZTA0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5o
CkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2VfaAorI2RlZmluZSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2Uu
aCIKKyNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1ND
cm9zc2ZhZGVWYWx1ZTsKK2NsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsKKwor
Y2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2Ugewor
ICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShD
YWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2Vu
dGFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZy
b21JbWFnZSwgdG9JbWFnZSwgcGVyY2VudGFnZSwgb2JzZXJ2ZXIsIHNpemUpKTsKKyAgICB9Cisg
ICAgdmlydHVhbCB+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKTsKKworcHJvdGVjdGVkOgorICAg
IHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCk7CisKKyAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSogZnJv
bUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNl
cnZlciosIGNvbnN0IEludFNpemUmKTsKKworICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZElt
YWdlKiwgY29uc3QgSW50UmVjdCogPSAwKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGRyYXdDcm9z
c2ZhZGUoR3JhcGhpY3NDb250ZXh0Kik7CisKKyAgICBDYWNoZWRJbWFnZSogbV9mcm9tSW1hZ2U7
CisgICAgQ2FjaGVkSW1hZ2UqIG1fdG9JbWFnZTsKKyAgICBmbG9hdCBtX3BlcmNlbnRhZ2U7CisK
KyAgICBJbWFnZU9ic2VydmVyKiBtX29ic2VydmVyOworICAgIE93blB0cjxDcm9zc2ZhZGVTdWJp
bWFnZU9ic2VydmVyUHJveHk+IG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcjsKK307CisKK2Ns
YXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSA6IHB1YmxpYyBDYWNoZWRJbWFnZUNs
aWVudCB7CitwdWJsaWM6CisgICAgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlKiBvd25lclZhbHVlKQorICAgIDogbV9vd25lclZhbHVlKG93bmVy
VmFsdWUpCisgICAgLCBtX3JlYWR5KGZhbHNlKSB7IH0KKworICAgIHZpcnR1YWwgfkNyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBp
bWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0ID0gMCkg
T1ZFUlJJREUgeworICAgICAgICBpZiAobV9yZWFkeSkKKyAgICAgICAgICAgIG1fb3duZXJWYWx1
ZS0+aW1hZ2VDaGFuZ2VkKGltYWdlLCByZWN0KTsKKyAgICB9CisgICAgdm9pZCBzZXRSZWFkeShi
b29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQorcHJpdmF0ZToKKyAgICBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZSogbV9vd25lclZhbHVlOworICAgIGJvb2wgbV9yZWFkeTsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5l
cmF0ZWRJbWFnZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlMDZkZmQuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1h
Z2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgot
Ci0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0j
aW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlICJMZW5ndGguaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi12b2lkIEdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQotewotICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0gICAgY29udGV4
dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wKTsKLSAgICBjb250ZXh0LT5jbGlw
KGRzdFJlY3QpOwotICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55
KCkpOwotICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKLSAgICAgICAg
Y29udGV4dC0+c2NhbGUoRmxvYXRTaXplKGRzdFJlY3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgo
KSwgZHN0UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKLSAgICBjb250ZXh0LT50
cmFuc2xhdGUoLXNyY1JlY3QueCgpLCAtc3JjUmVjdC55KCkpOwotICAgIGNvbnRleHQtPmZpbGxS
ZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7
Ci19Ci0KLXZvaWQgR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0
ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAg
IC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRp
bGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgSW50U2l6ZSBhZGp1
c3RlZFNpemUgPSBtX3NpemU7Ci0gICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1Jl
Y3Q7Ci0gICAgbV9nZW5lcmF0b3ItPmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoYWRq
dXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3QpOwotCi0gICAgLy8gQ3JlYXRlIGEgQml0bWFwSW1h
Z2UgYW5kIGNhbGwgZHJhd1BhdHRlcm4gb24gaXQuCi0gICAgT3duUHRyPEltYWdlQnVmZmVyPiBp
bWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYWRqdXN0ZWRTaXplKTsKLSAgICBpZiAo
IWltYWdlQnVmZmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGaWxsIHdpdGggdGhlIGdy
YWRpZW50LgotICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZm
ZXItPmNvbnRleHQoKTsKLSAgICBncmFwaGljc0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChG
bG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7Ci0KLSAgICAv
LyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZl
ci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3Jt
LCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOwotfQotCi12
b2lkIEdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGlu
dHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5z
aWNSYXRpbykKLXsKLSAgICBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmlu
c2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8pOwotICAgIGludHJpbnNp
Y1JhdGlvID0gRmxvYXRTaXplKCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCmluZGV4IGQyODg3MmIuLmJlYzM0M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2Uu
aApAQCAtMzYsMTIgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW5lcmF0
ZWRJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
R2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBj
b25zdCBJbnRTaXplJiBzaXplKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBH
ZW5lcmF0ZWRJbWFnZShnZW5lcmF0b3IsIHNpemUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+R2Vu
ZXJhdGVkSW1hZ2UoKSB7fQotCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRh
aW5lclNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9CkBAIC01Nywx
NyArNTEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBj
b25zdCB7IHJldHVybiAwOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKLSAgICAK
LSAgICBHZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25z
dCBJbnRTaXplJiBzaXplKQotICAgICAgICA6IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKLSAgICAg
ICAgLCBtX3NpemUoc2l6ZSkKLSAgICB7Ci0gICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSA9IDA7CisKKyAg
ICBHZW5lcmF0ZWRJbWFnZSgpIHsgfQogCi0gICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9nZW5lcmF0
b3I7CiAgICAgSW50U2l6ZSBtX3NpemU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExZjAwMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCisKKyNp
bmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNs
dWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIkxlbmd0aC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3ZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCit7Cisg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBj
b250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9zaXRlT3ApOworICAgIGNvbnRleHQt
PmNsaXAoZHN0UmVjdCk7CisgICAgY29udGV4dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgpLCBkc3RS
ZWN0LnkoKSk7CisgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQorICAg
ICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53
aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkpOworICAgIGNvbnRl
eHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0LnkoKSk7CisgICAgY29udGV4dC0+
ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSwgKm1fZ2VuZXJhdG9yLmdl
dCgpKTsKK30KKwordm9pZCBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QpCit7CisgICAgLy8gQWxsb3cgdGhlIGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5
LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAg
ICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IG1fc2l6ZTsKKyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRT
cmNSZWN0ID0gc3JjUmVjdDsKKyAgICBtX2dlbmVyYXRvci0+YWRqdXN0UGFyYW1ldGVyc0ZvclRp
bGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFkanVzdGVkU3JjUmVjdCk7CisKKyAgICAvLyBDcmVh
dGUgYSBCaXRtYXBJbWFnZSBhbmQgY2FsbCBkcmF3UGF0dGVybiBvbiBpdC4KKyAgICBPd25QdHI8
SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShhZGp1c3RlZFNp
emUpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZp
bGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGltYWdlLgorICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhp
Y3NDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICBncmFwaGljc0NvbnRleHQt
PmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVy
YXRvci5nZXQoKSk7CisKKyAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29u
dGV4dC4KKyAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVP
cCwgZGVzdFJlY3QpOworfQorCit2b2lkIEdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2lj
RGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdo
dCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykKK3sKKyAgICBJbWFnZTo6Y29tcHV0ZUludHJp
bnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2lj
UmF0aW8pOworICAgIGludHJpbnNpY1JhdGlvID0gRmxvYXRTaXplKCk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwOWNhNzMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZV9oCisjZGVmaW5lIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlX2gKKworI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAi
R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlIDogcHVibGljIEdlbmVyYXRlZEltYWdlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBh
c3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKGdl
bmVyYXRvciwgc2l6ZSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5HZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZSgpIHsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAg
dmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0KTsKKworICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R2Vu
ZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgICAgIDogbV9nZW5l
cmF0b3IoZ2VuZXJhdG9yKQorICAgIHsKKyAgICAgICAgbV9zaXplID0gc2l6ZTsKKyAgICB9CisK
KyAgICBSZWZQdHI8R2VuZXJhdG9yPiBtX2dlbmVyYXRvcjsKK307CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBiZjFhMTdmLi5iNTQ2
YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTc5LDYg
Kzc5LDggQEAgY2xhc3MgSW1hZ2VPYnNlcnZlcjsKIAogY2xhc3MgSW1hZ2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxJbWFnZT4gewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKKyAgICBm
cmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCmluZGV4IDA4ODk5YTYuLjdkZjEzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTI2LDYgKzEyNiw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogICAg
ICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgICAgIGZyaWVuZCBjbGFzcyBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgSW1hZ2VCdWZmZXJEYXRhIG1f
ZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBl
bmRpbmdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGlu
Z0ltYWdlLmgKaW5kZXggYzBlZTEzOS4uOWFhMGUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKQEAgLTI2LDYgKzI2LDggQEAK
ICNpZm5kZWYgU3R5bGVQZW5kaW5nSW1hZ2VfaAogI2RlZmluZSBTdHlsZVBlbmRpbmdJbWFnZV9o
CiAKKyNpbmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTSW1h
Z2VWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgog
CkBAIC0zNywxMiArMzksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdHlsZVBl
bmRpbmdJbWFnZSA6IHB1YmxpYyBTdHlsZUltYWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHlsZVBlbmRpbmdJbWFnZT4gY3JlYXRlKENTU0ltYWdlVmFsdWUqIHZhbHVlKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVQZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0eWxlUGVuZGluZ0ltYWdlPiBjcmVhdGUoQ1NTVmFsdWUqIHZhbHVl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVQZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQogCi0g
ICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KKyAgICB2aXJ0dWFsIFdyYXBwZWRJbWFnZVB0ciBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1fdmFsdWUpOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQotICAg
IENTU0ltYWdlVmFsdWUqIGNzc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
CisgICAgQ1NTSW1hZ2VWYWx1ZSogY3NzSW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFs
dWUtPmlzSW1hZ2VWYWx1ZSgpID8gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1fdmFsdWUp
IDogMDsgfQorICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqIGNzc0ltYWdlR2VuZXJhdG9yVmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSA/IHN0
YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPihtX3ZhbHVlKSA6IDA7IH0KICAgICAK
ICAgICB2aXJ0dWFsIEludFNpemUgaW1hZ2VTaXplKGNvbnN0IFJlbmRlck9iamVjdCosIGZsb2F0
IC8qbXVsdGlwbGllciovKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAg
LTU5LDEzICs2MiwxMyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBTdHls
ZVBlbmRpbmdJbWFnZShDU1NJbWFnZVZhbHVlKiB2YWx1ZSkKKyAgICBTdHlsZVBlbmRpbmdJbWFn
ZShDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAg
ICAgIG1faXNQZW5kaW5nSW1hZ2UgPSB0cnVlOwogICAgIH0KIAotICAgIENTU0ltYWdlVmFsdWUq
IG1fdmFsdWU7IC8vIE5vdCByZXRhaW5lZDsgaXQgb3ducyB1cy4KKyAgICBDU1NWYWx1ZSogbV92
YWx1ZTsgLy8gTm90IHJldGFpbmVkOyBpdCBvd25zIHVzLgogfTsKIAogfQo=
</data>
<flag name="commit-queue"
          id="113827"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115027</attachid>
            <date>2011-11-14 13:56:06 -0800</date>
            <delta_ts>2011-11-15 16:32:48 -0800</delta_ts>
            <desc>Render Cross-Fade (plus build fix for non-debug)</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>94239</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDYyNjY1Li5mZWVmNWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKworICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZzogQWRkZWQuCisgICAg
ICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmc6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5w
bmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLXNpemluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
dGlsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFu
ICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3RzIGZv
ciAgbmV3IHdlYnNxbCBlcnJvciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUwNTMwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAw
cHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2lmKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaWYo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBz
aG91bGQgYXBwZWFyIGFzIGEgbGlnaHQgZ3JlZW4gc3F1YXJlIHdpdGggYSBkYXJrZXIgZ3JlZW4g
Y2lyY2xlIGluc2lkZSBpdC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcpLCB1cmwocmVzb3Vy
Y2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mOGRiNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aHRt
bD4KKzxzdHlsZT4KK2RpdgoreworCXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1h
cmdpbjogMTBweDsKK30KKzwvc3R5bGU+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxk
IGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9yZWQt
MTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8
IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNx
dWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIHVybChyZXNvdXJjZXMv
cmVkLTEwMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91
bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2Js
dWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZyksIDUwJSk7Ij48L2Rpdj4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
c2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhY2UxYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDEwMHB4
OworCWhlaWdodDogMTAwcHg7CisJbWFyZ2luOiAxMHB4OworfQorPC9zdHlsZT4KKzwhLS1UaGUg
Zmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEw
eDEwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5n
KSwgMTAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVh
ciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAu
cG5nKSwgdXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRo
aXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCA1NXg1
NXB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcp
LCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9z
cy1mYWRlLXRpbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3
MGY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtdGlsZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxzdHlsZT4KK2Rpdgorewor
CXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKKworCS13ZWJr
aXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7CisJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9
Cis8L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAx
MDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwo
cmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCAxMDAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQg
Y3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBw
eC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL3JlZC0xMDAucG5nKSwg
MCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRoaXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IGJsdWUtZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ibHVlLTEwMC5wbmcpLCB1
cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcgYi9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjI5NDllMDhkODdkZmNkYzA5ODdlYWVmNjc2OTJjN2ExYzE2YWE1MApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNzYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5BVH0yVjg8NlpaST0+ZjQzNDZM
WWhEYzBKUER1RmlmNCtzeXN0TjEzClo3KkUkNnc+OzlyWlV2TlBATzFUYVM/ODN7MU9SaEM2Yysj
aAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jl
c291cmNlcy9ibHVlLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3OGFlNzI1MzNjNzc0NmM4YTRkMmY2
ZWVmMzJhODEzN2VlMWY0YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTIKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEQrOXktdThLP0hLKDJfVmkoYG17Cm1X
TzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0tiTGgqMn43WTJqfXcmdQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVz
b3VyY2VzL2dyZWVuLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzOWIwZDAyZDM0MmJiZjFlZGQyZWJiY2MyZmY0ZmY4
YjAzMmUxMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzQKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB2cF5BVH0yVjg8NlpaST0+ZjQzM3xGWGhEYzBKUFdhKWtBYHxLbi1eIXFgCldlJSRpbik0RlYr
QiFqMWBwVVhPQGdlQ3dTU2BwbTwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAucG5nIGIvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1
YmJiZTVjNTc2MGQ5MDVkYjRiZjAxNWI1YjdmYWEyNzQ2N2M3ZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WEU1
bTtWbGVoeWJmTHN3ejdzbjZACm0kPmFuSCoyTWBUSnh6ZlF7dE9KUDYlMzVjTmVAYlpAKGlBP2Vs
RntyNX1FK2BuaUZJSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcgYi9MYXlvdXRUZXN0
cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDRmOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmcKQEAgLTAsMCArMSw1IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2
aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBz
dHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InJlZCI+CisgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSJyZWQiIHRvPSJncmVlbiIgYmVnaW49IjBzIiBk
dXI9IjAuMDFzIiBmaWxsPSJmcmVlemUiIC8+CisgIDwvY2lyY2xlPgorPC9zdmc+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
cmVzb3VyY2VzL3JlZC0xMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMv
cmVkLTEwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmEyYmYzMTIxNWUzMGNmYTc4OTBmZTA2MDQ1OTFhM2Rl
ZGVmYjE3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHZwXkFUfTJWODw2WlpJPT5mNGlGbXA9aERjMEp7JkRgbWh4cm1gM3wzOXAKYSRIaDQ1QE52dGkr
S0dpZ2M/TTVjS2JMaCoyfjdhNFJ+Nm0+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcgYi9MYXlv
dXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcz
ZGQ3NThhZGY0MjRkYjgyOWNlMzM5N2ZjOWMzMWI3ZjRhNDVlZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5ESW08cTM/I2pEKnV7WXFiQVY1WD53
ZzlZJHchPiNLKDJfVmkoYG17Cm1XTzlOOD4qNTVGb35BJHRlK0NCRDNJQGpKcXo1SEhjP001Y0ti
TGgqMn43YWwxYD8kSgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwMjRjMTNmNGEyMDg0
MmFiMmU5YjQ1OGFjYjc3ZDJlZGQ3NDQ2OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQzMzcK
emNtZUhPZHB5KGFgYEAlIUEoVCo8ckd0N1okREcyZjZNOW5nRDNRWSlOOyVIP1lAP0QmcUV6SHFz
WmBGeW9GX3R4CnpKY3diMjx4RTJrK3Nyb0trTFE9IT4tK291e2B+IyVlWkJTPHlJcjVfelY3Uk9V
Kz9SRS09RGNfZGReVUleVWxwNgp6NUo+cDYoYUZDK3BiYztraHxkRGI0fiEpRi18eiV9OVBtQTU7
cD0kKXMtdnJxcEY3QSZgLStwNmdYMn44dEQ1USMKem4oQThpJTM5am1fViNLanN6O1F5b1JxSkEt
NDNZJnl1aDRLb0c/OW87c281KDh8fiFtYmA9QikxVj4mTmFQMlNeCnpYWkshQiVfbTE2eShZRV5h
czhwazYqSiF4REo4QyMlM0NmXllUJE1tQ0JKZEVQSE5hZyFRPjB7TTVCK14ybUJJMQp6RUN+cXAr
KGRedzVeZk47cilTQGhIPlMhTHI2bkladDY7WEZqOC13UUdfOT5MSGY7TlIkP0l+NXhSUXdZTUto
RTcKelRJUSE9QHFzejh0O35zbyU8RV5QWiVoMlMmayFsblE1WkIrR2B8SmI7TzBBeDk+YClsYnx5
VSQ1fVRFUVMzZyQmCnpCdX08ez9yaTx0Y2lVanMtSS1Kc18xWUY9QUIjLUxDYj9AYFh2WVpoe2d+
WlBvc09zQGxRemB+KUVfXjNyV0MxXwp6PXNZK3QtMkUqPWR7fC1NeUdNJUF4Pj18R1FYMDgocyEp
aEpFOVl9XzR3ZTcqQGtEYVltfXJjOSh2RVgmcTQpYWIKenc4SzJfa0FnWnM+WjdFcGorTGYqVDQp
U3FzQUc8fD84ejB8UzJaXjY+enFpcm52YEk5VkMhQylKKFVnQGFARXxOCnpNK0c8Qk8mYVo+RVNO
c1pQZHxiYHFHbVppTEB8OD1uTnExPXFARlFZRDZiK0FBSTF2fHNVdEVFYllZUn5EJXpzPQp6eV4p
fHR2cmB7bkZgV3hta0IqdVhpTmheI2NHckNoSUlxOUs9PWhCWEdGU0V3SzBHZERwWEIpSUo+Nkpo
aHkwKGYKeitNUnRiMVFsdl4+RmtleE58Ny1QWShpfSp3VXQ9M0RsRFpBRX5rPDk1Kn0xO2tGM1hL
YmYyZGJNQCpDI1pjQ0VKCnpgcXt0RUBFfmlKalUtRkVYOSteanYrcz0qN307TF5Wc2hnPSFCMWx9
Jk1ibEhDKWxkYGN6VW5AUnR1cj4+eyhtLQp6QTh3bVhBfC0xUkBaVWR3PigzR1U4dCEhbmsoRmxG
KChyUnt5SyghfWx+VmtAI3A0WjlPS35iRUV+aSVTSWglNCUKemQjPX0xUD1QPC0jPzxIIVliQW19
VDFCJUJuTmJHS1FTeyNacGpMQTZST3FoUllQRCh2M1d2VTlwR21DbHhINlRZCnphKFN3djw2LSZC
ZzVieG9MPE9xZWdaSkJaNmMkdCRWOWNRaEtmSDh3YExvRV4xaGlxVmA/LVlxanF4Kkx3Kio3KQp6
PFF+Mm9vOEBwUiZnOUBgXmZNdmIxZmtQO01tPnU4STxiQHVDMXpiVnFzfU5GP2ZFfUVDIXw/KlE7
TTF3YEU3VTkKendEfkFYSzNEU18tanA5fGR1VkRxUUJGNHY3eWVMKD0kTkREWmVKZGFGd1l8VERx
Nnc3NihVKWs+ODxaT05uXnVVCnohTjNlQXxHVjlyeUp9eWNSNiFzKD09OH5CN1hyWik1LVJVV0tx
fkUqOVFOZE15WnVMZV9vJmV6O3d9d1JzeXAoTAp6TkF+Uk4/MWx4SXJpVXZxNHV3aj1sRSkqP3t5
ZC1qX0UmZiFYdFBzb3FPcHU9O3ZAdlVeWjd8cChJcD1nekV+bXwKejxOQjxZI0lqcm92fXZqekp3
c3pwYCZEJXp4QFU1JHNGJnlNdzMyUnV6PGR5PkM+JDlNezktMCpwJWQ5a0h2OWVZCnpwSy1mQWFB
ZkUldGBUSypGaiFVSENIKVQ5bGkoayZ0SXoqLTYhQzVvSDE2SGA8Jnp4ODVHWWc+d1NudVNAbVha
Sgp6YVpJbSp7NkYqbF45TikmZWRxcyNAeXx5KTdlMmwjRjVlTWk5SmdTO3NZfXM9Nl9rcHM7eEIw
ek1Mbl9FZEByfGkKemR9YipRaXA1PTJEMzBUYnFZO1JzdjU2a0E3OHV+bCt5KXQqZWVfKTw9USMq
ZV9aJWBAX2duKmgreHFQSmxmZE1pCnpyd3tMMDR7eSttazhqdlptN1U3dnxEdlFRSm5OanhGMEsk
YHd+NH1JPEEyUj9gT2h3fGQwITw7ZW1fdUhRIyhiLQp6ISRuSWZsPmBpZztjVXZoVSl4bXA9YTVS
aEdEemlxUyk/K2JPajFQdmRjbCZBVkAxJCM+OzdCQXo0dj5HVFRncTUKekpGKDBFWExwPGJiWUc3
QHJNSSloZ1M0fk0md01LPFU8KnZkPm4oOUdpTHVzbnc0fGM3Uk8rUVgrcHcxKjMpN15FCnpvT0Rm
ZXpmOXk4b3RhOEFndlQ8SzshY3w7VyUjdEY+MUNLNm42Y3h5ZkZsUF9ZPCNNU1dNb0s8ZU1Aentf
QVNOdgp6VDVGbStaRHMpTE9QOyFvcndTLShoPlgyeUJBUlNMPiNMO0xJSjlfRGhkejR0JVlNVFBr
RDtSR00/TCRLRHkjWjAKemkjKUB5ODNlcUNEPFJoJW45WCZXSGlIaEtPfW4kJndoM19NTmxyMlUy
KUpEP009Tk9WaWpMcHBnXkk5Y1lETn1HCnpnU29nd3spcjk9KXhDZThvRU5MZFNhd1RIWCUkQX1A
SDJXTERNRGlIeHghOzFJVjhNNG88K3NzV21CYSFKPV9GRAp6VX5XLWNXTD1VcVg8eGohZkk1cWJo
IWx4cVMzVmVPakt5X2luIzV3PFR6dExzY0d7Ky09PFA5fEFOUUpqKlIrSmEKempTSUx2LSVoViZC
QGlpK2M9ezxGdU9CQ01KT2AwRi1vdG1zcUpAclpTcUcyRU1oT2loQmxod2xkTGRSO2hxXzt2Cnp2
M3ZXOVppPTRoOF40OGByT2MrS0YpfkdgJklEfiFyNHhNUWpiVTNgaDlRdyQ3c2F+WF48aTJoSiEl
YSZjRFdsUgp6UkZSRE1GOVZvbWl2UUJ3aHwwOEpUYH4tMjw+V0BIOHh5UHhhP31kQlZfaStldTs8
ZmIoXy1mKXYrXkZLZUx4SVoKempkIWQ9SDFTPXtAcl8yPD8/YyEwbW8xa15sKDU8Y1F6bS1gYlcm
S191ekJBRlEzbGc8T1JKZGtTbnZNRilobnpTCnpUbWxNSFJ5RnRLQVdabUs9SkZUIVUyREtqZHx5
KXdgNVpEK01kJU00aWxKdWV2eihiSD1oJH0pU0syYXpGYkM+awp6MV9IT3xXOXpoYTw9ZzhmTTZt
UHxBKkA5TGFsVzxITj9qUCZjOHBXP0BJJVYyMUoheGZqMlI1QWY/NzJiaEwofCYKemo+NTdEPGUl
VXxENlY+LTBie2w3NCNTTH5NYyFmIzxBSVEodSU3Rmk2PDdpcFduMGspbjRfQU1EMTliKntLKiQ5
CnpZO0dkfUUlfEVFQWJibX1Fc25nQ2soSWtMRDQ+NngpaG59SlVUSiRIJUNeTEAlVkdOTFUkTWxT
MHdOOWk5LVpsegp6M1k3SmFQPE5wV1NTMik5RFU1RzYkXyF0RWlRKEdKKV9YTzV7NjtHY09hPVg9
Q09VQFJKblBpRG05Jj8yblZ+TGgKemgmSz5aRXR5cVYhKXdpKVZEcmBSMS1ZfUFANVV6RikqO0kh
JXN2PD1lOXY+JlZpWXNIdklgPmhIPzF3QHNnPk97CnoteiRDWDxyZDhXbkprKiZDYnM/RW5RKUFJ
eXkwPCVkV1p2Sz5pfEo5aEolRFglOXBfSCp2eyEjJXREND8+eWt4LQp6QXAkezxCOzxMYHJObSg8
cT8rfm8rRjVRSy1HXmpFM3NESjY8TT5ASjMmZFJOcEBVME4pfGM+SVAzWG8rZW9gJSQKekBzM3F2
NDVLMyo1dTYmXjxnQCMhN18kSX5IeitWQm9fJSFKem5qVjw2fEdERSN3PSFgVm8rb3ppaHVNSmAo
bmlrCno5PGBVMXZ8T0MkeWdTPEMkMnZ7cXlZWjwzUlcpUlF1M0dIc0YyKzAxPCpQcHJ4YGJVXmFH
bHw9YCRaKzltKE9SYgp6YUEoQkdaV1FlTzxJYFJMa3VPaVdHPSQmUiNUVFM2V2s/SDJCcSpVZ05E
VytKS1o3eyFnY0lebT0qOT1LKGpuOGIKenttbHpxJX11MFU7cXJQPC0oLShydHwkKWlzajs0fSgw
Pmg0MEZFMFAyd3IzcyNedSlmYDlfbSo0dTFkM1I0XmBDCno2SjReKDBrUjZNQXI9emZGUDEmSGRz
PWhTb0NeP047bVNvST9WITB+ZEs9S2BobmAtMlphdn5VelZHSCl0b1NQewp6P1g/eU9mZ1pZOVc2
Ynd6V2ktbnleSVF4fG0rXzA5bXZRJGpadGxtZSpsVGtyai03O3wtOUU3UWJZR2Myej1CPEEKeigk
NWphU3s3I2IqQ1okOU5wbiYmKlEobiNJJkZtbWU3bUVmcyZxV210ZHpBYVZ8JnFvJl9Cfn10bD1h
YWBLUjNeCnoqbjZyZyREakpNPWhxQE1GMTh3X1VfaTx5YT5yRnpeTEBpR2I3YEshVy1hSHFPTHVE
PVFZQWgxMitgYmBVMmNpPAp6U3B6NmspWiQ5U0pBdSFVZnwzb2t3elEhcHl2SUtDZ1o/SiRoeUMl
S2BEJn47SDNPfCtIfmZMWnduVTNmYVNCNm8Kend3I2lpS2Q5VVpEI05nWER9b25ZVCZNV3NhXnxC
fDE4fl9eIWNMQEk+NyQkc0tvN21JeHYqalFNfTQkb0NSPXpoCno+RDFvamtDYldpY3NuYlZsI2Vh
NTJSSm5ZNFlpSlYkTiV+RG5TPSZoejxncz5Qd1FaI05wcFZ+amRYNEhobTkoeQp6M0phbWU+UFEy
OU95YEtrVlpqME1KViVGQk5GQmlabTQwdE1eMnlEQlFMYXNlTSlle0w5SztDbWF3dWAyRkd6PCUK
eio0JSgxbyhUZGI5KHw9TSlxXm89YDA0cnphSnRPRUBiPGQ7M08teVMjfWhLeUJ8TitHNWlOTW08
blpqPlV4d0xJCnpoKCRpUkhRdDBIP1dsWmEhZmBxUSlBI2MlIWdYMUNgWUtpYHAkdVdmYG1XVjla
K3g+ODR6eWNvUjZncUNAPElVZgp6bFV4MWxnZUQhai1jIV5oNko1ZmFuSnkmSWBXVkZONDxOJnF4
TGlEaDtpKVR5fDIxWD9IRXVRK084O0A5PmZyaF4KemcyYUdGLU1hSmJMckRRK0JYZzREeztOaWs8
OExiN2FyTyFWVFRPP0NkczFhbXt7UmRWajgzPChUVFJGKHhwQ1JgCnp7NVF0fTgrR09EKTVBanRT
RWlWdEwoUFl1Q0ZWI2VIVlgld1NVMXckeDtoPVAjR1V5SmpWSzRSc2tpdkg2PllDbQp6VUBGZlRh
TjItZjhVJER9NXI+dlRFJDBOdVRmYEFuUmZxK1NqV18hMkdgWms0dSh8YGJwfSo+WDlpRH1MOXZJ
anIKengyVXdPQ3stcl9eRjQmWXJKWTkyP2NSZTYwViQjS1hefFgqcyRVKlBpSWQoWjNwZF4pMlFG
fnY4NTl4dVBpJjt9Cno7dXdyajc5UCRSbVkkNGtQd0lASm5CVE8tUDJKfEleNjFzblA4ZH1MJSlx
UXt0UyVKcD0kcFJWZDU8TElhbF8+Rgp6YFlPflJQTGxBTW9RNCp4ZnhtRyE8Zz1QTHchLS1MMkd3
ajhHfWMxYGI9YzlCRH5vVm4hN35EJFRLRT8kPTEyPmgKenxBJmZ2Zz9+aD00cUkrO058MVF3QGgy
fEs7ZEBLdlgyIz5AdSRebGc5KzN6WD9raUxpUF9+VmRkeW9qbWdIKS1VCnojSU9hIUsjP15RRnJV
dnM8IzxwSnBibStwVVhISFY5b0I0Sm9KSkFle3tOczhmR1MpOFRfaSlTRGpMN19rKkhyVgp6QGdG
IXhtaCQoRDZZZWE9VnZkZE1aUnpONVFsJWA/bUhZXzwoaWJqdis1dkhyZkNLRjVBK1NZOE47Kzc0
Y24xRzsKei0jKmdZZjF8YF56RT94QytUS0B+YCMrRF4mejhldXRKQktzP2Jfdjc7fDUmV3wwPUtD
MHFRQ0RiSllvNjgxSjZ6CnpuO201cj00MCtwanF7VG53OTN6RmRVTFVxTThxP0dCU1lPI3grZWYy
THMjNXdhX3JZeWhEej5nPVROR2d0XkdYZQp6PXI7RmE5cUZVemZJaWNYdD58I2d0SjFoVihIY15V
MnIlZlZJTDdLI1hrYFUxYzN4dFFXPSU5TDgqYHA4K25Oe0AKenpBKThTNiV3JWdMbFdRSmQoKW9Z
TzBGY1hFYmg9QHNNQjJLZ2xzV09CTStPQF82PlMtJHstQ0tRM2oyaFdfSVJiCnppbzx7Zz5wYEle
R1lNKyZtNSpuQjVfR0xZR3lfTVRUdGQpTUV1M2l9UG1rTXEwMWFiKipIais5QUNVRlIzfUk2Vwp6
XkRqRTA9aFQ5JEVOMUU9cDZXNHBOK0E3eU9OaUs3aGRZIzMoKzRyaTN9RypnODRpVCFTciQxbFoh
TjQ/PmkoVHMKelVDLUpYckkxRSpXc2hwJndOKFFyV2YyX1FoUyVKSEhlVT8pRW8jTTNpencwcV5v
R1A0VDN6eXI0dHdlXmMyOGFvCnpZUkdmSm1FQyp8cCQyMWVxNWJzNlFBSzM9eWt6eGtCKCpwJSUt
eSZAVUFvfFk/NXpkWUJ3Zk81bHE9cThVQWFlRwp6bH0hOCFuaXZOSmNkKztfKjcrTShnVT1iXnBF
bTg1KD9jK2R4eVdCdmtaKT5pTnEkKiN2e2pGMDlXdmpkTnhaNFEKejEpcEFtdzstUlgoPGF+O1NU
UEZUMSpibyRxRCF2U0FJbihqZXF4QVZPRGU3MFU4NypUaUIoYSEjMT58fUloKSlvCnpqam44KXd5
eTV6alVnbEczRk4rVkpLOERpITtrRXZhJj52VjZnPWc8S0RvfmFBQExMOD4lLVlDTGBoOF84YGB5
Owp6bSN3ZURBYFk7cjhIN3pzRyV9dWdOZUk4ZnJYX1hZWH5iQHtFNTBRalAqbnRaI09NT3N5Tkpg
a1VoKVp3IUVLKGUKei0wTWUmTzxCZC1zPDd9O1NZNXI4OFI0LT83XmBIRk5GUyl2VzxvNW4jV2Fq
Qz5vVF99SnJ6OzVCOT1gWElLYk0tCnpzQWV6YjthYkN7ZUpEQSZld1J6UiozSzBEK3E2Sj90KDcx
eFQ7KXBESDlDIyQ9KWdLM09EPT00eCZmPypQPktuPwp6ZlVJZDs4OGxnRWZZIUh3O3tSTj97MSZA
PUMzUGs9R2dacyRyTDJ5QkhtT1FpeDFzYERnYnhGYjRXWDBka2FKNnYKel5yJSlzLU93YWBKe05f
cm1lbVhYQWQzaj8mUHB+fSVBSzl5RU58NHpacjZyYVc+bXV5KWVFbmNpZG9Bdi0wemJUCnp1SHNV
Wj0pP2UxVW8lRE4rJkFHbTs7QFJZUW5nSnwzVSZ3ZkJANn5JIUY5dDJHUntedyNvblRrY25nMmR1
fCMpQAp6UGYhe3pHRT5TSCMkWFN9Q31FZXJRaWh4MkRjfDNqUUsrY2YqRnRFNy10bjsjQD11ZXBh
ZGUxYV9LdDZ7SzA+VnsKeipJQW1FWktTYGtXbiRVPi1mbiVSMSt1ejxvKHR0TGZPYXRTKjhjVCNF
P2ltNmYoe0FfR0ArdkRfXy0lfV9jNm0wCnplUHVxQj00V2JAcEZLcXNifV5ZP3MoMWdFVXRJX2RJ
Xm14MEpWJVlNQmJvP1pPOSsldyZ7SmkmYFpMfE5SKnQ0PAp6TWl0QHRQaCpLZ0w7YXJUOXUmSjBO
YFR7TTREMnBJdXo3T0QhTyk/QD51cHY8JXB3VngodyR7ayNFQWRDOUpIIyEKeip2dXQ9YSYyVD0o
QmtDbXlyckgyaks4VClCPWAkJXdlamhfc01NRmR4X1o3UTkwPlpkeT9fMH1waG9STHpBdCE9Cno5
YTRZfkN5KGlgRVZjRWwwUEgoTzBWRVFve3E+b2cjP0w/fnkpbnw3MX4wc1VMJTlEO0ttQTF2T29k
Zz94Nz4qQwp6RFNZaD9ibC0qSz9CQ1lfQlNFcT1oRSVUMDRVPThALUAkWG9xUyZEaTZLc1E+ZUtF
ODZYUGk9aWloZFM2KUdSMUEKemRMV2Q0OWFOQlpLRTZHTi1TaiFqMUBqI1F1MEE0YipNJSVwKUpQ
Qi1fYVVGUCZTPW5WQ15UO1NXLVI5djJ9aTtZCnohOyRUXlIxT2tFO3JhNCNyMV5lazxYU2F7Z0Nh
aEpnSDgoKU99T34jVVFMb2ZVNGlQN0FYZm04OCs8VkVyWFFFagp6dUc9QkVpXjRuV1BJMypIQkV1
bkdJczRZLSp6P1dNeEppNGlgeX17JklQeWxSSWFmcmM4ekR4RSR7ZGFyZ15QLWQKeiFqRDtKYXBt
WU9BSyRDc0x7NW83TVdLTE9jeTFAeCtBbn4/ZjliN3Y1ZU82bHhEX1MxYTMlRzlJT3JYMEFKQFBR
CnpBakB9TCl3dmRWNWdDMyNXRTxET0YpKD1ScntXfjhaMmJYOHpLYE9OQSZ8YzM7VUhkR0I2dyo1
RnYzSTJEaWBwSQp6MnB8dzF4MiRwfGs4KilfIXxPej00VkJsUjBreSlARXZ4ZDJDKzdldSVUdXxs
Pml4ZSV7M3tvU0hHbnxrSG1selMKelNVVyVQNnp7Nm08MClSQTt7QU8pJTJUe04jcnlsPmhvXlhY
aXVkPWVBVyFrfjZ6P2k4QClZbXlFY3x5VVVZXlMzCnp5Iz9VQzlOfUdIe3pGPGtJbWVUOEpVUGRF
QUkqREJ8TnIqd2dAX2VfPCp1VShwUUpgITBSUGhtSShfUWckPXVfMQpHSH5zfTVgPUlkdgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUg
Nzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODViZjFhMWYy
YjkwNThjZjIxMjUxNGQ2NzYyMDUxNWI5NGE1Y2ZmNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTE1NzEKemNtZUkyYCNhUno5Pj4zNUdjbE5Rbl9TQTFOcDRZJFlvd1MrRjU2fEsrX0p8b00kSkts
YzlnPytseWkjUW1HJSV5CnpySlk9Jml4Zyh0KFFkYjsyLSF7e3gySjgoTTh3WTRTP1FRSHxHO19u
ZSRNJitHfHptVkBCNmRYZFZrbVl5dytPSgp6X1l9azNhaXo9fTgzYUxBSXk+IyRqVVdVbmY9S3cx
QnRlQSNPPnp8WSolPDVLOF9QYnhWVFoqV2p6RE5eT0RraVYKemk3REhoTGtrV3p2antiQEdCd2A5
MntwRmxhRHQ3NHdfS2lVMXpOJjd1RHcwTysxe1NZaD5pXjloSTBAazRvJXQ5CnpBSiltQkVkSWhk
VXA8KCViLSNrTiY0S0tMQXpyY2VnfTF8ZT5mOEsod1lhbjFzbytYUDBLWmpoQkMlU2tIIVg1Jgp6
JWFNMGRIdUY7Qy1zNiRTYSNwcmRnNjZLRClPNE5JdFN1QHFiSk8pQS0ySEhgZkJ2bk4/JHxLMVdk
NHdVQyZmc1AKenZlKE9fckZyNE9GcnxNQVd2Ymc3RUY1cjRgLWlmTmp3NDtKdm5HREJjNiF5aSo2
YFQza15TWTE+QE5OcHZWdV5aCnorTCZrbEt5JVFxZ2Q2WllSJXhMNylafT8lXlg0fCE3fmU5WXc4
bm5STkglWnFib3ojfnA9UmNFekkzeHhpYH58Kgp6PmdibHx4QzdIR1VwKFBhaElNdG0lUH55YlJf
P0lkWGU3ajtoQ0QwT2gmZXRMU2JhNmBPK20kJmUwbF81JkhZKEkKej5NSVNhemVrLU9NWV9KWDRP
REh8UUZsSmQqSjd5REpraFJBdDVRTHlWZUQtel91S0BCcFlPTChRQ25UPmUoO2AzCnooe1MjbkVh
NFA/dn4lSjtCZDVDOXRqV3lPWitkOGdhZlVjPCslaHghKXZvdlQ0THlDP3hsJSpzSGYwO1Rsande
TAp6QTctTGNOOClwWTwyVG8oY2ZIQDJ2KD53PVpAQkhzaDk0ZHJAdzZwNCooR1BGaHYqR3QrbVZD
Iz48OEU4VCRSLXsKelRgcU5TV0IwX0BTYXdfTTwoezJUY1pfPSF4VD1uK0poUUsrWmcke2YoTSM9
fmpRZ3VvVEpEcy1AU00yQ2RzQVBkCnojOXkwcUlPdVplIU5EemVNKygrUGwqXkpsN2dJLVdJNTlh
dGNfZSVHOUpVekVeMiVSMEVaYzY5X2c0RUdNUEc5TAp6YnM9KzNLVX5IbU1XczJ2PkdfWE9VUjVZ
TyN0djw9REtHTUJZeUN+VCE/an5QcV4+RC0jOyNSJEtGaXFOfDlxcEMKelRWYmx6KUdyS0tVQ0FU
SzxEOyh3akMhUHM/KjA3cjtPfT15Nl43OXBHTVpJcDkxXytHOCUtTiswYEVrZzNAWW51Cno+PGsk
JUhURUNCKk9eXl5AeTV9LSVzJD1PP0hTalUpTXs9dC1ibk4mOFFpP2N7K21sfXRPcjhTaiZSU1BV
WGVTZwp6YTYmZldXYVp7bG5kUU1nU3NuJjVrPjhTO2BERXVScihWTnE+Jnl3bFpMalhITjRiRzlS
QDNAWFpgU190IT9Adj0KenlePjVkIUx0fWNsQGltIyFfdzZXJXVWQn5gIXUhey1OQ1owYGA4dVJC
WkJKRllgbnwrVmgjN0xMK3tDemNOTW9eCno+dn1taG9GcDRweCorLTgyQVNeVzN4T3NHTFBlWis/
JHtIRFBQe1plODJWNmNyKVM2MD05XnxsWnF9dE0lSXVeaAp6KjRQP2RZZD9ffkp6ZWdWT0h1diNM
d2tReDxIQ0E2aE0qRWVsMDIxOzM4YVhOKTRid0EkSXBNM3FYVkJMQnVfU3gKenpDNXVNT21Hei1e
UXlOcmM4Wj9DRiFjNTB2ZnkpNkx5MVBXKik8YGgwMjhzV0ljdH58NkZlbDZ2b2J3RD9oczM/CnpO
P2x3ZiowaihWQkBEQmxDKDFBUDQ8dF9kbSooOCE/fk9CZ00rYHt8M0ctNUtqYzctY21zPWpGIVRQ
WlAkcipKcQp6IUc0ZTxkYE1PLWxEfnFTXnwrKkgxTUpNZUNLZ3Mwa3N4TFQkYj8zI0omeklWVHBe
SXZyVz1WeDArZVpWIXtiTFkKem1ZY15BVU0tTl9ld1FLXmNgUENNQlp0djBXPChUX0orV3ZNOCkl
ZkQwSiUmNCkjXlg1O2p7Vilrb0M1emgoISEjCnpSaksocXdtVS04MXdkeGlIKWtnbjtlZ1NhVHBl
M19uX29JJTMxc2AlMjh1PU16LVYha2FGZyh2MWxLYVktMCsoOAp6emd4SjQ1OWQzWksyQS1+T2l3
UCNFcnk5ZnJBU0cqSGZ1fkA8KCFDRWY9T3ZyWVNhRW5UX3E4XjxKPCpFZH1UQ0cKelQ3O35IQWBH
MjZIaylXNyFZWGYhTmRFNjczaXoxK3c1aDJ2JHRiMEdLQFI8N0BgdFV7Zn1DamVxRyVIO29peyop
Cno8RWtSNVFtZjIxPiUjN1Y5ZzNwZl90R0tfaypQcVZHcjlpbVA9dWxjRWs/MnVCO3xjZzdJd2Vt
Vys0PHdOSnUpQgp6NU9xYTkkajNQVlljNnhHcGZ5Q2AxNnxyKFdGQSRSM2NQYVpqOCt0ZE5UN0Ut
I1hfPEQkNytEPkdnbjVtTD9MOzMKejhlS3gka19UVWwwb1Z7MnhJSzBqIUpiTkdWTUxjRzJ7PVh7
KDZrVCNZXzNRfHJ3YjY9Nz0odSN2b3dZQThTfnxvCnpnRDw2fXFLRFUqckJ5TlQqREFocUwqN3F8
dEJVdHwjUSMlTiN9Uz88SyVDbFU/QGY/YTRrK1EkaV9gKjB0SjU7Nwp6KVk2dHoyTjU3al5qSHtX
LXl0T2sydjN2e2E/fCQpKUtJe2dIclV7eHJpZVE8ZUhNMEYqKzNhO0VASjVKQER7ZnYKenRDbXZs
MC05JlJFbHxVdClYZkBRXyV6Pj5scn4/fkBUU1VrPTNWJUZeNzhoZlN0NjAzWCF3dXw2TGJeRlMr
e25MCnp6fCohb0kxbzNGU2YtMXtFOHRealA1MEdwUH0yOytUYz0oSVB0bV5NZn13bE84UiF3Kzdx
QmpXJFA3OVoyOGlpagp6SXQ1YCgwIVFKJj0penFoaGdmYWAjNGx7bUk7YVQoZHdfdDlQVXo1ZXVw
MF9YfEgpcFlwQFAlJWlOfVo1SyE/bk0KenN9LUt7UDsmd302bExXT0ZCcXpJU2xEJVFlTDFNOTJI
TyRiNng8WWlydHQ5UEwmc3xoa0BRejh3MVVyOTxLMT9UCnpWQWFSeVVWPXpFem85TV9MaDJIUm4p
c0Q3QWYpJkpRbmV+UjVLYHdUR2BkZE1ZTiFFTzVib0AyZUYmVWYwSTg0KQp6SkUlRFRGeTYpdGZF
WmAoNzlpaFYtPlV+VFpVRnRnWTJePyZ1MFdHfU85cEM2SG5LM1lWfjE4bDs1WStGKXAlY2sKejha
JUlPTFg5ZFIjJVZ5fitPMUU0bmt5TEVAbXRHWUk2eGhzZEV9bzBIQlozK2FaXytwQFI+cnptaypK
SSpBIz9ACno3Z3s8X0EwcHtiTTYlaXw7YUxRYyZpd28+MEZHeVQmd311OUptWXU8I3xJcUdJRyh8
NkQzMGVwNzApPTV7fndWbwphdzRKJUNRZWtiK1pVPGpNQmhDKSlKMWd5MiReUW1nKUloVFUKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1z
aW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNmYyNmM2ZTIwZjcyYTJkMDk1MTQxMzI5ZmIzMWNhNTllOTNhMWIz
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTY1OQp6Y21lSE5gIyk1OUEzdFlJajliUG53YmA2
cHctayRVODVKaUlCOX5BfHFqNCQzdk0hLSk0eX1EJEhWcXtqbSlmPFAKemtYI2FTOEIlUCE4PWco
NVI5S2dKWVN6OGNTZDJaQ0lyOShmPi1Gc09vUyk5P3lrRm5UPWxnenJLQS1wSl5GMWZVCnokLSFE
JDt1OHF+MEhrZWdfOGtITTVlTlZYP2oldFpWVitKNUxtJTVCdD11RGgxTj9uWU1NUS1GUjM4JXhn
fDY+bwp6Sz1DczxWTTM/VnNaPEo7TFp8MiU+NmBjJVE7YnV5Y3ZzTz93Z2cmUUlAd3hVTFFkaEtD
anh7MDBVIW9VYXZlQzsKej9XRGtlO2gkZUlseEJLVFJAXktnO3xvOFJOWHh2TVElQ0FNSmxgN0Na
bmVxMTUjcSZjUzA2dURBQCkyaSlVKypuCnpURmgpLU96UWRoKDZnRCs/Rnd8PnR6PWRFSW5fR194
cy0haUUrWTVkSHc/XkFQX0BgMndDblI8ZFVoLTUkfCQoRwp6SUpVSmVKeyhhUG07cV9abWZES30y
aCthVWE2cj08bWclbUZveEMlPGVvSzNCPFY1SHxEY2BxO25JJERWcjN8cXkKejgkTUpXXjAqJThe
KXltYHVzM0JnVShjfCQhIz17amgkeWFkKGo/UzNWZCZjbllGQUVCM31MMnR0NX08YnNhK2p4Cnpr
YHAqTUVCJmw5TDE5RW92cDc+SFpGaX5GQT5DMHd0MTc5dkRWMiF4R3V7PDlGVGNxeFcwTm4wRmdI
Mjs3TUo+Mwp6aDVBKzR3X2B4aGVSSj1QTz8mSXwhYHpMQTNrfWElYmcxOCEpb2Z4PEw8WilKYCFs
bVd3I2pLSXQyZz8lLVpsc2gKejlGcjdEVlVCZj16ak1tMHhKR0hGNzxrTU1rMl9AJUllS2x9SWxL
TXU+WU11ZEdjSmhAOD00aHU+eTN4YFA0QnRrCnpzaVUhKFE9SUI4N2tiX3UlYGBwUy0jXmxFTCsh
IUNYbEhXfjg7aXRyV3h2a2BHYzJVJk95N3FrSm9eb3NSMWZeewp6QnJ3dTd3I3VZOypKcWNtajRO
Qm17T3JCSGo8JGgmdzVvMXlhR35JcE1xaGZQVnAzYWU7V092KXk5c2FWdEteeFIKejxEPSs1N0pl
fmdkflk7JmI0YU5xJChmJXpUNF9WYHxIVSFVeGk4OVNqTnl7Szckdz1JZXxiWFZ3NEEkQ3tqRGgp
CnpaK296V1cwRiM5Y0p0Rm1vditKZWU/YDlCVk9DbjsoJFc1aCN1Tkp8OUtYOGVSSVd3KSMoOVJH
ckRyfSV7YXtgeQp6Yj5AWVdxP1R4T0I0X00oRldvK3xmYC1TKGhXQC1xRCRAeTlPSygtO1RFJVVo
Vml+Wl55bFg+fj18JW1sWmErPzsKem8rcWNGSkVRKmwkfV5XUV9HYGBVTmlVSiNSOGA1VUphP0Yr
VUghZHAoMUFPVmoofl9waChxQDV4PVdMP1VyV1glCnotYDwmV3ZERGBYISU8cnpecntwc1RndFpG
PURBTUF1OFpSJEg3Pm8hI3NhK35zSSVMey1mVWlhenxrPnc2UXlseAp6YDdKXzY+QUZHR2g8SFVE
WjNqb09VdUFiZUV0MFhULT93Wn0yKSNiZD5+THYrcXxWVlRWMXJDKSYkWF9Tbz4lT1YKemMqJlQ7
TWJUbjRpUWQtbHkhOFA5MCZNcn5iJlViWFUrb1AjWlleaSFUcys7e1NXUk9fLSFSJjlBY3BhYjtW
NUJJCnp3RXI1PD5PYnRDbk8+QmVVRkZUb2FYZD18MDB+NEE4RztjWUEoWUpQR0czSDJQc0F7Z3Um
aExlXyorKjhkPkE8dQp6TExpTHYtJn0mJD1Ba2UjSWJQKUJEbDNFSGF1SHpPRDlBaW5YZCY/VDBp
aWQtZkY9YTlGMShPWU1LfUl2MGdVakIKenV7V2ZwUi1EOExFdTFfNSFNZkUheWtXKXI/NFFgP28/
UHliSWM/ZTZpNylxWUdIUU1qO2hhZC0pUyp2UCkpcXVzCnpUdFFIdWRtPklyY280eUY9dG9uYlh+
aEpCLWBmdEo0dDU7TGI7TClsYzJWalc7KHtWaWJFbDdDWFdTcWBWa0JrMQp6d1pWYFpDe2s9Wis8
PSs4THhCdVE+aEAke2hgbk9Xb2NWVlBEeEYyTiUxUHwjcElmKHQhZWNMIWJoaXI1VXFPU0IKelRn
XlVWPkhfMypZWiFUYVB0d34kSy1scG4xbmBKJlRXXkNRPT9ISyZMVyVWP00hXntudG0zREIlREBu
MWxvWW0zCnpvSCN9YjdvfWlIYVRrT2tSMjFudiMqQFArO0doKXpzZUt5OGtPKDYyUUNgRTgyMVlA
ekIjRlUyQCZ8JDtWPFp4VAp6OGEtcihRRSZfT0NyPGVAUCtaX3JrN2RiRiM2KVloMDNmXlRMVTZC
bHJISV4kVGRvP0ZxWHl2dztSTE5aMU1XZTEKemheXiVsSk99KmBCPFU4RmF0R2YwXm42Zyg5dkxG
YmpJfH1XNS1VTWtqKUtpI0VHS1pZSyU3OD01KHRMaHBIM0E+Cno4ancobikrQSpgQSgtJXh5aWoj
b19tZWd6U0gjei1LLVUpMyRPPVJTM1BZN2dOeDZLQG5iNnJXKzdTSHUlIX5hMwp6TU1ZWXlWOGtu
fDVmZns4dW5ZbGtnSyZtRUkzKF52YyQ1aUo2UH0wZyNRMykpTXQpdTYhalc9Ujh+SHMwQDNYUHEK
emlPbDs3P1JzWXhDU0ltczs5P0hpZShSa3YmaytiQCVjTUxSWU0kKU83bEpPTD9YXm5iYH0wRWMl
c313KFQmbV5ICnp2aU1TMEdrP01OVWpmVTUmSFJeVllpamJCRndKJkFtN1okMlRPSmM9Q3EqKmtN
KjlecmshKnN0cH5YWDIxdCRYJQp6TilWdVUjP3dLRl9IN1hDQWwtJG5PTEFSRHc4YG9WN3Blc3Um
PFl8Yk1zdXliZ3k4R2pBLUpVUmlxUEkrWHUwNj4KenooNWUmQWkpZzs0fl5jPDZXWkdhTSlFIT41
SGp5M0klI3xQc0w8WWRYbDMkciR7c1RoYzdxWXUqcXZJfi1oPTJwCnpMRDRyU2gwSDQ8NVB0YU82
amY7TkFfVHl4U3ojV2g9QSYycW13OFJYJTd0UXtoO1oxRTFIXmdLSGc+JTxBPHdwZQp6NW4+N2A8
ayZrd0BKWiZ+WUB3aGNsY0J2blNhY3c7OWdJfV9qY1peS0w/cWZVSGUlTnkoNyl4IyZgeXVETFYt
dkUKekt7PDYlcCpYQlk9aXNLYHRsKyt+KChkOUIxbWsmU15gajQtWjl4TEFMOHVfKCUxazhUTUZM
dGU7aVZKI0E2cTBgCnpZUDNpSG5ofEhPezBwI0ZBTERfSTJsaV5pZyRNUk9IP1ordyM9Zz93RHZo
aTM+WGowSD9TckBTdDcrbD9AYF5CRgphOE1JKDRtNW5MN3h1YnRxMUdaS1VgKSpxdFB5N3IwbCRr
UkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTE3M2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1zaXppbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgxMCwxMTApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDEwLDIyMCkgc2l6ZSAxMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIxMTY0NzAzNGRiOGE1Y2FkZTNmZDQzZDgzMjdiNjI1Njgx
NjRhOQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE4MTUKemNtZUhOYCZVeX03UVF6YDUmfGtn
M05sZz85c3d4fGk+RXduaHk7YFhAKGA7aUctKEpSajlfPyNmfF4ydFdyfFBACnpwY1Y7RiNtWG9K
MGpvVGVLb098WjV2VUBsTyViUk5pZk5HWWp0eG1LTExrJEJWM3NyWXI+eUw/JnAhS315VStLMQp6
YDwjMHd6O0V3KiUtPThvMElhOFlkRiUlT0g5UDx5ZzM7PWJoNXU9SzlRMCRzQChnQSVxOVBjXzV8
ZCY5ZHh5d3kKeiRIKmBUZCZsckYyN1Jaa3FmP2otIV5TMyhaV2tGQU10OEU2ZUlfQDlxSEsqT2xM
SUpaR0NtLUk4NXRjRDBSU21yCnojKH18T3kjYyFOcENYRURoTz1GY1Zse3xTeHlRcVVTbWRIUiN8
fH1oOWVMJGdaeyReWUVqRTxqWCh+eXJLfFJsQQp6eF55Sn1qdmA3P1RGKn4yUHZ4IWUpVEorY2xX
RldiWE1DJXEoMC1xSmtYcXlYLTloUHV2LSNLdndNLWcrcSp2RV4KenF3WXNSe3ZCPHlfN1VCfERV
ZlBOd3Y8S2YlbD9PK3g3bDlPI0BAT1V1V3dDbip4REp4bnFVckEke0J0OWkoMSU4CnpMJWlVRUwl
Wj90O2otd15DIyszRntieWJtK2M+bSFgNmRRZUFUQEFEb3RPO25AUncmenpLWFBXQW5gVFlQI3h8
cgp6SmBFKE5PVkxCcT56e1JWYnd8dzJ1SUV7MEAyZDNOWiNeM0JTKkpCT2lBeXteTVhVTWVoNEkz
d0czflJsZDtgQm4Kej81cjAhPWc7RTQ2YWp0VHh6UlFeP2B8bEwzd0NeMj92VSE8V209NmpZYVd8
bU1QSEljQGJlRV89bnhEfD99Wih4Cnp3dV59dFh7dyMhaStVdzkwZUxtMF9BVH55aG9AZ2sweGx4
T0hYWEJiSzZfQEdueDZgRCYhYipDNUd5U0QoQDY1Pgp6YFBxYzUoR3opLTslflF9P1ZBYjdiMiVz
IWomeGwheCE7fX49JShpN29fQHxTZUFgZzJ5QjN8I1h1cS1HdDdsO0IKemVmNG9QPiVmVVJyKyhM
TT1mOUV8P29JZ0BaOUBaOVojSlpeVlElUDtrXiNjZ2JOQWxNPSVfRCQ3QVUjUjlkRH1KCnojTlUj
Wk1FfDx7YDAmb2coWlZnVW03M140ZERkdkg3ZDdHc3xNYkE4TnNna05wbk9AOVd7PlRLM0JzcDMh
Q0ZuPAp6T2l+djxoezU9MD0ocHYhSmJCUmxxNisoT1BXKk9hV2wyejE9V20zXnpLX00+NEp9IS0/
d3k7WklYMmBZI1JBaVAKek1Pbl5NS0x1IS10MCQrNk1aYmh2S1NoPD9lZmFWNG4/YGglUmY1VTZI
dkwmb3ckWUAoUEMlczlHYylOR0xQMmwxCnp4WkxLNV8tPTEqKTBOdGo3a0VQUnhldzNYKmtuKndF
MnZGOWhfP0xwM2docUl3XjtzdzhYP3YlZXxwe2QqVnhaQgp6Kl9xV2wmaFJTMzQoMGU7VndlUzUp
Tzs8PE98UiF4SExnNX4rTVNeT2s0NGU2TUNhKWI7Pk5jdS1XT1ojezc5V0AKeihFMkZSTzI1bzVY
KykhalAyRGJqUGwoJTlRcVJlQzYqOChtakhOZWE2QXhBalN5bXhpIU1odFBgJH5JbV5iTCVTCnpx
LW15PCVoYSElVkVXckcoYCozJTReVFhJQTRtWnUxQSlpT0k8T2chb1draDhaVTNTQlNwaGoxc0o3
QTx5LUcrYQp6ZWpeO0g1T013TT5+VzxuaWd7fVY3RWpeO0FPZVpqIyo+Q25OY3AwZytrS3Zqam5q
JWxBbGhsaldza1M2c2xGdFIKeloxWmlMJExjXjEybHpkQz9IfEMhWlBMY08/VUE1VnFUQC1qX2Zf
SCFlVUMmdzswNkElYHxacmpXNnwxYXNISHFzCnpBfSFjfTsxdUlZc2BnNUhPWGlrUEVTdD5eZVNm
cnczQFV6SEdgZCM0SXpYQF5QN2p+PF5UQFB0S0VDeTlqQGk4QAp6RUlzQU9SeFhHM29lUFBEUjJy
YUFifDdlKlh6UklfSHNsMDIhIz5JZGgxVW5KamttUGA/K1h8PVIhfHduZ20oLVIKenhVQCpke3At
QnBBeyFMfm0qKm1tZj5UbmRsIXUmJlFuOEI9c3EybSVrSH1OJTBTPkByViRlQkUjRzRgJlF6SGlg
CnoycWBkQ3ZOUitjM0s1OHJMSnJZPCZHZDtDbytMVkdybENVUypFb1JHdGdKYEhiVihEUCh8RDFo
bDdQU2hQWkRWUwp6bnk2d0RBclJxek97cituPVR7c0tIK1Ywck19WXdxP3UpZGB1WThxYnhLKnUo
SWtJP2VrSG1wSnBPMjFlWXgldEkKekB+WCU8MS03SyR1QWU1VD1sfnYrSkAlb0tpc2NqdCoxPGtY
OVJSTm5UcFA9cDlOcmYmWlkpOzxqMHhgPUNiYUQ4CnpSIUE0VkZJQ2pLNSFRSG1zQzIxbUUtZnVw
Izg3VWtAYnsxcCNGTWp4VG9xRDhSem5UQCNqQS0qVDdXMlpWTHlxKAp6cmk4Q2AmO1p2RzFRUTcz
aER0SnEjdFU/e0BpWk5TKXZnfVczKklEN0Q4PU9xNi17Qmk0KjRNOEx0UTB5Z05gPS0KelArcXJA
TzBHVzhhbGxfdz5YczhgY3N5UkV0TWdidVlmQ157PUorPHsrKzN6KyhZZ2w7PTlITUpramBabyMr
Z3FGCnpaemBIeUE1dkQ7MENFRlRoVW97ZG41YXlBTmR1aXphTmFeMDEkdSVGKDFYSzEkYD04ejRf
cTZ8d0UqdTY3Jm4kTgp6OUw5dXE0SE1YR3hxTDhZcmwqMlBCK0EqWHJTY3QhejJlMT9pSFI/Q2x1
U0xOQXhvR3dSZ3xDbDQ/Yl4oJklsQCMKej4jMktJU3MoOTU7PFEoX1hSTEFQNDBMR2xWJko1fnMo
Um8kZnVLJmtqPXImeU1EUmFhO3o9aXkjU3Y+JXswa0U0CnpefE48cT1CZz9uLVEpbnsxNkJFSmNM
PHIjdHdPd0l5d01zckh6Tj5OO2JoUi1AWDlPfjU/bkpZeUJGUn4laXNnIQp6JXJZIykyKXNmKXxN
VDJyayFkPnkwR1FLRC12VFRWQn1AJTRITlpqKGZDMkZUMXByfnRnTF4ycnlMQH18NHVjKkgKZ2Rq
R1pLa3A8bDUwa2I7O25MRkV8RlRWa2JyPUxmKWB6UHN0MHd7YlgtVChqcQoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1h
Z2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVyIGF0ICgxOCwxMCkgc2l6
ZSAxMDJ4MTAyCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMngxMDIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwxMjIpIHNpemUgMTAyeDEw
MgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEwMngxMDIgW2JvcmRlcjog
KDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNpemUgMTAyeDEwMgorICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBz
b2xpZCAjMDAwMDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjA1MjRiMi4uZTIyZTRkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UXVhZC5jcHAKQEAgLTEwODAsNyArMTA4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVy
ZVNldHRpbmdzLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxNzk0ZTIyLi4yZDc1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
OTcgQEAKKzIwMTEtMTEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5j
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIx
NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlciAtd2Via2l0LWNyb3NzLWZhZGUu
IE9ubHkgY3Jvc3MtZmFkZXMgZW50aXJlbHkgY29tcG9zZWQgb2YgaW1hZ2VzIHdpbGwgcmVuZGVy
IGZvciBub3csCisgICAgICAgIGNyb3NzLWZhZGVzIGludm9sdmluZyBnZW5lcmF0ZWQgaW1hZ2Vz
IGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgIFJlb3JnYW5pemUgR2VuZXJhdGVk
SW1hZ2UgdG8gYmUgdGhlIGJhc2UgY2xhc3MgZm9yIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIGFu
ZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS4KKworICAgICAgICBBZGQgYSBwZW5kaW5nIHN0YXRl
IHRvIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUsIHdoaWNoIGlzIHVzZWQgdG8gZW5hYmxlIHRoZSBw
ZW5kaW5nLWltYWdlcyBsb2FkaW5nCisgICAgICAgIG1lY2hhbmlzbSBmb3IgLXdlYmtpdC1jcm9z
cy1mYWRlJ3Mgc3ViLWltYWdlcy4gUmV3b3JrIHRoZSBsb2dpYyBpbiBDU1NTdHlsZVNlbGVjdG9y
IHRvIHN1cHBvcnQgcGVuZGluZworICAgICAgICBnZW5lcmF0ZWQgaW1hZ2VzLgorCisgICAgICAg
IFRlc3RzOiBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisgICAgICAgICAgICAg
ICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAgICAgICAgICBjc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ2FudmFzVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDYW52YXNWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjppc1BlbmRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMp
OgorICAgICAgICAoV2ViQ29yZTo6c3ViaW1hZ2VJc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6bG9hZFN1YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3Nz
ZmFkZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6
On5DU1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1
ZTo6Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1ND
cm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jv
c3NmYWRlT2JzZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgICog
Y3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRW
YWx1ZTo6aW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTR3JhZGllbnRWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0lt
YWdlR2VuZXJhdG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjpzdHlsZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdlbmVy
YXRlZE9yUGVuZGluZ0Zyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjpsb2FkUGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNy
b3NzZmFkZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpzZXRSZWFkeSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2Uu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6On5HZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
ZW5kaW5nSW1hZ2U6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6
OmNzc0ltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNz
c0ltYWdlR2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1h
Z2U6OlN0eWxlUGVuZGluZ0ltYWdlKToKKwogMjAxMS0xMS0xNCAgTWljaGFlbCBOb3JkbWFuICA8
bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXR1cm4gbW9yZSBjb21wbGV0ZSBlcnJv
ciBhbmQgZXhjZXB0aW9uIG1lc3NhZ2VzIHdoZW4gYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggMGQyMTMzYy4uZjA3ZTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0yNTA5LDYgKzI1MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rhc2hBcnJheS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNp
b25zM0QuaCBcCkBAIC0yNjI2LDcgKzI2MjgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRTbW9vdGhpbmdNb2RlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUcmFpdHNNYXNrLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRXaWR0aFZhcmlhbnQuaCBcCi0JU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQx
ZDVjODQuLmQ1NjZmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTAzNiw2ICsxMDM2LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAgXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFF1YWQuY3BwIFwKQEAgLTEwNDQsNyArMTA0NSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREYXRhLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgXAotICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIFwKQEAgLTIwNzIs
NiArMjA3Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhl
bWVNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggXApAQCAt
MjEwOSw2ICsyMTExLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0cmljcy5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDQ4MTY4YzMuLjFhY2ZkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzAsNiArMzMzMCw4IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFBvaW50M0QuY3BwJywKQEAgLTMzNDYsNyArMzM0OCw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L0dseXBoUGFnZVRyZWVOb2RlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmMjNiMTcwLi4xYTMxMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTksNiArNjk5LDEw
IEBACiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2
MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJF
OEUyQzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAx
MDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNW
R1BhcnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTJENDgxRjAwMTQ2QjVDNEMwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICov
OyB9OworCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZD
MDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovOyB9Owor
CQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTYx
NDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKKwkJ
MkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NzE0NjBD
RDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLzsgfTsKIAkJMkQ4RkVC
REMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcy
NTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFk
ZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkw
NjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovOyB9OwpAQCAtNTI3Nyw3
ICs1MjgxLDYgQEAKIAkJQkNFMDEzOUEwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5
ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLzsgfTsKIAkJQkNFMDEzOUIw
QzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDEzOTkwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5
bGVTaGVldC5oICovOyB9OwogCQlCQ0UwNEM4QTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwNEM4
OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdl
bmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRTA0QzkzMERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87
IH07CiAJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMUM0MTkwRDk4Mjk4MDAwM0Iw
MkYyIC8qIExvY2F0aW9uLmggKi87IH07CiAJCUJDRTFDNDFDMEQ5ODI5ODEwMDNCMDJGMiAvKiBM
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0UxQzQxQTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uY3BwICovOyB9OwogCQlCQ0Ux
QzQzQjBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQzOTBEOTgzMEQzMDAzQjAyRjIgLyog
SlNMb2NhdGlvbi5jcHAgKi87IH07CkBAIC03ODAzLDYgKzc4MDYsMTAgQEAKIAkJMjlEN0JDRjkx
NDQ0QUY3RDAwNzA2MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0
YUNoYXJzZXRQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSFRNTE1l
dGFDaGFyc2V0UGFyc2VyLmg7IHBhdGggPSBwYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAv
KiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0
YUNoYXJzZXRQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1
NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTcxNDYw
Q0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEM0EwRTM1MTNBN0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5n
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGFyc2luZ0Vycm9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1NzcsNyArMTI1ODQsNiBAQAogCQlCQ0UwMTM5ODBD
MEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1N0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMDRDOTMwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRl
ZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRl
ZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MTkwRDk4Mjk4
MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFDNDFBMEQ5ODI5
ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFD
NDIyMEQ5ODI5RjIwMDNCMDJGMiAvKiBMb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTG9jYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMTIsNyAr
MTkyMTgsMTAgQEAKIAkJCQkzNzIwMjE5ODEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGlu
Z01vZGUuaCAqLywKIAkJCQkzNzg0QzM0QTBFMTFBQTM0MDA3RDhENDggLyogRm9udFRyYWl0c01h
c2suaCAqLywKIAkJCQlCQ0U0NDEzNTEyRjc0OTBCMDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFu
dC5oICovLAotCQkJCUJDRTA0QzkzMERBRkY5MDIwMDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5j
cHAgKi8sCisJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCAqLywKKwkJCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYz
MyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUJDMjNGMERBMERBRkY0QTQw
MDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUJDRTA0Qzg5MERBRkY3QTAwMDdB
MEY0MSAvKiBHZW5lcmF0b3IuaCAqLywKIAkJCQkwODZCQkQwRTEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCAqLywKQEAgLTIyMzczLDYgKzIyMzgyLDggQEAKIAkJCQkxOUJGRjY0QjExQzBGMkFD
MDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE5QkZGNjREMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI0ODBBRDQzOEMwMDAz
Nzg1NDAgLyogRE9NU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMkFCOTIwQUQ0Mzk0RTAw
Mzc4NTQwIC8qIERPTVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NTAyQUI0QTBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI5MzBBRDQzOTRFMDAz
Nzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjUwNTIsNiArMjUwNjMsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUFEMDNBQUZBMTQ2ODQ1NTMwMEEzOUI1QiAvKiBD
U1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMDE0NkI1QzRDMDBBQTc4MzQg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ0ODFG
MDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI1QjVEQzY5MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTFCMUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0
cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5
NEUgLyogQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU3ODcs
NyArMjU4MDAsNiBAQAogCQkJCTk3MjA1QUFGMTIzOTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3Rv
cnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVD
RTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5
MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFCRjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25D
bGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTZDQjIxMTBENUFDODAwMEE3N0M2
NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYW52YXNWYWx1ZS5oCmluZGV4IDIzMmE1MjUuLmVmYWQ3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYW52YXNWYWx1ZS5oCkBAIC00NCw2ICs0NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlz
Rml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIEludFNpemUgZml4ZWRTaXpl
KGNvbnN0IFJlbmRlck9iamVjdCopOwogCisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRl
ciopIHsgfQorCiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUg
PSBuYW1lOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmNwcAppbmRleCBiNzcwNjlmLi4yOWQ0YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5jcHAKQEAgLTI2LDggKzI2LDIxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKIAorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUu
aCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0eWxl
Q2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZEltYWdlLmgiCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUoUGFz
c1JlZlB0cjxDU1NWYWx1ZT4sIFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKK3ZvaWQg
bG9hZFN1YmltYWdlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+LCBDYWNoZWRSZXNvdXJjZUxvYWRlciop
OworYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQYXNzUmVmUHRyPENTU1ZhbHVlPik7CisKIFN0cmlu
ZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5n
IHJlc3VsdCA9ICItd2Via2l0LWNyb3NzLWZhZGUoIjsKQEAgLTM4LDE5ICs1MSw5MSBAQCBTdHJp
bmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUludFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5n
KCkgY29uc3QKIHsKLSAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIpOworICAgIHJldHVybiBzdWJp
bWFnZUlzUGVuZGluZyhtX2Zyb21JbWFnZSkgfHwgc3ViaW1hZ2VJc1BlbmRpbmcobV90b0ltYWdl
KTsKK30KIAotICAgIHJldHVybiBJbnRTaXplKCk7Cit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjps
b2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikK
K3sKKyAgICBsb2FkU3ViaW1hZ2UobV9mcm9tSW1hZ2UsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsK
KyAgICBsb2FkU3ViaW1hZ2UobV90b0ltYWdlLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiB9CiAK
LVBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQ
YXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdl
dCgpKS0+Y2FjaGVkT3JQZW5kaW5nSW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKTsKKworICAgIGlm
ICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5pc1BlbmRpbmcoKTsK
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBsb2FkU3ViaW1hZ2UoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUsIENhY2hlZFJl
c291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBpZiAodmFsdWUtPmlz
SW1hZ2VWYWx1ZSgpKSB7CisgICAgICAgIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1
ZS5nZXQoKSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsK
KyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSo+KHZhbHVlLmdldCgp
KS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworQ2FjaGVkSW1hZ2UqIGNh
Y2hlZEltYWdlRm9yQ1NTVmFsdWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUsIFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFN
KHJlbmRlcmVyKTsKICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAKKyAgICBDYWNoZWRSZXNvdXJj
ZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKTsKKworICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5j
YWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciktPmNhY2hlZEltYWdlKCk7CisKKyAgICBp
ZiAodmFsdWUtPmlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBI
YW5kbGUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSAoYW5kIHRodXMgY3Jvc3MtZmFkZXMgd2l0aCBn
cmFkaWVudHMgYW5kIGNhbnZhcykuCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIAogICAgIHJldHVybiAwOwogfQogCitQYXNzUmVmUHRy
PEltYWdlPiBDU1NDcm9zc2ZhZGVWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAoc2l6ZS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgKiB0b0ltYWdlOworCisg
ICAgZnJvbUltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX2Zyb21JbWFnZSwgcmVuZGVy
ZXIsIHNpemUpOworICAgIHRvSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fdG9JbWFn
ZSwgcmVuZGVyZXIsIHNpemUpOworCisgICAgaWYgKCFmcm9tSW1hZ2UgfHwgIXRvSW1hZ2UpCisg
ICAgICAgIHJldHVybiBJbWFnZTo6bnVsbEltYWdlKCk7CisKKyAgICBtX2dlbmVyYXRlZEltYWdl
ID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIG1f
cGVyY2VudGFnZS0+Z2V0RG91YmxlVmFsdWUoKSAvIDEwMC4wLCAmbV9jcm9zc2ZhZGVPYnNlcnZl
ciwgc2l6ZSk7CisKKyAgICByZXR1cm4gbV9nZW5lcmF0ZWRJbWFnZS5nZXQoKTsKK30KKwordm9p
ZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3Jvc3NmYWRlQ2hhbmdlZChjb25zdCBJbnRSZWN0JiByZWN0
KQoreworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKKworICAgIFJlbmRlck9iamVjdFNpemVDb3Vu
dE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY2xpZW50cygpLmVuZCgpOworICAgIGZvciAoUmVu
ZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygpLmJl
Z2luKCk7IGN1cnIgIT0gZW5kOyArK2N1cnIpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBjbGll
bnQgPSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KGN1cnItPmZpcnN0KTsKKyAgICAgICAgY2xp
ZW50LT5pbWFnZUNoYW5nZWQoc3RhdGljX2Nhc3Q8V3JhcHBlZEltYWdlUHRyPih0aGlzKSk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5oCmluZGV4IGQ1NDlmYmUuLmZhYzg0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5oCkBAIC0yNywzNyArMjcsNjMgQEAKICNkZWZpbmUgQ1NTQ3Jvc3Nm
YWRlVmFsdWVfaAogCiAjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIgotI2luY2x1
ZGUgIkNTU0ltYWdlVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xh
c3MgRG9jdW1lbnQ7CiAKIGNsYXNzIENTU0Nyb3NzZmFkZVZhbHVlIDogcHVibGljIENTU0ltYWdl
R2VuZXJhdG9yVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Nyb3Nz
ZmFkZVZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBh
c3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9t
SW1hZ2UsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDU1NDcm9zc2ZhZGVWYWx1ZShmcm9tSW1hZ2UsIHRvSW1hZ2UpKTsgfQorICAgIH5DU1NDcm9z
c2ZhZGVWYWx1ZSgpIHsgfQogCiAgICAgU3RyaW5nIGN1c3RvbUNzc1RleHQoKSBjb25zdDsKIAog
ICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUm
KTsKICAgICBib29sIGlzRml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBJ
bnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKTsKKyAgICBJbnRTaXplIGZpeGVk
U2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKSB7IHJldHVybiBJbnRTaXplKCk7IH0KKworICAgIGJv
b2wgaXNQZW5kaW5nKCkgY29uc3Q7CisgICAgdm9pZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291
cmNlTG9hZGVyKik7CiAKICAgICB2b2lkIHNldFBlcmNlbnRhZ2UoUGFzc1JlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gcGVyY2VudGFnZSkgeyBtX3BlcmNlbnRhZ2UgPSBwZXJjZW50YWdlOyB9CiAK
IHByaXZhdGU6Ci0gICAgQ1NTQ3Jvc3NmYWRlVmFsdWUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVl
PiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gdG9JbWFnZSkKKyAgICBDU1ND
cm9zc2ZhZGVWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHRvSW1hZ2UpCiAgICAgICAgIDogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZShDcm9z
c2ZhZGVDbGFzcykKICAgICAgICAgLCBtX2Zyb21JbWFnZShmcm9tSW1hZ2UpCiAgICAgICAgICwg
bV90b0ltYWdlKHRvSW1hZ2UpCi0gICAgewotICAgIH0KKyAgICAgICAgLCBtX2Nyb3NzZmFkZU9i
c2VydmVyKHRoaXMpIHsgfQorCisgICAgLy8gTk9URTogV2UgcHV0IHRoZSBJbWFnZU9ic2VydmVy
IGluIGEgbWVtYmVyIGluc3RlYWQgb2YgaW5oZXJpdGluZyBmcm9tIGl0CisgICAgLy8gdG8gYXZv
aWQgYWRkaW5nIGEgdnB0ciB0byBDU1NDcm9zc2ZhZGVWYWx1ZS4KKyAgICBjbGFzcyBDcm9zc2Zh
ZGVPYnNlcnZlclByb3h5IDogcHVibGljIEltYWdlT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgQ3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eShDU1NDcm9zc2ZhZGVWYWx1ZSogb3duZXJWYWx1
ZSkgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkgeyB9CisgICAgICAgIHZpcnR1YWwgfkNyb3Nz
ZmFkZU9ic2VydmVyUHJveHkoKSBPVkVSUklERSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGNo
YW5nZWRJblJlY3QoY29uc3QgSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiByZWN0KSBPVkVSUklERSB7
IG1fb3duZXJWYWx1ZS0+Y3Jvc3NmYWRlQ2hhbmdlZChyZWN0KTsgfTsKKyAgICAgICAgdmlydHVh
bCBib29sIHNob3VsZFBhdXNlQW5pbWF0aW9uKGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZERyYXcoY29uc3QgSW1hZ2UqKSBP
VkVSUklERSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNvbnN0
IEltYWdlKikgT1ZFUlJJREUgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNo
YW5nZWQoY29uc3QgSW1hZ2UqLCBpbnQpIE9WRVJSSURFIHsgfQorICAgIHByaXZhdGU6CisgICAg
ICAgIENTU0Nyb3NzZmFkZVZhbHVlKiBtX293bmVyVmFsdWU7CisgICAgfTsKKworICAgIHZvaWQg
Y3Jvc3NmYWRlQ2hhbmdlZChjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBSZWZQdHI8Q1NTSW1hZ2VW
YWx1ZT4gbV9mcm9tSW1hZ2U7Ci0gICAgUmVmUHRyPENTU0ltYWdlVmFsdWU+IG1fdG9JbWFnZTsK
KyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fZnJvbUltYWdlOworICAgIFJlZlB0cjxDU1NWYWx1ZT4g
bV90b0ltYWdlOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9wZXJjZW50YWdlOwor
CisgICAgUmVmUHRyPEltYWdlPiBtX2dlbmVyYXRlZEltYWdlOworCisgICAgQ3Jvc3NmYWRlT2Jz
ZXJ2ZXJQcm94eSBtX2Nyb3NzZmFkZU9ic2VydmVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IGZlYjAxZjQu
LmI1NWI0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTI2
LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NHcmFkaWVudFZh
bHVlLmgiCiAKLSNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVTZWxlY3Rvci5oIgotI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiQ1NT
VmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCiAj
aW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNp
emUuaCIKQEAgLTY3LDcgKzY3LDcgQEAgUGFzc1JlZlB0cjxJbWFnZT4gQ1NTR3JhZGllbnRWYWx1
ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYKICAgICAgICAg
Z3JhZGllbnQgPSBzdGF0aWNfY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZhbHVlKj4odGhpcyktPmNy
ZWF0ZUdyYWRpZW50KHJlbmRlcmVyLCBzaXplKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW1hZ2U+
IG5ld0ltYWdlID0gR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShncmFkaWVudCwgc2l6ZSk7CisgICAg
UmVmUHRyPEltYWdlPiBuZXdJbWFnZSA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUo
Z3JhZGllbnQsIHNpemUpOwogICAgIGlmIChjYWNoZWFibGUpCiAgICAgICAgIHB1dEltYWdlKHNp
emUsIG5ld0ltYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmgKaW5kZXgg
ZjEzYWM5OC4uZWExMGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCkBA
IC02OSw2ICs2OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRml4ZWRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBJbnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3Qq
KSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KIAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIENTU0dyYWRpZW50VmFsdWUoQ2xhc3NU
eXBlIGNsYXNzVHlwZSwgQ1NTR3JhZGllbnRSZXBlYXQgcmVwZWF0LCBib29sIGRlcHJlY2F0ZWRU
eXBlID0gZmFsc2UpCiAgICAgICAgIDogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZShjbGFzc1R5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKaW5kZXgg
MWMzYzY1Mi4uNDFiNDY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIgor
I2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMCwxMyArMTExLDI2IEBAIHZvaWQg
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6cHV0SW1hZ2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGFz
c1JlZlB0cjxJbWFnZT4gaW1hCiAgICAgbV9pbWFnZXMuYWRkKHNpemUsIGltYWdlKTsKIH0KIAor
U3R5bGVJbWFnZSogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1h
Z2UoKQoreworICAgIGlmIChpc1BlbmRpbmcoKSkKKyAgICAgICAgbV9pbWFnZSA9IFN0eWxlUGVu
ZGluZ0ltYWdlOjpjcmVhdGUodGhpcykuZ2V0KCk7CisgICAgZWxzZSBpZiAoIW1fYWNjZXNzZWRJ
bWFnZSkgeworICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOworICAgICAgICBtX2ltYWdl
ID0gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKHRoaXMsIGlzRml4ZWRTaXplKCkpOworICAg
IH0KKworICAgIHJldHVybiBtX2ltYWdlLmdldCgpOworfQorCiBTdHlsZUdlbmVyYXRlZEltYWdl
KiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpnZW5lcmF0ZWRJbWFnZSgpCiB7CiAgICAgaWYgKCFt
X2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKICAgICAg
ICAgbV9pbWFnZSA9IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZSh0aGlzLCBpc0ZpeGVkU2l6
ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7CisKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3R5bGVHZW5lcmF0ZWRJbWFnZSo+KG1faW1hZ2UuZ2V0KCkpOwogfQogCiBQYXNz
UmVmUHRyPEltYWdlPiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppbWFnZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTcwLDQgKzE4NCw0MSBAQCBJbnRT
aXplIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogICAgIHJldHVybiBJbnRTaXplKCk7CiB9CiAKK2Jvb2wgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGNsYXNzVHlwZSgp
KSB7CisgICAgY2FzZSBDcm9zc2ZhZGVDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IENTU0Nyb3NzZmFkZVZhbHVlKj4odGhpcyktPmlzUGVuZGluZygpOworICAgIGNhc2Ug
Q2FudmFzQ2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDU1NDYW52YXNW
YWx1ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDU1NMaW5lYXJHcmFkaWVudFZhbHVl
Kj4odGhpcyktPmlzUGVuZGluZygpOworICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENTU1JhZGlhbEdyYWRpZW50VmFsdWUqPih0
aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDU1NJbWFnZUdlbmVy
YXRvclZhbHVlOjpsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNv
dXJjZUxvYWRlcikKK3sKKyAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7CisgICAgY2FzZSBDcm9z
c2ZhZGVDbGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTQ3Jvc3NmYWRlVmFsdWUqPih0aGlz
KS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ2FudmFzQ2xhc3M6CisgICAgICAgIHN0YXRpY19jYXN0PENTU0NhbnZhc1ZhbHVl
Kj4odGhpcyktPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CisgICAgICAgIHN0YXRpY19jYXN0
PENTU0xpbmVhckdyYWRpZW50VmFsdWUqPih0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNv
dXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFz
czoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5s
b2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9y
VmFsdWUuaAppbmRleCBkMGViNjViLi4xYWI0NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKQEAgLTMzLDkgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBJbWFnZTsKIGNs
YXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFN0eWxlR2VuZXJhdGVkSW1hZ2U7CitjbGFzcyBTdHls
ZUltYWdlOwogCiBzdHJ1Y3QgU2l6ZUFuZENvdW50IHsKICAgICBTaXplQW5kQ291bnQoSW50U2l6
ZSBuZXdTaXplID0gSW50U2l6ZSgpLCBpbnQgbmV3Q291bnQgPSAwKQpAQCAtNTgsMTEgKzYwLDE2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsKICAgICBQ
YXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7CiAK
KyAgICBTdHlsZUltYWdlKiBnZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgpOwogICAgIFN0eWxlR2Vu
ZXJhdGVkSW1hZ2UqIGdlbmVyYXRlZEltYWdlKCk7CiAKICAgICBib29sIGlzRml4ZWRTaXplKCkg
Y29uc3Q7CiAgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAg
ICBib29sIGlzUGVuZGluZygpIGNvbnN0OworCisgICAgdm9pZCBsb2FkU3ViaW1hZ2VzKENhY2hl
ZFJlc291cmNlTG9hZGVyKik7CisKIHByb3RlY3RlZDoKICAgICBDU1NJbWFnZUdlbmVyYXRvclZh
bHVlKENsYXNzVHlwZSk7CiAKQEAgLTcwLDcgKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
cHV0SW1hZ2UoY29uc3QgSW50U2l6ZSYsIFBhc3NSZWZQdHI8SW1hZ2U+KTsKICAgICBjb25zdCBS
ZW5kZXJPYmplY3RTaXplQ291bnRNYXAmIGNsaWVudHMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVu
dHM7IH0KIAotICAgIFJlZlB0cjxTdHlsZUdlbmVyYXRlZEltYWdlPiBtX2ltYWdlOworICAgIFJl
ZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogICAgIGJvb2wgbV9hY2Nlc3NlZEltYWdlOwogCiAg
ICAgSGFzaENvdW50ZWRTZXQ8SW50U2l6ZT4gbV9zaXplczsgLy8gQSBjb3VudCBvZiBob3cgbWFu
eSB0aW1lcyBhIGdpdmVuIGltYWdlIHNpemUgaXMgaW4gdXNlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAppbmRleCA4NWQxYWJkLi5mYzM4Y2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApA
QCAtNjI5MCw3ICs2MjkwLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKENTU1Bh
cnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JgogICAgIGlmICghYSB8
fCBhLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShz
dGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oZnJvbUltYWdlVmFsdWUuZ2V0KCkpLCBzdGF0aWNf
Y2FzdDxDU1NJbWFnZVZhbHVlKj4odG9JbWFnZVZhbHVlLmdldCgpKSk7CisgICAgcmVzdWx0ID0g
Q1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShmcm9tSW1hZ2VWYWx1ZSwgdG9JbWFnZVZhbHVlKTsK
ICAgICByZXN1bHQtPnNldFBlcmNlbnRhZ2UoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGEp
KTsKIAogICAgIGNyb3NzZmFkZSA9IHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAppbmRleCA2YmVlODM2Li5kMmYzM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00MjQ2LDcgKzQyNDYsNyBAQCBTdHlsZUltYWdlKiBDU1NT
dHlsZVNlbGVjdG9yOjpzdHlsZUltYWdlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1ZhbHVl
KiB2YWx1ZQogICAgICAgICByZXR1cm4gY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKHByb3BlcnR5
LCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4odmFsdWUpKTsKIAogICAgIGlmICh2YWx1ZS0+
aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUpLT5nZW5lcmF0ZWRJbWFnZSgpOworICAgICAgICBy
ZXR1cm4gZ2VuZXJhdGVkT3JQZW5kaW5nRnJvbVZhbHVlKHByb3BlcnR5LCBzdGF0aWNfY2FzdDxD
U1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUpKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAt
NDI1OSw2ICs0MjU5LDE0IEBAIFN0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OmNhY2hlZE9y
UGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDCiAgICAgcmV0dXJuIGlt
YWdlOwogfQogCitTdHlsZUltYWdlKiBDU1NTdHlsZVNlbGVjdG9yOjpnZW5lcmF0ZWRPclBlbmRp
bmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZSogdmFsdWUpCit7CisgICAgU3R5bGVJbWFnZSogaW1hZ2UgPSB2YWx1ZS0+Z2VuZXJhdGVkT3JQ
ZW5kaW5nSW1hZ2UoKTsKKyAgICBpZiAoaW1hZ2UgJiYgaW1hZ2UtPmlzUGVuZGluZ0ltYWdlKCkp
CisgICAgICAgIG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcy5hZGQocHJvcGVydHkpOworICAgIHJl
dHVybiBpbWFnZTsKK30KKwogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBGaWxsSW1hZ2UoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQog
ewogICAgIGlmICh2YWx1ZS0+aXNJbml0aWFsVmFsdWUoKSkgewpAQCAtNTU3Niw2ICs1NTg0LDI0
IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1
ZSogaW5WYWx1ZSwgUmVuZGVyU3R5bGUqIHN0CiAKICNlbmRpZgogCitTdHlsZUltYWdlKiBDU1NT
dHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlKFN0eWxlUGVuZGluZ0ltYWdlKiBwZW5kaW5n
SW1hZ2UpCit7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVy
ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOworCisgICAg
aWYgKHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpKSB7CisgICAgICAgIENTU0ltYWdlVmFs
dWUqIGltYWdlVmFsdWUgPSBwZW5kaW5nSW1hZ2UtPmNzc0ltYWdlVmFsdWUoKTsKKyAgICAgICAg
cmV0dXJuIGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAg
ICB9CisKKyAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsK
KyAgICAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSogaW1hZ2VHZW5lcmF0b3JWYWx1ZSA9IHBl
bmRpbmdJbWFnZS0+Y3NzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpOworICAgICAgICBpbWFnZUdlbmVy
YXRvclZhbHVlLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAg
cmV0dXJuIGltYWdlR2VuZXJhdG9yVmFsdWUtPmdlbmVyYXRlZEltYWdlKCk7CisgICAgfQorCisg
ICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFn
ZXMoKQogewogICAgIGlmIChtX3BlbmRpbmdJbWFnZVByb3BlcnRpZXMuaXNFbXB0eSgpKQpAQCAt
NTU4NSwxNCArNTYxMSwxMiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1h
Z2VzKCkKICAgICBmb3IgKEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BlbmRp
bmdJbWFnZVByb3BlcnRpZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIENT
U1Byb3BlcnR5SUQgY3VycmVudFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4o
Kml0KTsKIAotICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0KICAg
ICAgICAgc3dpdGNoIChjdXJyZW50UHJvcGVydHkpIHsKICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kSW1hZ2U6IHsKICAgICAgICAgICAgICAgICBmb3IgKEZpbGxMYXllciog
YmFja2dyb3VuZExheWVyID0gbV9zdHlsZS0+YWNjZXNzQmFja2dyb3VuZExheWVycygpOyBiYWNr
Z3JvdW5kTGF5ZXI7IGJhY2tncm91bmRMYXllciA9IGJhY2tncm91bmRMYXllci0+bmV4dCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGlmIChiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkgJiYgYmFj
a2dyb3VuZExheWVyLT5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQ
ZW5kaW5nSW1hZ2UqPihiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkpLT5jc3NJbWFnZVZhbHVlKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kTGF5ZXItPnNldEltYWdlKGltYWdl
VmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3Rh
dGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRMYXllci0+c2V0SW1hZ2UobG9hZGVk
SW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtNTYwMSwxMSArNTYyNSwxMSBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlD
b250ZW50OiB7CiAgICAgICAgICAgICAgICAgZm9yIChDb250ZW50RGF0YSogY29udGVudERhdGEg
PSBjb25zdF9jYXN0PENvbnRlbnREYXRhKj4obV9zdHlsZS0+Y29udGVudERhdGEoKSk7IGNvbnRl
bnREYXRhOyBjb250ZW50RGF0YSA9IGNvbnRlbnREYXRhLT5uZXh0KCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNvbnRlbnREYXRhLT5pc0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFN0eWxlSW1hZ2UqIGltYWdlID0gc3RhdGljX2Nhc3Q8SW1hZ2VDb250ZW50
RGF0YSo+KGNvbnRlbnREYXRhKS0+aW1hZ2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0
eWxlSW1hZ2UqIGltYWdlID0gc3RhdGljX2Nhc3Q8SW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnRE
YXRhKS0+aW1hZ2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbWFnZS0+aXNQZW5k
aW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUq
IGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdl
KS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTdHls
ZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hl
ZFJlc291cmNlTG9hZGVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8SW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnREYXRhKS0+c2V0SW1hZ2UoY2FjaGVkSW1h
Z2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdl
ID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdl
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRlZEltYWdlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4o
Y29udGVudERhdGEpLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC01NjE4
LDggKzU2NDIsOCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnNvckRhdGEmIGN1cnJlbnRDdXJzb3IgPSBjdXJz
b3JMaXN0LT5hdChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTdHlsZUltYWdlKiBp
bWFnZSA9IGN1cnJlbnRDdXJzb3IuaW1hZ2UoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChpbWFnZS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQ
ZW5kaW5nSW1hZ2UqPihpbWFnZSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3VycmVudEN1cnNvci5zZXRJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJ
bWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nh
c3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihpbWFnZSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjdXJyZW50Q3Vyc29yLnNldEltYWdlKGxvYWRlZEltYWdlKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgIH0KQEAgLTU2MjksMTYgKzU2NTMsMTYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
Ojpsb2FkUGVuZGluZ0ltYWdlcygpCiAKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0
U3R5bGVJbWFnZTogewogICAgICAgICAgICAgICAgIGlmIChtX3N0eWxlLT5saXN0U3R5bGVJbWFn
ZSgpICYmIG1fc3R5bGUtPmxpc3RTdHlsZUltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0
PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2UoKSktPmNzc0ltYWdl
VmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TGlzdFN0eWxlSW1hZ2Uo
aW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0
YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2UoKSkp
OworICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRMaXN0U3R5bGVJbWFnZShsb2FkZWRJ
bWFnZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVySW1hZ2VTb3VyY2U6
IHsKICAgICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSAmJiBt
X3N0eWxlLT5ib3JkZXJJbWFnZVNvdXJjZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHls
ZVBlbmRpbmdJbWFnZSo+KG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCkpLT5jc3NJbWFnZVZh
bHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvcmRlckltYWdlU291cmNl
KGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAg
ICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShz
dGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNl
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Qm9yZGVySW1hZ2VTb3VyY2Uo
bG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KQEAgLTU2NDcsOCArNTY3MSw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgICAgIGlmIChTdHlsZVJlZmxlY3Rp
b24qIHJlZmxlY3Rpb24gPSBtX3N0eWxlLT5ib3hSZWZsZWN0KCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgTmluZVBpZWNlSW1hZ2UmIG1hc2tJbWFnZSA9IHJlZmxlY3Rpb24tPm1hc2so
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2tJbWFnZS5pbWFnZSgpICYmIG1hc2tJbWFn
ZS5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBD
U1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2Uq
PihtYXNrSW1hZ2UuaW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJlZmxlY3Rpb24tPnNldE1hc2soTmluZVBpZWNlSW1hZ2UoaW1hZ2VWYWx1ZS0+Y2Fj
aGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpLCBtYXNrSW1hZ2UuaW1hZ2VTbGljZXMoKSwg
bWFza0ltYWdlLmZpbGwoKSwgbWFza0ltYWdlLmJvcmRlclNsaWNlcygpLCBtYXNrSW1hZ2Uub3V0
c2V0KCksIG1hc2tJbWFnZS5ob3Jpem9udGFsUnVsZSgpLCBtYXNrSW1hZ2UudmVydGljYWxSdWxl
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0g
bG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tJbWFn
ZS5pbWFnZSgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZsZWN0aW9uLT5zZXRNYXNr
KE5pbmVQaWVjZUltYWdlKGxvYWRlZEltYWdlLCBtYXNrSW1hZ2UuaW1hZ2VTbGljZXMoKSwgbWFz
a0ltYWdlLmZpbGwoKSwgbWFza0ltYWdlLmJvcmRlclNsaWNlcygpLCBtYXNrSW1hZ2Uub3V0c2V0
KCksIG1hc2tJbWFnZS5ob3Jpem9udGFsUnVsZSgpLCBtYXNrSW1hZ2UudmVydGljYWxSdWxlKCkp
KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBicmVhazsKQEAgLTU2NTYsOCArNTY4MCw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
bG9hZFBlbmRpbmdJbWFnZXMoKQogCiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
TWFza0JveEltYWdlU291cmNlOiB7CiAgICAgICAgICAgICAgICAgaWYgKG1fc3R5bGUtPm1hc2tC
b3hJbWFnZVNvdXJjZSgpICYmIG1fc3R5bGUtPm1hc2tCb3hJbWFnZVNvdXJjZSgpLT5pc1BlbmRp
bmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFs
dWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3R5bGUtPm1hc2tCb3hJbWFn
ZVNvdXJjZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRNYXNrQm94SW1hZ2VTb3VyY2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVz
b3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1h
Z2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9z
dHlsZS0+bWFza0JveEltYWdlU291cmNlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0TWFza0JveEltYWdlU291cmNlKGxvYWRlZEltYWdlKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC01NjY1LDggKzU2ODks
OCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrSW1hZ2U6IHsKICAgICAgICAgICAgICAgICBm
b3IgKEZpbGxMYXllciogbWFza0xheWVyID0gbV9zdHlsZS0+YWNjZXNzTWFza0xheWVycygpOyBt
YXNrTGF5ZXI7IG1hc2tMYXllciA9IG1hc2tMYXllci0+bmV4dCgpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChtYXNrTGF5ZXItPmltYWdlKCkgJiYgbWFza0xheWVyLT5pbWFnZSgpLT5pc1Bl
bmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBp
bWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtYXNrTGF5ZXItPmlt
YWdlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtYXNrTGF5
ZXItPnNldEltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVy
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxv
YWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtYXNrTGF5ZXIt
PmltYWdlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2Uo
bG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgK
aW5kZXggZGZiOWVhYy4uZGEyMjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOwogY2xhc3MgQ1NT
UHJvcGVydHk7CiBjbGFzcyBDU1NGb250RmFjZTsKIGNsYXNzIENTU0ZvbnRGYWNlUnVsZTsKK2Ns
YXNzIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU7CiBjbGFzcyBDU1NJbWFnZVZhbHVlOwogY2xhc3Mg
Q1NTUmVnaW9uU3R5bGVSdWxlOwogY2xhc3MgQ1NTUnVsZUxpc3Q7CkBAIC02Niw2ICs2Nyw3IEBA
IGNsYXNzIFJ1bGVEYXRhOwogY2xhc3MgUnVsZVNldDsKIGNsYXNzIFNldHRpbmdzOwogY2xhc3Mg
U3R5bGVJbWFnZTsKK2NsYXNzIFN0eWxlUGVuZGluZ0ltYWdlOwogY2xhc3MgU3R5bGVTaGVldDsK
IGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTI4MCw2ICsy
ODIsNyBAQCBwdWJsaWM6CiAKICAgICBTdHlsZUltYWdlKiBzdHlsZUltYWdlKENTU1Byb3BlcnR5
SUQsIENTU1ZhbHVlKik7CiAgICAgU3R5bGVJbWFnZSogY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVl
KENTU1Byb3BlcnR5SUQsIENTU0ltYWdlVmFsdWUqKTsKKyAgICBTdHlsZUltYWdlKiBnZW5lcmF0
ZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZSopOwogCiAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUoKSBjb25zdCB7IHJl
dHVybiBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZTsgfQogICAgIGJvb2wgYXBwbHlQcm9w
ZXJ0eVRvVmlzaXRlZExpbmtTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlQcm9wZXJ0eVRv
VmlzaXRlZExpbmtTdHlsZTsgfQpAQCAtMzI3LDYgKzMzMCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBhcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqKTsKICNlbmRpZgogCisgICAgU3R5
bGVJbWFnZSogbG9hZFBlbmRpbmdJbWFnZShTdHlsZVBlbmRpbmdJbWFnZSopOwogICAgIHZvaWQg
bG9hZFBlbmRpbmdJbWFnZXMoKTsKIAogICAgIHN0cnVjdCBNYXRjaGVkU3R5bGVEZWNsYXJhdGlv
biB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApp
bmRleCBlMjg5ZGQ0Li5iY2QzNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogCiBjbGFzcyBC
aXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZElt
YWdlOworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmll
bmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4g
Y3JlYXRlKE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZl
ciA9IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjRiZDNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcApAQCAtMCwwICsxLDEzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlLmgiCisKKyNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1ZS5oIgorI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIklt
YWdlQnVmZmVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKENh
Y2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50
YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICA6
IG1fZnJvbUltYWdlKGZyb21JbWFnZSkKKyAgICAsIG1fdG9JbWFnZSh0b0ltYWdlKQorICAgICwg
bV9wZXJjZW50YWdlKHBlcmNlbnRhZ2UpCisgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAg
ICwgbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKGFkb3B0UHRyKG5ldyBDcm9zc2ZhZGVTdWJp
bWFnZU9ic2VydmVyUHJveHkodGhpcykpKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisKKyAgICBt
X2Zyb21JbWFnZS0+YWRkQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7
CisgICAgbV90b0ltYWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdl
dCgpKTsKKworICAgIG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci0+c2V0UmVhZHkodHJ1ZSk7
Cit9CisKK0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjp+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uo
KQoreworICAgIG1fZnJvbUltYWdlLT5yZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9i
c2VydmVyLmdldCgpKTsKKyAgICBtX3RvSW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1
YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdl
OjpkcmF3Q3Jvc3NmYWRlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBJbWFnZSog
ZnJvbUltYWdlID0gMDsKKyAgICBJbWFnZSogdG9JbWFnZSA9IDA7CisgICAgSW50U2l6ZSBmcm9t
SW1hZ2VTaXplLCB0b0ltYWdlU2l6ZSwgY3Jvc3NmYWRlSW1hZ2VTaXplOworICAgIGZsb2F0IGlu
dmVyc2VQZXJjZW50YWdlID0gMS4wZiAtIG1fcGVyY2VudGFnZTsKKworICAgIGZyb21JbWFnZSA9
IG1fZnJvbUltYWdlLT5pbWFnZSgpOworICAgIGZyb21JbWFnZVNpemUgPSBmcm9tSW1hZ2UtPnNp
emUoKTsKKyAgICB0b0ltYWdlID0gbV90b0ltYWdlLT5pbWFnZSgpOworICAgIHRvSW1hZ2VTaXpl
ID0gdG9JbWFnZS0+c2l6ZSgpOworCisgICAgLy8gRHJhdyBub3RoaW5nIGlmIGVpdGhlciBvZiB0
aGUgaW1hZ2VzIGhhc24ndCBsb2FkZWQgeWV0LgorICAgIGlmIChmcm9tSW1hZ2UgPT0gSW1hZ2U6
Om51bGxJbWFnZSgpIHx8IHRvSW1hZ2UgPT0gSW1hZ2U6Om51bGxJbWFnZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjcm9zc2ZhZGVJbWFnZVNpemUgPSBJbnRTaXplKGZyb21JbWFnZVNpemUu
d2lkdGgoKSAqIGludmVyc2VQZXJjZW50YWdlICsgdG9JbWFnZVNpemUud2lkdGgoKSAqIG1fcGVy
Y2VudGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21JbWFnZVNpemUu
aGVpZ2h0KCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLmhlaWdodCgpICogbV9w
ZXJjZW50YWdlKTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigq
Y29udGV4dCk7CisKKyAgICAvLyBEcmF3IHRoZSBpbWFnZSB3ZSdyZSBmYWRpbmcgYXdheSBmcm9t
LgorICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBpZiAoY3Jvc3NmYWRlSW1hZ2VTaXplICE9IGZy
b21JbWFnZVNpemUpCisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNfY2Fz
dDxmbG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLndpZHRoKCkpIC8gZnJvbUltYWdlU2l6ZS53aWR0
aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGNyb3NzZmFkZUltYWdlU2l6ZS5oZWlnaHQoKSkgLyBmcm9tSW1hZ2VTaXplLmhlaWdodCgpKSk7
CisgICAgY29udGV4dC0+c2V0QWxwaGEoaW52ZXJzZVBlcmNlbnRhZ2UpOworICAgIGNvbnRleHQt
PmRyYXdJbWFnZShmcm9tSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50KCkpOwor
ICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKworICAgIC8vIERyYXcgdGhlIGltYWdlIHdlJ3JlIGZh
ZGluZyB0b3dhcmRzLgorICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBpZiAoY3Jvc3NmYWRlSW1h
Z2VTaXplICE9IHRvSW1hZ2VTaXplKQorICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUo
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGNyb3NzZmFkZUltYWdlU2l6ZS53aWR0aCgpKSAvIHRvSW1hZ2VT
aXplLndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxmbG9hdD4oY3Jvc3NmYWRlSW1hZ2VTaXplLmhlaWdodCgpKSAvIHRvSW1hZ2VTaXplLmhlaWdo
dCgpKSk7CisgICAgY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZVNvdXJj
ZU92ZXIpOworICAgIGNvbnRleHQtPnNldEFscGhhKG1fcGVyY2VudGFnZSk7CisgICAgY29udGV4
dC0+ZHJhd0ltYWdlKHRvSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50KCkpOwor
ICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKK30KKwordm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcCkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tcG9zaXRlT3ApOworICAgIFVO
VVNFRF9QQVJBTShzcmNSZWN0KTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcigqY29udGV4dCk7CisgICAgY29udGV4dC0+Y2xpcChkc3RSZWN0KTsKKyAgICBjb250
ZXh0LT50cmFuc2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKworICAgIGRyYXdDcm9z
c2ZhZGUoY29udGV4dCk7Cit9CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Ig
Y29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgT3duUHRyPElt
YWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobV9zaXplKTsKKyAg
ICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGaWxsIHdpdGgg
dGhlIGNyb3NzLWZhZGVkIGltYWdlLgorICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250
ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICBkcmF3Q3Jvc3NmYWRlKGdyYXBoaWNz
Q29udGV4dCk7CisKKyAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4
dC4KKyAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgc3JjUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgY29tcG9zaXRlT3AsIGRlc3RSZWN0
KTsKK30KKwordm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6aW1hZ2VDaGFuZ2VkKENhY2hl
ZEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCogcmVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
aW1hZ2UpOworICAgIG1fb2JzZXJ2ZXItPmNoYW5nZWRJblJlY3QodGhpcywgKnJlY3QpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lNWUwNDU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApAQCAtMCwwICsxLDg4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlX2gKKyNkZWZpbmUgQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2VfaAorCisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJHZW5l
cmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VPYnNlcnZl
ci5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTQ3Jvc3NmYWRlVmFsdWU7CitjbGFzcyBDcm9z
c2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CisKK2NsYXNzIENyb3NzZmFkZUdlbmVyYXRlZElt
YWdlIDogcHVibGljIEdlbmVyYXRlZEltYWdlIHsKKyAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRl
U3ViaW1hZ2VPYnNlcnZlclByb3h5OworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENy
b3NzZmFkZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUoQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2Fj
aGVkSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2Vy
dmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIHBlcmNlbnRh
Z2UsIG9ic2VydmVyLCBzaXplKSk7CisgICAgfQorICAgIHZpcnR1YWwgfkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlKCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9z
aXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworCisgICAgQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2FjaGVkSW1hZ2UqIHRvSW1h
Z2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdlT2JzZXJ2ZXIqLCBjb25zdCBJbnRTaXplJik7CisK
KyAgICB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0gMCk7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBkcmF3Q3Jvc3NmYWRlKEdyYXBoaWNzQ29udGV4dCopOwor
CisgICAgQ2FjaGVkSW1hZ2UqIG1fZnJvbUltYWdlOworICAgIENhY2hlZEltYWdlKiBtX3RvSW1h
Z2U7CisgICAgZmxvYXQgbV9wZXJjZW50YWdlOworCisgICAgSW1hZ2VPYnNlcnZlciogbV9vYnNl
cnZlcjsKKyAgICBPd25QdHI8Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5PiBtX2Nyb3Nz
ZmFkZVN1YmltYWdlT2JzZXJ2ZXI7Cit9OworCitjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2Vy
dmVyUHJveHkgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgeworcHVibGljOgorICAgIENyb3Nz
ZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eShDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSogb3duZXJW
YWx1ZSkKKyAgICA6IG1fb3duZXJWYWx1ZShvd25lclZhbHVlKQorICAgICwgbV9yZWFkeShmYWxz
ZSkgeyB9CisKKyAgICB2aXJ0dWFsIH5Dcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkoKSBP
VkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiBp
bWFnZSwgY29uc3QgSW50UmVjdCogcmVjdCA9IDApIE9WRVJSSURFIHsKKyAgICAgICAgaWYgKG1f
cmVhZHkpCisgICAgICAgICAgICBtX293bmVyVmFsdWUtPmltYWdlQ2hhbmdlZChpbWFnZSwgcmVj
dCk7CisgICAgfQorICAgIHZvaWQgc2V0UmVhZHkoYm9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVh
ZHk7IH0KK3ByaXZhdGU6CisgICAgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UqIG1fb3duZXJWYWx1
ZTsKKyAgICBib29sIG1fcmVhZHk7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1ZTA2ZGZkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiR2VuZXJhdGVkSW1hZ2UuaCIKLQotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgot
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCi0j
aW5jbHVkZSAiTGVuZ3RoLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBHZW5lcmF0
ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcCkKLXsKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoKmNvbnRleHQpOwotICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihj
b21wb3NpdGVPcCk7Ci0gICAgY29udGV4dC0+Y2xpcChkc3RSZWN0KTsKLSAgICBjb250ZXh0LT50
cmFuc2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKLSAgICBpZiAoZHN0UmVjdC5zaXpl
KCkgIT0gc3JjUmVjdC5zaXplKCkpCi0gICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShk
c3RSZWN0LndpZHRoKCkgLyBzcmNSZWN0LndpZHRoKCksIGRzdFJlY3QuaGVpZ2h0KCkgLyBzcmNS
ZWN0LmhlaWdodCgpKSk7Ci0gICAgY29udGV4dC0+dHJhbnNsYXRlKC1zcmNSZWN0LngoKSwgLXNy
Y1JlY3QueSgpKTsKLSAgICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBtX3NpemUpLCAqbV9nZW5lcmF0b3IuZ2V0KCkpOwotfQotCi12b2lkIEdlbmVyYXRlZEltYWdl
OjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKLXsKLSAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRv
IHByb3ZpZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVy
IHBlcmZvcm1hbmNlLgotICAgIEludFNpemUgYWRqdXN0ZWRTaXplID0gbV9zaXplOwotICAgIEZs
b2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwotICAgIG1fZ2VuZXJhdG9yLT5hZGp1
c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5nKGFkanVzdGVkU2l6ZSwgYWRqdXN0ZWRTcmNSZWN0
KTsKLQotICAgIC8vIENyZWF0ZSBhIEJpdG1hcEltYWdlIGFuZCBjYWxsIGRyYXdQYXR0ZXJuIG9u
IGl0LgotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGFkanVzdGVkU2l6ZSk7Ci0gICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgLy8gRmlsbCB3aXRoIHRoZSBncmFkaWVudC4KLSAgICBHcmFwaGljc0NvbnRl
eHQqIGdyYXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7Ci0gICAgZ3JhcGhp
Y3NDb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBhZGp1c3RlZFNpemUp
LCAqbV9nZW5lcmF0b3IuZ2V0KCkpOwotCi0gICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGlu
dG8gdGhlIGNvbnRleHQuCi0gICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGFk
anVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwg
Y29tcG9zaXRlT3AsIGRlc3RSZWN0KTsKLX0KLQotdm9pZCBHZW5lcmF0ZWRJbWFnZTo6Y29tcHV0
ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRy
aW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pCi17Ci0gICAgSW1hZ2U6OmNv
bXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKGludHJpbnNpY1dpZHRoLCBpbnRyaW5zaWNIZWlnaHQs
IGludHJpbnNpY1JhdGlvKTsKLSAgICBpbnRyaW5zaWNSYXRpbyA9IEZsb2F0U2l6ZSgpOwotfQot
Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1h
Z2UuaAppbmRleCBkMjg4NzJiLi5iZWMzNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKQEAgLTM2LDEyICszNiw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgSW1hZ2Ugewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyYXRlZEltYWdlPiBjcmVhdGUoUGFz
c1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRvciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJhdGVkSW1hZ2UoZ2VuZXJhdG9yLCBz
aXplKSk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkdlbmVyYXRlZEltYWdlKCkge30KLQogICAgIHZp
cnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250YWluZXJTaXplKGNvbnN0IEludFNpemUmIHNp
emUpIHsgbV9zaXplID0gc2l6ZTsgfQpAQCAtNTcsMTcgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAgdmlydHVhbCB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRy
YW5zZm9ybSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7Ci0gICAgCi0gICAgR2VuZXJhdGVkSW1hZ2UoUGFzc1Jl
ZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRvciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICAgICAg
OiBtX2dlbmVyYXRvcihnZW5lcmF0b3IpCi0gICAgICAgICwgbV9zaXplKHNpemUpCi0gICAgewot
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCkgPSAwOworCisgICAgR2VuZXJhdGVkSW1hZ2UoKSB7IH0KIAot
ICAgIFJlZlB0cjxHZW5lcmF0b3I+IG1fZ2VuZXJhdG9yOwogICAgIEludFNpemUgbV9zaXplOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmFhMWYwMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTAsMCArMSw3NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNs
dWRlICJMZW5ndGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7CisgICAgY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0
aW9uKGNvbXBvc2l0ZU9wKTsKKyAgICBjb250ZXh0LT5jbGlwKGRzdFJlY3QpOworICAgIGNvbnRl
eHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55KCkpOworICAgIGlmIChkc3RSZWN0
LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRT
aXplKGRzdFJlY3Qud2lkdGgoKSAvIHNyY1JlY3Qud2lkdGgoKSwgZHN0UmVjdC5oZWlnaHQoKSAv
IHNyY1JlY3QuaGVpZ2h0KCkpKTsKKyAgICBjb250ZXh0LT50cmFuc2xhdGUoLXNyY1JlY3QueCgp
LCAtc3JjUmVjdC55KCkpOworICAgIGNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIG1fc2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7Cit9CisKK3ZvaWQgR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQoreworICAgIC8vIEFsbG93IHRo
ZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0
ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgSW50U2l6ZSBhZGp1c3RlZFNpemUgPSBt
X3NpemU7CisgICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CisgICAgbV9n
ZW5lcmF0b3ItPmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0ZWRTaXplLCBh
ZGp1c3RlZFNyY1JlY3QpOworCisgICAgLy8gQ3JlYXRlIGEgQml0bWFwSW1hZ2UgYW5kIGNhbGwg
ZHJhd1BhdHRlcm4gb24gaXQuCisgICAgT3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9
IEltYWdlQnVmZmVyOjpjcmVhdGUoYWRqdXN0ZWRTaXplKTsKKyAgICBpZiAoIWltYWdlQnVmZmVy
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGaWxsIHdpdGggdGhlIGdlbmVyYXRlZCBpbWFn
ZS4KKyAgICBHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVyLT5j
b250ZXh0KCk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQ
b2ludCgpLCBhZGp1c3RlZFNpemUpLCAqbV9nZW5lcmF0b3IuZ2V0KCkpOworCisgICAgLy8gVGls
ZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRleHQuCisgICAgaW1hZ2VCdWZmZXItPmRy
YXdQYXR0ZXJuKGNvbnRleHQsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHN0eWxlQ29sb3JTcGFjZSwgY29tcG9zaXRlT3AsIGRlc3RSZWN0KTsKK30KKwordm9pZCBH
ZW5lcmF0ZWRJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5z
aWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0
aW8pCit7CisgICAgSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKGludHJpbnNpY1dp
ZHRoLCBpbnRyaW5zaWNIZWlnaHQsIGludHJpbnNpY1JhdGlvKTsKKyAgICBpbnRyaW5zaWNSYXRp
byA9IEZsb2F0U2l6ZSgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDljYTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaApAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2VuZXJhdG9yR2VuZXJh
dGVkSW1hZ2VfaAorI2RlZmluZSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRl
ICJHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRvci5oIgorI2luY2x1ZGUgIklt
YWdlLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSA6IHB1
YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJh
dG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZShnZW5lcmF0b3IsIHNpemUpKTsKKyAgICB9Cisg
ICAgdmlydHVhbCB+R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UoKSB7IH0KKworcHJvdGVjdGVkOgor
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisKKyAgICBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJ
bnRTaXplJiBzaXplKQorICAgICAgICA6IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKKyAgICB7Cisg
ICAgICAgIG1fc2l6ZSA9IHNpemU7CisgICAgfQorCisgICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9n
ZW5lcmF0b3I7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlLmgKaW5kZXggYmYxYTE3Zi4uYjU0NmI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIEltYWdlT2JzZXJ2
ZXI7CiAKIGNsYXNzIEltYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8SW1hZ2U+IHsKICAgICBmcmll
bmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKICAg
ICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAwODg5OWE2Li43ZGYx
MzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKQEAgLTEyNiw2ICsxMjYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgZnJp
ZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKICAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRl
ZEltYWdlOworICAgICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7Cisg
ICAgICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIEltYWdlQnVmZmVyRGF0YSBtX2RhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oCmluZGV4IGMwZWUxMzkuLjlh
YTBlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBl
bmRpbmdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBl
bmRpbmdJbWFnZS5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIFN0eWxlUGVuZGluZ0ltYWdl
X2gKICNkZWZpbmUgU3R5bGVQZW5kaW5nSW1hZ2VfaAogCisjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJJbWFn
ZS5oIgogI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKIApAQCAtMzcsMTIgKzM5LDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3R5bGVQZW5kaW5nSW1hZ2UgOiBwdWJsaWMgU3R5bGVJ
bWFnZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQZW5kaW5nSW1hZ2U+
IGNyZWF0ZShDU1NJbWFnZVZhbHVlKiB2YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxl
UGVuZGluZ0ltYWdlKHZhbHVlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVBlbmRp
bmdJbWFnZT4gY3JlYXRlKENTU1ZhbHVlKiB2YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0
eWxlUGVuZGluZ0ltYWdlKHZhbHVlKSk7IH0KIAotICAgIHZpcnR1YWwgV3JhcHBlZEltYWdlUHRy
IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdmlydHVhbCBXcmFwcGVkSW1h
Z2VQdHIgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPiht
X3ZhbHVlKTsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KLSAgICBDU1NJbWFnZVZhbHVlKiBjc3NJbWFnZVZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIENTU0ltYWdlVmFsdWUqIGNzc0lt
YWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5pc0ltYWdlVmFsdWUoKSA/IHN0YXRp
Y19jYXN0PENTU0ltYWdlVmFsdWUqPihtX3ZhbHVlKSA6IDA7IH0KKyAgICBDU1NJbWFnZUdlbmVy
YXRvclZhbHVlKiBjc3NJbWFnZUdlbmVyYXRvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkgPyBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRv
clZhbHVlKj4obV92YWx1ZSkgOiAwOyB9CiAgICAgCiAgICAgdmlydHVhbCBJbnRTaXplIGltYWdl
U2l6ZShjb25zdCBSZW5kZXJPYmplY3QqLCBmbG9hdCAvKm11bHRpcGxpZXIqLykgY29uc3QgeyBy
ZXR1cm4gSW50U2l6ZSgpOyB9CiAgICAgdmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVXaWR0
aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC01OSwxMyArNjIsMTMgQEAgcHVibGljOgog
ICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgU3R5bGVQZW5kaW5nSW1hZ2UoQ1NTSW1hZ2VWYWx1
ZSogdmFsdWUpCisgICAgU3R5bGVQZW5kaW5nSW1hZ2UoQ1NTVmFsdWUqIHZhbHVlKQogICAgICAg
ICA6IG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgICAgICBtX2lzUGVuZGluZ0ltYWdlID0gdHJ1
ZTsKICAgICB9CiAKLSAgICBDU1NJbWFnZVZhbHVlKiBtX3ZhbHVlOyAvLyBOb3QgcmV0YWluZWQ7
IGl0IG93bnMgdXMuCisgICAgQ1NTVmFsdWUqIG1fdmFsdWU7IC8vIE5vdCByZXRhaW5lZDsgaXQg
b3ducyB1cy4KIH07CiAKIH0K
</data>
<flag name="review"
          id="113828"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115275</attachid>
            <date>2011-11-15 16:32:48 -0800</date>
            <delta_ts>2011-11-15 20:15:49 -0800</delta_ts>
            <desc>Render Cross-Fade</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>94409</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNTllY2VhLi5iMDMxNTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKworICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZzogQWRkZWQuCisgICAg
ICAgICogY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5zdmc6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC5w
bmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLXNpemluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
dGlsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMS0xMC0yOCAgT2phbiBWYWZhaSAgPG9q
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGltcGxlbWVudCBmbGV4LWFsaWduIGZvciBmbGV4
LWZsb3c6IGNvbHVtbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1ibGVuZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1i
bGVuZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMjc5YzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWJs
ZW5kaW5nLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3
aWR0aDogMjAwcHg7CisJaGVpZ2h0OiAxMDBweDsKK30KKworZGl2LmNyb3NzZmFkZQoreworCWJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLTEw
LnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5nKSwgNTAlKTsKK30KKzwvc3R5bGU+Cis8
IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1
YXJlLCAyMDB4MjAwcHguLS0+Cis8ZGl2IGNsYXNzPSJjcm9zc2ZhZGUiPjwvZGl2PgorPGRpdiBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmxhY2siPjxkaXYgY2xhc3M9ImNyb3NzZmFkZSI+PC9k
aXY+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jv
c3MtZmFkZS1pbnZhbGlkYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iMjdmNjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
Y3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDIxIEBACis8aHRtbD4KKzxz
dHlsZT4KK2RpdgoreworCXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjog
MTBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgoraWYod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorCWxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKwlpZih3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisJCWxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIDIwMCk7Cis8L3NjcmlwdD4KKzwhLS1U
aGUgZmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgbGlnaHQgZ3JlZW4gc3F1YXJl
IHdpdGggYSBkYXJrZXIgZ3JlZW4gY2lyY2xlIGluc2lkZSBpdC4tLT4KKzxkaXYgc3R5bGU9ImJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLWNp
cmNsZS5zdmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcpLCA1MCUpOyI+PC9kaXY+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNp
bXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWE5NDY3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbApA
QCAtMCwwICsxLDE2IEBACis8aHRtbD4KKzxzdHlsZT4KK2RpdgoreworCXdpZHRoOiAxMDBweDsK
KwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKK30KKzwvc3R5bGU+Cis8IS0tVGhlIGZp
cnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4
MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcp
LCAxMDAlKTsiPjwvZGl2PgorPCEtLVRoZSBzZWNvbmQgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFy
IGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5w
bmcpLCB1cmwocmVzb3VyY2VzL3JlZC0xMDAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRo
aXJkIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCAxMDB4
MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKHJlc291cmNlcy9ibHVlLTEwMC5wbmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuLTEwMC5w
bmcpLCA1MCUpOyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
Y3Jvc3MtZmFkZS1zaXppbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li40ZWUxOTRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jv
c3MtZmFkZS1zaXppbmcuaHRtbApAQCAtMCwwICsxLDE3IEBACis8aHRtbD4KKzxzdHlsZT4KK2Rp
dgoreworCXdpZHRoOiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKKwli
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworfQorPC9zdHlsZT4KKzwhLS1UaGUgZmlyc3Qg
Y3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEweDEwcHgu
LS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KHJlc291cmNlcy9yZWQtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4tMTAucG5nKSwgMTAw
JSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5nKSwg
dXJsKHJlc291cmNlcy9yZWQtMTAucG5nKSwgMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHRoaXJkIGNy
b3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIGJsdWUtZ3JlZW4gc3F1YXJlLCA1NXg1NXB4Li0t
PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChy
ZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMC5wbmcpLCA1MCUp
OyI+PC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLXRpbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LXRpbGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhYmMxOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGls
ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxzdHlsZT4KK2RpdgoreworCXdpZHRo
OiAxMDBweDsKKwloZWlnaHQ6IDEwMHB4OworCW1hcmdpbjogMTBweDsKKworCS13ZWJraXQtdHJh
bnNmb3JtOnRyYW5zbGF0ZVooMCk7CisJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9Cis8L3N0
eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdy
ZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwLnBuZyksIHVybChyZXNvdXJj
ZXMvZ3JlZW4tMTAucG5nKSwgMTAwJSk7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7Ij48L2Rp
dj4KKzwhLS1UaGUgc2Vjb25kIGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3Jl
ZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAt
d2Via2l0LWNyb3NzLWZhZGUodXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5nKSwgdXJsKHJlc291
cmNlcy9yZWQtMTAwLnBuZyksIDAlKTsiPjwvZGl2PgorPCEtLVRoZSB0aGlyZCBjcm9zcy1mYWRl
IHNob3VsZCBhcHBlYXIgYXMgYSBibHVlLWdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRp
diBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJj
ZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5nKSwgNTAlKTsiPjwv
ZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3Vy
Y2VzL2JsdWUtMTAucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUt
MTAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYyOTQ5ZTA4ZDg3ZGZjZGMwOTg3ZWFlZjY3NjkyYzdhMWMxNmFh
NTAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc2CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBe
QVR9MlY4PDZaWkk9PmY0MzQ2TFloRGMwSlBEdUZpZjQrc3lzdE4xMwpaNypFJDZ3Pjs5clpVdk5Q
QE8xVGFTPzgzezFPUmhDNmMrI2gKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ibHVlLTEwMC5wbmcgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMDAucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1Nzhh
ZTcyNTMzYzc3NDZjOGE0ZDJmNmVlZjMyYTgxMzdlZTFmNGIKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDkyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeREltPHEzPyNqRCp1e1lxYkFWNVhEKzl5
LXU4Sz9ISygyX1ZpKGBtewptV085Tjg+KjU1Rm9+QSR0ZStDQkQzSUBqSnF6NUhIYz9NNWNLYkxo
KjJ+N1kyan13JnUKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMzliMGQwMmQzNDJi
YmYxZWRkMmViYmNjMmZmNGZmOGIwMzJlMTAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc0Cnpj
bWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeQVR9MlY4PDZaWkk9PmY0MzN8RlhoRGMwSlBXYSlrQWB8
S24tXiFxYApXZSUkaW4pNEZWK0IhajFgcFVYT0BnZUN3U1NgcG08CgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3Jl
ZW4tMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAu
cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU0NWJiYmU1YzU3NjBkOTA1ZGI0YmYwMTViNWI3ZmFhMjc0NjdjN2YK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDkyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeRElt
PHEzPyNqRCp1e1lxYkFWNVhFNW07VmxlaHliZkxzd3o3c242QAptJD5hbkgqMk1gVEp4emZRe3RP
SlA2JTM1Y05lQGJaQChpQT9lbEZ7cjV9RStgbmlGSUkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi1jaXJj
bGUuc3ZnIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLWNpcmNsZS5z
dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0Zjk4MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi1jaXJjbGUu
c3ZnCkBAIC0wLDAgKzEsNSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgorICA8Y2lyY2xlIGN4PSI1
MCIgY3k9IjUwIiByPSI0MCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJy
ZWQiPgorICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0icmVkIiB0bz0i
Z3JlZW4iIGJlZ2luPSIwcyIgZHVyPSIwLjAxcyIgZmlsbD0iZnJlZXplIiAvPgorICA8L2NpcmNs
ZT4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nIGIvTGF5b3V0VGVzdHMvY3Nz
My9pbWFnZXMvcmVzb3VyY2VzL3JlZC0xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJhMmJmMzEyMTVlMzBj
ZmE3ODkwZmUwNjA0NTkxYTNkZWRlZmIxNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzcKemNt
ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5BVH0yVjg8NlpaST0+ZjRpRm1wPWhEYzBKeyZEYG1oeHJt
YDN8MzlwCmEkSGg0NUBOdnRpK0tHaWdjP001Y0tiTGgqMn43YTRSfjZtPgoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2Vz
L3JlZC0xMDAucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL3JlZC0xMDAu
cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU3M2RkNzU4YWRmNDI0ZGI4MjljZTMzOTdmYzljMzFiN2Y0YTQ1ZWYK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDkyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeRElt
PHEzPyNqRCp1e1lxYkFWNVg+d2c5WSR3IT4jSygyX1ZpKGBtewptV085Tjg+KjU1Rm9+QSR0ZStD
QkQzSUBqSnF6NUhIYz9NNWNLYkxoKjJ+N2FsMWA/JEoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1m
YWRlLWJsZW5kaW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Nzcy
NjQzMTQxZDgzMjFhYjc4MThjZTM4ZDBkZWU5N2NiNmYxMWE4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAxMTM0MQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6
bmtCOWdDQ000NyQ9U3VGeGVSSFIKem1MXkdON0E5IzFtTVB9TyM7SWx8cmp8KSpDUH5TYjI1QU9+
aTNYWXtMe292TCRZblleMlk1Tz1EK0NuZnIpQX48CnpnKD9fWkwrKW9eNGlOY3dEfFBPTWh1djFg
Zn1EMDQ2WjJBbk9QdUZ5JU1SYWxIdExueGMxNGZiJVdgOTg5YURLKgp6d31KZztjZlFycEB7akN4
S2lQUzFIc0BEUTt5b3NrXyt3M25sRnY3IyZHVGxQX15KbXBAQkZefHs/QilvPmQmOVYKekUlO2Qm
YnktQjhVbkRmeHxMQ0RWTjFsaz58SEskNDxFO0hCIT8oTGwldUNKUGYmY1FSJUotVzteVHsye0RT
NE5GCnpmQXpvUXRGeHheMiE0PUoqZispV2h8PEh6MShgOGROYHhPPT53R2BnKERjdypwVz13K0VT
JlBgN1d2N0k0fHtyKgp6cj1eKmdJP1VvYyNEM0p0JTZvQHsjZjsxY3BMdVZiWVpRNSt1Q3tXTFVi
b0ZeKkM3MztEWHlEJXpJfjd7WnZHVSUKelZhMWV9dik0V3M9Kl51YT4zNlpGPno9JTJaOSZnN2hO
fW5kPDBiWXc/d0RIO1ZmSntqWGBSenFtMzR3QGQhTjU2CnokKC0+dmI9TEdxTyg5aG9sfDR4ej54
Xj9VcEsmdkgmVSR3Rj9VI1RfOHxJdHJIIStVPHtQPUNhUkY+QzxONTZqYQp6Y0tmbnhAQWNhZ0Mk
bTJgd09nKXZ0PXszXi10UytGeH1IYH1gdFcqLVQ8X0h7KFVZdmdacl5AI2NBNF93Qmp0aGkKeiVw
T2luZUtJSzs0PDxWQ0IrZzFjdmcoSkFuNTJAfGwxckgtQShmamZ1MzJrTHA3dko4ejJhbSUtO094
M3VoRS0hCnplMCVWRi1kKXd9ZVMxVihrOFdSbEJrPTlrIytTUGAzRDEoUUZIS3khSVBhblAmWm8x
YmI2MGI3MXBlIUt5M3IjcAp6Xl58ezg7UHEwb1hBXj5ffDAoNEBaIzNuZFlNRD8zJiNwQmU7KGxv
NWFRVX4yQURYYFolODdJTCkoVzAoREFjaUEKekp1bXB8dXtXeGhkQGo5Qyp8RVJ0dEo1KXdwQSF0
N3F2cX5ZQHR4Q1VgUlBed3c+biNTKTlZdUNWKVU9RyYpYTxfCnpfVGpJYzlCY0s4bD19e2VlfDQ9
PHtJSmg+cEkhWCt7RW8hc3hBJEY2ZEEtOyQ+aDxvKzZMJjR6U1Qme3B3KSF7UQp6ekUjNEtuPk95
LVNRb35qeT03NXltZT1NSWUrRmpOVCkqamBTdHF8Mll+aWx5U2Z8X0J6ZDkqPWcxPElieyFFXkAK
ej17JW42SiNPbDR1PG4xJHllO0B6PzZiYEhWJDA4MzF1diFsOSk3Szc5P0JMY2RFakVQcDc7WGUo
a0dsN1lUfFRXCnppezYmRW5ZWD1ScVY/X013WUlzNXlTbllkUl5La3NpPFY+RCZBPEJVe1BVfT4t
aEtZMHAxV2Y0QUdWZHNULU9kUQp6ajVsSW5QKzsoTWFTVytvZTB5X2FFPm9iMCVmK0tiNHZPI2dE
flVoaW5JUD5AKyZzVSlxaklzUmB8T3kpPk9GU1QKemA1QnA1STBPX044Vz9+S0s4X21NaVoqdWA3
Yk5+NS1sM3NGNVV6cWx6KFAmSXApYXNuMDcpT3k1bz9Ia3UoQVYmCnpqRXFHK3gwO2RrMnFAZWBR
cUkhSCR1U31NaWt1N0JQS2NpRyk9bCRZfDlmfWpKQndZfGdZVW43LT87eS1UXlE9Qgp6dTctTXR1
MzVaRENVYG5Ec0YqMXVJbFFaWkt7THc/O1NtbE1NI2YxdWRYU3U7IU5qeT0jWjRyaU88LWExTkhT
SkoKeklENyNJJEFtPmAmSW1fMjJuaV4zcDZ2aHk0OCkqREM1MklrakUyWik4WDMocyg0cS1nRXt2
OFZxYjJLVFR7Qnd5CnpqPCFjZVRXRihBTVIqOHxIbDdEQGNWZFRhLTI1I2pOVWdZcjB+IXpIQ2tV
UmdnIWdxQW5QTUZwTzAyek1lSUtCTgp6OHpaQXBsY2hSUmtCT1VPTFNES2pxUWBWVkwmM3EjOzVr
eDF0Yn4jQShwdyEpTTg4WGRtRXtELXZwTWl8IXFCTHYKejtJTTExRHc0JkU4eUYtSCZWbHYqZks5
OW10U2xiZUg+KTVsUDdvMUxQQFlrWTxoRVQ2M0BeKjNBejlxUiNGV0JQCno/MXlsaGdTZGRnLUUp
KFdFRG0mTj10KCQtPGhCPlVtZHghKUF3PThHZlF3QF5QKH1sI2FXdGhnakFrRGVqP3ByTwp6aURr
NSlicmBMRU15cTV7eUpFRFJHVEx8cHdtMyZ5dkA5SD4mM3NARllQOWRPVjY7T3grRGl1M2pINSNi
M0lqY0sKemtpWVZXRWR2OWBPMyskPihYb30kMGpKU1h4WTZvKXcwYSZMIzBHVS1OMn0pbnVieE0l
V1lqQTgxSXJ2SHpMbUVRClQ+UEdfQzJRenJPYG5qeGdOQHhOQUUlKH5PCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFn
ZXMvY3Jvc3MtZmFkZS1ibGVuZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1ibGVuZGluZy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFhNDE4YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMTAwKSBzaXplIDIwMHgxMDAgW2JnY29sb3I9IzAwMDAwMF0KKyAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24tZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
aW52YWxpZGF0aW9uLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTgzNTFhMDEwOGRmYTBiNmZm
MGQ3NWU4MjU0ZGI4OTI1YTEyODNjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDA5Mwp6Y21l
SE9YSC0rJHdrREJ8M0pRVj5rfCt1KU47dz5RTmZaQFM1SlpuNE5JPEZfcyhfKUlmTD42ZjFYUCt4
IVYjNSYKejVRPDJzMj8kYkA1JkB+OTNXT1IkND12I2EteWA5P0FNZkEwVzR0bClocnIleiZvJFNh
LX43SjBfNmlaRSo5YFV1Cno5djAteztAV2ZCQFBaaV4qRGYjQDd0biZBbXdEd0N7RS0qKTxDTzEz
M3QjKHRqYHByVDU4UyF6Pj5ib3BISnl8LQp6SFNFPEw+e2FhNGxwSXdaP2UxIS1ZR15RakQqeWlU
KmgoYlJpbk5RcXpVZ0lzZVh5eXdyPDA0REJOdnhIQW5mTFYKelluIVBVcXNLOGRaenhqQmQ3cHNa
eSpMa3Q4QH5GbGFqeGQyT19xfnRNTW4pJi1uLXY8UmVQTCokbThwZF53Z15ICnpvOCF9NDw9ZnI7
KmZaJClvPzVaSEU3P3p2ODcmX3hLJlNqfUVPJXA5MzlXMmtidypRZVl5XzZKZGYmMjVPaUBfdQp6
an5nYTZSVTJQTSMwS1U4RmUhY2NqZUV3QztvP19oNFdQbnA5fE5jYjN3eHomLUYjO30yZUtJVT9Y
VGlAQDAqbloKejZKRHgqSVd9fVYmRT9KeVUodnlpMnhfWGJZRV9ld2szfE56MExXUngoPmA9NERx
MUdOPjMzRD1EfWdHJG4pNnkkCnppPWk0eEVgdGt1eHwmMTlNJng4T3BEUlNfV0wtMjw5Q2YoKGFy
ZzJwJG1qOUFQMlMleENzTUZ1QkdLLXo0cWE7cgp6ZSUyNHRlQ1FRTD00JF44dXtucjhTRGZsKXAq
RWJaaWE2aE5KWkdPUWVyKDNxQzVodHJEKUlLSXtVQFozbSlxVVUKelFFX3UyMys7K3tNUSk9a25t
KjZOezlmXzklSSQ/PWlmS0llbHljM3xeM19YPXJUOSkjK3pZOzhSbFNUOzlZYG54CnpQaDBZU0hY
ODdKY0l1T0tiby0qIWJGRXQ+KG4hO0xuZCZjbypDRCRNJnAoUWhheVU1e2NZZ1FYU04yfiV0UWQo
Twp6SShGcjR0QmRjPWZSN3AtKzl6S21QXjFqfXp1TjNBaEtWbShlSm94Y1R1MWt2PSFfe3A1TFEh
Xi1nVFcpNyY9azwKelFTX0IwXjE8REE9XmpKc0M4SF5sP3BaP28qQlFAN145XkIrLSVLN3w/fGgm
fWo9aG4lQGohXzkrc2x+fkBja0NNCnpPUzVOVEUyckhBT35ORnE1LVdieEh9Xy1ySEg2JGhxbkN4
ZyhOc0hxcVNkSCUlQXZVOCsweXlpZ1I4TzFgailBTAp6PEhvT19ZMG1lVTNkITtNSig/b195cmJD
M2hjMFdoOSRHOG0kMH5UcyM4Z1F2VD97QHRPSGQpYColV3lgeV8tUUkKenZeaCtyRF9jJkx3Wilh
YiRxIyZxQkZRYzUjKFdTeF5mOH4xa0dSRHp8TEtrV3BIfldlT31LV1FhS0R6ZyExSUUtCno/X1da
fVBqaypqcHQ5YERWQD4xKkooRzlDNV9lekRIU0FXJSg/KEh0O2NqJFRsVTswbEcjNV5MTy1Sekty
eGV1eAp6O0RzSGtaMUdXJE5LPCgqQjlJcGhKMlEyRjFreW5sZ35WeC0/NkpEO2NTfEduWmVAe3Q2
fEFISVd4YHFRN34rVGEKenpPZk9ja2JuOUhaPkVmM043WXw4emoxTWF4aGBLZ2NoZXQwPjljdjc4
VzZ4WUo3NlQ2OTZmY2J3SDZ8OStXUHdVCnpteGxLJnRzQiV0QV9RSVZGQ1NySFdMZlplazJ8d3d2
IXxKIy1sd3FOKlZXUihkMFdsUVRAdiFIcmw7a2xKeH05KAp6LTBsdjR7PyV3O0tyPXxUK3QqbU8+
OytaUjhCRypZKFNEKW5nUWwkcUd9aT52SG1vY19GPVF8X2diTSlWPGAtZjkKejApXlR0RF4+SVZf
Z312Kk17JGRac0JgYlFWaDBwN2pPcWRKeEZSTX12fjZKUGteaFNVM0FrczJESEs8JDJZPSleCnoz
dm07RTVLNEpFZjFkdjNeRGkmbXVwdlFFVHR7MnNLSzYyRXhkMSNQMDFkPGlfV0NNMjFXJHNrclkz
c1dQbTFgNQp6Z2FHSGNxIyghR2FqPHBlNXNTcXhgTVVwQ1JEUjglMUJDKHR4TUR5JUNkZXhVM2Y2
WjdtYTZURGcpfSVWTTJEKm0KendQUylWJWgwbnlHRjRiellATHQwY2BuUjdRTmo5OE1mez4hKn45
Zl5uTFhWbEtGLT95diRvcDdEXyoxdTxmYVRnCnpNQFc+dDNNS0tiNHhXK1BYaTNWKD5IXzZreXU0
Pz8wNndwTHduYGArXik+IzhoRjk3VlpGbn1OeVRFemdnbUhEcAp6UWc/Q1Z0Tnt9amhrOHFWREQk
SFlufj4kNDR0VGxpJUYxdlVQUXkzNk16PFA/YFAyT19aQn1fQitnTGdsKlVfX3YKejlVNjlXYior
JXBeVC13a1ZmJDhfMD9RViVoUDxuWllifXZZWitvUyplRSZXSUw2azJBVTZJLW1uZXpOZiskbkhw
Cnp1OHBVMl5YcV96LUBeV0tEPSNYMU1ecFV0aiY/VGNUVjIpOVMoTERMX18yQFE5c0FXYjc/fENn
XnRRNSEwKW0+dAp6KEpZOUtYQkk/fnpeSXZCU1ctSyFeUDwmZmUmajM4a0p8c2xjK1E2JSk9X1JV
QT4+WE85R2p7ZXdFUTVfTntYPk8KenVvTUBEVGQxenFsYGBvK0UxWDtRSiFSdilNQUFGaj9zc0l9
Pkx0ZGc3cXdufmluNUlBQnc7fiZYd1VDfVkkbzNGCnpyKXUxUExtP0dXamp6cVN2UjhuXlJROEk7
R0VCNERHRTlvJTxLdl5UWExTMnw9SWd7c3RweDFaQmEqeE4yUDB1Iwp6M0JvaX4kRXtwIVE5TE44
dXN5TChWIUd5REt0TV5WKWBNXlExXnQhSDVFZTNpaCp+ZlUzO1VHYnZ8TlpTZXIwVDMKejdiWWFw
UXhocW51MjhvNHhkWGtqVm4+PjV6QkFXI2tpbCF5eVNmd0B3OFc+c1oqYCYlQigzVEZfSzByYTt0
V0tHCnpvWGJTe1Q5UkNHQVVnfncxdG9LeWtxKWRDV3kpckE/YjB7S2g1MF49KVhkeUxebmh9dDBX
emsoTnlzJV9GMytUeQp6U343LXFFclR5UG1xWXNYMFJpUU5vWVk/K1g0ZCMlbFlrTTdIcWtfZiZs
YlREdER8TTNfOEw+ODZfKW9ySD1sSCQKejEqTmArdGx9fkRran02MlpjRClTMHU0NWhaO0I7RjBf
Umh5ITVJJnl0T2dFS29hYSFNTEd4NWBsNCFNJHR+azdyCnp0UDcmYCRGNkJFYCV1UXBtMGt4eTB1
IWhSVEdfQj91cT47ek9idTx4TGlJJXpianRGXjB1Z25xNipEIXJUbWhPewp6QH4ySHBwdz5QMD44
fi05VnxvdGJiK24zMmRQamxnal9MTyZPI3RWa0olaUtmQlhXPks2I0xIRUQ+cUNTbG8odXwKejRz
ejdxYHw7I2h6c2xrbmBnbktYQnxhNyhnYE5oZ1NWN2w3V2FnQmYyMHtLbT4oNyh1b2htXmVQe0NG
Y3cqJWlKCno3TmY0eiVaUlM9WSkzZyVeRlkkcWlwaDJUN3FYLUZ3Mld8QypVQ2ImUEUqbVJkMzJg
cGxtVCZhJGlnJENPXzVjaAp6alMtY05iakpiQVl1JGpaS1BuUCFKMjZlWXIjIW08NDhuY1lKKnJ6
RV91bGdtUi1WTnpOIUxTQCpRTiorSV9ea3MKekkzIWB5RX50T3V7dzVgREs9aWtPWWxnJmA2TTxC
VGRFSVVBRTgrVy1sN1ghUTRxbyRTVyRBdXVOVndCQU48T3M9CnpCSWh0YVkwO052d0llJWoyQkZF
VF4ycXRVV0F1bDV7bVlyam4lSik5QVRrO2M1eztibShfe0g3KHhuR2ZuTS02YQp6QXpBeVR4X2c/
REdQR3gleXoma3tGbTBVZkprdT5sTyhOVyNjZ3A9dlcjTCZRPjBEXjBMQGNTdXZuV3pSRzNIKFoK
ej01fHRwYGt+JHJfK0BxWlg8cXVjWSt2bTs3VzNGQDNtRC07VWg2IyE5NFJTd19XIXgrPmlOQVdI
M1ghM1JlZkJYCnpwNDFncHY1PnFDIypvU2xBKX5AeW01dDVManVQYGpkaSMmSiRJTlpnRn58O2VP
cSU0aG8pK3dDKFpyPl8rdnghUwp6TmYmS0RAUWg0JTdzJTh4MVdtNn1afEtSWWV8U2R8N1FRSEh3
NUZfbDcmKWYwOVkzem5ScS1UQ0tuYTRyN1R6bGcKeiF0fVZmeXtedUZjdDdfbXsjRjRULVRae0BN
PkBYfE1SOE5ieGpDeFlYSlVkJGx4PXRyTyVhPm9ufVJVUHR7cXI0CnpWeV9SdV5XRj9QXllCNSZE
OVUoTGpCSUM1Pio7az5sYVFreDd1ZUYhVXBDN19Ee25IXkFidkJ3PDJTYD1keGBYfQp6djNgXyNT
SG4xXylMNEQ4P3UqKy1Edj9iPDxRdWw5Y31BRWRFclljTlVEdU9fN2JHN3Zaal49eEs7JjRKcXRw
UEwKejE5fWhGTSg1WGsqTSVjMjAwQ1htXzcwMU8rcnM7KjVucVl5c1Q9PT5tV1JCQ0FRMmJ4aHc8
MzZkWUtfUSk5e3cpCnoobXg9d0BMfXFYVDJ3LUFTc2VXcUE3X1RsNns7aDElaWE8I1lvYUd5LUh+
fFJQPTckT2kydn5DaCVlUWY0VTxFYwp6NmorSD8wcyZpcS1iPDcxYFFMSmVAUXs5MDVWWEs2S189
XlNIYl5waip6K05+PSN8WDNNb3pUOCt0KGM5U0FAJE8KektXZFNKZjlJUiEoU2VFPlRHN1ZyQEk0
WHdEV3JWbVhRV0soaylXMy0xQU1Za0JQPypAb2ROeGkjMnVrZlZjUHB4CnpUQjs+VEQwWCg1Q3BK
WUdISX5iKV49M0NsPn1NeHtYfn5HSlNqeSpjSzdWNUtIYDRGJUxhZHZPZDZtOWBeKjI8YAp6e0Zh
YDl0OVFHa0tLek5yR3R3OEN4cDI1a09NbV5RMFM8OFQ7QTVxVWJrMF9iWFFWTGtXIzhWQSUtdXFi
VzxTV1IKemVDdTJhJUBtN09PVSo+WkRTTmR5MF8haWFaK1FUYTllTiZqSjU1KiszYUpkPWEtZ1Ir
KnY5UXZOVm42d0oyQmZ4Cnp2PD1AdlNCR2EpVVZSayRhS1J6I3M1VGFQXyNZM1E1UXxNZ2BOaztk
QE1vKnxYbTJsOHE+QzRMO31xRG5nMmR9Ugp6I05Tdm9TaiRTR2pgLUZ5bDJmUD9qY2BKJXN1TCp5
fDhlYH5IfnRHa157dVV+e0JYKnBManp9cHczSkNESzRTXmkKejhFbjErJEJJN3trM31JQyk2O3xm
NVd+ezMyRyl5VHJVeVNpTXkrS2p1b3E8TyNRbGI2V09rQEplYjVofnMqQFJMCnpFWUxsVE98eURY
ZkgyeCFfbUFvIUZoQEZVR1UpY0hMeXJEKE5LPkxqcipBWGRWWDViO2d5K0YpVj5nWFh1cG1GMQp6
dXd9SmgjaFA5YzFaN0laX3MocVR4NUxoP2dlKTh2UTNVaHRseyZiWiVgZ0lWUHcjUUdRX1V3JFEl
amBTMWFNcFEKenNZSS1PVH08QHVuVDxEdmgyfTN+cFkoeEN1Tk5fRShCcSNxWGFhXm9tIzRjYFpY
R1ZJcWshYlchZXc4aHFHMHd0CnpjfGwhQHREMDwhaFltMDsmVWxTfnw3JXx6N0ljYV4mZXx3Uyk9
OVhtOUskQnJCKiFnMDRBLUdoTWpiZ3RJQSVPbgp6XzA/bE4rTTx+WkNIWVQ9NT0qKVFENTNTMG48
SStWRnk1Z0JnaWJRN3B6QHYhM3o3V0g5NVJpZU1AR0tCTlFZKUEKejNSNEI8VTFeVmNFQlpXSS1Q
ZUAhe3xEbjhVQH41Sm5JQVIwQ2t4YEdTa0dKUVlTWmlMbyFkQE5Ud248Y1M3Xlh+Cno9Q0JEdnhv
Zld2LW9gUn57U31fNyVrfiFjRXorMjVQRVJAKntTVDUzLVhpSH5RYz48JU1NVl8xQ3hje1pSV2Jh
Ugp6TWMqSmZZKTwhbC0rUmQmR1ZMWjJua2dPfDwzSVQkR2o2bWV5NXA5QERLSnkxN1ZZZys3fHFV
WDhlZFJVU15+RCgKel5pOTtxJDtmPC1BQTltZG4qUHk0VjR9UDE5SGNiRG9OKU8xM2FmRj9pe15l
MGdPLWxBcSNNK3x0KEhNfkZzNWNyCnp2KlFDI3lrIWEmWHtFKjcmbHVNZFo3anlOdTV1bF5ie0hL
clFfYFo9IU5ANHdyMSFmYiF6Nmw0aGBqfGdkcHFUUwp6Y3RTRjticlApNHVgY1Y4czkzM3FiM15q
e293NW5iX302MGczdj5KPVooa0xRQH1SY2Jme2pMaWlEREI3LThZRHcKej8wbClZQ3x1NHl3Pioh
MilzV2EjdXNrZV5TQH18THlCS1o0MHgzN3t1UyVsPnVgfXoqI05oVzIkTXIjbnVVNz0jCnokTT55
S0RPVHFMYXAtKUk/bWBCSEtHRCp0d19UVX5CMyhIXjY/M1Q4O3V2SWVidmVlYit9OzdQNUpYeCkk
MENSWgp6IzEwZz8mPjdDKzdtPTxScHZyQmkpPj5sNCMlVDJaUl9ZMT1CP3lrbFkoNSVCJj91Tio7
SEAzcWtsPER+cT1uZTUKejR4YWJRal5ES08lLXZ7NkVrUSl8R3RBMCNeQCopMHdESWJ9OWcjUF5W
RWJPa2FOciNCVWg3RTIxVT4hQFYkLUJyCnp7IS1JVyU3SkFjPkQyWXV6ZCY/PkY9QENlWms4cUxY
KSU/SjYwd0E1ajR6OWQhOXptbipoU2htfDU0MTdDcldmTAp6fExROTM7aF9DYTBvSFY+Xl4jPkRi
VUQhZ25RM2pKZmY+YldzJkQ1bndDO3FHMWtjK2lvMFdXZVViSD1IO1RleSEKekheI2hCUmdrXjNA
UXE7aiklcjxkP059R18hQikzcCUpOCNPTjFJKE9IXnFLKy1+NWRLd2ZoYz5NeThNQHsxQ2RtCnpR
KikyWUpRY2MjcWY4KUQjI18/ISt0JHExfDh6P0AkNDtTfGVCUCZTcTJ8YG5IUEFkIVp7MUQlO2hM
fTI/YzBhJgp6a3Q8WVdYLTdpMXdzLTtyKk9qbnJvYmZhcENKRm5eLUBtd2h2Y2F6fkF1KkFaY19Y
OHpJYVFtPU5ZNzxFRFJ2O0sKejBvZHgtekx+YzkmNzlFNjFZYnVwVDM2ZkJYMHNaKEcrS3gmRS1K
SkotTSome0RnUTJ4MmArYlpwdXtpMSpYeWIhCnpXZn1NSVNaZ0Y1Sk5faj8pT34+UEZuN35uZkRO
M0pYT3QzIUtMQDVpdzV+d2xRI0YwYU9Bc2NWI241b0xNTWZCSQp6a3IwTCh3I0pANExudTd8ayR+
JTsrNCVGTVI8KTFHbnZjJVJoVFh3e2Z5WjZmJl5xMUFHZTwxSGl3TyZWZXN6cXsKeiFpb2FZKVJy
VWBkJTA/PjRmR2puRV5KNnRHK3w4NEFwUTEpanIzTDVwQC0wTXk2ITZuOFM2aHh1ZlQ7dCl4QDVX
CnpRPiljNGRPSlAkZlloSWkjY1g9NDZmNV9aLUFeeW51MH5RZnlvLUJoMylXSGtQeGNsdlhfREJl
an0/bnVTMDQjdAp6VmNAbiU3bzJBVl9DciRMPEl9PHp1fUkhTHIrMXhid1koSSVpPzFpJnpPRHpZ
dERsbWJ1TWJHaDU3UmlwZE12SzgKelNDN3ZAV3FxbjwmPENeTFRZRTdWaFZOMFpGOHUpdW9+eXg/
bVheKkBRJiEoViN6dlNUTXF3KEpKNSE1TlJ1M2N8CnpXeXViN1AlcVRvOGFtVVViJFR5ZUN3UkY0
Z1dvaER1LWd3UDdfMWJ+cD5PK2dBMWdOOHs1S15gcCZ0Zi1Ca1ctIQp6Vnk0aFhVNjxJb2BDQjBe
PFlvbT1KekYteEMofVo+XlBeYjs0PnEtaTB4fVVvdjYkXzRBT3ZhKDFxaiRsVVMjelMKelh7OH1S
R3JCayEhZDlmVCVCblJsP3kqRGNLX1NxKTA5dUZgajQ7bDJ2NmNEVyM8RXZ1SjVUXiU4MXA0WlJm
N2E7CnpYQll5dGdhUiV7cldtbTIlNDUjdXp4c3gpWWxjRTYhN2xkfmJedXgyNmVfNF88STZWZDBe
bTcqKTxjQEBVS01sVgp6cTB6YHxFVkpPVlgoNFpHbnEqaUpIP0BFUVBMJjZAdXA3YSpPeTUyZzJl
Nz50V0tKQkdzSG52QGB6WndZVHdFUSsKemo/YFRNJillRGdpfGg9PEdKUnxQTm9IckA8ZTQ7MVAm
aCRoNzYlNkBvYnV1M2EwKWoraGlKaFpeI01hVWxGU3YjCno9fkRuZVBWPmV1I180RTlJQmg7Tz9M
V050REg4a3A0aX1mRyVocT1SSVF0O1o9OCZedj1EYkdXQz1vfUEhMmZZMgp6OzswV3RlS19qRlE2
Ry1fYU1YdlJLM25KUG9QI21XWTJuczZCaipUSmdtWil7IXUoRGc9VW47IWB3ezlhR1AmSUsKWHNA
WUd9REQoZkB4R3JEM2J8TDR5P1cyREt2blp5RwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
aW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUgNzg0eDU4MAorICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1l
eHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I0ZTIzOTZjNmQxZTc3MmFlZWUzYjM4ZGUzYTUxM2Y2
YjRkYWNlZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE2MDcKemNtZUhOZUs/ZnE4aD5YRGhN
e0pWJCNWM0RlOCVMZlEwYXsoWUpIfEhgQW0kTyg4eCFyR3QwfWFKdDlLd3MhNzxVCnpIQSQ/bV58
XzF7YTwtI1JFUStnKTVeSUlvPG08JEEtb25tdlVGWG05JitjYC1mNCRmSFQralg3X3gqZEg9bDhx
cwp6PVh4KUF4SCV+K2V4ZTlMa24lcH5KcUk5MjI4Sk1fSCgzckY7aGpsfSMyIVg1T3opV0I2UmhC
ez0tM0Z6JUVIenIKekcmdDBmd1BsO1JXciVnS0hIJjN3ODUocGZseSVKMyglUkMoUEItKjJ3dSZ+
fShhfmR7cWEqQVEjUitBSHZtaHZyCnprYkgxM3RsTDlQKCRCaDRIazQqfW9UZ3haQkl7SSRTQnp0
QmI9Y3doUE1fYmwpQCpkWFVLcnVXWXVCNUlGT3o/bwp6Izw2UVZgQDZqVGcxcGt4RkYxZUNSJkd9
ZG4hbFQoPDEodkxuUm5nRil4Yi1wWm13WilWYmEhTWJVMmAzO2p+WTsKejhlXl42WEl9MVlFc0wk
Z1lKK2JHMGF9aEdpemkmdXpFYTw+P31WKUZ0fmZWVUlsVkBeSnY/VFRHZ3ZHTT8le297CnpMPSRW
bE87QGEyYiV1QDx1PkYzQ1E1RSVHbjdVelotT31rMj9KWGNGWSZkU2kyfkhma242Q1J4c0ZnTHNR
KXJRSQp6YkZsbGc3T31hPzdFTFFaZDY9aitZQGxEMVpJLXM5bjBiS2xEdWh7fkclTVpee2wlTld2
ZkVlMnU5dThiKDw2OHEKelpqWlVDJm98aDk5KGkjRD5pS0NgO1FHZWh3S3BRWXg0el9DJDIpWkRt
RDJQWk08LSswUzBgQSFvRmhnbW8zIStQCnpKYSh8dUdNcWdeay01TWQ+N0lEJmt6Sk49Q0E2fFVH
V35NRzw3PzhtZEUzbkZyK2VTbEh9KHg9VTZ5fW9aNyhxRAp6TytYfSNiMkN3P3VnK3pRJEUmb3tk
KjFxSCtaYEdoODE1fDh6MU1veWJDLTs+THNFdVRoQG1MVUtgRHFBKzxJcjsKek1Pe05AfEUoQHwl
KXhVTkhvZTtvRk1sKGs8ck1lTnole2kyPk5DQy13WD5wa2RDeFpXVyZGNDx4dmhyKCNCPF9ACnoj
SWdEY1JpMCktWXx3WjdRJHlTOFVSfkZXRDVqNy1DOEA4PG9kWn11eUMtP30jY216Ul52WVJgcjk4
NUBHUCZ1RAp6aW5taHpVMih2P2FrISM7R1FBfjdfKUV2Yj1Pd2ZVPTtfViYjZCUoeD9YTmQ9eHBh
KygpQ3lCKTlOTzB9V1NUcXIKeistVEJzJX11cF4pOSpuc2tVTl8rS0p2bmsoST1uUkBHdCtOfEow
RjclJVhITlRJZSVPP25aSHdXc2BraTRKUmM/CnpGd29RO0dSYDttOEVAIyRzPXJ4Jns+cjVSZ1Z+
KUtjVF9iaCVBM21MNTBPbyhaVSYjK1VtND5MJCF2O24lYkF3Rgp6SlZwREchYzhlUHk+T31jKnhe
aWY2R2hIN3JHT2x6ZWN3QWpIN25iR1grb3lqdEppO285VDtzcFo1JW5LeHBaJmIKell9O3BZMFVG
Slpxc3swQW1hKVNNVyEhK3g8TGRAQz84dkpAdiRoV2VtK1h1UHMheXsmUjZHITQ9QnJJO1NYPG5h
Cnp8TDlLN3YoZSFNTipzU3R1MUh0MHg4PlZGM2taVXRlUzNCdmozWjF1RWwofURQZkxGNiZxd000
Y1hQJj9aTiRGNgp6dDs7cD5IST8pS18xMUNUbyRaRDttdjZfe0h8KjhneF5RKUJTRzxIZj9UQTdJ
QjhnMGU1Zm47ZlEwTVF7N3VOYHIKenErPGwpZHBaQENaMlVOM2Q4VXt9Qm8wNWd5YC1+aGhZZ2Ni
NUBjM1pgN251bDRUVG1nUDZ8X2lnJE9TT2ZqNDVICnpLOCFTNz59VGo7aiNuWjsoRGBsQkg/JW9O
ZnQ8PFUmISNPJF9pQHJaREB8MHg1dVBma0lLRXBuJDRTXjZVTT54YAp6eGZCKG11Z359SXtiTlA2
blRlbyZreV5BNT1gRExIR2w3dmFKMG89ZTcoaGZpRmspdHQwZUU/YGp0ViNBUlJkTyQKekclOEhq
YXNwQyh0d18lRmNPTCsoWVJUa0dOYEB8ZyR7QVR3TjJ3cUp1PHwzM0klTXpEUnVjWFlRdjtEMCgk
fkVlCnp1cmtCb08/bkFIbSpgSSpSRSlEVjBWX0l6NWNTalBKKiFDfUQzJnwpYmZ6a082LShARXJs
Qy1zJE9nZG89d1NxaAp6WEJCODE5KD96RkJ0ODZhdHNWKUNVdlRhTE5jSnk0JkVsb3xrTWJZWGZ1
Y2pjdDF3VUxffmJoI0FVais9N19uRTAKemFzJXsmaGVBakFSaU1nVCFuRGNCO2h9PDU+YitIfGFN
JUBmS25LTkhuNk51eyphOWVwVkZIJWsxcmBKTERwWXViCnpmfnxwNlZ2bzhhPXZffUFrYTMpZExU
PTFaPCo0eFVjUWNpVHBTPmR7NGhvbGttbGR7c0ZWJCtYeks4KkgwIzJ6KQp6aHFoM3V1Kj9wM0Fq
bWlATlBOIWZtJk5oSF9yYEohaEBUNmJIPG9Eez1ZK28rQyhLSjtqeUA3SzNJR1lHJlIxZEcKekV0
bUgqNkRaZFRHM188fWJ0ajw0YFJZX1N6YzRCYj1tVSNUPSRoaHJfZj5fIWRQTT0mbWtOc2ZeWjxj
MmhMT1VnCno9WVlfUCojeUVId2xOKTArTilVMFRVME95MWpZNDF7eD45ezN3PzEkbEsqflREdjx3
UHFEKyNeTyhpVFRPQmptYAp6WD1QeX15Q14mU1I/TChKZz9KKlUrVVhLflgtcHpERGxHVTExNHVX
T05XN0kyVyh9ayhLcTE/bVQlYlZsej5KdUYKeiNYIV9IU2g4YjdYI2dOTVFPTXxwa0VfJm92a3tF
QXRxbFljUTxFaCopQX4qVnpUTDJuYH17bzZPJjF1I05OVmpOCnowSjJDN3BZRDVmQVVyMDRhRz49
RTlebCZ4TDM2ZDZmTGpBWSV0KXVTMmtAUFhfNVYwRDckNyhfRTR2flEtISZgTAp6ZmdoKzlGMlQ4
R2c9WVYzRyg0RUZ4TSh6NDE4X2NwTkU2ZERKPU8hSGV9WTJKdFMoeXVOUGlFNGUlVF9gSnswanEK
eig1bURLcG9mTnVMX0lZKksjfT99SDhjKDExO2BDe04mVzI+c21RfHIjKV5UNnBtJV42cmw2MlFh
dzRFZCloTldLCnozO0BMZUxMeGFFRGdsdklWTiZTKEJwel4jLUlxSEFObjNLSHohWE9NVFY/P3px
IUlgIWlaVmNDNWQ9YilkVVpiRgp6N2ByVVRBO0JUUmNMeyFRYTR4fj02PDNgOVEtbC1VUHV6bmJn
fnx7QTBeb3Y3IWZPPH5Ze00mQXl0djJ2OWxRbV4Ka3lKR3lKO0xtJF5BfnJBO1ghNV8oX31lWSlQ
aWJmJChgYD93IV9sUHcwdzZeV2c4JT5rCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1w
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Ny
b3NzLWZhZGUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lNGExNzNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCwxMCkgc2l6ZSA3ODR4NTgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMCkgc2l6
ZSAxMDB4MTAwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEwKSBzaXplIDEwMHgx
MDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwyMjApIHNpemUgMTAweDEwMApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUt
c2l6aW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdl
cy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5ZTVmZTliYTBm
YzZjZTJjNTI5OWUxMjNlNWE5NTFjOWI5MDE2MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE1
NDIKemNtZUkyZHB1T0A4cHFkfGk1YUdpT2ZGP0okZ0s7NTZtblVTT0NeYGNiX3MoKWM1YShkbEVX
SStGODUzSlI/NmsxCnpsTn44MENuOEtYdmQ9a2tBfCQoVE5GUG04dmtQKDNibHk3Y2RGUE13JE44
JklwTDVweTxNVmxEdEBuTjItI3BMcgp6ZVYoO3NkYmx+U2x3Qmk+QWpyeXtFPDUlajIkN0I7UW9k
d3FVQDFNNjVmQTx0dktAV2RWRiR2KTRramtXQVltYjwKejVoaHpyRUYmeUs4Q3ktYWdqekJ9RWta
K0JFSGc4VWExIz9vMikpQ3AyJnwkSjw+Mjc0KTRfcjZrcXtSVjYmO1FzCnokJUdUJDt8QipsWHJo
UFZXJVpOVVIqe01uK1hJRU1FSEFkaGA1T25uWTNjS1N3eHZuUzw9bXkxe2lRd1kxWm5qJAp6cXVG
cyotR19nWnYwYWooanZrOVVUQ31vPDdQNUhkbCh5QEZfVnd+fW9BPkJANXBUWH05YmJCM3NzRDYz
c0ItQiQKenwzUjl1SlorenNkdzF0QCpFRFZYNihMQzdWWi11KUo9eHpZQDZ2TmQ8cDtTKFVTNUN3
bH0xbEFgJGdQJXR0ZjEkCnpeYXJZPFBAVWRoWX5IMGs9fm8lR3wyfHUzVm1SfDxuVGRJNHBLR0ZU
SEhvNGJYJVFGM25hcyk2YDd2VSVJYSo1VAp6bDxCcyYrVER5PW9RYXh2ejRGMGI0c0JYcj97Ymsq
d3NvIUpVZ0lZJE09b19pc0ZgQHxSZERASiNrMSQ/byt7K1YKemwmWlBpT1UtKCRZNTlsdm9FYz4z
d3EzQWwreEYoTmM7NzhrUnB4Mi1lZTEzJj5heyg2IUh6bTMycm4pMUdoQyZzCnp6VjI0Ml9mQG0j
czJNcThYNmVrSlY5dWtjekc4RjdXOzRJblF2IzE0TlBMcy1gR3d0MWIxaUtuVn0rKz5ycCNAdAp6
NFRzWkZRUU1wT2dzZGs9aWlHP3xqb2hLUmZGZGlPdjlhbUNPRkJQeTlybTsleTRZdnJzazAwdzNo
aypPckQwdCkKemk+fUlRK1BmfGVNNnRiKGE0bStuOEp6eDZwemZVZk9ZbTNDTENXKDErfiRSZXg4
O3Y/TkFobTFLR0VHJl59dGlgCnpYVT1SM1NFK1B1ZFEhLXJzJHdVJS1oNlV5WkFgNWsqO0FERHFg
QFU5ezRlZXFvK0MrSFcodkdZbVhxWkFPXmFYWAp6OSRNdX5aTWg7MFQzakQzPndaRnx2IXZzR0A3
PjNCaWhzcXYraHwpYD8keWB4VHo5fkFmWGB+fiRlT3FCUUMldTkKemFxdXJ8VSReSWNtZ1RGNTkm
LUI5aGNveXl8SlpMbEIyKFZfeDRfQU4tWHp4PENGdGFKcz8wbTRZNjt1VCtISGZJCno7IWNIQmtG
Xmk3XypFd1V7TU56M21KMUNqI3JiM1UzcFJOKk5eMERPX0olWWNAYGxDPlZjK2gkJlVRekx4LW83
Zwp6dVVETFlzZCF2Ml8wLWkobmZiTSQteFJvU2tjflNfNEp4N1R5eWh9JFJLRzE+SyltNUs5NUBw
ZG9NYCFhZWY7ZCYKemNSJXh1dyhnUy1Rc2RvQUcqWVFGT1BaJENydmAyMHVPOEYxRV5vcEx3fmQ5
Pip+RW1qV1pVfUdqPEptYkd6aEtvCnp3TD15Q0hBOWJ7UE4mTnlTMW42bCl7ITBWezl+e3dnM3l0
akpHT2YjNjlsNnN2MWRrQkFOTzRFRj0tbmhIMVotRAp6YShCbVJ3UWNrM21EMVJeVSFnK2dxYD10
dnUxIUAwRlV+R2FsKTkqZVZoQk5zTHtefXE3KkI8fkpTQ1RRR0klPyoKekEpTlBlcyZ0WGdod25k
S0M9OGQ5P2sofHI+LWdgeEszYyZnQH1LM0IpREc+JWNULUtsRGJNb3I/YjJ0Km16KldNCnpjdXJa
QT5rWDxsKGlaeiN1JHFCI2hzYUw5YDtJYypkQmBhTHpKJXt3RFFUQSpZaUBzMztOd31JUSZqMGsl
VVZ1fQp6YndQYzIkUyohUnM9dz1tYUJLKWYpLV44YE1YQE5vdmEwbWFaJUkxaGpxQ045Kno9QGsr
TWxFYVl4IXxMRDkjJEIKekt4WiZzRzFoXig0JFoyPCVWRyRgaTt3Y3pAS2wjYilQbD1hVXB0NzhQ
YFFiVEhOR3YoNlo7Mk5BKC14fjR1ZU4lCnpUdE97M1dIJGkpSkZ8KmBVVjZyKyFYdzxrMm0+I2l0
PkRJOTs4Km83JVl5OyZjViEwcEBTVGdaY3dePSs5Jil5Mwp6Jjs8SlM1Tk93YElTViYtMT1AS2ZT
JCF8fDRHcktTUUV6bTxoOHI2Sz9QfWNhei1UIUQwISl5MDVvKldLVyNYZFgKenFIeXA/IVNNN1Vr
QDE9JE1mI0VvdD89RlkkMWdRSTAmU2pANWpsM1lCSjFSQ0M1VkxCNzBXQjhoWClUcjMpdmJGCnpP
ZVc3PSF0eUo/V205PCZFY3hoITc4QTNNUGxlPTBDamZQQyZkO3E4bFk8fjdQYXNabnJqI1RzTyNv
VlQpZ3VyPAp6M2R2K3V5MWFVWWdyeW51MElAYzBsR3RfTkF4OTxfY1prVmBAIy0pXzApTiZWOypn
e1BtTH1mT20kMVlGc3NefVUKemdIKXZwNiZSPzdne18xb2VnaE54SDY8bGkzX3lmKTUrbDZne2d4
P1YyPnxFN0M2VypYbWs1c3tKa2RUV2ZZK2tgCnprI2EyKi0wODJsYjZBb15ebXg0cVZ8cnc8aDl2
MEIwMW5LdyN3bDxsdlFUMjZjTVdWTDBUbF53Nmx2ZUNCcHh9egp6UWNVYztYOX1FQzVsJWxLWlU2
QzllZW9FSVBQcDxBJWM/bUEzMShKKzhMZmh7PFIoR0N2dyhoMXZzd308WHNmZysKejhucyYtZGlq
MzJLUnRjRUxMP0E5ZE18byt0c15qazEwQUlTKms2Mio8cUZhNjFRPlpRdzlIWXdjJT1hb3FYaVR+
Cnp7UEJKUSkyamNLPnlYZWlhOEt3NFElRiUmS3kwViVCeFNNRm9DX0ZYWj92TnhiZyZBQGFpSE5Z
bCtsQzZLKHAkNAp6cD0zO045LV84cypibi1hQl8tfEJ1PSpfQUkwdipMUm96ekVWaUtYQUpqQyNa
SHRhQXNvP3UjU15vQGtSOEd3N2IKemVPUGN+IyhFfX1xcy1xM2VSQmpPSlQzfEAkYD0kVnllM1Yl
XnNMKHdWZioxcFNUTVJebTgxeD4+PFVJR3MmaXQlCnpOSW5YKD8yQ1AjTWopO1ckWXNMeFVJNHxm
JWBGZ0MwNk9UIVMrJEJlO2BIV35WKzhLVjwhbzMxU2ZLUG9uYGdsRQp6ZWdHO2pFKCRJUjl3e2lF
SzJqdlNyaHBlMGMlbDZkWip5PV9hOGJ3I3xJSz9wSld9dlRgODwoUSZBRHw5S2AwM3kKent1aDcl
eF9HPzEjcWdHJmp5R34zN3d8Pzdaeyl6KGtDVyowa08tJkckN2Y3OWVmfUAjQlVJXzR1QzA+UWVW
QnJQCk8mclYwVDlhcnN7OFVGJUZmUSRZQgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTRhMTczYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsMTApIHNpemUgNzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNp
emUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDExMCkgc2l6ZSAxMDB4
MTAwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjIwKSBzaXplIDEwMHgxMDAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRl
LXRpbGVkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdl
cy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTQ1ZTg1OWZiNDQ4
NzU5NWNlYTE3YWQyNDJiMGRkYzljYzEzMzdlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTYz
NQp6Y21lSE5TeSlybzdDcz9pM0lXMlRBYmIhUkxgOWhxJjxiSEhnVUJHR2g9Zl9GVmkqRlZNTSR0
SGdFQXdeWHAwNEYKeldSI1d9QV85Zm1penVWWXJHTngtNWQpTU0zPS1mKkVqZjkoNTR9RzBgZiM0
a2NsTz9FQDNzSDQqWiUqdHpMVm5RCnpVQGVOPWcjLVhWKVlpdUcxT1VKPjBLbiVkQioxQVloKUUz
UkpvWFcrSlA4M0lLPj1yQHFRZH5nTCYxaUR7ezhfNQp6YGF1U01kYjt8P3tzd3glZFVgPkl7eV9u
T2B1WVliIT8jcDl2blltSVNVQX5RU1lWdFlAeGhfemYmZF5FbWdHOGwKemNGME0zXkpQJFImMi13
fkdaTWxrQXo5fUdUP2lJTXpudH1HPylRM3FzQTBFRlZSQEskTDYwZ3V6RERweDh2YnppCnpnK0J5
TSkmeDs2dUhlN1Q3VlZNdFY/OVYjd3FJMyNTVz44ZVQtXm9VXnNaJWNaUDhlck0pa1J+N1U0QXt0
dEJxKQp6PUhsNGgkP2w+YFBwLWd4NmY4OEBBOzs2TT95JWNxalRJbE55U1ZnX0EqUkBLajxBVElC
eVI/YzZ5JXtLbUs4QVYKenhkdlV6KDxrcVFkSmh3JXJiYmhpaWdnUytgfFlEVkQtZ207WE4+Unhy
ME1IN1JCaV9BOCg8NUJJfGFNVjQ8QnA5Cno4cj0kPVZ1KEl9TFh4SmNAQSlaUEd3bXl+KWR7V0hL
JnZ7YD5hdFNRbEAobWd6MTtjMk4qZWtgU2I/MHd2JClqWAp6bTVlV2tVIU1hOzkrfjF+K3Nxbl4h
I3hrcGxvYGFFX3A0Uyg+fWpKZDU8K2okZzlgRmI/dnFxZ1A7Sz5odDxwT2UKekl3dH44RFZRNmd6
amV5NERiP0BMKkVgOVdwKiFVdjdJZUNxdEgtezYrdVN4Ym98UGp3Vl87SVRaIWBoQis0aGJaCnpu
TDJ3aGR3SFE9QHk1djhRYHZ7eiRIJUd0PHRtVDZFO3lVUVpPandYNiQxQjhXdHBTPTNJZStCditR
QHNEY2p2MAp6Mz87Wjt0VFAldHZOemBAVUJOb0c0PTJ7PnZ4OWw2dTVvcDB5PHxkZEVXSzRHc2tA
PTx4aWtHfCh0TEJCUkRwYSMKendCTF9xPWNmJnVXKCghUiRSYXx7bzJqJDRIYTxjQmE3PVVfaSN7
fSQ+NXxXbTc4JWdaVH52I2FeaDdtM1NvVUc8CnpLWmtUbytTIUBrRzJIdilfZXpRMWghRj0mJFIj
ZlFKI1crbz9GU2JFOCNfeyY8fl8xJm5Lfjk7I3FGeGNpJkJrTwp6VU9JYFczdFVLQ24wd2B8SDZ+
Y25eM1QpTEAwKX13SDZ2QmhKOWpkejsmdn4kPiRSS1U4dH08fTczMXdnZmVVM2kKelVKRVRsUzxP
R3hVZHFpRlM2QEF2ZXFUeml1Q34yNC1kI3dleylkMlg+PmQmdjBrflMyTHEzQilYRyE4YWsrfGZs
CnpnRER3Z2V+KE5ANEo3X0gkfG9PWFRXI3x+dip0KCE5c1l+VT07XnNvVCRDfG1mQjN4byNeVkp8
THBLMipJbSl2cgp6JjdGN2pxTiYwKWFYdHFZV1g2QGdEcnEyUTlUXlgoSlIwV0xvTXolcTl3JXM/
UWlRZExsU2ZKaT92RzUrczBrdm0KeldvJl87UkZJPmMte1cpdjAwWT1zbnpfY3A9bzRvNWlecFdY
YkRyPUcqVUlULVdqfDcjVlc8djk5am55P3E5fSM1CnpqS0xGUXJabD0yYkMpTGktOzlrMChARk1q
RUQ/YjVBJXhIdkVSbktQaClveFh6cDcqZ3dnSUZxNW1gKlUjSyFAagp6TXpWQmFhTyFYT0haWHNo
ZVB+NllKSyYhdGA4WCEtSFc5V0dHI3JvS298QEF0a1VZdXJoR0A1XjBCZ0c2bT9uUmsKemwoUmVs
Z0xmX1F5eiR9b18hOHNmZXBhI3MtSnYqb0FXOD5sdWxGcX1BWChRSSNkVkhhWkZlcUxASU1qZ1VD
TCtBCnp0UGRvLSRCNiQrbjd5KmJULTRFJF8mRTBtWE59T3k5eU1hPHFkZmJnNm1tU0JxaVhRJU1H
UyQ7Z2orZyhLOyV6dgp6bU58fko4bjJ+LSZYTTM4NDFpfStKYlB7eG1jYCY1K0xnSWgqZU5VcEZ2
aCtgQE42NTtDKHY3JVFfWHs+NW4zQXkKenhkZnBFb2gyeVpwbkQwckRuVi1heTlzNF5aRjlWfCFF
dVg0OS11TFBSYm97cXEpP3BPNjhoLXpkJCZJZXJHIUprCnpTP3I5KHl0QH1iTjhjYj44bEVpXmMz
Kkd2Ql5JT1pPUWkwUDBPX0F9OFVfeitJTW9MbFE4X0hAdHRKTjJXc1FhfQp6QGxBfHwtMWJAa3Nm
WTs2Q1U9PkU5Mj4pciVBN2Nfcm95R3pPZXQrX1dTJFlJQXQrVHVTbHhKS0FaUWNHY1Y8aVMKekom
bjxxNiFvK0x6bk9IWWdQK0B9TXRUVGFgU3hCeSsqVlVBe2FWTHR7eT8+OUQtNzd5MDtIUzdqPk03
SWp9NXA2CnpoO29oeF5PdXI5NTF2WURXNCRnblVnYiZ5Tjw5JiNkJThMdHdESUItdXB4XyZmcUxU
QjRzQzR0Zj1vS3MyNzhQRwp6Z2ZnZGhaNyZTdDh7KzUkTFIlKiZUfHprT3FTRDBNZih4Oyk3WGBS
bzx6V1FjOUU4RXxqJEF0bkxUdH1iWmJNOUAKekhQX35qbmxHe2JlWWh3SGFWWTFySDJYfTBIdVZU
cHJuXiFWQz0wYUBgViNIT0chI0lhbj8lP2sxUFROU2JXJXVBCnpfK1goczF0SWgkVTk9UzFJekI7
REdUeCojP00hUkxmcEZLUUtpbz5WZThxQytrOGVnVUNKP0dzK2p6TGRnTXhlWAp6bEoyZXhsOEdA
NHVJaUM7MXRmK3lOTGtHUGlRfHBkXlBpZlFJJSpiT1h9YD9TOGVUdWgmQ0tALTdsfiQwVDVOM0sK
endoamNYUHZoNT9JPF4+KDxwSikxNU1ob3FmcGAtVjZPaDZ9TCRaPygwY21qfWwlU3c3VXZ9ME8q
U0B0JVE9WDxWCnpucXF0OGY5MTFnRCZsNjF4MmMoPTxUaDE3cDR6bTJYRSU1Uk9mcUJtKilrOVFf
dU4+KHJiPCF9JXJjK0xYayVrcQp6QH4ocktzUklTKmI5PT44PlRscz5yc29eN0w3UUdxWDQrKEAw
MmIrZUp0KUE3RklHKGFnQE9TRCU3M1klSyVoWE4KelZFJDZRNExUeyVOcjZyWnIoWEpiPD83RTRw
TlJTM0UmdmM3YDB5X1BNOSt8QmZyUSo9aFl9UCVRMjBSTTFCRE1ICms8UkJzVV9Ye34qX0Y7Pl5E
bDtsfmNBaT99ezYhN2VTfip4Jm5mb1VHMlE7P1RtO2U5KAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3Nz
LWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMv
aW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVyIGF0ICgxOCwxMCkgc2l6ZSAxMDJ4MTAy
CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFw
eCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwxMjIpIHNpemUgMTAyeDEwMgorICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBzb2xp
ZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNpemUgMTAyeDEwMgorICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAw
MDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTNmMGJkYi4uZTg2MTYyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UXVhZC5jcHAKQEAgLTEwODAsNyArMTA4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRGYXN0UGF0aC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdz
LmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBmZDZkY2M5Li5mMjcyYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTggQEAKKzIw
MTEtMTEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlciAtd2Via2l0LWNyb3NzLWZhZGUuIE9ubHkgY3Jv
c3MtZmFkZXMgZW50aXJlbHkgY29tcG9zZWQgb2YgaW1hZ2VzIHdpbGwgcmVuZGVyIGZvciBub3cs
CisgICAgICAgIGNyb3NzLWZhZGVzIGludm9sdmluZyBnZW5lcmF0ZWQgaW1hZ2VzIGFyZSBub3Qg
eWV0IGltcGxlbWVudGVkLgorCisgICAgICAgIFJlb3JnYW5pemUgR2VuZXJhdGVkSW1hZ2UgdG8g
YmUgdGhlIGJhc2UgY2xhc3MgZm9yIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIGFuZCBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS4KKworICAgICAgICBBZGQgYSBwZW5kaW5nIHN0YXRlIHRvIENTU0lt
YWdlR2VuZXJhdG9yVmFsdWUsIHdoaWNoIGlzIHVzZWQgdG8gZW5hYmxlIHRoZSBwZW5kaW5nLWlt
YWdlcyBsb2FkaW5nCisgICAgICAgIG1lY2hhbmlzbSBmb3IgLXdlYmtpdC1jcm9zcy1mYWRlJ3Mg
c3ViLWltYWdlcy4gUmV3b3JrIHRoZSBsb2dpYyBpbiBDU1NTdHlsZVNlbGVjdG9yIHRvIHN1cHBv
cnQgcGVuZGluZworICAgICAgICBnZW5lcmF0ZWQgaW1hZ2VzLgorCisgICAgICAgIFRlc3RzOiBj
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sCisgICAgICAgICAgICAgICBj
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBjc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQ2FudmFzVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYW52YXNW
YWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjppc1BlbmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6c3ViaW1hZ2VJc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9hZFN1
YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKToKKyAgICAgICAgKiBjc3Mv
Q1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6On5DU1NDcm9z
c2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1NDcm9zc2ZhZGVW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlT2Jz
ZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgICogY3NzL0NTU0dy
YWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1ZTo6aW1h
Z2UpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NHcmFkaWVudFZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3Jh
ZGllbnRWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJh
dG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6
Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUlt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdlbmVyYXRlZE9yUGVu
ZGluZ0Zyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpsb2Fk
UGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmxvYWRQ
ZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdl
OjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZElt
YWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpk
cmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6
aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNl
cnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpzZXRSZWFkeSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdlbmVyYXRlZEltYWdlOjpHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6
OkdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6On5HZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6R2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UGVuZGluZ0ltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1h
Z2U6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNzc0ltYWdl
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNzc0ltYWdlR2Vu
ZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OlN0eWxl
UGVuZGluZ0ltYWdlKToKKworCiAyMDExLTEwLTI4ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgaW1wbGVtZW50IGZsZXgtYWxpZ24gZm9yIGZsZXgtZmxvdzogY29s
dW1uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZDI0Y2JkLi40ZDA3Zjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1MDQsNiArMjUwNCw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGFzaEFycmF5LmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIFwKQEAgLTI2MjEsNyArMjYyMyw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFNtb290aGluZ01vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFRyYWl0c01hc2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFdpZHRoVmFyaWFudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2VuZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dseXBoLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMTJiN2FjZi4uZWRkMWY0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgXAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQ
b2ludC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAgXApAQCAtMTA0
MSw3ICsxMDQyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERh
dGEuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmNwcCBcCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFn
ZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAgXApAQCAtMjA2Nyw2ICsyMDY4LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBcCkBAIC0yMTA0LDYgKzIxMDYsNyBAQCBIRUFERVJTICs9
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2JjZjU1Ny4uZTQ4YzFiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzMyNiw2ICszMzI2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25z
M0QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAnLApAQCAtMzM0
Miw3ICszMzQ0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBh
dGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRh
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5o
JywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5ZGE3YzQu
LjhiM2Y0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY5OCw2ICs2OTgsMTAgQEAKIAkJMkJFOEUyQzcxMkE1ODlFQzAwRkFE
NTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkJFOEUyQzYxMkE1ODlFQzAwRkFENTUwIC8qIEhUTUxNZXRh
Q2hhcnNldFBhcnNlci5oICovOyB9OwogCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRN
TE1ldGFDaGFyc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQ
YXJzZXIuY3BwICovOyB9OwogCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2lu
Z0Vycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDNBMEUzNTEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQ0ODFGMDAxNDZCNUM0QzAw
QUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CisJCTJENDgxRjAyMTQ2QjVDNTUwMEFB
NzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTUxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmggKi87IH07CisJCTJENDgxRjAzMTQ2QjVDNjUwMEFBNzgzNCAv
KiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OworCQkyRDQ4MUYwNDE0NkI1QzZCMDBBQTc4MzQgLyog
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZS5oICovOyB9OwogCQkyRDhGRUJEQzE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jv
c3NmYWRlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAq
LzsgfTsKIAkJMkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDhGRUJEQjE0
M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCAqLzsgfTsKIAkJMkQ5MDY2MDYw
QkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlv
dXRTdGF0ZS5jcHAgKi87IH07CkBAIC01Mjc0LDcgKzUyNzgsNiBAQAogCQlCQ0UwMTM5QTBDMEJF
RjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxl
U2hlZXQuY3BwICovOyB9OwogCQlCQ0UwMTM5QjBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNo
ZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Uw
MTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggKi87IH07CiAJCUJDRTA0QzhB
MERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTA0Qzg5MERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlC
Q0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDRDOTMwREFGRjkwMjAwN0Ew
RjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKIAkJQkNFMUM0MUIwRDk4Mjk4MDAwM0Iw
MkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLzsgfTsKIAkJ
QkNFMUM0MUMwRDk4Mjk4MTAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAv
KiBMb2NhdGlvbi5jcHAgKi87IH07CiAJCUJDRTFDNDNCMEQ5ODMwRDMwMDNCMDJGMiAvKiBKU0xv
Y2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRTFDNDM5MEQ5ODMwRDMwMDNCMDJGMiAvKiBKU0xvY2F0aW9uLmNwcCAqLzsgfTsKQEAgLTc3
OTcsNiArNzgwMCwxMCBAQAogCQkyOUQ3QkNGOTE0NDRBRjdEMDA3MDYxOUMgLyogQWNjZXNzaWJp
bGl0eVNwaW5CdXR0b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkJFOEUy
QzYxMkE1ODlFQzAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaDsgcGF0aCA9IHBh
cnNlci9IVE1MTWV0YUNoYXJzZXRQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJz
ZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NjE0NjBDRDZGMDAyNjM2
MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJhdG9y
R2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQzQTBFMzUx
M0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdQYXJzaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJC
IC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjU2
OSw3ICsxMjU3Niw2IEBACiAJCUJDRTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hl
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVl
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTAxMzk5MEMwQkVGMTgwMDQz
ODYwQSAvKiBKU1N0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UwNEM4OTBE
QUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0UwNEM5
MzBEQUZGOTAyMDA3QTBGNDEgLyogR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MUEwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2F0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MjIwRDk4MjlGMjAwM0IwMkYyIC8qIExvY2F0
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTE5OCw3ICsxOTIwNCwxMCBAQAogCQkJCTM3MjAyMTk4MTA2
MjEzQzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5nTW9kZS5oICovLAogCQkJCTM3ODRDMzRBMEUx
MUFBMzQwMDdEOEQ0OCAvKiBGb250VHJhaXRzTWFzay5oICovLAogCQkJCUJDRTQ0MTM1MTJGNzQ5
MEIwMDlCODRCOCAvKiBGb250V2lkdGhWYXJpYW50LmggKi8sCi0JCQkJQkNFMDRDOTMwREFGRjkw
MjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NDE0NjBDRDZG
MDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJEMkZDMDU1
MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAorCQkJCTJE
MkZDMDU2MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8s
CisJCQkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggKi8sCiAJCQkJQkMyM0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmgg
Ki8sCiAJCQkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovLAogCQkJ
CTA4NkJCRDBFMTM2MDM5QzIwMDhCMTVEOCAvKiBHbHlwaC5oICovLApAQCAtMjIzNTcsNiArMjIz
NjYsOCBAQAogCQkJCTE5QkZGNjRCMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTlCRkY2NEQxMUMwRjJBQzAwQjhD
MDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1MDJBQjQ4MEFENDM4QzAwMDM3ODU0MCAvKiBET01TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTJENDgxRjAyMTQ2QjVDNTUwMEFBNzgz
NCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkQ0ODFG
MDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAyQUI5MjBBRDQzOTRFMDAzNzg1NDAgLyogRE9NU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDJBQjRBMEFENDM4
QzAwMDM3ODU0MCAvKiBET01TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1MDJBQjkzMEFENDM5NEUwMDM3ODU0MCAvKiBET01TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAzNCw2ICsyNTA0NSw4
IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJ
QUQwM0FBRkExNDY4NDU1MzAwQTM5QjVCIC8qIENTU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTJENDgxRjAwMTQ2QjVDNEMwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyogR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCNURDNjkxMTlCQjNE
NTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFF
MUIxRDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMjlDMTZFMTMwMEMyRTIwMDJENzk0RSAvKiBBY2Nlc3NpYmlsaXR5QWxsSW5PbmUu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTc2OCw3ICsyNTc4MSw2IEBACiAJCQkJOTcyMDVBQUYx
MjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxQzgxQjg5MEM0NDIyRjcwMDE5RUNFMyAvKiBGVFBEaXJlY3RvcnlQYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzMkU4NDkwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEgLyog
R2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MEQ3QzUwRTlDMUYyNTAw
MEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA1MkJGQ0U5MTI4
QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52
YXNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKaW5kZXggMjMy
YTUyNS4uZWZhZDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1Zh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKQEAgLTQ0LDYg
KzQ0LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAg
ICBib29sIGlzUGVuZGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBsb2Fk
U3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKikgeyB9CisKICAgICB2b2lkIHNldE5hbWUo
Y29uc3QgU3RyaW5nJiBuYW1lKSB7IG1fbmFtZSA9IG5hbWU7IH0KIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmluZGV4IGI3NzA2OWYuLjUzZjE0NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApAQCAtMjYsOCArMjYs
MjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1ZS5o
IgogCisjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIlN0
eWxlR2VuZXJhdGVkSW1hZ2UuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDYWNoZWRJbWFn
ZSogY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiwgY29uc3QgUmVu
ZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwordm9pZCBsb2FkU3ViaW1hZ2UoUGFzc1JlZlB0
cjxDU1NWYWx1ZT4sIENhY2hlZFJlc291cmNlTG9hZGVyKik7Citib29sIHN1YmltYWdlSXNQZW5k
aW5nKFBhc3NSZWZQdHI8Q1NTVmFsdWU+KTsKKwogU3RyaW5nIENTU0Nyb3NzZmFkZVZhbHVlOjpj
dXN0b21Dc3NUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0ID0gIi13ZWJraXQtY3Jv
c3MtZmFkZSgiOwpAQCAtNDAsMTcgKzUzLDEwNyBAQCBTdHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6
OmN1c3RvbUNzc1RleHQoKSBjb25zdAogCiBJbnRTaXplIENTU0Nyb3NzZmFkZVZhbHVlOjpmaXhl
ZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICBVTlVTRURfUEFSQU0o
cmVuZGVyZXIpOworICAgIGZsb2F0IHBlcmNlbnRhZ2UgPSBtX3BlcmNlbnRhZ2UtPmdldERvdWJs
ZVZhbHVlKCkgLyAxMDAuMDsKKyAgICBmbG9hdCBpbnZlcnNlUGVyY2VudGFnZSA9IDEgLSBwZXJj
ZW50YWdlOworCisgICAgSW50U2l6ZSBzaXplOworCisgICAgQ2FjaGVkSW1hZ2UqIGZyb21JbWFn
ZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV9mcm9tSW1hZ2UsIHJlbmRlcmVyLCBzaXplKTsK
KyAgICBDYWNoZWRJbWFnZSogdG9JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV90b0lt
YWdlLCByZW5kZXJlciwgc2l6ZSk7CisKKyAgICBpZiAoIWZyb21JbWFnZSB8fCAhdG9JbWFnZSkK
KyAgICAgICAgcmV0dXJuIEludFNpemUoKTsKIAotICAgIHJldHVybiBJbnRTaXplKCk7CisgICAg
SW50U2l6ZSBmcm9tSW1hZ2VTaXplID0gZnJvbUltYWdlLT5pbWFnZSgpLT5zaXplKCk7CisgICAg
SW50U2l6ZSB0b0ltYWdlU2l6ZSA9IHRvSW1hZ2UtPmltYWdlKCktPnNpemUoKTsKKworICAgIHJl
dHVybiBJbnRTaXplKGZyb21JbWFnZVNpemUud2lkdGgoKSAqIGludmVyc2VQZXJjZW50YWdlICsg
dG9JbWFnZVNpemUud2lkdGgoKSAqIHBlcmNlbnRhZ2UsCisgICAgICAgIGZyb21JbWFnZVNpemUu
aGVpZ2h0KCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLmhlaWdodCgpICogcGVy
Y2VudGFnZSk7CiB9CiAKLVBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFn
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorYm9vbCBDU1ND
cm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViaW1hZ2VJ
c1BlbmRpbmcobV9mcm9tSW1hZ2UpIHx8IHN1YmltYWdlSXNQZW5kaW5nKG1fdG9JbWFnZSk7Cit9
CisKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIGxvYWRTdWJpbWFnZShtX2Zyb21J
bWFnZSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIGxvYWRTdWJpbWFnZShtX3RvSW1hZ2Us
IGNhY2hlZFJlc291cmNlTG9hZGVyKTsKK30KKworYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgp
KS0+Y2FjaGVkT3JQZW5kaW5nSW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKTsKKworICAgIGlmICh2
YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5pc1BlbmRpbmcoKTsKKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IGxvYWRTdWJpbWFnZShQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZh
bHVlKCkpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgp
KS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAg
ICBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5sb2Fk
U3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitDYWNoZWRJbWFnZSogY2FjaGVkSW1h
Z2VGb3JDU1NWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0o
cmVuZGVyZXIpOwogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKIAorICAgIENhY2hlZFJlc291cmNl
TG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOworCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNh
Y2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKS0+Y2FjaGVkSW1hZ2UoKTsKKworICAgIGlm
ICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IEhh
bmRsZSBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIChhbmQgdGh1cyBjcm9zcy1mYWRlcyB3aXRoIGdy
YWRpZW50cyBhbmQgY2FudmFzKS4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxJbWFn
ZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0
IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKHNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIENhY2hlZEltYWdlKiBmcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1Zh
bHVlKG1fZnJvbUltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisgICAgQ2FjaGVkSW1hZ2UqIHRvSW1h
Z2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fdG9JbWFnZSwgcmVuZGVyZXIsIHNpemUpOwor
CisgICAgaWYgKCFmcm9tSW1hZ2UgfHwgIXRvSW1hZ2UpCisgICAgICAgIHJldHVybiBJbWFnZTo6
bnVsbEltYWdlKCk7CisKKyAgICBtX2dlbmVyYXRlZEltYWdlID0gQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2U6OmNyZWF0ZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIG1fcGVyY2VudGFnZS0+Z2V0RG91Ymxl
VmFsdWUoKSAvIDEwMC4wLCAmbV9jcm9zc2ZhZGVPYnNlcnZlciwgZml4ZWRTaXplKHJlbmRlcmVy
KSwgc2l6ZSk7CisKKyAgICByZXR1cm4gbV9nZW5lcmF0ZWRJbWFnZS5nZXQoKTsKK30KKwordm9p
ZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3Jvc3NmYWRlQ2hhbmdlZChjb25zdCBJbnRSZWN0JiByZWN0
KQoreworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKKworICAgIFJlbmRlck9iamVjdFNpemVDb3Vu
dE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY2xpZW50cygpLmVuZCgpOworICAgIGZvciAoUmVu
ZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygpLmJl
Z2luKCk7IGN1cnIgIT0gZW5kOyArK2N1cnIpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBjbGll
bnQgPSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KGN1cnItPmZpcnN0KTsKKyAgICAgICAgY2xp
ZW50LT5pbWFnZUNoYW5nZWQoc3RhdGljX2Nhc3Q8V3JhcHBlZEltYWdlUHRyPih0aGlzKSk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9z
c2ZhZGVWYWx1ZS5oCmluZGV4IGQ1NDlmYmUuLjQwNDQxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5oCkBAIC0yNywzNyArMjcsNjUgQEAKICNkZWZpbmUgQ1NTQ3Jvc3Nm
YWRlVmFsdWVfaAogCiAjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIgotI2luY2x1
ZGUgIkNTU0ltYWdlVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xh
c3MgRG9jdW1lbnQ7CiAKIGNsYXNzIENTU0Nyb3NzZmFkZVZhbHVlIDogcHVibGljIENTU0ltYWdl
R2VuZXJhdG9yVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Nyb3Nz
ZmFkZVZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBh
c3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9t
SW1hZ2UsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2UpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IENTU0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOwor
ICAgIH0KIAogICAgIFN0cmluZyBjdXN0b21Dc3NUZXh0KCkgY29uc3Q7CiAKICAgICBQYXNzUmVm
UHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7Ci0gICAgYm9v
bCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0ZpeGVk
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBJbnRTaXplIGZpeGVkU2l6ZShjb25z
dCBSZW5kZXJPYmplY3QqKTsKIAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Q7CisgICAgdm9p
ZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKik7CisKICAgICB2b2lkIHNldFBl
cmNlbnRhZ2UoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGVyY2VudGFnZSkgeyBtX3Bl
cmNlbnRhZ2UgPSBwZXJjZW50YWdlOyB9CiAKIHByaXZhdGU6Ci0gICAgQ1NTQ3Jvc3NmYWRlVmFs
dWUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8Q1NTSW1h
Z2VWYWx1ZT4gdG9JbWFnZSkKKyAgICBDU1NDcm9zc2ZhZGVWYWx1ZShQYXNzUmVmUHRyPENTU1Zh
bHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2UpCiAgICAgICAgIDog
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZShDcm9zc2ZhZGVDbGFzcykKICAgICAgICAgLCBtX2Zyb21J
bWFnZShmcm9tSW1hZ2UpCiAgICAgICAgICwgbV90b0ltYWdlKHRvSW1hZ2UpCi0gICAgewotICAg
IH0KKyAgICAgICAgLCBtX2Nyb3NzZmFkZU9ic2VydmVyKHRoaXMpIHsgfQogCi0gICAgUmVmUHRy
PENTU0ltYWdlVmFsdWU+IG1fZnJvbUltYWdlOwotICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBt
X3RvSW1hZ2U7CisgICAgLy8gTk9URTogV2UgcHV0IHRoZSBJbWFnZU9ic2VydmVyIGluIGEgbWVt
YmVyIGluc3RlYWQgb2YgaW5oZXJpdGluZyBmcm9tIGl0CisgICAgLy8gdG8gYXZvaWQgYWRkaW5n
IGEgdnB0ciB0byBDU1NDcm9zc2ZhZGVWYWx1ZS4KKyAgICBjbGFzcyBDcm9zc2ZhZGVPYnNlcnZl
clByb3h5IDogcHVibGljIEltYWdlT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgQ3Jv
c3NmYWRlT2JzZXJ2ZXJQcm94eShDU1NDcm9zc2ZhZGVWYWx1ZSogb3duZXJWYWx1ZSkgOiBtX293
bmVyVmFsdWUob3duZXJWYWx1ZSkgeyB9CisgICAgICAgIHZpcnR1YWwgfkNyb3NzZmFkZU9ic2Vy
dmVyUHJveHkoKSBPVkVSUklERSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJl
Y3QoY29uc3QgSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiByZWN0KSBPVkVSUklERSB7IG1fb3duZXJW
YWx1ZS0+Y3Jvc3NmYWRlQ2hhbmdlZChyZWN0KTsgfTsKKyAgICAgICAgdmlydHVhbCBib29sIHNo
b3VsZFBhdXNlQW5pbWF0aW9uKGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZERyYXcoY29uc3QgSW1hZ2UqKSBPVkVSUklERSB7
IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNvbnN0IEltYWdlKikg
T1ZFUlJJREUgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29u
c3QgSW1hZ2UqLCBpbnQpIE9WRVJSSURFIHsgfQorICAgIHByaXZhdGU6CisgICAgICAgIENTU0Ny
b3NzZmFkZVZhbHVlKiBtX293bmVyVmFsdWU7CisgICAgfTsKKworICAgIHZvaWQgY3Jvc3NmYWRl
Q2hhbmdlZChjb25zdCBJbnRSZWN0Jik7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fZnJvbUlt
YWdlOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV90b0ltYWdlOwogICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9wZXJjZW50YWdlOworCisgICAgUmVmUHRyPEltYWdlPiBtX2dlbmVyYXRl
ZEltYWdlOworCisgICAgQ3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSBtX2Nyb3NzZmFkZU9ic2VydmVy
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCmluZGV4IGZlYjAxZjQuLmI1NWI0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJDU1NHcmFkaWVudFZhbHVlLmgiCiAKLSNpbmNsdWRlICJDU1NWYWx1ZUtl
eXdvcmRzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgotI2luY2x1ZGUgIkdlbmVy
YXRlZEltYWdlLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkdl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTY3LDcgKzY3LDcgQEAgUGFzc1Jl
ZlB0cjxJbWFnZT4gQ1NTR3JhZGllbnRWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciwgY29uc3QgSW50U2l6ZSYKICAgICAgICAgZ3JhZGllbnQgPSBzdGF0aWNfY2FzdDxDU1NSYWRp
YWxHcmFkaWVudFZhbHVlKj4odGhpcyktPmNyZWF0ZUdyYWRpZW50KHJlbmRlcmVyLCBzaXplKTsK
ICAgICB9CiAKLSAgICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJhdGVkSW1hZ2U6OmNy
ZWF0ZShncmFkaWVudCwgc2l6ZSk7CisgICAgUmVmUHRyPEltYWdlPiBuZXdJbWFnZSA9IEdlbmVy
YXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUoZ3JhZGllbnQsIHNpemUpOwogICAgIGlmIChjYWNo
ZWFibGUpCiAgICAgICAgIHB1dEltYWdlKHNpemUsIG5ld0ltYWdlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFkaWVudFZhbHVlLmgKaW5kZXggZjEzYWM5OC4uZWExMGViOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCkBAIC02OSw2ICs2OSw5IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzRml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBJbnRTaXplIGZp
eGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0K
IAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lk
IGxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKSB7IH0KKwogcHJvdGVjdGVkOgog
ICAgIENTU0dyYWRpZW50VmFsdWUoQ2xhc3NUeXBlIGNsYXNzVHlwZSwgQ1NTR3JhZGllbnRSZXBl
YXQgcmVwZWF0LCBib29sIGRlcHJlY2F0ZWRUeXBlID0gZmFsc2UpCiAgICAgICAgIDogQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZShjbGFzc1R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZS5jcHAKaW5kZXggMWMzYzY1Mi4uNDFiNDY0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTExMCwxMyArMTExLDI2IEBAIHZvaWQgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6cHV0SW1h
Z2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hCiAgICAgbV9pbWFn
ZXMuYWRkKHNpemUsIGltYWdlKTsKIH0KIAorU3R5bGVJbWFnZSogQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UoKQoreworICAgIGlmIChpc1BlbmRpbmcoKSkK
KyAgICAgICAgbV9pbWFnZSA9IFN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUodGhpcykuZ2V0KCk7
CisgICAgZWxzZSBpZiAoIW1fYWNjZXNzZWRJbWFnZSkgeworICAgICAgICBtX2FjY2Vzc2VkSW1h
Z2UgPSB0cnVlOworICAgICAgICBtX2ltYWdlID0gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRl
KHRoaXMsIGlzRml4ZWRTaXplKCkpOworICAgIH0KKworICAgIHJldHVybiBtX2ltYWdlLmdldCgp
OworfQorCiBTdHlsZUdlbmVyYXRlZEltYWdlKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpnZW5l
cmF0ZWRJbWFnZSgpCiB7CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9h
Y2Nlc3NlZEltYWdlID0gdHJ1ZTsKICAgICAgICAgbV9pbWFnZSA9IFN0eWxlR2VuZXJhdGVkSW1h
Z2U6OmNyZWF0ZSh0aGlzLCBpc0ZpeGVkU2l6ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIG1faW1h
Z2UuZ2V0KCk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3R5bGVHZW5lcmF0ZWRJbWFnZSo+
KG1faW1hZ2UuZ2V0KCkpOwogfQogCiBQYXNzUmVmUHRyPEltYWdlPiBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXpl
KQpAQCAtMTcwLDQgKzE4NCw0MSBAQCBJbnRTaXplIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmZp
eGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBJbnRTaXpl
KCk7CiB9CiAKK2Jvb2wgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QK
K3sKKyAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7CisgICAgY2FzZSBDcm9zc2ZhZGVDbGFzczoK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENTU0Nyb3NzZmFkZVZhbHVlKj4odGhp
cyktPmlzUGVuZGluZygpOworICAgIGNhc2UgQ2FudmFzQ2xhc3M6CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBDU1NDYW52YXNWYWx1ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAg
ICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBDU1NMaW5lYXJHcmFkaWVudFZhbHVlKj4odGhpcyktPmlzUGVuZGluZygpOworICAgIGNh
c2UgUmFkaWFsR3JhZGllbnRDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IENTU1JhZGlhbEdyYWRpZW50VmFsdWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1hZ2VzKENhY2hl
ZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBzd2l0Y2ggKGNs
YXNzVHlwZSgpKSB7CisgICAgY2FzZSBDcm9zc2ZhZGVDbGFzczoKKyAgICAgICAgc3RhdGljX2Nh
c3Q8Q1NTQ3Jvc3NmYWRlVmFsdWUqPih0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJj
ZUxvYWRlcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FudmFzQ2xhc3M6CisgICAgICAg
IHN0YXRpY19jYXN0PENTU0NhbnZhc1ZhbHVlKj4odGhpcyktPmxvYWRTdWJpbWFnZXMoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50
Q2xhc3M6CisgICAgICAgIHN0YXRpY19jYXN0PENTU0xpbmVhckdyYWRpZW50VmFsdWUqPih0aGlz
KS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTUmFk
aWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9h
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaAppbmRleCBkMGViNjViLi4xYWI0NDc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKQEAgLTMz
LDkgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI7CiBjbGFzcyBJbWFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFN0eWxl
R2VuZXJhdGVkSW1hZ2U7CitjbGFzcyBTdHlsZUltYWdlOwogCiBzdHJ1Y3QgU2l6ZUFuZENvdW50
IHsKICAgICBTaXplQW5kQ291bnQoSW50U2l6ZSBuZXdTaXplID0gSW50U2l6ZSgpLCBpbnQgbmV3
Q291bnQgPSAwKQpAQCAtNTgsMTEgKzYwLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNs
aWVudChSZW5kZXJPYmplY3QqKTsKICAgICBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJP
YmplY3QqLCBjb25zdCBJbnRTaXplJik7CiAKKyAgICBTdHlsZUltYWdlKiBnZW5lcmF0ZWRPclBl
bmRpbmdJbWFnZSgpOwogICAgIFN0eWxlR2VuZXJhdGVkSW1hZ2UqIGdlbmVyYXRlZEltYWdlKCk7
CiAKICAgICBib29sIGlzRml4ZWRTaXplKCkgY29uc3Q7CiAgICAgSW50U2l6ZSBmaXhlZFNpemUo
Y29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICBib29sIGlzUGVuZGluZygpIGNvbnN0OworCisg
ICAgdm9pZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKik7CisKIHByb3RlY3Rl
ZDoKICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKENsYXNzVHlwZSk7CiAKQEAgLTcwLDcgKzc3
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcHV0SW1hZ2UoY29uc3QgSW50U2l6ZSYsIFBhc3NS
ZWZQdHI8SW1hZ2U+KTsKICAgICBjb25zdCBSZW5kZXJPYmplY3RTaXplQ291bnRNYXAmIGNsaWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudHM7IH0KIAotICAgIFJlZlB0cjxTdHlsZUdlbmVy
YXRlZEltYWdlPiBtX2ltYWdlOworICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogICAg
IGJvb2wgbV9hY2Nlc3NlZEltYWdlOwogCiAgICAgSGFzaENvdW50ZWRTZXQ8SW50U2l6ZT4gbV9z
aXplczsgLy8gQSBjb3VudCBvZiBob3cgbWFueSB0aW1lcyBhIGdpdmVuIGltYWdlIHNpemUgaXMg
aW4gdXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA4YTFkNjcyLi5kMzc1M2JmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjMxNyw3ICs2MzE3LDcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQ
dHI8Q1NTVmFsdWU+JgogICAgIGlmICghYSB8fCBhLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUEVSQ0VOVEFHRSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0g
Q1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oZnJv
bUltYWdlVmFsdWUuZ2V0KCkpLCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4odG9JbWFnZVZh
bHVlLmdldCgpKSk7CisgICAgcmVzdWx0ID0gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShmcm9t
SW1hZ2VWYWx1ZSwgdG9JbWFnZVZhbHVlKTsKICAgICByZXN1bHQtPnNldFBlcmNlbnRhZ2UoY3Jl
YXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGEpKTsKIAogICAgIGNyb3NzZmFkZSA9IHJlc3VsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAzNDM3M2UwLi4xYzU1
ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00MjQ5LDcg
KzQyNDksNyBAQCBTdHlsZUltYWdlKiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUltYWdlKENTU1By
b3BlcnR5SUQgcHJvcGVydHksIENTU1ZhbHVlKiB2YWx1ZQogICAgICAgICByZXR1cm4gY2FjaGVk
T3JQZW5kaW5nRnJvbVZhbHVlKHByb3BlcnR5LCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4o
dmFsdWUpKTsKIAogICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCi0gICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUpLT5n
ZW5lcmF0ZWRJbWFnZSgpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVkT3JQZW5kaW5nRnJvbVZh
bHVlKHByb3BlcnR5LCBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUp
KTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtNDI2Miw2ICs0MjYyLDE0IEBAIFN0eWxlSW1hZ2Uq
IENTU1N0eWxlU2VsZWN0b3I6OmNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5LCBDCiAgICAgcmV0dXJuIGltYWdlOwogfQogCitTdHlsZUltYWdlKiBDU1NTdHls
ZVNlbGVjdG9yOjpnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSogdmFsdWUpCit7CisgICAgU3R5bGVJbWFnZSog
aW1hZ2UgPSB2YWx1ZS0+Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UoKTsKKyAgICBpZiAoaW1hZ2Ug
JiYgaW1hZ2UtPmlzUGVuZGluZ0ltYWdlKCkpCisgICAgICAgIG1fcGVuZGluZ0ltYWdlUHJvcGVy
dGllcy5hZGQocHJvcGVydHkpOworICAgIHJldHVybiBpbWFnZTsKK30KKwogdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjptYXBGaWxsSW1hZ2UoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgRmlsbExheWVy
KiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS0+aXNJbml0aWFsVmFs
dWUoKSkgewpAQCAtNTU3OSw2ICs1NTg3LDI0IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y3Jl
YXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSogaW5WYWx1ZSwgUmVuZGVyU3R5bGUqIHN0CiAK
ICNlbmRpZgogCitTdHlsZUltYWdlKiBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdl
KFN0eWxlUGVuZGluZ0ltYWdlKiBwZW5kaW5nSW1hZ2UpCit7CisgICAgQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOworCisgICAgaWYgKHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VWYWx1
ZSgpKSB7CisgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBwZW5kaW5nSW1hZ2Ut
PmNzc0ltYWdlVmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIGltYWdlVmFsdWUtPmNhY2hlZEltYWdl
KGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICB9CisKKyAgICBpZiAocGVuZGluZ0ltYWdlLT5j
c3NJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKKyAgICAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZSogaW1hZ2VHZW5lcmF0b3JWYWx1ZSA9IHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VHZW5lcmF0b3JW
YWx1ZSgpOworICAgICAgICBpbWFnZUdlbmVyYXRvclZhbHVlLT5sb2FkU3ViaW1hZ2VzKGNhY2hl
ZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0dXJuIGltYWdlR2VuZXJhdG9yVmFsdWUtPmdl
bmVyYXRlZEltYWdlKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogewogICAgIGlmIChtX3BlbmRpbmdJbWFn
ZVByb3BlcnRpZXMuaXNFbXB0eSgpKQpAQCAtNTU4OCwxNCArNTYxNCwxMiBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICBmb3IgKEhhc2hTZXQ8aW50Pjo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdJbWFnZVByb3BlcnRpZXMuYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgIENTU1Byb3BlcnR5SUQgY3VycmVudFByb3BlcnR5ID0g
c3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oKml0KTsKIAotICAgICAgICBDYWNoZWRSZXNvdXJj
ZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCk7Ci0KICAgICAgICAgc3dpdGNoIChjdXJyZW50UHJvcGVydHkp
IHsKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2U6IHsKICAgICAg
ICAgICAgICAgICBmb3IgKEZpbGxMYXllciogYmFja2dyb3VuZExheWVyID0gbV9zdHlsZS0+YWNj
ZXNzQmFja2dyb3VuZExheWVycygpOyBiYWNrZ3JvdW5kTGF5ZXI7IGJhY2tncm91bmRMYXllciA9
IGJhY2tncm91bmRMYXllci0+bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiYWNr
Z3JvdW5kTGF5ZXItPmltYWdlKCkgJiYgYmFja2dyb3VuZExheWVyLT5pbWFnZSgpLT5pc1BlbmRp
bmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFn
ZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihiYWNrZ3JvdW5kTGF5ZXIt
PmltYWdlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBiYWNr
Z3JvdW5kTGF5ZXItPnNldEltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291
cmNlTG9hZGVyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJ
bWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihi
YWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tn
cm91bmRMYXllci0+c2V0SW1hZ2UobG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTYwNCwxMSAr
NTYyOCwxMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAg
ICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb250ZW50OiB7CiAgICAgICAgICAgICAgICAgZm9y
IChDb250ZW50RGF0YSogY29udGVudERhdGEgPSBjb25zdF9jYXN0PENvbnRlbnREYXRhKj4obV9z
dHlsZS0+Y29udGVudERhdGEoKSk7IGNvbnRlbnREYXRhOyBjb250ZW50RGF0YSA9IGNvbnRlbnRE
YXRhLT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnREYXRhLT5pc0lt
YWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0eWxlSW1hZ2UqIGltYWdl
ID0gc3RhdGljX2Nhc3Q8SW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnREYXRhKS0+aW1hZ2UoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGltYWdlID0gc3RhdGljX2Nhc3Q8
SW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnREYXRhKS0+aW1hZ2UoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChpbWFnZS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25z
dCBTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGlt
YWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW1hZ2VDb250ZW50RGF0YSo+KGNvbnRl
bnREYXRhKS0+c2V0SW1hZ2UoY2FjaGVkSW1hZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2Fz
dDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGxvYWRlZEltYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5zZXRJbWFnZShsb2FkZWRJ
bWFnZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CkBAIC01NjIxLDggKzU2NDUsOCBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnNv
ckRhdGEmIGN1cnJlbnRDdXJzb3IgPSBjdXJzb3JMaXN0LT5hdChpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChTdHlsZUltYWdlKiBpbWFnZSA9IGN1cnJlbnRDdXJzb3IuaW1hZ2UoKSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbWFnZS0+aXNQZW5kaW5nSW1hZ2Uo
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFn
ZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihpbWFnZSktPmNzc0ltYWdl
VmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEN1cnNvci5z
ZXRJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9
IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihpbWFnZSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q3Vyc29yLnNldEltYWdl
KGxvYWRlZEltYWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTU2MzIsMTYgKzU2NTYs
MTYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAKICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVJbWFnZTogewogICAgICAgICAgICAgICAg
IGlmIChtX3N0eWxlLT5saXN0U3R5bGVJbWFnZSgpICYmIG1fc3R5bGUtPmxpc3RTdHlsZUltYWdl
KCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1
ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+
bGlzdFN0eWxlSW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAg
bV9zdHlsZS0+c2V0TGlzdFN0eWxlSW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVk
SW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4o
bV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRMaXN0U3R5bGVJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVySW1hZ2VTb3VyY2U6IHsKICAgICAgICAgICAgICAgICBpZiAobV9zdHls
ZS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSAmJiBtX3N0eWxlLT5ib3JkZXJJbWFnZVNvdXJjZSgpLT5p
c1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGlt
YWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3R5bGUtPmJvcmRl
ckltYWdlU291cmNlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldEJvcmRlckltYWdlU291cmNlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hl
ZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRl
ZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+
KG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0Qm9yZGVySW1hZ2VTb3VyY2UobG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTU2NTAsOCArNTY3
NCw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAg
ICAgICAgICAgIGlmIChTdHlsZVJlZmxlY3Rpb24qIHJlZmxlY3Rpb24gPSBtX3N0eWxlLT5ib3hS
ZWZsZWN0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgTmluZVBpZWNlSW1hZ2UmIG1h
c2tJbWFnZSA9IHJlZmxlY3Rpb24tPm1hc2soKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1h
c2tJbWFnZS5pbWFnZSgpICYmIG1hc2tJbWFnZS5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3Rh
dGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtYXNrSW1hZ2UuaW1hZ2UoKSktPmNzc0ltYWdl
VmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZmxlY3Rpb24tPnNldE1hc2soTmlu
ZVBpZWNlSW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIp
LCBtYXNrSW1hZ2UuaW1hZ2VTbGljZXMoKSwgbWFza0ltYWdlLmZpbGwoKSwgbWFza0ltYWdlLmJv
cmRlclNsaWNlcygpLCBtYXNrSW1hZ2Uub3V0c2V0KCksIG1hc2tJbWFnZS5ob3Jpem9udGFsUnVs
ZSgpLCBtYXNrSW1hZ2UudmVydGljYWxSdWxlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxT
dHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tJbWFnZS5pbWFnZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZWZsZWN0aW9uLT5zZXRNYXNrKE5pbmVQaWVjZUltYWdlKGxvYWRlZEltYWdlLCBt
YXNrSW1hZ2UuaW1hZ2VTbGljZXMoKSwgbWFza0ltYWdlLmZpbGwoKSwgbWFza0ltYWdlLmJvcmRl
clNsaWNlcygpLCBtYXNrSW1hZ2Uub3V0c2V0KCksIG1hc2tJbWFnZS5ob3Jpem9udGFsUnVsZSgp
LCBtYXNrSW1hZ2UudmVydGljYWxSdWxlKCkpKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTU2NTksOCArNTY4Myw4
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogCiAgICAgICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdlU291cmNlOiB7CiAgICAgICAg
ICAgICAgICAgaWYgKG1fc3R5bGUtPm1hc2tCb3hJbWFnZVNvdXJjZSgpICYmIG1fc3R5bGUtPm1h
c2tCb3hJbWFnZVNvdXJjZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJ
bWFnZSo+KG1fc3R5bGUtPm1hc2tCb3hJbWFnZVNvdXJjZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwot
ICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXNrQm94SW1hZ2VTb3VyY2UoaW1hZ2VW
YWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19j
YXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFza0JveEltYWdlU291cmNlKGxvYWRl
ZEltYWdlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CkBAIC01NjY4LDggKzU2OTIsOCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Omxv
YWRQZW5kaW5nSW1hZ2VzKCkKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNr
SW1hZ2U6IHsKICAgICAgICAgICAgICAgICBmb3IgKEZpbGxMYXllciogbWFza0xheWVyID0gbV9z
dHlsZS0+YWNjZXNzTWFza0xheWVycygpOyBtYXNrTGF5ZXI7IG1hc2tMYXllciA9IG1hc2tMYXll
ci0+bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtYXNrTGF5ZXItPmltYWdlKCkg
JiYgbWFza0xheWVyLT5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQ
ZW5kaW5nSW1hZ2UqPihtYXNrTGF5ZXItPmltYWdlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBtYXNrTGF5ZXItPnNldEltYWdlKGltYWdlVmFsdWUtPmNhY2hl
ZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBT
dHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5
bGVQZW5kaW5nSW1hZ2UqPihtYXNrTGF5ZXItPmltYWdlKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2UobG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKaW5kZXggMTUzZWY4Ni4uZjlmMmNiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIENT
U1ByaW1pdGl2ZVZhbHVlOwogY2xhc3MgQ1NTUHJvcGVydHk7CiBjbGFzcyBDU1NGb250RmFjZTsK
IGNsYXNzIENTU0ZvbnRGYWNlUnVsZTsKK2NsYXNzIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU7CiBj
bGFzcyBDU1NJbWFnZVZhbHVlOwogY2xhc3MgQ1NTUmVnaW9uU3R5bGVSdWxlOwogY2xhc3MgQ1NT
UnVsZUxpc3Q7CkBAIC02Niw2ICs2Nyw3IEBAIGNsYXNzIFJ1bGVEYXRhOwogY2xhc3MgUnVsZVNl
dDsKIGNsYXNzIFNldHRpbmdzOwogY2xhc3MgU3R5bGVJbWFnZTsKK2NsYXNzIFN0eWxlUGVuZGlu
Z0ltYWdlOwogY2xhc3MgU3R5bGVTaGVldDsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3Mg
U3R5bGVkRWxlbWVudDsKQEAgLTI4NCw2ICsyODYsNyBAQCBwdWJsaWM6CiAKICAgICBTdHlsZUlt
YWdlKiBzdHlsZUltYWdlKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKik7CiAgICAgU3R5bGVJbWFn
ZSogY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU0ltYWdlVmFsdWUq
KTsKKyAgICBTdHlsZUltYWdlKiBnZW5lcmF0ZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVy
dHlJRCwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSopOwogCiAgICAgYm9vbCBhcHBseVByb3BlcnR5
VG9SZWd1bGFyU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJT
dHlsZTsgfQogICAgIGJvb2wgYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZTsgfQpAQCAtMzMwLDYg
KzMzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NT
VmFsdWUqKTsKICNlbmRpZgogCisgICAgU3R5bGVJbWFnZSogbG9hZFBlbmRpbmdJbWFnZShTdHls
ZVBlbmRpbmdJbWFnZSopOwogICAgIHZvaWQgbG9hZFBlbmRpbmdJbWFnZXMoKTsKIAogICAgIHN0
cnVjdCBNYXRjaGVkU3R5bGVEZWNsYXJhdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCBlMjg5ZGQ0Li5iY2QzNDk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTk4LDYg
Kzk4LDggQEAgcHVibGljOgogCiBjbGFzcyBCaXRtYXBJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiAg
ICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUlt
YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEwZDZjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgiCisKKyNpbmNsdWRlICJDU1ND
cm9zc2ZhZGVWYWx1ZS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6
OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZElt
YWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciwg
SW50U2l6ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIDogbV9mcm9t
SW1hZ2UoZnJvbUltYWdlKQorICAgICwgbV90b0ltYWdlKHRvSW1hZ2UpCisgICAgLCBtX3BlcmNl
bnRhZ2UocGVyY2VudGFnZSkKKyAgICAsIG1fY3Jvc3NmYWRlU2l6ZShjcm9zc2ZhZGVTaXplKQor
ICAgICwgbV9vYnNlcnZlcihvYnNlcnZlcikKKyAgICAsIG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNl
cnZlcihhZG9wdFB0cihuZXcgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KHRoaXMpKSkK
K3sKKyAgICBtX3NpemUgPSBzaXplOworCisgICAgbV9mcm9tSW1hZ2UtPmFkZENsaWVudChtX2Ny
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOworICAgIG1fdG9JbWFnZS0+YWRkQ2xpZW50
KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7CisKKyAgICBtX2Nyb3NzZmFkZVN1
YmltYWdlT2JzZXJ2ZXItPnNldFJlYWR5KHRydWUpOworfQorCitDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTo6fkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKCkKK3sKKyAgICBtX2Zyb21JbWFnZS0+cmVt
b3ZlQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7CisgICAgbV90b0lt
YWdlLT5yZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKK30K
Kwordm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd0Nyb3NzZmFkZShHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQpCit7CisgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxIC0gbV9w
ZXJjZW50YWdlOworCisgICAgSW1hZ2UqIGZyb21JbWFnZSA9IG1fZnJvbUltYWdlLT5pbWFnZSgp
OworICAgIEludFNpemUgZnJvbUltYWdlU2l6ZSA9IGZyb21JbWFnZS0+c2l6ZSgpOworICAgIElt
YWdlKiB0b0ltYWdlID0gbV90b0ltYWdlLT5pbWFnZSgpOworICAgIEludFNpemUgdG9JbWFnZVNp
emUgPSB0b0ltYWdlLT5zaXplKCk7CisKKyAgICAvLyBEcmF3IG5vdGhpbmcgaWYgZWl0aGVyIG9m
IHRoZSBpbWFnZXMgaGFzbid0IGxvYWRlZCB5ZXQuCisgICAgaWYgKGZyb21JbWFnZSA9PSBJbWFn
ZTo6bnVsbEltYWdlKCkgfHwgdG9JbWFnZSA9PSBJbWFnZTo6bnVsbEltYWdlKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29u
dGV4dCk7CisKKyAgICBjb250ZXh0LT5jbGlwKEludFJlY3QoSW50UG9pbnQoKSwgbV9jcm9zc2Zh
ZGVTaXplKSk7CisgICAgY29udGV4dC0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcigxLjApOworCisg
ICAgLy8gRHJhdyB0aGUgaW1hZ2Ugd2UncmUgZmFkaW5nIGF3YXkgZnJvbS4KKyAgICBjb250ZXh0
LT5zYXZlKCk7CisgICAgaWYgKG1fY3Jvc3NmYWRlU2l6ZSAhPSBmcm9tSW1hZ2VTaXplKQorICAg
ICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fY3Jvc3Nm
YWRlU2l6ZS53aWR0aCgpKSAvIGZyb21JbWFnZVNpemUud2lkdGgoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0PihtX2Nyb3NzZmFkZVNpemUuaGVp
Z2h0KCkpIC8gZnJvbUltYWdlU2l6ZS5oZWlnaHQoKSkpOworICAgIGNvbnRleHQtPnNldEFscGhh
KGludmVyc2VQZXJjZW50YWdlKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoZnJvbUltYWdlLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpKTsKKyAgICBjb250ZXh0LT5yZXN0b3JlKCk7
CisKKyAgICAvLyBEcmF3IHRoZSBpbWFnZSB3ZSdyZSBmYWRpbmcgdG93YXJkcy4KKyAgICBjb250
ZXh0LT5zYXZlKCk7CisgICAgaWYgKG1fY3Jvc3NmYWRlU2l6ZSAhPSB0b0ltYWdlU2l6ZSkKKyAg
ICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKHN0YXRpY19jYXN0PGZsb2F0PihtX2Nyb3Nz
ZmFkZVNpemUud2lkdGgoKSkgLyB0b0ltYWdlU2l6ZS53aWR0aCgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fY3Jvc3NmYWRlU2l6ZS5oZWln
aHQoKSkgLyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSkpOworICAgIGNvbnRleHQtPnNldEFscGhhKG1f
cGVyY2VudGFnZSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKHRvSW1hZ2UsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIEludFBvaW50KCksIENvbXBvc2l0ZVBsdXNMaWdodGVyKTsKKyAgICBjb250ZXh0
LT5yZXN0b3JlKCk7CisKKyAgICBjb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQor
Cit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQoreworICAgIFVOVVNF
RF9QQVJBTShjb21wb3NpdGVPcCk7CisgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOworCisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250
ZXh0LT5jbGlwKGRzdFJlY3QpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0LngoKSwg
ZHN0UmVjdC55KCkpOworCisgICAgZHJhd0Nyb3NzZmFkZShjb250ZXh0KTsKK30KKwordm9pZCBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCkKK3sKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShtX3NpemUpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIC8vIEZpbGwgd2l0aCB0aGUgY3Jvc3MtZmFkZWQgaW1hZ2UuCisgICAg
R3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgp
OworICAgIGRyYXdDcm9zc2ZhZGUoZ3JhcGhpY3NDb250ZXh0KTsKKworICAgIC8vIFRpbGUgdGhl
IGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgorICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0
dGVybihjb250ZXh0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xv
clNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0
KiByZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7CisgICAgbV9vYnNlcnZlci0+Y2hh
bmdlZEluUmVjdCh0aGlzLCAqcmVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxMWQ1NmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2VfaAorI2RlZmluZSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1h
Z2UuaCIKKyNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
U1NDcm9zc2ZhZGVWYWx1ZTsKK2NsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsK
KworY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2Ug
eworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0
ZShDYWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVy
Y2VudGFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoZnJvbUltYWdlLCB0b0ltYWdlLCBwZXJjZW50YWdlLCBv
YnNlcnZlciwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZSgpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvcik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKworICAg
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZElt
YWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiwgSW50U2l6ZSBj
cm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJik7CisKKyAgICB2b2lkIGltYWdlQ2hhbmdlZChD
YWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0gMCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBk
cmF3Q3Jvc3NmYWRlKEdyYXBoaWNzQ29udGV4dCopOworCisgICAgQ2FjaGVkSW1hZ2UqIG1fZnJv
bUltYWdlOworICAgIENhY2hlZEltYWdlKiBtX3RvSW1hZ2U7CisgICAgZmxvYXQgbV9wZXJjZW50
YWdlOworICAgIEludFNpemUgbV9jcm9zc2ZhZGVTaXplOworCisgICAgSW1hZ2VPYnNlcnZlciog
bV9vYnNlcnZlcjsKKyAgICBPd25QdHI8Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5PiBt
X2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXI7Cit9OworCitjbGFzcyBDcm9zc2ZhZGVTdWJpbWFn
ZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgeworcHVibGljOgorICAg
IENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eShDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSog
b3duZXJWYWx1ZSkKKyAgICAgICAgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkKKyAgICAgICAg
LCBtX3JlYWR5KGZhbHNlKSB7IH0KKworICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1YmltYWdlT2Jz
ZXJ2ZXJQcm94eSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQo
Q2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0ID0gMCkgT1ZFUlJJREUKKyAg
ICB7CisgICAgICAgIGlmIChtX3JlYWR5KQorICAgICAgICAgICAgbV9vd25lclZhbHVlLT5pbWFn
ZUNoYW5nZWQoaW1hZ2UsIHJlY3QpOworICAgIH0KKyAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVh
ZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9Citwcml2YXRlOgorICAgIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlKiBtX293bmVyVmFsdWU7CisgICAgYm9vbCBtX3JlYWR5OworfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFn
ZS5oCmluZGV4IGQyODg3MmIuLmJlYzM0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaApAQCAtMzYsMTIgKzM2LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNz
UmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0ZWRJbWFnZShnZW5lcmF0b3IsIHNp
emUpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+R2VuZXJhdGVkSW1hZ2UoKSB7fQotCiAgICAgdmly
dHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYgc2l6
ZSkgeyBtX3NpemUgPSBzaXplOyB9CkBAIC01NywxNyArNTEsMTIgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByb3Rl
Y3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKLSAgICAKLSAgICBHZW5lcmF0ZWRJbWFnZShQYXNzUmVm
UHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgICAgICA6
IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKLSAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICB7Ci0g
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0KSA9IDA7CisKKyAgICBHZW5lcmF0ZWRJbWFnZSgpIHsgfQogCi0g
ICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9nZW5lcmF0b3I7CiAgICAgSW50U2l6ZSBtX3NpemU7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWExZjAwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcApAQCAtMCwwICsxLDc1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1
ZGUgIkxlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgR2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRp
b24oY29tcG9zaXRlT3ApOworICAgIGNvbnRleHQtPmNsaXAoZHN0UmVjdCk7CisgICAgY29udGV4
dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgpLCBkc3RSZWN0LnkoKSk7CisgICAgaWYgKGRzdFJlY3Qu
c2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQorICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNp
emUoZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8g
c3JjUmVjdC5oZWlnaHQoKSkpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCks
IC1zcmNSZWN0LnkoKSk7CisgICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgbV9zaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsKK30KKwordm9pZCBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29t
cG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgLy8gQWxsb3cgdGhl
IGdlbmVyYXRvciB0byBwcm92aWRlIHZpc3VhbGx5LWVxdWl2YWxlbnQgdGlsaW5nIHBhcmFtZXRl
cnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICBJbnRTaXplIGFkanVzdGVkU2l6ZSA9IG1f
c2l6ZTsKKyAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKKyAgICBtX2dl
bmVyYXRvci0+YWRqdXN0UGFyYW1ldGVyc0ZvclRpbGVkRHJhd2luZyhhZGp1c3RlZFNpemUsIGFk
anVzdGVkU3JjUmVjdCk7CisKKyAgICAvLyBDcmVhdGUgYSBCaXRtYXBJbWFnZSBhbmQgY2FsbCBk
cmF3UGF0dGVybiBvbiBpdC4KKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShhZGp1c3RlZFNpemUpOworICAgIGlmICghaW1hZ2VCdWZmZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZpbGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGltYWdl
LgorICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNv
bnRleHQoKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7CisKKyAgICAvLyBUaWxl
IHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KKyAgICBpbWFnZUJ1ZmZlci0+ZHJh
d1BhdHRlcm4oY29udGV4dCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFz
ZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOworfQorCit2b2lkIEdl
bmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNp
Y1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRp
bykKK3sKKyAgICBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lk
dGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8pOworICAgIGludHJpbnNpY1JhdGlv
ID0gRmxvYXRTaXplKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwOWNhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZV9oCisjZGVmaW5lIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlX2gKKworI2luY2x1ZGUg
IkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAiR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSW1h
Z2UuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlIDogcHVi
bGljIEdlbmVyYXRlZEltYWdlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0
b3IsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKGdlbmVyYXRvciwgc2l6ZSkpOworICAgIH0KKyAg
ICB2aXJ0dWFsIH5HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSgpIHsgfQorCitwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKworICAgIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IElu
dFNpemUmIHNpemUpCisgICAgICAgIDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9yKQorICAgIHsKKyAg
ICAgICAgbV9zaXplID0gc2l6ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8R2VuZXJhdG9yPiBtX2dl
bmVyYXRvcjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAppbmRleCBiZjFhMTdmLi5iNTQ2YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTc5LDYgKzc5LDggQEAgY2xhc3MgSW1hZ2VPYnNlcnZl
cjsKIAogY2xhc3MgSW1hZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZT4gewogICAgIGZyaWVu
ZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAg
IGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDA4ODk5YTYuLjdkZjEz
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aApAQCAtMTI2LDYgKzEyNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBmcmll
bmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogICAgICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVk
SW1hZ2U7CisgICAgICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAg
ICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgSW1hZ2VCdWZmZXJEYXRhIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKaW5kZXggYzBlZTEzOS4uOWFh
MGUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVu
ZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVu
ZGluZ0ltYWdlLmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgU3R5bGVQZW5kaW5nSW1hZ2Vf
aAogI2RlZmluZSBTdHlsZVBlbmRpbmdJbWFnZV9oCiAKKyNpbmNsdWRlICJDU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdl
LmgiCiAjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgogCkBAIC0zNywxMiArMzksMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdHlsZVBlbmRpbmdJbWFnZSA6IHB1YmxpYyBTdHlsZUlt
YWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVBlbmRpbmdJbWFnZT4g
Y3JlYXRlKENTU0ltYWdlVmFsdWUqIHZhbHVlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVQ
ZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUGVuZGlu
Z0ltYWdlPiBjcmVhdGUoQ1NTVmFsdWUqIHZhbHVlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5
bGVQZW5kaW5nSW1hZ2UodmFsdWUpKTsgfQogCi0gICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQdHIg
ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFdyYXBwZWRJbWFn
ZVB0ciBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1f
dmFsdWUpOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQotICAgIENTU0ltYWdlVmFsdWUqIGNzc0ltYWdlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgQ1NTSW1hZ2VWYWx1ZSogY3NzSW1h
Z2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmlzSW1hZ2VWYWx1ZSgpID8gc3RhdGlj
X2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KG1fdmFsdWUpIDogMDsgfQorICAgIENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUqIGNzc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
LT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSA/IHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9y
VmFsdWUqPihtX3ZhbHVlKSA6IDA7IH0KICAgICAKICAgICB2aXJ0dWFsIEludFNpemUgaW1hZ2VT
aXplKGNvbnN0IFJlbmRlck9iamVjdCosIGZsb2F0IC8qbXVsdGlwbGllciovKSBjb25zdCB7IHJl
dHVybiBJbnRTaXplKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRo
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTU5LDEzICs2MiwxMyBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBTdHlsZVBlbmRpbmdJbWFnZShDU1NJbWFnZVZhbHVl
KiB2YWx1ZSkKKyAgICBTdHlsZVBlbmRpbmdJbWFnZShDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAg
IDogbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgICAgIG1faXNQZW5kaW5nSW1hZ2UgPSB0cnVl
OwogICAgIH0KIAotICAgIENTU0ltYWdlVmFsdWUqIG1fdmFsdWU7IC8vIE5vdCByZXRhaW5lZDsg
aXQgb3ducyB1cy4KKyAgICBDU1NWYWx1ZSogbV92YWx1ZTsgLy8gTm90IHJldGFpbmVkOyBpdCBv
d25zIHVzLgogfTsKIAogfQo=
</data>
<flag name="commit-queue"
          id="114156"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115306</attachid>
            <date>2011-11-15 20:15:49 -0800</date>
            <delta_ts>2011-11-15 20:22:32 -0800</delta_ts>
            <desc>Render Cross-Fade (and allow fractional cross-fade amounts, and clamp them to 0-1)</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>105900</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNTllY2VhLi5jZThjMjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKyAgICAgICAgCisgICAgICAgIEFkanVzdCBmYXN0L2Nzcy9nZXRDb21wdXRl
ZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUuaHRtbCB0byB0ZXN0CisgICAgICAgIGZy
YWN0aW9uYWwgYW5kIG91dC1vZi1yYW5nZSBjcm9zcy1mYWRlIHBlcmNlbnRhZ2UgdmFsdWVzLgor
CisgICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmc6IEFkZGVkLgorICAgICAgICAq
IGNzczMvaW1hZ2VzL3Jlc291cmNlcy9ibHVlLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMv
aW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2lt
YWdlcy9yZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZzogQWRkZWQuCisgICAgICAgICogY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL3JlZC0xMC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2Vz
L3Jlc291cmNlcy9yZWQtMTAwLnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUu
aHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZh
bGlkYXRpb24tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3Nz
My9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
Y3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFk
ZS10aWxlZC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMTAt
MjggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBpbXBsZW1lbnQg
ZmxleC1hbGlnbiBmb3IgZmxleC1mbG93OiBjb2x1bW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtYmxlbmRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NzczMv
aW1hZ2VzL2Nyb3NzLWZhZGUtYmxlbmRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wZjI3OWMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvY3Jvc3MtZmFkZS1ibGVuZGluZy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgor
PHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDIwMHB4OworCWhlaWdodDogMTAwcHg7Cit9CisKK2Rp
di5jcm9zc2ZhZGUKK3sKKwliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KHJlc291cmNlcy9ncmVlbi0xMC5wbmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuLTEwLnBuZyksIDUw
JSk7Cit9Cis8L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIg
YXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgMjAweDIwMHB4Li0tPgorPGRpdiBjbGFzcz0iY3Jvc3Nm
YWRlIj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsYWNrIj48ZGl2IGNs
YXNzPSJjcm9zc2ZhZGUiPjwvZGl2PjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3ZjY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwKQEAgLTAsMCAr
MSwyMSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0
OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2lmKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwlsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisJaWYod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorCQlsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDAp
OworPC9zY3JpcHQ+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IGxpZ2h0IGdyZWVuIHNxdWFyZSB3aXRoIGEgZGFya2VyIGdyZWVuIGNpcmNsZSBpbnNpZGUgaXQu
LS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KHJlc291cmNlcy9ncmVlbi1jaXJjbGUuc3ZnKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5n
KSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Ny
b3NzLWZhZGUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2VhOTQ2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3Nz
LWZhZGUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYK
K3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8
L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAl
IGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwLnBuZyksIHVybChyZXNv
dXJjZXMvZ3JlZW4tMTAucG5nKSwgMTAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3Nz
LWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJl
c291cmNlcy9ncmVlbi0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIDAlKTsi
PjwvZGl2PgorPCEtLVRoZSB0aGlyZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSBibHVl
LWdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJl
c291cmNlcy9ncmVlbi0xMDAucG5nKSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmcuaHRtbCBiL0xheW91
dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNGVlMTk0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsK
KwltYXJnaW46IDEwcHg7CisJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKK30KKzwvc3R5
bGU+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3Jl
ZW4gc3F1YXJlLCAxMHgxMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwocmVzb3VyY2Vz
L2dyZWVuLTEwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRl
IHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRp
diBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJj
ZXMvZ3JlZW4tMTAwLnBuZyksIHVybChyZXNvdXJjZXMvcmVkLTEwLnBuZyksIDAlKTsiPjwvZGl2
PgorPCEtLVRoZSB0aGlyZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSBibHVlLWdyZWVu
IHNxdWFyZSwgNTV4NTVweC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2JsdWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMv
Z3JlZW4tMTAucG5nKSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3Nz
My9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjFiYWJjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8c3R5
bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEw
cHg7CisKKwktd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApOworCWJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworfQorPC9zdHlsZT4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQg
YXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5bGU9
ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL3JlZC0x
MC5wbmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuLTEwLnBuZyksIDEwMCUpOyBiYWNrZ3JvdW5kLXJl
cGVhdDogcmVwZWF0OyI+PC9kaXY+Cis8IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRlIHNob3VsZCBh
cHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0i
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvZ3JlZW4t
MTAwLnBuZyksIHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1U
aGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUs
IDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwocmVzb3VyY2VzL2JsdWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4t
MTAwLnBuZyksIDUwJSk7Ij48L2Rpdj4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ibHVlLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1h
Z2VzL3Jlc291cmNlcy9ibHVlLTEwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Mjk0OWUwOGQ4N2RmY2RjMDk4
N2VhZWY2NzY5MmM3YTFjMTZhYTUwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3Ngp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHZwXkFUfTJWODw2WlpJPT5mNDM0NkxZaERjMEpQRHVGaWY0K3N5c3RO
MTMKWjcqRSQ2dz47OXJaVXZOUEBPMVRhUz84M3sxT1JoQzZjKyNoCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1
ZS0xMDAucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAwLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNTc4YWU3MjUzM2M3NzQ2YzhhNGQyZjZlZWYzMmE4MTM3ZWUxZjRiCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkRJbTxx
Mz8jakQqdXtZcWJBVjVYRCs5eS11OEs/SEsoMl9WaShgbXsKbVdPOU44Pio1NUZvfkEkdGUrQ0JE
M0lAakpxejVISGM/TTVjS2JMaCoyfjdZMmp9dyZ1CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5n
IGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YzM5YjBkMDJkMzQyYmJmMWVkZDJlYmJjYzJmZjRmZjhiMDMyZTEwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA3NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkFUfTJWODw2WlpJPT5m
NDMzfEZYaERjMEpQV2Epa0FgfEtuLV4hcWAKV2UlJGluKTRGVitCIWoxYHBVWE9AZ2VDd1NTYHBt
PAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9y
ZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDViYmJlNWM1NzYwZDkwNWRiNGJm
MDE1YjViN2ZhYTI3NDY3YzdmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHZwXkRJbTxxMz8jakQqdXtZcWJBVjVYRTVtO1ZsZWh5YmZMc3d6N3NuNkAK
bSQ+YW5IKjJNYFRKeHpmUXt0T0pQNiUzNWNOZUBiWkAoaUE/ZWxGe3I1fUUrYG5pRklJCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9y
ZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291
cmNlcy9ncmVlbi1jaXJjbGUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFkNGY5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNv
dXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMDAgMTAw
Ij4KKyAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIHN0cm9rZT0iYmxhY2siIHN0cm9r
ZS13aWR0aD0iMiIgZmlsbD0icmVkIj4KKyAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZp
bGwiIGZyb209InJlZCIgdG89ImdyZWVuIiBiZWdpbj0iMHMiIGR1cj0iMC4wMXMiIGZpbGw9ImZy
ZWV6ZSIgLz4KKyAgPC9jaXJjbGU+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwLnBu
ZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjliYTJiZjMxMjE1ZTMwY2ZhNzg5MGZlMDYwNDU5MWEzZGVkZWZiMTcKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDc3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeQVR9MlY4PDZaWkk9PmY0
aUZtcD1oRGMwSnsmRGBtaHhybWAzfDM5cAphJEhoNDVATnZ0aStLR2lnYz9NNWNLYkxoKjJ+N2E0
Un42bT4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2Vz
L3Jlc291cmNlcy9yZWQtMTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzNkZDc1OGFkZjQyNGRiODI5Y2Uz
Mzk3ZmM5YzMxYjdmNGE0NWVmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHZwXkRJbTxxMz8jakQqdXtZcWJBVjVYPndnOVkkdyE+I0soMl9WaShgbXsK
bVdPOU44Pio1NUZvfkEkdGUrQ0JEM0lAakpxejVISGM/TTVjS2JMaCoyfjdhbDFgPyRKCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRD
b21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1m
YWRlLWV4cGVjdGVkLnR4dAppbmRleCBlZmIxNzFjLi4xMDQ1N2MyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZh
ZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMzUg
QEAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhh
bXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5j
b20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYi5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vYy5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vYS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vYi5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcK
K0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
ZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKIC13ZWJraXQtY3Jvc3MtZmFkZQogCiAKLVBB
U1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAy
NSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3Jv
dW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcp
LCAyNSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIKLVBBU1Mg
dGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybCho
dHRwOi8vZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1
MCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRw
Oi8vZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1MCUp
IgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9leGFtcGxlLnBuZyksIDEyJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Vi
a2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMTIlKSIKK1BBU1MgdGVzdENy
b3NzZmFkZSgib3BhY2l0eTogNTAwJSIsICJvcGFjaXR5IikgaXMgIjEiCitQQVNTIHRlc3RDcm9z
c2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBu
ZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcpLCAwLjUpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMjUlKSwgdXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIp
IGlzICItd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhh
bXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMC4yNSksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIgorUEFTUyB0ZXN0Q3Jvc3Nm
YWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiLCAiYmFj
a2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2Eu
cG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCAwLjUpIgorUEFTUyB0
ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtp
dC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9l
eGFtcGxlLnBuZyksIDEwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3Nz
LWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUpLCB1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC4xKSIKK1BBU1MgdGVzdENyb3NzZmFkZSgi
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5j
b20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMS4w
KSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxl
LnBuZyksIDEpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBp
cyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC41KSIKK1BBU1MgdGVzdENy
b3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8v
ZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUu
cG5nKSwgNS4wKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDEpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA3MDAlKSIsICJiYWNrZ3JvdW5k
LWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4
YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEpIgorUEFT
UyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcpLCAtMjApIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9z
cy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMCkiCiBQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91
bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZykpIiwgImJhY2tncm91
bmQtaW1hZ2UiKSBpcyAibm9uZSIKIFBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwpIiwgImJhY2tncm91bmQtaW1h
Z2UiKSBpcyAibm9uZSIKIFBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJi
YWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3Mt
ZmFkZS5odG1sCmluZGV4IGFkNjBiMDYuLjhhNzU4MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtY3Jvc3MtZmFkZS5odG1sCkBAIC0yMSwxMCArMjEsMTggQEAgZGVidWcoJzxwPi13ZWJraXQt
Y3Jvc3MtZmFkZTwvcD4nKTsKIAogLy8gVmFsaWQKIAotc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUo
ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUu
Y29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcpLCA1MCUpIicpOwotc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1h
Z2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1cmwo
aHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdl
IiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSInKTsKLXNob3VsZEJlKCd0
ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSki
Jyk7Ci1zaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJsYWNrLCB3aGl0ZSksIHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAxMiUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScs
ICciLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgYmxhY2ss
IHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEyJSkiJyk7Citz
aG91bGRCZSgndGVzdENyb3NzZmFkZSgib3BhY2l0eTogNTAwJSIsICJvcGFjaXR5IiknLCAnIjEi
Jyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAn
Ii13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
dXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDAuNSkiJyk7CitzaG91bGRCZSgn
dGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCA1MCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKC13
ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgMC41KSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13
ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywg
JyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCAwLjUpIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2Zh
ZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWxpbmVhci1n
cmFkaWVudChibGFjaywgd2hpdGUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5n
KSwgMTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Vi
a2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsYWNrLCB3aGl0ZSksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcpLCAwLjEpIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEuMCki
LCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCAxKSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAt
d2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tncm91bmQtaW1h
Z2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC41KSInKTsKKwor
c2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3Mt
ZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9leGFtcGxlLnBuZyksIDUuMCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Vi
a2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybCho
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAxKSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jv
c3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCA3MDAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDEpIicpOworCitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhh
bXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgLTIwKSIsICJi
YWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IDApIicpOwogCiAvLyBJbnZhbGlkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVj
dGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NzcyNjQzMTQxZDgzMjFhYjc4MThjZTM4ZDBkZWU5N2NiNmYx
MWE4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTM0MQp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVSSFIKem1MXkdON0E5IzFt
TVB9TyM7SWx8cmp8KSpDUH5TYjI1QU9+aTNYWXtMe292TCRZblleMlk1Tz1EK0NuZnIpQX48Cnpn
KD9fWkwrKW9eNGlOY3dEfFBPTWh1djFgZn1EMDQ2WjJBbk9QdUZ5JU1SYWxIdExueGMxNGZiJVdg
OTg5YURLKgp6d31KZztjZlFycEB7akN4S2lQUzFIc0BEUTt5b3NrXyt3M25sRnY3IyZHVGxQX15K
bXBAQkZefHs/QilvPmQmOVYKekUlO2QmYnktQjhVbkRmeHxMQ0RWTjFsaz58SEskNDxFO0hCIT8o
TGwldUNKUGYmY1FSJUotVzteVHsye0RTNE5GCnpmQXpvUXRGeHheMiE0PUoqZispV2h8PEh6MShg
OGROYHhPPT53R2BnKERjdypwVz13K0VTJlBgN1d2N0k0fHtyKgp6cj1eKmdJP1VvYyNEM0p0JTZv
QHsjZjsxY3BMdVZiWVpRNSt1Q3tXTFVib0ZeKkM3MztEWHlEJXpJfjd7WnZHVSUKelZhMWV9dik0
V3M9Kl51YT4zNlpGPno9JTJaOSZnN2hOfW5kPDBiWXc/d0RIO1ZmSntqWGBSenFtMzR3QGQhTjU2
CnokKC0+dmI9TEdxTyg5aG9sfDR4ej54Xj9VcEsmdkgmVSR3Rj9VI1RfOHxJdHJIIStVPHtQPUNh
UkY+QzxONTZqYQp6Y0tmbnhAQWNhZ0MkbTJgd09nKXZ0PXszXi10UytGeH1IYH1gdFcqLVQ8X0h7
KFVZdmdacl5AI2NBNF93Qmp0aGkKeiVwT2luZUtJSzs0PDxWQ0IrZzFjdmcoSkFuNTJAfGwxckgt
QShmamZ1MzJrTHA3dko4ejJhbSUtO094M3VoRS0hCnplMCVWRi1kKXd9ZVMxVihrOFdSbEJrPTlr
IytTUGAzRDEoUUZIS3khSVBhblAmWm8xYmI2MGI3MXBlIUt5M3IjcAp6Xl58ezg7UHEwb1hBXj5f
fDAoNEBaIzNuZFlNRD8zJiNwQmU7KGxvNWFRVX4yQURYYFolODdJTCkoVzAoREFjaUEKekp1bXB8
dXtXeGhkQGo5Qyp8RVJ0dEo1KXdwQSF0N3F2cX5ZQHR4Q1VgUlBed3c+biNTKTlZdUNWKVU9RyYp
YTxfCnpfVGpJYzlCY0s4bD19e2VlfDQ9PHtJSmg+cEkhWCt7RW8hc3hBJEY2ZEEtOyQ+aDxvKzZM
JjR6U1Qme3B3KSF7UQp6ekUjNEtuPk95LVNRb35qeT03NXltZT1NSWUrRmpOVCkqamBTdHF8Mll+
aWx5U2Z8X0J6ZDkqPWcxPElieyFFXkAKej17JW42SiNPbDR1PG4xJHllO0B6PzZiYEhWJDA4MzF1
diFsOSk3Szc5P0JMY2RFakVQcDc7WGUoa0dsN1lUfFRXCnppezYmRW5ZWD1ScVY/X013WUlzNXlT
bllkUl5La3NpPFY+RCZBPEJVe1BVfT4taEtZMHAxV2Y0QUdWZHNULU9kUQp6ajVsSW5QKzsoTWFT
VytvZTB5X2FFPm9iMCVmK0tiNHZPI2dEflVoaW5JUD5AKyZzVSlxaklzUmB8T3kpPk9GU1QKemA1
QnA1STBPX044Vz9+S0s4X21NaVoqdWA3Yk5+NS1sM3NGNVV6cWx6KFAmSXApYXNuMDcpT3k1bz9I
a3UoQVYmCnpqRXFHK3gwO2RrMnFAZWBRcUkhSCR1U31NaWt1N0JQS2NpRyk9bCRZfDlmfWpKQndZ
fGdZVW43LT87eS1UXlE9Qgp6dTctTXR1MzVaRENVYG5Ec0YqMXVJbFFaWkt7THc/O1NtbE1NI2Yx
dWRYU3U7IU5qeT0jWjRyaU88LWExTkhTSkoKeklENyNJJEFtPmAmSW1fMjJuaV4zcDZ2aHk0OCkq
REM1MklrakUyWik4WDMocyg0cS1nRXt2OFZxYjJLVFR7Qnd5CnpqPCFjZVRXRihBTVIqOHxIbDdE
QGNWZFRhLTI1I2pOVWdZcjB+IXpIQ2tVUmdnIWdxQW5QTUZwTzAyek1lSUtCTgp6OHpaQXBsY2hS
UmtCT1VPTFNES2pxUWBWVkwmM3EjOzVreDF0Yn4jQShwdyEpTTg4WGRtRXtELXZwTWl8IXFCTHYK
ejtJTTExRHc0JkU4eUYtSCZWbHYqZks5OW10U2xiZUg+KTVsUDdvMUxQQFlrWTxoRVQ2M0BeKjNB
ejlxUiNGV0JQCno/MXlsaGdTZGRnLUUpKFdFRG0mTj10KCQtPGhCPlVtZHghKUF3PThHZlF3QF5Q
KH1sI2FXdGhnakFrRGVqP3ByTwp6aURrNSlicmBMRU15cTV7eUpFRFJHVEx8cHdtMyZ5dkA5SD4m
M3NARllQOWRPVjY7T3grRGl1M2pINSNiM0lqY0sKemtpWVZXRWR2OWBPMyskPihYb30kMGpKU1h4
WTZvKXcwYSZMIzBHVS1OMn0pbnVieE0lV1lqQTgxSXJ2SHpMbUVRClQ+UEdfQzJRenJPYG5qeGdO
QHhOQUUlKH5PCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1ibGVuZGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1ibGVu
ZGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFh
NDE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDEwMAor
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTAwKSBzaXplIDIwMHgxMDAgW2JnY29sb3I9
IzAwMDAwMF0KKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MTAw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1pbnZhbGlkYXRpb24tZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNTgzNTFhMDEwOGRmYTBiNmZmMGQ3NWU4MjU0ZGI4OTI1YTEyODNjCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxNDA5Mwp6Y21lSE9YSC0rJHdrREJ8M0pRVj5rfCt1KU47dz5RTmZaQFM1
SlpuNE5JPEZfcyhfKUlmTD42ZjFYUCt4IVYjNSYKejVRPDJzMj8kYkA1JkB+OTNXT1IkND12I2Et
eWA5P0FNZkEwVzR0bClocnIleiZvJFNhLX43SjBfNmlaRSo5YFV1Cno5djAteztAV2ZCQFBaaV4q
RGYjQDd0biZBbXdEd0N7RS0qKTxDTzEzM3QjKHRqYHByVDU4UyF6Pj5ib3BISnl8LQp6SFNFPEw+
e2FhNGxwSXdaP2UxIS1ZR15RakQqeWlUKmgoYlJpbk5RcXpVZ0lzZVh5eXdyPDA0REJOdnhIQW5m
TFYKelluIVBVcXNLOGRaenhqQmQ3cHNaeSpMa3Q4QH5GbGFqeGQyT19xfnRNTW4pJi1uLXY8UmVQ
TCokbThwZF53Z15ICnpvOCF9NDw9ZnI7KmZaJClvPzVaSEU3P3p2ODcmX3hLJlNqfUVPJXA5MzlX
MmtidypRZVl5XzZKZGYmMjVPaUBfdQp6an5nYTZSVTJQTSMwS1U4RmUhY2NqZUV3QztvP19oNFdQ
bnA5fE5jYjN3eHomLUYjO30yZUtJVT9YVGlAQDAqbloKejZKRHgqSVd9fVYmRT9KeVUodnlpMnhf
WGJZRV9ld2szfE56MExXUngoPmA9NERxMUdOPjMzRD1EfWdHJG4pNnkkCnppPWk0eEVgdGt1eHwm
MTlNJng4T3BEUlNfV0wtMjw5Q2YoKGFyZzJwJG1qOUFQMlMleENzTUZ1QkdLLXo0cWE7cgp6ZSUy
NHRlQ1FRTD00JF44dXtucjhTRGZsKXAqRWJaaWE2aE5KWkdPUWVyKDNxQzVodHJEKUlLSXtVQFoz
bSlxVVUKelFFX3UyMys7K3tNUSk9a25tKjZOezlmXzklSSQ/PWlmS0llbHljM3xeM19YPXJUOSkj
K3pZOzhSbFNUOzlZYG54CnpQaDBZU0hYODdKY0l1T0tiby0qIWJGRXQ+KG4hO0xuZCZjbypDRCRN
JnAoUWhheVU1e2NZZ1FYU04yfiV0UWQoTwp6SShGcjR0QmRjPWZSN3AtKzl6S21QXjFqfXp1TjNB
aEtWbShlSm94Y1R1MWt2PSFfe3A1TFEhXi1nVFcpNyY9azwKelFTX0IwXjE8REE9XmpKc0M4SF5s
P3BaP28qQlFAN145XkIrLSVLN3w/fGgmfWo9aG4lQGohXzkrc2x+fkBja0NNCnpPUzVOVEUyckhB
T35ORnE1LVdieEh9Xy1ySEg2JGhxbkN4ZyhOc0hxcVNkSCUlQXZVOCsweXlpZ1I4TzFgailBTAp6
PEhvT19ZMG1lVTNkITtNSig/b195cmJDM2hjMFdoOSRHOG0kMH5UcyM4Z1F2VD97QHRPSGQpYCol
V3lgeV8tUUkKenZeaCtyRF9jJkx3WilhYiRxIyZxQkZRYzUjKFdTeF5mOH4xa0dSRHp8TEtrV3BI
fldlT31LV1FhS0R6ZyExSUUtCno/X1dafVBqaypqcHQ5YERWQD4xKkooRzlDNV9lekRIU0FXJSg/
KEh0O2NqJFRsVTswbEcjNV5MTy1SektyeGV1eAp6O0RzSGtaMUdXJE5LPCgqQjlJcGhKMlEyRjFr
eW5sZ35WeC0/NkpEO2NTfEduWmVAe3Q2fEFISVd4YHFRN34rVGEKenpPZk9ja2JuOUhaPkVmM043
WXw4emoxTWF4aGBLZ2NoZXQwPjljdjc4VzZ4WUo3NlQ2OTZmY2J3SDZ8OStXUHdVCnpteGxLJnRz
QiV0QV9RSVZGQ1NySFdMZlplazJ8d3d2IXxKIy1sd3FOKlZXUihkMFdsUVRAdiFIcmw7a2xKeH05
KAp6LTBsdjR7PyV3O0tyPXxUK3QqbU8+OytaUjhCRypZKFNEKW5nUWwkcUd9aT52SG1vY19GPVF8
X2diTSlWPGAtZjkKejApXlR0RF4+SVZfZ312Kk17JGRac0JgYlFWaDBwN2pPcWRKeEZSTX12fjZK
UGteaFNVM0FrczJESEs8JDJZPSleCnozdm07RTVLNEpFZjFkdjNeRGkmbXVwdlFFVHR7MnNLSzYy
RXhkMSNQMDFkPGlfV0NNMjFXJHNrclkzc1dQbTFgNQp6Z2FHSGNxIyghR2FqPHBlNXNTcXhgTVVw
Q1JEUjglMUJDKHR4TUR5JUNkZXhVM2Y2WjdtYTZURGcpfSVWTTJEKm0KendQUylWJWgwbnlHRjRi
ellATHQwY2BuUjdRTmo5OE1mez4hKn45Zl5uTFhWbEtGLT95diRvcDdEXyoxdTxmYVRnCnpNQFc+
dDNNS0tiNHhXK1BYaTNWKD5IXzZreXU0Pz8wNndwTHduYGArXik+IzhoRjk3VlpGbn1OeVRFemdn
bUhEcAp6UWc/Q1Z0Tnt9amhrOHFWREQkSFlufj4kNDR0VGxpJUYxdlVQUXkzNk16PFA/YFAyT19a
Qn1fQitnTGdsKlVfX3YKejlVNjlXYiorJXBeVC13a1ZmJDhfMD9RViVoUDxuWllifXZZWitvUypl
RSZXSUw2azJBVTZJLW1uZXpOZiskbkhwCnp1OHBVMl5YcV96LUBeV0tEPSNYMU1ecFV0aiY/VGNU
VjIpOVMoTERMX18yQFE5c0FXYjc/fENnXnRRNSEwKW0+dAp6KEpZOUtYQkk/fnpeSXZCU1ctSyFe
UDwmZmUmajM4a0p8c2xjK1E2JSk9X1JVQT4+WE85R2p7ZXdFUTVfTntYPk8KenVvTUBEVGQxenFs
YGBvK0UxWDtRSiFSdilNQUFGaj9zc0l9Pkx0ZGc3cXdufmluNUlBQnc7fiZYd1VDfVkkbzNGCnpy
KXUxUExtP0dXamp6cVN2UjhuXlJROEk7R0VCNERHRTlvJTxLdl5UWExTMnw9SWd7c3RweDFaQmEq
eE4yUDB1Iwp6M0JvaX4kRXtwIVE5TE44dXN5TChWIUd5REt0TV5WKWBNXlExXnQhSDVFZTNpaCp+
ZlUzO1VHYnZ8TlpTZXIwVDMKejdiWWFwUXhocW51MjhvNHhkWGtqVm4+PjV6QkFXI2tpbCF5eVNm
d0B3OFc+c1oqYCYlQigzVEZfSzByYTt0V0tHCnpvWGJTe1Q5UkNHQVVnfncxdG9LeWtxKWRDV3kp
ckE/YjB7S2g1MF49KVhkeUxebmh9dDBXemsoTnlzJV9GMytUeQp6U343LXFFclR5UG1xWXNYMFJp
UU5vWVk/K1g0ZCMlbFlrTTdIcWtfZiZsYlREdER8TTNfOEw+ODZfKW9ySD1sSCQKejEqTmArdGx9
fkRran02MlpjRClTMHU0NWhaO0I7RjBfUmh5ITVJJnl0T2dFS29hYSFNTEd4NWBsNCFNJHR+azdy
Cnp0UDcmYCRGNkJFYCV1UXBtMGt4eTB1IWhSVEdfQj91cT47ek9idTx4TGlJJXpianRGXjB1Z25x
NipEIXJUbWhPewp6QH4ySHBwdz5QMD44fi05VnxvdGJiK24zMmRQamxnal9MTyZPI3RWa0olaUtm
QlhXPks2I0xIRUQ+cUNTbG8odXwKejRzejdxYHw7I2h6c2xrbmBnbktYQnxhNyhnYE5oZ1NWN2w3
V2FnQmYyMHtLbT4oNyh1b2htXmVQe0NGY3cqJWlKCno3TmY0eiVaUlM9WSkzZyVeRlkkcWlwaDJU
N3FYLUZ3Mld8QypVQ2ImUEUqbVJkMzJgcGxtVCZhJGlnJENPXzVjaAp6alMtY05iakpiQVl1JGpa
S1BuUCFKMjZlWXIjIW08NDhuY1lKKnJ6RV91bGdtUi1WTnpOIUxTQCpRTiorSV9ea3MKekkzIWB5
RX50T3V7dzVgREs9aWtPWWxnJmA2TTxCVGRFSVVBRTgrVy1sN1ghUTRxbyRTVyRBdXVOVndCQU48
T3M9CnpCSWh0YVkwO052d0llJWoyQkZFVF4ycXRVV0F1bDV7bVlyam4lSik5QVRrO2M1eztibShf
e0g3KHhuR2ZuTS02YQp6QXpBeVR4X2c/REdQR3gleXoma3tGbTBVZkprdT5sTyhOVyNjZ3A9dlcj
TCZRPjBEXjBMQGNTdXZuV3pSRzNIKFoKej01fHRwYGt+JHJfK0BxWlg8cXVjWSt2bTs3VzNGQDNt
RC07VWg2IyE5NFJTd19XIXgrPmlOQVdIM1ghM1JlZkJYCnpwNDFncHY1PnFDIypvU2xBKX5AeW01
dDVManVQYGpkaSMmSiRJTlpnRn58O2VPcSU0aG8pK3dDKFpyPl8rdnghUwp6TmYmS0RAUWg0JTdz
JTh4MVdtNn1afEtSWWV8U2R8N1FRSEh3NUZfbDcmKWYwOVkzem5ScS1UQ0tuYTRyN1R6bGcKeiF0
fVZmeXtedUZjdDdfbXsjRjRULVRae0BNPkBYfE1SOE5ieGpDeFlYSlVkJGx4PXRyTyVhPm9ufVJV
UHR7cXI0CnpWeV9SdV5XRj9QXllCNSZEOVUoTGpCSUM1Pio7az5sYVFreDd1ZUYhVXBDN19Ee25I
XkFidkJ3PDJTYD1keGBYfQp6djNgXyNTSG4xXylMNEQ4P3UqKy1Edj9iPDxRdWw5Y31BRWRFcllj
TlVEdU9fN2JHN3Zaal49eEs7JjRKcXRwUEwKejE5fWhGTSg1WGsqTSVjMjAwQ1htXzcwMU8rcnM7
KjVucVl5c1Q9PT5tV1JCQ0FRMmJ4aHc8MzZkWUtfUSk5e3cpCnoobXg9d0BMfXFYVDJ3LUFTc2VX
cUE3X1RsNns7aDElaWE8I1lvYUd5LUh+fFJQPTckT2kydn5DaCVlUWY0VTxFYwp6NmorSD8wcyZp
cS1iPDcxYFFMSmVAUXs5MDVWWEs2S189XlNIYl5waip6K05+PSN8WDNNb3pUOCt0KGM5U0FAJE8K
ektXZFNKZjlJUiEoU2VFPlRHN1ZyQEk0WHdEV3JWbVhRV0soaylXMy0xQU1Za0JQPypAb2ROeGkj
MnVrZlZjUHB4CnpUQjs+VEQwWCg1Q3BKWUdISX5iKV49M0NsPn1NeHtYfn5HSlNqeSpjSzdWNUtI
YDRGJUxhZHZPZDZtOWBeKjI8YAp6e0ZhYDl0OVFHa0tLek5yR3R3OEN4cDI1a09NbV5RMFM8OFQ7
QTVxVWJrMF9iWFFWTGtXIzhWQSUtdXFiVzxTV1IKemVDdTJhJUBtN09PVSo+WkRTTmR5MF8haWFa
K1FUYTllTiZqSjU1KiszYUpkPWEtZ1IrKnY5UXZOVm42d0oyQmZ4Cnp2PD1AdlNCR2EpVVZSayRh
S1J6I3M1VGFQXyNZM1E1UXxNZ2BOaztkQE1vKnxYbTJsOHE+QzRMO31xRG5nMmR9Ugp6I05Tdm9T
aiRTR2pgLUZ5bDJmUD9qY2BKJXN1TCp5fDhlYH5IfnRHa157dVV+e0JYKnBManp9cHczSkNESzRT
XmkKejhFbjErJEJJN3trM31JQyk2O3xmNVd+ezMyRyl5VHJVeVNpTXkrS2p1b3E8TyNRbGI2V09r
QEplYjVofnMqQFJMCnpFWUxsVE98eURYZkgyeCFfbUFvIUZoQEZVR1UpY0hMeXJEKE5LPkxqcipB
WGRWWDViO2d5K0YpVj5nWFh1cG1GMQp6dXd9SmgjaFA5YzFaN0laX3MocVR4NUxoP2dlKTh2UTNV
aHRseyZiWiVgZ0lWUHcjUUdRX1V3JFElamBTMWFNcFEKenNZSS1PVH08QHVuVDxEdmgyfTN+cFko
eEN1Tk5fRShCcSNxWGFhXm9tIzRjYFpYR1ZJcWshYlchZXc4aHFHMHd0CnpjfGwhQHREMDwhaFlt
MDsmVWxTfnw3JXx6N0ljYV4mZXx3Uyk9OVhtOUskQnJCKiFnMDRBLUdoTWpiZ3RJQSVPbgp6XzA/
bE4rTTx+WkNIWVQ9NT0qKVFENTNTMG48SStWRnk1Z0JnaWJRN3B6QHYhM3o3V0g5NVJpZU1AR0tC
TlFZKUEKejNSNEI8VTFeVmNFQlpXSS1QZUAhe3xEbjhVQH41Sm5JQVIwQ2t4YEdTa0dKUVlTWmlM
byFkQE5Ud248Y1M3Xlh+Cno9Q0JEdnhvZld2LW9gUn57U31fNyVrfiFjRXorMjVQRVJAKntTVDUz
LVhpSH5RYz48JU1NVl8xQ3hje1pSV2JhUgp6TWMqSmZZKTwhbC0rUmQmR1ZMWjJua2dPfDwzSVQk
R2o2bWV5NXA5QERLSnkxN1ZZZys3fHFVWDhlZFJVU15+RCgKel5pOTtxJDtmPC1BQTltZG4qUHk0
VjR9UDE5SGNiRG9OKU8xM2FmRj9pe15lMGdPLWxBcSNNK3x0KEhNfkZzNWNyCnp2KlFDI3lrIWEm
WHtFKjcmbHVNZFo3anlOdTV1bF5ie0hLclFfYFo9IU5ANHdyMSFmYiF6Nmw0aGBqfGdkcHFUUwp6
Y3RTRjticlApNHVgY1Y4czkzM3FiM15qe293NW5iX302MGczdj5KPVooa0xRQH1SY2Jme2pMaWlE
REI3LThZRHcKej8wbClZQ3x1NHl3PiohMilzV2EjdXNrZV5TQH18THlCS1o0MHgzN3t1UyVsPnVg
fXoqI05oVzIkTXIjbnVVNz0jCnokTT55S0RPVHFMYXAtKUk/bWBCSEtHRCp0d19UVX5CMyhIXjY/
M1Q4O3V2SWVidmVlYit9OzdQNUpYeCkkMENSWgp6IzEwZz8mPjdDKzdtPTxScHZyQmkpPj5sNCMl
VDJaUl9ZMT1CP3lrbFkoNSVCJj91Tio7SEAzcWtsPER+cT1uZTUKejR4YWJRal5ES08lLXZ7NkVr
USl8R3RBMCNeQCopMHdESWJ9OWcjUF5WRWJPa2FOciNCVWg3RTIxVT4hQFYkLUJyCnp7IS1JVyU3
SkFjPkQyWXV6ZCY/PkY9QENlWms4cUxYKSU/SjYwd0E1ajR6OWQhOXptbipoU2htfDU0MTdDcldm
TAp6fExROTM7aF9DYTBvSFY+Xl4jPkRiVUQhZ25RM2pKZmY+YldzJkQ1bndDO3FHMWtjK2lvMFdX
ZVViSD1IO1RleSEKekheI2hCUmdrXjNAUXE7aiklcjxkP059R18hQikzcCUpOCNPTjFJKE9IXnFL
Ky1+NWRLd2ZoYz5NeThNQHsxQ2RtCnpRKikyWUpRY2MjcWY4KUQjI18/ISt0JHExfDh6P0AkNDtT
fGVCUCZTcTJ8YG5IUEFkIVp7MUQlO2hMfTI/YzBhJgp6a3Q8WVdYLTdpMXdzLTtyKk9qbnJvYmZh
cENKRm5eLUBtd2h2Y2F6fkF1KkFaY19YOHpJYVFtPU5ZNzxFRFJ2O0sKejBvZHgtekx+YzkmNzlF
NjFZYnVwVDM2ZkJYMHNaKEcrS3gmRS1KSkotTSome0RnUTJ4MmArYlpwdXtpMSpYeWIhCnpXZn1N
SVNaZ0Y1Sk5faj8pT34+UEZuN35uZkROM0pYT3QzIUtMQDVpdzV+d2xRI0YwYU9Bc2NWI241b0xN
TWZCSQp6a3IwTCh3I0pANExudTd8ayR+JTsrNCVGTVI8KTFHbnZjJVJoVFh3e2Z5WjZmJl5xMUFH
ZTwxSGl3TyZWZXN6cXsKeiFpb2FZKVJyVWBkJTA/PjRmR2puRV5KNnRHK3w4NEFwUTEpanIzTDVw
QC0wTXk2ITZuOFM2aHh1ZlQ7dCl4QDVXCnpRPiljNGRPSlAkZlloSWkjY1g9NDZmNV9aLUFeeW51
MH5RZnlvLUJoMylXSGtQeGNsdlhfREJlan0/bnVTMDQjdAp6VmNAbiU3bzJBVl9DciRMPEl9PHp1
fUkhTHIrMXhid1koSSVpPzFpJnpPRHpZdERsbWJ1TWJHaDU3UmlwZE12SzgKelNDN3ZAV3Fxbjwm
PENeTFRZRTdWaFZOMFpGOHUpdW9+eXg/bVheKkBRJiEoViN6dlNUTXF3KEpKNSE1TlJ1M2N8CnpX
eXViN1AlcVRvOGFtVVViJFR5ZUN3UkY0Z1dvaER1LWd3UDdfMWJ+cD5PK2dBMWdOOHs1S15gcCZ0
Zi1Ca1ctIQp6Vnk0aFhVNjxJb2BDQjBePFlvbT1KekYteEMofVo+XlBeYjs0PnEtaTB4fVVvdjYk
XzRBT3ZhKDFxaiRsVVMjelMKelh7OH1SR3JCayEhZDlmVCVCblJsP3kqRGNLX1NxKTA5dUZgajQ7
bDJ2NmNEVyM8RXZ1SjVUXiU4MXA0WlJmN2E7CnpYQll5dGdhUiV7cldtbTIlNDUjdXp4c3gpWWxj
RTYhN2xkfmJedXgyNmVfNF88STZWZDBebTcqKTxjQEBVS01sVgp6cTB6YHxFVkpPVlgoNFpHbnEq
aUpIP0BFUVBMJjZAdXA3YSpPeTUyZzJlNz50V0tKQkdzSG52QGB6WndZVHdFUSsKemo/YFRNJill
RGdpfGg9PEdKUnxQTm9IckA8ZTQ7MVAmaCRoNzYlNkBvYnV1M2EwKWoraGlKaFpeI01hVWxGU3Yj
Cno9fkRuZVBWPmV1I180RTlJQmg7Tz9MV050REg4a3A0aX1mRyVocT1SSVF0O1o9OCZedj1EYkdX
Qz1vfUEhMmZZMgp6OzswV3RlS19qRlE2Ry1fYU1YdlJLM25KUG9QI21XWTJuczZCaipUSmdtWil7
IXUoRGc9VW47IWB3ezlhR1AmSUsKWHNAWUd9REQoZkB4R3JEM2J8TDR5P1cyREt2blp5RwoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUg
Nzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I0ZTIzOTZj
NmQxZTc3MmFlZWUzYjM4ZGUzYTUxM2Y2YjRkYWNlZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTE2MDcKemNtZUhOZUs/ZnE4aD5YRGhNe0pWJCNWM0RlOCVMZlEwYXsoWUpIfEhgQW0kTyg4eCFy
R3QwfWFKdDlLd3MhNzxVCnpIQSQ/bV58XzF7YTwtI1JFUStnKTVeSUlvPG08JEEtb25tdlVGWG05
JitjYC1mNCRmSFQralg3X3gqZEg9bDhxcwp6PVh4KUF4SCV+K2V4ZTlMa24lcH5KcUk5MjI4Sk1f
SCgzckY7aGpsfSMyIVg1T3opV0I2UmhCez0tM0Z6JUVIenIKekcmdDBmd1BsO1JXciVnS0hIJjN3
ODUocGZseSVKMyglUkMoUEItKjJ3dSZ+fShhfmR7cWEqQVEjUitBSHZtaHZyCnprYkgxM3RsTDlQ
KCRCaDRIazQqfW9UZ3haQkl7SSRTQnp0QmI9Y3doUE1fYmwpQCpkWFVLcnVXWXVCNUlGT3o/bwp6
Izw2UVZgQDZqVGcxcGt4RkYxZUNSJkd9ZG4hbFQoPDEodkxuUm5nRil4Yi1wWm13WilWYmEhTWJV
MmAzO2p+WTsKejhlXl42WEl9MVlFc0wkZ1lKK2JHMGF9aEdpemkmdXpFYTw+P31WKUZ0fmZWVUls
VkBeSnY/VFRHZ3ZHTT8le297CnpMPSRWbE87QGEyYiV1QDx1PkYzQ1E1RSVHbjdVelotT31rMj9K
WGNGWSZkU2kyfkhma242Q1J4c0ZnTHNRKXJRSQp6YkZsbGc3T31hPzdFTFFaZDY9aitZQGxEMVpJ
LXM5bjBiS2xEdWh7fkclTVpee2wlTld2ZkVlMnU5dThiKDw2OHEKelpqWlVDJm98aDk5KGkjRD5p
S0NgO1FHZWh3S3BRWXg0el9DJDIpWkRtRDJQWk08LSswUzBgQSFvRmhnbW8zIStQCnpKYSh8dUdN
cWdeay01TWQ+N0lEJmt6Sk49Q0E2fFVHV35NRzw3PzhtZEUzbkZyK2VTbEh9KHg9VTZ5fW9aNyhx
RAp6TytYfSNiMkN3P3VnK3pRJEUmb3tkKjFxSCtaYEdoODE1fDh6MU1veWJDLTs+THNFdVRoQG1M
VUtgRHFBKzxJcjsKek1Pe05AfEUoQHwlKXhVTkhvZTtvRk1sKGs8ck1lTnole2kyPk5DQy13WD5w
a2RDeFpXVyZGNDx4dmhyKCNCPF9ACnojSWdEY1JpMCktWXx3WjdRJHlTOFVSfkZXRDVqNy1DOEA4
PG9kWn11eUMtP30jY216Ul52WVJgcjk4NUBHUCZ1RAp6aW5taHpVMih2P2FrISM7R1FBfjdfKUV2
Yj1Pd2ZVPTtfViYjZCUoeD9YTmQ9eHBhKygpQ3lCKTlOTzB9V1NUcXIKeistVEJzJX11cF4pOSpu
c2tVTl8rS0p2bmsoST1uUkBHdCtOfEowRjclJVhITlRJZSVPP25aSHdXc2BraTRKUmM/CnpGd29R
O0dSYDttOEVAIyRzPXJ4Jns+cjVSZ1Z+KUtjVF9iaCVBM21MNTBPbyhaVSYjK1VtND5MJCF2O24l
YkF3Rgp6SlZwREchYzhlUHk+T31jKnheaWY2R2hIN3JHT2x6ZWN3QWpIN25iR1grb3lqdEppO285
VDtzcFo1JW5LeHBaJmIKell9O3BZMFVGSlpxc3swQW1hKVNNVyEhK3g8TGRAQz84dkpAdiRoV2Vt
K1h1UHMheXsmUjZHITQ9QnJJO1NYPG5hCnp8TDlLN3YoZSFNTipzU3R1MUh0MHg4PlZGM2taVXRl
UzNCdmozWjF1RWwofURQZkxGNiZxd000Y1hQJj9aTiRGNgp6dDs7cD5IST8pS18xMUNUbyRaRDtt
djZfe0h8KjhneF5RKUJTRzxIZj9UQTdJQjhnMGU1Zm47ZlEwTVF7N3VOYHIKenErPGwpZHBaQENa
MlVOM2Q4VXt9Qm8wNWd5YC1+aGhZZ2NiNUBjM1pgN251bDRUVG1nUDZ8X2lnJE9TT2ZqNDVICnpL
OCFTNz59VGo7aiNuWjsoRGBsQkg/JW9OZnQ8PFUmISNPJF9pQHJaREB8MHg1dVBma0lLRXBuJDRT
XjZVTT54YAp6eGZCKG11Z359SXtiTlA2blRlbyZreV5BNT1gRExIR2w3dmFKMG89ZTcoaGZpRmsp
dHQwZUU/YGp0ViNBUlJkTyQKekclOEhqYXNwQyh0d18lRmNPTCsoWVJUa0dOYEB8ZyR7QVR3TjJ3
cUp1PHwzM0klTXpEUnVjWFlRdjtEMCgkfkVlCnp1cmtCb08/bkFIbSpgSSpSRSlEVjBWX0l6NWNT
alBKKiFDfUQzJnwpYmZ6a082LShARXJsQy1zJE9nZG89d1NxaAp6WEJCODE5KD96RkJ0ODZhdHNW
KUNVdlRhTE5jSnk0JkVsb3xrTWJZWGZ1Y2pjdDF3VUxffmJoI0FVais9N19uRTAKemFzJXsmaGVB
akFSaU1nVCFuRGNCO2h9PDU+YitIfGFNJUBmS25LTkhuNk51eyphOWVwVkZIJWsxcmBKTERwWXVi
CnpmfnxwNlZ2bzhhPXZffUFrYTMpZExUPTFaPCo0eFVjUWNpVHBTPmR7NGhvbGttbGR7c0ZWJCtY
eks4KkgwIzJ6KQp6aHFoM3V1Kj9wM0FqbWlATlBOIWZtJk5oSF9yYEohaEBUNmJIPG9Eez1ZK28r
QyhLSjtqeUA3SzNJR1lHJlIxZEcKekV0bUgqNkRaZFRHM188fWJ0ajw0YFJZX1N6YzRCYj1tVSNU
PSRoaHJfZj5fIWRQTT0mbWtOc2ZeWjxjMmhMT1VnCno9WVlfUCojeUVId2xOKTArTilVMFRVME95
MWpZNDF7eD45ezN3PzEkbEsqflREdjx3UHFEKyNeTyhpVFRPQmptYAp6WD1QeX15Q14mU1I/TChK
Zz9KKlUrVVhLflgtcHpERGxHVTExNHVXT05XN0kyVyh9ayhLcTE/bVQlYlZsej5KdUYKeiNYIV9I
U2g4YjdYI2dOTVFPTXxwa0VfJm92a3tFQXRxbFljUTxFaCopQX4qVnpUTDJuYH17bzZPJjF1I05O
VmpOCnowSjJDN3BZRDVmQVVyMDRhRz49RTlebCZ4TDM2ZDZmTGpBWSV0KXVTMmtAUFhfNVYwRDck
NyhfRTR2flEtISZgTAp6ZmdoKzlGMlQ4R2c9WVYzRyg0RUZ4TSh6NDE4X2NwTkU2ZERKPU8hSGV9
WTJKdFMoeXVOUGlFNGUlVF9gSnswanEKeig1bURLcG9mTnVMX0lZKksjfT99SDhjKDExO2BDe04m
VzI+c21RfHIjKV5UNnBtJV42cmw2MlFhdzRFZCloTldLCnozO0BMZUxMeGFFRGdsdklWTiZTKEJw
el4jLUlxSEFObjNLSHohWE9NVFY/P3pxIUlgIWlaVmNDNWQ9YilkVVpiRgp6N2ByVVRBO0JUUmNM
eyFRYTR4fj02PDNgOVEtbC1VUHV6bmJnfnx7QTBeb3Y3IWZPPH5Ze00mQXl0djJ2OWxRbV4Ka3lK
R3lKO0xtJF5BfnJBO1ghNV8oX31lWSlQaWJmJChgYD93IV9sUHcwdzZeV2c4JT5rCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3Nz
My9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGExNzNhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxMCkgc2l6ZSA3ODR4NTgwCisgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMTAsMCkgc2l6ZSAxMDB4MTAwCisgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMTAsMTEwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgx
MCwyMjApIHNpemUgMTAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjk5ZTVmZTliYTBmYzZjZTJjNTI5OWUxMjNlNWE5NTFjOWI5MDE2MApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE1NDIKemNtZUkyZHB1T0A4cHFkfGk1YUdpT2ZGP0okZ0s7
NTZtblVTT0NeYGNiX3MoKWM1YShkbEVXSStGODUzSlI/NmsxCnpsTn44MENuOEtYdmQ9a2tBfCQo
VE5GUG04dmtQKDNibHk3Y2RGUE13JE44JklwTDVweTxNVmxEdEBuTjItI3BMcgp6ZVYoO3NkYmx+
U2x3Qmk+QWpyeXtFPDUlajIkN0I7UW9kd3FVQDFNNjVmQTx0dktAV2RWRiR2KTRramtXQVltYjwK
ejVoaHpyRUYmeUs4Q3ktYWdqekJ9RWtaK0JFSGc4VWExIz9vMikpQ3AyJnwkSjw+Mjc0KTRfcjZr
cXtSVjYmO1FzCnokJUdUJDt8QipsWHJoUFZXJVpOVVIqe01uK1hJRU1FSEFkaGA1T25uWTNjS1N3
eHZuUzw9bXkxe2lRd1kxWm5qJAp6cXVGcyotR19nWnYwYWooanZrOVVUQ31vPDdQNUhkbCh5QEZf
Vnd+fW9BPkJANXBUWH05YmJCM3NzRDYzc0ItQiQKenwzUjl1SlorenNkdzF0QCpFRFZYNihMQzdW
Wi11KUo9eHpZQDZ2TmQ8cDtTKFVTNUN3bH0xbEFgJGdQJXR0ZjEkCnpeYXJZPFBAVWRoWX5IMGs9
fm8lR3wyfHUzVm1SfDxuVGRJNHBLR0ZUSEhvNGJYJVFGM25hcyk2YDd2VSVJYSo1VAp6bDxCcyYr
VER5PW9RYXh2ejRGMGI0c0JYcj97Ymsqd3NvIUpVZ0lZJE09b19pc0ZgQHxSZERASiNrMSQ/byt7
K1YKemwmWlBpT1UtKCRZNTlsdm9FYz4zd3EzQWwreEYoTmM7NzhrUnB4Mi1lZTEzJj5heyg2IUh6
bTMycm4pMUdoQyZzCnp6VjI0Ml9mQG0jczJNcThYNmVrSlY5dWtjekc4RjdXOzRJblF2IzE0TlBM
cy1gR3d0MWIxaUtuVn0rKz5ycCNAdAp6NFRzWkZRUU1wT2dzZGs9aWlHP3xqb2hLUmZGZGlPdjlh
bUNPRkJQeTlybTsleTRZdnJzazAwdzNoaypPckQwdCkKemk+fUlRK1BmfGVNNnRiKGE0bStuOEp6
eDZwemZVZk9ZbTNDTENXKDErfiRSZXg4O3Y/TkFobTFLR0VHJl59dGlgCnpYVT1SM1NFK1B1ZFEh
LXJzJHdVJS1oNlV5WkFgNWsqO0FERHFgQFU5ezRlZXFvK0MrSFcodkdZbVhxWkFPXmFYWAp6OSRN
dX5aTWg7MFQzakQzPndaRnx2IXZzR0A3PjNCaWhzcXYraHwpYD8keWB4VHo5fkFmWGB+fiRlT3FC
UUMldTkKemFxdXJ8VSReSWNtZ1RGNTkmLUI5aGNveXl8SlpMbEIyKFZfeDRfQU4tWHp4PENGdGFK
cz8wbTRZNjt1VCtISGZJCno7IWNIQmtGXmk3XypFd1V7TU56M21KMUNqI3JiM1UzcFJOKk5eMERP
X0olWWNAYGxDPlZjK2gkJlVRekx4LW83Zwp6dVVETFlzZCF2Ml8wLWkobmZiTSQteFJvU2tjflNf
NEp4N1R5eWh9JFJLRzE+SyltNUs5NUBwZG9NYCFhZWY7ZCYKemNSJXh1dyhnUy1Rc2RvQUcqWVFG
T1BaJENydmAyMHVPOEYxRV5vcEx3fmQ5Pip+RW1qV1pVfUdqPEptYkd6aEtvCnp3TD15Q0hBOWJ7
UE4mTnlTMW42bCl7ITBWezl+e3dnM3l0akpHT2YjNjlsNnN2MWRrQkFOTzRFRj0tbmhIMVotRAp6
YShCbVJ3UWNrM21EMVJeVSFnK2dxYD10dnUxIUAwRlV+R2FsKTkqZVZoQk5zTHtefXE3KkI8fkpT
Q1RRR0klPyoKekEpTlBlcyZ0WGdod25kS0M9OGQ5P2sofHI+LWdgeEszYyZnQH1LM0IpREc+JWNU
LUtsRGJNb3I/YjJ0Km16KldNCnpjdXJaQT5rWDxsKGlaeiN1JHFCI2hzYUw5YDtJYypkQmBhTHpK
JXt3RFFUQSpZaUBzMztOd31JUSZqMGslVVZ1fQp6YndQYzIkUyohUnM9dz1tYUJLKWYpLV44YE1Y
QE5vdmEwbWFaJUkxaGpxQ045Kno9QGsrTWxFYVl4IXxMRDkjJEIKekt4WiZzRzFoXig0JFoyPCVW
RyRgaTt3Y3pAS2wjYilQbD1hVXB0NzhQYFFiVEhOR3YoNlo7Mk5BKC14fjR1ZU4lCnpUdE97M1dI
JGkpSkZ8KmBVVjZyKyFYdzxrMm0+I2l0PkRJOTs4Km83JVl5OyZjViEwcEBTVGdaY3dePSs5Jil5
Mwp6Jjs8SlM1Tk93YElTViYtMT1AS2ZTJCF8fDRHcktTUUV6bTxoOHI2Sz9QfWNhei1UIUQwISl5
MDVvKldLVyNYZFgKenFIeXA/IVNNN1VrQDE9JE1mI0VvdD89RlkkMWdRSTAmU2pANWpsM1lCSjFS
Q0M1VkxCNzBXQjhoWClUcjMpdmJGCnpPZVc3PSF0eUo/V205PCZFY3hoITc4QTNNUGxlPTBDamZQ
QyZkO3E4bFk8fjdQYXNabnJqI1RzTyNvVlQpZ3VyPAp6M2R2K3V5MWFVWWdyeW51MElAYzBsR3Rf
TkF4OTxfY1prVmBAIy0pXzApTiZWOypne1BtTH1mT20kMVlGc3NefVUKemdIKXZwNiZSPzdne18x
b2VnaE54SDY8bGkzX3lmKTUrbDZne2d4P1YyPnxFN0M2VypYbWs1c3tKa2RUV2ZZK2tgCnprI2Ey
Ki0wODJsYjZBb15ebXg0cVZ8cnc8aDl2MEIwMW5LdyN3bDxsdlFUMjZjTVdWTDBUbF53Nmx2ZUNC
cHh9egp6UWNVYztYOX1FQzVsJWxLWlU2QzllZW9FSVBQcDxBJWM/bUEzMShKKzhMZmh7PFIoR0N2
dyhoMXZzd308WHNmZysKejhucyYtZGlqMzJLUnRjRUxMP0E5ZE18byt0c15qazEwQUlTKms2Mio8
cUZhNjFRPlpRdzlIWXdjJT1hb3FYaVR+Cnp7UEJKUSkyamNLPnlYZWlhOEt3NFElRiUmS3kwViVC
eFNNRm9DX0ZYWj92TnhiZyZBQGFpSE5ZbCtsQzZLKHAkNAp6cD0zO045LV84cypibi1hQl8tfEJ1
PSpfQUkwdipMUm96ekVWaUtYQUpqQyNaSHRhQXNvP3UjU15vQGtSOEd3N2IKemVPUGN+IyhFfX1x
cy1xM2VSQmpPSlQzfEAkYD0kVnllM1YlXnNMKHdWZioxcFNUTVJebTgxeD4+PFVJR3MmaXQlCnpO
SW5YKD8yQ1AjTWopO1ckWXNMeFVJNHxmJWBGZ0MwNk9UIVMrJEJlO2BIV35WKzhLVjwhbzMxU2ZL
UG9uYGdsRQp6ZWdHO2pFKCRJUjl3e2lFSzJqdlNyaHBlMGMlbDZkWip5PV9hOGJ3I3xJSz9wSld9
dlRgODwoUSZBRHw5S2AwM3kKent1aDcleF9HPzEjcWdHJmp5R34zN3d8Pzdaeyl6KGtDVyowa08t
JkckN2Y3OWVmfUAjQlVJXzR1QzA+UWVWQnJQCk8mclYwVDlhcnN7OFVGJUZmUSRZQgoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Nz
czMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRhMTczYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUgNzg0eDU4MAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDEwLDExMCkgc2l6ZSAxMDB4MTAwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MTAsMjIwKSBzaXplIDEwMHgxMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MTQ1ZTg1OWZiNDQ4NzU5NWNlYTE3YWQyNDJiMGRkYzljYzEzMzdlCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTYzNQp6Y21lSE5TeSlybzdDcz9pM0lXMlRBYmIhUkxgOWhx
JjxiSEhnVUJHR2g9Zl9GVmkqRlZNTSR0SGdFQXdeWHAwNEYKeldSI1d9QV85Zm1penVWWXJHTngt
NWQpTU0zPS1mKkVqZjkoNTR9RzBgZiM0a2NsTz9FQDNzSDQqWiUqdHpMVm5RCnpVQGVOPWcjLVhW
KVlpdUcxT1VKPjBLbiVkQioxQVloKUUzUkpvWFcrSlA4M0lLPj1yQHFRZH5nTCYxaUR7ezhfNQp6
YGF1U01kYjt8P3tzd3glZFVgPkl7eV9uT2B1WVliIT8jcDl2blltSVNVQX5RU1lWdFlAeGhfemYm
ZF5FbWdHOGwKemNGME0zXkpQJFImMi13fkdaTWxrQXo5fUdUP2lJTXpudH1HPylRM3FzQTBFRlZS
QEskTDYwZ3V6RERweDh2YnppCnpnK0J5TSkmeDs2dUhlN1Q3VlZNdFY/OVYjd3FJMyNTVz44ZVQt
Xm9VXnNaJWNaUDhlck0pa1J+N1U0QXt0dEJxKQp6PUhsNGgkP2w+YFBwLWd4NmY4OEBBOzs2TT95
JWNxalRJbE55U1ZnX0EqUkBLajxBVElCeVI/YzZ5JXtLbUs4QVYKenhkdlV6KDxrcVFkSmh3JXJi
YmhpaWdnUytgfFlEVkQtZ207WE4+UnhyME1IN1JCaV9BOCg8NUJJfGFNVjQ8QnA5Cno4cj0kPVZ1
KEl9TFh4SmNAQSlaUEd3bXl+KWR7V0hLJnZ7YD5hdFNRbEAobWd6MTtjMk4qZWtgU2I/MHd2JClq
WAp6bTVlV2tVIU1hOzkrfjF+K3Nxbl4hI3hrcGxvYGFFX3A0Uyg+fWpKZDU8K2okZzlgRmI/dnFx
Z1A7Sz5odDxwT2UKekl3dH44RFZRNmd6amV5NERiP0BMKkVgOVdwKiFVdjdJZUNxdEgtezYrdVN4
Ym98UGp3Vl87SVRaIWBoQis0aGJaCnpuTDJ3aGR3SFE9QHk1djhRYHZ7eiRIJUd0PHRtVDZFO3lV
UVpPandYNiQxQjhXdHBTPTNJZStCditRQHNEY2p2MAp6Mz87Wjt0VFAldHZOemBAVUJOb0c0PTJ7
PnZ4OWw2dTVvcDB5PHxkZEVXSzRHc2tAPTx4aWtHfCh0TEJCUkRwYSMKendCTF9xPWNmJnVXKCgh
UiRSYXx7bzJqJDRIYTxjQmE3PVVfaSN7fSQ+NXxXbTc4JWdaVH52I2FeaDdtM1NvVUc8CnpLWmtU
bytTIUBrRzJIdilfZXpRMWghRj0mJFIjZlFKI1crbz9GU2JFOCNfeyY8fl8xJm5Lfjk7I3FGeGNp
JkJrTwp6VU9JYFczdFVLQ24wd2B8SDZ+Y25eM1QpTEAwKX13SDZ2QmhKOWpkejsmdn4kPiRSS1U4
dH08fTczMXdnZmVVM2kKelVKRVRsUzxPR3hVZHFpRlM2QEF2ZXFUeml1Q34yNC1kI3dleylkMlg+
PmQmdjBrflMyTHEzQilYRyE4YWsrfGZsCnpnRER3Z2V+KE5ANEo3X0gkfG9PWFRXI3x+dip0KCE5
c1l+VT07XnNvVCRDfG1mQjN4byNeVkp8THBLMipJbSl2cgp6JjdGN2pxTiYwKWFYdHFZV1g2QGdE
cnEyUTlUXlgoSlIwV0xvTXolcTl3JXM/UWlRZExsU2ZKaT92RzUrczBrdm0KeldvJl87UkZJPmMt
e1cpdjAwWT1zbnpfY3A9bzRvNWlecFdYYkRyPUcqVUlULVdqfDcjVlc8djk5am55P3E5fSM1Cnpq
S0xGUXJabD0yYkMpTGktOzlrMChARk1qRUQ/YjVBJXhIdkVSbktQaClveFh6cDcqZ3dnSUZxNW1g
KlUjSyFAagp6TXpWQmFhTyFYT0haWHNoZVB+NllKSyYhdGA4WCEtSFc5V0dHI3JvS298QEF0a1VZ
dXJoR0A1XjBCZ0c2bT9uUmsKemwoUmVsZ0xmX1F5eiR9b18hOHNmZXBhI3MtSnYqb0FXOD5sdWxG
cX1BWChRSSNkVkhhWkZlcUxASU1qZ1VDTCtBCnp0UGRvLSRCNiQrbjd5KmJULTRFJF8mRTBtWE59
T3k5eU1hPHFkZmJnNm1tU0JxaVhRJU1HUyQ7Z2orZyhLOyV6dgp6bU58fko4bjJ+LSZYTTM4NDFp
fStKYlB7eG1jYCY1K0xnSWgqZU5VcEZ2aCtgQE42NTtDKHY3JVFfWHs+NW4zQXkKenhkZnBFb2gy
eVpwbkQwckRuVi1heTlzNF5aRjlWfCFFdVg0OS11TFBSYm97cXEpP3BPNjhoLXpkJCZJZXJHIUpr
CnpTP3I5KHl0QH1iTjhjYj44bEVpXmMzKkd2Ql5JT1pPUWkwUDBPX0F9OFVfeitJTW9MbFE4X0hA
dHRKTjJXc1FhfQp6QGxBfHwtMWJAa3NmWTs2Q1U9PkU5Mj4pciVBN2Nfcm95R3pPZXQrX1dTJFlJ
QXQrVHVTbHhKS0FaUWNHY1Y8aVMKekombjxxNiFvK0x6bk9IWWdQK0B9TXRUVGFgU3hCeSsqVlVB
e2FWTHR7eT8+OUQtNzd5MDtIUzdqPk03SWp9NXA2CnpoO29oeF5PdXI5NTF2WURXNCRnblVnYiZ5
Tjw5JiNkJThMdHdESUItdXB4XyZmcUxUQjRzQzR0Zj1vS3MyNzhQRwp6Z2ZnZGhaNyZTdDh7KzUk
TFIlKiZUfHprT3FTRDBNZih4Oyk3WGBSbzx6V1FjOUU4RXxqJEF0bkxUdH1iWmJNOUAKekhQX35q
bmxHe2JlWWh3SGFWWTFySDJYfTBIdVZUcHJuXiFWQz0wYUBgViNIT0chI0lhbj8lP2sxUFROU2JX
JXVBCnpfK1goczF0SWgkVTk9UzFJekI7REdUeCojP00hUkxmcEZLUUtpbz5WZThxQytrOGVnVUNK
P0dzK2p6TGRnTXhlWAp6bEoyZXhsOEdANHVJaUM7MXRmK3lOTGtHUGlRfHBkXlBpZlFJJSpiT1h9
YD9TOGVUdWgmQ0tALTdsfiQwVDVOM0sKendoamNYUHZoNT9JPF4+KDxwSikxNU1ob3FmcGAtVjZP
aDZ9TCRaPygwY21qfWwlU3c3VXZ9ME8qU0B0JVE9WDxWCnpucXF0OGY5MTFnRCZsNjF4MmMoPTxU
aDE3cDR6bTJYRSU1Uk9mcUJtKilrOVFfdU4+KHJiPCF9JXJjK0xYayVrcQp6QH4ocktzUklTKmI5
PT44PlRscz5yc29eN0w3UUdxWDQrKEAwMmIrZUp0KUE3RklHKGFnQE9TRCU3M1klSyVoWE4KelZF
JDZRNExUeyVOcjZyWnIoWEpiPD83RTRwTlJTM0UmdmM3YDB5X1BNOSt8QmZyUSo9aFl9UCVRMjBS
TTFCRE1ICms8UkJzVV9Ye34qX0Y7Pl5EbDtsfmNBaT99ezYhN2VTfip4Jm5mb1VHMlE7P1RtO2U5
KAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFk
ZS10aWxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVy
IGF0ICgxOCwxMCkgc2l6ZSAxMDJ4MTAyCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBz
aXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwx
MjIpIHNpemUgMTAyeDEwMgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEw
MngxMDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNp
emUgMTAyeDEwMgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIg
W2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTNm
MGJkYi4uZTg2MTYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNjcsNiArMTA2Nyw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAKQEAgLTEwODAsNyArMTA4MSw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZDZkY2M5Li5jYTUyNzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDExLTExLTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDU1MzIEltYWdlcyBjcm9zcy1m
YWRlKCkgaW1hZ2UgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUyMTYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIwOTI1ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5kZXIgLXdl
YmtpdC1jcm9zcy1mYWRlLiBPbmx5IGNyb3NzLWZhZGVzIGVudGlyZWx5IGNvbXBvc2VkIG9mIGlt
YWdlcyB3aWxsIHJlbmRlciBmb3Igbm93LAorICAgICAgICBjcm9zcy1mYWRlcyBpbnZvbHZpbmcg
Z2VuZXJhdGVkIGltYWdlcyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICBSZW9y
Z2FuaXplIEdlbmVyYXRlZEltYWdlIHRvIGJlIHRoZSBiYXNlIGNsYXNzIGZvciBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZSBhbmQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuCisKKyAgICAgICAgQWRk
IGEgcGVuZGluZyBzdGF0ZSB0byBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLCB3aGljaCBpcyB1c2Vk
IHRvIGVuYWJsZSB0aGUgcGVuZGluZy1pbWFnZXMgbG9hZGluZworICAgICAgICBtZWNoYW5pc20g
Zm9yIC13ZWJraXQtY3Jvc3MtZmFkZSdzIHN1Yi1pbWFnZXMuIFJld29yayB0aGUgbG9naWMgaW4g
Q1NTU3R5bGVTZWxlY3RvciB0byBzdXBwb3J0IHBlbmRpbmcKKyAgICAgICAgZ2VuZXJhdGVkIGlt
YWdlcy4KKyAgICAgICAgCisgICAgICAgIFN1cHBvcnQgcGFyc2luZyBmcmFjdGlvbmFsIHZhbHVl
cyBmb3IgdGhlIGNyb3NzLWZhZGUgYW1vdW50IChmb3IgZXhhbXBsZSwgMC41ID0gNTAlKS4gQ2xh
bXAgY3Jvc3MtZmFkZQorICAgICAgICBhbW91bnQgdG8gMC0xIHJhbmdlLgorCisgICAgICAgIFRl
c3RzOiBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sCisgICAgICAgICAg
ICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBj
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAgICAgICAgICBjc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ2FudmFzVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
YW52YXNWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjppc1BlbmRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6c3ViaW1hZ2VJc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
bG9hZFN1YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKToKKyAgICAgICAg
KiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFk
ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6On5D
U1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6
Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1NDcm9z
c2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3Nm
YWRlT2JzZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgICogY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1
ZTo6aW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTR3JhZGllbnRWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdlbmVyYXRl
ZE9yUGVuZGluZ0Zyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
Ojpsb2FkUGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6
OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZElt
YWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1h
Z2VPYnNlcnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpzZXRSZWFkeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyYXRlZEltYWdlOjpHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwLgorICAgICAg
ICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6On5HZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6R2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5k
aW5nSW1hZ2U6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNz
c0ltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNzc0lt
YWdlR2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6
OlN0eWxlUGVuZGluZ0ltYWdlKToKKworCiAyMDExLTEwLTI4ICBPamFuIFZhZmFpICA8b2phbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW1wbGVtZW50IGZsZXgtYWxpZ24gZm9yIGZsZXgtZmxv
dzogY29sdW1uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZDI0Y2JkLi40ZDA3
Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1MDQsNiArMjUwNCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGFzaEFycmF5LmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIFwKQEAgLTI2MjEsNyAr
MjYyMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFNtb290aGluZ01vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFRyYWl0c01hc2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFdpZHRoVmFyaWFudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMTJiN2FjZi4uZWRkMWY0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgXAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRQb2ludC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAgXApA
QCAtMTA0MSw3ICsxMDQyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERhdGEuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBcCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2Vu
ZXJhdGVkSW1hZ2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAgXApAQCAtMjA2Nyw2ICsyMDY4LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
aCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBcCkBAIC0yMTA0LDYgKzIxMDYsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2JjZjU1Ny4uZTQ4YzFiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMzMyNiw2ICszMzI2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAnLApA
QCAtMzM0Miw3ICszMzQ0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZv
cm1EYXRhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2Uu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5
ZGE3YzQuLjhiM2Y0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTY5OCw2ICs2OTgsMTAgQEAKIAkJMkJFOEUyQzcxMkE1ODlF
QzAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkJFOEUyQzYxMkE1ODlFQzAwRkFENTUwIC8qIEhU
TUxNZXRhQ2hhcnNldFBhcnNlci5oICovOyB9OwogCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1NTAg
LyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNo
YXJzZXRQYXJzZXIuY3BwICovOyB9OwogCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAgLyogU1ZH
UGFyc2luZ0Vycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDNBMEUzNTEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQ0ODFGMDAxNDZC
NUM0QzAwQUE3ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0MTQ2MENENkYwMDI2MzYz
MyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CisJCTJENDgxRjAyMTQ2QjVD
NTUwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTUxNDYwQ0Q2RjAwMjYzNjMzIC8q
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggKi87IH07CisJCTJENDgxRjAzMTQ2QjVDNjUwMEFB
NzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OworCQkyRDQ4MUYwNDE0NkI1QzZCMDBBQTc4
MzQgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5oICovOyB9OwogCQkyRDhGRUJEQzE0M0UzRUY3MDA3MjUwMkIgLyog
Q1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVl
LmNwcCAqLzsgfTsKIAkJMkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDhG
RUJEQjE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCAqLzsgfTsKIAkJMkQ5
MDY2MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAv
KiBMYXlvdXRTdGF0ZS5jcHAgKi87IH07CkBAIC01Mjc0LDcgKzUyNzgsNiBAQAogCQlCQ0UwMTM5
QTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBK
U1N0eWxlU2hlZXQuY3BwICovOyB9OwogCQlCQ0UwMTM5QjBDMEJFRjE4MDA0Mzg2MEEgLyogSlNT
dHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmggKi87IH07CiAJCUJD
RTA0QzhBMERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTA0Qzg5MERBRkY3QTAwMDdBMEY0MSAvKiBH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlCQ0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDRDOTMwREFGRjkw
MjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKIAkJQkNFMUM0MUIwRDk4Mjk4
MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLzsg
fTsKIAkJQkNFMUM0MUMwRDk4Mjk4MTAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTFDNDFBMEQ5ODI5ODAwMDNC
MDJGMiAvKiBMb2NhdGlvbi5jcHAgKi87IH07CiAJCUJDRTFDNDNCMEQ5ODMwRDMwMDNCMDJGMiAv
KiBKU0xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRTFDNDM5MEQ5ODMwRDMwMDNCMDJGMiAvKiBKU0xvY2F0aW9uLmNwcCAqLzsgfTsK
QEAgLTc3OTcsNiArNzgwMCwxMCBAQAogCQkyOUQ3QkNGOTE0NDRBRjdEMDA3MDYxOUMgLyogQWNj
ZXNzaWJpbGl0eVNwaW5CdXR0b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkJFOEUyQzYxMkE1ODlFQzAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaDsgcGF0
aCA9IHBhcnNlci9IVE1MTWV0YUNoYXJzZXRQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MTWV0YUNoYXJz
ZXRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NjE0NjBDRDZG
MDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQz
QTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXJzaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZh
bHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREIxNDNFM0VGNzAw
NzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMjU2OSw3ICsxMjU3Niw2IEBACiAJCUJDRTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0
eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5
bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTAxMzk5MEMwQkVG
MTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Uw
NEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
Q0UwNEM5MzBEQUZGOTAyMDA3QTBGNDEgLyogR2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MUEwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2F0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMUM0MjIwRDk4MjlGMjAwM0IwMkYyIC8q
IExvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMb2NhdGlvbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTE5OCw3ICsxOTIwNCwxMCBAQAogCQkJCTM3MjAy
MTk4MTA2MjEzQzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5nTW9kZS5oICovLAogCQkJCTM3ODRD
MzRBMEUxMUFBMzQwMDdEOEQ0OCAvKiBGb250VHJhaXRzTWFzay5oICovLAogCQkJCUJDRTQ0MTM1
MTJGNzQ5MEIwMDlCODRCOCAvKiBGb250V2lkdGhWYXJpYW50LmggKi8sCi0JCQkJQkNFMDRDOTMw
REFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NDE0
NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAorCQkJCTJE
MkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAor
CQkJCTJEMkZDMDU2MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5j
cHAgKi8sCisJCQkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmggKi8sCiAJCQkJQkMyM0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZElt
YWdlLmggKi8sCiAJCQkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICov
LAogCQkJCTA4NkJCRDBFMTM2MDM5QzIwMDhCMTVEOCAvKiBHbHlwaC5oICovLApAQCAtMjIzNTcs
NiArMjIzNjYsOCBAQAogCQkJCTE5QkZGNjRCMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTlCRkY2NEQxMUMwRjJB
QzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDJBQjQ4MEFENDM4QzAwMDM3ODU0MCAvKiBET01TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTJENDgxRjAyMTQ2QjVDNTUw
MEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NTAyQUI5MjBBRDQzOTRFMDAzNzg1NDAgLyogRE9NU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDJBQjRB
MEFENDM4QzAwMDM3ODU0MCAvKiBET01TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDJBQjkzMEFENDM5NEUwMDM3ODU0MCAvKiBET01TVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAzNCw2ICsy
NTA0NSw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
CiAJCQkJQUQwM0FBRkExNDY4NDU1MzAwQTM5QjVCIC8qIENTU1ZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTJENDgxRjAwMTQ2QjVDNEMwMEFBNzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyog
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCNURDNjkx
MTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDFFMUIxRDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMjlDMTZFMTMwMEMyRTIwMDJENzk0RSAvKiBBY2Nlc3NpYmlsaXR5QWxs
SW5PbmUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTc2OCw3ICsyNTc4MSw2IEBACiAJCQkJOTcy
MDVBQUYxMjM5MjhDQTAwQjE3MzgwIC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQzgxQjg5MEM0NDIyRjcwMDE5RUNFMyAvKiBGVFBEaXJlY3RvcnlQYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzMkU4NDkwQzUxNDkzRjAwQjE1MDBGIC8qIEdD
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0UwNEM5NDBEQUZGOTAyMDA3QTBG
NDEgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MEQ3QzUwRTlD
MUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA1MkJG
Q0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDYW52YXNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKaW5k
ZXggMjMyYTUyNS4uZWZhZDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nh
bnZhc1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKQEAg
LTQ0LDYgKzQ0LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7
CiAKKyAgICBib29sIGlzUGVuZGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9p
ZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKikgeyB9CisKICAgICB2b2lkIHNl
dE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKSB7IG1fbmFtZSA9IG5hbWU7IH0KIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmluZGV4IGI3NzA2OWYuLjQy
ZTU5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApAQCAtMjYs
OCArMjYsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVW
YWx1ZS5oIgogCisjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUgIkNhY2hlZElt
YWdlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgorI2luY2x1
ZGUgIlN0eWxlR2VuZXJhdGVkSW1hZ2UuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDYWNo
ZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiwgY29u
c3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwordm9pZCBsb2FkU3ViaW1hZ2UoUGFz
c1JlZlB0cjxDU1NWYWx1ZT4sIENhY2hlZFJlc291cmNlTG9hZGVyKik7Citib29sIHN1YmltYWdl
SXNQZW5kaW5nKFBhc3NSZWZQdHI8Q1NTVmFsdWU+KTsKKwogU3RyaW5nIENTU0Nyb3NzZmFkZVZh
bHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0ID0gIi13ZWJr
aXQtY3Jvc3MtZmFkZSgiOwpAQCAtNDAsMTcgKzUzLDEwNyBAQCBTdHJpbmcgQ1NTQ3Jvc3NmYWRl
VmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogCiBJbnRTaXplIENTU0Nyb3NzZmFkZVZhbHVl
OjpmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICBVTlVTRURf
UEFSQU0ocmVuZGVyZXIpOworICAgIGZsb2F0IHBlcmNlbnRhZ2UgPSBtX3BlcmNlbnRhZ2UtPmdl
dEZsb2F0VmFsdWUoKTsKKyAgICBmbG9hdCBpbnZlcnNlUGVyY2VudGFnZSA9IDEgLSBwZXJjZW50
YWdlOworCisgICAgSW50U2l6ZSBzaXplOworCisgICAgQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSA9
IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV9mcm9tSW1hZ2UsIHJlbmRlcmVyLCBzaXplKTsKKyAg
ICBDYWNoZWRJbWFnZSogdG9JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV90b0ltYWdl
LCByZW5kZXJlciwgc2l6ZSk7CisKKyAgICBpZiAoIWZyb21JbWFnZSB8fCAhdG9JbWFnZSkKKyAg
ICAgICAgcmV0dXJuIEludFNpemUoKTsKIAotICAgIHJldHVybiBJbnRTaXplKCk7CisgICAgSW50
U2l6ZSBmcm9tSW1hZ2VTaXplID0gZnJvbUltYWdlLT5pbWFnZSgpLT5zaXplKCk7CisgICAgSW50
U2l6ZSB0b0ltYWdlU2l6ZSA9IHRvSW1hZ2UtPmltYWdlKCktPnNpemUoKTsKKworICAgIHJldHVy
biBJbnRTaXplKGZyb21JbWFnZVNpemUud2lkdGgoKSAqIGludmVyc2VQZXJjZW50YWdlICsgdG9J
bWFnZVNpemUud2lkdGgoKSAqIHBlcmNlbnRhZ2UsCisgICAgICAgIGZyb21JbWFnZVNpemUuaGVp
Z2h0KCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLmhlaWdodCgpICogcGVyY2Vu
dGFnZSk7CiB9CiAKLVBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQorYm9vbCBDU1NDcm9z
c2ZhZGVWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViaW1hZ2VJc1Bl
bmRpbmcobV9mcm9tSW1hZ2UpIHx8IHN1YmltYWdlSXNQZW5kaW5nKG1fdG9JbWFnZSk7Cit9CisK
K3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIGxvYWRTdWJpbWFnZShtX2Zyb21JbWFn
ZSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIGxvYWRTdWJpbWFnZShtX3RvSW1hZ2UsIGNh
Y2hlZFJlc291cmNlTG9hZGVyKTsKK30KKworYm9vbCBzdWJpbWFnZUlzUGVuZGluZyhQYXNzUmVm
UHRyPENTU1ZhbHVlPiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgpKS0+
Y2FjaGVkT3JQZW5kaW5nSW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKTsKKworICAgIGlmICh2YWx1
ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
U1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5pc1BlbmRpbmcoKTsKKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIGxv
YWRTdWJpbWFnZShQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVl
KCkpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlLmdldCgpKS0+
Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBz
dGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4odmFsdWUuZ2V0KCkpLT5sb2FkU3Vi
aW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VG
b3JDU1NWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgY29uc3QgUmVuZGVyT2JqZWN0
KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ocmVu
ZGVyZXIpOwogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKIAorICAgIENhY2hlZFJlc291cmNlTG9h
ZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpOworCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hl
ZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKS0+Y2FjaGVkSW1hZ2UoKTsKKworICAgIGlmICh2
YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IEhhbmRs
ZSBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIChhbmQgdGh1cyBjcm9zcy1mYWRlcyB3aXRoIGdyYWRp
ZW50cyBhbmQgY2FudmFzKS4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxJbWFnZT4g
Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgaWYgKHNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIENhY2hlZEltYWdlKiBmcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVl
KG1fZnJvbUltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisgICAgQ2FjaGVkSW1hZ2UqIHRvSW1hZ2Ug
PSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fdG9JbWFnZSwgcmVuZGVyZXIsIHNpemUpOworCisg
ICAgaWYgKCFmcm9tSW1hZ2UgfHwgIXRvSW1hZ2UpCisgICAgICAgIHJldHVybiBJbWFnZTo6bnVs
bEltYWdlKCk7CisKKyAgICBtX2dlbmVyYXRlZEltYWdlID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2U6OmNyZWF0ZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIG1fcGVyY2VudGFnZS0+Z2V0RmxvYXRWYWx1
ZSgpLCAmbV9jcm9zc2ZhZGVPYnNlcnZlciwgZml4ZWRTaXplKHJlbmRlcmVyKSwgc2l6ZSk7CisK
KyAgICByZXR1cm4gbV9nZW5lcmF0ZWRJbWFnZS5nZXQoKTsKK30KKwordm9pZCBDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Y3Jvc3NmYWRlQ2hhbmdlZChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFVO
VVNFRF9QQVJBTShyZWN0KTsKKworICAgIFJlbmRlck9iamVjdFNpemVDb3VudE1hcDo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gY2xpZW50cygpLmVuZCgpOworICAgIGZvciAoUmVuZGVyT2JqZWN0U2l6
ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygpLmJlZ2luKCk7IGN1cnIg
IT0gZW5kOyArK2N1cnIpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBjbGllbnQgPSBjb25zdF9j
YXN0PFJlbmRlck9iamVjdCo+KGN1cnItPmZpcnN0KTsKKyAgICAgICAgY2xpZW50LT5pbWFnZUNo
YW5nZWQoc3RhdGljX2Nhc3Q8V3JhcHBlZEltYWdlUHRyPih0aGlzKSk7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Jvc3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5o
CmluZGV4IGQ1NDlmYmUuLjQwNDQxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVW
YWx1ZS5oCkBAIC0yNywzNyArMjcsNjUgQEAKICNkZWZpbmUgQ1NTQ3Jvc3NmYWRlVmFsdWVfaAog
CiAjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0ltYWdl
VmFsdWUuaCIKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdl
LmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xhc3MgRG9jdW1lbnQ7
CiAKIGNsYXNzIENTU0Nyb3NzZmFkZVZhbHVlIDogcHVibGljIENTU0ltYWdlR2VuZXJhdG9yVmFs
dWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Nyb3NzZmFkZVZhbHVlPiBj
cmVhdGUoUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8Q1NT
SW1hZ2VWYWx1ZT4gdG9JbWFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Nyb3NzZmFkZVZh
bHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ3Jv
c3NmYWRlVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENTU0Nyb3NzZmFkZVZhbHVlKGZyb21JbWFnZSwgdG9JbWFnZSkpOworICAgIH0KIAogICAg
IFN0cmluZyBjdXN0b21Dc3NUZXh0KCkgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPEltYWdlPiBp
bWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7Ci0gICAgYm9vbCBpc0ZpeGVkU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KICAgICBJbnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmpl
Y3QqKTsKIAorICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Q7CisgICAgdm9pZCBsb2FkU3ViaW1h
Z2VzKENhY2hlZFJlc291cmNlTG9hZGVyKik7CisKICAgICB2b2lkIHNldFBlcmNlbnRhZ2UoUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGVyY2VudGFnZSkgeyBtX3BlcmNlbnRhZ2UgPSBw
ZXJjZW50YWdlOyB9CiAKIHByaXZhdGU6Ci0gICAgQ1NTQ3Jvc3NmYWRlVmFsdWUoUGFzc1JlZlB0
cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gdG9J
bWFnZSkKKyAgICBDU1NDcm9zc2ZhZGVWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9tSW1h
Z2UsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2UpCiAgICAgICAgIDogQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZShDcm9zc2ZhZGVDbGFzcykKICAgICAgICAgLCBtX2Zyb21JbWFnZShmcm9tSW1h
Z2UpCiAgICAgICAgICwgbV90b0ltYWdlKHRvSW1hZ2UpCi0gICAgewotICAgIH0KKyAgICAgICAg
LCBtX2Nyb3NzZmFkZU9ic2VydmVyKHRoaXMpIHsgfQogCi0gICAgUmVmUHRyPENTU0ltYWdlVmFs
dWU+IG1fZnJvbUltYWdlOwotICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBtX3RvSW1hZ2U7Cisg
ICAgLy8gTk9URTogV2UgcHV0IHRoZSBJbWFnZU9ic2VydmVyIGluIGEgbWVtYmVyIGluc3RlYWQg
b2YgaW5oZXJpdGluZyBmcm9tIGl0CisgICAgLy8gdG8gYXZvaWQgYWRkaW5nIGEgdnB0ciB0byBD
U1NDcm9zc2ZhZGVWYWx1ZS4KKyAgICBjbGFzcyBDcm9zc2ZhZGVPYnNlcnZlclByb3h5IDogcHVi
bGljIEltYWdlT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgQ3Jvc3NmYWRlT2JzZXJ2
ZXJQcm94eShDU1NDcm9zc2ZhZGVWYWx1ZSogb3duZXJWYWx1ZSkgOiBtX293bmVyVmFsdWUob3du
ZXJWYWx1ZSkgeyB9CisgICAgICAgIHZpcnR1YWwgfkNyb3NzZmFkZU9ic2VydmVyUHJveHkoKSBP
VkVSUklERSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1h
Z2UqLCBjb25zdCBJbnRSZWN0JiByZWN0KSBPVkVSUklERSB7IG1fb3duZXJWYWx1ZS0+Y3Jvc3Nm
YWRlQ2hhbmdlZChyZWN0KTsgfTsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFBhdXNlQW5p
bWF0aW9uKGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIGRpZERyYXcoY29uc3QgSW1hZ2UqKSBPVkVSUklERSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyB9
CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UqLCBp
bnQpIE9WRVJSSURFIHsgfQorICAgIHByaXZhdGU6CisgICAgICAgIENTU0Nyb3NzZmFkZVZhbHVl
KiBtX293bmVyVmFsdWU7CisgICAgfTsKKworICAgIHZvaWQgY3Jvc3NmYWRlQ2hhbmdlZChjb25z
dCBJbnRSZWN0Jik7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fZnJvbUltYWdlOworICAgIFJl
ZlB0cjxDU1NWYWx1ZT4gbV90b0ltYWdlOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
bV9wZXJjZW50YWdlOworCisgICAgUmVmUHRyPEltYWdlPiBtX2dlbmVyYXRlZEltYWdlOworCisg
ICAgQ3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSBtX2Nyb3NzZmFkZU9ic2VydmVyOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
YWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3Bw
CmluZGV4IGZlYjAxZjQuLmI1NWI0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRW
YWx1ZS5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDU1NHcmFkaWVudFZhbHVlLmgiCiAKLSNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAj
aW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgotI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgi
CisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgog
I2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTY3LDcgKzY3LDcgQEAgUGFzc1JlZlB0cjxJbWFnZT4g
Q1NTR3JhZGllbnRWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50
U2l6ZSYKICAgICAgICAgZ3JhZGllbnQgPSBzdGF0aWNfY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZh
bHVlKj4odGhpcyktPmNyZWF0ZUdyYWRpZW50KHJlbmRlcmVyLCBzaXplKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShncmFkaWVu
dCwgc2l6ZSk7CisgICAgUmVmUHRyPEltYWdlPiBuZXdJbWFnZSA9IEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlOjpjcmVhdGUoZ3JhZGllbnQsIHNpemUpOwogICAgIGlmIChjYWNoZWFibGUpCiAgICAg
ICAgIHB1dEltYWdlKHNpemUsIG5ld0ltYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmgKaW5kZXggZjEzYWM5OC4uZWExMGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5oCkBAIC02OSw2ICs2OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRml4ZWRT
aXplKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBJbnRTaXplIGZpeGVkU2l6ZShjb25z
dCBSZW5kZXJPYmplY3QqKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KIAorICAgIGJvb2wg
aXNQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGxvYWRTdWJpbWFn
ZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIENTU0dyYWRp
ZW50VmFsdWUoQ2xhc3NUeXBlIGNsYXNzVHlwZSwgQ1NTR3JhZGllbnRSZXBlYXQgcmVwZWF0LCBi
b29sIGRlcHJlY2F0ZWRUeXBlID0gZmFsc2UpCiAgICAgICAgIDogQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZShjbGFzc1R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZS5jcHAKaW5kZXggMWMzYzY1Mi4uNDFiNDY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3R5bGVHZW5l
cmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMCwxMyAr
MTExLDI2IEBAIHZvaWQgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6cHV0SW1hZ2UoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hCiAgICAgbV9pbWFnZXMuYWRkKHNpemUs
IGltYWdlKTsKIH0KIAorU3R5bGVJbWFnZSogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJh
dGVkT3JQZW5kaW5nSW1hZ2UoKQoreworICAgIGlmIChpc1BlbmRpbmcoKSkKKyAgICAgICAgbV9p
bWFnZSA9IFN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUodGhpcykuZ2V0KCk7CisgICAgZWxzZSBp
ZiAoIW1fYWNjZXNzZWRJbWFnZSkgeworICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwor
ICAgICAgICBtX2ltYWdlID0gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKHRoaXMsIGlzRml4
ZWRTaXplKCkpOworICAgIH0KKworICAgIHJldHVybiBtX2ltYWdlLmdldCgpOworfQorCiBTdHls
ZUdlbmVyYXRlZEltYWdlKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpnZW5lcmF0ZWRJbWFnZSgp
CiB7CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9hY2Nlc3NlZEltYWdl
ID0gdHJ1ZTsKICAgICAgICAgbV9pbWFnZSA9IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZSh0
aGlzLCBpc0ZpeGVkU2l6ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7CisK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3R5bGVHZW5lcmF0ZWRJbWFnZSo+KG1faW1hZ2UuZ2V0
KCkpOwogfQogCiBQYXNzUmVmUHRyPEltYWdlPiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjppbWFn
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTcwLDQg
KzE4NCw0MSBAQCBJbnRTaXplIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmZpeGVkU2l6ZShjb25z
dCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBJbnRTaXplKCk7CiB9CiAKK2Jv
b2wgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKK3sKKyAgICBzd2l0
Y2ggKGNsYXNzVHlwZSgpKSB7CisgICAgY2FzZSBDcm9zc2ZhZGVDbGFzczoKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IENTU0Nyb3NzZmFkZVZhbHVlKj4odGhpcyktPmlzUGVuZGlu
ZygpOworICAgIGNhc2UgQ2FudmFzQ2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBDU1NDYW52YXNWYWx1ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBjYXNlIExpbmVh
ckdyYWRpZW50Q2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDU1NMaW5l
YXJHcmFkaWVudFZhbHVlKj4odGhpcyktPmlzUGVuZGluZygpOworICAgIGNhc2UgUmFkaWFsR3Jh
ZGllbnRDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENTU1JhZGlhbEdy
YWRpZW50VmFsdWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9h
ZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7
CisgICAgY2FzZSBDcm9zc2ZhZGVDbGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTQ3Jvc3Nm
YWRlVmFsdWUqPih0aGlzKS0+bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FudmFzQ2xhc3M6CisgICAgICAgIHN0YXRpY19jYXN0
PENTU0NhbnZhc1ZhbHVlKj4odGhpcyktPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CisgICAg
ICAgIHN0YXRpY19jYXN0PENTU0xpbmVhckdyYWRpZW50VmFsdWUqPih0aGlzKS0+bG9hZFN1Ymlt
YWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmFk
aWFsR3JhZGllbnRDbGFzczoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTUmFkaWFsR3JhZGllbnRW
YWx1ZSo+KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuaAppbmRleCBkMGViNjViLi4xYWI0NDc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKQEAgLTMzLDkgKzMzLDExIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBj
bGFzcyBJbWFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFN0eWxlR2VuZXJhdGVkSW1h
Z2U7CitjbGFzcyBTdHlsZUltYWdlOwogCiBzdHJ1Y3QgU2l6ZUFuZENvdW50IHsKICAgICBTaXpl
QW5kQ291bnQoSW50U2l6ZSBuZXdTaXplID0gSW50U2l6ZSgpLCBpbnQgbmV3Q291bnQgPSAwKQpA
QCAtNTgsMTEgKzYwLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJP
YmplY3QqKTsKICAgICBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25z
dCBJbnRTaXplJik7CiAKKyAgICBTdHlsZUltYWdlKiBnZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgp
OwogICAgIFN0eWxlR2VuZXJhdGVkSW1hZ2UqIGdlbmVyYXRlZEltYWdlKCk7CiAKICAgICBib29s
IGlzRml4ZWRTaXplKCkgY29uc3Q7CiAgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVy
T2JqZWN0Kik7CiAKKyAgICBib29sIGlzUGVuZGluZygpIGNvbnN0OworCisgICAgdm9pZCBsb2Fk
U3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKik7CisKIHByb3RlY3RlZDoKICAgICBDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlKENsYXNzVHlwZSk7CiAKQEAgLTcwLDcgKzc3LDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgcHV0SW1hZ2UoY29uc3QgSW50U2l6ZSYsIFBhc3NSZWZQdHI8SW1hZ2U+
KTsKICAgICBjb25zdCBSZW5kZXJPYmplY3RTaXplQ291bnRNYXAmIGNsaWVudHMoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudHM7IH0KIAotICAgIFJlZlB0cjxTdHlsZUdlbmVyYXRlZEltYWdlPiBt
X2ltYWdlOworICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogICAgIGJvb2wgbV9hY2Nl
c3NlZEltYWdlOwogCiAgICAgSGFzaENvdW50ZWRTZXQ8SW50U2l6ZT4gbV9zaXplczsgLy8gQSBj
b3VudCBvZiBob3cgbWFueSB0aW1lcyBhIGdpdmVuIGltYWdlIHNpemUgaXMgaW4gdXNlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA4YTFkNjcyLi40ZTNlNmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcApAQCAtNjMxMywxMiArNjMxMywyMCBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VDcm9zc2ZhZGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1
ZT4mCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhID0gYXJncy0+bmV4dCgpOwogCi0gICAg
Ly8gVGhlIHRoaXJkIGFyZ3VtZW50IGlzIHRoZSBjcm9zc2ZhZGUgdmFsdWUuIEl0IGlzIGEgcGVy
Y2VudGFnZS4KLSAgICBpZiAoIWEgfHwgYS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BFUkNFTlRBR0UpCisgICAgLy8gVGhlIHRoaXJkIGFyZ3VtZW50IGlzIHRoZSBjcm9zc2ZhZGUg
dmFsdWUuIEl0IGlzIGEgcGVyY2VudGFnZSBvciBhIGZyYWN0aW9uYWwgbnVtYmVyLgorICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGVyY2VudGFnZTsKKyAgICBpZiAoIWEpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1BFUkNFTlRBR0UpCisgICAgICAgIHBlcmNlbnRhZ2UgPSBwcmltaXRpdmVWYWx1ZUNh
Y2hlKCktPmNyZWF0ZVZhbHVlKGNsYW1wVG88ZG91YmxlPihhLT5mVmFsdWUgLyAxMDAsIDAsIDEp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgZWxzZSBpZiAoYS0+dW5pdCA9
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICAgICAgcGVyY2VudGFnZSA9IHBy
aW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlVmFsdWUoY2xhbXBUbzxkb3VibGU+KGEtPmZWYWx1
ZSwgMCwgMSksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKKyAgICBlbHNlCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJlc3VsdCA9IENTU0Nyb3NzZmFkZVZhbHVlOjpjcmVh
dGUoc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGZyb21JbWFnZVZhbHVlLmdldCgpKSwgc3Rh
dGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHRvSW1hZ2VWYWx1ZS5nZXQoKSkpOwotICAgIHJlc3Vs
dC0+c2V0UGVyY2VudGFnZShjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUoYSkpOworICAgIHJl
c3VsdCA9IENTU0Nyb3NzZmFkZVZhbHVlOjpjcmVhdGUoZnJvbUltYWdlVmFsdWUsIHRvSW1hZ2VW
YWx1ZSk7CisgICAgcmVzdWx0LT5zZXRQZXJjZW50YWdlKHBlcmNlbnRhZ2UpOwogCiAgICAgY3Jv
c3NmYWRlID0gcmVzdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
aW5kZXggMzQzNzNlMC4uMWM1NWY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcApAQCAtNDI0OSw3ICs0MjQ5LDcgQEAgU3R5bGVJbWFnZSogQ1NTU3R5bGVTZWxlY3Rv
cjo6c3R5bGVJbWFnZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NWYWx1ZSogdmFsdWUKICAg
ICAgICAgcmV0dXJuIGNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShwcm9wZXJ0eSwgc3RhdGljX2Nh
c3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlKSk7CiAKICAgICBpZiAodmFsdWUtPmlzSW1hZ2VHZW5l
cmF0b3JWYWx1ZSgpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZSo+KHZhbHVlKS0+Z2VuZXJhdGVkSW1hZ2UoKTsKKyAgICAgICAgcmV0dXJuIGdlbmVy
YXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShwcm9wZXJ0eSwgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSo+KHZhbHVlKSk7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTQyNjIsNiArNDI2
MiwxNCBAQCBTdHlsZUltYWdlKiBDU1NTdHlsZVNlbGVjdG9yOjpjYWNoZWRPclBlbmRpbmdGcm9t
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQwogICAgIHJldHVybiBpbWFnZTsKIH0KIAor
U3R5bGVJbWFnZSogQ1NTU3R5bGVTZWxlY3Rvcjo6Z2VuZXJhdGVkT3JQZW5kaW5nRnJvbVZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqIHZhbHVlKQor
eworICAgIFN0eWxlSW1hZ2UqIGltYWdlID0gdmFsdWUtPmdlbmVyYXRlZE9yUGVuZGluZ0ltYWdl
KCk7CisgICAgaWYgKGltYWdlICYmIGltYWdlLT5pc1BlbmRpbmdJbWFnZSgpKQorICAgICAgICBt
X3BlbmRpbmdJbWFnZVByb3BlcnRpZXMuYWRkKHByb3BlcnR5KTsKKyAgICByZXR1cm4gaW1hZ2U7
Cit9CisKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFwRmlsbEltYWdlKENTU1Byb3BlcnR5SUQg
cHJvcGVydHksIEZpbGxMYXllciogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKIHsKICAgICBpZiAo
dmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkpIHsKQEAgLTU1NzksNiArNTU4NywyNCBAQCBib29sIENT
U1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUs
IFJlbmRlclN0eWxlKiBzdAogCiAjZW5kaWYKIAorU3R5bGVJbWFnZSogQ1NTU3R5bGVTZWxlY3Rv
cjo6bG9hZFBlbmRpbmdJbWFnZShTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGluZ0ltYWdlKQorewor
ICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKKworICAgIGlmIChwZW5kaW5n
SW1hZ2UtPmNzc0ltYWdlVmFsdWUoKSkgeworICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZh
bHVlID0gcGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZhbHVlKCk7CisgICAgICAgIHJldHVybiBpbWFn
ZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgfQorCisgICAg
aWYgKHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CisgICAgICAgIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUqIGltYWdlR2VuZXJhdG9yVmFsdWUgPSBwZW5kaW5nSW1hZ2Ut
PmNzc0ltYWdlR2VuZXJhdG9yVmFsdWUoKTsKKyAgICAgICAgaW1hZ2VHZW5lcmF0b3JWYWx1ZS0+
bG9hZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIHJldHVybiBpbWFn
ZUdlbmVyYXRvclZhbHVlLT5nZW5lcmF0ZWRJbWFnZSgpOworICAgIH0KKworICAgIHJldHVybiAw
OworfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKIHsKICAg
ICBpZiAobV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzLmlzRW1wdHkoKSkKQEAgLTU1ODgsMTQgKzU2
MTQsMTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAg
Zm9yIChIYXNoU2V0PGludD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nSW1hZ2VQcm9w
ZXJ0aWVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDU1NQcm9wZXJ0eUlE
IGN1cnJlbnRQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KCppdCk7CiAKLSAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gbV9lbGVt
ZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotCiAgICAgICAgIHN3aXRj
aCAoY3VycmVudFByb3BlcnR5KSB7CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dy
b3VuZEltYWdlOiB7CiAgICAgICAgICAgICAgICAgZm9yIChGaWxsTGF5ZXIqIGJhY2tncm91bmRM
YXllciA9IG1fc3R5bGUtPmFjY2Vzc0JhY2tncm91bmRMYXllcnMoKTsgYmFja2dyb3VuZExheWVy
OyBiYWNrZ3JvdW5kTGF5ZXIgPSBiYWNrZ3JvdW5kTGF5ZXItPm5leHQoKSkgewogICAgICAgICAg
ICAgICAgICAgICBpZiAoYmFja2dyb3VuZExheWVyLT5pbWFnZSgpICYmIGJhY2tncm91bmRMYXll
ci0+aW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
Q1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdl
Kj4oYmFja2dyb3VuZExheWVyLT5pbWFnZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYmFja2dyb3VuZExheWVyLT5zZXRJbWFnZShpbWFnZVZhbHVlLT5jYWNo
ZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAgICAgICAg
U3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0
eWxlUGVuZGluZ0ltYWdlKj4oYmFja2dyb3VuZExheWVyLT5pbWFnZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBiYWNrZ3JvdW5kTGF5ZXItPnNldEltYWdlKGxvYWRlZEltYWdlKTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTU2MDQsMTEgKzU2MjgsMTEgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2Fk
UGVuZGluZ0ltYWdlcygpCiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q29udGVudDogewog
ICAgICAgICAgICAgICAgIGZvciAoQ29udGVudERhdGEqIGNvbnRlbnREYXRhID0gY29uc3RfY2Fz
dDxDb250ZW50RGF0YSo+KG1fc3R5bGUtPmNvbnRlbnREYXRhKCkpOyBjb250ZW50RGF0YTsgY29u
dGVudERhdGEgPSBjb250ZW50RGF0YS0+bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChjb250ZW50RGF0YS0+aXNJbWFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBTdHlsZUltYWdlKiBpbWFnZSA9IHN0YXRpY19jYXN0PEltYWdlQ29udGVudERhdGEqPihjb250
ZW50RGF0YSktPmltYWdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBp
bWFnZSA9IHN0YXRpY19jYXN0PEltYWdlQ29udGVudERhdGEqPihjb250ZW50RGF0YSktPmltYWdl
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2UtPmlzUGVuZGluZ0ltYWdlKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU3R5bGVQZW5kaW5nSW1hZ2UqPihpbWFnZSktPmNzc0ltYWdl
VmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoU3R5bGVDYWNoZWRJbWFn
ZSogY2FjaGVkSW1hZ2UgPSBpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxv
YWRlcikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEltYWdl
Q29udGVudERhdGEqPihjb250ZW50RGF0YSktPnNldEltYWdlKGNhY2hlZEltYWdlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5k
aW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihpbWFnZSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2FkZWRJbWFnZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnREYXRh
KS0+c2V0SW1hZ2UobG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtNTYyMSw4ICs1NjQ1LDgg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBDdXJzb3JEYXRhJiBjdXJyZW50Q3Vyc29yID0gY3Vyc29yTGlzdC0+YXQo
aSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoU3R5bGVJbWFnZSogaW1hZ2UgPSBjdXJy
ZW50Q3Vyc29yLmltYWdlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1h
Z2UtPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdl
Kj4oaW1hZ2UpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRDdXJzb3Iuc2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVJ
bWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVu
ZGluZ0ltYWdlKj4oaW1hZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vy
cmVudEN1cnNvci5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9
CkBAIC01NjMyLDE2ICs1NjU2LDE2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRp
bmdJbWFnZXMoKQogCiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlSW1hZ2U6
IHsKICAgICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+bGlzdFN0eWxlSW1hZ2UoKSAmJiBtX3N0
eWxlLT5saXN0U3R5bGVJbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRp
bmdJbWFnZSo+KG1fc3R5bGUtPmxpc3RTdHlsZUltYWdlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldExpc3RTdHlsZUltYWdlKGltYWdlVmFsdWUt
PmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICAgICAgICAg
IFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxT
dHlsZVBlbmRpbmdJbWFnZSo+KG1fc3R5bGUtPmxpc3RTdHlsZUltYWdlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0TGlzdFN0eWxlSW1hZ2UobG9hZGVkSW1hZ2UpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckltYWdlU291cmNlOiB7CiAgICAgICAg
ICAgICAgICAgaWYgKG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCkgJiYgbV9zdHlsZS0+Ym9y
ZGVySW1hZ2VTb3VyY2UoKS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAg
ICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1h
Z2UqPihtX3N0eWxlLT5ib3JkZXJJbWFnZVNvdXJjZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAg
ICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJJbWFnZVNvdXJjZShpbWFnZVZhbHVl
LT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAg
ICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8
U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5ib3JkZXJJbWFnZVNvdXJjZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvcmRlckltYWdlU291cmNlKGxvYWRlZEltYWdl
KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CkBAIC01NjUwLDggKzU2NzQsOCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5k
aW5nSW1hZ2VzKCkKICAgICAgICAgICAgICAgICBpZiAoU3R5bGVSZWZsZWN0aW9uKiByZWZsZWN0
aW9uID0gbV9zdHlsZS0+Ym94UmVmbGVjdCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IE5pbmVQaWVjZUltYWdlJiBtYXNrSW1hZ2UgPSByZWZsZWN0aW9uLT5tYXNrKCk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChtYXNrSW1hZ2UuaW1hZ2UoKSAmJiBtYXNrSW1hZ2UuaW1hZ2UoKS0+
aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1
ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obWFza0ltYWdl
LmltYWdlKCkpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZWZs
ZWN0aW9uLT5zZXRNYXNrKE5pbmVQaWVjZUltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNh
Y2hlZFJlc291cmNlTG9hZGVyKSwgbWFza0ltYWdlLmltYWdlU2xpY2VzKCksIG1hc2tJbWFnZS5m
aWxsKCksIG1hc2tJbWFnZS5ib3JkZXJTbGljZXMoKSwgbWFza0ltYWdlLm91dHNldCgpLCBtYXNr
SW1hZ2UuaG9yaXpvbnRhbFJ1bGUoKSwgbWFza0ltYWdlLnZlcnRpY2FsUnVsZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5n
SW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtYXNrSW1hZ2UuaW1hZ2UoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgcmVmbGVjdGlvbi0+c2V0TWFzayhOaW5lUGllY2VJ
bWFnZShsb2FkZWRJbWFnZSwgbWFza0ltYWdlLmltYWdlU2xpY2VzKCksIG1hc2tJbWFnZS5maWxs
KCksIG1hc2tJbWFnZS5ib3JkZXJTbGljZXMoKSwgbWFza0ltYWdlLm91dHNldCgpLCBtYXNrSW1h
Z2UuaG9yaXpvbnRhbFJ1bGUoKSwgbWFza0ltYWdlLnZlcnRpY2FsUnVsZSgpKSk7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC01NjU5LDggKzU2ODMsOCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5n
SW1hZ2VzKCkKIAogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tCb3hJbWFn
ZVNvdXJjZTogewogICAgICAgICAgICAgICAgIGlmIChtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3Vy
Y2UoKSAmJiBtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3VyY2UoKS0+aXNQZW5kaW5nSW1hZ2UoKSkg
ewotICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3VyY2UoKSkt
PmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFza0Jv
eEltYWdlU291cmNlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVy
KSk7CisgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBl
bmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3R5bGUtPm1hc2tC
b3hJbWFnZVNvdXJjZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hc2tC
b3hJbWFnZVNvdXJjZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNTY2OCw4ICs1NjkyLDggQEAgdm9pZCBD
U1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza0ltYWdlOiB7CiAgICAgICAgICAgICAgICAgZm9yIChGaWxsTGF5
ZXIqIG1hc2tMYXllciA9IG1fc3R5bGUtPmFjY2Vzc01hc2tMYXllcnMoKTsgbWFza0xheWVyOyBt
YXNrTGF5ZXIgPSBtYXNrTGF5ZXItPm5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAo
bWFza0xheWVyLT5pbWFnZSgpICYmIG1hc2tMYXllci0+aW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2Uo
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9
IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obWFza0xheWVyLT5pbWFnZSgpKS0+Y3Nz
SW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWFza0xheWVyLT5zZXRJbWFn
ZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAg
ICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0lt
YWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obWFza0xheWVyLT5pbWFnZSgpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBtYXNrTGF5ZXItPnNldEltYWdlKGxvYWRlZEltYWdl
KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IDE1M2Vm
ODYuLmY5ZjJjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaApAQCAtNDQs
NiArNDQsNyBAQCBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsKIGNsYXNzIENTU1Byb3BlcnR5Owog
Y2xhc3MgQ1NTRm9udEZhY2U7CiBjbGFzcyBDU1NGb250RmFjZVJ1bGU7CitjbGFzcyBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlOwogY2xhc3MgQ1NTSW1hZ2VWYWx1ZTsKIGNsYXNzIENTU1JlZ2lvblN0
eWxlUnVsZTsKIGNsYXNzIENTU1J1bGVMaXN0OwpAQCAtNjYsNiArNjcsNyBAQCBjbGFzcyBSdWxl
RGF0YTsKIGNsYXNzIFJ1bGVTZXQ7CiBjbGFzcyBTZXR0aW5nczsKIGNsYXNzIFN0eWxlSW1hZ2U7
CitjbGFzcyBTdHlsZVBlbmRpbmdJbWFnZTsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHls
ZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC0yODQsNiArMjg2LDcgQEAgcHVi
bGljOgogCiAgICAgU3R5bGVJbWFnZSogc3R5bGVJbWFnZShDU1NQcm9wZXJ0eUlELCBDU1NWYWx1
ZSopOwogICAgIFN0eWxlSW1hZ2UqIGNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0
eUlELCBDU1NJbWFnZVZhbHVlKik7CisgICAgU3R5bGVJbWFnZSogZ2VuZXJhdGVkT3JQZW5kaW5n
RnJvbVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqKTsKIAogICAg
IGJvb2wgYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9hcHBs
eVByb3BlcnR5VG9SZWd1bGFyU3R5bGU7IH0KICAgICBib29sIGFwcGx5UHJvcGVydHlUb1Zpc2l0
ZWRMaW5rU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5r
U3R5bGU7IH0KQEAgLTMzMCw2ICszMzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlTVkdQ
cm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlKik7CiAjZW5kaWYKIAorICAgIFN0eWxlSW1hZ2UqIGxv
YWRQZW5kaW5nSW1hZ2UoU3R5bGVQZW5kaW5nSW1hZ2UqKTsKICAgICB2b2lkIGxvYWRQZW5kaW5n
SW1hZ2VzKCk7CiAKICAgICBzdHJ1Y3QgTWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggZTI4OWRk
NC4uYmNkMzQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCkBAIC05OCw2ICs5OCw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQml0bWFwSW1hZ2Ug
OiBwdWJsaWMgSW1hZ2UgewogICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0ZWRJbWFnZTsKKyAgICBm
cmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlOwogICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShOYXRp
dmVJbWFnZVB0ciBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2
NDFkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5o
IgorCisjaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5o
IgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSog
ZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VP
YnNlcnZlciogb2JzZXJ2ZXIsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKKyAgICA6IG1fZnJvbUltYWdlKGZyb21JbWFnZSkKKyAgICAsIG1fdG9JbWFnZSh0b0lt
YWdlKQorICAgICwgbV9wZXJjZW50YWdlKHBlcmNlbnRhZ2UpCisgICAgLCBtX2Nyb3NzZmFkZVNp
emUoY3Jvc3NmYWRlU2l6ZSkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgLCBtX2Ny
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIoYWRvcHRQdHIobmV3IENyb3NzZmFkZVN1YmltYWdlT2Jz
ZXJ2ZXJQcm94eSh0aGlzKSkpCit7CisgICAgbV9zaXplID0gc2l6ZTsKKworICAgIG1fZnJvbUlt
YWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKKyAgICBt
X3RvSW1hZ2UtPmFkZENsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOwor
CisgICAgbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLT5zZXRSZWFkeSh0cnVlKTsKK30KKwor
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6On5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpCit7Cisg
ICAgbV9mcm9tSW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIu
Z2V0KCkpOworICAgIG1fdG9JbWFnZS0+cmVtb3ZlQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VP
YnNlcnZlci5nZXQoKSk7Cit9CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdD
cm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIGZsb2F0IGludmVyc2VQ
ZXJjZW50YWdlID0gMSAtIG1fcGVyY2VudGFnZTsKKworICAgIEltYWdlKiBmcm9tSW1hZ2UgPSBt
X2Zyb21JbWFnZS0+aW1hZ2UoKTsKKyAgICBJbnRTaXplIGZyb21JbWFnZVNpemUgPSBmcm9tSW1h
Z2UtPnNpemUoKTsKKyAgICBJbWFnZSogdG9JbWFnZSA9IG1fdG9JbWFnZS0+aW1hZ2UoKTsKKyAg
ICBJbnRTaXplIHRvSW1hZ2VTaXplID0gdG9JbWFnZS0+c2l6ZSgpOworCisgICAgLy8gRHJhdyBu
b3RoaW5nIGlmIGVpdGhlciBvZiB0aGUgaW1hZ2VzIGhhc24ndCBsb2FkZWQgeWV0LgorICAgIGlm
IChmcm9tSW1hZ2UgPT0gSW1hZ2U6Om51bGxJbWFnZSgpIHx8IHRvSW1hZ2UgPT0gSW1hZ2U6Om51
bGxJbWFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOworCisgICAgY29udGV4dC0+Y2xpcChJbnRSZWN0KElu
dFBvaW50KCksIG1fY3Jvc3NmYWRlU2l6ZSkpOworICAgIGNvbnRleHQtPmJlZ2luVHJhbnNwYXJl
bmN5TGF5ZXIoMS4wKTsKKworICAgIC8vIERyYXcgdGhlIGltYWdlIHdlJ3JlIGZhZGluZyBhd2F5
IGZyb20uCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlmIChtX2Nyb3NzZmFkZVNpemUgIT0g
ZnJvbUltYWdlU2l6ZSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKHN0YXRpY19j
YXN0PGZsb2F0PihtX2Nyb3NzZmFkZVNpemUud2lkdGgoKSkgLyBmcm9tSW1hZ2VTaXplLndpZHRo
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4o
bV9jcm9zc2ZhZGVTaXplLmhlaWdodCgpKSAvIGZyb21JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAg
ICBjb250ZXh0LT5zZXRBbHBoYShpbnZlcnNlUGVyY2VudGFnZSk7CisgICAgY29udGV4dC0+ZHJh
d0ltYWdlKGZyb21JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAg
Y29udGV4dC0+cmVzdG9yZSgpOworCisgICAgLy8gRHJhdyB0aGUgaW1hZ2Ugd2UncmUgZmFkaW5n
IHRvd2FyZHMuCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGlmIChtX2Nyb3NzZmFkZVNpemUg
IT0gdG9JbWFnZVNpemUpCisgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNf
Y2FzdDxmbG9hdD4obV9jcm9zc2ZhZGVTaXplLndpZHRoKCkpIC8gdG9JbWFnZVNpemUud2lkdGgo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Piht
X2Nyb3NzZmFkZVNpemUuaGVpZ2h0KCkpIC8gdG9JbWFnZVNpemUuaGVpZ2h0KCkpKTsKKyAgICBj
b250ZXh0LT5zZXRBbHBoYShtX3BlcmNlbnRhZ2UpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZSh0
b0ltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpLCBDb21wb3NpdGVQbHVzTGln
aHRlcik7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisgICAgY29udGV4dC0+ZW5kVHJhbnNw
YXJlbmN5TGF5ZXIoKTsKK30KKwordm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3Np
dGVPcCkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tcG9zaXRlT3ApOworICAgIFVOVVNFRF9QQVJB
TShzcmNSZWN0KTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigq
Y29udGV4dCk7CisgICAgY29udGV4dC0+Y2xpcChkc3RSZWN0KTsKKyAgICBjb250ZXh0LT50cmFu
c2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKworICAgIGRyYXdDcm9zc2ZhZGUoY29u
dGV4dCk7Cit9CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgT3duUHRyPEltYWdlQnVmZmVy
PiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobV9zaXplKTsKKyAgICBpZiAoIWlt
YWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGaWxsIHdpdGggdGhlIGNyb3Nz
LWZhZGVkIGltYWdlLgorICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gaW1h
Z2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICBkcmF3Q3Jvc3NmYWRlKGdyYXBoaWNzQ29udGV4dCk7
CisKKyAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KKyAgICBp
bWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9y
bSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgY29tcG9zaXRlT3AsIGRlc3RSZWN0KTsKK30KKyAg
ICAKK3ZvaWQgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjppbWFnZUNoYW5nZWQoQ2Fj
aGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQoreworICAgIGlmIChtX3JlYWR5
KQorICAgICAgICBtX293bmVyVmFsdWUtPmltYWdlQ2hhbmdlZChpbWFnZSwgcmVjdCk7Cit9CisK
K3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSog
aW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGltYWdlKTsK
KyAgICBtX29ic2VydmVyLT5jaGFuZ2VkSW5SZWN0KHRoaXMsICpyZWN0KTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjcxZmYy
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Ny
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisjZGVmaW5lIENyb3NzZmFkZUdlbmVyYXRlZElt
YWdlX2gKKworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiR2VuZXJhdGVkSW1h
Z2UuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKKyNp
bmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIENTU0Nyb3NzZmFkZVZhbHVlOworY2xhc3MgQ3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlclByb3h5OworCitjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSA6IHB1
YmxpYyBHZW5lcmF0ZWRJbWFnZSB7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZVN1YmltYWdl
T2JzZXJ2ZXJQcm94eTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZEltYWdl
KiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciwgSW50
U2l6ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRv
SW1hZ2UsIHBlcmNlbnRhZ2UsIG9ic2VydmVyLCBjcm9zc2ZhZGVTaXplLCBzaXplKSk7CisgICAg
fQorICAgIHZpcnR1YWwgfkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKCk7CisKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QpOworCisgICAgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoQ2FjaGVkSW1hZ2Uq
IGZyb21JbWFnZSwgQ2FjaGVkSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdl
T2JzZXJ2ZXIqLCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUmKTsKKworICAg
IHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKTsKKwor
cHJpdmF0ZToKKyAgICB2b2lkIGRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0Kik7CisKKyAg
ICBDYWNoZWRJbWFnZSogbV9mcm9tSW1hZ2U7CisgICAgQ2FjaGVkSW1hZ2UqIG1fdG9JbWFnZTsK
KyAgICBmbG9hdCBtX3BlcmNlbnRhZ2U7CisgICAgSW50U2l6ZSBtX2Nyb3NzZmFkZVNpemU7CisK
KyAgICBJbWFnZU9ic2VydmVyKiBtX29ic2VydmVyOworICAgIE93blB0cjxDcm9zc2ZhZGVTdWJp
bWFnZU9ic2VydmVyUHJveHk+IG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcjsKK307CisKK2Ns
YXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSA6IHB1YmxpYyBDYWNoZWRJbWFnZUNs
aWVudCB7CitwdWJsaWM6CisgICAgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlKiBvd25lclZhbHVlKQorICAgICAgICA6IG1fb3duZXJWYWx1ZShv
d25lclZhbHVlKQorICAgICAgICAsIG1fcmVhZHkoZmFsc2UpIHsgfQorCisgICAgdmlydHVhbCB+
Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVh
bCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0gMCkgT1ZF
UlJJREU7CisgICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFkeTsg
fQorcHJpdmF0ZToKKyAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSogbV9vd25lclZhbHVlOwor
ICAgIGJvb2wgbV9yZWFkeTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAppbmRleCBkMjg4NzJiLi5iZWMz
NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmgKQEAgLTM2LDEyICszNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
R2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEdlbmVyYXRlZEltYWdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVy
YXRvciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgR2VuZXJhdGVkSW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7Ci0gICAgfQotICAgIHZpcnR1
YWwgfkdlbmVyYXRlZEltYWdlKCkge30KLQogICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1
cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250YWluZXJTaXplKGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9zaXplID0gc2l6ZTsgfQpA
QCAtNTcsMTcgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRT
aXplKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lk
IGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvcik7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7
Ci0gICAgCi0gICAgR2VuZXJhdGVkSW1hZ2UoUGFzc1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRv
ciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICAgICAgOiBtX2dlbmVyYXRvcihnZW5lcmF0b3Ip
Ci0gICAgICAgICwgbV9zaXplKHNpemUpCi0gICAgewotICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkgPSAw
OworCisgICAgR2VuZXJhdGVkSW1hZ2UoKSB7IH0KIAotICAgIFJlZlB0cjxHZW5lcmF0b3I+IG1f
Z2VuZXJhdG9yOwogICAgIEludFNpemUgbV9zaXplOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2Uu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMWYwMDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5l
cmF0ZWRJbWFnZS5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5o
IgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJMZW5ndGguaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7
CisgICAgY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wKTsKKyAgICBj
b250ZXh0LT5jbGlwKGRzdFJlY3QpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZShkc3RSZWN0Lngo
KSwgZHN0UmVjdC55KCkpOworICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUo
KSkKKyAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKGRzdFJlY3Qud2lkdGgoKSAvIHNy
Y1JlY3Qud2lkdGgoKSwgZHN0UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3QuaGVpZ2h0KCkpKTsKKyAg
ICBjb250ZXh0LT50cmFuc2xhdGUoLXNyY1JlY3QueCgpLCAtc3JjUmVjdC55KCkpOworICAgIGNv
bnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSksICptX2dlbmVy
YXRvci5nZXQoKSk7Cit9CisKK3ZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0
ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0KQoreworICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2
aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFu
Y2UuCisgICAgSW50U2l6ZSBhZGp1c3RlZFNpemUgPSBtX3NpemU7CisgICAgRmxvYXRSZWN0IGFk
anVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CisgICAgbV9nZW5lcmF0b3ItPmFkanVzdFBhcmFtZXRl
cnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3QpOworCisgICAg
Ly8gQ3JlYXRlIGEgQml0bWFwSW1hZ2UgYW5kIGNhbGwgZHJhd1BhdHRlcm4gb24gaXQuCisgICAg
T3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYWRq
dXN0ZWRTaXplKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBGaWxsIHdpdGggdGhlIGdlbmVyYXRlZCBpbWFnZS4KKyAgICBHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7CisgICAgZ3JhcGhpY3ND
b250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBhZGp1c3RlZFNpemUpLCAq
bV9nZW5lcmF0b3IuZ2V0KCkpOworCisgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8g
dGhlIGNvbnRleHQuCisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGFkanVz
dGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgY29t
cG9zaXRlT3AsIGRlc3RSZWN0KTsKK30KKwordm9pZCBHZW5lcmF0ZWRJbWFnZTo6Y29tcHV0ZUlu
dHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5z
aWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pCit7CisgICAgSW1hZ2U6OmNvbXB1
dGVJbnRyaW5zaWNEaW1lbnNpb25zKGludHJpbnNpY1dpZHRoLCBpbnRyaW5zaWNIZWlnaHQsIGlu
dHJpbnNpY1JhdGlvKTsKKyAgICBpbnRyaW5zaWNSYXRpbyA9IEZsb2F0U2l6ZSgpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dG9yR2VuZXJhdGVkSW1hZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
MDljYTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2VfaAorI2RlZmluZSBHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgorI2lu
Y2x1ZGUgIkdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiSW50U2l6
ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U+IGNy
ZWF0ZShQYXNzUmVmUHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXpl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZShnZW5lcmF0b3IsIHNpemUpKTsKKyAgICB9CisgICAgdmlydHVhbCB+R2VuZXJhdG9yR2Vu
ZXJhdGVkSW1hZ2UoKSB7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Ip
OworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCk7CisKKyAgICBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZShQYXNzUmVm
UHRyPEdlbmVyYXRvcj4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgICAgICA6
IG1fZ2VuZXJhdG9yKGdlbmVyYXRvcikKKyAgICB7CisgICAgICAgIG1fc2l6ZSA9IHNpemU7Cisg
ICAgfQorCisgICAgUmVmUHRyPEdlbmVyYXRvcj4gbV9nZW5lcmF0b3I7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggYmYxYTE3
Zi4uYjU0NmI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBA
IC03OSw2ICs3OSw4IEBAIGNsYXNzIEltYWdlT2JzZXJ2ZXI7CiAKIGNsYXNzIEltYWdlIDogcHVi
bGljIFJlZkNvdW50ZWQ8SW1hZ2U+IHsKICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7
CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBj
bGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3ND
b250ZXh0OwogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaAppbmRleCAwODg5OWE2Li43ZGYxMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTEyNiw2ICsxMjYsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDsKICAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOworICAgICAgICBmcmllbmQg
Y2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7CisgICAgICAgIGZyaWVuZCBjbGFzcyBHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEltYWdlQnVmZmVy
RGF0YSBtX2RhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVQZW5kaW5nSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVBlbmRpbmdJbWFnZS5oCmluZGV4IGMwZWUxMzkuLjlhYTBlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oCkBAIC0yNiw2ICsy
Niw4IEBACiAjaWZuZGVmIFN0eWxlUGVuZGluZ0ltYWdlX2gKICNkZWZpbmUgU3R5bGVQZW5kaW5n
SW1hZ2VfaAogCisjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIgorI2luY2x1ZGUg
IkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlN0eWxlSW1h
Z2UuaCIKIApAQCAtMzcsMTIgKzM5LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U3R5bGVQZW5kaW5nSW1hZ2UgOiBwdWJsaWMgU3R5bGVJbWFnZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3R5bGVQZW5kaW5nSW1hZ2U+IGNyZWF0ZShDU1NJbWFnZVZhbHVlKiB2
YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlUGVuZGluZ0ltYWdlKHZhbHVlKSk7IH0K
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVBlbmRpbmdJbWFnZT4gY3JlYXRlKENTU1ZhbHVl
KiB2YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlUGVuZGluZ0ltYWdlKHZhbHVlKSk7
IH0KIAotICAgIHZpcnR1YWwgV3JhcHBlZEltYWdlUHRyIGRhdGEoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlOyB9CisgICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihtX3ZhbHVlKTsgfQogCiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KLSAgICBDU1NJbWFnZVZhbHVlKiBjc3NJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZTsgfQorICAgIENTU0ltYWdlVmFsdWUqIGNzc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlLT5pc0ltYWdlVmFsdWUoKSA/IHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPiht
X3ZhbHVlKSA6IDA7IH0KKyAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiBjc3NJbWFnZUdlbmVy
YXRvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVl
KCkgPyBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4obV92YWx1ZSkgOiAwOyB9
CiAgICAgCiAgICAgdmlydHVhbCBJbnRTaXplIGltYWdlU2l6ZShjb25zdCBSZW5kZXJPYmplY3Qq
LCBmbG9hdCAvKm11bHRpcGxpZXIqLykgY29uc3QgeyByZXR1cm4gSW50U2l6ZSgpOyB9CiAgICAg
dmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CkBAIC01OSwxMyArNjIsMTMgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0g
ICAgU3R5bGVQZW5kaW5nSW1hZ2UoQ1NTSW1hZ2VWYWx1ZSogdmFsdWUpCisgICAgU3R5bGVQZW5k
aW5nSW1hZ2UoQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAgICAg
ewogICAgICAgICBtX2lzUGVuZGluZ0ltYWdlID0gdHJ1ZTsKICAgICB9CiAKLSAgICBDU1NJbWFn
ZVZhbHVlKiBtX3ZhbHVlOyAvLyBOb3QgcmV0YWluZWQ7IGl0IG93bnMgdXMuCisgICAgQ1NTVmFs
dWUqIG1fdmFsdWU7IC8vIE5vdCByZXRhaW5lZDsgaXQgb3ducyB1cy4KIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115308</attachid>
            <date>2011-11-15 20:22:32 -0800</date>
            <delta_ts>2011-11-16 09:33:53 -0800</delta_ts>
            <desc>Render Cross-Fade (Windows build fix, hopefully)</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>106672</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNTllY2VhLi5jZThjMjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMTEt
MTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBvZiAtd2Via2l0LWNyb3NzLWZhZGUsIGVuc3VyaW5n
IHRoYXQgc2ltcGxlIGNyb3NzLWZhZGVzIGJldHdlZW4KKyAgICAgICAgdHdvIGltYWdlcyB3b3Jr
IGNvcnJlY3RseS4KKyAgICAgICAgCisgICAgICAgIEFkanVzdCBmYXN0L2Nzcy9nZXRDb21wdXRl
ZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUuaHRtbCB0byB0ZXN0CisgICAgICAgIGZy
YWN0aW9uYWwgYW5kIG91dC1vZi1yYW5nZSBjcm9zcy1mYWRlIHBlcmNlbnRhZ2UgdmFsdWVzLgor
CisgICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1ZS0xMC5wbmc6IEFkZGVkLgorICAgICAgICAq
IGNzczMvaW1hZ2VzL3Jlc291cmNlcy9ibHVlLTEwMC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMv
aW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0xMDAucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2lt
YWdlcy9yZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZzogQWRkZWQuCisgICAgICAgICogY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL3JlZC0xMC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2Vz
L3Jlc291cmNlcy9yZWQtMTAwLnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUu
aHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZh
bGlkYXRpb24tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3Nz
My9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
Y3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFk
ZS10aWxlZC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jc3Mz
L2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMTAt
MjggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBpbXBsZW1lbnQg
ZmxleC1hbGlnbiBmb3IgZmxleC1mbG93OiBjb2x1bW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtYmxlbmRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NzczMv
aW1hZ2VzL2Nyb3NzLWZhZGUtYmxlbmRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wZjI3OWMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvY3Jvc3MtZmFkZS1ibGVuZGluZy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgor
PHN0eWxlPgorZGl2Cit7CisJd2lkdGg6IDIwMHB4OworCWhlaWdodDogMTAwcHg7Cit9CisKK2Rp
di5jcm9zc2ZhZGUKK3sKKwliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KHJlc291cmNlcy9ncmVlbi0xMC5wbmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuLTEwLnBuZyksIDUw
JSk7Cit9Cis8L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIg
YXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgMjAweDIwMHB4Li0tPgorPGRpdiBjbGFzcz0iY3Jvc3Nm
YWRlIj48L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsYWNrIj48ZGl2IGNs
YXNzPSJjcm9zc2ZhZGUiPjwvZGl2PjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1pbnZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3ZjY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLmh0bWwKQEAgLTAsMCAr
MSwyMSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0
OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2lmKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwlsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisJaWYod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorCQlsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDAp
OworPC9zY3JpcHQ+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBh
IGxpZ2h0IGdyZWVuIHNxdWFyZSB3aXRoIGEgZGFya2VyIGdyZWVuIGNpcmNsZSBpbnNpZGUgaXQu
LS0+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KHJlc291cmNlcy9ncmVlbi1jaXJjbGUuc3ZnKSwgdXJsKHJlc291cmNlcy9ncmVlbi0xMDAucG5n
KSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Ny
b3NzLWZhZGUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2VhOTQ2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3Nz
LWZhZGUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYK
K3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEwcHg7Cit9Cis8
L3N0eWxlPgorPCEtLVRoZSBmaXJzdCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSAxMDAl
IGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwLnBuZyksIHVybChyZXNv
dXJjZXMvZ3JlZW4tMTAucG5nKSwgMTAwJSk7Ij48L2Rpdj4KKzwhLS1UaGUgc2Vjb25kIGNyb3Nz
LWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3JlZW4gc3F1YXJlLCAxMDB4MTAwcHguLS0+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKHJl
c291cmNlcy9ncmVlbi0xMDAucG5nKSwgdXJsKHJlc291cmNlcy9yZWQtMTAwLnBuZyksIDAlKTsi
PjwvZGl2PgorPCEtLVRoZSB0aGlyZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSBibHVl
LWdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvYmx1ZS0xMDAucG5nKSwgdXJsKHJl
c291cmNlcy9ncmVlbi0xMDAucG5nKSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1zaXppbmcuaHRtbCBiL0xheW91
dFRlc3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNGVlMTk0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLmh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PGh0bWw+Cis8c3R5bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsK
KwltYXJnaW46IDEwcHg7CisJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKK30KKzwvc3R5
bGU+Cis8IS0tVGhlIGZpcnN0IGNyb3NzLWZhZGUgc2hvdWxkIGFwcGVhciBhcyBhIDEwMCUgZ3Jl
ZW4gc3F1YXJlLCAxMHgxMHB4Li0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCB1cmwocmVzb3VyY2Vz
L2dyZWVuLTEwLnBuZyksIDEwMCUpOyI+PC9kaXY+Cis8IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRl
IHNob3VsZCBhcHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRp
diBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJj
ZXMvZ3JlZW4tMTAwLnBuZyksIHVybChyZXNvdXJjZXMvcmVkLTEwLnBuZyksIDAlKTsiPjwvZGl2
PgorPCEtLVRoZSB0aGlyZCBjcm9zcy1mYWRlIHNob3VsZCBhcHBlYXIgYXMgYSBibHVlLWdyZWVu
IHNxdWFyZSwgNTV4NTVweC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL2JsdWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMv
Z3JlZW4tMTAucG5nKSwgNTAlKTsiPjwvZGl2PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3Nz
My9pbWFnZXMvY3Jvc3MtZmFkZS10aWxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjFiYWJjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8c3R5
bGU+CitkaXYKK3sKKwl3aWR0aDogMTAwcHg7CisJaGVpZ2h0OiAxMDBweDsKKwltYXJnaW46IDEw
cHg7CisKKwktd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApOworCWJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworfQorPC9zdHlsZT4KKzwhLS1UaGUgZmlyc3QgY3Jvc3MtZmFkZSBzaG91bGQg
YXBwZWFyIGFzIGEgMTAwJSBncmVlbiBzcXVhcmUsIDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5bGU9
ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwocmVzb3VyY2VzL3JlZC0x
MC5wbmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuLTEwLnBuZyksIDEwMCUpOyBiYWNrZ3JvdW5kLXJl
cGVhdDogcmVwZWF0OyI+PC9kaXY+Cis8IS0tVGhlIHNlY29uZCBjcm9zcy1mYWRlIHNob3VsZCBh
cHBlYXIgYXMgYSAxMDAlIGdyZWVuIHNxdWFyZSwgMTAweDEwMHB4Li0tPgorPGRpdiBzdHlsZT0i
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChyZXNvdXJjZXMvZ3JlZW4t
MTAwLnBuZyksIHVybChyZXNvdXJjZXMvcmVkLTEwMC5wbmcpLCAwJSk7Ij48L2Rpdj4KKzwhLS1U
aGUgdGhpcmQgY3Jvc3MtZmFkZSBzaG91bGQgYXBwZWFyIGFzIGEgYmx1ZS1ncmVlbiBzcXVhcmUs
IDEwMHgxMDBweC4tLT4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwocmVzb3VyY2VzL2JsdWUtMTAwLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW4t
MTAwLnBuZyksIDUwJSk7Ij48L2Rpdj4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL3Jlc291cmNlcy9ibHVlLTEwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1h
Z2VzL3Jlc291cmNlcy9ibHVlLTEwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Mjk0OWUwOGQ4N2RmY2RjMDk4
N2VhZWY2NzY5MmM3YTFjMTZhYTUwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3Ngp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHZwXkFUfTJWODw2WlpJPT5mNDM0NkxZaERjMEpQRHVGaWY0K3N5c3RO
MTMKWjcqRSQ2dz47OXJaVXZOUEBPMVRhUz84M3sxT1JoQzZjKyNoCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvYmx1
ZS0xMDAucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2JsdWUtMTAwLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNTc4YWU3MjUzM2M3NzQ2YzhhNGQyZjZlZWYzMmE4MTM3ZWUxZjRiCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkRJbTxx
Mz8jakQqdXtZcWJBVjVYRCs5eS11OEs/SEsoMl9WaShgbXsKbVdPOU44Pio1NUZvfkEkdGUrQ0JE
M0lAakpxejVISGM/TTVjS2JMaCoyfjdZMmp9dyZ1CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMTAucG5n
IGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YzM5YjBkMDJkMzQyYmJmMWVkZDJlYmJjYzJmZjRmZjhiMDMyZTEwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA3NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkFUfTJWODw2WlpJPT5m
NDMzfEZYaERjMEpQV2Epa0FgfEtuLV4hcWAKV2UlJGluKTRGVitCIWoxYHBVWE9AZ2VDd1NTYHBt
PAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvcmVzb3VyY2VzL2dyZWVuLTEwMC5wbmcgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9y
ZXNvdXJjZXMvZ3JlZW4tMTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDViYmJlNWM1NzYwZDkwNWRiNGJm
MDE1YjViN2ZhYTI3NDY3YzdmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHZwXkRJbTxxMz8jakQqdXtZcWJBVjVYRTVtO1ZsZWh5YmZMc3d6N3NuNkAK
bSQ+YW5IKjJNYFRKeHpmUXt0T0pQNiUzNWNOZUBiWkAoaUE/ZWxGe3I1fUUrYG5pRklJCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9y
ZXNvdXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291
cmNlcy9ncmVlbi1jaXJjbGUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFkNGY5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNv
dXJjZXMvZ3JlZW4tY2lyY2xlLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMDAgMTAw
Ij4KKyAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIHN0cm9rZT0iYmxhY2siIHN0cm9r
ZS13aWR0aD0iMiIgZmlsbD0icmVkIj4KKyAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZp
bGwiIGZyb209InJlZCIgdG89ImdyZWVuIiBiZWdpbj0iMHMiIGR1cj0iMC4wMXMiIGZpbGw9ImZy
ZWV6ZSIgLz4KKyAgPC9jaXJjbGU+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9yZXNvdXJjZXMvcmVkLTEwLnBu
ZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjliYTJiZjMxMjE1ZTMwY2ZhNzg5MGZlMDYwNDU5MWEzZGVkZWZiMTcKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDc3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeQVR9MlY4PDZaWkk9PmY0
aUZtcD1oRGMwSnsmRGBtaHhybWAzfDM5cAphJEhoNDVATnZ0aStLR2lnYz9NNWNLYkxoKjJ+N2E0
Un42bT4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvaW1hZ2VzL3Jlc291cmNlcy9yZWQtMTAwLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2Vz
L3Jlc291cmNlcy9yZWQtMTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzNkZDc1OGFkZjQyNGRiODI5Y2Uz
Mzk3ZmM5YzMxYjdmNGE0NWVmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHZwXkRJbTxxMz8jakQqdXtZcWJBVjVYPndnOVkkdyE+I0soMl9WaShgbXsK
bVdPOU44Pio1NUZvfkEkdGUrQ0JEM0lAakpxejVISGM/TTVjS2JMaCoyfjdhbDFgPyRKCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRD
b21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1m
YWRlLWV4cGVjdGVkLnR4dAppbmRleCBlZmIxNzFjLi4xMDQ1N2MyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZh
ZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMzUg
QEAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhh
bXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5j
b20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYi5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vYy5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vYS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vYi5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcK
K0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
ZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcKIC13ZWJraXQtY3Jvc3MtZmFkZQogCiAKLVBB
U1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAy
NSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3Jv
dW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcp
LCAyNSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIKLVBBU1Mg
dGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybCho
dHRwOi8vZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1
MCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRw
Oi8vZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1MCUp
IgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9leGFtcGxlLnBuZyksIDEyJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Vi
a2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMTIlKSIKK1BBU1MgdGVzdENy
b3NzZmFkZSgib3BhY2l0eTogNTAwJSIsICJvcGFjaXR5IikgaXMgIjEiCitQQVNTIHRlc3RDcm9z
c2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBu
ZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcpLCAwLjUpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMjUlKSwgdXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIp
IGlzICItd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhh
bXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMC4yNSksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIgorUEFTUyB0ZXN0Q3Jvc3Nm
YWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiLCAiYmFj
a2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2Eu
cG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCAwLjUpIgorUEFTUyB0
ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtp
dC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9l
eGFtcGxlLnBuZyksIDEwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3Nz
LWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUpLCB1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC4xKSIKK1BBU1MgdGVzdENyb3NzZmFkZSgi
YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5j
b20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMS4w
KSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxl
LnBuZyksIDEpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBp
cyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC41KSIKK1BBU1MgdGVzdENy
b3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8v
ZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUu
cG5nKSwgNS4wKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDEpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA3MDAlKSIsICJiYWNrZ3JvdW5k
LWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4
YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEpIgorUEFT
UyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcpLCAtMjApIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9z
cy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMCkiCiBQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91
bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZykpIiwgImJhY2tncm91
bmQtaW1hZ2UiKSBpcyAibm9uZSIKIFBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwpIiwgImJhY2tncm91bmQtaW1h
Z2UiKSBpcyAibm9uZSIKIFBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJi
YWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3Mt
ZmFkZS5odG1sCmluZGV4IGFkNjBiMDYuLjhhNzU4MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtY3Jvc3MtZmFkZS5odG1sCkBAIC0yMSwxMCArMjEsMTggQEAgZGVidWcoJzxwPi13ZWJraXQt
Y3Jvc3MtZmFkZTwvcD4nKTsKIAogLy8gVmFsaWQKIAotc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUo
ImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUu
Y29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcpLCA1MCUpIicpOwotc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1h
Z2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1cmwo
aHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdl
IiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vYi5wbmcpLCAyNSUpLCB1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSInKTsKLXNob3VsZEJlKCd0
ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSki
Jyk7Ci1zaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJsYWNrLCB3aGl0ZSksIHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAxMiUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScs
ICciLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgYmxhY2ss
IHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEyJSkiJyk7Citz
aG91bGRCZSgndGVzdENyb3NzZmFkZSgib3BhY2l0eTogNTAwJSIsICJvcGFjaXR5IiknLCAnIjEi
Jyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAn
Ii13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
dXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDAuNSkiJyk7CitzaG91bGRCZSgn
dGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCA1MCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKC13
ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgMC41KSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13
ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywg
JyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCAwLjUpIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2Zh
ZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWxpbmVhci1n
cmFkaWVudChibGFjaywgd2hpdGUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5n
KSwgMTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Vi
a2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsYWNrLCB3aGl0ZSksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcpLCAwLjEpIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEuMCki
LCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCAxKSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAt
d2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tncm91bmQtaW1h
Z2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBs
ZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC41KSInKTsKKwor
c2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3Mt
ZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9leGFtcGxlLnBuZyksIDUuMCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Vi
a2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybCho
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAxKSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jv
c3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCA3MDAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDEpIicpOworCitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhh
bXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgLTIwKSIsICJi
YWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IDApIicpOwogCiAvLyBJbnZhbGlkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVj
dGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NzcyNjQzMTQxZDgzMjFhYjc4MThjZTM4ZDBkZWU5N2NiNmYx
MWE4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTM0MQp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVSSFIKem1MXkdON0E5IzFt
TVB9TyM7SWx8cmp8KSpDUH5TYjI1QU9+aTNYWXtMe292TCRZblleMlk1Tz1EK0NuZnIpQX48Cnpn
KD9fWkwrKW9eNGlOY3dEfFBPTWh1djFgZn1EMDQ2WjJBbk9QdUZ5JU1SYWxIdExueGMxNGZiJVdg
OTg5YURLKgp6d31KZztjZlFycEB7akN4S2lQUzFIc0BEUTt5b3NrXyt3M25sRnY3IyZHVGxQX15K
bXBAQkZefHs/QilvPmQmOVYKekUlO2QmYnktQjhVbkRmeHxMQ0RWTjFsaz58SEskNDxFO0hCIT8o
TGwldUNKUGYmY1FSJUotVzteVHsye0RTNE5GCnpmQXpvUXRGeHheMiE0PUoqZispV2h8PEh6MShg
OGROYHhPPT53R2BnKERjdypwVz13K0VTJlBgN1d2N0k0fHtyKgp6cj1eKmdJP1VvYyNEM0p0JTZv
QHsjZjsxY3BMdVZiWVpRNSt1Q3tXTFVib0ZeKkM3MztEWHlEJXpJfjd7WnZHVSUKelZhMWV9dik0
V3M9Kl51YT4zNlpGPno9JTJaOSZnN2hOfW5kPDBiWXc/d0RIO1ZmSntqWGBSenFtMzR3QGQhTjU2
CnokKC0+dmI9TEdxTyg5aG9sfDR4ej54Xj9VcEsmdkgmVSR3Rj9VI1RfOHxJdHJIIStVPHtQPUNh
UkY+QzxONTZqYQp6Y0tmbnhAQWNhZ0MkbTJgd09nKXZ0PXszXi10UytGeH1IYH1gdFcqLVQ8X0h7
KFVZdmdacl5AI2NBNF93Qmp0aGkKeiVwT2luZUtJSzs0PDxWQ0IrZzFjdmcoSkFuNTJAfGwxckgt
QShmamZ1MzJrTHA3dko4ejJhbSUtO094M3VoRS0hCnplMCVWRi1kKXd9ZVMxVihrOFdSbEJrPTlr
IytTUGAzRDEoUUZIS3khSVBhblAmWm8xYmI2MGI3MXBlIUt5M3IjcAp6Xl58ezg7UHEwb1hBXj5f
fDAoNEBaIzNuZFlNRD8zJiNwQmU7KGxvNWFRVX4yQURYYFolODdJTCkoVzAoREFjaUEKekp1bXB8
dXtXeGhkQGo5Qyp8RVJ0dEo1KXdwQSF0N3F2cX5ZQHR4Q1VgUlBed3c+biNTKTlZdUNWKVU9RyYp
YTxfCnpfVGpJYzlCY0s4bD19e2VlfDQ9PHtJSmg+cEkhWCt7RW8hc3hBJEY2ZEEtOyQ+aDxvKzZM
JjR6U1Qme3B3KSF7UQp6ekUjNEtuPk95LVNRb35qeT03NXltZT1NSWUrRmpOVCkqamBTdHF8Mll+
aWx5U2Z8X0J6ZDkqPWcxPElieyFFXkAKej17JW42SiNPbDR1PG4xJHllO0B6PzZiYEhWJDA4MzF1
diFsOSk3Szc5P0JMY2RFakVQcDc7WGUoa0dsN1lUfFRXCnppezYmRW5ZWD1ScVY/X013WUlzNXlT
bllkUl5La3NpPFY+RCZBPEJVe1BVfT4taEtZMHAxV2Y0QUdWZHNULU9kUQp6ajVsSW5QKzsoTWFT
VytvZTB5X2FFPm9iMCVmK0tiNHZPI2dEflVoaW5JUD5AKyZzVSlxaklzUmB8T3kpPk9GU1QKemA1
QnA1STBPX044Vz9+S0s4X21NaVoqdWA3Yk5+NS1sM3NGNVV6cWx6KFAmSXApYXNuMDcpT3k1bz9I
a3UoQVYmCnpqRXFHK3gwO2RrMnFAZWBRcUkhSCR1U31NaWt1N0JQS2NpRyk9bCRZfDlmfWpKQndZ
fGdZVW43LT87eS1UXlE9Qgp6dTctTXR1MzVaRENVYG5Ec0YqMXVJbFFaWkt7THc/O1NtbE1NI2Yx
dWRYU3U7IU5qeT0jWjRyaU88LWExTkhTSkoKeklENyNJJEFtPmAmSW1fMjJuaV4zcDZ2aHk0OCkq
REM1MklrakUyWik4WDMocyg0cS1nRXt2OFZxYjJLVFR7Qnd5CnpqPCFjZVRXRihBTVIqOHxIbDdE
QGNWZFRhLTI1I2pOVWdZcjB+IXpIQ2tVUmdnIWdxQW5QTUZwTzAyek1lSUtCTgp6OHpaQXBsY2hS
UmtCT1VPTFNES2pxUWBWVkwmM3EjOzVreDF0Yn4jQShwdyEpTTg4WGRtRXtELXZwTWl8IXFCTHYK
ejtJTTExRHc0JkU4eUYtSCZWbHYqZks5OW10U2xiZUg+KTVsUDdvMUxQQFlrWTxoRVQ2M0BeKjNB
ejlxUiNGV0JQCno/MXlsaGdTZGRnLUUpKFdFRG0mTj10KCQtPGhCPlVtZHghKUF3PThHZlF3QF5Q
KH1sI2FXdGhnakFrRGVqP3ByTwp6aURrNSlicmBMRU15cTV7eUpFRFJHVEx8cHdtMyZ5dkA5SD4m
M3NARllQOWRPVjY7T3grRGl1M2pINSNiM0lqY0sKemtpWVZXRWR2OWBPMyskPihYb30kMGpKU1h4
WTZvKXcwYSZMIzBHVS1OMn0pbnVieE0lV1lqQTgxSXJ2SHpMbUVRClQ+UEdfQzJRenJPYG5qeGdO
QHhOQUUlKH5PCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1ibGVuZGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1ibGVu
ZGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFh
NDE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLWJsZW5kaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDEwMAor
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTAwKSBzaXplIDIwMHgxMDAgW2JnY29sb3I9
IzAwMDAwMF0KKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MTAw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3Mt
ZmFkZS1pbnZhbGlkYXRpb24tZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNTgzNTFhMDEwOGRmYTBiNmZmMGQ3NWU4MjU0ZGI4OTI1YTEyODNjCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxNDA5Mwp6Y21lSE9YSC0rJHdrREJ8M0pRVj5rfCt1KU47dz5RTmZaQFM1
SlpuNE5JPEZfcyhfKUlmTD42ZjFYUCt4IVYjNSYKejVRPDJzMj8kYkA1JkB+OTNXT1IkND12I2Et
eWA5P0FNZkEwVzR0bClocnIleiZvJFNhLX43SjBfNmlaRSo5YFV1Cno5djAteztAV2ZCQFBaaV4q
RGYjQDd0biZBbXdEd0N7RS0qKTxDTzEzM3QjKHRqYHByVDU4UyF6Pj5ib3BISnl8LQp6SFNFPEw+
e2FhNGxwSXdaP2UxIS1ZR15RakQqeWlUKmgoYlJpbk5RcXpVZ0lzZVh5eXdyPDA0REJOdnhIQW5m
TFYKelluIVBVcXNLOGRaenhqQmQ3cHNaeSpMa3Q4QH5GbGFqeGQyT19xfnRNTW4pJi1uLXY8UmVQ
TCokbThwZF53Z15ICnpvOCF9NDw9ZnI7KmZaJClvPzVaSEU3P3p2ODcmX3hLJlNqfUVPJXA5MzlX
MmtidypRZVl5XzZKZGYmMjVPaUBfdQp6an5nYTZSVTJQTSMwS1U4RmUhY2NqZUV3QztvP19oNFdQ
bnA5fE5jYjN3eHomLUYjO30yZUtJVT9YVGlAQDAqbloKejZKRHgqSVd9fVYmRT9KeVUodnlpMnhf
WGJZRV9ld2szfE56MExXUngoPmA9NERxMUdOPjMzRD1EfWdHJG4pNnkkCnppPWk0eEVgdGt1eHwm
MTlNJng4T3BEUlNfV0wtMjw5Q2YoKGFyZzJwJG1qOUFQMlMleENzTUZ1QkdLLXo0cWE7cgp6ZSUy
NHRlQ1FRTD00JF44dXtucjhTRGZsKXAqRWJaaWE2aE5KWkdPUWVyKDNxQzVodHJEKUlLSXtVQFoz
bSlxVVUKelFFX3UyMys7K3tNUSk9a25tKjZOezlmXzklSSQ/PWlmS0llbHljM3xeM19YPXJUOSkj
K3pZOzhSbFNUOzlZYG54CnpQaDBZU0hYODdKY0l1T0tiby0qIWJGRXQ+KG4hO0xuZCZjbypDRCRN
JnAoUWhheVU1e2NZZ1FYU04yfiV0UWQoTwp6SShGcjR0QmRjPWZSN3AtKzl6S21QXjFqfXp1TjNB
aEtWbShlSm94Y1R1MWt2PSFfe3A1TFEhXi1nVFcpNyY9azwKelFTX0IwXjE8REE9XmpKc0M4SF5s
P3BaP28qQlFAN145XkIrLSVLN3w/fGgmfWo9aG4lQGohXzkrc2x+fkBja0NNCnpPUzVOVEUyckhB
T35ORnE1LVdieEh9Xy1ySEg2JGhxbkN4ZyhOc0hxcVNkSCUlQXZVOCsweXlpZ1I4TzFgailBTAp6
PEhvT19ZMG1lVTNkITtNSig/b195cmJDM2hjMFdoOSRHOG0kMH5UcyM4Z1F2VD97QHRPSGQpYCol
V3lgeV8tUUkKenZeaCtyRF9jJkx3WilhYiRxIyZxQkZRYzUjKFdTeF5mOH4xa0dSRHp8TEtrV3BI
fldlT31LV1FhS0R6ZyExSUUtCno/X1dafVBqaypqcHQ5YERWQD4xKkooRzlDNV9lekRIU0FXJSg/
KEh0O2NqJFRsVTswbEcjNV5MTy1SektyeGV1eAp6O0RzSGtaMUdXJE5LPCgqQjlJcGhKMlEyRjFr
eW5sZ35WeC0/NkpEO2NTfEduWmVAe3Q2fEFISVd4YHFRN34rVGEKenpPZk9ja2JuOUhaPkVmM043
WXw4emoxTWF4aGBLZ2NoZXQwPjljdjc4VzZ4WUo3NlQ2OTZmY2J3SDZ8OStXUHdVCnpteGxLJnRz
QiV0QV9RSVZGQ1NySFdMZlplazJ8d3d2IXxKIy1sd3FOKlZXUihkMFdsUVRAdiFIcmw7a2xKeH05
KAp6LTBsdjR7PyV3O0tyPXxUK3QqbU8+OytaUjhCRypZKFNEKW5nUWwkcUd9aT52SG1vY19GPVF8
X2diTSlWPGAtZjkKejApXlR0RF4+SVZfZ312Kk17JGRac0JgYlFWaDBwN2pPcWRKeEZSTX12fjZK
UGteaFNVM0FrczJESEs8JDJZPSleCnozdm07RTVLNEpFZjFkdjNeRGkmbXVwdlFFVHR7MnNLSzYy
RXhkMSNQMDFkPGlfV0NNMjFXJHNrclkzc1dQbTFgNQp6Z2FHSGNxIyghR2FqPHBlNXNTcXhgTVVw
Q1JEUjglMUJDKHR4TUR5JUNkZXhVM2Y2WjdtYTZURGcpfSVWTTJEKm0KendQUylWJWgwbnlHRjRi
ellATHQwY2BuUjdRTmo5OE1mez4hKn45Zl5uTFhWbEtGLT95diRvcDdEXyoxdTxmYVRnCnpNQFc+
dDNNS0tiNHhXK1BYaTNWKD5IXzZreXU0Pz8wNndwTHduYGArXik+IzhoRjk3VlpGbn1OeVRFemdn
bUhEcAp6UWc/Q1Z0Tnt9amhrOHFWREQkSFlufj4kNDR0VGxpJUYxdlVQUXkzNk16PFA/YFAyT19a
Qn1fQitnTGdsKlVfX3YKejlVNjlXYiorJXBeVC13a1ZmJDhfMD9RViVoUDxuWllifXZZWitvUypl
RSZXSUw2azJBVTZJLW1uZXpOZiskbkhwCnp1OHBVMl5YcV96LUBeV0tEPSNYMU1ecFV0aiY/VGNU
VjIpOVMoTERMX18yQFE5c0FXYjc/fENnXnRRNSEwKW0+dAp6KEpZOUtYQkk/fnpeSXZCU1ctSyFe
UDwmZmUmajM4a0p8c2xjK1E2JSk9X1JVQT4+WE85R2p7ZXdFUTVfTntYPk8KenVvTUBEVGQxenFs
YGBvK0UxWDtRSiFSdilNQUFGaj9zc0l9Pkx0ZGc3cXdufmluNUlBQnc7fiZYd1VDfVkkbzNGCnpy
KXUxUExtP0dXamp6cVN2UjhuXlJROEk7R0VCNERHRTlvJTxLdl5UWExTMnw9SWd7c3RweDFaQmEq
eE4yUDB1Iwp6M0JvaX4kRXtwIVE5TE44dXN5TChWIUd5REt0TV5WKWBNXlExXnQhSDVFZTNpaCp+
ZlUzO1VHYnZ8TlpTZXIwVDMKejdiWWFwUXhocW51MjhvNHhkWGtqVm4+PjV6QkFXI2tpbCF5eVNm
d0B3OFc+c1oqYCYlQigzVEZfSzByYTt0V0tHCnpvWGJTe1Q5UkNHQVVnfncxdG9LeWtxKWRDV3kp
ckE/YjB7S2g1MF49KVhkeUxebmh9dDBXemsoTnlzJV9GMytUeQp6U343LXFFclR5UG1xWXNYMFJp
UU5vWVk/K1g0ZCMlbFlrTTdIcWtfZiZsYlREdER8TTNfOEw+ODZfKW9ySD1sSCQKejEqTmArdGx9
fkRran02MlpjRClTMHU0NWhaO0I7RjBfUmh5ITVJJnl0T2dFS29hYSFNTEd4NWBsNCFNJHR+azdy
Cnp0UDcmYCRGNkJFYCV1UXBtMGt4eTB1IWhSVEdfQj91cT47ek9idTx4TGlJJXpianRGXjB1Z25x
NipEIXJUbWhPewp6QH4ySHBwdz5QMD44fi05VnxvdGJiK24zMmRQamxnal9MTyZPI3RWa0olaUtm
QlhXPks2I0xIRUQ+cUNTbG8odXwKejRzejdxYHw7I2h6c2xrbmBnbktYQnxhNyhnYE5oZ1NWN2w3
V2FnQmYyMHtLbT4oNyh1b2htXmVQe0NGY3cqJWlKCno3TmY0eiVaUlM9WSkzZyVeRlkkcWlwaDJU
N3FYLUZ3Mld8QypVQ2ImUEUqbVJkMzJgcGxtVCZhJGlnJENPXzVjaAp6alMtY05iakpiQVl1JGpa
S1BuUCFKMjZlWXIjIW08NDhuY1lKKnJ6RV91bGdtUi1WTnpOIUxTQCpRTiorSV9ea3MKekkzIWB5
RX50T3V7dzVgREs9aWtPWWxnJmA2TTxCVGRFSVVBRTgrVy1sN1ghUTRxbyRTVyRBdXVOVndCQU48
T3M9CnpCSWh0YVkwO052d0llJWoyQkZFVF4ycXRVV0F1bDV7bVlyam4lSik5QVRrO2M1eztibShf
e0g3KHhuR2ZuTS02YQp6QXpBeVR4X2c/REdQR3gleXoma3tGbTBVZkprdT5sTyhOVyNjZ3A9dlcj
TCZRPjBEXjBMQGNTdXZuV3pSRzNIKFoKej01fHRwYGt+JHJfK0BxWlg8cXVjWSt2bTs3VzNGQDNt
RC07VWg2IyE5NFJTd19XIXgrPmlOQVdIM1ghM1JlZkJYCnpwNDFncHY1PnFDIypvU2xBKX5AeW01
dDVManVQYGpkaSMmSiRJTlpnRn58O2VPcSU0aG8pK3dDKFpyPl8rdnghUwp6TmYmS0RAUWg0JTdz
JTh4MVdtNn1afEtSWWV8U2R8N1FRSEh3NUZfbDcmKWYwOVkzem5ScS1UQ0tuYTRyN1R6bGcKeiF0
fVZmeXtedUZjdDdfbXsjRjRULVRae0BNPkBYfE1SOE5ieGpDeFlYSlVkJGx4PXRyTyVhPm9ufVJV
UHR7cXI0CnpWeV9SdV5XRj9QXllCNSZEOVUoTGpCSUM1Pio7az5sYVFreDd1ZUYhVXBDN19Ee25I
XkFidkJ3PDJTYD1keGBYfQp6djNgXyNTSG4xXylMNEQ4P3UqKy1Edj9iPDxRdWw5Y31BRWRFcllj
TlVEdU9fN2JHN3Zaal49eEs7JjRKcXRwUEwKejE5fWhGTSg1WGsqTSVjMjAwQ1htXzcwMU8rcnM7
KjVucVl5c1Q9PT5tV1JCQ0FRMmJ4aHc8MzZkWUtfUSk5e3cpCnoobXg9d0BMfXFYVDJ3LUFTc2VX
cUE3X1RsNns7aDElaWE8I1lvYUd5LUh+fFJQPTckT2kydn5DaCVlUWY0VTxFYwp6NmorSD8wcyZp
cS1iPDcxYFFMSmVAUXs5MDVWWEs2S189XlNIYl5waip6K05+PSN8WDNNb3pUOCt0KGM5U0FAJE8K
ektXZFNKZjlJUiEoU2VFPlRHN1ZyQEk0WHdEV3JWbVhRV0soaylXMy0xQU1Za0JQPypAb2ROeGkj
MnVrZlZjUHB4CnpUQjs+VEQwWCg1Q3BKWUdISX5iKV49M0NsPn1NeHtYfn5HSlNqeSpjSzdWNUtI
YDRGJUxhZHZPZDZtOWBeKjI8YAp6e0ZhYDl0OVFHa0tLek5yR3R3OEN4cDI1a09NbV5RMFM8OFQ7
QTVxVWJrMF9iWFFWTGtXIzhWQSUtdXFiVzxTV1IKemVDdTJhJUBtN09PVSo+WkRTTmR5MF8haWFa
K1FUYTllTiZqSjU1KiszYUpkPWEtZ1IrKnY5UXZOVm42d0oyQmZ4Cnp2PD1AdlNCR2EpVVZSayRh
S1J6I3M1VGFQXyNZM1E1UXxNZ2BOaztkQE1vKnxYbTJsOHE+QzRMO31xRG5nMmR9Ugp6I05Tdm9T
aiRTR2pgLUZ5bDJmUD9qY2BKJXN1TCp5fDhlYH5IfnRHa157dVV+e0JYKnBManp9cHczSkNESzRT
XmkKejhFbjErJEJJN3trM31JQyk2O3xmNVd+ezMyRyl5VHJVeVNpTXkrS2p1b3E8TyNRbGI2V09r
QEplYjVofnMqQFJMCnpFWUxsVE98eURYZkgyeCFfbUFvIUZoQEZVR1UpY0hMeXJEKE5LPkxqcipB
WGRWWDViO2d5K0YpVj5nWFh1cG1GMQp6dXd9SmgjaFA5YzFaN0laX3MocVR4NUxoP2dlKTh2UTNV
aHRseyZiWiVgZ0lWUHcjUUdRX1V3JFElamBTMWFNcFEKenNZSS1PVH08QHVuVDxEdmgyfTN+cFko
eEN1Tk5fRShCcSNxWGFhXm9tIzRjYFpYR1ZJcWshYlchZXc4aHFHMHd0CnpjfGwhQHREMDwhaFlt
MDsmVWxTfnw3JXx6N0ljYV4mZXx3Uyk9OVhtOUskQnJCKiFnMDRBLUdoTWpiZ3RJQSVPbgp6XzA/
bE4rTTx+WkNIWVQ9NT0qKVFENTNTMG48SStWRnk1Z0JnaWJRN3B6QHYhM3o3V0g5NVJpZU1AR0tC
TlFZKUEKejNSNEI8VTFeVmNFQlpXSS1QZUAhe3xEbjhVQH41Sm5JQVIwQ2t4YEdTa0dKUVlTWmlM
byFkQE5Ud248Y1M3Xlh+Cno9Q0JEdnhvZld2LW9gUn57U31fNyVrfiFjRXorMjVQRVJAKntTVDUz
LVhpSH5RYz48JU1NVl8xQ3hje1pSV2JhUgp6TWMqSmZZKTwhbC0rUmQmR1ZMWjJua2dPfDwzSVQk
R2o2bWV5NXA5QERLSnkxN1ZZZys3fHFVWDhlZFJVU15+RCgKel5pOTtxJDtmPC1BQTltZG4qUHk0
VjR9UDE5SGNiRG9OKU8xM2FmRj9pe15lMGdPLWxBcSNNK3x0KEhNfkZzNWNyCnp2KlFDI3lrIWEm
WHtFKjcmbHVNZFo3anlOdTV1bF5ie0hLclFfYFo9IU5ANHdyMSFmYiF6Nmw0aGBqfGdkcHFUUwp6
Y3RTRjticlApNHVgY1Y4czkzM3FiM15qe293NW5iX302MGczdj5KPVooa0xRQH1SY2Jme2pMaWlE
REI3LThZRHcKej8wbClZQ3x1NHl3PiohMilzV2EjdXNrZV5TQH18THlCS1o0MHgzN3t1UyVsPnVg
fXoqI05oVzIkTXIjbnVVNz0jCnokTT55S0RPVHFMYXAtKUk/bWBCSEtHRCp0d19UVX5CMyhIXjY/
M1Q4O3V2SWVidmVlYit9OzdQNUpYeCkkMENSWgp6IzEwZz8mPjdDKzdtPTxScHZyQmkpPj5sNCMl
VDJaUl9ZMT1CP3lrbFkoNSVCJj91Tio7SEAzcWtsPER+cT1uZTUKejR4YWJRal5ES08lLXZ7NkVr
USl8R3RBMCNeQCopMHdESWJ9OWcjUF5WRWJPa2FOciNCVWg3RTIxVT4hQFYkLUJyCnp7IS1JVyU3
SkFjPkQyWXV6ZCY/PkY9QENlWms4cUxYKSU/SjYwd0E1ajR6OWQhOXptbipoU2htfDU0MTdDcldm
TAp6fExROTM7aF9DYTBvSFY+Xl4jPkRiVUQhZ25RM2pKZmY+YldzJkQ1bndDO3FHMWtjK2lvMFdX
ZVViSD1IO1RleSEKekheI2hCUmdrXjNAUXE7aiklcjxkP059R18hQikzcCUpOCNPTjFJKE9IXnFL
Ky1+NWRLd2ZoYz5NeThNQHsxQ2RtCnpRKikyWUpRY2MjcWY4KUQjI18/ISt0JHExfDh6P0AkNDtT
fGVCUCZTcTJ8YG5IUEFkIVp7MUQlO2hMfTI/YzBhJgp6a3Q8WVdYLTdpMXdzLTtyKk9qbnJvYmZh
cENKRm5eLUBtd2h2Y2F6fkF1KkFaY19YOHpJYVFtPU5ZNzxFRFJ2O0sKejBvZHgtekx+YzkmNzlF
NjFZYnVwVDM2ZkJYMHNaKEcrS3gmRS1KSkotTSome0RnUTJ4MmArYlpwdXtpMSpYeWIhCnpXZn1N
SVNaZ0Y1Sk5faj8pT34+UEZuN35uZkROM0pYT3QzIUtMQDVpdzV+d2xRI0YwYU9Bc2NWI241b0xN
TWZCSQp6a3IwTCh3I0pANExudTd8ayR+JTsrNCVGTVI8KTFHbnZjJVJoVFh3e2Z5WjZmJl5xMUFH
ZTwxSGl3TyZWZXN6cXsKeiFpb2FZKVJyVWBkJTA/PjRmR2puRV5KNnRHK3w4NEFwUTEpanIzTDVw
QC0wTXk2ITZuOFM2aHh1ZlQ7dCl4QDVXCnpRPiljNGRPSlAkZlloSWkjY1g9NDZmNV9aLUFeeW51
MH5RZnlvLUJoMylXSGtQeGNsdlhfREJlan0/bnVTMDQjdAp6VmNAbiU3bzJBVl9DciRMPEl9PHp1
fUkhTHIrMXhid1koSSVpPzFpJnpPRHpZdERsbWJ1TWJHaDU3UmlwZE12SzgKelNDN3ZAV3Fxbjwm
PENeTFRZRTdWaFZOMFpGOHUpdW9+eXg/bVheKkBRJiEoViN6dlNUTXF3KEpKNSE1TlJ1M2N8CnpX
eXViN1AlcVRvOGFtVVViJFR5ZUN3UkY0Z1dvaER1LWd3UDdfMWJ+cD5PK2dBMWdOOHs1S15gcCZ0
Zi1Ca1ctIQp6Vnk0aFhVNjxJb2BDQjBePFlvbT1KekYteEMofVo+XlBeYjs0PnEtaTB4fVVvdjYk
XzRBT3ZhKDFxaiRsVVMjelMKelh7OH1SR3JCayEhZDlmVCVCblJsP3kqRGNLX1NxKTA5dUZgajQ7
bDJ2NmNEVyM8RXZ1SjVUXiU4MXA0WlJmN2E7CnpYQll5dGdhUiV7cldtbTIlNDUjdXp4c3gpWWxj
RTYhN2xkfmJedXgyNmVfNF88STZWZDBebTcqKTxjQEBVS01sVgp6cTB6YHxFVkpPVlgoNFpHbnEq
aUpIP0BFUVBMJjZAdXA3YSpPeTUyZzJlNz50V0tKQkdzSG52QGB6WndZVHdFUSsKemo/YFRNJill
RGdpfGg9PEdKUnxQTm9IckA8ZTQ7MVAmaCRoNzYlNkBvYnV1M2EwKWoraGlKaFpeI01hVWxGU3Yj
Cno9fkRuZVBWPmV1I180RTlJQmg7Tz9MV050REg4a3A0aX1mRyVocT1SSVF0O1o9OCZedj1EYkdX
Qz1vfUEhMmZZMgp6OzswV3RlS19qRlE2Ry1fYU1YdlJLM25KUG9QI21XWTJuczZCaipUSmdtWil7
IXUoRGc9VW47IWB3ezlhR1AmSUsKWHNAWUd9REQoZkB4R3JEM2J8TDR5P1cyREt2blp5RwoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0ZWJhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9j
cm9zcy1mYWRlLWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUg
Nzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZh
ZGUtc2ltcGxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXNpbXBsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I0ZTIzOTZj
NmQxZTc3MmFlZWUzYjM4ZGUzYTUxM2Y2YjRkYWNlZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTE2MDcKemNtZUhOZUs/ZnE4aD5YRGhNe0pWJCNWM0RlOCVMZlEwYXsoWUpIfEhgQW0kTyg4eCFy
R3QwfWFKdDlLd3MhNzxVCnpIQSQ/bV58XzF7YTwtI1JFUStnKTVeSUlvPG08JEEtb25tdlVGWG05
JitjYC1mNCRmSFQralg3X3gqZEg9bDhxcwp6PVh4KUF4SCV+K2V4ZTlMa24lcH5KcUk5MjI4Sk1f
SCgzckY7aGpsfSMyIVg1T3opV0I2UmhCez0tM0Z6JUVIenIKekcmdDBmd1BsO1JXciVnS0hIJjN3
ODUocGZseSVKMyglUkMoUEItKjJ3dSZ+fShhfmR7cWEqQVEjUitBSHZtaHZyCnprYkgxM3RsTDlQ
KCRCaDRIazQqfW9UZ3haQkl7SSRTQnp0QmI9Y3doUE1fYmwpQCpkWFVLcnVXWXVCNUlGT3o/bwp6
Izw2UVZgQDZqVGcxcGt4RkYxZUNSJkd9ZG4hbFQoPDEodkxuUm5nRil4Yi1wWm13WilWYmEhTWJV
MmAzO2p+WTsKejhlXl42WEl9MVlFc0wkZ1lKK2JHMGF9aEdpemkmdXpFYTw+P31WKUZ0fmZWVUls
VkBeSnY/VFRHZ3ZHTT8le297CnpMPSRWbE87QGEyYiV1QDx1PkYzQ1E1RSVHbjdVelotT31rMj9K
WGNGWSZkU2kyfkhma242Q1J4c0ZnTHNRKXJRSQp6YkZsbGc3T31hPzdFTFFaZDY9aitZQGxEMVpJ
LXM5bjBiS2xEdWh7fkclTVpee2wlTld2ZkVlMnU5dThiKDw2OHEKelpqWlVDJm98aDk5KGkjRD5p
S0NgO1FHZWh3S3BRWXg0el9DJDIpWkRtRDJQWk08LSswUzBgQSFvRmhnbW8zIStQCnpKYSh8dUdN
cWdeay01TWQ+N0lEJmt6Sk49Q0E2fFVHV35NRzw3PzhtZEUzbkZyK2VTbEh9KHg9VTZ5fW9aNyhx
RAp6TytYfSNiMkN3P3VnK3pRJEUmb3tkKjFxSCtaYEdoODE1fDh6MU1veWJDLTs+THNFdVRoQG1M
VUtgRHFBKzxJcjsKek1Pe05AfEUoQHwlKXhVTkhvZTtvRk1sKGs8ck1lTnole2kyPk5DQy13WD5w
a2RDeFpXVyZGNDx4dmhyKCNCPF9ACnojSWdEY1JpMCktWXx3WjdRJHlTOFVSfkZXRDVqNy1DOEA4
PG9kWn11eUMtP30jY216Ul52WVJgcjk4NUBHUCZ1RAp6aW5taHpVMih2P2FrISM7R1FBfjdfKUV2
Yj1Pd2ZVPTtfViYjZCUoeD9YTmQ9eHBhKygpQ3lCKTlOTzB9V1NUcXIKeistVEJzJX11cF4pOSpu
c2tVTl8rS0p2bmsoST1uUkBHdCtOfEowRjclJVhITlRJZSVPP25aSHdXc2BraTRKUmM/CnpGd29R
O0dSYDttOEVAIyRzPXJ4Jns+cjVSZ1Z+KUtjVF9iaCVBM21MNTBPbyhaVSYjK1VtND5MJCF2O24l
YkF3Rgp6SlZwREchYzhlUHk+T31jKnheaWY2R2hIN3JHT2x6ZWN3QWpIN25iR1grb3lqdEppO285
VDtzcFo1JW5LeHBaJmIKell9O3BZMFVGSlpxc3swQW1hKVNNVyEhK3g8TGRAQz84dkpAdiRoV2Vt
K1h1UHMheXsmUjZHITQ9QnJJO1NYPG5hCnp8TDlLN3YoZSFNTipzU3R1MUh0MHg4PlZGM2taVXRl
UzNCdmozWjF1RWwofURQZkxGNiZxd000Y1hQJj9aTiRGNgp6dDs7cD5IST8pS18xMUNUbyRaRDtt
djZfe0h8KjhneF5RKUJTRzxIZj9UQTdJQjhnMGU1Zm47ZlEwTVF7N3VOYHIKenErPGwpZHBaQENa
MlVOM2Q4VXt9Qm8wNWd5YC1+aGhZZ2NiNUBjM1pgN251bDRUVG1nUDZ8X2lnJE9TT2ZqNDVICnpL
OCFTNz59VGo7aiNuWjsoRGBsQkg/JW9OZnQ8PFUmISNPJF9pQHJaREB8MHg1dVBma0lLRXBuJDRT
XjZVTT54YAp6eGZCKG11Z359SXtiTlA2blRlbyZreV5BNT1gRExIR2w3dmFKMG89ZTcoaGZpRmsp
dHQwZUU/YGp0ViNBUlJkTyQKekclOEhqYXNwQyh0d18lRmNPTCsoWVJUa0dOYEB8ZyR7QVR3TjJ3
cUp1PHwzM0klTXpEUnVjWFlRdjtEMCgkfkVlCnp1cmtCb08/bkFIbSpgSSpSRSlEVjBWX0l6NWNT
alBKKiFDfUQzJnwpYmZ6a082LShARXJsQy1zJE9nZG89d1NxaAp6WEJCODE5KD96RkJ0ODZhdHNW
KUNVdlRhTE5jSnk0JkVsb3xrTWJZWGZ1Y2pjdDF3VUxffmJoI0FVais9N19uRTAKemFzJXsmaGVB
akFSaU1nVCFuRGNCO2h9PDU+YitIfGFNJUBmS25LTkhuNk51eyphOWVwVkZIJWsxcmBKTERwWXVi
CnpmfnxwNlZ2bzhhPXZffUFrYTMpZExUPTFaPCo0eFVjUWNpVHBTPmR7NGhvbGttbGR7c0ZWJCtY
eks4KkgwIzJ6KQp6aHFoM3V1Kj9wM0FqbWlATlBOIWZtJk5oSF9yYEohaEBUNmJIPG9Eez1ZK28r
QyhLSjtqeUA3SzNJR1lHJlIxZEcKekV0bUgqNkRaZFRHM188fWJ0ajw0YFJZX1N6YzRCYj1tVSNU
PSRoaHJfZj5fIWRQTT0mbWtOc2ZeWjxjMmhMT1VnCno9WVlfUCojeUVId2xOKTArTilVMFRVME95
MWpZNDF7eD45ezN3PzEkbEsqflREdjx3UHFEKyNeTyhpVFRPQmptYAp6WD1QeX15Q14mU1I/TChK
Zz9KKlUrVVhLflgtcHpERGxHVTExNHVXT05XN0kyVyh9ayhLcTE/bVQlYlZsej5KdUYKeiNYIV9I
U2g4YjdYI2dOTVFPTXxwa0VfJm92a3tFQXRxbFljUTxFaCopQX4qVnpUTDJuYH17bzZPJjF1I05O
VmpOCnowSjJDN3BZRDVmQVVyMDRhRz49RTlebCZ4TDM2ZDZmTGpBWSV0KXVTMmtAUFhfNVYwRDck
NyhfRTR2flEtISZgTAp6ZmdoKzlGMlQ4R2c9WVYzRyg0RUZ4TSh6NDE4X2NwTkU2ZERKPU8hSGV9
WTJKdFMoeXVOUGlFNGUlVF9gSnswanEKeig1bURLcG9mTnVMX0lZKksjfT99SDhjKDExO2BDe04m
VzI+c21RfHIjKV5UNnBtJV42cmw2MlFhdzRFZCloTldLCnozO0BMZUxMeGFFRGdsdklWTiZTKEJw
el4jLUlxSEFObjNLSHohWE9NVFY/P3pxIUlgIWlaVmNDNWQ9YilkVVpiRgp6N2ByVVRBO0JUUmNM
eyFRYTR4fj02PDNgOVEtbC1VUHV6bmJnfnx7QTBeb3Y3IWZPPH5Ze00mQXl0djJ2OWxRbV4Ka3lK
R3lKO0xtJF5BfnJBO1ghNV8oX31lWSlQaWJmJChgYD93IV9sUHcwdzZeV2c4JT5rCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3Nz
My9pbWFnZXMvY3Jvc3MtZmFkZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGExNzNhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2ltcGxl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxMCkgc2l6ZSA3ODR4NTgwCisgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMTAsMCkgc2l6ZSAxMDB4MTAwCisgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMTAsMTEwKSBzaXplIDEwMHgxMDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgx
MCwyMjApIHNpemUgMTAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjk5ZTVmZTliYTBmYzZjZTJjNTI5OWUxMjNlNWE5NTFjOWI5MDE2MApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE1NDIKemNtZUkyZHB1T0A4cHFkfGk1YUdpT2ZGP0okZ0s7
NTZtblVTT0NeYGNiX3MoKWM1YShkbEVXSStGODUzSlI/NmsxCnpsTn44MENuOEtYdmQ9a2tBfCQo
VE5GUG04dmtQKDNibHk3Y2RGUE13JE44JklwTDVweTxNVmxEdEBuTjItI3BMcgp6ZVYoO3NkYmx+
U2x3Qmk+QWpyeXtFPDUlajIkN0I7UW9kd3FVQDFNNjVmQTx0dktAV2RWRiR2KTRramtXQVltYjwK
ejVoaHpyRUYmeUs4Q3ktYWdqekJ9RWtaK0JFSGc4VWExIz9vMikpQ3AyJnwkSjw+Mjc0KTRfcjZr
cXtSVjYmO1FzCnokJUdUJDt8QipsWHJoUFZXJVpOVVIqe01uK1hJRU1FSEFkaGA1T25uWTNjS1N3
eHZuUzw9bXkxe2lRd1kxWm5qJAp6cXVGcyotR19nWnYwYWooanZrOVVUQ31vPDdQNUhkbCh5QEZf
Vnd+fW9BPkJANXBUWH05YmJCM3NzRDYzc0ItQiQKenwzUjl1SlorenNkdzF0QCpFRFZYNihMQzdW
Wi11KUo9eHpZQDZ2TmQ8cDtTKFVTNUN3bH0xbEFgJGdQJXR0ZjEkCnpeYXJZPFBAVWRoWX5IMGs9
fm8lR3wyfHUzVm1SfDxuVGRJNHBLR0ZUSEhvNGJYJVFGM25hcyk2YDd2VSVJYSo1VAp6bDxCcyYr
VER5PW9RYXh2ejRGMGI0c0JYcj97Ymsqd3NvIUpVZ0lZJE09b19pc0ZgQHxSZERASiNrMSQ/byt7
K1YKemwmWlBpT1UtKCRZNTlsdm9FYz4zd3EzQWwreEYoTmM7NzhrUnB4Mi1lZTEzJj5heyg2IUh6
bTMycm4pMUdoQyZzCnp6VjI0Ml9mQG0jczJNcThYNmVrSlY5dWtjekc4RjdXOzRJblF2IzE0TlBM
cy1gR3d0MWIxaUtuVn0rKz5ycCNAdAp6NFRzWkZRUU1wT2dzZGs9aWlHP3xqb2hLUmZGZGlPdjlh
bUNPRkJQeTlybTsleTRZdnJzazAwdzNoaypPckQwdCkKemk+fUlRK1BmfGVNNnRiKGE0bStuOEp6
eDZwemZVZk9ZbTNDTENXKDErfiRSZXg4O3Y/TkFobTFLR0VHJl59dGlgCnpYVT1SM1NFK1B1ZFEh
LXJzJHdVJS1oNlV5WkFgNWsqO0FERHFgQFU5ezRlZXFvK0MrSFcodkdZbVhxWkFPXmFYWAp6OSRN
dX5aTWg7MFQzakQzPndaRnx2IXZzR0A3PjNCaWhzcXYraHwpYD8keWB4VHo5fkFmWGB+fiRlT3FC
UUMldTkKemFxdXJ8VSReSWNtZ1RGNTkmLUI5aGNveXl8SlpMbEIyKFZfeDRfQU4tWHp4PENGdGFK
cz8wbTRZNjt1VCtISGZJCno7IWNIQmtGXmk3XypFd1V7TU56M21KMUNqI3JiM1UzcFJOKk5eMERP
X0olWWNAYGxDPlZjK2gkJlVRekx4LW83Zwp6dVVETFlzZCF2Ml8wLWkobmZiTSQteFJvU2tjflNf
NEp4N1R5eWh9JFJLRzE+SyltNUs5NUBwZG9NYCFhZWY7ZCYKemNSJXh1dyhnUy1Rc2RvQUcqWVFG
T1BaJENydmAyMHVPOEYxRV5vcEx3fmQ5Pip+RW1qV1pVfUdqPEptYkd6aEtvCnp3TD15Q0hBOWJ7
UE4mTnlTMW42bCl7ITBWezl+e3dnM3l0akpHT2YjNjlsNnN2MWRrQkFOTzRFRj0tbmhIMVotRAp6
YShCbVJ3UWNrM21EMVJeVSFnK2dxYD10dnUxIUAwRlV+R2FsKTkqZVZoQk5zTHtefXE3KkI8fkpT
Q1RRR0klPyoKekEpTlBlcyZ0WGdod25kS0M9OGQ5P2sofHI+LWdgeEszYyZnQH1LM0IpREc+JWNU
LUtsRGJNb3I/YjJ0Km16KldNCnpjdXJaQT5rWDxsKGlaeiN1JHFCI2hzYUw5YDtJYypkQmBhTHpK
JXt3RFFUQSpZaUBzMztOd31JUSZqMGslVVZ1fQp6YndQYzIkUyohUnM9dz1tYUJLKWYpLV44YE1Y
QE5vdmEwbWFaJUkxaGpxQ045Kno9QGsrTWxFYVl4IXxMRDkjJEIKekt4WiZzRzFoXig0JFoyPCVW
RyRgaTt3Y3pAS2wjYilQbD1hVXB0NzhQYFFiVEhOR3YoNlo7Mk5BKC14fjR1ZU4lCnpUdE97M1dI
JGkpSkZ8KmBVVjZyKyFYdzxrMm0+I2l0PkRJOTs4Km83JVl5OyZjViEwcEBTVGdaY3dePSs5Jil5
Mwp6Jjs8SlM1Tk93YElTViYtMT1AS2ZTJCF8fDRHcktTUUV6bTxoOHI2Sz9QfWNhei1UIUQwISl5
MDVvKldLVyNYZFgKenFIeXA/IVNNN1VrQDE9JE1mI0VvdD89RlkkMWdRSTAmU2pANWpsM1lCSjFS
Q0M1VkxCNzBXQjhoWClUcjMpdmJGCnpPZVc3PSF0eUo/V205PCZFY3hoITc4QTNNUGxlPTBDamZQ
QyZkO3E4bFk8fjdQYXNabnJqI1RzTyNvVlQpZ3VyPAp6M2R2K3V5MWFVWWdyeW51MElAYzBsR3Rf
TkF4OTxfY1prVmBAIy0pXzApTiZWOypne1BtTH1mT20kMVlGc3NefVUKemdIKXZwNiZSPzdne18x
b2VnaE54SDY8bGkzX3lmKTUrbDZne2d4P1YyPnxFN0M2VypYbWs1c3tKa2RUV2ZZK2tgCnprI2Ey
Ki0wODJsYjZBb15ebXg0cVZ8cnc8aDl2MEIwMW5LdyN3bDxsdlFUMjZjTVdWTDBUbF53Nmx2ZUNC
cHh9egp6UWNVYztYOX1FQzVsJWxLWlU2QzllZW9FSVBQcDxBJWM/bUEzMShKKzhMZmh7PFIoR0N2
dyhoMXZzd308WHNmZysKejhucyYtZGlqMzJLUnRjRUxMP0E5ZE18byt0c15qazEwQUlTKms2Mio8
cUZhNjFRPlpRdzlIWXdjJT1hb3FYaVR+Cnp7UEJKUSkyamNLPnlYZWlhOEt3NFElRiUmS3kwViVC
eFNNRm9DX0ZYWj92TnhiZyZBQGFpSE5ZbCtsQzZLKHAkNAp6cD0zO045LV84cypibi1hQl8tfEJ1
PSpfQUkwdipMUm96ekVWaUtYQUpqQyNaSHRhQXNvP3UjU15vQGtSOEd3N2IKemVPUGN+IyhFfX1x
cy1xM2VSQmpPSlQzfEAkYD0kVnllM1YlXnNMKHdWZioxcFNUTVJebTgxeD4+PFVJR3MmaXQlCnpO
SW5YKD8yQ1AjTWopO1ckWXNMeFVJNHxmJWBGZ0MwNk9UIVMrJEJlO2BIV35WKzhLVjwhbzMxU2ZL
UG9uYGdsRQp6ZWdHO2pFKCRJUjl3e2lFSzJqdlNyaHBlMGMlbDZkWip5PV9hOGJ3I3xJSz9wSld9
dlRgODwoUSZBRHw5S2AwM3kKent1aDcleF9HPzEjcWdHJmp5R34zN3d8Pzdaeyl6KGtDVyowa08t
JkckN2Y3OWVmfUAjQlVJXzR1QzA+UWVWQnJQCk8mclYwVDlhcnN7OFVGJUZmUSRZQgoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Nz
czMvaW1hZ2VzL2Nyb3NzLWZhZGUtc2l6aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRhMTczYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUgNzg0eDU4MAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDEwLDApIHNpemUgMTAweDEwMAorICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDEwLDExMCkgc2l6ZSAxMDB4MTAwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MTAsMjIwKSBzaXplIDEwMHgxMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9jc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXRpbGVkLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MTQ1ZTg1OWZiNDQ4NzU5NWNlYTE3YWQyNDJiMGRkYzljYzEzMzdlCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTYzNQp6Y21lSE5TeSlybzdDcz9pM0lXMlRBYmIhUkxgOWhx
JjxiSEhnVUJHR2g9Zl9GVmkqRlZNTSR0SGdFQXdeWHAwNEYKeldSI1d9QV85Zm1penVWWXJHTngt
NWQpTU0zPS1mKkVqZjkoNTR9RzBgZiM0a2NsTz9FQDNzSDQqWiUqdHpMVm5RCnpVQGVOPWcjLVhW
KVlpdUcxT1VKPjBLbiVkQioxQVloKUUzUkpvWFcrSlA4M0lLPj1yQHFRZH5nTCYxaUR7ezhfNQp6
YGF1U01kYjt8P3tzd3glZFVgPkl7eV9uT2B1WVliIT8jcDl2blltSVNVQX5RU1lWdFlAeGhfemYm
ZF5FbWdHOGwKemNGME0zXkpQJFImMi13fkdaTWxrQXo5fUdUP2lJTXpudH1HPylRM3FzQTBFRlZS
QEskTDYwZ3V6RERweDh2YnppCnpnK0J5TSkmeDs2dUhlN1Q3VlZNdFY/OVYjd3FJMyNTVz44ZVQt
Xm9VXnNaJWNaUDhlck0pa1J+N1U0QXt0dEJxKQp6PUhsNGgkP2w+YFBwLWd4NmY4OEBBOzs2TT95
JWNxalRJbE55U1ZnX0EqUkBLajxBVElCeVI/YzZ5JXtLbUs4QVYKenhkdlV6KDxrcVFkSmh3JXJi
YmhpaWdnUytgfFlEVkQtZ207WE4+UnhyME1IN1JCaV9BOCg8NUJJfGFNVjQ8QnA5Cno4cj0kPVZ1
KEl9TFh4SmNAQSlaUEd3bXl+KWR7V0hLJnZ7YD5hdFNRbEAobWd6MTtjMk4qZWtgU2I/MHd2JClq
WAp6bTVlV2tVIU1hOzkrfjF+K3Nxbl4hI3hrcGxvYGFFX3A0Uyg+fWpKZDU8K2okZzlgRmI/dnFx
Z1A7Sz5odDxwT2UKekl3dH44RFZRNmd6amV5NERiP0BMKkVgOVdwKiFVdjdJZUNxdEgtezYrdVN4
Ym98UGp3Vl87SVRaIWBoQis0aGJaCnpuTDJ3aGR3SFE9QHk1djhRYHZ7eiRIJUd0PHRtVDZFO3lV
UVpPandYNiQxQjhXdHBTPTNJZStCditRQHNEY2p2MAp6Mz87Wjt0VFAldHZOemBAVUJOb0c0PTJ7
PnZ4OWw2dTVvcDB5PHxkZEVXSzRHc2tAPTx4aWtHfCh0TEJCUkRwYSMKendCTF9xPWNmJnVXKCgh
UiRSYXx7bzJqJDRIYTxjQmE3PVVfaSN7fSQ+NXxXbTc4JWdaVH52I2FeaDdtM1NvVUc8CnpLWmtU
bytTIUBrRzJIdilfZXpRMWghRj0mJFIjZlFKI1crbz9GU2JFOCNfeyY8fl8xJm5Lfjk7I3FGeGNp
JkJrTwp6VU9JYFczdFVLQ24wd2B8SDZ+Y25eM1QpTEAwKX13SDZ2QmhKOWpkejsmdn4kPiRSS1U4
dH08fTczMXdnZmVVM2kKelVKRVRsUzxPR3hVZHFpRlM2QEF2ZXFUeml1Q34yNC1kI3dleylkMlg+
PmQmdjBrflMyTHEzQilYRyE4YWsrfGZsCnpnRER3Z2V+KE5ANEo3X0gkfG9PWFRXI3x+dip0KCE5
c1l+VT07XnNvVCRDfG1mQjN4byNeVkp8THBLMipJbSl2cgp6JjdGN2pxTiYwKWFYdHFZV1g2QGdE
cnEyUTlUXlgoSlIwV0xvTXolcTl3JXM/UWlRZExsU2ZKaT92RzUrczBrdm0KeldvJl87UkZJPmMt
e1cpdjAwWT1zbnpfY3A9bzRvNWlecFdYYkRyPUcqVUlULVdqfDcjVlc8djk5am55P3E5fSM1Cnpq
S0xGUXJabD0yYkMpTGktOzlrMChARk1qRUQ/YjVBJXhIdkVSbktQaClveFh6cDcqZ3dnSUZxNW1g
KlUjSyFAagp6TXpWQmFhTyFYT0haWHNoZVB+NllKSyYhdGA4WCEtSFc5V0dHI3JvS298QEF0a1VZ
dXJoR0A1XjBCZ0c2bT9uUmsKemwoUmVsZ0xmX1F5eiR9b18hOHNmZXBhI3MtSnYqb0FXOD5sdWxG
cX1BWChRSSNkVkhhWkZlcUxASU1qZ1VDTCtBCnp0UGRvLSRCNiQrbjd5KmJULTRFJF8mRTBtWE59
T3k5eU1hPHFkZmJnNm1tU0JxaVhRJU1HUyQ7Z2orZyhLOyV6dgp6bU58fko4bjJ+LSZYTTM4NDFp
fStKYlB7eG1jYCY1K0xnSWgqZU5VcEZ2aCtgQE42NTtDKHY3JVFfWHs+NW4zQXkKenhkZnBFb2gy
eVpwbkQwckRuVi1heTlzNF5aRjlWfCFFdVg0OS11TFBSYm97cXEpP3BPNjhoLXpkJCZJZXJHIUpr
CnpTP3I5KHl0QH1iTjhjYj44bEVpXmMzKkd2Ql5JT1pPUWkwUDBPX0F9OFVfeitJTW9MbFE4X0hA
dHRKTjJXc1FhfQp6QGxBfHwtMWJAa3NmWTs2Q1U9PkU5Mj4pciVBN2Nfcm95R3pPZXQrX1dTJFlJ
QXQrVHVTbHhKS0FaUWNHY1Y8aVMKekombjxxNiFvK0x6bk9IWWdQK0B9TXRUVGFgU3hCeSsqVlVB
e2FWTHR7eT8+OUQtNzd5MDtIUzdqPk03SWp9NXA2CnpoO29oeF5PdXI5NTF2WURXNCRnblVnYiZ5
Tjw5JiNkJThMdHdESUItdXB4XyZmcUxUQjRzQzR0Zj1vS3MyNzhQRwp6Z2ZnZGhaNyZTdDh7KzUk
TFIlKiZUfHprT3FTRDBNZih4Oyk3WGBSbzx6V1FjOUU4RXxqJEF0bkxUdH1iWmJNOUAKekhQX35q
bmxHe2JlWWh3SGFWWTFySDJYfTBIdVZUcHJuXiFWQz0wYUBgViNIT0chI0lhbj8lP2sxUFROU2JX
JXVBCnpfK1goczF0SWgkVTk9UzFJekI7REdUeCojP00hUkxmcEZLUUtpbz5WZThxQytrOGVnVUNK
P0dzK2p6TGRnTXhlWAp6bEoyZXhsOEdANHVJaUM7MXRmK3lOTGtHUGlRfHBkXlBpZlFJJSpiT1h9
YD9TOGVUdWgmQ0tALTdsfiQwVDVOM0sKendoamNYUHZoNT9JPF4+KDxwSikxNU1ob3FmcGAtVjZP
aDZ9TCRaPygwY21qfWwlU3c3VXZ9ME8qU0B0JVE9WDxWCnpucXF0OGY5MTFnRCZsNjF4MmMoPTxU
aDE3cDR6bTJYRSU1Uk9mcUJtKilrOVFfdU4+KHJiPCF9JXJjK0xYayVrcQp6QH4ocktzUklTKmI5
PT44PlRscz5yc29eN0w3UUdxWDQrKEAwMmIrZUp0KUE3RklHKGFnQE9TRCU3M1klSyVoWE4KelZF
JDZRNExUeyVOcjZyWnIoWEpiPD83RTRwTlJTM0UmdmM3YDB5X1BNOSt8QmZyUSo9aFl9UCVRMjBS
TTFCRE1ICms8UkJzVV9Ye34qX0Y7Pl5EbDtsfmNBaT99ezYhN2VTfip4Jm5mb1VHMlE7P1RtO2U5
KAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMvaW1hZ2VzL2Nyb3NzLWZhZGUtdGlsZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NmY2ZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9pbWFnZXMvY3Jvc3MtZmFk
ZS10aWxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHg1ODAKK2xheWVy
IGF0ICgxOCwxMCkgc2l6ZSAxMDJ4MTAyCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMCwwKSBz
aXplIDEwMngxMDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwx
MjIpIHNpemUgMTAyeDEwMgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMTEyKSBzaXplIDEw
MngxMDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxOCwyMzQpIHNp
emUgMTAyeDEwMgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTAsMjI0KSBzaXplIDEwMngxMDIg
W2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTNm
MGJkYi4uZTg2MTYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNjcsNiArMTA2Nyw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAKQEAgLTEwODAsNyArMTA4MSw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZDZkY2M5Li5jYTUyNzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDExLTExLTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDU1MzIEltYWdlcyBjcm9zcy1m
YWRlKCkgaW1hZ2UgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUyMTYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIwOTI1ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5kZXIgLXdl
YmtpdC1jcm9zcy1mYWRlLiBPbmx5IGNyb3NzLWZhZGVzIGVudGlyZWx5IGNvbXBvc2VkIG9mIGlt
YWdlcyB3aWxsIHJlbmRlciBmb3Igbm93LAorICAgICAgICBjcm9zcy1mYWRlcyBpbnZvbHZpbmcg
Z2VuZXJhdGVkIGltYWdlcyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICBSZW9y
Z2FuaXplIEdlbmVyYXRlZEltYWdlIHRvIGJlIHRoZSBiYXNlIGNsYXNzIGZvciBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZSBhbmQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuCisKKyAgICAgICAgQWRk
IGEgcGVuZGluZyBzdGF0ZSB0byBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLCB3aGljaCBpcyB1c2Vk
IHRvIGVuYWJsZSB0aGUgcGVuZGluZy1pbWFnZXMgbG9hZGluZworICAgICAgICBtZWNoYW5pc20g
Zm9yIC13ZWJraXQtY3Jvc3MtZmFkZSdzIHN1Yi1pbWFnZXMuIFJld29yayB0aGUgbG9naWMgaW4g
Q1NTU3R5bGVTZWxlY3RvciB0byBzdXBwb3J0IHBlbmRpbmcKKyAgICAgICAgZ2VuZXJhdGVkIGlt
YWdlcy4KKyAgICAgICAgCisgICAgICAgIFN1cHBvcnQgcGFyc2luZyBmcmFjdGlvbmFsIHZhbHVl
cyBmb3IgdGhlIGNyb3NzLWZhZGUgYW1vdW50IChmb3IgZXhhbXBsZSwgMC41ID0gNTAlKS4gQ2xh
bXAgY3Jvc3MtZmFkZQorICAgICAgICBhbW91bnQgdG8gMC0xIHJhbmdlLgorCisgICAgICAgIFRl
c3RzOiBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLWludmFsaWRhdGlvbi5odG1sCisgICAgICAgICAg
ICAgICBjc3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBj
c3MzL2ltYWdlcy9jcm9zcy1mYWRlLXNpemluZy5odG1sCisgICAgICAgICAgICAgICBjc3MzL2lt
YWdlcy9jcm9zcy1mYWRlLXRpbGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ2FudmFzVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
YW52YXNWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjppc1BlbmRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6c3ViaW1hZ2VJc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
bG9hZFN1YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKToKKyAgICAgICAg
KiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFk
ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6On5D
U1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6
Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1NDcm9z
c2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3Nm
YWRlT2JzZXJ2ZXJQcm94eTo6Q3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgICogY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1
ZTo6aW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTR3JhZGllbnRWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgICogY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTo6Z2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aXNQZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlR2VuZXJhdG9yVmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAqIGNzcy9DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdlbmVyYXRl
ZE9yUGVuZGluZ0Zyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
Ojpsb2FkUGVuZGluZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6
OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZElt
YWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1h
Z2VPYnNlcnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjpzZXRSZWFkeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyYXRlZEltYWdlOjpHZW5lcmF0ZWRJbWFnZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwLgorICAgICAg
ICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyYXRlZEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6On5HZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6R2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUGVuZGluZ0ltYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5k
aW5nSW1hZ2U6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNz
c0ltYWdlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmNzc0lt
YWdlR2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6
OlN0eWxlUGVuZGluZ0ltYWdlKToKKworCiAyMDExLTEwLTI4ICBPamFuIFZhZmFpICA8b2phbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW1wbGVtZW50IGZsZXgtYWxpZ24gZm9yIGZsZXgtZmxv
dzogY29sdW1uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZDI0Y2JkLi40ZDA3
Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1MDQsNiArMjUwNCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGFzaEFycmF5LmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIFwKQEAgLTI2MjEsNyAr
MjYyMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFNtb290aGluZ01vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFRyYWl0c01hc2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFdpZHRoVmFyaWFudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMTJiN2FjZi4uZWRkMWY0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgXAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRQb2ludC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAgXApA
QCAtMTA0MSw3ICsxMDQyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERhdGEuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBcCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2Vu
ZXJhdGVkSW1hZ2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0
ZWRJbWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAgXApAQCAtMjA2Nyw2ICsyMDY4LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
aCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBcCkBAIC0yMTA0LDYgKzIxMDYsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRNZXRyaWNzLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2JjZjU1Ny4uZTQ4YzFiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMzMyNiw2ICszMzI2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAnLApA
QCAtMzM0Miw3ICszMzQ0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZv
cm1EYXRhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2Uu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0MTQ0MDNhLi4y
MzU4N2E2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMjcyNDEsNiArMjcyNDEsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xDb2xvclBhdGguaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTI3
MzczLDcgKzI3MzgxLDcgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdlbmVyYXRlZEltYWdlLmNwcCIKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZS5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOWRhN2M0Li44
YjNmNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC02OTgsNiArNjk4LDEwIEBACiAJCTJCRThFMkM3MTJBNTg5RUMwMEZBRDU1
MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM2MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNo
YXJzZXRQYXJzZXIuaCAqLzsgfTsKIAkJMkJFOEUyQzkxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxN
ZXRhQ2hhcnNldFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFy
c2VyLmNwcCAqLzsgfTsKIAkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdF
cnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQz
QTBFMzUxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJENDgxRjAwMTQ2QjVDNEMwMEFB
NzgzNCAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OworCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4
MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oICovOyB9OworCQkyRDQ4MUYwMzE0NkI1QzY1MDBBQTc4MzQgLyog
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKKwkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJh
dGVkSW1hZ2UuaCAqLzsgfTsKIAkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3Nz
ZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87
IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNF
M0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJF
MTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0
U3RhdGUuY3BwICovOyB9OwpAQCAtNTI3NCw3ICs1Mjc4LDYgQEAKIAkJQkNFMDEzOUEwQzBCRUYx
ODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNo
ZWV0LmNwcCAqLzsgfTsKIAkJQkNFMDEzOUIwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDEz
OTkwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5oICovOyB9OwogCQlCQ0UwNEM4QTBE
QUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNF
MDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTA0QzkzMERBRkY5MDIwMDdBMEY0
MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJG
MiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi87IH07CiAJCUJD
RTFDNDFDMEQ5ODI5ODEwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxQzQxQTBEOTgyOTgwMDAzQjAyRjIgLyog
TG9jYXRpb24uY3BwICovOyB9OwogCQlCQ0UxQzQzQjBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2Nh
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0UxQzQzOTBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgKi87IH07CkBAIC03Nzk3
LDYgKzc4MDAsMTAgQEAKIAkJMjlEN0JDRjkxNDQ0QUY3RDAwNzA2MTlDIC8qIEFjY2Vzc2liaWxp
dHlTcGluQnV0dG9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJCRThFMkM2
MTJBNTg5RUMwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7IHBhdGggPSBwYXJz
ZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSFRNTE1ldGFDaGFyc2V0UGFyc2Vy
LmNwcDsgcGF0aCA9IHBhcnNlci9IVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMz
IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEM0EwRTM1MTNB
N0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHUGFyc2luZ0Vycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEOEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAv
KiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NDcm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1Njks
NyArMTI1NzYsNiBAQAogCQlCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0eWxlU2hlZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UwMTM5OTBDMEJFRjE4MDA0Mzg2
MEEgLyogSlNTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1N0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMDRDODkwREFG
RjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMDRDOTMw
REFGRjkwMjAwN0EwRjQxIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTFDNDIyMEQ5ODI5RjIwMDNCMDJGMiAvKiBMb2NhdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTG9jYXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTkxOTgsNyArMTkyMDQsMTAgQEAKIAkJCQkzNzIwMjE5ODEwNjIx
M0M2MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01vZGUuaCAqLywKIAkJCQkzNzg0QzM0QTBFMTFB
QTM0MDA3RDhENDggLyogRm9udFRyYWl0c01hc2suaCAqLywKIAkJCQlCQ0U0NDEzNTEyRjc0OTBC
MDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFudC5oICovLAotCQkJCUJDRTA0QzkzMERBRkY5MDIw
MDdBMEY0MSAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCisJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAw
MjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQkyRDJGQzA1NTE0
NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLywKKwkJCQkyRDJG
QzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovLAor
CQkJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5o
ICovLAogCQkJCUJDMjNGMERBMERBRkY0QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICov
LAogCQkJCUJDRTA0Qzg5MERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3IuaCAqLywKIAkJCQkw
ODZCQkQwRTEzNjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCAqLywKQEAgLTIyMzU3LDYgKzIyMzY2
LDggQEAKIAkJCQkxOUJGRjY0QjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5QkZGNjREMTFDMEYyQUMwMEI4QzA0
RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTAyQUI0ODBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQg
LyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTJENDgxRjA0
MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODUwMkFCOTIwQUQ0Mzk0RTAwMzc4NTQwIC8qIERPTVNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAyQUI0QTBBRDQzOEMw
MDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTAyQUI5MzBBRDQzOTRFMDAzNzg1NDAgLyogRE9NU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwMzQsNiArMjUwNDUsOCBA
QAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUFE
MDNBQUZBMTQ2ODQ1NTMwMEEzOUI1QiAvKiBDU1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkyRDQ4MUYwMDE0NkI1QzRDMDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMkQ0ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1QjVEQzY5MTE5QkIzRDUw
MDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTFC
MUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5NEUgLyogQWNjZXNzaWJpbGl0eUFsbEluT25lLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjU3NjgsNyArMjU3ODEsNiBAQAogCQkJCTk3MjA1QUFGMTIz
OTI4Q0EwMEIxNzM4MCAvKiBGVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNFMDRDOTQwREFGRjkwMjAwN0EwRjQxIC8qIEdl
bmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFODBEN0M1MEU5QzFGMjUwMDBE
NkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFC
RjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDNTZDQjIxMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFz
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCmluZGV4IDIzMmE1
MjUuLmVmYWQ3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oCkBAIC00NCw2ICs0
NCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopOwogCisgICAg
Ym9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgbG9hZFN1
YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciopIHsgfQorCiAgICAgdm9pZCBzZXROYW1lKGNv
bnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCBiNzcwNjlmLi40MmU1OTUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAgLTI2LDggKzI2LDIx
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIK
IAorI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlbmRl
ck9iamVjdC5oIgorI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJTdHls
ZUdlbmVyYXRlZEltYWdlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorQ2FjaGVkSW1hZ2Uq
IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4sIGNvbnN0IFJlbmRl
ck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKK3ZvaWQgbG9hZFN1YmltYWdlKFBhc3NSZWZQdHI8
Q1NTVmFsdWU+LCBDYWNoZWRSZXNvdXJjZUxvYWRlciopOworYm9vbCBzdWJpbWFnZUlzUGVuZGlu
ZyhQYXNzUmVmUHRyPENTU1ZhbHVlPik7CisKIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3Vz
dG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdCA9ICItd2Via2l0LWNyb3Nz
LWZhZGUoIjsKQEAgLTQwLDE3ICs1MywxMDcgQEAgU3RyaW5nIENTU0Nyb3NzZmFkZVZhbHVlOjpj
dXN0b21Dc3NUZXh0KCkgY29uc3QKIAogSW50U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRT
aXplKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHJl
bmRlcmVyKTsKKyAgICBmbG9hdCBwZXJjZW50YWdlID0gbV9wZXJjZW50YWdlLT5nZXRGbG9hdFZh
bHVlKCk7CisgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxIC0gcGVyY2VudGFnZTsKKwor
ICAgIEludFNpemUgc2l6ZTsKKworICAgIENhY2hlZEltYWdlKiBmcm9tSW1hZ2UgPSBjYWNoZWRJ
bWFnZUZvckNTU1ZhbHVlKG1fZnJvbUltYWdlLCByZW5kZXJlciwgc2l6ZSk7CisgICAgQ2FjaGVk
SW1hZ2UqIHRvSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fdG9JbWFnZSwgcmVuZGVy
ZXIsIHNpemUpOworCisgICAgaWYgKCFmcm9tSW1hZ2UgfHwgIXRvSW1hZ2UpCisgICAgICAgIHJl
dHVybiBJbnRTaXplKCk7CiAKLSAgICByZXR1cm4gSW50U2l6ZSgpOworICAgIEludFNpemUgZnJv
bUltYWdlU2l6ZSA9IGZyb21JbWFnZS0+aW1hZ2UoKS0+c2l6ZSgpOworICAgIEludFNpemUgdG9J
bWFnZVNpemUgPSB0b0ltYWdlLT5pbWFnZSgpLT5zaXplKCk7CisKKyAgICByZXR1cm4gSW50U2l6
ZShmcm9tSW1hZ2VTaXplLndpZHRoKCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXpl
LndpZHRoKCkgKiBwZXJjZW50YWdlLAorICAgICAgICBmcm9tSW1hZ2VTaXplLmhlaWdodCgpICog
aW52ZXJzZVBlcmNlbnRhZ2UgKyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSAqIHBlcmNlbnRhZ2UpOwog
fQogCi1QYXNzUmVmUHRyPEltYWdlPiBDU1NDcm9zc2ZhZGVWYWx1ZTo6aW1hZ2UoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK2Jvb2wgQ1NTQ3Jvc3NmYWRlVmFs
dWU6OmlzUGVuZGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmltYWdlSXNQZW5kaW5nKG1f
ZnJvbUltYWdlKSB8fCBzdWJpbWFnZUlzUGVuZGluZyhtX3RvSW1hZ2UpOworfQorCit2b2lkIENT
U0Nyb3NzZmFkZVZhbHVlOjpsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNo
ZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBsb2FkU3ViaW1hZ2UobV9mcm9tSW1hZ2UsIGNhY2hl
ZFJlc291cmNlTG9hZGVyKTsKKyAgICBsb2FkU3ViaW1hZ2UobV90b0ltYWdlLCBjYWNoZWRSZXNv
dXJjZUxvYWRlcik7Cit9CisKK2Jvb2wgc3ViaW1hZ2VJc1BlbmRpbmcoUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hlZE9y
UGVuZGluZ0ltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCk7CisKKyAgICBpZiAodmFsdWUtPmlzSW1h
Z2VHZW5lcmF0b3JWYWx1ZSgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZSo+KHZhbHVlLmdldCgpKS0+aXNQZW5kaW5nKCk7CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBsb2FkU3ViaW1h
Z2UoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUsIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNo
ZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKSB7Cisg
ICAgICAgIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmNhY2hlZElt
YWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKKyAgICAgICAgc3RhdGljX2Nh
c3Q8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSo+KHZhbHVlLmdldCgpKS0+bG9hZFN1YmltYWdlcyhj
YWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKworQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUsIGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVy
ZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHJlbmRlcmVyKTsK
ICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2Fj
aGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKTsKKworICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpCisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5jYWNoZWRJbWFnZShj
YWNoZWRSZXNvdXJjZUxvYWRlciktPmNhY2hlZEltYWdlKCk7CisKKyAgICBpZiAodmFsdWUtPmlz
SW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZSAoYW5kIHRodXMgY3Jvc3MtZmFkZXMgd2l0aCBncmFkaWVudHMgYW5k
IGNhbnZhcykuCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKK1Bhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3Nz
ZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBz
aXplKQoreworICAgIGlmIChzaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBDYWNoZWRJbWFnZSogZnJvbUltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX2Zyb21J
bWFnZSwgcmVuZGVyZXIsIHNpemUpOworICAgIENhY2hlZEltYWdlKiB0b0ltYWdlID0gY2FjaGVk
SW1hZ2VGb3JDU1NWYWx1ZShtX3RvSW1hZ2UsIHJlbmRlcmVyLCBzaXplKTsKKworICAgIGlmICgh
ZnJvbUltYWdlIHx8ICF0b0ltYWdlKQorICAgICAgICByZXR1cm4gSW1hZ2U6Om51bGxJbWFnZSgp
OworCisgICAgbV9nZW5lcmF0ZWRJbWFnZSA9IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpjcmVh
dGUoZnJvbUltYWdlLCB0b0ltYWdlLCBtX3BlcmNlbnRhZ2UtPmdldEZsb2F0VmFsdWUoKSwgJm1f
Y3Jvc3NmYWRlT2JzZXJ2ZXIsIGZpeGVkU2l6ZShyZW5kZXJlciksIHNpemUpOworCisgICAgcmV0
dXJuIG1fZ2VuZXJhdGVkSW1hZ2UuZ2V0KCk7Cit9CisKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6
OmNyb3NzZmFkZUNoYW5nZWQoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBVTlVTRURfUEFS
QU0ocmVjdCk7CisKKyAgICBSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IGNsaWVudHMoKS5lbmQoKTsKKyAgICBmb3IgKFJlbmRlck9iamVjdFNpemVDb3VudE1h
cDo6Y29uc3RfaXRlcmF0b3IgY3VyciA9IGNsaWVudHMoKS5iZWdpbigpOyBjdXJyICE9IGVuZDsg
KytjdXJyKSB7CisgICAgICAgIFJlbmRlck9iamVjdCogY2xpZW50ID0gY29uc3RfY2FzdDxSZW5k
ZXJPYmplY3QqPihjdXJyLT5maXJzdCk7CisgICAgICAgIGNsaWVudC0+aW1hZ2VDaGFuZ2VkKHN0
YXRpY19jYXN0PFdyYXBwZWRJbWFnZVB0cj4odGhpcykpOworICAgIH0KK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAppbmRleCBk
NTQ5ZmJlLi43MTNiYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3Nm
YWRlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApA
QCAtMjcsMzcgKzI3LDY1IEBACiAjZGVmaW5lIENTU0Nyb3NzZmFkZVZhbHVlX2gKIAogI2luY2x1
ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgi
CisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2lu
Y2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBD
YWNoZWRJbWFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIERvY3VtZW50OwogCiBjbGFz
cyBDU1NDcm9zc2ZhZGVWYWx1ZSA6IHB1YmxpYyBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1ZT4gY3JlYXRlKFBh
c3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gZnJvbUltYWdlLCBQYXNzUmVmUHRyPENTU0ltYWdlVmFs
dWU+IHRvSW1hZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NDcm9zc2ZhZGVWYWx1ZShmcm9t
SW1hZ2UsIHRvSW1hZ2UpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Nyb3NzZmFkZVZh
bHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZnJvbUltYWdlLCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiB0b0ltYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1ND
cm9zc2ZhZGVWYWx1ZShmcm9tSW1hZ2UsIHRvSW1hZ2UpKTsKKyAgICB9CiAKICAgICBTdHJpbmcg
Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwotICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNGaXhlZFNpemUoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAK
KyAgICBib29sIGlzUGVuZGluZygpIGNvbnN0OworICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNo
ZWRSZXNvdXJjZUxvYWRlciopOworCiAgICAgdm9pZCBzZXRQZXJjZW50YWdlKFBhc3NSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHBlcmNlbnRhZ2UpIHsgbV9wZXJjZW50YWdlID0gcGVyY2VudGFn
ZTsgfQogCiBwcml2YXRlOgotICAgIENTU0Nyb3NzZmFkZVZhbHVlKFBhc3NSZWZQdHI8Q1NTSW1h
Z2VWYWx1ZT4gZnJvbUltYWdlLCBQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IHRvSW1hZ2UpCisg
ICAgQ1NTQ3Jvc3NmYWRlVmFsdWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZnJvbUltYWdlLCBQYXNz
UmVmUHRyPENTU1ZhbHVlPiB0b0ltYWdlKQogICAgICAgICA6IENTU0ltYWdlR2VuZXJhdG9yVmFs
dWUoQ3Jvc3NmYWRlQ2xhc3MpCiAgICAgICAgICwgbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQogICAg
ICAgICAsIG1fdG9JbWFnZSh0b0ltYWdlKQotICAgIHsKLSAgICB9CisgICAgICAgICwgbV9jcm9z
c2ZhZGVPYnNlcnZlcih0aGlzKSB7IH0KIAotICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBtX2Zy
b21JbWFnZTsKLSAgICBSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4gbV90b0ltYWdlOworICAgIC8vIE5P
VEU6IFdlIHB1dCB0aGUgSW1hZ2VPYnNlcnZlciBpbiBhIG1lbWJlciBpbnN0ZWFkIG9mIGluaGVy
aXRpbmcgZnJvbSBpdAorICAgIC8vIHRvIGF2b2lkIGFkZGluZyBhIHZwdHIgdG8gQ1NTQ3Jvc3Nm
YWRlVmFsdWUuCisgICAgY2xhc3MgQ3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eSA6IHB1YmxpYyBJbWFn
ZU9ic2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIENyb3NzZmFkZU9ic2VydmVyUHJveHko
Q1NTQ3Jvc3NmYWRlVmFsdWUqIG93bmVyVmFsdWUpIDogbV9vd25lclZhbHVlKG93bmVyVmFsdWUp
IHsgfQorICAgICAgICB2aXJ0dWFsIH5Dcm9zc2ZhZGVPYnNlcnZlclByb3h5KCkgeyB9CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlKiwgY29uc3QgSW50UmVj
dCYgcmVjdCkgT1ZFUlJJREUgeyBtX293bmVyVmFsdWUtPmNyb3NzZmFkZUNoYW5nZWQocmVjdCk7
IH07CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYXVzZUFuaW1hdGlvbihjb25zdCBJbWFn
ZSopIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRE
cmF3KGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhbmlt
YXRpb25BZHZhbmNlZChjb25zdCBJbWFnZSopIE9WRVJSSURFIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlKiwgaW50KSBPVkVSUklERSB7IH0K
KyAgICBwcml2YXRlOgorICAgICAgICBDU1NDcm9zc2ZhZGVWYWx1ZSogbV9vd25lclZhbHVlOwor
ICAgIH07CisKKyAgICB2b2lkIGNyb3NzZmFkZUNoYW5nZWQoY29uc3QgSW50UmVjdCYpOworCisg
ICAgUmVmUHRyPENTU1ZhbHVlPiBtX2Zyb21JbWFnZTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1f
dG9JbWFnZTsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcGVyY2VudGFnZTsKKwor
ICAgIFJlZlB0cjxJbWFnZT4gbV9nZW5lcmF0ZWRJbWFnZTsKKworICAgIENyb3NzZmFkZU9ic2Vy
dmVyUHJveHkgbV9jcm9zc2ZhZGVPYnNlcnZlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCBmZWIwMWY0Li5i
NTViNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC0yNiw5
ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1
ZS5oIgogCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNTU1N0eWxl
U2VsZWN0b3IuaCIKLSNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIgogI2lu
Y2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCkBAIC02Nyw3ICs2Nyw3IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0dyYWRpZW50VmFsdWU6
OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmCiAgICAgICAgIGdy
YWRpZW50ID0gc3RhdGljX2Nhc3Q8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZSo+KHRoaXMpLT5jcmVh
dGVHcmFkaWVudChyZW5kZXJlciwgc2l6ZSk7CiAgICAgfQogCi0gICAgUmVmUHRyPEltYWdlPiBu
ZXdJbWFnZSA9IEdlbmVyYXRlZEltYWdlOjpjcmVhdGUoZ3JhZGllbnQsIHNpemUpOworICAgIFJl
ZlB0cjxJbWFnZT4gbmV3SW1hZ2UgPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGdy
YWRpZW50LCBzaXplKTsKICAgICBpZiAoY2FjaGVhYmxlKQogICAgICAgICBwdXRJbWFnZShzaXpl
LCBuZXdJbWFnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCmluZGV4IGYx
M2FjOTguLmVhMTBlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaApAQCAt
NjksNiArNjksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kikg
Y29uc3QgeyByZXR1cm4gSW50U2l6ZSgpOyB9CiAKKyAgICBib29sIGlzUGVuZGluZygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNl
TG9hZGVyKikgeyB9CisKIHByb3RlY3RlZDoKICAgICBDU1NHcmFkaWVudFZhbHVlKENsYXNzVHlw
ZSBjbGFzc1R5cGUsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdCwgYm9vbCBkZXByZWNhdGVkVHlw
ZSA9IGZhbHNlKQogICAgICAgICA6IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoY2xhc3NUeXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCmluZGV4IDFj
M2M2NTIuLjQxYjQ2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdl
bmVyYXRvclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlN0eWxlR2VuZXJhdGVkSW1hZ2UuaCIKKyNp
bmNsdWRlICJTdHlsZVBlbmRpbmdJbWFnZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTAsMTMgKzExMSwyNiBAQCB2b2lkIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OnB1dEltYWdlKGNvbnN0IEludFNpemUmIHNpemUsIFBhc3NS
ZWZQdHI8SW1hZ2U+IGltYQogICAgIG1faW1hZ2VzLmFkZChzaXplLCBpbWFnZSk7CiB9CiAKK1N0
eWxlSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdlbmVyYXRlZE9yUGVuZGluZ0ltYWdl
KCkKK3sKKyAgICBpZiAoaXNQZW5kaW5nKCkpCisgICAgICAgIG1faW1hZ2UgPSBTdHlsZVBlbmRp
bmdJbWFnZTo6Y3JlYXRlKHRoaXMpLmdldCgpOworICAgIGVsc2UgaWYgKCFtX2FjY2Vzc2VkSW1h
Z2UpIHsKKyAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKKyAgICAgICAgbV9pbWFnZSA9
IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZSh0aGlzLCBpc0ZpeGVkU2l6ZSgpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbV9pbWFnZS5nZXQoKTsKK30KKwogU3R5bGVHZW5lcmF0ZWRJbWFnZSog
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVkSW1hZ2UoKQogewogICAgIGlmICghbV9h
Y2Nlc3NlZEltYWdlKSB7CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAgICAgICAg
IG1faW1hZ2UgPSBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUodGhpcywgaXNGaXhlZFNpemUo
KSk7CiAgICAgfQotICAgIHJldHVybiBtX2ltYWdlLmdldCgpOworCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFN0eWxlR2VuZXJhdGVkSW1hZ2UqPihtX2ltYWdlLmdldCgpKTsKIH0KIAogUGFzc1Jl
ZlB0cjxJbWFnZT4gQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTE3MCw0ICsxODQsNDEgQEAgSW50U2l6
ZSBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKICAgICByZXR1cm4gSW50U2l6ZSgpOwogfQogCitib29sIENTU0ltYWdlR2VuZXJh
dG9yVmFsdWU6OmlzUGVuZGluZygpIGNvbnN0Cit7CisgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkg
eworICAgIGNhc2UgQ3Jvc3NmYWRlQ2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBDU1NDcm9zc2ZhZGVWYWx1ZSo+KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBjYXNlIENh
bnZhc0NsYXNzOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQ2FudmFzVmFs
dWUqPih0aGlzKS0+aXNQZW5kaW5nKCk7CisgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTTGluZWFyR3JhZGllbnRWYWx1ZSo+
KHRoaXMpLT5pc1BlbmRpbmcoKTsKKyAgICBjYXNlIFJhZGlhbEdyYWRpZW50Q2xhc3M6CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDU1NSYWRpYWxHcmFkaWVudFZhbHVlKj4odGhp
cyktPmlzUGVuZGluZygpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZTo6bG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpCit7CisgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkgeworICAgIGNhc2UgQ3Jvc3Nm
YWRlQ2xhc3M6CisgICAgICAgIHN0YXRpY19jYXN0PENTU0Nyb3NzZmFkZVZhbHVlKj4odGhpcykt
PmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENhbnZhc0NsYXNzOgorICAgICAgICBzdGF0aWNfY2FzdDxDU1NDYW52YXNWYWx1ZSo+
KHRoaXMpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgorICAgICAgICBzdGF0aWNfY2FzdDxD
U1NMaW5lYXJHcmFkaWVudFZhbHVlKj4odGhpcyktPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJhZGlhbEdyYWRpZW50Q2xhc3M6
CisgICAgICAgIHN0YXRpY19jYXN0PENTU1JhZGlhbEdyYWRpZW50VmFsdWUqPih0aGlzKS0+bG9h
ZFN1YmltYWdlcyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZh
bHVlLmgKaW5kZXggZDBlYjY1Yi4uMWFiNDQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCkBAIC0zMyw5ICszMywxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgSW1hZ2U7CiBjbGFz
cyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBTdHlsZUdlbmVyYXRlZEltYWdlOworY2xhc3MgU3R5bGVJ
bWFnZTsKIAogc3RydWN0IFNpemVBbmRDb3VudCB7CiAgICAgU2l6ZUFuZENvdW50KEludFNpemUg
bmV3U2l6ZSA9IEludFNpemUoKSwgaW50IG5ld0NvdW50ID0gMCkKQEAgLTU4LDExICs2MCwxNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0Kik7CiAgICAgUGFz
c1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwogCisg
ICAgU3R5bGVJbWFnZSogZ2VuZXJhdGVkT3JQZW5kaW5nSW1hZ2UoKTsKICAgICBTdHlsZUdlbmVy
YXRlZEltYWdlKiBnZW5lcmF0ZWRJbWFnZSgpOwogCiAgICAgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNv
bnN0OwogICAgIEludFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopOwogCisgICAg
Ym9vbCBpc1BlbmRpbmcoKSBjb25zdDsKKworICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRS
ZXNvdXJjZUxvYWRlciopOworCiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZShDbGFzc1R5cGUpOwogCkBAIC03MCw3ICs3Nyw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHB1
dEltYWdlKGNvbnN0IEludFNpemUmLCBQYXNzUmVmUHRyPEltYWdlPik7CiAgICAgY29uc3QgUmVu
ZGVyT2JqZWN0U2l6ZUNvdW50TWFwJiBjbGllbnRzKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRz
OyB9CiAKLSAgICBSZWZQdHI8U3R5bGVHZW5lcmF0ZWRJbWFnZT4gbV9pbWFnZTsKKyAgICBSZWZQ
dHI8U3R5bGVJbWFnZT4gbV9pbWFnZTsKICAgICBib29sIG1fYWNjZXNzZWRJbWFnZTsKIAogICAg
IEhhc2hDb3VudGVkU2V0PEludFNpemU+IG1fc2l6ZXM7IC8vIEEgY291bnQgb2YgaG93IG1hbnkg
dGltZXMgYSBnaXZlbiBpbWFnZSBzaXplIGlzIGluIHVzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggOGExZDY3Mi4uNGUzZTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTYzMTMsMTIgKzYzMTMsMjAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ3Jvc3NmYWRlKENTU1Bh
cnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgYSA9IGFyZ3MtPm5leHQoKTsKIAotICAgIC8vIFRoZSB0aGlyZCBhcmd1
bWVudCBpcyB0aGUgY3Jvc3NmYWRlIHZhbHVlLiBJdCBpcyBhIHBlcmNlbnRhZ2UuCi0gICAgaWYg
KCFhIHx8IGEtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQorICAg
IC8vIFRoZSB0aGlyZCBhcmd1bWVudCBpcyB0aGUgY3Jvc3NmYWRlIHZhbHVlLiBJdCBpcyBhIHBl
cmNlbnRhZ2Ugb3IgYSBmcmFjdGlvbmFsIG51bWJlci4KKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IHBlcmNlbnRhZ2U7CisgICAgaWYgKCFhKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgaWYgKGEtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KQorICAgICAgICBwZXJjZW50YWdlID0gcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1
ZShjbGFtcFRvPGRvdWJsZT4oYS0+ZlZhbHVlIC8gMTAwLCAwLCAxKSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19OVU1CRVIpOworICAgIGVsc2UgaWYgKGEtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19OVU1CRVIpCisgICAgICAgIHBlcmNlbnRhZ2UgPSBwcmltaXRpdmVWYWx1ZUNhY2hl
KCktPmNyZWF0ZVZhbHVlKGNsYW1wVG88ZG91YmxlPihhLT5mVmFsdWUsIDAsIDEpLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgZWxzZQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICByZXN1bHQgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PENT
U0ltYWdlVmFsdWUqPihmcm9tSW1hZ2VWYWx1ZS5nZXQoKSksIHN0YXRpY19jYXN0PENTU0ltYWdl
VmFsdWUqPih0b0ltYWdlVmFsdWUuZ2V0KCkpKTsKLSAgICByZXN1bHQtPnNldFBlcmNlbnRhZ2Uo
Y3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGEpKTsKKyAgICByZXN1bHQgPSBDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Y3JlYXRlKGZyb21JbWFnZVZhbHVlLCB0b0ltYWdlVmFsdWUpOworICAgIHJlc3Vs
dC0+c2V0UGVyY2VudGFnZShwZXJjZW50YWdlKTsKIAogICAgIGNyb3NzZmFkZSA9IHJlc3VsdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDM0MzczZTAuLjFj
NTVmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQyNDks
NyArNDI0OSw3IEBAIFN0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlSW1hZ2UoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTVmFsdWUqIHZhbHVlCiAgICAgICAgIHJldHVybiBjYWNo
ZWRPclBlbmRpbmdGcm9tVmFsdWUocHJvcGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUq
Pih2YWx1ZSkpOwogCiAgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSkt
PmdlbmVyYXRlZEltYWdlKCk7CisgICAgICAgIHJldHVybiBnZW5lcmF0ZWRPclBlbmRpbmdGcm9t
VmFsdWUocHJvcGVydHksIHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1
ZSkpOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC00MjYyLDYgKzQyNjIsMTQgQEAgU3R5bGVJbWFn
ZSogQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcGVydHksIEMKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKK1N0eWxlSW1hZ2UqIENTU1N0
eWxlU2VsZWN0b3I6OmdlbmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5LCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBTdHlsZUltYWdl
KiBpbWFnZSA9IHZhbHVlLT5nZW5lcmF0ZWRPclBlbmRpbmdJbWFnZSgpOworICAgIGlmIChpbWFn
ZSAmJiBpbWFnZS0+aXNQZW5kaW5nSW1hZ2UoKSkKKyAgICAgICAgbV9wZW5kaW5nSW1hZ2VQcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CisgICAgcmV0dXJuIGltYWdlOworfQorCiB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6Om1hcEZpbGxJbWFnZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBGaWxsTGF5
ZXIqIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLT5pc0luaXRpYWxW
YWx1ZSgpKSB7CkBAIC01NTc5LDYgKzU1ODcsMjQgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpj
cmVhdGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogc3QK
IAogI2VuZGlmCiAKK1N0eWxlSW1hZ2UqIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1h
Z2UoU3R5bGVQZW5kaW5nSW1hZ2UqIHBlbmRpbmdJbWFnZSkKK3sKKyAgICBDYWNoZWRSZXNvdXJj
ZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCk7CisKKyAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZh
bHVlKCkpIHsKKyAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFn
ZS0+Y3NzSW1hZ2VWYWx1ZSgpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1h
Z2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIH0KKworICAgIGlmIChwZW5kaW5nSW1hZ2Ut
PmNzc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZh
bHVlKiBpbWFnZUdlbmVyYXRvclZhbHVlID0gcGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRv
clZhbHVlKCk7CisgICAgICAgIGltYWdlR2VuZXJhdG9yVmFsdWUtPmxvYWRTdWJpbWFnZXMoY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VHZW5lcmF0b3JWYWx1ZS0+
Z2VuZXJhdGVkSW1hZ2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiB7CiAgICAgaWYgKG1fcGVuZGluZ0lt
YWdlUHJvcGVydGllcy5pc0VtcHR5KCkpCkBAIC01NTg4LDE0ICs1NjE0LDEyIEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgIGZvciAoSGFzaFNldDxpbnQ+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcy5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgQ1NTUHJvcGVydHlJRCBjdXJyZW50UHJvcGVydHkg
PSBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPigqaXQpOwogCi0gICAgICAgIENhY2hlZFJlc291
cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLQogICAgICAgICBzd2l0Y2ggKGN1cnJlbnRQcm9wZXJ0
eSkgewogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZTogewogICAg
ICAgICAgICAgICAgIGZvciAoRmlsbExheWVyKiBiYWNrZ3JvdW5kTGF5ZXIgPSBtX3N0eWxlLT5h
Y2Nlc3NCYWNrZ3JvdW5kTGF5ZXJzKCk7IGJhY2tncm91bmRMYXllcjsgYmFja2dyb3VuZExheWVy
ID0gYmFja2dyb3VuZExheWVyLT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJh
Y2tncm91bmRMYXllci0+aW1hZ2UoKSAmJiBiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCktPmlzUGVu
ZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGlt
YWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGJhY2tncm91bmRMYXll
ci0+aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJh
Y2tncm91bmRMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVz
b3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRl
ZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+
KGJhY2tncm91bmRMYXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYmFj
a2dyb3VuZExheWVyLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01NjA0LDEx
ICs1NjI4LDExIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQog
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbnRlbnQ6IHsKICAgICAgICAgICAgICAgICBm
b3IgKENvbnRlbnREYXRhKiBjb250ZW50RGF0YSA9IGNvbnN0X2Nhc3Q8Q29udGVudERhdGEqPiht
X3N0eWxlLT5jb250ZW50RGF0YSgpKTsgY29udGVudERhdGE7IGNvbnRlbnREYXRhID0gY29udGVu
dERhdGEtPm5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudERhdGEtPmlz
SW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3R5bGVJbWFnZSogaW1h
Z2UgPSBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogaW1hZ2UgPSBzdGF0aWNfY2Fz
dDxJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFnZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PGNv
bnN0IFN0eWxlUGVuZGluZ0ltYWdlKj4oaW1hZ2UpLT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0g
aW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJbWFnZUNvbnRlbnREYXRhKj4oY29u
dGVudERhdGEpLT5zZXRJbWFnZShjYWNoZWRJbWFnZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19j
YXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4oaW1hZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobG9hZGVkSW1hZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PEltYWdlQ29udGVudERhdGEqPihjb250ZW50RGF0YSktPnNldEltYWdlKGxvYWRl
ZEltYWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIH0KQEAgLTU2MjEsOCArNTY0NSw4IEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgQ3Vy
c29yRGF0YSYgY3VycmVudEN1cnNvciA9IGN1cnNvckxpc3QtPmF0KGkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKFN0eWxlSW1hZ2UqIGltYWdlID0gY3VycmVudEN1cnNvci5pbWFnZSgp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlLT5pc1BlbmRpbmdJbWFn
ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGlt
YWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdlKS0+Y3NzSW1h
Z2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q3Vyc29y
LnNldEltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdl
ID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KGltYWdl
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDdXJzb3Iuc2V0SW1h
Z2UobG9hZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtNTYzMiwxNiArNTY1
NiwxNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKIAogICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZUltYWdlOiB7CiAgICAgICAgICAgICAg
ICAgaWYgKG1fc3R5bGUtPmxpc3RTdHlsZUltYWdlKCkgJiYgbV9zdHlsZS0+bGlzdFN0eWxlSW1h
Z2UoKS0+aXNQZW5kaW5nSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICBDU1NJbWFnZVZh
bHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxl
LT5saXN0U3R5bGVJbWFnZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRMaXN0U3R5bGVJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNo
ZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgICAgICAgICBTdHlsZUltYWdlKiBsb2Fk
ZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2Uq
PihtX3N0eWxlLT5saXN0U3R5bGVJbWFnZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldExpc3RTdHlsZUltYWdlKGxvYWRlZEltYWdlKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJJbWFnZVNvdXJjZTogewogICAgICAgICAgICAgICAgIGlmIChtX3N0
eWxlLT5ib3JkZXJJbWFnZVNvdXJjZSgpICYmIG1fc3R5bGUtPmJvcmRlckltYWdlU291cmNlKCkt
PmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSog
aW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdHlsZS0+Ym9y
ZGVySW1hZ2VTb3VyY2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAg
bV9zdHlsZS0+c2V0Qm9yZGVySW1hZ2VTb3VyY2UoaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgU3R5bGVJbWFnZSogbG9h
ZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdl
Kj4obV9zdHlsZS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSkpOworICAgICAgICAgICAgICAgICAgICBt
X3N0eWxlLT5zZXRCb3JkZXJJbWFnZVNvdXJjZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNTY1MCw4ICs1
Njc0LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAg
ICAgICAgICAgICAgaWYgKFN0eWxlUmVmbGVjdGlvbiogcmVmbGVjdGlvbiA9IG1fc3R5bGUtPmJv
eFJlZmxlY3QoKSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFnZSYg
bWFza0ltYWdlID0gcmVmbGVjdGlvbi0+bWFzaygpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
bWFza0ltYWdlLmltYWdlKCkgJiYgbWFza0ltYWdlLmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBz
dGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tJbWFnZS5pbWFnZSgpKS0+Y3NzSW1h
Z2VWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVmbGVjdGlvbi0+c2V0TWFzayhO
aW5lUGllY2VJbWFnZShpbWFnZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRl
ciksIG1hc2tJbWFnZS5pbWFnZVNsaWNlcygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2Uu
Ym9yZGVyU2xpY2VzKCksIG1hc2tJbWFnZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxS
dWxlKCksIG1hc2tJbWFnZS52ZXJ0aWNhbFJ1bGUoKSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgU3R5bGVJbWFnZSogbG9hZGVkSW1hZ2UgPSBsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0
PFN0eWxlUGVuZGluZ0ltYWdlKj4obWFza0ltYWdlLmltYWdlKCkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJlZmxlY3Rpb24tPnNldE1hc2soTmluZVBpZWNlSW1hZ2UobG9hZGVkSW1hZ2Us
IG1hc2tJbWFnZS5pbWFnZVNsaWNlcygpLCBtYXNrSW1hZ2UuZmlsbCgpLCBtYXNrSW1hZ2UuYm9y
ZGVyU2xpY2VzKCksIG1hc2tJbWFnZS5vdXRzZXQoKSwgbWFza0ltYWdlLmhvcml6b250YWxSdWxl
KCksIG1hc2tJbWFnZS52ZXJ0aWNhbFJ1bGUoKSkpOwogICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTY1OSw4ICs1Njgz
LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAKICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrQm94SW1hZ2VTb3VyY2U6IHsKICAgICAg
ICAgICAgICAgICBpZiAobV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkgJiYgbV9zdHlsZS0+
bWFza0JveEltYWdlU291cmNlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGlu
Z0ltYWdlKj4obV9zdHlsZS0+bWFza0JveEltYWdlU291cmNlKCkpLT5jc3NJbWFnZVZhbHVlKCk7
Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hc2tCb3hJbWFnZVNvdXJjZShpbWFn
ZVZhbHVlLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAg
ICAgICAgICBTdHlsZUltYWdlKiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGlj
X2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0eWxlLT5tYXNrQm94SW1hZ2VTb3VyY2UoKSkp
OworICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXNrQm94SW1hZ2VTb3VyY2UobG9h
ZGVkSW1hZ2UpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KQEAgLTU2NjgsOCArNTY5Miw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
c2tJbWFnZTogewogICAgICAgICAgICAgICAgIGZvciAoRmlsbExheWVyKiBtYXNrTGF5ZXIgPSBt
X3N0eWxlLT5hY2Nlc3NNYXNrTGF5ZXJzKCk7IG1hc2tMYXllcjsgbWFza0xheWVyID0gbWFza0xh
eWVyLT5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2tMYXllci0+aW1hZ2Uo
KSAmJiBtYXNrTGF5ZXItPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHls
ZVBlbmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2Fj
aGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IFN0eWxlSW1hZ2UqIGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxT
dHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbWFza0xheWVyLT5zZXRJbWFnZShsb2FkZWRJbWFnZSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCAxNTNlZjg2Li5mOWYyY2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3Mg
Q1NTUHJpbWl0aXZlVmFsdWU7CiBjbGFzcyBDU1NQcm9wZXJ0eTsKIGNsYXNzIENTU0ZvbnRGYWNl
OwogY2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTsK
IGNsYXNzIENTU0ltYWdlVmFsdWU7CiBjbGFzcyBDU1NSZWdpb25TdHlsZVJ1bGU7CiBjbGFzcyBD
U1NSdWxlTGlzdDsKQEAgLTY2LDYgKzY3LDcgQEAgY2xhc3MgUnVsZURhdGE7CiBjbGFzcyBSdWxl
U2V0OwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTdHlsZUltYWdlOworY2xhc3MgU3R5bGVQZW5k
aW5nSW1hZ2U7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFz
cyBTdHlsZWRFbGVtZW50OwpAQCAtMjg0LDYgKzI4Niw3IEBAIHB1YmxpYzoKIAogICAgIFN0eWxl
SW1hZ2UqIHN0eWxlSW1hZ2UoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUqKTsKICAgICBTdHlsZUlt
YWdlKiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VWYWx1
ZSopOworICAgIFN0eWxlSW1hZ2UqIGdlbmVyYXRlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9w
ZXJ0eUlELCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKik7CiAKICAgICBib29sIGFwcGx5UHJvcGVy
dHlUb1JlZ3VsYXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxh
clN0eWxlOyB9CiAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKCkgY29u
c3QgeyByZXR1cm4gbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlOyB9CkBAIC0zMzAs
NiArMzMzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBD
U1NWYWx1ZSopOwogI2VuZGlmCiAKKyAgICBTdHlsZUltYWdlKiBsb2FkUGVuZGluZ0ltYWdlKFN0
eWxlUGVuZGluZ0ltYWdlKik7CiAgICAgdm9pZCBsb2FkUGVuZGluZ0ltYWdlcygpOwogCiAgICAg
c3RydWN0IE1hdGNoZWRTdHlsZURlY2xhcmF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGUyODlkZDQuLmJjZDM0OTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtOTgs
NiArOTgsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEJpdG1hcEltYWdlIDogcHVibGljIEltYWdlIHsK
ICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7CisgICAgZnJpZW5kIGNsYXNzIENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUoTmF0aXZlSW1hZ2VQdHIgbmF0aXZl
SW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjQxZGVmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuY3BwCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNT
U0Nyb3NzZmFkZVZhbHVlLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKwordXNpbmcgbmFtZXNw
YWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSwgQ2FjaGVk
SW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVy
LCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgOiBtX2Zy
b21JbWFnZShmcm9tSW1hZ2UpCisgICAgLCBtX3RvSW1hZ2UodG9JbWFnZSkKKyAgICAsIG1fcGVy
Y2VudGFnZShwZXJjZW50YWdlKQorICAgICwgbV9jcm9zc2ZhZGVTaXplKGNyb3NzZmFkZVNpemUp
CisgICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQorICAgICwgbV9jcm9zc2ZhZGVTdWJpbWFnZU9i
c2VydmVyKGFkb3B0UHRyKG5ldyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkodGhpcykp
KQoreworICAgIG1fc2l6ZSA9IHNpemU7CisKKyAgICBtX2Zyb21JbWFnZS0+YWRkQ2xpZW50KG1f
Y3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7CisgICAgbV90b0ltYWdlLT5hZGRDbGll
bnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKKworICAgIG1fY3Jvc3NmYWRl
U3ViaW1hZ2VPYnNlcnZlci0+c2V0UmVhZHkodHJ1ZSk7Cit9CisKK0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjp+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKQoreworICAgIG1fZnJvbUltYWdlLT5y
ZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKKyAgICBtX3Rv
SW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuZ2V0KCkpOwor
fQorCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBmbG9hdCBpbnZlcnNlUGVyY2VudGFnZSA9IDEgLSBt
X3BlcmNlbnRhZ2U7CisKKyAgICBJbWFnZSogZnJvbUltYWdlID0gbV9mcm9tSW1hZ2UtPmltYWdl
KCk7CisgICAgSW50U2l6ZSBmcm9tSW1hZ2VTaXplID0gZnJvbUltYWdlLT5zaXplKCk7CisgICAg
SW1hZ2UqIHRvSW1hZ2UgPSBtX3RvSW1hZ2UtPmltYWdlKCk7CisgICAgSW50U2l6ZSB0b0ltYWdl
U2l6ZSA9IHRvSW1hZ2UtPnNpemUoKTsKKworICAgIC8vIERyYXcgbm90aGluZyBpZiBlaXRoZXIg
b2YgdGhlIGltYWdlcyBoYXNuJ3QgbG9hZGVkIHlldC4KKyAgICBpZiAoZnJvbUltYWdlID09IElt
YWdlOjpudWxsSW1hZ2UoKSB8fCB0b0ltYWdlID09IEltYWdlOjpudWxsSW1hZ2UoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpj
b250ZXh0KTsKKworICAgIGNvbnRleHQtPmNsaXAoSW50UmVjdChJbnRQb2ludCgpLCBtX2Nyb3Nz
ZmFkZVNpemUpKTsKKyAgICBjb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKDEuMCk7CisK
KyAgICAvLyBEcmF3IHRoZSBpbWFnZSB3ZSdyZSBmYWRpbmcgYXdheSBmcm9tLgorICAgIGNvbnRl
eHQtPnNhdmUoKTsKKyAgICBpZiAobV9jcm9zc2ZhZGVTaXplICE9IGZyb21JbWFnZVNpemUpCisg
ICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNfY2FzdDxmbG9hdD4obV9jcm9z
c2ZhZGVTaXplLndpZHRoKCkpIC8gZnJvbUltYWdlU2l6ZS53aWR0aCgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fY3Jvc3NmYWRlU2l6ZS5o
ZWlnaHQoKSkgLyBmcm9tSW1hZ2VTaXplLmhlaWdodCgpKSk7CisgICAgY29udGV4dC0+c2V0QWxw
aGEoaW52ZXJzZVBlcmNlbnRhZ2UpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShmcm9tSW1hZ2Us
IENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50KCkpOworICAgIGNvbnRleHQtPnJlc3RvcmUo
KTsKKworICAgIC8vIERyYXcgdGhlIGltYWdlIHdlJ3JlIGZhZGluZyB0b3dhcmRzLgorICAgIGNv
bnRleHQtPnNhdmUoKTsKKyAgICBpZiAobV9jcm9zc2ZhZGVTaXplICE9IHRvSW1hZ2VTaXplKQor
ICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fY3Jv
c3NmYWRlU2l6ZS53aWR0aCgpKSAvIHRvSW1hZ2VTaXplLndpZHRoKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4obV9jcm9zc2ZhZGVTaXplLmhl
aWdodCgpKSAvIHRvSW1hZ2VTaXplLmhlaWdodCgpKSk7CisgICAgY29udGV4dC0+c2V0QWxwaGEo
bV9wZXJjZW50YWdlKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UodG9JbWFnZSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgSW50UG9pbnQoKSwgQ29tcG9zaXRlUGx1c0xpZ2h0ZXIpOworICAgIGNvbnRl
eHQtPnJlc3RvcmUoKTsKKworICAgIGNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Cit9
CisKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCit7CisgICAgVU5V
U0VEX1BBUkFNKGNvbXBvc2l0ZU9wKTsKKyAgICBVTlVTRURfUEFSQU0oc3JjUmVjdCk7CisKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOworICAgIGNv
bnRleHQtPmNsaXAoZHN0UmVjdCk7CisgICAgY29udGV4dC0+dHJhbnNsYXRlKGRzdFJlY3QueCgp
LCBkc3RSZWN0LnkoKSk7CisKKyAgICBkcmF3Q3Jvc3NmYWRlKGNvbnRleHQpOworfQorCit2b2lk
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0KQoreworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKG1fc2l6ZSk7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRmlsbCB3aXRoIHRoZSBjcm9zcy1mYWRlZCBpbWFnZS4KKyAg
ICBHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0
KCk7CisgICAgZHJhd0Nyb3NzZmFkZShncmFwaGljc0NvbnRleHQpOworCisgICAgLy8gVGlsZSB0
aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRleHQuCisgICAgaW1hZ2VCdWZmZXItPmRyYXdQ
YXR0ZXJuKGNvbnRleHQsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNv
bG9yU3BhY2UsIGNvbXBvc2l0ZU9wLCBkZXN0UmVjdCk7Cit9CisgICAgCit2b2lkIENyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiBpbWFnZSwg
Y29uc3QgSW50UmVjdCogcmVjdCkKK3sKKyAgICBpZiAobV9yZWFkeSkKKyAgICAgICAgbV9vd25l
clZhbHVlLT5pbWFnZUNoYW5nZWQoaW1hZ2UsIHJlY3QpOworfQorCit2b2lkIENyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRS
ZWN0KiByZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7CisgICAgbV9vYnNlcnZlci0+
Y2hhbmdlZEluUmVjdCh0aGlzLCAqcmVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllZmQ1YzEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2VfaAorI2RlZmluZSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCisKKyNpbmNsdWRl
ICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCisjaW5jbHVkZSAi
SW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5o
IgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDU1NDcm9zc2ZhZGVWYWx1ZTsKK2NsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94
eTsKKworY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1h
Z2UgeworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNy
ZWF0ZShDYWNoZWRJbWFnZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQg
cGVyY2VudGFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIsIEludFNpemUgY3Jvc3NmYWRlU2l6
ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoZnJvbUltYWdlLCB0b0ltYWdlLCBwZXJjZW50YWdl
LCBvYnNlcnZlciwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5D
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lk
IGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvcik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKwor
ICAgIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hl
ZEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiwgSW50U2l6
ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJik7CisKKyAgICB2b2lkIGltYWdlQ2hhbmdl
ZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0gMCk7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBkcmF3Q3Jvc3NmYWRlKEdyYXBoaWNzQ29udGV4dCopOworCisgICAgQ2FjaGVkSW1hZ2UqIG1f
ZnJvbUltYWdlOworICAgIENhY2hlZEltYWdlKiBtX3RvSW1hZ2U7CisgICAgZmxvYXQgbV9wZXJj
ZW50YWdlOworICAgIEludFNpemUgbV9jcm9zc2ZhZGVTaXplOworCisgICAgSW1hZ2VPYnNlcnZl
ciogbV9vYnNlcnZlcjsKKyAgICBPd25QdHI8Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5
PiBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXI7Cit9OworCitjbGFzcyBDcm9zc2ZhZGVTdWJp
bWFnZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgeworcHVibGljOgor
ICAgIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eShDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZSogb3duZXJWYWx1ZSkKKyAgICAgICAgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkKKyAgICAg
ICAgLCBtX3JlYWR5KGZhbHNlKSB7IH0KKworICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1YmltYWdl
T2JzZXJ2ZXJQcm94eSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVk
SW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IDApIE9WRVJSSURFOworICAgIHZvaWQgc2V0UmVhZHko
Ym9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KK3ByaXZhdGU6CisgICAgQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UqIG1fb3duZXJWYWx1ZTsKKyAgICBib29sIG1fcmVhZHk7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVy
YXRlZEltYWdlLmgKaW5kZXggZDI4ODcyYi4uYmVjMzQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC0zNiwxMiArMzYsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdlbmVyYXRlZEltYWdlIDogcHVibGljIElt
YWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmF0ZWRJbWFnZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUp
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyYXRlZEltYWdlKGdlbmVy
YXRvciwgc2l6ZSkpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5HZW5lcmF0ZWRJbWFnZSgpIHt9Ci0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBJbnRT
aXplJiBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KQEAgLTU3LDE3ICs1MSwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
IAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZpcnR1YWwgdm9p
ZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3IpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBh
dHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0
b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwotICAgIAotICAgIEdlbmVyYXRlZEltYWdl
KFBhc3NSZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCi0g
ICAgICAgIDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9yKQotICAgICAgICAsIG1fc2l6ZShzaXplKQot
ICAgIHsKLSAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Is
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0gMDsKKworICAgIEdlbmVyYXRlZEltYWdlKCkg
eyB9CiAKLSAgICBSZWZQdHI8R2VuZXJhdG9yPiBtX2dlbmVyYXRvcjsKICAgICBJbnRTaXplIG1f
c2l6ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hYTFmMDAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC0wLDAgKzEs
NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgi
CisjaW5jbHVkZSAiTGVuZ3RoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNl
LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOworICAgIGNvbnRleHQtPnNldENvbXBvc2l0
ZU9wZXJhdGlvbihjb21wb3NpdGVPcCk7CisgICAgY29udGV4dC0+Y2xpcChkc3RSZWN0KTsKKyAg
ICBjb250ZXh0LT50cmFuc2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKyAgICBpZiAo
ZHN0UmVjdC5zaXplKCkgIT0gc3JjUmVjdC5zaXplKCkpCisgICAgICAgIGNvbnRleHQtPnNjYWxl
KEZsb2F0U2l6ZShkc3RSZWN0LndpZHRoKCkgLyBzcmNSZWN0LndpZHRoKCksIGRzdFJlY3QuaGVp
Z2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSk7CisgICAgY29udGV4dC0+dHJhbnNsYXRlKC1zcmNS
ZWN0LngoKSwgLXNyY1JlY3QueSgpKTsKKyAgICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBtX3NpemUpLCAqbV9nZW5lcmF0b3IuZ2V0KCkpOworfQorCit2b2lkIEdl
bmVyYXRvckdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICAvLyBB
bGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcg
cGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgIEludFNpemUgYWRqdXN0ZWRT
aXplID0gbV9zaXplOworICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0Owor
ICAgIG1fZ2VuZXJhdG9yLT5hZGp1c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5nKGFkanVzdGVk
U2l6ZSwgYWRqdXN0ZWRTcmNSZWN0KTsKKworICAgIC8vIENyZWF0ZSBhIEJpdG1hcEltYWdlIGFu
ZCBjYWxsIGRyYXdQYXR0ZXJuIG9uIGl0LgorICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VC
dWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGFkanVzdGVkU2l6ZSk7CisgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRmlsbCB3aXRoIHRoZSBnZW5lcmF0
ZWQgaW1hZ2UuCisgICAgR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1
ZmZlci0+Y29udGV4dCgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgYWRqdXN0ZWRTaXplKSwgKm1fZ2VuZXJhdG9yLmdldCgpKTsKKworICAg
IC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgorICAgIGltYWdlQnVm
ZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zv
cm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBvc2l0ZU9wLCBkZXN0UmVjdCk7Cit9CisK
K3ZvaWQgR2VuZXJhdGVkSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYg
aW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJp
bnNpY1JhdGlvKQoreworICAgIEltYWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhpbnRy
aW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LCBpbnRyaW5zaWNSYXRpbyk7CisgICAgaW50cmlu
c2ljUmF0aW8gPSBGbG9hdFNpemUoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA5Y2E3MwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdlbmVyYXRv
ckdlbmVyYXRlZEltYWdlX2gKKyNkZWZpbmUgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2VfaAorCisj
aW5jbHVkZSAiR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJHZW5lcmF0b3IuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEdlbmVyYXRvckdlbmVyYXRlZEltYWdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHZW5lcmF0b3I+
IGdlbmVyYXRvciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7Cisg
ICAgfQorICAgIHZpcnR1YWwgfkdlbmVyYXRvckdlbmVyYXRlZEltYWdlKCkgeyB9CisKK3Byb3Rl
Y3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworCisgICAg
R2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UoUGFzc1JlZlB0cjxHZW5lcmF0b3I+IGdlbmVyYXRvciwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICAgICAgOiBtX2dlbmVyYXRvcihnZW5lcmF0b3IpCisg
ICAgeworICAgICAgICBtX3NpemUgPSBzaXplOworICAgIH0KKworICAgIFJlZlB0cjxHZW5lcmF0
b3I+IG1fZ2VuZXJhdG9yOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IGJmMWExN2YuLmI1NDZiNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBJbWFn
ZU9ic2VydmVyOwogCiBjbGFzcyBJbWFnZSA6IHB1YmxpYyBSZWZDb3VudGVkPEltYWdlPiB7CiAg
ICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogcHVibGljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMDg4OTlh
Ni4uN2RmMTM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCkBAIC0xMjYsNiArMTI2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBH
ZW5lcmF0ZWRJbWFnZTsKKyAgICAgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVyYXRlZElt
YWdlOworICAgICAgICBmcmllbmQgY2xhc3MgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U7CiAKICAg
ICBwcml2YXRlOgogICAgICAgICBJbWFnZUJ1ZmZlckRhdGEgbV9kYXRhOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaAppbmRleCBjMGVl
MTM5Li45YWEwZTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVQZW5kaW5nSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVQZW5kaW5nSW1hZ2UuaApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBTdHlsZVBlbmRp
bmdJbWFnZV9oCiAjZGVmaW5lIFN0eWxlUGVuZGluZ0ltYWdlX2gKIAorI2luY2x1ZGUgIkNTU0lt
YWdlR2VuZXJhdG9yVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJTdHlsZUltYWdlLmgiCiAKQEAgLTM3LDEyICszOSwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFN0eWxlUGVuZGluZ0ltYWdlIDogcHVibGlj
IFN0eWxlSW1hZ2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUGVuZGlu
Z0ltYWdlPiBjcmVhdGUoQ1NTSW1hZ2VWYWx1ZSogdmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTdHlsZVBlbmRpbmdJbWFnZSh2YWx1ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5
bGVQZW5kaW5nSW1hZ2U+IGNyZWF0ZShDU1NWYWx1ZSogdmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdHlsZVBlbmRpbmdJbWFnZSh2YWx1ZSkpOyB9CiAKLSAgICB2aXJ0dWFsIFdyYXBwZWRJ
bWFnZVB0ciBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIHZpcnR1YWwgV3Jh
cHBlZEltYWdlUHRyIGRhdGEoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDU1NJbWFnZVZh
bHVlKj4obV92YWx1ZSk7IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3Nz
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0gICAgQ1NTSW1hZ2VWYWx1ZSogY3Nz
SW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICBDU1NJbWFnZVZhbHVl
KiBjc3NJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+aXNJbWFnZVZhbHVlKCkg
PyBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4obV92YWx1ZSkgOiAwOyB9CisgICAgQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZSogY3NzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWUtPmlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpID8gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZSo+KG1fdmFsdWUpIDogMDsgfQogICAgIAogICAgIHZpcnR1YWwgSW50U2l6
ZSBpbWFnZVNpemUoY29uc3QgUmVuZGVyT2JqZWN0KiwgZmxvYXQgLyptdWx0aXBsaWVyKi8pIGNv
bnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBpbWFnZUhhc1JlbGF0
aXZlV2lkdGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNTksMTMgKzYyLDEzIEBAIHB1
YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIFN0eWxlUGVuZGluZ0ltYWdlKENTU0lt
YWdlVmFsdWUqIHZhbHVlKQorICAgIFN0eWxlUGVuZGluZ0ltYWdlKENTU1ZhbHVlKiB2YWx1ZSkK
ICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQogICAgIHsKICAgICAgICAgbV9pc1BlbmRpbmdJbWFn
ZSA9IHRydWU7CiAgICAgfQogCi0gICAgQ1NTSW1hZ2VWYWx1ZSogbV92YWx1ZTsgLy8gTm90IHJl
dGFpbmVkOyBpdCBvd25zIHVzLgorICAgIENTU1ZhbHVlKiBtX3ZhbHVlOyAvLyBOb3QgcmV0YWlu
ZWQ7IGl0IG93bnMgdXMuCiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="114181"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="114193"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115659</attachid>
            <date>2011-11-17 12:28:47 -0800</date>
            <delta_ts>2011-11-17 15:20:07 -0800</delta_ts>
            <desc>Fix the getComputedStyle test to use dummy://</desc>
            <filename>crossfade-test.diff</filename>
            <type>text/plain</type>
            <size>23292</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmN2RjMjRlLi5mMjUyYTE0IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTEt
MTcgIFRpbSBIb3J0b24gIDxob3J0b250NDI0QGdtYWlsLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgQ1NTMyBJbWFnZXMgY3Jvc3MtZmFkZSgpIGltYWdlIGZ1bmN0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjE2MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTAyMDkyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBGaXggZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRl
ZC1zdHlsZS1jcm9zcy1mYWRlLmh0bWwgdG8gdXNlIHRoZSAiZHVtbXkiIHByb3RvY29sIGZvciBp
dHMKKyAgICAgICAgaW1hZ2VzLCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgbG9hZGluZyBlcnJvcnMu
CisgICAgICAgIAorICAgICAgICBVbnNraXAgdGhlIHRlc3Qgb24gUXQuCisgICAgICAgIAorICAg
ICAgICBSZW1vdmUgdGhlIChub3cpIHVubmVjZXNzYXJ5IEd0ayBiYXNlbGluZXMuCisKKyAgICAg
ICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtY3Jvc3MtZmFkZS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2Nz
cy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWNyb3NzLWZhZGUtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisKIDIwMTEtMTEtMDkg
IFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIENTUyAyLjEgZmFp
bHVyZTogb3V0bGluZS1jb2xvci0qIHRlc3RzIGZhaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtY3Jvc3MtZmFkZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVk
LXN0eWxlLWNyb3NzLWZhZGUtZXhwZWN0ZWQudHh0CmluZGV4IDEwNDU3YzIuLmQ0YWQ3NWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQt
c3R5bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLWV4cGVjdGVkLnR4dApA
QCAtMSw0NiArMSwyNyBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBu
ZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFt
cGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFt
cGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwotQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZwogLXdlYmtpdC1jcm9z
cy1mYWRlCiAKIAogUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJvcGFjaXR5OiA1MDAlIiwgIm9wYWNpdHki
KSBpcyAiMSIKLVBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDov
L2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMg
Ii13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
dXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDAuNSkiCi1QQVNTIHRlc3RDcm9z
c2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3Nz
LWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5j
b20vYi5wbmcpLCAyNSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNTAl
KSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNy
b3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYi5wbmcpLCAwLjI1KSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IDAuNSkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jv
c3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2MucG5nKSwgLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2Iu
cG5nKSwgMjUlKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3Mt
ZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2MucG5nKSwgLXdlYmtpdC1jcm9zcy1mYWRlKHVy
bChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5n
KSwgMC4yNSksIDAuNSkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13
ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWxpbmVhci1ncmFkaWVudChibGFjaywgd2hpdGUpLCB1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMTAlKSIsICJiYWNrZ3JvdW5kLWlt
YWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3As
IGJsYWNrLCB3aGl0ZSksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjEp
IgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZh
ZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcpLCAxLjApIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMSkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDAuNSki
LCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCAwLjUpIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCA1LjApIiwgImJhY2tncm91bmQtaW1hZ2UiKSBp
cyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMSkiCi1QQVNTIHRlc3RDcm9z
c2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBu
ZyksIDcwMCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgMSkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6
IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
dXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIC0yMCkiLCAiYmFja2dyb3VuZC1p
bWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFt
cGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwKSIKLVBBU1Mg
dGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybCho
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4
YW1wbGUucG5nKSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgotUEFTUyB0ZXN0Q3Jv
c3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9l
eGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5w
bmcpLCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgotUEFTUyB0ZXN0Q3Jvc3NmYWRl
KCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9leGFtcGxlLnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKLVBBU1Mg
dGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCksIHVy
bChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikg
aXMgIm5vbmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Y3Jvc3MtZmFkZSh1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIHVybChkdW1teTovL2V4YW1wbGUu
cG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1
cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgMC41KSIK
K1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRl
KC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoZHVtbXk6Ly9hLnBuZyksIHVybChkdW1teTovL2IucG5n
KSwgMjUlKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCA1MCUpIiwgImJhY2tncm91bmQtaW1h
Z2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoZHVtbXk6
Ly9hLnBuZyksIHVybChkdW1teTovL2IucG5nKSwgMC4yNSksIHVybChkdW1teTovL2V4YW1wbGUu
cG5nKSwgMC41KSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChkdW1teTovL2MucG5nKSwgLXdlYmtpdC1jcm9zcy1mYWRlKHVybChk
dW1teTovL2EucG5nKSwgdXJsKGR1bW15Oi8vYi5wbmcpLCAyNSUpLCA1MCUpIiwgImJhY2tncm91
bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2MucG5nKSwgLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2EucG5nKSwgdXJsKGR1bW15Oi8vYi5wbmcpLCAw
LjI1KSwgMC41KSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJsYWNrLCB3aGl0ZSksIHVybChk
dW1teTovL2V4YW1wbGUucG5nKSwgMTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJr
aXQtY3Jvc3MtZmFkZSgtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsYWNrLCB3aGl0ZSks
IHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgMC4xKSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFj
a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5n
KSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAxLjApIiwgImJhY2tncm91bmQtaW1hZ2UiKSBp
cyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15
Oi8vZXhhbXBsZS5wbmcpLCAxKSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15
Oi8vZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1j
cm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5w
bmcpLCAwLjUpIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxl
LnBuZyksIDUuMCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUo
dXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIDEpIgor
UEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUo
dXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIDcwMCUp
IiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTov
L2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAxKSIKK1BBU1MgdGVzdENy
b3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTov
L2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAtMjApIiwgImJhY2tncm91
bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5n
KSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAwKSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFj
a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5n
KSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5v
bmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3Mt
ZmFkZSh1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIHVybChkdW1teTovL2V4YW1wbGUucG5nKSwp
IiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFj
a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5n
KSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgorUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoKSwgdXJsKGR1bW15Oi8vZXhhbXBs
ZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCiBQQVNTIHRlc3RDcm9zc2Zh
ZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoIiwgImJhY2tncm91
bmQtaW1hZ2UiKSBpcyAibm9uZSIKIFBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKDEwcHggMjAlIDVweCAjYmJiKSIsICJiYWNrZ3JvdW5kLWlt
YWdlIikgaXMgIm5vbmUiCiBQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13
ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKCkp
KSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgyMCUsIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSkiLCAiYmFja2dyb3Vu
ZC1pbWFnZSIpIGlzICJub25lIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksKSIsICJi
YWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91
bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgyMCUsIHVybChkdW1teTovL2EucG5nKSwgdXJs
KGR1bW15Oi8vYi5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCitQQVNTIHRl
c3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoZHVt
bXk6Ly9hLnBuZyksKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCiBQQVNTIHRlc3RD
cm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsKSIsICJiYWNr
Z3JvdW5kLWltYWdlIikgaXMgIm5vbmUiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQt
aW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZykp
IiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKK1BBU1MgdGVzdENyb3NzZmFkZSgiYmFj
a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCx1cmwoZHVtbXk6Ly9hLnBuZykpIiwg
ImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIKIFBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCwsLCwsKSIsICJiYWNrZ3JvdW5kLWltYWdl
IikgaXMgIm5vbmUiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUt
Y3Jvc3MtZmFkZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLmh0bWwKaW5kZXggOGE3NTgyNi4uMGIwZDJhNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1jcm9zcy1mYWRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0
ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLmh0bWwKQEAgLTIyLDMxICsyMiwzMSBA
QCBkZWJ1ZygnPHA+LXdlYmtpdC1jcm9zcy1mYWRlPC9wPicpOwogLy8gVmFsaWQKIAogc2hvdWxk
QmUoJ3Rlc3RDcm9zc2ZhZGUoIm9wYWNpdHk6IDUwMCUiLCAib3BhY2l0eSIpJywgJyIxIicpOwot
c2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3Mt
ZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFt
cGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Vi
a2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybCho
dHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIicpOwotc2hvdWxkQmUoJ3Rlc3RD
cm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNy
b3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYi5wbmcpLCAyNSUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
NTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhh
bXBsZS5jb20vYi5wbmcpLCAwLjI1KSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBu
ZyksIDAuNSkiJyk7Ci1zaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhh
bXBsZS5jb20vYi5wbmcpLCAyNSUpLCA1MCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vYy5wbmcpLCAtd2Via2l0LWNy
b3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9hLnBuZyksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vYi5wbmcpLCAwLjI1KSwgMC41KSInKTsKLXNob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGll
bnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1s
aW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgMC4xKSInKTsKLXNob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFt
cGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAxLjApIiwgImJh
Y2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwg
MSkiJyk7Ci1zaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0
cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC41KSIsICJiYWNrZ3JvdW5kLWltYWdlIikn
LCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5n
KSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDAuNSkiJyk7CitzaG91bGRC
ZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVy
bChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCA1MCUpIiwg
ImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4
YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAwLjUpIicpOworc2hvdWxkQmUo
J3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Vi
a2l0LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vYS5wbmcpLCB1cmwoZHVtbXk6Ly9iLnBuZyksIDI1
JSksIHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgNTAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikn
LCAnIi13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vYS5w
bmcpLCB1cmwoZHVtbXk6Ly9iLnBuZyksIDAuMjUpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyks
IDAuNSkiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2MucG5nKSwgLXdlYmtpdC1jcm9zcy1mYWRlKHVy
bChkdW1teTovL2EucG5nKSwgdXJsKGR1bW15Oi8vYi5wbmcpLCAyNSUpLCA1MCUpIiwgImJhY2tn
cm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2MucG5nKSwg
LXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2EucG5nKSwgdXJsKGR1bW15Oi8vYi5wbmcp
LCAwLjI1KSwgMC41KSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIHdo
aXRlKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAxMCUpIiwgImJhY2tncm91bmQtaW1hZ2Ui
KScsICciLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgYmxh
Y2ssIHdoaXRlKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAwLjEpIicpOworc2hvdWxkQmUo
J3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwo
ZHVtbXk6Ly9leGFtcGxlLnBuZyksIHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgMS4wKSIsICJi
YWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoZHVtbXk6Ly9leGFt
cGxlLnBuZyksIHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgMSkiJyk7CitzaG91bGRCZSgndGVz
dENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1t
eTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tn
cm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUu
cG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAwLjUpIicpOwogCi1zaG91bGRCZSgndGVz
dENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgNS4wKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIi13ZWJraXQtY3Jvc3MtZmFk
ZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9leGFtcGxlLnBuZyksIDEpIicpOwotc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tn
cm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4
YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDcwMCUpIiwg
ImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhh
bXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5n
KSwgMSkiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhh
bXBsZS5wbmcpLCA1LjApIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1m
YWRlKHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAx
KSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxl
LnBuZyksIDcwMCUpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICciLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChkdW1teTovL2V4YW1wbGUucG5nKSwgdXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcpLCAxKSIn
KTsKIAotc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Y3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIC0yMCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywg
JyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAwKSInKTsKK3Nob3VsZEJlKCd0
ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGR1
bW15Oi8vZXhhbXBsZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIC0yMCkiLCAiYmFj
a2dyb3VuZC1pbWFnZSIpJywgJyItd2Via2l0LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vZXhhbXBs
ZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksIDApIicpOwogCiAvLyBJbnZhbGlkCiAK
LXNob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3Nz
LWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhh
bXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5vbmUiJyk7
Ci1zaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9z
cy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSIn
KTsKLXNob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNy
b3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZykpIiwgImJhY2tncm91
bmQtaW1hZ2UiKScsICcibm9uZSInKTsKLXNob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9l
eGFtcGxlLnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKK3Nob3VsZEJl
KCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGR1bW15Oi8vZXhhbXBsZS5wbmcpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZykpIiwgImJhY2tn
cm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vZXhhbXBsZS5wbmcp
LCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZyksKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5v
bmUiJyk7CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jcm9zcy1mYWRlKHVybChkdW1teTovL2V4YW1wbGUucG5nKSkiLCAiYmFja2dyb3VuZC1pbWFn
ZSIpJywgJyJub25lIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1h
Z2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgpLCB1cmwoZHVtbXk6Ly9leGFtcGxlLnBuZykpIiwgImJh
Y2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKIHNob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKCIsICJiYWNrZ3JvdW5kLWlt
YWdlIiknLCAnIm5vbmUiJyk7CiBzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKDEwcHggMjAlIDVweCAjYmJiKSIsICJiYWNrZ3JvdW5k
LWltYWdlIiknLCAnIm5vbmUiJyk7CiBzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSgtd2Via2l0LWNy
b3NzLWZhZGUoKSkpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKLXNob3VsZEJl
KCd0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoMjAl
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9i
LnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKLXNob3VsZEJlKCd0ZXN0
Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9hLnBuZyksKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5vbmUiJyk7
CitzaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9z
cy1mYWRlKDIwJSwgdXJsKGR1bW15Oi8vYS5wbmcpLCB1cmwoZHVtbXk6Ly9iLnBuZykpIiwgImJh
Y2tncm91bmQtaW1hZ2UiKScsICcibm9uZSInKTsKK3Nob3VsZEJlKCd0ZXN0Q3Jvc3NmYWRlKCJi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGR1bW15Oi8vYS5wbmcpLCki
LCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOwogc2hvdWxkQmUoJ3Rlc3RDcm9zc2Zh
ZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsKSIsICJiYWNrZ3JvdW5k
LWltYWdlIiknLCAnIm5vbmUiJyk7Ci1zaG91bGRCZSgndGVzdENyb3NzZmFkZSgiYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCx1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5n
KSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpJywgJyJub25lIicpOworc2hvdWxkQmUoJ3Rlc3RDcm9z
c2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSgsdXJsKGR1bW15Oi8v
YS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5vbmUiJyk7CiBzaG91bGRCZSgndGVz
dENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKCwsLCwsKSIs
ICJiYWNrZ3JvdW5kLWltYWdlIiknLCAnIm5vbmUiJyk7CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtY3Jvc3MtZmFkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY0NGQ2MC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS1jcm9zcy1mYWRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM3
ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhhbXBsZS5j
b20vZXhhbXBsZS5wbmcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYS5wbmcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYi5wbmcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vZXhh
bXBsZS5jb20vYy5wbmcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3
LmlhbmEub3JnL2RvbWFpbnMvZXhhbXBsZS8KLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vd3d3LmlhbmEub3JnL2RvbWFpbnMvZXhhbXBsZS8KLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LmlhbmEub3JnL2RvbWFpbnMvZXhhbXBsZS8KLUJsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LmlhbmEub3JnL2RvbWFpbnMvZXhh
bXBsZS8KLS13ZWJraXQtY3Jvc3MtZmFkZQotCi0KLVBBU1MgdGVzdENyb3NzZmFkZSgib3BhY2l0
eTogNTAwJSIsICJvcGFjaXR5IikgaXMgIjEiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91
bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDUwJSkiLCAiYmFj
a2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAw
LjUpIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3Nz
LWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpLCB1
cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMjUlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNv
bS9leGFtcGxlLnBuZyksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNy
b3NzLWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2IucG5nKSwgMC4yNSksIHVybChodHRwOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZS5wbmcpLCAwLjUpIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5k
LWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyks
IC13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9iLnBuZyksIDI1JSksIDUwJSkiLCAiYmFja2dyb3VuZC1pbWFnZSIp
IGlzICItd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9jLnBuZyksIC13
ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5nKSwgdXJsKGh0dHA6
Ly9leGFtcGxlLmNvbS9iLnBuZyksIDAuMjUpLCAwLjUpIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1saW5lYXItZ3JhZGll
bnQoYmxhY2ssIHdoaXRlKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEw
JSkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICItd2Via2l0LWNyb3NzLWZhZGUoLXdlYmtpdC1s
aW5lYXItZ3JhZGllbnQodG9wLCBibGFjaywgd2hpdGUpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29t
L2V4YW1wbGUucG5nKSwgMC4xKSIKLVBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcp
LCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMS4wKSIsICJiYWNrZ3JvdW5k
LWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4
YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEpIgotUEFT
UyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20v
ZXhhbXBsZS5wbmcpLCAwLjUpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9z
cy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgMC41KSIKLVBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dy
b3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhh
bXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgNS4wKSIsICJi
YWNrZ3JvdW5kLWltYWdlIikgaXMgIi13ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1w
bGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyks
IDEpIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3Nz
LWZhZGUodXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhh
bXBsZS5jb20vZXhhbXBsZS5wbmcpLCA3MDAlKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIi13
ZWJraXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJs
KGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZyksIDEpIgotUEFTUyB0ZXN0Q3Jvc3NmYWRl
KCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKGh0dHA6Ly9leGFtcGxl
LmNvbS9leGFtcGxlLnBuZyksIHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCAt
MjApIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAiLXdlYmtpdC1jcm9zcy1mYWRlKHVybChodHRw
Oi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1w
bGUucG5nKSwgMCkiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSh1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSwgdXJsKGh0
dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAi
bm9uZSIKLVBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9z
cy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpLCB1cmwoaHR0cDovL2V4
YW1wbGUuY29tL2V4YW1wbGUucG5nKSwpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBpcyAibm9uZSIK
LVBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jcm9zcy1mYWRl
KHVybChodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdl
IikgaXMgIm5vbmUiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY3Jvc3MtZmFkZSgpLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUucG5nKSkiLCAi
YmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUodXJsKCIsICJiYWNrZ3JvdW5kLWltYWdlIikg
aXMgIm5vbmUiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Y3Jvc3MtZmFkZSgxMHB4IDIwJSA1cHggI2JiYikiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJu
b25lIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3Nz
LWZhZGUoLXdlYmtpdC1jcm9zcy1mYWRlKC13ZWJraXQtY3Jvc3MtZmFkZSgpKSkiLCAiYmFja2dy
b3VuZC1pbWFnZSIpIGlzICJub25lIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoMjAlLCB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2EucG5n
KSwgdXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9iLnBuZykpIiwgImJhY2tncm91bmQtaW1hZ2UiKSBp
cyAibm9uZSIKLVBBU1MgdGVzdENyb3NzZmFkZSgiYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1j
cm9zcy1mYWRlKHVybChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpLCkiLCAiYmFja2dyb3VuZC1p
bWFnZSIpIGlzICJub25lIgotUEFTUyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAt
d2Via2l0LWNyb3NzLWZhZGUoLCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgotUEFT
UyB0ZXN0Q3Jvc3NmYWRlKCJiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNyb3NzLWZhZGUoLHVy
bChodHRwOi8vZXhhbXBsZS5jb20vYS5wbmcpKSIsICJiYWNrZ3JvdW5kLWltYWdlIikgaXMgIm5v
bmUiCi1QQVNTIHRlc3RDcm9zc2ZhZGUoImJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY3Jvc3Mt
ZmFkZSgsLCwsLCkiLCAiYmFja2dyb3VuZC1pbWFnZSIpIGlzICJub25lIgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCmluZGV4IDRkZTNiZjcuLjUyNmE0MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
MjUwMCw4ICsyNTAwLDMgQEAgZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNr
c2xhc2gtd2l0aC1qYXBhbmVzZS1mb250cy5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi9maW5kLXll
bnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCiBmYXN0L3RleHQvZmluZC1rYW5hLmh0bWwKIGZhc3Qv
dGV4dC9maW5kLXNwYWNlcy5odG1sCi0KLSMgUkVHUkVTU0lPTihyMTAwNTM1KQotIyBJbXBsZW1l
bnQgQ1NTMyBJbWFnZXMgY3Jvc3MtZmFkZSgpIGltYWdlIGZ1bmN0aW9uCi0jIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjE2MgotZmFzdC9jc3MvZ2V0Q29tcHV0ZWRT
dHlsZS9jb21wdXRlZC1zdHlsZS1jcm9zcy1mYWRlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115678</attachid>
            <date>2011-11-17 14:15:08 -0800</date>
            <delta_ts>2011-11-30 12:39:52 -0800</delta_ts>
            <desc>Fix layering violation</desc>
            <filename>crossfade-layering-fix.patch</filename>
            <type>text/plain</type>
            <size>18035</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMDVhMGNmLi5lYWZjNWJiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMTEtMTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IHBsYXRmb3JtIGxheWVyaW5n
IHZpb2xhdGlvbiBieSBtb3ZpbmcgQ2FjaGVkSW1hZ2UgaW52YWxpZGF0aW9uIGNvZGUgaW50bwor
ICAgICAgICBDU1NDcm9zc2ZhZGVWYWx1ZSAoaW5zdGVhZCBvZiBDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZSkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogY3NzL0NTU0Nyb3Nz
ZmFkZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRTdWJpbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6fkNTU0Nyb3NzZmFkZVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpmaXhlZFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmlzUGVuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
cm9zc2ZhZGVWYWx1ZTo6bG9hZFN1YmltYWdlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9z
c2ZhZGVWYWx1ZTo6aW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6
OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAg
KiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFk
ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OnNl
dFBlcmNlbnRhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OkNTU0Ny
b3NzZmFkZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDcm9z
c2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94
eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlU3ViaW1h
Z2VPYnNlcnZlclByb3h5Ojp+Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVy
UHJveHk6OnNldFJlYWR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZSk6CisKIDIwMTEtMTEtMDkgIFJvYmVydCBIb2dh
biAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIENTUyAyLjEgZmFpbHVyZTogb3V0bGlu
ZS1jb2xvci0qIHRlc3RzIGZhaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
cm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUu
Y3BwCmluZGV4IGFjYmNhODcuLmY4YmIyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3Nz
ZmFkZVZhbHVlLmNwcApAQCAtNTAsMjkgKzUwLDE5IEBAIHN0YXRpYyBib29sIHN1YmltYWdlSXNQ
ZW5kaW5nKENTU1ZhbHVlKiB2YWx1ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2
b2lkIGxvYWRTdWJpbWFnZShDU1NWYWx1ZSogdmFsdWUsIENhY2hlZFJlc291cmNlTG9hZGVyKiBj
YWNoZWRSZXNvdXJjZUxvYWRlcikKK3N0YXRpYyBDYWNoZWRJbWFnZSogbG9hZFN1YmltYWdlKENT
U1ZhbHVlKiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVy
KQogewogICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKLSAgICAgICAgc3RhdGljX2Nh
c3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlKS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOwotICAgICAgICByZXR1cm47CisgICAgICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIHN0eWxlQ2Fj
aGVkSW1hZ2UgPSBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4odmFsdWUpLT5jYWNoZWRJbWFn
ZShjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIAorICAgICAgICBpZiAoIXN0eWxlQ2Fj
aGVkSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gc3R5bGVD
YWNoZWRJbWFnZS0+Y2FjaGVkSW1hZ2UoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHZhbHVlLT5p
c0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgewogICAgICAgICBzdGF0aWNfY2FzdDxDU1NJbWFnZUdl
bmVyYXRvclZhbHVlKj4odmFsdWUpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9hZGVy
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLX0KLQotc3RhdGljIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKENTU1Zh
bHVlKiB2YWx1ZSwgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBDYWNoZWRS
ZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAKLSAgICBpZiAodmFsdWUtPmlzSW1hZ2VW
YWx1ZSgpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVl
KS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpLT5jYWNoZWRJbWFnZSgpOwotICAg
IAotICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKICAgICAgICAgLy8g
RklYTUU6IEhhbmRsZSBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIChhbmQgdGh1cyBjcm9zcy1mYWRl
cyB3aXRoIGdyYWRpZW50cyBhbmQgY2FudmFzKS4KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpA
QCAtODEsMzAgKzcxLDM1IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JDU1NW
YWx1ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IFJlbmRlck9iamVjdCoKICAgICAKICAgICByZXR1
cm4gMDsKIH0KKyAgICAKK0NTU0Nyb3NzZmFkZVZhbHVlOjp+Q1NTQ3Jvc3NmYWRlVmFsdWUoKQor
eworICAgIGlmIChtX2NhY2hlZEZyb21JbWFnZSkKKyAgICAgICAgbV9jYWNoZWRGcm9tSW1hZ2Ut
PnJlbW92ZUNsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKKyAgICBpZiAobV9j
YWNoZWRUb0ltYWdlKQorICAgICAgICBtX2NhY2hlZFRvSW1hZ2UtPnJlbW92ZUNsaWVudCgmbV9j
cm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKK30KIAogU3RyaW5nIENTU0Nyb3NzZmFkZVZhbHVl
OjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0ID0gIi13ZWJraXQt
Y3Jvc3MtZmFkZSgiOwotICAgIHJlc3VsdCArPSBtX2Zyb21JbWFnZS0+Y3NzVGV4dCgpICsgIiwg
IjsKLSAgICByZXN1bHQgKz0gbV90b0ltYWdlLT5jc3NUZXh0KCkgKyAiLCAiOwotICAgIHJlc3Vs
dCArPSBtX3BlcmNlbnRhZ2UtPmNzc1RleHQoKTsKKyAgICByZXN1bHQgKz0gbV9mcm9tVmFsdWUt
PmNzc1RleHQoKSArICIsICI7CisgICAgcmVzdWx0ICs9IG1fdG9WYWx1ZS0+Y3NzVGV4dCgpICsg
IiwgIjsKKyAgICByZXN1bHQgKz0gbV9wZXJjZW50YWdlVmFsdWUtPmNzc1RleHQoKTsKICAgICBy
ZXN1bHQgKz0gIikiOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEludFNpemUgQ1NTQ3Jvc3Nm
YWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAg
IGZsb2F0IHBlcmNlbnRhZ2UgPSBtX3BlcmNlbnRhZ2UtPmdldEZsb2F0VmFsdWUoKTsKKyAgICBm
bG9hdCBwZXJjZW50YWdlID0gbV9wZXJjZW50YWdlVmFsdWUtPmdldEZsb2F0VmFsdWUoKTsKICAg
ICBmbG9hdCBpbnZlcnNlUGVyY2VudGFnZSA9IDEgLSBwZXJjZW50YWdlOwogCi0gICAgQ2FjaGVk
SW1hZ2UqIGZyb21JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV9mcm9tSW1hZ2UuZ2V0
KCksIHJlbmRlcmVyKTsKLSAgICBDYWNoZWRJbWFnZSogdG9JbWFnZSA9IGNhY2hlZEltYWdlRm9y
Q1NTVmFsdWUobV90b0ltYWdlLmdldCgpLCByZW5kZXJlcik7Ci0KLSAgICBpZiAoIWZyb21JbWFn
ZSB8fCAhdG9JbWFnZSkKKyAgICBpZiAoIW1fY2FjaGVkRnJvbUltYWdlIHx8ICFtX2NhY2hlZFRv
SW1hZ2UpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKLSAgICBJbnRTaXplIGZyb21JbWFn
ZVNpemUgPSBmcm9tSW1hZ2UtPmltYWdlKCktPnNpemUoKTsKLSAgICBJbnRTaXplIHRvSW1hZ2VT
aXplID0gdG9JbWFnZS0+aW1hZ2UoKS0+c2l6ZSgpOworICAgIEludFNpemUgZnJvbUltYWdlU2l6
ZSA9IG1fY2FjaGVkRnJvbUltYWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRlcmVyKS0+c2l6ZSgp
OworICAgIEludFNpemUgdG9JbWFnZVNpemUgPSBtX2NhY2hlZFRvSW1hZ2UtPmltYWdlRm9yUmVu
ZGVyZXIocmVuZGVyZXIpLT5zaXplKCk7CiAKICAgICByZXR1cm4gSW50U2l6ZShmcm9tSW1hZ2VT
aXplLndpZHRoKCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLndpZHRoKCkgKiBw
ZXJjZW50YWdlLAogICAgICAgICBmcm9tSW1hZ2VTaXplLmhlaWdodCgpICogaW52ZXJzZVBlcmNl
bnRhZ2UgKyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSAqIHBlcmNlbnRhZ2UpOwpAQCAtMTEyLDI3ICsx
MDcsMzcgQEAgSW50U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRl
ck9iamVjdCogcmVuZGVyZXIpCiAKIGJvb2wgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmlzUGVuZGluZygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN1YmltYWdlSXNQZW5kaW5nKG1fZnJvbUltYWdlLmdldCgp
KSB8fCBzdWJpbWFnZUlzUGVuZGluZyhtX3RvSW1hZ2UuZ2V0KCkpOworICAgIHJldHVybiBzdWJp
bWFnZUlzUGVuZGluZyhtX2Zyb21WYWx1ZS5nZXQoKSkgfHwgc3ViaW1hZ2VJc1BlbmRpbmcobV90
b1ZhbHVlLmdldCgpKTsKIH0KIAogdm9pZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6bG9hZFN1YmltYWdl
cyhDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiB7Ci0gICAgbG9h
ZFN1YmltYWdlKG1fZnJvbUltYWdlLmdldCgpLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7Ci0gICAg
bG9hZFN1YmltYWdlKG1fdG9JbWFnZS5nZXQoKSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAg
IG1fY2FjaGVkRnJvbUltYWdlID0gbG9hZFN1YmltYWdlKG1fZnJvbVZhbHVlLmdldCgpLCBjYWNo
ZWRSZXNvdXJjZUxvYWRlcik7CisgICAgbV9jYWNoZWRUb0ltYWdlID0gbG9hZFN1YmltYWdlKG1f
dG9WYWx1ZS5nZXQoKSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIAorICAgIGlmIChtX2Nh
Y2hlZEZyb21JbWFnZSkKKyAgICAgICAgbV9jYWNoZWRGcm9tSW1hZ2UtPmFkZENsaWVudCgmbV9j
cm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKKyAgICBpZiAobV9jYWNoZWRUb0ltYWdlKQorICAg
ICAgICBtX2NhY2hlZFRvSW1hZ2UtPmFkZENsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2Vy
dmVyKTsKKyAgICAKKyAgICBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuc2V0UmVhZHkodHJ1
ZSk7CiB9CiAKIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewogICAgIGlmIChzaXpl
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBDYWNoZWRJbWFnZSogZnJvbUlt
YWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX2Zyb21JbWFnZS5nZXQoKSwgcmVuZGVyZXIp
OwotICAgIENhY2hlZEltYWdlKiB0b0ltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX3Rv
SW1hZ2UuZ2V0KCksIHJlbmRlcmVyKTsKKyAgICAKKyAgICBpZiAoIW1fY2FjaGVkRnJvbUltYWdl
IHx8ICFtX2NhY2hlZFRvSW1hZ2UpCisgICAgICAgIHJldHVybiBJbWFnZTo6bnVsbEltYWdlKCk7
CisgICAgCisgICAgSW1hZ2UqIGZyb21JbWFnZSA9IG1fY2FjaGVkRnJvbUltYWdlLT5pbWFnZUZv
clJlbmRlcmVyKHJlbmRlcmVyKTsKKyAgICBJbWFnZSogdG9JbWFnZSA9IG1fY2FjaGVkVG9JbWFn
ZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcik7CiAKICAgICBpZiAoIWZyb21JbWFnZSB8fCAh
dG9JbWFnZSkKICAgICAgICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2UoKTsKIAotICAgIG1fZ2Vu
ZXJhdGVkSW1hZ2UgPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGZyb21JbWFnZSwg
dG9JbWFnZSwgbV9wZXJjZW50YWdlLT5nZXRGbG9hdFZhbHVlKCksICZtX2Nyb3NzZmFkZU9ic2Vy
dmVyLCBmaXhlZFNpemUocmVuZGVyZXIpLCBzaXplKTsKKyAgICBtX2dlbmVyYXRlZEltYWdlID0g
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIG1fcGVy
Y2VudGFnZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCksIGZpeGVkU2l6ZShyZW5kZXJlciksIHNpemUp
OwogCiAgICAgcmV0dXJuIG1fZ2VuZXJhdGVkSW1hZ2UuZ2V0KCk7CiB9CkBAIC0xNDcsNSArMTUy
LDEzIEBAIHZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNyb3NzZmFkZUNoYW5nZWQoY29uc3QgSW50
UmVjdCYgcmVjdCkKICAgICAgICAgY2xpZW50LT5pbWFnZUNoYW5nZWQoc3RhdGljX2Nhc3Q8V3Jh
cHBlZEltYWdlUHRyPih0aGlzKSk7CiAgICAgfQogfQorICAgIAordm9pZCBDU1NDcm9zc2ZhZGVW
YWx1ZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjppbWFnZUNoYW5nZWQoQ2FjaGVk
SW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShp
bWFnZSk7CisgICAgCisgICAgaWYgKG1fcmVhZHkpCisgICAgICAgIG1fb3duZXJWYWx1ZS0+Y3Jv
c3NmYWRlQ2hhbmdlZCgqcmVjdCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKaW5kZXggMjMzYTgwYS4uNTdlYjNkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgQ1NTQ3Jvc3NmYWRlVmFsdWVfaAogI2RlZmluZSBDU1NDcm9zc2ZhZGVWYWx1ZV9oCiAK
KyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFs
dWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CkBAIC0zNCwxNSArMzUsMTkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVk
SW1hZ2U7CitjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CiBjbGFzcyBSZW5k
ZXJPYmplY3Q7CiBjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgQ1NTQ3Jvc3NmYWRlVmFsdWUgOiBw
dWJsaWMgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSB7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NDcm9zc2ZhZGVWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21JbWFnZSwg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gdG9JbWFnZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1ND
cm9zc2ZhZGVWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21WYWx1ZSwgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gdG9WYWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbUltYWdlLCB0b0ltYWdlKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbVZhbHVlLCB0b1ZhbHVlKSk7
CiAgICAgfQorICAgIAorICAgIH5DU1NDcm9zc2ZhZGVWYWx1ZSgpOwogCiAgICAgU3RyaW5nIGN1
c3RvbUNzc1RleHQoKSBjb25zdDsKIApAQCAtNTMsMzcgKzU4LDQxIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzUGVuZGluZygpIGNvbnN0OwogICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRSZXNv
dXJjZUxvYWRlciopOwogCi0gICAgdm9pZCBzZXRQZXJjZW50YWdlKFBhc3NSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHBlcmNlbnRhZ2UpIHsgbV9wZXJjZW50YWdlID0gcGVyY2VudGFnZTsgfQor
ICAgIHZvaWQgc2V0UGVyY2VudGFnZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJj
ZW50YWdlVmFsdWUpIHsgbV9wZXJjZW50YWdlVmFsdWUgPSBwZXJjZW50YWdlVmFsdWU7IH0KIAog
cHJpdmF0ZToKLSAgICBDU1NDcm9zc2ZhZGVWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9t
SW1hZ2UsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHRvSW1hZ2UpCisgICAgQ1NTQ3Jvc3NmYWRlVmFs
dWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZnJvbVZhbHVlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB0
b1ZhbHVlKQogICAgICAgICA6IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoQ3Jvc3NmYWRlQ2xhc3Mp
Ci0gICAgICAgICwgbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQotICAgICAgICAsIG1fdG9JbWFnZSh0
b0ltYWdlKQotICAgICAgICAsIG1fY3Jvc3NmYWRlT2JzZXJ2ZXIodGhpcykgeyB9CisgICAgICAg
ICwgbV9mcm9tVmFsdWUoZnJvbVZhbHVlKQorICAgICAgICAsIG1fdG9WYWx1ZSh0b1ZhbHVlKQor
ICAgICAgICAsIG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcih0aGlzKSB7IH0KIAotICAgIGNs
YXNzIENyb3NzZmFkZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgSW1hZ2VPYnNlcnZlciB7CisgICAg
Y2xhc3MgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5IDogcHVibGljIENhY2hlZEltYWdl
Q2xpZW50IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENyb3NzZmFkZU9ic2VydmVyUHJveHkoQ1NT
Q3Jvc3NmYWRlVmFsdWUqIG93bmVyVmFsdWUpIDogbV9vd25lclZhbHVlKG93bmVyVmFsdWUpIHsg
fQotICAgICAgICB2aXJ0dWFsIH5Dcm9zc2ZhZGVPYnNlcnZlclByb3h5KCkgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBjaGFuZ2VkSW5SZWN0KGNvbnN0IEltYWdlKiwgY29uc3QgSW50UmVjdCYg
cmVjdCkgT1ZFUlJJREUgeyBtX293bmVyVmFsdWUtPmNyb3NzZmFkZUNoYW5nZWQocmVjdCk7IH07
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYXVzZUFuaW1hdGlvbihjb25zdCBJbWFnZSop
IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3
KGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhbmltYXRp
b25BZHZhbmNlZChjb25zdCBJbWFnZSopIE9WRVJSSURFIHsgfQotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlKiwgaW50KSBPVkVSUklERSB7IH0KKyAg
ICAgICAgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KENTU0Nyb3NzZmFkZVZhbHVlKiBv
d25lclZhbHVlKQorICAgICAgICA6IG1fb3duZXJWYWx1ZShvd25lclZhbHVlKQorICAgICAgICAs
IG1fcmVhZHkoZmFsc2UpIHsgfQorICAgICAgICAKKyAgICAgICAgdmlydHVhbCB+Q3Jvc3NmYWRl
U3ViaW1hZ2VPYnNlcnZlclByb3h5KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNo
YW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IDApIE9WRVJSSURFOworICAgICAg
ICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CiAgICAgcHJp
dmF0ZToKICAgICAgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJWYWx1ZTsKKyAgICAgICAg
Ym9vbCBtX3JlYWR5OwogICAgIH07CiAKICAgICB2b2lkIGNyb3NzZmFkZUNoYW5nZWQoY29uc3Qg
SW50UmVjdCYpOwogCi0gICAgUmVmUHRyPENTU1ZhbHVlPiBtX2Zyb21JbWFnZTsKLSAgICBSZWZQ
dHI8Q1NTVmFsdWU+IG1fdG9JbWFnZTsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1f
cGVyY2VudGFnZTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fZnJvbVZhbHVlOworICAgIFJlZlB0
cjxDU1NWYWx1ZT4gbV90b1ZhbHVlOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9w
ZXJjZW50YWdlVmFsdWU7CisgICAgCisgICAgQ2FjaGVkSW1hZ2UqIG1fY2FjaGVkRnJvbUltYWdl
OworICAgIENhY2hlZEltYWdlKiBtX2NhY2hlZFRvSW1hZ2U7CiAKICAgICBSZWZQdHI8SW1hZ2U+
IG1fZ2VuZXJhdGVkSW1hZ2U7CiAKLSAgICBDcm9zc2ZhZGVPYnNlcnZlclByb3h5IG1fY3Jvc3Nm
YWRlT2JzZXJ2ZXI7CisgICAgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5IG1fY3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmNwcAppbmRleCA0Y2JiYmQxLi5iNDc4ZmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCIKIAotI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZh
bHVlLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKQEAgLTM1LDM5ICszNCwyNCBAQCB1c2luZyBu
YW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSogZnJvbUltYWdlLCBD
YWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VPYnNlcnZlciogb2Jz
ZXJ2ZXIsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShJbWFnZSogZnJvbUlt
YWdlLCBJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW50U2l6ZSBjcm9zc2ZhZGVT
aXplLCBjb25zdCBJbnRTaXplJiBzaXplKQogICAgIDogbV9mcm9tSW1hZ2UoZnJvbUltYWdlKQog
ICAgICwgbV90b0ltYWdlKHRvSW1hZ2UpCiAgICAgLCBtX3BlcmNlbnRhZ2UocGVyY2VudGFnZSkK
ICAgICAsIG1fY3Jvc3NmYWRlU2l6ZShjcm9zc2ZhZGVTaXplKQotICAgICwgbV9vYnNlcnZlcihv
YnNlcnZlcikKLSAgICAsIG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcihhZG9wdFB0cihuZXcg
Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KHRoaXMpKSkKIHsKICAgICBtX3NpemUgPSBz
aXplOwotCi0gICAgbV9mcm9tSW1hZ2UtPmFkZENsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2Jz
ZXJ2ZXIuZ2V0KCkpOwotICAgIG1fdG9JbWFnZS0+YWRkQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1h
Z2VPYnNlcnZlci5nZXQoKSk7Ci0KLSAgICBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXItPnNl
dFJlYWR5KHRydWUpOwotfQotCi1Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6fkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlKCkKLXsKLSAgICBtX2Zyb21JbWFnZS0+cmVtb3ZlQ2xpZW50KG1fY3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7Ci0gICAgbV90b0ltYWdlLT5yZW1vdmVDbGllbnQo
bV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKIH0KIAogdm9pZCBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZTo6ZHJhd0Nyb3NzZmFkZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCiB7
CiAgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxIC0gbV9wZXJjZW50YWdlOwogCi0gICAg
SW1hZ2UqIGZyb21JbWFnZSA9IG1fZnJvbUltYWdlLT5pbWFnZSgpOwotICAgIEludFNpemUgZnJv
bUltYWdlU2l6ZSA9IGZyb21JbWFnZS0+c2l6ZSgpOwotICAgIEltYWdlKiB0b0ltYWdlID0gbV90
b0ltYWdlLT5pbWFnZSgpOwotICAgIEludFNpemUgdG9JbWFnZVNpemUgPSB0b0ltYWdlLT5zaXpl
KCk7CisgICAgSW50U2l6ZSBmcm9tSW1hZ2VTaXplID0gbV9mcm9tSW1hZ2UtPnNpemUoKTsKKyAg
ICBJbnRTaXplIHRvSW1hZ2VTaXplID0gbV90b0ltYWdlLT5zaXplKCk7CiAKICAgICAvLyBEcmF3
IG5vdGhpbmcgaWYgZWl0aGVyIG9mIHRoZSBpbWFnZXMgaGFzbid0IGxvYWRlZCB5ZXQuCi0gICAg
aWYgKGZyb21JbWFnZSA9PSBJbWFnZTo6bnVsbEltYWdlKCkgfHwgdG9JbWFnZSA9PSBJbWFnZTo6
bnVsbEltYWdlKCkpCisgICAgaWYgKG1fZnJvbUltYWdlID09IEltYWdlOjpudWxsSW1hZ2UoKSB8
fCBtX3RvSW1hZ2UgPT0gSW1hZ2U6Om51bGxJbWFnZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwpAQCAtODEs
NyArNjUsNyBAQCB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCkKICAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXpl
KHN0YXRpY19jYXN0PGZsb2F0PihtX2Nyb3NzZmFkZVNpemUud2lkdGgoKSkgLyBmcm9tSW1hZ2VT
aXplLndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9jcm9zc2ZhZGVTaXplLmhlaWdodCgpKSAvIGZyb21JbWFnZVNpemUuaGVpZ2h0
KCkpKTsKICAgICBjb250ZXh0LT5zZXRBbHBoYShpbnZlcnNlUGVyY2VudGFnZSk7Ci0gICAgY29u
dGV4dC0+ZHJhd0ltYWdlKGZyb21JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQo
KSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fZnJvbUltYWdlLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBJbnRQb2ludCgpKTsKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAKICAgICAvLyBEcmF3
IHRoZSBpbWFnZSB3ZSdyZSBmYWRpbmcgdG93YXJkcy4KQEAgLTkwLDcgKzc0LDcgQEAgdm9pZCBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd0Nyb3NzZmFkZShHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQpCiAgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzdGF0aWNfY2FzdDxmbG9h
dD4obV9jcm9zc2ZhZGVTaXplLndpZHRoKCkpIC8gdG9JbWFnZVNpemUud2lkdGgoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0PihtX2Nyb3NzZmFk
ZVNpemUuaGVpZ2h0KCkpIC8gdG9JbWFnZVNpemUuaGVpZ2h0KCkpKTsKICAgICBjb250ZXh0LT5z
ZXRBbHBoYShtX3BlcmNlbnRhZ2UpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZSh0b0ltYWdlLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpLCBDb21wb3NpdGVQbHVzTGlnaHRlcik7Cisg
ICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fdG9JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50
UG9pbnQoKSwgQ29tcG9zaXRlUGx1c0xpZ2h0ZXIpOwogICAgIGNvbnRleHQtPnJlc3RvcmUoKTsK
IAogICAgIGNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBAIC0xMjEsMTcgKzEwNSw1
IEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSCiAgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVy
IGludG8gdGhlIGNvbnRleHQuCiAgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQs
IHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2UsIGNvbXBv
c2l0ZU9wLCBkZXN0UmVjdCk7CiB9Ci0gICAgCi12b2lkIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eTo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCog
cmVjdCkKLXsKLSAgICBpZiAobV9yZWFkeSkKLSAgICAgICAgbV9vd25lclZhbHVlLT5pbWFnZUNo
YW5nZWQoaW1hZ2UsIHJlY3QpOwotfQotCi12b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpp
bWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQotewot
ICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7Ci0gICAgbV9vYnNlcnZlci0+Y2hhbmdlZEluUmVjdCh0
aGlzLCAqcmVjdCk7Ci19CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDk5N2M5MmYuLmM3
Njc2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZV9oCiAjZGVmaW5lIENyb3NzZmFkZUdlbmVyYXRlZEltYWdl
X2gKIAotI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiR2VuZXJhdGVkSW1hZ2Uu
aCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKQEAgLTM2
LDUxICszNSwyOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NDcm9zc2ZhZGVW
YWx1ZTsKLWNsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsKIAogY2xhc3MgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgewotICAgIGZyaWVu
ZCBjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShDYWNoZWRJbWFn
ZSogZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1h
Z2VPYnNlcnZlciogb2JzZXJ2ZXIsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZT4g
Y3JlYXRlKEltYWdlKiBmcm9tSW1hZ2UsIEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdl
LCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFn
ZSwgdG9JbWFnZSwgcGVyY2VudGFnZSwgb2JzZXJ2ZXIsIGNyb3NzZmFkZVNpemUsIHNpemUpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9t
SW1hZ2UsIHRvSW1hZ2UsIHBlcmNlbnRhZ2UsIGNyb3NzZmFkZVNpemUsIHNpemUpKTsKICAgICB9
Ci0gICAgdmlydHVhbCB+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKTsKIAogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCk7CiAKLSAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShDYWNoZWRJbWFnZSog
ZnJvbUltYWdlLCBDYWNoZWRJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW1hZ2VP
YnNlcnZlciosIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6ZSYpOwotCi0gICAg
dm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IDApOworICAg
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlKiBmcm9tSW1hZ2UsIEltYWdlKiB0b0ltYWdl
LCBmbG9hdCBwZXJjZW50YWdlLCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUm
KTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0Kik7
CiAKLSAgICAvLyBUaGVzZSBhcmUgb3duZWQgYnkgdGhlIENTU0Nyb3NzZmFkZVZhbHVlIHRoYXQg
b3ducyB1cy4KLSAgICBDYWNoZWRJbWFnZSogbV9mcm9tSW1hZ2U7Ci0gICAgQ2FjaGVkSW1hZ2Uq
IG1fdG9JbWFnZTsKKyAgICBJbWFnZSogbV9mcm9tSW1hZ2U7CisgICAgSW1hZ2UqIG1fdG9JbWFn
ZTsKIAogICAgIGZsb2F0IG1fcGVyY2VudGFnZTsKICAgICBJbnRTaXplIG1fY3Jvc3NmYWRlU2l6
ZTsKLQotICAgIEltYWdlT2JzZXJ2ZXIqIG1fb2JzZXJ2ZXI7Ci0gICAgT3duUHRyPENyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXJQcm94eT4gbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyOwotfTsK
LQotY2xhc3MgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5IDogcHVibGljIENhY2hlZElt
YWdlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHko
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UqIG93bmVyVmFsdWUpCi0gICAgICAgIDogbV9vd25lclZh
bHVlKG93bmVyVmFsdWUpCi0gICAgICAgICwgbV9yZWFkeShmYWxzZSkgeyB9Ci0KLSAgICB2aXJ0
dWFsIH5Dcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkoKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklE
RTsKLSAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9Ci1w
cml2YXRlOgotICAgIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKiBtX293bmVyVmFsdWU7Ci0gICAg
Ym9vbCBtX3JlYWR5OwogfTsKIAogfQo=
</data>
<flag name="review"
          id="114642"
          type_id="1"
          status="-"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="114643"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117250</attachid>
            <date>2011-11-30 12:39:52 -0800</date>
            <delta_ts>2011-11-30 12:56:54 -0800</delta_ts>
            <desc>fix layering violation, take 2</desc>
            <filename>crossfade-layering-fix.patch</filename>
            <type>text/plain</type>
            <size>19188</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMDNlMjVkLi5mYjcxZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMTEtMTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IENTUzMgSW1hZ2VzIGNyb3NzLWZhZGUoKSBpbWFnZSBmdW5jdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA5MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBwbGF0Zm9ybSBsYXllcmluZyB2aW9sYXRp
b24gYnkgbW92aW5nIENhY2hlZEltYWdlIGludmFsaWRhdGlvbiBjb2RlIGludG8KKyAgICAgICAg
Q1NTQ3Jvc3NmYWRlVmFsdWUgKGluc3RlYWQgb2YgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGNzcy9DU1NDcm9zc2ZhZGVWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkU3ViaW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6On5DU1NDcm9zc2ZhZGVWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Ny
b3NzZmFkZVZhbHVlOjppc1BlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRl
VmFsdWU6OmxvYWRTdWJpbWFnZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFs
dWU6OmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDcm9zc2Zh
ZGVTdWJpbWFnZU9ic2VydmVyUHJveHk6OmltYWdlQ2hhbmdlZCk6CisgICAgICAgICogY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpzZXRQZXJjZW50
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpDU1NDcm9zc2ZhZGVW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlclByb3h5OjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eTo6fkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5Ojpz
ZXRSZWFkeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OkNy
b3NzZmFkZUdlbmVyYXRlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpjcmVhdGUpOgorCiAyMDExLTExLTMwICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIGZlSW1hZ2UgcmVmZXJlbmNpbmcgYSBwcmlt
aXRpdmUgZHJhd3MgaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFs
dWUuY3BwCmluZGV4IGFjYmNhODcuLjliZGNhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmNwcApAQCAtNTAsMjkgKzUwLDE4IEBAIHN0YXRpYyBib29sIHN1YmltYWdl
SXNQZW5kaW5nKENTU1ZhbHVlKiB2YWx1ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyB2b2lkIGxvYWRTdWJpbWFnZShDU1NWYWx1ZSogdmFsdWUsIENhY2hlZFJlc291cmNlTG9hZGVy
KiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3N0YXRpYyBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VG
b3JDU1NWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRS
ZXNvdXJjZUxvYWRlcikKIHsKICAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKSB7Ci0gICAg
ICAgIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2YWx1ZSktPmNhY2hlZEltYWdlKGNhY2hl
ZFJlc291cmNlTG9hZGVyKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBTdHlsZUNhY2hlZElt
YWdlKiBzdHlsZUNhY2hlZEltYWdlID0gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVl
KS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICBpZiAoIXN0eWxl
Q2FjaGVkSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gc3R5
bGVDYWNoZWRJbWFnZS0+Y2FjaGVkSW1hZ2UoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHZhbHVl
LT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgewogICAgICAgICBzdGF0aWNfY2FzdDxDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlKj4odmFsdWUpLT5sb2FkU3ViaW1hZ2VzKGNhY2hlZFJlc291cmNlTG9h
ZGVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLX0KLQotc3RhdGljIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKENT
U1ZhbHVlKiB2YWx1ZSwgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBDYWNo
ZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAKLSAgICBpZiAodmFsdWUtPmlzSW1h
Z2VWYWx1ZSgpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZh
bHVlKS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpLT5jYWNoZWRJbWFnZSgpOwot
ICAgIAotICAgIGlmICh2YWx1ZS0+aXNJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKICAgICAgICAg
Ly8gRklYTUU6IEhhbmRsZSBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIChhbmQgdGh1cyBjcm9zcy1m
YWRlcyB3aXRoIGdyYWRpZW50cyBhbmQgY2FudmFzKS4KICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQpAQCAtODIsMjkgKzcxLDM4IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JD
U1NWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IFJlbmRlck9iamVjdCoKICAgICByZXR1cm4g
MDsKIH0KIAorQ1NTQ3Jvc3NmYWRlVmFsdWU6On5DU1NDcm9zc2ZhZGVWYWx1ZSgpCit7CisgICAg
aWYgKG1fY2FjaGVkRnJvbUltYWdlKQorICAgICAgICBtX2NhY2hlZEZyb21JbWFnZS0+cmVtb3Zl
Q2xpZW50KCZtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOworICAgIGlmIChtX2NhY2hlZFRv
SW1hZ2UpCisgICAgICAgIG1fY2FjaGVkVG9JbWFnZS0+cmVtb3ZlQ2xpZW50KCZtX2Nyb3NzZmFk
ZVN1YmltYWdlT2JzZXJ2ZXIpOworfQorCiBTdHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3Rv
bUNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZyByZXN1bHQgPSAiLXdlYmtpdC1jcm9zcy1m
YWRlKCI7Ci0gICAgcmVzdWx0ICs9IG1fZnJvbUltYWdlLT5jc3NUZXh0KCkgKyAiLCAiOwotICAg
IHJlc3VsdCArPSBtX3RvSW1hZ2UtPmNzc1RleHQoKSArICIsICI7Ci0gICAgcmVzdWx0ICs9IG1f
cGVyY2VudGFnZS0+Y3NzVGV4dCgpOworICAgIHJlc3VsdCArPSBtX2Zyb21WYWx1ZS0+Y3NzVGV4
dCgpICsgIiwgIjsKKyAgICByZXN1bHQgKz0gbV90b1ZhbHVlLT5jc3NUZXh0KCkgKyAiLCAiOwor
ICAgIHJlc3VsdCArPSBtX3BlcmNlbnRhZ2VWYWx1ZS0+Y3NzVGV4dCgpOwogICAgIHJlc3VsdCAr
PSAiKSI7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSW50U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1
ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgZmxvYXQg
cGVyY2VudGFnZSA9IG1fcGVyY2VudGFnZS0+Z2V0RmxvYXRWYWx1ZSgpOworICAgIGZsb2F0IHBl
cmNlbnRhZ2UgPSBtX3BlcmNlbnRhZ2VWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOwogICAgIGZsb2F0
IGludmVyc2VQZXJjZW50YWdlID0gMSAtIHBlcmNlbnRhZ2U7CiAKLSAgICBDYWNoZWRJbWFnZSog
ZnJvbUltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX2Zyb21JbWFnZS5nZXQoKSwgcmVu
ZGVyZXIpOwotICAgIENhY2hlZEltYWdlKiB0b0ltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1
ZShtX3RvSW1hZ2UuZ2V0KCksIHJlbmRlcmVyKTsKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciog
Y2FjaGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKTsKKyAgICBDYWNoZWRJbWFnZSogY2FjaGVkRnJvbUltYWdlID0gY2FjaGVkSW1h
Z2VGb3JDU1NWYWx1ZShtX2Zyb21WYWx1ZS5nZXQoKSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwor
ICAgIENhY2hlZEltYWdlKiBjYWNoZWRUb0ltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZSht
X3RvVmFsdWUuZ2V0KCksIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKIAotICAgIGlmICghZnJvbUlt
YWdlIHx8ICF0b0ltYWdlKQorICAgIGlmICghY2FjaGVkRnJvbUltYWdlIHx8ICFjYWNoZWRUb0lt
YWdlKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgSW50U2l6ZSBmcm9tSW1hZ2VT
aXplID0gZnJvbUltYWdlLT5pbWFnZSgpLT5zaXplKCk7Ci0gICAgSW50U2l6ZSB0b0ltYWdlU2l6
ZSA9IHRvSW1hZ2UtPmltYWdlKCktPnNpemUoKTsKKyAgICBJbnRTaXplIGZyb21JbWFnZVNpemUg
PSBjYWNoZWRGcm9tSW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpLT5zaXplKCk7Cisg
ICAgSW50U2l6ZSB0b0ltYWdlU2l6ZSA9IGNhY2hlZFRvSW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIo
cmVuZGVyZXIpLT5zaXplKCk7CiAKICAgICByZXR1cm4gSW50U2l6ZShmcm9tSW1hZ2VTaXplLndp
ZHRoKCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRvSW1hZ2VTaXplLndpZHRoKCkgKiBwZXJjZW50
YWdlLAogICAgICAgICBmcm9tSW1hZ2VTaXplLmhlaWdodCgpICogaW52ZXJzZVBlcmNlbnRhZ2Ug
KyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSAqIHBlcmNlbnRhZ2UpOwpAQCAtMTEyLDEzICsxMTAsMjAg
QEAgSW50U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCiAKIGJvb2wgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmlzUGVuZGluZygpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHN1YmltYWdlSXNQZW5kaW5nKG1fZnJvbUltYWdlLmdldCgpKSB8fCBz
dWJpbWFnZUlzUGVuZGluZyhtX3RvSW1hZ2UuZ2V0KCkpOworICAgIHJldHVybiBzdWJpbWFnZUlz
UGVuZGluZyhtX2Zyb21WYWx1ZS5nZXQoKSkgfHwgc3ViaW1hZ2VJc1BlbmRpbmcobV90b1ZhbHVl
LmdldCgpKTsKIH0KIAogdm9pZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6bG9hZFN1YmltYWdlcyhDYWNo
ZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiB7Ci0gICAgbG9hZFN1Ymlt
YWdlKG1fZnJvbUltYWdlLmdldCgpLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7Ci0gICAgbG9hZFN1
YmltYWdlKG1fdG9JbWFnZS5nZXQoKSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIG1fY2Fj
aGVkRnJvbUltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX2Zyb21WYWx1ZS5nZXQoKSwg
Y2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgIG1fY2FjaGVkVG9JbWFnZSA9IGNhY2hlZEltYWdl
Rm9yQ1NTVmFsdWUobV90b1ZhbHVlLmdldCgpLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisKKyAg
ICBpZiAobV9jYWNoZWRGcm9tSW1hZ2UpCisgICAgICAgIG1fY2FjaGVkRnJvbUltYWdlLT5hZGRD
bGllbnQoJm1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcik7CisgICAgaWYgKG1fY2FjaGVkVG9J
bWFnZSkKKyAgICAgICAgbV9jYWNoZWRUb0ltYWdlLT5hZGRDbGllbnQoJm1fY3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlcik7CisKKyAgICBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuc2V0UmVh
ZHkodHJ1ZSk7CiB9CiAKIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFn
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTI2LDIx
ICsxMzEsMjYgQEAgUGFzc1JlZlB0cjxJbWFnZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUKICAgICBpZiAoc2l6ZS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgQ2FjaGVkSW1hZ2UqIGZyb21JbWFnZSA9IGNh
Y2hlZEltYWdlRm9yQ1NTVmFsdWUobV9mcm9tSW1hZ2UuZ2V0KCksIHJlbmRlcmVyKTsKLSAgICBD
YWNoZWRJbWFnZSogdG9JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV90b0ltYWdlLmdl
dCgpLCByZW5kZXJlcik7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNl
TG9hZGVyID0gcmVuZGVyZXItPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Cisg
ICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEZyb21JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUo
bV9mcm9tVmFsdWUuZ2V0KCksIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICBDYWNoZWRJbWFn
ZSogY2FjaGVkVG9JbWFnZSA9IGNhY2hlZEltYWdlRm9yQ1NTVmFsdWUobV90b1ZhbHVlLmdldCgp
LCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisKKyAgICBpZiAoIWNhY2hlZEZyb21JbWFnZSB8fCAh
Y2FjaGVkVG9JbWFnZSkKKyAgICAgICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2UoKTsKKworICAg
IEltYWdlKiBmcm9tSW1hZ2UgPSBjYWNoZWRGcm9tSW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVu
ZGVyZXIpOworICAgIEltYWdlKiB0b0ltYWdlID0gY2FjaGVkVG9JbWFnZS0+aW1hZ2VGb3JSZW5k
ZXJlcihyZW5kZXJlcik7CiAKICAgICBpZiAoIWZyb21JbWFnZSB8fCAhdG9JbWFnZSkKICAgICAg
ICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2UoKTsKIAotICAgIG1fZ2VuZXJhdGVkSW1hZ2UgPSBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKGZyb21JbWFnZSwgdG9JbWFnZSwgbV9wZXJj
ZW50YWdlLT5nZXRGbG9hdFZhbHVlKCksICZtX2Nyb3NzZmFkZU9ic2VydmVyLCBmaXhlZFNpemUo
cmVuZGVyZXIpLCBzaXplKTsKKyAgICBtX2dlbmVyYXRlZEltYWdlID0gQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U6OmNyZWF0ZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIG1fcGVyY2VudGFnZVZhbHVlLT5n
ZXRGbG9hdFZhbHVlKCksIGZpeGVkU2l6ZShyZW5kZXJlciksIHNpemUpOwogCiAgICAgcmV0dXJu
IG1fZ2VuZXJhdGVkSW1hZ2UuZ2V0KCk7CiB9CiAKLXZvaWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNy
b3NzZmFkZUNoYW5nZWQoY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgQ1NTQ3Jvc3NmYWRlVmFs
dWU6OmNyb3NzZmFkZUNoYW5nZWQoY29uc3QgSW50UmVjdCYpCiB7Ci0gICAgVU5VU0VEX1BBUkFN
KHJlY3QpOwotCiAgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBl
bmQgPSBjbGllbnRzKCkuZW5kKCk7CiAgICAgZm9yIChSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6
OmNvbnN0X2l0ZXJhdG9yIGN1cnIgPSBjbGllbnRzKCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsr
Y3VycikgewogICAgICAgICBSZW5kZXJPYmplY3QqIGNsaWVudCA9IGNvbnN0X2Nhc3Q8UmVuZGVy
T2JqZWN0Kj4oY3Vyci0+Zmlyc3QpOwpAQCAtMTQ4LDQgKzE1OCwxMCBAQCB2b2lkIENTU0Nyb3Nz
ZmFkZVZhbHVlOjpjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgfQog
fQogCit2b2lkIENTU0Nyb3NzZmFkZVZhbHVlOjpDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJv
eHk6OmltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqIHJlY3QpCit7Cisg
ICAgaWYgKG1fcmVhZHkpCisgICAgICAgIG1fb3duZXJWYWx1ZS0+Y3Jvc3NmYWRlQ2hhbmdlZCgq
cmVjdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmgKaW5kZXggMjMzYTgwYS4uYmU2MDY2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgQ1NTQ3Jvc3Nm
YWRlVmFsdWVfaAogI2RlZmluZSBDU1NDcm9zc2ZhZGVWYWx1ZV9oCiAKKyNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCkBAIC0zNCwxNiArMzUs
MjAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkSW1hZ2U7CitjbGFzcyBD
cm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFz
cyBEb2N1bWVudDsKIAogY2xhc3MgQ1NTQ3Jvc3NmYWRlVmFsdWUgOiBwdWJsaWMgQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZSB7CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2
ZXJQcm94eTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1
ZT4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21JbWFnZSwgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gdG9JbWFnZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1ZT4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZyb21WYWx1ZSwgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gdG9WYWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Jvc3Nm
YWRlVmFsdWUoZnJvbUltYWdlLCB0b0ltYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTQ3Jvc3NmYWRlVmFsdWUoZnJvbVZhbHVlLCB0b1ZhbHVlKSk7CiAgICAgfQogCisgICAg
fkNTU0Nyb3NzZmFkZVZhbHVlKCk7CisKICAgICBTdHJpbmcgY3VzdG9tQ3NzVGV4dCgpIGNvbnN0
OwogCiAgICAgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50
U2l6ZSYpOwpAQCAtNTMsMzcgKzU4LDQzIEBAIHB1YmxpYzoKICAgICBib29sIGlzUGVuZGluZygp
IGNvbnN0OwogICAgIHZvaWQgbG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciopOwog
Ci0gICAgdm9pZCBzZXRQZXJjZW50YWdlKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBl
cmNlbnRhZ2UpIHsgbV9wZXJjZW50YWdlID0gcGVyY2VudGFnZTsgfQorICAgIHZvaWQgc2V0UGVy
Y2VudGFnZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwZXJjZW50YWdlVmFsdWUpIHsg
bV9wZXJjZW50YWdlVmFsdWUgPSBwZXJjZW50YWdlVmFsdWU7IH0KIAogcHJpdmF0ZToKLSAgICBD
U1NDcm9zc2ZhZGVWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IHRvSW1hZ2UpCisgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUoUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gZnJvbVZhbHVlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB0b1ZhbHVlKQogICAgICAg
ICA6IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoQ3Jvc3NmYWRlQ2xhc3MpCi0gICAgICAgICwgbV9m
cm9tSW1hZ2UoZnJvbUltYWdlKQotICAgICAgICAsIG1fdG9JbWFnZSh0b0ltYWdlKQotICAgICAg
ICAsIG1fY3Jvc3NmYWRlT2JzZXJ2ZXIodGhpcykgeyB9CisgICAgICAgICwgbV9mcm9tVmFsdWUo
ZnJvbVZhbHVlKQorICAgICAgICAsIG1fdG9WYWx1ZSh0b1ZhbHVlKQorICAgICAgICAsIG1fY2Fj
aGVkRnJvbUltYWdlKDApCisgICAgICAgICwgbV9jYWNoZWRUb0ltYWdlKDApCisgICAgICAgICwg
bV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKHRoaXMpIHsgfQogCi0gICAgY2xhc3MgQ3Jvc3Nm
YWRlT2JzZXJ2ZXJQcm94eSA6IHB1YmxpYyBJbWFnZU9ic2VydmVyIHsKKyAgICBjbGFzcyBDcm9z
c2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgQ3Jvc3NmYWRlT2JzZXJ2ZXJQcm94eShDU1NDcm9zc2ZhZGVW
YWx1ZSogb3duZXJWYWx1ZSkgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkgeyB9Ci0gICAgICAg
IHZpcnR1YWwgfkNyb3NzZmFkZU9ic2VydmVyUHJveHkoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2
b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiByZWN0KSBPVkVS
UklERSB7IG1fb3duZXJWYWx1ZS0+Y3Jvc3NmYWRlQ2hhbmdlZChyZWN0KTsgfTsKLSAgICAgICAg
dmlydHVhbCBib29sIHNob3VsZFBhdXNlQW5pbWF0aW9uKGNvbnN0IEltYWdlKikgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZERyYXcoY29uc3QgSW1h
Z2UqKSBPVkVSUklERSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2Vk
KGNvbnN0IEltYWdlKikgT1ZFUlJJREUgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVk
U2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UqLCBpbnQpIE9WRVJSSURFIHsgfQorICAgICAgICBDcm9z
c2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkoQ1NTQ3Jvc3NmYWRlVmFsdWUqIG93bmVyVmFsdWUp
CisgICAgICAgIDogbV9vd25lclZhbHVlKG93bmVyVmFsdWUpCisgICAgICAgICwgbV9yZWFkeShm
YWxzZSkgeyB9CisKKyAgICAgICAgdmlydHVhbCB+Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclBy
b3h5KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2Uq
LCBjb25zdCBJbnRSZWN0KiA9IDApIE9WRVJSSURFOworICAgICAgICB2b2lkIHNldFJlYWR5KGJv
b2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CiAgICAgcHJpdmF0ZToKICAgICAgICAgQ1NT
Q3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJWYWx1ZTsKKyAgICAgICAgYm9vbCBtX3JlYWR5OwogICAg
IH07CiAKICAgICB2b2lkIGNyb3NzZmFkZUNoYW5nZWQoY29uc3QgSW50UmVjdCYpOwogCi0gICAg
UmVmUHRyPENTU1ZhbHVlPiBtX2Zyb21JbWFnZTsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fdG9J
bWFnZTsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcGVyY2VudGFnZTsKKyAgICBS
ZWZQdHI8Q1NTVmFsdWU+IG1fZnJvbVZhbHVlOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV90b1Zh
bHVlOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9wZXJjZW50YWdlVmFsdWU7CisK
KyAgICBDYWNoZWRJbWFnZSogbV9jYWNoZWRGcm9tSW1hZ2U7CisgICAgQ2FjaGVkSW1hZ2UqIG1f
Y2FjaGVkVG9JbWFnZTsKIAogICAgIFJlZlB0cjxJbWFnZT4gbV9nZW5lcmF0ZWRJbWFnZTsKIAot
ICAgIENyb3NzZmFkZU9ic2VydmVyUHJveHkgbV9jcm9zc2ZhZGVPYnNlcnZlcjsKKyAgICBDcm9z
c2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkgbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4
IDU5NDcyOTUuLjAzZTVmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTI2LDcgKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5oIgogCi0jaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUuaCIKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1
ZmZlci5oIgpAQCAtMzUsMzkgKzM0LDI0IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OkNyb3NzZmFkZUdlbmVy
YXRlZEltYWdlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENhY2hlZEltYWdlKiB0b0ltYWdlLCBm
bG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciwgSW50U2l6ZSBjcm9zc2Zh
ZGVTaXplLCBjb25zdCBJbnRTaXplJiBzaXplKQorQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OkNy
b3NzZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlKiBmcm9tSW1hZ2UsIEltYWdlKiB0b0ltYWdlLCBm
bG9hdCBwZXJjZW50YWdlLCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUmIHNp
emUpCiAgICAgOiBtX2Zyb21JbWFnZShmcm9tSW1hZ2UpCiAgICAgLCBtX3RvSW1hZ2UodG9JbWFn
ZSkKICAgICAsIG1fcGVyY2VudGFnZShwZXJjZW50YWdlKQogICAgICwgbV9jcm9zc2ZhZGVTaXpl
KGNyb3NzZmFkZVNpemUpCi0gICAgLCBtX29ic2VydmVyKG9ic2VydmVyKQotICAgICwgbV9jcm9z
c2ZhZGVTdWJpbWFnZU9ic2VydmVyKGFkb3B0UHRyKG5ldyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2Vy
dmVyUHJveHkodGhpcykpKQogewogICAgIG1fc2l6ZSA9IHNpemU7Ci0KLSAgICBtX2Zyb21JbWFn
ZS0+YWRkQ2xpZW50KG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci5nZXQoKSk7Ci0gICAgbV90
b0ltYWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdldCgpKTsKLQot
ICAgIG1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlci0+c2V0UmVhZHkodHJ1ZSk7Ci19Ci0KLUNy
b3NzZmFkZUdlbmVyYXRlZEltYWdlOjp+Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoKQotewotICAg
IG1fZnJvbUltYWdlLT5yZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyLmdl
dCgpKTsKLSAgICBtX3RvSW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2Jz
ZXJ2ZXIuZ2V0KCkpOwogfQogCiB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jv
c3NmYWRlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
KQogewogICAgIGZsb2F0IGludmVyc2VQZXJjZW50YWdlID0gMSAtIG1fcGVyY2VudGFnZTsKIAot
ICAgIEltYWdlKiBmcm9tSW1hZ2UgPSBtX2Zyb21JbWFnZS0+aW1hZ2UoKTsKLSAgICBJbnRTaXpl
IGZyb21JbWFnZVNpemUgPSBmcm9tSW1hZ2UtPnNpemUoKTsKLSAgICBJbWFnZSogdG9JbWFnZSA9
IG1fdG9JbWFnZS0+aW1hZ2UoKTsKLSAgICBJbnRTaXplIHRvSW1hZ2VTaXplID0gdG9JbWFnZS0+
c2l6ZSgpOworICAgIEludFNpemUgZnJvbUltYWdlU2l6ZSA9IG1fZnJvbUltYWdlLT5zaXplKCk7
CisgICAgSW50U2l6ZSB0b0ltYWdlU2l6ZSA9IG1fdG9JbWFnZS0+c2l6ZSgpOwogCiAgICAgLy8g
RHJhdyBub3RoaW5nIGlmIGVpdGhlciBvZiB0aGUgaW1hZ2VzIGhhc24ndCBsb2FkZWQgeWV0Lgot
ICAgIGlmIChmcm9tSW1hZ2UgPT0gSW1hZ2U6Om51bGxJbWFnZSgpIHx8IHRvSW1hZ2UgPT0gSW1h
Z2U6Om51bGxJbWFnZSgpKQorICAgIGlmIChtX2Zyb21JbWFnZSA9PSBJbWFnZTo6bnVsbEltYWdl
KCkgfHwgbV90b0ltYWdlID09IEltYWdlOjpudWxsSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKQEAg
LTgzLDcgKzY3LDcgQEAgdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd0Nyb3NzZmFk
ZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2EKICAgICBjb250ZXh0LT50cmFu
c2xhdGUoLXNyY1JlY3QueCgpICogZnJvbUltYWdlU2l6ZS53aWR0aCgpIC8gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1fY3Jvc3NmYWRlU2l6ZS53aWR0aCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAg
LXNyY1JlY3QueSgpICogZnJvbUltYWdlU2l6ZS5oZWlnaHQoKSAvIHN0YXRpY19jYXN0PGZsb2F0
PihtX2Nyb3NzZmFkZVNpemUuaGVpZ2h0KCkpKTsKICAgICBjb250ZXh0LT5zZXRBbHBoYShpbnZl
cnNlUGVyY2VudGFnZSk7Ci0gICAgY29udGV4dC0+ZHJhd0ltYWdlKGZyb21JbWFnZSwgQ29sb3JT
cGFjZURldmljZVJHQiwgSW50UG9pbnQoKSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fZnJv
bUltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpKTsKICAgICBjb250ZXh0LT5y
ZXN0b3JlKCk7CiAKICAgICAvLyBEcmF3IHRoZSBpbWFnZSB3ZSdyZSBmYWRpbmcgdG93YXJkcy4K
QEAgLTk0LDcgKzc4LDcgQEAgdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd0Nyb3Nz
ZmFkZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2EKICAgICBjb250ZXh0LT50
cmFuc2xhdGUoLXNyY1JlY3QueCgpICogdG9JbWFnZVNpemUud2lkdGgoKSAvIHN0YXRpY19jYXN0
PGZsb2F0PihtX2Nyb3NzZmFkZVNpemUud2lkdGgoKSksCiAgICAgICAgICAgICAgICAgICAgICAg
IC1zcmNSZWN0LnkoKSAqIHRvSW1hZ2VTaXplLmhlaWdodCgpIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG1fY3Jvc3NmYWRlU2l6ZS5oZWlnaHQoKSkpOwogICAgIGNvbnRleHQtPnNldEFscGhhKG1fcGVy
Y2VudGFnZSk7Ci0gICAgY29udGV4dC0+ZHJhd0ltYWdlKHRvSW1hZ2UsIENvbG9yU3BhY2VEZXZp
Y2VSR0IsIEludFBvaW50KCksIENvbXBvc2l0ZVBsdXNMaWdodGVyKTsKKyAgICBjb250ZXh0LT5k
cmF3SW1hZ2UobV90b0ltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpLCBDb21w
b3NpdGVQbHVzTGlnaHRlcik7CiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogCiAgICAgY29udGV4
dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTEyNCwxNyArMTA4LDUgQEAgdm9pZCBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBGbG9hdFIKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29u
dGV4dC4KICAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgc3JjUmVjdCwgcGF0
dGVyblRyYW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgY29tcG9zaXRlT3AsIGRlc3RS
ZWN0KTsKIH0KLSAgICAKLXZvaWQgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjppbWFn
ZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQotewotICAg
IGlmIChtX3JlYWR5KQotICAgICAgICBtX293bmVyVmFsdWUtPmltYWdlQ2hhbmdlZChpbWFnZSwg
cmVjdCk7Ci19Ci0KLXZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmltYWdlQ2hhbmdlZChD
YWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCi17Ci0gICAgVU5VU0VEX1BB
UkFNKGltYWdlKTsKLSAgICBtX29ic2VydmVyLT5jaGFuZ2VkSW5SZWN0KHRoaXMsICpyZWN0KTsK
LX0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggYmZkNzk0My4uNTU3ZTNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlX2gKICNkZWZpbmUgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2VfaAogCi0jaW5jbHVk
ZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgpAQCAtMzYsNTEgKzM1LDI4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU0Nyb3NzZmFkZVZhbHVlOwotY2xhc3Mg
Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OwogCiBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZSA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFnZSB7Ci0gICAgZnJpZW5kIGNsYXNzIENyb3Nz
ZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2Us
IENhY2hlZEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiBv
YnNlcnZlciwgSW50U2l6ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENyb3NzZmFkZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUoSW1hZ2Uq
IGZyb21JbWFnZSwgSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEludFNpemUgY3Jv
c3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoZnJvbUltYWdlLCB0b0ltYWdlLCBw
ZXJjZW50YWdlLCBvYnNlcnZlciwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFnZSwgdG9JbWFn
ZSwgcGVyY2VudGFnZSwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOwogICAgIH0KLSAgICB2aXJ0dWFs
IH5Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvcik7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsK
IAotICAgIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKENhY2hlZEltYWdlKiBmcm9tSW1hZ2UsIENh
Y2hlZEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbWFnZU9ic2VydmVyKiwgSW50
U2l6ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJik7Ci0KLSAgICB2b2lkIGltYWdlQ2hh
bmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0gMCk7CisgICAgQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UoSW1hZ2UqIGZyb21JbWFnZSwgSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNl
bnRhZ2UsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6ZSYpOwogCiBwcml2YXRl
OgogICAgIHZvaWQgZHJhd0Nyb3NzZmFkZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QpOwogCi0gICAgLy8gVGhlc2UgYXJlIG93bmVkIGJ5IHRoZSBDU1NDcm9zc2Zh
ZGVWYWx1ZSB0aGF0IG93bnMgdXMuCi0gICAgQ2FjaGVkSW1hZ2UqIG1fZnJvbUltYWdlOwotICAg
IENhY2hlZEltYWdlKiBtX3RvSW1hZ2U7CisgICAgSW1hZ2UqIG1fZnJvbUltYWdlOworICAgIElt
YWdlKiBtX3RvSW1hZ2U7CiAKICAgICBmbG9hdCBtX3BlcmNlbnRhZ2U7CiAgICAgSW50U2l6ZSBt
X2Nyb3NzZmFkZVNpemU7Ci0KLSAgICBJbWFnZU9ic2VydmVyKiBtX29ic2VydmVyOwotICAgIE93
blB0cjxDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk+IG1fY3Jvc3NmYWRlU3ViaW1hZ2VP
YnNlcnZlcjsKLX07Ci0KLWNsYXNzIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSA6IHB1
YmxpYyBDYWNoZWRJbWFnZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgQ3Jvc3NmYWRlU3ViaW1hZ2VP
YnNlcnZlclByb3h5KENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKiBvd25lclZhbHVlKQotICAgICAg
ICA6IG1fb3duZXJWYWx1ZShvd25lclZhbHVlKQotICAgICAgICAsIG1fcmVhZHkoZmFsc2UpIHsg
fQotCi0gICAgdmlydHVhbCB+Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3Qq
ID0gMCkgT1ZFUlJJREU7Ci0gICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkg
PSByZWFkeTsgfQotcHJpdmF0ZToKLSAgICBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSogbV9vd25l
clZhbHVlOwotICAgIGJvb2wgbV9yZWFkeTsKIH07CiAKIH0K
</data>
<flag name="review"
          id="116629"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>