<?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>118358</bug_id>
          
          <creation_ts>2013-07-03 06:58:33 -0700</creation_ts>
          <short_desc>Nix upstreaming - Adding stubs and Nix specific platform files</short_desc>
          <delta_ts>2013-09-09 10:33:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117658</blocked>
    
    <blocked>118367</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Luciano Wolf">luciano.wolf</reporter>
          <assigned_to name="Luciano Wolf">luciano.wolf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nick.diego</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905860</commentid>
    <comment_count>0</comment_count>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-03 06:58:33 -0700</bug_when>
    <thetext>Basically adding all files that have &quot;Nix&quot; in their names and are related to WebCore module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905862</commentid>
    <comment_count>1</comment_count>
      <attachid>206001</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-03 07:13:32 -0700</bug_when>
    <thetext>Created attachment 206001
Patch containing new Nix specific files and stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905868</commentid>
    <comment_count>2</comment_count>
      <attachid>206003</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-03 07:49:45 -0700</bug_when>
    <thetext>Created attachment 206003
New patch avoiding WebAudio and RenderTheme stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905957</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-03 13:02:59 -0700</bug_when>
    <thetext>Please change the changelog to only mention filename.

Are you okay with a real review or do you want to land as-is and fix later?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905963</commentid>
    <comment_count>4</comment_count>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-03 13:16:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Please change the changelog to only mention filename.
&gt; 
&gt; Are you okay with a real review or do you want to land as-is and fix later?

Thanks, I&apos;ll update the changelog. Right now it&apos;s better to &quot;land as-is&quot;. This patch is just a small part of a bigger patch and doesn&apos;t provide a full context so a real review would require lots of missing information that is distributed through a series of other patches. The most important is to guarantee that this patch doesn&apos;t hurt other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905967</commentid>
    <comment_count>5</comment_count>
      <attachid>206020</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-03 13:36:21 -0700</bug_when>
    <thetext>Created attachment 206020
New patch with updated Changelog files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905972</commentid>
    <comment_count>6</comment_count>
      <attachid>206020</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-03 14:00:17 -0700</bug_when>
    <thetext>Comment on attachment 206020
New patch with updated Changelog files

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

&gt; Source/WTF/wtf/nix/PlatformNix.h:32
&gt; +// Some bits can&apos;t be changed at all

This comment makes no sense. Improve it or remove it.

&gt; Source/WTF/wtf/nix/PlatformNix.h:51
&gt; +// EGL/OpenGLES2 vs GLX

Flesh out this comment or remove it. Missing period.

&gt; Source/WTF/wtf/nix/PlatformNix.h:61
&gt; +// Soup vs libCurl

Flesh out this comment or remove it. Missing period.

&gt; Source/WebCore/platform/graphics/egl/GLContextFromCurrentEGL.h:54
&gt; +    // TODO: Add support for Offscreen buffers.
&gt; +    static PassOwnPtr&lt;GLContextFromCurrentEGL&gt; createFromCurrentGLContext();
&gt; +
&gt; +    virtual bool makeContextCurrent();
&gt; +
&gt; +    // These are not used by Nix.
&gt; +    virtual void swapBuffers() { }
&gt; +    virtual IntSize defaultFrameBufferSize() { return IntSize(); }
&gt; +    virtual cairo_device_t* cairoDevice() { return 0; }
&gt; +
&gt; +    // TODO: This is not used in GLContext interface, it&apos;s used by
&gt; +    // GLContextGLX only as an implementation detail.
&gt; +    virtual bool canRenderToDefaultFramebuffer() { return false; }
&gt; +
&gt; +    // TODO: Used only as a key in HashMaps, see if we can change WebKit code to not
&gt; +    // rely on this anymore (at least in our platform).
&gt; +    virtual PlatformGraphicsContext3D platformContext() { return this; }
&gt; +    virtual void waitNative() { return; }

WebKit uses FIXME, not TODO.

All the virtual misses OVERRIDE.

This file is not a Nix file, the comments need to be clearer.

&gt; Source/WebCore/platform/graphics/nix/ImageNix.cpp:44
&gt; +    return SharedBuffer::create(); // TODO: fallback image?

TODO -&gt; FIXME.

&gt; Source/WebCore/platform/nix/ErrorsNix.cpp:28
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;ErrorsNix.h&quot;

All the literals in this file should be ASCIILiteral.

&gt; Source/WebCore/platform/nix/GamepadsNix.cpp:33
&gt; +#include &quot;GamepadList.h&quot;
&gt; +
&gt; +#include &lt;public/Platform.h&gt;

Those #include should be together.

&gt; Source/WebCore/platform/nix/LocalizedStringsNix.cpp:38
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;LocalizedStrings.h&quot;
&gt; +
&gt; +#include &quot;NotImplemented.h&quot;
&gt; +#include &lt;wtf/text/WTFString.h&gt;

I am opposed to this.

Nix should use LocalizedStrings.cpp. Certain other ports have their own file for historical reason and it is a pain in the ass to work with that.

All you should have to do is implement WebCore::localizedString.

&gt; Source/WebCore/platform/nix/MIMETypeRegistryNix.cpp:75
&gt; +static const ExtensionMap extensionMap[] = {
&gt; +    { &quot;bmp&quot;, &quot;image/bmp&quot; },
&gt; +    { &quot;css&quot;, &quot;text/css&quot; },
&gt; +    { &quot;gif&quot;, &quot;image/gif&quot; },
&gt; +    { &quot;html&quot;, &quot;text/html&quot; },
&gt; +    { &quot;htm&quot;, &quot;text/html&quot; },
&gt; +    { &quot;ico&quot;, &quot;image/x-icon&quot; },
&gt; +    { &quot;jpeg&quot;, &quot;image/jpeg&quot; },
&gt; +    { &quot;jpg&quot;, &quot;image/jpeg&quot; },
&gt; +    { &quot;js&quot;, &quot;application/x-javascript&quot; },
&gt; +    { &quot;mng&quot;, &quot;video/x-mng&quot; },
&gt; +    { &quot;pbm&quot;, &quot;image/x-portable-bitmap&quot; },
&gt; +    { &quot;pgm&quot;, &quot;image/x-portable-graymap&quot; },
&gt; +    { &quot;pdf&quot;, &quot;application/pdf&quot; },
&gt; +    { &quot;png&quot;, &quot;image/png&quot; },
&gt; +    { &quot;ppm&quot;, &quot;image/x-portable-pixmap&quot; },
&gt; +    { &quot;rss&quot;, &quot;application/rss+xml&quot; },
&gt; +    { &quot;svg&quot;, &quot;image/svg+xml&quot; },
&gt; +    { &quot;text&quot;, &quot;text/plain&quot; },
&gt; +    { &quot;tif&quot;, &quot;image/tiff&quot; },
&gt; +    { &quot;tiff&quot;, &quot;image/tiff&quot; },
&gt; +    { &quot;txt&quot;, &quot;text/plain&quot; },
&gt; +    { &quot;xbm&quot;, &quot;image/x-xbitmap&quot; },
&gt; +    { &quot;xml&quot;, &quot;text/xml&quot; },
&gt; +    { &quot;xpm&quot;, &quot;image/x-xpm&quot; },
&gt; +    { &quot;xsl&quot;, &quot;text/xsl&quot; },
&gt; +    { &quot;xhtml&quot;, &quot;application/xhtml+xml&quot; },
&gt; +    { &quot;wml&quot;, &quot;text/vnd.wap.wml&quot; },
&gt; +    { &quot;wmlc&quot;, &quot;application/vnd.wap.wmlc&quot; },
&gt; +    { 0, 0 }
&gt; +};

Those looks standard…Why do you need to repeat them in getMIMETypeForExtension?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906228</commentid>
    <comment_count>7</comment_count>
      <attachid>206020</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-04 11:43:45 -0700</bug_when>
    <thetext>Comment on attachment 206020
New patch with updated Changelog files

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

&gt;&gt; Source/WebCore/platform/nix/ErrorsNix.cpp:28
&gt;&gt; +#include &quot;ErrorsNix.h&quot;
&gt; 
&gt; All the literals in this file should be ASCIILiteral.

Sorry, I didn&apos;t get this one. This file is a plain copy of other port. Is it about some weird character in this file? Or is it about strings passed to the ResourceError method?

&gt;&gt; Source/WebCore/platform/nix/LocalizedStringsNix.cpp:38
&gt;&gt; +#include &lt;wtf/text/WTFString.h&gt;
&gt; 
&gt; I am opposed to this.
&gt; 
&gt; Nix should use LocalizedStrings.cpp. Certain other ports have their own file for historical reason and it is a pain in the ass to work with that.
&gt; 
&gt; All you should have to do is implement WebCore::localizedString.

I just left the implementation of localizedString into this file so every other method will come from LocalizedStrings.cpp.

&gt;&gt; Source/WebCore/platform/nix/MIMETypeRegistryNix.cpp:75
&gt;&gt; +};
&gt; 
&gt; Those looks standard…Why do you need to repeat them in getMIMETypeForExtension?

No reason to repeat. Was just a blind copy of other port. I&apos;ve left just the {0, 0} line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906232</commentid>
    <comment_count>8</comment_count>
      <attachid>206105</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-04 11:51:38 -0700</bug_when>
    <thetext>Created attachment 206105
New patch with corrections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906262</commentid>
    <comment_count>9</comment_count>
      <attachid>206105</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-04 16:01:21 -0700</bug_when>
    <thetext>Comment on attachment 206105
New patch with corrections

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

I am ok with this, but I want you to do one more pass and try to maximize the code shared with GTK.
I suggest to find files that can be shared, remove them from this patch, and make an other refactoring patch to make those common to GTK/Nix.

Martin Robinson agrees the code should be shared when possible. You can add new platform directories if needed (e.g. platform/gobject).

&gt; Source/WebCore/platform/graphics/egl/GLContextFromCurrentEGL.h:48
&gt; +    virtual void waitNative() OVERRIDE { return; }

remove the &quot;return;&quot;

&gt; Source/WebCore/platform/nix/ErrorsNix.cpp:28
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;ErrorsNix.h&quot;

Can&apos;t you share this file with GTK?

&gt; Source/WebCore/platform/nix/FileSystemNix.cpp:24
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;FileSystem.h&quot;

Why can&apos;t you share this file with GTK?

&gt; Source/WebCore/platform/nix/FileSystemNix.cpp:42
&gt; +
&gt; +/* On linux file names are just raw bytes, so also strings that cannot be encoded in any way
&gt; + * are valid file names. This mean that we cannot just store a file name as-is in a String
&gt; + * but we have to escape it.
&gt; + * On Windows the GLib file name encoding is always UTF-8 so we can optimize this case. */

Change this to WebKit-style comments.

&gt; Source/WebCore/platform/nix/GamepadsNix.cpp:60
&gt; +void sampleGamepads(GamepadList* into)
&gt; +{
&gt; +    WebKit::WebGamepads gamepads;
&gt; +
&gt; +    WebKit::Platform::current()-&gt;sampleGamepads(gamepads);
&gt; +
&gt; +    for (unsigned i = 0; i &lt; WebKit::WebGamepads::itemsLengthCap; ++i) {
&gt; +        WebKit::WebGamepad&amp; webGamepad = gamepads.items[i];
&gt; +        if (i &lt; gamepads.length &amp;&amp; webGamepad.connected) {
&gt; +            RefPtr&lt;Gamepad&gt; gamepad = into-&gt;item(i);
&gt; +            if (!gamepad)
&gt; +                gamepad = Gamepad::create();
&gt; +            gamepad-&gt;id(webGamepad.id);
&gt; +            gamepad-&gt;index(i);
&gt; +            gamepad-&gt;timestamp(webGamepad.timestamp);
&gt; +            gamepad-&gt;axes(webGamepad.axesLength, webGamepad.axes);
&gt; +            gamepad-&gt;buttons(webGamepad.buttonsLength, webGamepad.buttons);
&gt; +            into-&gt;set(i, gamepad);
&gt; +        } else
&gt; +            into-&gt;set(i, 0);
&gt; +    }
&gt; +}
&gt; +

Looking at Qt and GTK, I suspect this is dead code. You don&apos;t have any code to get the devices.

&gt; Source/WebCore/platform/nix/LocalizedStringsNix.cpp:45
&gt; +String localizedString(const char* key)
&gt; +{
&gt; +    return String::fromUTF8(key, strlen(key));
&gt; +}

Much better!

&gt; Source/WebCore/platform/nix/RunLoopNix.cpp:28
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;RunLoop.h&quot;

Why can&apos;t this be shared with GTK?

&gt; Source/WebCore/platform/nix/SharedTimerNix.cpp:29
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;SharedTimer.h&quot;

Why can&apos;t this be shared with GTK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906264</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-04 16:02:18 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 206020 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206020&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/nix/ErrorsNix.cpp:28
&gt; &gt;&gt; +#include &quot;ErrorsNix.h&quot;
&gt; &gt; 
&gt; &gt; All the literals in this file should be ASCIILiteral.
&gt; 
&gt; Sorry, I didn&apos;t get this one. This file is a plain copy of other port. Is it about some weird character in this file? Or is it about strings passed to the ResourceError method?

WTF::String create from literals should use ASCIILiteral() unless they are translated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906464</commentid>
    <comment_count>11</comment_count>
      <attachid>206105</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-05 12:02:00 -0700</bug_when>
    <thetext>Comment on attachment 206105
New patch with corrections

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

&gt;&gt; Source/WebCore/platform/nix/GamepadsNix.cpp:60
&gt;&gt; +
&gt; 
&gt; Looking at Qt and GTK, I suspect this is dead code. You don&apos;t have any code to get the devices.

Nix architecture delegates all platform specifics to the application via our Platform API (WebKit::Platform in public/Platform.h). So, the logic to get device info isn&apos;t into WebCore but it forwards the sampleGamepads call to the application (line #42).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906471</commentid>
    <comment_count>12</comment_count>
      <attachid>206168</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-05 13:10:34 -0700</bug_when>
    <thetext>Created attachment 206168
New patch with corrections and shared files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906520</commentid>
    <comment_count>13</comment_count>
      <attachid>206168</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-05 18:16:39 -0700</bug_when>
    <thetext>Comment on attachment 206168
New patch with corrections and shared files

I think you forgot to remove the GTK files you moved to glib.
Please do those in a separate patch, that would be much easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906774</commentid>
    <comment_count>14</comment_count>
      <attachid>206241</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-08 07:21:11 -0700</bug_when>
    <thetext>Created attachment 206241
New patch with corrections - no mention to GTK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907236</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-09 16:13:19 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=206241) [details]
&gt; New patch with corrections - no mention to GTK

I think there is a big misunderstanding.

Get me on IRC, and let&apos;s fix and land everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907453</commentid>
    <comment_count>16</comment_count>
      <attachid>206410</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-10 13:47:22 -0700</bug_when>
    <thetext>Created attachment 206410
New patch without glib directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907500</commentid>
    <comment_count>17</comment_count>
      <attachid>206410</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-10 18:04:39 -0700</bug_when>
    <thetext>Comment on attachment 206410
New patch without glib directory.

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

&gt; Source/WebCore/platform/nix/LanguageNix.cpp:44
&gt; +        return String(&quot;c&quot;);

String(&quot;c&quot;) -&gt; ASCIIString(&quot;c&quot;)

&gt; Source/WebCore/platform/nix/NixKeyboardUtilities.h:34
&gt; +namespace WTF {
&gt; +class String;
&gt; +}

WTF::String is not used in this header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907626</commentid>
    <comment_count>18</comment_count>
      <attachid>206457</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-11 06:23:09 -0700</bug_when>
    <thetext>Created attachment 206457
New reviewed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907631</commentid>
    <comment_count>19</comment_count>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-07-11 06:39:05 -0700</bug_when>
    <thetext>My bad.. sorry. Forgot to include --no-obsolete in the last webkit-patch upload. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907654</commentid>
    <comment_count>20</comment_count>
      <attachid>206457</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-07-11 08:02:16 -0700</bug_when>
    <thetext>Comment on attachment 206457
New reviewed patch.

Attachment 206457 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1034517

New failing tests:
fullscreen/full-screen-iframe-with-max-width-height.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907655</commentid>
    <comment_count>21</comment_count>
      <attachid>206465</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-07-11 08:02:20 -0700</bug_when>
    <thetext>Created attachment 206465
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-04  Port: mac-mountainlion  Platform: Mac OS X 10.8.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926695</commentid>
    <comment_count>22</comment_count>
      <attachid>211038</attachid>
    <who name="Luciano Wolf">luciano.wolf</who>
    <bug_when>2013-09-09 07:07:47 -0700</bug_when>
    <thetext>Created attachment 211038
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926775</commentid>
    <comment_count>23</comment_count>
      <attachid>211038</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-09 10:33:36 -0700</bug_when>
    <thetext>Comment on attachment 211038
Rebased patch

Clearing flags on attachment: 211038

Committed r155360: &lt;http://trac.webkit.org/changeset/155360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926776</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-09 10:33:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206001</attachid>
            <date>2013-07-03 07:13:32 -0700</date>
            <delta_ts>2013-07-03 07:49:39 -0700</delta_ts>
            <desc>Patch containing new Nix specific files and stubs</desc>
            <filename>bug-118358-20130703111125.patch</filename>
            <type>text/plain</type>
            <size>203009</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDYxY2U5ZjkzYWE5NDUxMDM2MDMwYzEz
Yjc4ODI4ZDM5ZWE2OTAwNzMuLmZiNzExOWI5MzE0NmE0ZDQxZmEyNWJhYjkyMjAyZmQ4NWEwNjU0
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMDMgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kIGFyZSByZWxhdGVkCisgICAgICAg
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIEF2b2lkIGNvZGUgZHVwbGljYXRpb24gaW5zaWRlIFN0cmluZzo6YXBw
ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzNWM5YTgyODIwYjFmZDA3Yjk4YTUxNWExYmI2M2RmODFhNzhk
NjEwLi5kZDFlNzRhY2U2YzNlZjI3YjJjM2YwOTlkOTU5ZDZmNjNjYTkxNjA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDcxIEBACisyMDEzLTA3LTAzICBMdWNpYW5vIFdvbGYgIDxsdWNpYW5vLndv
bGZAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgc3R1
YnMgYW5kIE5peCBzcGVjaWZpYyBwbGF0Zm9ybSBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzaWNhbGx5IGFkZGluZyBhbGwgZmlsZXMgdGhh
dCBoYXZlICJOaXgiIGluIHRoZWlyIG5hbWVzIGFuZCBhcmUgcmVsYXRlZAorICAgICAgICB0byBX
ZWJDb3JlIG1vZHVsZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4LmNzczogQWRkZWQuCisgICAgICAgIChhdWRpbyk6Cisg
ICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICAodmlkZW86LXdlYmtpdC1mdWxsLXBh
Z2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICAoYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLW11dGUtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1
dHRvbik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1j
b250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5l
cik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUt
ZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3Bs
YXkpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5p
bmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmct
ZGlzcGxheSk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGlu
ZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUpOgorICAgICAgICAoYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyKToKKyAgICAg
ICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIpOgorICAgICAgICAoYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1mdWxsc2NyZWVuLWJ1dHRvbik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1yZXdpbmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdp
bmQtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVy
bi10by1yZWFsdGltZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVy
bi10by1yZWFsdGltZS1idXR0b24pOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24sIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24pOgorICAg
ICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3M6IEFkZGVkLgorICAgICAg
ICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICAodmlkZW86
LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgor
ICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAg
ICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24pOgorICAgICAg
ICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyKToKKyAg
ICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
KToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxp
bmUpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ci1jb250YWluZXIpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlcik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVr
LWJhY2stYnV0dG9uKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNl
ZWstZm9yd2FyZC1idXR0b24pOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtZnVsbHNjcmVlbi1idXR0b24pOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcmV3aW5kLWJ1dHRvbik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uKToKKyAgICAgICAg
KiBwYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldCk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VNb3ZlRXZlbnRUb1N1
YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFz
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmFjY2Vz
c0tleU1vZGlmaWVycyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvQnVzTml4
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVBdWRpb0ZpbGVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbk5peDo6QXVkaW9EZXN0aW5hdGlvbk5peCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uTml4Ojp+QXVkaW9EZXN0aW5hdGlvbk5peCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTml4OjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uTml4OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb246OmhhcmR3YXJlU2FtcGxlUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uOjptYXhDaGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbk5peDo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25O
aXg6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvRGVz
dGluYXRpb25OaXguaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
Tml4Ojppc1BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk5peDo6
c2FtcGxlUmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbml4L0ZGVEZyYW1lTml4LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6RkZURnJhbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRG
cmFtZTo6bXVsdGlwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29y
ZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNs
ZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OnNjYWxlUGxhbmFyRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6cmVhbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6OmltYWdEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdMQ29u
dGV4dEZyb21DdXJyZW50RUdMOjpjcmVhdGVGcm9tQ3VycmVudEdMQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6R0xDb250ZXh0RnJvbUN1cnJlbnRF
R0wpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6
aW5pdGlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZy
b21DdXJyZW50RUdMLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1
cnJlbnRFR0w6OnN3YXBCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEZyb21D
dXJyZW50RUdMOjpkZWZhdWx0RnJhbWVCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
Q29udGV4dEZyb21DdXJyZW50RUdMOjpjYWlyb0RldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpH
TENvbnRleHRGcm9tQ3VycmVudEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OnBsYXRmb3JtQ29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6d2FpdE5hdGl2
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlkZW9X
aW5kb3dOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFBsYXRmb3JtVmlkZW9XaW5kb3c6OlBsYXRm
b3JtVmlkZW9XaW5kb3cpOgorICAgICAgICAoUGxhdGZvcm1WaWRlb1dpbmRvdzo6flBsYXRmb3Jt
VmlkZW9XaW5kb3cpOgorICAgICAgICAoUGxhdGZvcm1WaWRlb1dpbmRvdzo6cHJlcGFyZUZvck92
ZXJsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJY29uOjp+SWNvbik6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uOjpjcmVhdGVJY29uRm9yRmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6bG9hZFJlc291cmNlU2hhcmVkQnVmZmVyRmFsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4
L0N1cnNvck5peC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjpDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjp+Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1cnNvcjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OmN1cnNvclN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjpjYW5TbWFydFJlcGxhY2UpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6
OmNvbnRhaW5zQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zRmls
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdEYXRhOjpjb250YWluc1BsYWluVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
YXNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zVVJMKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjphc1VSTCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNGcmFnbWVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vbml4L0RyYWdJbWFnZU5peC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZHJhZ0ltYWdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVE
cmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFn
SW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25peC9FcnJvcnNO
aXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RTaG93
VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpkb3dubG9hZE5l
dHdvcmtFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkRGVzdGluYXRpb25FcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpwcmludEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnByaW50ZXJOb3RG
b3VuZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludmFsaWRQYWdlUmFuZ2VUb1ByaW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvRXJyb3JzTml4Lmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL25peC9GaWxlU3lzdGVtTml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpm
aWxlbmFtZVRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRpc3BsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVGaWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25UaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bWFrZUFsbERp
cmVjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmhvbWVEaXJlY3RvcnlQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OnBhdGhHZXRGaWxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNh
dGlvbkRpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VzUGF0
aCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5UZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6Om9wZW5GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlRmlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZWVrRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRvRmlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpyZWFkRnJvbUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6dW5sb2Fk
TW9kdWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXguY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OnNhbXBsZUdhbWVwYWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
aXgvTGFuZ3VhZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtTGFu
Z3VhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OmlucHV0RWxlbWVudEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRC
dXR0b25EZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdERldGFpbHNTdW1t
YXJ5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAg
IChXZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkVmlkZW9Ub0Rpc2spOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRBdWRpb1RvRGlzayk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJk
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3
V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5
QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdVbmljb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0lucHV0TWV0aG9kcyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0Jh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0N1dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmspOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGlj
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVu
dU5vUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVSZWNl
bnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVudUNsZWFyUmVjZW50
U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhGb290ZXJSb2xlRGVzY3JpcHRpb25UZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkFYQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFJhZGlv
QnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFRleHRGaWVsZEFjdGlvblZl
cmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYTGlua0FjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93bkZp
bGVTaXplVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFF
bGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmlsZVRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0aXBs
ZUZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNz
aW5nRm9yUmFkaW9UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yU2VsZWN0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjptaXNzaW5nUGx1Z2lu
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
Om11bHRpcGxlRmlsZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdp
blRleHQpOgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZFBsdWdpbkJ5Q29udGVudFNlY3VyaXR5
UG9saWN5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjppbnNlY3VyZVBsdWdpblZlcnNpb25UZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OmluYWN0aXZlUGx1Z2luVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjp1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2Nh
bGl6ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VCYWRJbnB1
dEZvck51bWJlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c25hcHNob3R0ZWRQbHVnSW5MYWJl
bFRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBzaG90dGVkUGx1Z0luTGFiZWxTdWJ0aXRs
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4L01JTUVUeXBlUmVnaXN0cnlOaXguY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0
ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRp
b25QbHVnaW5NSU1FVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRp
bGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjprZXlNYXApOgorICAgICAgICAo
V2ViQ29yZTo6d2luZG93c0tleU1hcCk6CisgICAgICAgIChXZWJDb3JlOjprZXlEb3duQ29tbWFu
ZHNNYXApOgorICAgICAgICAoV2ViQ29yZTo6a2V5UHJlc3NDb21tYW5kc01hcCk6CisgICAgICAg
IChXZWJDb3JlOjphZGRDaGFyYWN0ZXJzVG9LZXlNYXApOgorICAgICAgICAoV2ViQ29yZTo6YWRk
Q2hhcmFjdGVyc1RvV2luS2V5TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUtleURvd25D
b21tYW5kTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUtleVByZXNzQ29tbWFuZE1hcCk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRLZXlEb3duQ29tbWFuZE5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0S2V5UHJlc3NDb21tYW5kTmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4L05p
eEtleWJvYXJkVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9QYXN0
ZWJvYXJkTml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpnZW5l
cmFsUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJk
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OndyaXRlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6
OndyaXRlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVDbGlwYm9h
cmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y2xlYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6cGxhaW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6Omhhc0RhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6cmVhZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
Ojp3cml0ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp0eXBlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQpOgorICAgICAgICAqIHBsYXRmb3JtL25peC9QbGF0Zm9y
bUtleWJvYXJkRXZlbnROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNv
cmU6OnNjcmVlblZlcnRpY2FsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkRlcHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6c2NyZWVuQ29sb3JQcm9maWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUmVuZGVy
VGhlbWVOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldFNpemVJZkF1dG8pOgor
ICAgICAgICAoV2ViQ29yZTo6dG9Db2xvcik6CisgICAgICAgIChXZWJDb3JlOjp0aGVtZUVuZ2lu
ZSk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5p
eDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpSZW5kZXJUaGVt
ZU5peCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6flJlbmRlclRoZW1lTml4
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpleHRyYURlZmF1bHRTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpleHRyYVF1aXJrc1N0eWxl
U2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OmV4dHJhUGx1Z0luc1N0
eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTml4OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZU5peDo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZU5peDo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU5peDo6cGxhdGZvcm1BY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtRm9j
dXNSaW5nQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnBsYXRmb3Jt
VGFwSGlnaGxpZ2h0Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnN5
c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0V2ViVGhlbWVTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVOaXg6OnBhaW50VGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTml4OjpwYWludFRleHRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTml4OjpwYWludENoZWNrYm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4
OjpzZXRDaGVja2JveFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnBh
aW50UmFkaW8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVOaXg6OnNldFJhZGlvU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6cGFpbnRNZW51TGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6YWRqdXN0TWVudUxpc3RTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6cGFpbnRQcm9ncmVzc0Jhcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxG
b3JQcm9ncmVzc0Jhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6YW5pbWF0
aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0Jhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU5peDo6cGFpbnRTbGlkZXJUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5p
eDo6YWRqdXN0U2xpZGVyVHJhY2tTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU5peDo6cGFpbnRTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5p
eDo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU5peDo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTml4OjpzbGlkZXJUaWNrU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5p
eDo6c2xpZGVyVGlja09mZnNldEZyb21UcmFja0NlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZU5peDo6c2xpZGVyVGlja1NuYXBwaW5nVGhyZXNob2xkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTml4OjpzdXBwb3J0c0RhdGFMaXN0VUkpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVOaXg6OmFkanVzdElubmVyU3BpbkJ1dHRvblN0eWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpwYWludElubmVyU3BpbkJ1dHRvbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6YWRqdXN0TWV0ZXJTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU5peDo6bWV0ZXJTaXplRm9yQm91bmRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lTml4OjpzdXBwb3J0c01ldGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTml4OjpwYWludE1ldGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgv
UmVuZGVyVGhlbWVOaXguaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L1J1bkxvb3BO
aXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAg
ICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVu
TG9vcDo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OmlubmVybW9zdExvb3ApOgor
ICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6cXVldWVXb3JrKToK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUp
OgorICAgICAgICAqIHBsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5peC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTml4Ojp+U2Nyb2xsYmFyVGhlbWVOaXgpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVOaXg6OnNjcm9sbGJhclRoaWNrbmVzcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU5peDo6cmVnaXN0ZXJTY3JvbGxiYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVOaXg6OnVucmVnaXN0ZXJTY3JvbGxiYXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5peC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uaXgvU2hhcmVkVGltZXJOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnNldFNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0
aW1lb3V0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c2V0U2hhcmVkVGltZXJGaXJlSW50
ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6c3RvcFNoYXJlZFRpbWVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uaXgvU291bmROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnN5c3Rl
bUJlZXApOgorICAgICAgICAqIHBsYXRmb3JtL25peC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmdldFN1cHBvcnRlZEtleVNpemVzKToKKyAgICAgICAg
KFdlYkNvcmU6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk6CisgICAgICAgICog
cGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0OjpXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0Ojp+V2lkZ2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6ZnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdl
dDo6c2V0RnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgor
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6
V2lkZ2V0OjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6aGlkZSk6CisgICAgICAg
IChXZWJDb3JlOjpXaWRnZXQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0
SXNTZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vbml4L3N1cHBvcnQvV2ViQXVkaW9CdXMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXVkaW9CdXNQcml2YXRlOjpXZWJBdWRp
b0J1c1ByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdWRpb0J1czo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkF1ZGlvQnVzOjpyZXNpemVTbWFsbGVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXVkaW9CdXM6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXVkaW9C
dXM6Om51bWJlck9mQ2hhbm5lbHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdWRpb0J1czo6bGVu
Z3RoKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXVkaW9CdXM6OnNhbXBsZVJhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdWRpb0J1czo6Y2hhbm5lbERhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdWRpb0J1czo6YXVkaW9CdXMpOgorICAgICAgICAqIHBsYXRmb3JtL25peC9zdXBwb3J0L1dl
YkRhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YTo6cmVzZXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJEYXRhOjphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
OjpzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YTo6ZGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkRhdGE6OldlYkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhOjpvcGVyYXRv
cj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhOjpvcGVyYXRvciBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRTZWFy
Y2hMb2NhbGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQp
OgorCiAyMDEzLTA3LTAyICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgog
CiAgICAgICAgIFtDdXJsXSBDcmFzaCBhZnRlciBkb3dubG9hZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL25peC9GZWF0dXJlRGVmaW5lc05peC5oIGIvU291cmNlL1dURi93dGYvbml4L0Zl
YXR1cmVEZWZpbmVzTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQzMmFkMGVkMjYxNGE0MTIyNjZiYWI2M2Q5
NGZjMmJlZWUzYTQ1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL25peC9GZWF0
dXJlRGVmaW5lc05peC5oCkBAIC0wLDAgKzEsMjgxIEBACisvKgorKiAgQ29weXJpZ2h0IChDKSAy
MDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNpZm5kZWYgV1RGX0ZlYXR1cmVEZWZpbmVzTml4X2gKKyNkZWZpbmUgV1RGX0ZlYXR1cmVE
ZWZpbmVzTml4X2gKKworI2lmICFkZWZpbmVkKEVOQUJMRV8zRF9SRU5ERVJJTkcpCisjZGVmaW5l
IEVOQUJMRV8zRF9SRU5ERVJJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorI2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9CTE9CKQorI2RlZmluZSBFTkFCTEVfQkxP
QiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykKKyNk
ZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0NPTlRFWFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkKKyNkZWZpbmUgRU5BQkxFX0NT
UzNfVEVYVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJ
T05fQlJFQUspCisjZGVmaW5lIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpCisjZGVmaW5lIEVOQUJM
RV9DU1NfRVhDTFVTSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfRklM
VEVSUykKKyNkZWZpbmUgRU5BQkxFX0NTU19GSUxURVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFH
RV9PUklFTlRBVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9TRVQpCisjZGVmaW5lIEVOQUJMRV9D
U1NfSU1BR0VfU0VUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19SRUdJT05T
KQorI2RlZmluZSBFTkFCTEVfQ1NTX1JFR0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX1NIQURFUlMpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0hBREVSUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKQorI2RlZmluZSBFTkFCTEVfQ1NT
X1ZBUklBQkxFUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElTVF9FTEVN
RU5UKQorI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9ERVRBSUxTX0VM
RU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQT1JUKQorI2Rl
ZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0ZBU1RfTU9CSUxFX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0ZBU1RfTU9CSUxFX1NDUk9M
TElORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxURVJTKQorI2RlZmluZSBF
TkFCTEVfRklMVEVSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVFBESVIpCisj
ZGVmaW5lIEVOQUJMRV9GVFBESVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQorI2RlZmluZSBFTkFCTEVfR0FNRVBBRCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HRVNUVVJFX0VWRU5UUykKKyNkZWZpbmUgRU5B
QkxFX0dFU1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lDT05E
QVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxFX0lDT05EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpCisjZGVmaW5lIEVOQUJMRV9JRlJBTUVfU0VB
TUxFU1MgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkK
KyNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIpCisjZGVmaW5lIEVOQUJMRV9J
TlNQRUNUT1JfU0VSVkVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpCisjZGVmaW5lIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKKyNkZWZpbmUgRU5BQkxFX0pJVCAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9MRUdBQ1lfVklFV1BPUlRfQURBUFRJT04pCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lf
VklFV1BPUlRfQURBUFRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZ
X1dFQl9BVURJTykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8gMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlQpCisjZGVmaW5lIEVOQUJMRV9MTElOVCAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NQVRITUwpCisjZGVmaW5lIEVOQUJMRV9NQVRITUwg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUg
RU5BQkxFX01FVEVSX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUlD
Uk9EQVRBKQorI2RlZmluZSBFTkFCTEVfTUlDUk9EQVRBIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2RlZmluZSBFTkFCTEVfTkFWSUdB
VE9SX0NPTlRFTlRfVVRJTFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUV09SS19JTkZPKQorI2RlZmluZSBFTkFCTEVf
TkVUV09SS19JTkZPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BMVUdJTl9QQUNL
QUdFX1NJTVBMRV9IQVNIKQorI2RlZmluZSBFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hB
U0ggMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9QVVBfTUVOVVMpCisjZGVmaW5l
IEVOQUJMRV9QT1BVUF9NRU5VUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUk9H
UkVTU19FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKKyNkZWZpbmUg
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0NTU19TSEFQRVMpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0hBUEVTIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKQorI2RlZmluZSBFTkFCTEVfU0hB
UkVEX1dPUktFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1FMX0RBVEFCQVNF
KQorI2RlZmluZSBFTkFCTEVfU1FMX0RBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1NWRykKKyNkZWZpbmUgRU5BQkxFX1NWRyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9TVkdfRk9OVFMpCisjZGVmaW5lIEVOQUJMRV9TVkdfRk9OVFMgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVCkKKyNkZWZpbmUgRU5BQkxFX1RP
VUNIX0FESlVTVE1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZF
TlRTKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1VORE9fTUFOQUdFUikKKyNkZWZpbmUgRU5BQkxFX1VORE9fTUFOQUdFUiAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFTykKKyNkZWZpbmUgRU5BQkxFX1ZJREVP
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpCisj
ZGVmaW5lIEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BVURJTykKKyNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9TT0NLRVRTKQorI2RlZmluZSBFTkFCTEVf
V0VCX1NPQ0tFVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1RJTUlORykK
KyNkZWZpbmUgRU5BQkxFX1dFQl9USU1JTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfV09SS0VSUykKKyNkZWZpbmUgRU5BQkxFX1dPUktFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IpCisjZGVmaW5lIEVOQUJMRV9YSFJfUkVTUE9O
U0VfQkxPQiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQorI2RlZmluZSBF
TkFCTEVfWFNMVCAxCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9uaXgvUGxhdGZvcm1OaXguaCBiL1NvdXJjZS9XVEYvd3RmL25peC9QbGF0Zm9ybU5peC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcwZDUzYTNhMjcwYjM4NWRhOGY3NDg3ZDMxNzFlNjQyMGY1ZTViN2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaApAQCAtMCwwICsx
LDY2IEBACisvKgorKiAgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpZm5kZWYgV1RGX1BsYXRmb3JtTml4
X2gKKyNkZWZpbmUgV1RGX1BsYXRmb3JtTml4X2gKKworI2RlZmluZSBXVEZfUExBVEZPUk1fTklY
IDEKKyNkZWZpbmUgRU5BQkxFX0dMT0JBTF9GQVNUTUFMTE9DX05FVyAwCisKKy8vIFNvbWUgYml0
cyBjYW4ndCBiZSBjaGFuZ2VkIGF0IGFsbAorI2RlZmluZSBXVEZfVVNFXzNEX0dSQVBISUNTIDEK
KyNkZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORyAxCisjZGVmaW5lIFdURl9V
U0VfQ0FJUk8gMQorI2RlZmluZSBXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTIDEKKyNkZWZp
bmUgV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTIDEKKyNkZWZpbmUgV1RGX1VT
RV9GUkVFVFlQRSAxCisjZGVmaW5lIFdURl9VU0VfR0xJQiAxCisjZGVmaW5lIFdURl9VU0VfSEFS
RkJVWlogMQorI2RlZmluZSBXVEZfVVNFX0hBUkZCVVpaX05HIDEKKyNkZWZpbmUgV1RGX1VTRV9J
Q1VfVU5JQ09ERSAxCisjZGVmaW5lIFdURl9VU0VfSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NU
T1JFIDEKKyNkZWZpbmUgV1RGX1VTRV9MRVZFTERCIDEKKyNkZWZpbmUgV1RGX1VTRV9QVEhSRUFE
UyAxCisjZGVmaW5lIFdURl9VU0VfVEVYVFVSRV9NQVBQRVIgMQorI2RlZmluZSBXVEZfVVNFX1RF
WFRVUkVfTUFQUEVSX0dMIDEKKyNkZWZpbmUgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIDEK
KyNkZWZpbmUgV1RGX1VTRV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKKworLy8gRUdML09wZW5HTEVT
MiB2cyBHTFgKKyNpZiAhZGVmaW5lZChXVEZfVVNFX09QRU5HTF9FU18yKSB8fCAhV1RGX1VTRV9P
UEVOR0xfRVNfMgorI2RlZmluZSBXVEZfVVNFX09QRU5HTCAxCisjZGVmaW5lIFdURl9VU0VfR0xY
IDEKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1gxMSAxCisjZGVmaW5lIFdURl9VU0VfR1JBUEhJQ1Nf
U1VSRkFDRSAxCisjZWxzZQorI2RlZmluZSBXVEZfVVNFX0VHTCAxCisjZW5kaWYKKworLy8gU291
cCB2cyBsaWJDdXJsCisjaWYgIWRlZmluZWQoV1RGX1VTRV9DVVJMKSB8fCAhV1RGX1VTRV9DVVJM
CisjZGVmaW5lIFdURl9VU0VfU09VUCAxCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc05peC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvbWVkaWFDb250cm9sc05peC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViMzY2NTI3YjdlMDU4MTk0YzU0
MTcxNWVmNTc4OGVkMDI3NzQ5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzTml4LmNzcwpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyog
Tml4V2ViS2l0IG1lZGlhIGNvbnRyb2xzLiBFeHRlbmRzIG1lZGlhQ29udHJvbHMuY3NzICovCisK
K2F1ZGlvIHsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworfQorCithdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGFuZWwgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94
LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAg
IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
IGJvdHRvbTogMDsKKyAgICB3aWR0aDogMTAwJTsKKyAgICB6LWluZGV4OiAwOworICAgIG92ZXJm
bG93OiBoaWRkZW47CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IHJpZ2h0Owor
fQorCit2aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1wYW5lbCB7CisgICAgYm90dG9tOiAwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1
dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1tdXRlLWJ1dHRvbjsKKyAgICBk
aXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7
CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHotaW5kZXg6IDI7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVy
aXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
aW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisK
K2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIHsKKyAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG1lZGlhLWNvbnRyb2xzLWJhY2tncm91bmQ7CisgICAgZGlzcGxheTogLXdl
YmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJr
aXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtcGFjazogZW5kOworICAgIC13
ZWJraXQtYm94LWZsZXg6IDE7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBo
ZWlnaHQ6IDIwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQt
dGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUt
ZGlzcGxheSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRpbWUtZGlz
cGxheTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGRpc3BsYXk6IC13ZWJr
aXQtYm94OworICAgIGhlaWdodDogMjBweDsKKworICAgIHBhZGRpbmc6IDRweDsKKworICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEwcHg7CisKKyAgICBjb2xvcjogYmxh
Y2s7CisgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKKyAgICB3b3JkLXNwYWNpbmc6IG5vcm1h
bDsKKyAgICBsaW5lLWhlaWdodDogbm9ybWFsOworICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwor
ICAgIHRleHQtaW5kZW50OiAwOworICAgIHRleHQtc2hhZG93OiBub25lOworICAgIHRleHQtZGVj
b3JhdGlvbjogbm9uZTsKKyAgICBmb250LXN0eWxlOiBub3JtYWw7CisgICAgZm9udC13ZWlnaHQ6
IG5vcm1hbDsKKyAgICBmb250LWZhbWlseTogc2VyaWY7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9
CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRp
YS1zbGlkZXI7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtZmxl
eDogMTsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgcGFkZGluZzogMHB4IDJweDsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjog
aW5oZXJpdDsKKyAgICBtYXJnaW46IGluaXRpYWw7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBib3R0b206IDIwcHg7
CisgICAgei1pbmRleDogMTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7
CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyOworICAgIGRpc3Bs
YXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGlu
aXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7CisgICAgbWFyZ2luOiBpbml0aWFsOworfQorCith
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLXNlZWstYmFjay1idXR0b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIGJhY2tncm91bmQtY29s
b3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0Owor
fQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uLCB2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNlZWstZm9yd2FyZC1idXR0b247CisgICAgZGlzcGxh
eTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAg
IGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNv
bG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2Ny
ZWVuLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0
b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtZnVsbHNjcmVlbi1idXR0b247Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAy
MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFs
OworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1yZXdpbmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0
dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7
CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uLCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIHsKKyAgICBk
aXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVy
OiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24geworICAgIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b247CisgICAg
ZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOwor
ICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b247CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjog
aW5oZXJpdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xz
Tml4RnVsbHNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc05peEZ1
bGxzY3JlZW4uY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzM2Q3MDdkY2FlZWZjM2ViZDA1YWNjYTZmMDUwZDM0
NzgzZjlmNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250
cm9sc05peEZ1bGxzY3JlZW4uY3NzCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEz
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyogTml4V2ViS2l0IG1l
ZGlhIGNvbnRyb2xzIGZvciBmdWxsc2NyZWVuLiAqLworCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1i
b3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7Cisg
ICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgYm90dG9tOiAwOworICAgIHdpZHRoOiAxMDAlOworICAgIHotaW5kZXg6IDA7CisgICAgb3Zl
cmZsb3c6IGhpZGRlbjsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7
Cit9CisKK3ZpZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1tdXRlLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtcGxheS1idXR0b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAg
d2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGlu
aXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCit2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIgeworICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY29udHJvbHMtYmFja2dyb3VuZDsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAg
LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7Cisg
ICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwor
ICAgIGhlaWdodDogMjBweDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3Vy
cmVudC10aW1lLWRpc3BsYXkgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY3VycmVu
dC10aW1lLWRpc3BsYXk7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHBhZGRpbmc6IDRweDsK
KyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAxMHB4OworfQorCit2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKKyAgICBk
aXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGlu
ZSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1zbGlkZXI7CisgICAgZGlzcGxheTog
LXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICBoZWlnaHQ6IDIwcHg7
CisgICAgcGFkZGluZzogMHB4IDJweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOwor
ICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKKyAgICBtYXJnaW46IGlu
aXRpYWw7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIt
Y29udGFpbmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXIt
Y29udGFpbmVyOworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEt
dm9sdW1lLXNsaWRlcjsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQor
Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIHsKKyAg
ICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxs
c2NyZWVuLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwor
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiB7
CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MTk3NDE4OGIwMWRmZTYzMmI2ZDVjN2QwNjE4MWVkNDE1N2U0YTdlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4LmNwcApAQCAtMCwwICsx
LDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNu
b2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lz
dGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICog
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRIYW5k
bGVyLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiS2V5
Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQu
aCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK2NvbnN0IGRv
dWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7CisjZW5kaWYKKworYm9vbCBF
dmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1l
bnRWaWV3KCkKK3sKKyAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAg
ICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lKTsKK30K
KworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KGNv
bnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50KQoreworICAgIFJlbmRlck9i
amVjdCogdGFyZ2V0ID0gZXZlbnQudGFyZ2V0Tm9kZSgpID8gZXZlbnQudGFyZ2V0Tm9kZSgpLT5y
ZW5kZXJlcigpIDogMDsKKworICAgIGlmICghdGFyZ2V0IHx8ICF0YXJnZXQtPmlzV2lkZ2V0KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBwYXNzTW91c2VEb3duRXZlbnRU
b1dpZGdldChzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQqPih0YXJnZXQpLT53aWRnZXQoKSk7Cit9
CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChS
ZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCkKK3sKKyAgICByZXR1cm4gcGFzc01vdXNlRG93bkV2
ZW50VG9XaWRnZXQocmVuZGVyV2lkZ2V0LT53aWRnZXQoKSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6ZXZl
bnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQsIFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCh3aWRnZXQpOworICAgIGlmICghd2lk
Z2V0LT5pc0ZyYW1lVmlldygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQpOworfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
K1Bhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJv
YXJkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpOworfQorI2VuZGlmCisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50
VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJm
cmFtZSkKK3sKKyAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJlc3NF
dmVudChtZXYuZXZlbnQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzTW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lLCBIaXRUZXN0UmVzdWx0KiBob3ZlcmVkTm9kZSkK
K3sKKyAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlTW92ZUV2ZW50KG1l
di5ldmVudCgpLCBob3ZlcmVkTm9kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHN1YmZyYW1lLT5l
dmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobWV2LmV2ZW50KCkpOworICAg
IHJldHVybiB0cnVlOworfQorCit1bnNpZ25lZCBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlm
aWVycygpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsKK30KK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0J1c05peC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9CdXNOaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRhZjdlMTg5OTQxZTliNzJiZWMxZDdjN2Q4OGEyNjc4NjI3ZTIzZTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9CdXNOaXgu
Y3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKworI2luY2x1
ZGUgIkF1ZGlvRmlsZVJlYWRlci5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJBdWRpb0J1cy5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxBdWRp
b0J1cz4gZGVjb2RlQXVkaW9GaWxlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSwg
ZG91YmxlIHNhbXBsZVJhdGUpCit7CisgICAgV2ViS2l0OjpXZWJBdWRpb0J1cyB3ZWJBdWRpb0J1
czsKKyAgICBpZiAoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5sb2FkQXVkaW9SZXNvdXJj
ZSgmd2ViQXVkaW9CdXMsIGRhdGEsIHNpemUsIHNhbXBsZVJhdGUpKQorICAgICAgICByZXR1cm4g
d2ViQXVkaW9CdXMuYXVkaW9CdXMoKTsKKyAgICByZXR1cm4gUGFzc1JlZlB0cjxBdWRpb0J1cz4o
KTsKK30KKworUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291
cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAgU3RyaW5nIGFi
c29sdXRlRmlsZW5hbWUobWFrZVN0cmluZyhEQVRBX0RJUiwgIi93ZWJhdWRpby9yZXNvdXJjZXMv
IiwgbmFtZSwgIi53YXYiKSk7CisgICAgY29uc3QgV2ViS2l0OjpXZWJEYXRhJiByZXNvdXJjZSA9
IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+bG9hZFJlc291cmNlKGFic29sdXRlRmlsZW5h
bWUudXRmOCgpLmRhdGEoKSk7CisKKyAgICBpZiAocmVzb3VyY2UuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gUGFzc1JlZlB0cjxBdWRpb0J1cz4oKTsKKworICAgIC8vIEZJWE1FOiB0aGUgc2Ft
cGxlUmF0ZSBwYXJhbWV0ZXIgaXMgaWdub3JlZC4gSXQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0
aGUgQVBJLgorICAgIFJlZlB0cjxBdWRpb0J1cz4gYXVkaW9CdXMgPSBkZWNvZGVBdWRpb0ZpbGVE
YXRhKHJlc291cmNlLmRhdGEoKSwgcmVzb3VyY2Uuc2l6ZSgpLCBzYW1wbGVSYXRlKTsKKworICAg
IGlmICghYXVkaW9CdXMuZ2V0KCkpCisgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPEF1ZGlvQnVz
PigpOworCisgICAgLy8gSWYgdGhlIGJ1cyBpcyBhbHJlYWR5IGF0IHRoZSByZXF1ZXN0ZWQgc2Ft
cGxlLXJhdGUgdGhlbiByZXR1cm4gYXMgaXMuCisgICAgaWYgKGF1ZGlvQnVzLT5zYW1wbGVSYXRl
KCkgPT0gc2FtcGxlUmF0ZSkKKyAgICAgICAgcmV0dXJuIGF1ZGlvQnVzLnJlbGVhc2UoKTsKKwor
ICAgIHJldHVybiBBdWRpb0J1czo6Y3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhhdWRpb0J1
cy5nZXQoKSwgZmFsc2UsIHNhbXBsZVJhdGUpOworfQorCitQYXNzUmVmUHRyPEF1ZGlvQnVzPiBj
cmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRh
dGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICAvLyBGSVhN
RTogdGhlIHNhbXBsZVJhdGUgcGFyYW1ldGVyIGlzIGlnbm9yZWQuIEl0IHNob3VsZCBiZSByZW1v
dmVkIGZyb20gdGhlIEFQSS4KKyAgICBSZWZQdHI8QXVkaW9CdXM+IGF1ZGlvQnVzID0gZGVjb2Rl
QXVkaW9GaWxlRGF0YShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGRhdGFTaXplLCBz
YW1wbGVSYXRlKTsKKyAgICBpZiAoIWF1ZGlvQnVzLmdldCgpKQorICAgICAgICByZXR1cm4gUGFz
c1JlZlB0cjxBdWRpb0J1cz4oKTsKKworICAgIC8vIElmIHRoZSBidXMgbmVlZHMgbm8gY29udmVy
c2lvbiB0aGVuIHJldHVybiBhcyBpcy4KKyAgICBpZiAoKCFtaXhUb01vbm8gfHwgYXVkaW9CdXMt
Pm51bWJlck9mQ2hhbm5lbHMoKSA9PSAxKSAmJiBhdWRpb0J1cy0+c2FtcGxlUmF0ZSgpID09IHNh
bXBsZVJhdGUpCisgICAgICAgIHJldHVybiBhdWRpb0J1cy5yZWxlYXNlKCk7CisKKyAgICByZXR1
cm4gQXVkaW9CdXM6OmNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcoYXVkaW9CdXMuZ2V0KCks
IG1peFRvTW9ubywgc2FtcGxlUmF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9EZXN0aW5hdGlvbk5peC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9EZXN0aW5hdGlvbk5peC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWRlMjE3ZWEwMDY0ZGY5MGI4MWI2N2VjMTMxNjdlMGRjMDM2MzE4NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4
LmNwcApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCisKKyNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uTml4LmgiCisKKyNpbmNs
dWRlICJBdWRpb0ZJRk8uaCIKKyNpbmNsdWRlICJBdWRpb1B1bGxGSUZPLmgiCisjaW5jbHVkZSA8
cHVibGljL1BsYXRmb3JtLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQnVmZmVyIHNp
emUgYXQgd2hpY2ggdGhlIHdlYiBhdWRpbyBlbmdpbmUgd2lsbCByZW5kZXIuCitjb25zdCB1bnNp
Z25lZCByZW5kZXJCdWZmZXJTaXplID0gMTI4OworCisvLyBTaXplIG9mIHRoZSBGSUZPCitjb25z
dCBzaXplX3QgZmlmb1NpemUgPSA4MTkyOworCisvLyBGYWN0b3J5IG1ldGhvZDogQ2hyb21pdW0t
aW1wbGVtZW50YXRpb24KK1Bhc3NPd25QdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5h
dGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgQXVkaW9EZXN0aW5hdGlvbk5peChjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7
Cit9CisKK0F1ZGlvRGVzdGluYXRpb25OaXg6OkF1ZGlvRGVzdGluYXRpb25OaXgoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQorICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAsIG1fbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscyhudW1iZXJPZk91dHB1dENoYW5uZWxzKQorICAgICwgbV9pbnB1dEJ1cyhBdWRpb0J1czo6
Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVscywgcmVuZGVyQnVmZmVyU2l6ZSkpCisgICAgLCBt
X3JlbmRlckJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHJlbmRl
ckJ1ZmZlclNpemUsIGZhbHNlKSkKKyAgICAsIG1fc2FtcGxlUmF0ZShzYW1wbGVSYXRlKQorICAg
ICwgbV9pc1BsYXlpbmcoZmFsc2UpCit7CisgICAgLy8gVXNlIHRoZSBvcHRpbWFsIGJ1ZmZlciBz
aXplIHJlY29tbWVuZGVkIGJ5IHRoZSBhdWRpbyBiYWNrZW5kLgorICAgIG1fY2FsbGJhY2tCdWZm
ZXJTaXplID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5hdWRpb0hhcmR3YXJlQnVmZmVy
U2l6ZSgpOworCisgICAgLy8gUXVpY2sgZXhpdCBpZiB0aGUgcmVxdWVzdGVkIHNpemUgaXMgdG9v
IGxhcmdlLgorICAgIEFTU0VSVChtX2NhbGxiYWNrQnVmZmVyU2l6ZSArIHJlbmRlckJ1ZmZlclNp
emUgPD0gZmlmb1NpemUpOworICAgIGlmIChtX2NhbGxiYWNrQnVmZmVyU2l6ZSArIHJlbmRlckJ1
ZmZlclNpemUgPiBmaWZvU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hdWRpb0Rldmlj
ZSA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlQXVkaW9EZXZp
Y2UobV9jYWxsYmFja0J1ZmZlclNpemUsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSwgdGhpcykpOworICAgIEFTU0VSVChtX2F1ZGlvRGV2
aWNlKTsKKworICAgIC8vIENyZWF0ZSBhIEZJRk8gdG8gaGFuZGxlIHRoZSBwb3NzaWJpbGl0eSBv
ZiB0aGUgY2FsbGJhY2sgc2l6ZQorICAgIC8vIG5vdCBiZWluZyBhIG11bHRpcGxlIG9mIHRoZSBy
ZW5kZXIgc2l6ZS4gSWYgdGhlIEZJRk8gYWxyZWFkeQorICAgIC8vIGNvbnRhaW5zIGVub3VnaCBk
YXRhLCB0aGUgZGF0YSB3aWxsIGJlIHByb3ZpZGVkIGRpcmVjdGx5LgorICAgIC8vIE90aGVyd2lz
ZSwgdGhlIEZJRk8gd2lsbCBjYWxsIHRoZSBwcm92aWRlciBlbm91Z2ggdGltZXMgdG8KKyAgICAv
LyBzYXRpc2Z5IHRoZSByZXF1ZXN0IGZvciBkYXRhLgorICAgIG1fZmlmbyA9IGFkb3B0UHRyKG5l
dyBBdWRpb1B1bGxGSUZPKCp0aGlzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmaWZvU2l6ZSwg
cmVuZGVyQnVmZmVyU2l6ZSkpOworCisgICAgLy8gSW5wdXQgYnVmZmVyaW5nLgorICAgIG1faW5w
dXRGaWZvID0gYWRvcHRQdHIobmV3IEF1ZGlvRklGTyhudW1iZXJPZklucHV0Q2hhbm5lbHMsIGZp
Zm9TaXplKSk7CisKKyAgICAvLyBJZiB0aGUgY2FsbGJhY2sgc2l6ZSBkb2VzIG5vdCBtYXRjaCB0
aGUgcmVuZGVyIHNpemUsIHRoZW4gd2UgbmVlZCB0byBidWZmZXIgc29tZQorICAgIC8vIGV4dHJh
IHNpbGVuY2UgZm9yIHRoZSBpbnB1dC4gT3RoZXJ3aXNlLCB3ZSBjYW4gb3Zlci1jb25zdW1lIHRo
ZSBpbnB1dCBGSUZPLgorICAgIGlmIChtX2NhbGxiYWNrQnVmZmVyU2l6ZSAhPSByZW5kZXJCdWZm
ZXJTaXplKSB7CisgICAgICAgIC8vIEZJWE1FOiBoYW5kbGUgbXVsdGktY2hhbm5lbCBpbnB1dCBh
bmQgZG9uJ3QgaGFyZC1jb2RlIHRvIHN0ZXJlby4KKyAgICAgICAgUmVmUHRyPEF1ZGlvQnVzPiBz
aWxlbmNlID0gQXVkaW9CdXM6OmNyZWF0ZSgyLCByZW5kZXJCdWZmZXJTaXplKTsKKyAgICAgICAg
bV9pbnB1dEZpZm8tPnB1c2goc2lsZW5jZS5nZXQoKSk7CisgICAgfQorfQorCitBdWRpb0Rlc3Rp
bmF0aW9uTml4Ojp+QXVkaW9EZXN0aW5hdGlvbk5peCgpCit7CisgICAgc3RvcCgpOworfQorCit2
b2lkIEF1ZGlvRGVzdGluYXRpb25OaXg6OnN0YXJ0KCkKK3sKKyAgICBpZiAoIW1faXNQbGF5aW5n
ICYmIG1fYXVkaW9EZXZpY2UpIHsKKyAgICAgICAgbV9hdWRpb0RldmljZS0+c3RhcnQoKTsKKyAg
ICAgICAgbV9pc1BsYXlpbmcgPSB0cnVlOworICAgIH0KK30KKwordm9pZCBBdWRpb0Rlc3RpbmF0
aW9uTml4OjpzdG9wKCkKK3sKKyAgICBpZiAobV9pc1BsYXlpbmcgJiYgbV9hdWRpb0RldmljZSkg
eworICAgICAgICBtX2F1ZGlvRGV2aWNlLT5zdG9wKCk7CisgICAgICAgIG1faXNQbGF5aW5nID0g
ZmFsc2U7CisgICAgfQorfQorCitmbG9hdCBBdWRpb0Rlc3RpbmF0aW9uOjpoYXJkd2FyZVNhbXBs
ZVJhdGUoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oV2ViS2l0OjpQbGF0Zm9y
bTo6Y3VycmVudCgpLT5hdWRpb0hhcmR3YXJlU2FtcGxlUmF0ZSgpKTsKK30KKwordW5zaWduZWQg
bG9uZyBBdWRpb0Rlc3RpbmF0aW9uOjptYXhDaGFubmVsQ291bnQoKQoreworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxmbG9hdD4oV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5hdWRpb0hhcmR3
YXJlT3V0cHV0Q2hhbm5lbHMoKSk7Cit9CisKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5peDo6cmVu
ZGVyKGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPGZsb2F0Kj4mIHNvdXJjZURhdGEsIGNvbnN0IFdl
YktpdDo6V2ViVmVjdG9yPGZsb2F0Kj4mIGF1ZGlvRGF0YSwgc2l6ZV90IG51bWJlck9mRnJhbWVz
KQoreworICAgIGJvb2wgaXNOdW1iZXJPZkNoYW5uZWxzR29vZCA9IGF1ZGlvRGF0YS5zaXplKCkg
PT0gbV9udW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgIGlmICghaXNOdW1iZXJPZkNoYW5uZWxz
R29vZCkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGJvb2wgaXNCdWZmZXJTaXplR29vZCA9IG51bWJlck9mRnJhbWVzID09IG1f
Y2FsbGJhY2tCdWZmZXJTaXplOworICAgIGlmICghaXNCdWZmZXJTaXplR29vZCkgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IEJ1ZmZlciBvcHRpb25hbCBsaXZlIGlucHV0LgorICAgIGlmIChzb3VyY2VEYXRhLnNpemUoKSA+
PSAyKSB7CisgICAgICAgIC8vIEZJWE1FOiBoYW5kbGUgbXVsdGktY2hhbm5lbCBpbnB1dCBhbmQg
ZG9uJ3QgaGFyZC1jb2RlIHRvIHN0ZXJlby4KKyAgICAgICAgUmVmUHRyPEF1ZGlvQnVzPiB3cmFw
cGVyQnVzID0gQXVkaW9CdXM6OmNyZWF0ZSgyLCBudW1iZXJPZkZyYW1lcywgZmFsc2UpOworICAg
ICAgICB3cmFwcGVyQnVzLT5zZXRDaGFubmVsTWVtb3J5KDAsIHNvdXJjZURhdGFbMF0sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICAgICAgd3JhcHBlckJ1cy0+c2V0Q2hhbm5lbE1lbW9yeSgxLCBzb3Vy
Y2VEYXRhWzFdLCBudW1iZXJPZkZyYW1lcyk7CisgICAgICAgIG1faW5wdXRGaWZvLT5wdXNoKHdy
YXBwZXJCdXMuZ2V0KCkpOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X251bWJlck9mT3V0cHV0Q2hhbm5lbHM7ICsraSkKKyAgICAgICAgbV9yZW5kZXJCdXMtPnNldENo
YW5uZWxNZW1vcnkoaSwgYXVkaW9EYXRhW2ldLCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICBtX2Zp
Zm8tPmNvbnN1bWUobV9yZW5kZXJCdXMuZ2V0KCksIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9p
ZCBBdWRpb0Rlc3RpbmF0aW9uTml4Ojpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICBSZWZQdHI8QXVkaW9CdXM+IHNvdXJjZUJ1czsKKyAg
ICBpZiAobV9pbnB1dEZpZm8tPmZyYW1lc0luRmlmbygpID49IGZyYW1lc1RvUHJvY2Vzcykgewor
ICAgICAgICBtX2lucHV0Rmlmby0+Y29uc3VtZShtX2lucHV0QnVzLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MpOworICAgICAgICBzb3VyY2VCdXMgPSBtX2lucHV0QnVzOworICAgIH0KKworICAgIG1f
Y2FsbGJhY2sucmVuZGVyKHNvdXJjZUJ1cy5nZXQoKSwgYnVzLCBmcmFtZXNUb1Byb2Nlc3MpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElP
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvRGVz
dGluYXRpb25OaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rl
c3RpbmF0aW9uTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY1NmY1YzA0NzM2YjUzYzgwZDJiM2EyYjc5ZGQ0
N2YzOGE0ZWZlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4LmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
QXVkaW9EZXN0aW5hdGlvbk5peF9oCisjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25OaXhfaAorCisj
aW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisjaW5j
bHVkZSAiQXVkaW9JT0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiQXVkaW9Tb3VyY2VQcm92aWRlci5o
IgorI2luY2x1ZGUgPHB1YmxpYy9XZWJBdWRpb0RldmljZS5oPgorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJWZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb0ZJRk87Citj
bGFzcyBBdWRpb1B1bGxGSUZPOworCisvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENocm9t
aXVtJ3MgYXVkaW8gc3lzdGVtCisKK2NsYXNzIEF1ZGlvRGVzdGluYXRpb25OaXggOiBwdWJsaWMg
QXVkaW9EZXN0aW5hdGlvbiwgcHVibGljIFdlYktpdDo6V2ViQXVkaW9EZXZpY2U6OlJlbmRlckNh
bGxiYWNrLCBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92aWRlciB7CitwdWJsaWM6CisgICAgQXVkaW9E
ZXN0aW5hdGlvbk5peChBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5h
dGlvbk5peCgpOworCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCk7CisgICAgdmlydHVhbCB2b2lk
IHN0b3AoKTsKKyAgICBib29sIGlzUGxheWluZygpIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisK
KyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisK
KyAgICAvLyBXZWJLaXQ6OldlYkF1ZGlvRGV2aWNlOjpSZW5kZXJDYWxsYmFjaworICAgIHZpcnR1
YWwgdm9pZCByZW5kZXIoY29uc3QgV2ViS2l0OjpXZWJWZWN0b3I8ZmxvYXQqPiYgc291cmNlRGF0
YSwgY29uc3QgV2ViS2l0OjpXZWJWZWN0b3I8ZmxvYXQqPiYgYXVkaW9EYXRhLCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMpOworCisgICAgLy8gV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlcgorICAg
IHZpcnR1YWwgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKTsKKworcHJpdmF0ZToKKyAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7CisgICAg
dW5zaWduZWQgbV9udW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgIFJlZlB0cjxBdWRpb0J1cz4g
bV9pbnB1dEJ1czsKKyAgICBSZWZQdHI8QXVkaW9CdXM+IG1fcmVuZGVyQnVzOworICAgIGZsb2F0
IG1fc2FtcGxlUmF0ZTsKKyAgICBib29sIG1faXNQbGF5aW5nOworICAgIE93blB0cjxXZWJLaXQ6
OldlYkF1ZGlvRGV2aWNlPiBtX2F1ZGlvRGV2aWNlOworICAgIHNpemVfdCBtX2NhbGxiYWNrQnVm
ZmVyU2l6ZTsKKworICAgIE93blB0cjxBdWRpb0ZJRk8+IG1faW5wdXRGaWZvOworICAgIE93blB0
cjxBdWRpb1B1bGxGSUZPPiBtX2ZpZm87Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBBdWRpb0Rlc3RpbmF0aW9uTml4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL25peC9GRlRGcmFtZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9uaXgvRkZURnJhbWVOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YzY4NjU5OGY3
ZTJiZjQ1MjViYzZjZGM0OTI2ZWJmN2UxMjk0N2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9uaXgvRkZURnJhbWVOaXguY3BwCkBAIC0wLDAgKzEsMTM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkZGVEZyYW1lLmgiCisKKyNpbmNsdWRlICJWZWN0
b3JNYXRoLmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGlj
L1dlYkZGVEZyYW1lLmg+CisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGRlRGcmFtZTo6RkZU
RnJhbWUodW5zaWduZWQgZmZ0U2l6ZSkKKyAgICA6IG1fRkZUU2l6ZShmZnRTaXplKQorICAgICwg
bV9sb2cyRkZUU2l6ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obG9nMihmZnRTaXplKSkpCit7Cisg
ICAgbV9mZnRGcmFtZSA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3Jl
YXRlRkZURnJhbWUoZmZ0U2l6ZSkpOworfQorCitGRlRGcmFtZTo6RkZURnJhbWUoY29uc3QgRkZU
RnJhbWUmIGZyYW1lKQorICAgIDogbV9GRlRTaXplKGZyYW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1f
bG9nMkZGVFNpemUoZnJhbWUubV9sb2cyRkZUU2l6ZSkKK3sKKyAgICBtX2ZmdEZyYW1lID0gYWRv
cHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVGRlRGcmFtZShmcmFtZS5t
X2ZmdEZyYW1lLmdldCgpKSk7Cit9CisKK0ZGVEZyYW1lOjp+RkZURnJhbWUoKQoreworICAgIG1f
ZmZ0RnJhbWUucmVsZWFzZSgpOworfQorCit2b2lkIEZGVEZyYW1lOjptdWx0aXBseShjb25zdCBG
RlRGcmFtZSYgZnJhbWUpCit7CisgICAgaWYgKCFtX2ZmdEZyYW1lKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2ZmdEZyYW1lLT5tdWx0aXBseSgqZnJhbWUubV9mZnRGcmFtZSk7CisKKyAgICAv
LyBTY2FsZSBhY2NvdW50cyB0aGUgcGVjdWxpYXIgc2NhbGluZyBvZiB2ZWNMaWIgb24gdGhlIE1h
Yy4KKyAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHJpZ2h0IHNjYWxpbmcgYWxsIHRoZSB3YXkgYmFj
ayB0byBpbnZlcnNlIEZGVC4KKyAgICAvLyBGSVhNRTogaWYgd2UgY2hhbmdlIHRoZSBzY2FsaW5n
IG9uIHRoZSBNYWMgdGhlbiB0aGlzIHNjYWxlCisgICAgLy8gZmFjdG9yIHdpbGwgbmVlZCB0byBj
aGFuZ2UgdG9vLgorICAgIHNjYWxlUGxhbmFyRGF0YSgwLjVmKTsKK30KKworLy8gUHJvdmlkZXMg
dGltZSBkb21haW4gc2FtcGxlcyBpbiBhcmd1bWVudCAiZGF0YSIuIEZyYW1lIHdpbGwgc3RvcmUg
dGhlIHRyYW5zZm9ybWVkIGRhdGEuCit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9hdCog
ZGF0YSkKK3sKKyAgICBpZiAoIW1fZmZ0RnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
ZmZ0RnJhbWUtPmRvRkZUKGRhdGEpOworCisgICAgc2NhbGVQbGFuYXJEYXRhKDIuMGYpOworfQor
CisvLyBDYWxjdWxhdGVzIGludmVyc2UgdHJhbnNmb3JtIGZyb20gdGhlIHN0b3JlZCBkYXRhLCBw
dXR0aW5nIHRoZSByZXN1bHRzIGluIGFyZ3VtZW50ICdkYXRhJy4KK3ZvaWQgRkZURnJhbWU6OmRv
SW52ZXJzZUZGVChmbG9hdCogZGF0YSkKK3sKKyAgICBpZiAoIW1fZmZ0RnJhbWUpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZmZ0RnJhbWUtPmRvSW52ZXJzZUZGVChkYXRhKTsKKworICAgIC8v
IFNjYWxlIHNvIHRoYXQgYSBmb3J3YXJkIHRoZW4gaW52ZXJzZSBGRlQgeWllbGRzIGV4YWN0bHkg
dGhlIG9yaWdpbmFsIGRhdGEuCisgICAgY29uc3QgZmxvYXQgc2NhbGUgPSAxLjAgLyAoMiAqIG1f
RkZUU2l6ZSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fRkZUU2l6ZTsgKytpKQor
ICAgICAgICBkYXRhW2ldID0gc2NhbGUgKiBkYXRhW2ldOworfQorCit2b2lkIEZGVEZyYW1lOjpp
bml0aWFsaXplKCkKK3sKK30KKwordm9pZCBGRlRGcmFtZTo6Y2xlYW51cCgpCit7Cit9CisKK3Zv
aWQgRkZURnJhbWU6OnNjYWxlUGxhbmFyRGF0YShmbG9hdCBzY2FsZSkKK3sKKyAgICBmbG9hdCog
cmVhbFAgPSBtX2ZmdEZyYW1lLT5yZWFsRGF0YSgpOworICAgIGZsb2F0KiBpbWFnUCA9IG1fZmZ0
RnJhbWUtPmltYWdEYXRhKCk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBmcmFtZXNUb1Byb2Nlc3Mg
PSBtX2ZmdEZyYW1lLT5mcmVxdWVuY3lEb21haW5TYW1wbGVDb3VudCgpOworCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lc1RvUHJvY2VzczsgKytpKSB7CisgICAgICAgIHJlYWxQ
W2ldICo9IHNjYWxlOworICAgICAgICBpbWFnUFtpXSAqPSBzY2FsZTsKKyAgICB9Cit9CisKK2Zs
b2F0KiBGRlRGcmFtZTo6cmVhbERhdGEoKSBjb25zdAoreworICAgIGlmICghbV9mZnRGcmFtZSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+KG1fZmZ0
RnJhbWUtPnJlYWxEYXRhKCkpOworfQorCitmbG9hdCogRkZURnJhbWU6OmltYWdEYXRhKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1fZmZ0RnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX2ZmdEZyYW1lLT5pbWFnRGF0YSgpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9t
Q3VycmVudEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYjZlZjFiNjUyZDcyNDY5NmJm
ZmQ2NWMzNTA1NDJlYWNiZWQzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwCkBAIC0wLDAg
KzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaCIKKworI2luY2x1ZGUgIk9w
ZW5HTFNoaW1zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxHTENvbnRl
eHRGcm9tQ3VycmVudEVHTD4gR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OmNyZWF0ZUZyb21DdXJy
ZW50R0xDb250ZXh0KCkKK3sKKyAgICBpZiAoIWluaXRpYWxpemUoKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHTENvbnRleHRGcm9tQ3VycmVudEVH
TCgpKTsKK30KKworR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OkdMQ29udGV4dEZyb21DdXJyZW50
RUdMKCkKKyAgICA6IG1fZGlzcGxheShlZ2xHZXRDdXJyZW50RGlzcGxheSgpKQorICAgICwgbV9z
dXJmYWNlKGVnbEdldEN1cnJlbnRTdXJmYWNlKEVHTF9EUkFXKSkKKyAgICAsIG1fY29udGV4dChl
Z2xHZXRDdXJyZW50Q29udGV4dCgpKQoreworfQorCitib29sIEdMQ29udGV4dEZyb21DdXJyZW50
RUdMOjptYWtlQ29udGV4dEN1cnJlbnQoKQoreworICAgIEdMQ29udGV4dDo6bWFrZUNvbnRleHRD
dXJyZW50KCk7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZGlzcGxheSwgbV9zdXJmYWNl
LCBtX3N1cmZhY2UsIG1fY29udGV4dCk7Cit9CisKK2Jvb2wgR0xDb250ZXh0RnJvbUN1cnJlbnRF
R0w6OmluaXRpYWxpemUoKQoreworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7
CisgICAgc3RhdGljIGJvb2wgc3VjY2VzcyA9IHRydWU7CisgICAgaWYgKCFpbml0aWFsaXplZCkg
eworICAgICAgICBzdWNjZXNzID0gaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCk7CisgICAgICAgIGlu
aXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTVlZmM5Zjg0MzI0OThiZjU0NTFlYjE1NzA2YjZkYTcxNTJjMDdiYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3Vy
cmVudEVHTC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
MyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEdMQ29udGV4dEZyb21DdXJyZW50RUdMX2gKKyNkZWZpbmUgR0xDb250ZXh0RnJv
bUN1cnJlbnRFR0xfaAorCisjaW5jbHVkZSAiR0xDb250ZXh0LmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dEZyb21DdXJyZW50
RUdMIDogcHVibGljIEdMQ29udGV4dCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xDb250
ZXh0RnJvbUN1cnJlbnRFR0wpOworcHVibGljOgorICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZv
ciBPZmZzY3JlZW4gYnVmZmVycy4KKyAgICBzdGF0aWMgUGFzc093blB0cjxHTENvbnRleHRGcm9t
Q3VycmVudEVHTD4gY3JlYXRlRnJvbUN1cnJlbnRHTENvbnRleHQoKTsKKworICAgIHZpcnR1YWwg
Ym9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKworICAgIC8vIFRoZXNlIGFyZSBub3QgdXNlZCBi
eSBOaXguCisgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCkgeyB9CisgICAgdmlydHVhbCBJ
bnRTaXplIGRlZmF1bHRGcmFtZUJ1ZmZlclNpemUoKSB7IHJldHVybiBJbnRTaXplKCk7IH0KKyAg
ICB2aXJ0dWFsIGNhaXJvX2RldmljZV90KiBjYWlyb0RldmljZSgpIHsgcmV0dXJuIDA7IH0KKwor
ICAgIC8vIFRPRE86IFRoaXMgaXMgbm90IHVzZWQgaW4gR0xDb250ZXh0IGludGVyZmFjZSwgaXQn
cyB1c2VkIGJ5CisgICAgLy8gR0xDb250ZXh0R0xYIG9ubHkgYXMgYW4gaW1wbGVtZW50YXRpb24g
ZGV0YWlsLgorICAgIHZpcnR1YWwgYm9vbCBjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcigp
IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAvLyBUT0RPOiBVc2VkIG9ubHkgYXMgYSBrZXkgaW4g
SGFzaE1hcHMsIHNlZSBpZiB3ZSBjYW4gY2hhbmdlIFdlYktpdCBjb2RlIHRvIG5vdAorICAgIC8v
IHJlbHkgb24gdGhpcyBhbnltb3JlIChhdCBsZWFzdCBpbiBvdXIgcGxhdGZvcm0pLgorICAgIHZp
cnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSB7IHJldHVy
biB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIHdhaXROYXRpdmUoKSB7IHJldHVybjsgfQorCitw
cml2YXRlOgorICAgIHN0YXRpYyBib29sIGluaXRpYWxpemUoKTsKKworICAgIEdMQ29udGV4dEZy
b21DdXJyZW50RUdMKCk7CisKKyAgICBFR0xEaXNwbGF5IG1fZGlzcGxheTsKKyAgICBFR0xTdXJm
YWNlIG1fc3VyZmFjZTsKKyAgICBFR0xDb250ZXh0IG1fY29udGV4dDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdMQ29udGV4dEZyb21DdXJyZW50RUdMX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0
Zm9ybVZpZGVvV2luZG93Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDlkYTJm
OTBkNmI2MDM3MTQzMzBmMzk2ZjQxNWIwODY3M2QwNjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlkZW9XaW5k
b3dOaXguY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgU2Ft
c3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtVmlkZW9XaW5kb3cuaCIKKworI2lmIFVTRShHU1RSRUFNRVIpICYmICFkZWZp
bmVkKEdTVF9BUElfVkVSU0lPTl8xKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1BsYXRmb3JtVmlkZW9XaW5kb3c6OlBsYXRmb3Jt
VmlkZW9XaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1BsYXRmb3JtVmlk
ZW9XaW5kb3c6On5QbGF0Zm9ybVZpZGVvV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFBsYXRmb3JtVmlkZW9XaW5kb3c6OnByZXBhcmVGb3JPdmVybGF5KEdzdE1l
c3NhZ2UqKQoreworfQorCisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikgJiYgIWRlZmluZWQoR1NU
X0FQSV9WRVJTSU9OXzEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaXgvSWNvbk5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aXgvSWNvbk5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQzZjhkMzJlNGQzMGI0NGRjMDM2MTc4OTU0OWMz
YmE3MmI5YTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25peC9JY29uTml4LmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSWNvbi5oIgor
CisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkKK3sKK30KKwor
UGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3Zv
aWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUwYjI0YmU1MzYwMmExOGZh
NDgyYjFhZDYzNzM4YzQ4MzkwNWYwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9G
VVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSW1hZ2UuaCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRtYXBJbWFn
ZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyRmFsbGJhY2soKQoreworICAgIHJl
dHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOyAvLyBUT0RPOiBmYWxsYmFjayBpbWFnZT8KK30K
Kworc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBsb2FkUmVzb3VyY2VTaGFyZWRCdWZm
ZXIoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIg
PSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShtYWtlU3RyaW5nKERBVEFf
RElSICIvd2Via2l0LTEuMC9pbWFnZXMvIiwgbmFtZSwgIi5wbmciKSk7CisgICAgaWYgKGJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGxvYWRSZXNv
dXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IEltYWdl
Ojpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIFJlZlB0cjxC
aXRtYXBJbWFnZT4gaW1nID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGJ1ZmZlciA9IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihuYW1lKTsKKyAgICBp
bWctPnNldERhdGEoYnVmZmVyLnJlbGVhc2UoKSwgdHJ1ZSk7CisgICAgcmV0dXJuIGltZy5yZWxl
YXNlKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9D
dXJzb3JOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTc3ZWYwY2NlM2JlOTdmZWFhZDQ4ZjY3ODcwNTU2ZGI4YTExNTJjNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9DdXJzb3JOaXguY3Bw
CkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IERpcmsgTXVlbGxl
ciA8bXVlbGxlckBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEdlb3JnZSBTdGFpa29z
IDxzdGFpa29zQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQ2hhcmxlcyBTYW11ZWxz
IDxjaGFybGVzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3Rl
bXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1cnNvcjo6Q3Vyc29yKGNvbnN0IEN1cnNvciYg
b3RoZXIpCisgICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQorICAgICwgbV9pbWFnZShvdGhlci5t
X2ltYWdlKQorICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKKyAgICAsIG1fcGxhdGZv
cm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNvcikKK3sKK30KKworQ3Vyc29yOjp+Q3Vyc29y
KCkKK3sKK30KKworQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90aGVy
KQoreworICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKKyAgICBtX2ltYWdlID0gb3RoZXIubV9p
bWFnZTsKKyAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7CisgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7CisgICAgcmV0dXJuICp0aGlzOworfQorCitz
dGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nKEN1cnNvcjo6VHlwZSB0eXBlKQoreworICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmdzW10gPSB7CisgICAgICAgICJjdXJzb3Iv
cG9pbnRlciIsCisgICAgICAgICJjdXJzb3IvY3Jvc3MiLAorICAgICAgICAiY3Vyc29yL2hhbmQi
LAorICAgICAgICAiY3Vyc29yL2lfYmVhbSIsCisgICAgICAgICJjdXJzb3Ivd2FpdCIsCisgICAg
ICAgICJjdXJzb3IvaGVscCIsCisgICAgICAgICJjdXJzb3IvZWFzdF9yZXNpemUiLAorICAgICAg
ICAiY3Vyc29yL25vcnRoX3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfZWFzdF9yZXNp
emUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNv
ci9zb3V0aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL3NvdXRoX2Vhc3RfcmVzaXplIiwKKyAg
ICAgICAgImN1cnNvci9zb3V0aF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivd2VzdF9y
ZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX3NvdXRoX3Jlc2l6ZSIsCisgICAgICAgICJj
dXJzb3IvZWFzdF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfZWFzdF9zb3V0
aF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfd2VzdF9zb3V0aF9lYXN0X3Jl
c2l6ZSIsCisgICAgICAgICJjdXJzb3IvY29sdW1uX3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Iv
cm93X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3IvbWlkZGxlX3Bhbm5pbmciLAorICAgICAgICAi
Y3Vyc29yL2Vhc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfcGFubmluZyIsCisg
ICAgICAgICJjdXJzb3Ivbm9ydGhfZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9ub3J0
aF93ZXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL3NvdXRoX3Bhbm5pbmciLAorICAgICAg
ICAiY3Vyc29yL3NvdXRoX2Vhc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivc291dGhfd2Vz
dF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci93ZXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vy
c29yL21vdmUiLAorICAgICAgICAiY3Vyc29yL3ZlcnRpY2FsX3RleHQiLAorICAgICAgICAiY3Vy
c29yL2NlbGwiLAorICAgICAgICAiY3Vyc29yL2NvbnRleHRfbWVudSIsCisgICAgICAgICJjdXJz
b3IvYWxpYXMiLAorICAgICAgICAiY3Vyc29yL3Byb2dyZXNzIiwKKyAgICAgICAgImN1cnNvci9u
b19kcm9wIiwKKyAgICAgICAgImN1cnNvci9jb3B5IiwKKyAgICAgICAgImN1cnNvci9ub25lIiwK
KyAgICAgICAgImN1cnNvci9ub3RfYWxsb3dlZCIsCisgICAgICAgICJjdXJzb3Ivem9vbV9pbiIs
CisgICAgICAgICJjdXJzb3Ivem9vbV9vdXQiLAorICAgICAgICAiY3Vyc29yL2dyYWIiLAorICAg
ICAgICAiY3Vyc29yL2dyYWJiaW5nIiwKKyAgICAgICAgIiJ9OyAvLyBGSVhNRTogSnVzdCByZXR1
cm4gIiIgZm9yIGN1c3RvbSB0eXBlLiBXZSBkb24ndCBzdXBwb3J0IGl0IG5vdy4KKyAgICByZXR1
cm4gY3Vyc29yU3RyaW5nc1t0eXBlXTsKK30KKwordm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3Jt
Q3Vyc29yKCkgY29uc3QKK3sKKyAgICBpZiAobV9wbGF0Zm9ybUN1cnNvcikKKyAgICAgICAgcmV0
dXJuOworICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3JTdHJpbmcobV90eXBlKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWZmYjY5ODZhZmE0ZjIxZWIwMjc1NzdiNmYxYWMxNjQ5NzE1Yzc3NQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHAKQEAgLTAs
MCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEcmFnRGF0YS5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9v
bCBEcmFnRGF0YTo6Y2FuU21hcnRSZXBsYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29sb3IoKSBjb25zdAoreworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVz
KFZlY3RvcjxTdHJpbmc+JikgY29uc3QKK3sKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNQ
bGFpblRleHQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIERyYWdE
YXRhOjphc1BsYWluVGV4dChGcmFtZSopIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitDb2xvciBEcmFnRGF0YTo6YXNDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENvbG9y
KCk7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNVUkwo
RnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJz
aW9uUG9saWN5LCBTdHJpbmcqKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnRGF0YTo6YXNGcmFnbWVudChGcmFtZSos
IFBhc3NSZWZQdHI8UmFuZ2U+LCBib29sLCBib29sJikgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJbWFn
ZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0ltYWdlTml4LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZGFjODYxMmMxM2JmNTlmNWU1NDM5MTZkMTI4N2ZlZmNmOGJmMDVjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJbWFnZU5peC5j
cHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNhY2hl
ZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1h
Z2VSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50U2l6ZSgwLCAw
KTsKK30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK0RyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIEZsb2F0U2l6ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihE
cmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KEltYWdlKiwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJ
Y29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9FcnJvcnNOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0Vycm9y
c05peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc3MDRhZDMxODkyNjc0NWY0M2Q4NmVmYjExMzQzNTE2YzZk
OTYzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9FcnJv
cnNOaXguY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVycm9yc05peC5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBy
aW50Q29udGV4dC5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCks
ICJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIik7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVk
UG9ydCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmlj
dGVkIG5ldHdvcmsgcG9ydCIpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCwgcmVxdWVz
dC51cmwoKS5zdHJpbmcoKSwgIlVSTCBjYW5ub3QgYmUgc2hvd24iKTsKK30KKworUmVzb3VyY2VF
cnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGlj
eSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0
LnVybCgpLnN0cmluZygpLCAiRnJhbWUgbG9hZCB3YXMgaW50ZXJydXB0ZWQiKTsKK30KKworUmVz
b3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGlj
eSwgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUsIHJlc3BvbnNlLnVybCgpLnN0cmluZygp
LCAiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5vdCBiZSBzaG93biIp
OworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRv
bWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgp
LnN0cmluZygpLCAiRmlsZSBkb2VzIG5vdCBleGlzdCIpOworfQorCitSZXNvdXJjZUVycm9yIHBs
dWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QbHVnaW4sIFBsdWdpbkVy
cm9yV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCAiUGx1Z2luIHdpbGwg
aGFuZGxlIGxvYWQiKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihj
b25zdCBSZXNvdXJjZUVycm9yJiBuZXR3b3JrRXJyb3IpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvck5ldHdvcmssIG5ldHdvcmtF
cnJvci5mYWlsaW5nVVJMKCksIG5ldHdvcmtFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsK
K30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIsIHJlc3BvbnNl
LnVybCgpLnN0cmluZygpLCAiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIik7Cit9CisKK1Jl
c291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yRGVzdGluYXRp
b24sIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBlcnJvck1lc3NhZ2UpOworfQorCitSZXNvdXJj
ZUVycm9yIHByaW50RXJyb3IoY29uc3QgUHJpbnRDb250ZXh0KiBwcmludENvbnRleHQsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciA9IHByaW50Q29udGV4dC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7
CisKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9y
R2VuZXJhbCwgZG9jdW1lbnRMb2FkZXIgPyBkb2N1bWVudExvYWRlci0+dXJsKCkgOiBLVVJMKCks
IGVycm9yTWVzc2FnZSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3Io
Y29uc3QgUHJpbnRDb250ZXh0KiBwcmludENvbnRleHQpCit7CisgICAgRG9jdW1lbnRMb2FkZXIq
IGRvY3VtZW50TG9hZGVyID0gcHJpbnRDb250ZXh0LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1l
bnRMb2FkZXIoKTsKKworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQs
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQsIGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2Fk
ZXItPnVybCgpIDogS1VSTCgpLCAiUHJpbnRlciBub3QgZm91bmQiKTsKK30KKworUmVzb3VyY2VF
cnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBQcmludENvbnRleHQqIHByaW50Q29u
dGV4dCkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBwcmludENvbnRl
eHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOworCisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2Us
IGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgpIDogS1VSTCgpLCAiSW52YWxp
ZCBwYWdlIHJhbmdlIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9FcnJvcnNOaXguaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9FcnJvcnNOaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDE5ODBhMzYwYWM1YTgxY2Rl
YzM4ZWNhZDI0YzRlNDdhZjg5OWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbml4L0Vycm9yc05peC5oCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFcnJvcnNOaXhfaAorI2RlZmluZSBFcnJvcnNO
aXhfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUHJpbnRDb250ZXh0OworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNz
IFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CisKK3N0YXRpYyBjb25z
dCBjaGFyIGVycm9yRG9tYWluTmV0d29ya1tdID0gIldlYktpdE5ldHdvcmtFcnJvciI7CitzdGF0
aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblBvbGljeVtdID0gIldlYktpdFBvbGljeUVycm9yIjsK
K3N0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUGx1Z2luW10gPSAiV2ViS2l0UGx1Z2luRXJy
b3IiOworc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Eb3dubG9hZFtdID0gIldlYktpdERv
d25sb2FkRXJyb3IiOworc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5QcmludFtdID0gIldl
YktpdFByaW50RXJyb3IiOworCitlbnVtIE5ldHdvcmtFcnJvciB7CisgICAgTmV0d29ya0Vycm9y
RmFpbGVkID0gMzk5LAorICAgIE5ldHdvcmtFcnJvclRyYW5zcG9ydCA9IDMwMCwKKyAgICBOZXR3
b3JrRXJyb3JVbmtub3duUHJvdG9jb2wgPSAzMDEsCisgICAgTmV0d29ya0Vycm9yQ2FuY2VsbGVk
ID0gMzAyLAorICAgIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QgPSAzMDMKK307CisKKy8v
IFN5bmMnZCB3aXRoIE1hYydzIFdlYktpdCBFcnJvcnMgYXQ6CisvLyBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYktpdEVycm9yc1tQcml2YXRlXS5oCitlbnVtIFBvbGljeUVycm9yIHsKKyAgICBQ
b2xpY3lFcnJvckZhaWxlZCA9IDE5OSwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlw
ZSA9IDEwMCwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwgPSAxMDEsCisgICAgUG9saWN5
RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlID0gMTAyLAorICAgIFBvbGlj
eUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAxMDMKK307CisKK2VudW0gUGx1Z2luRXJy
b3IgeworICAgIFBsdWdpbkVycm9yRmFpbGVkID0gMjk5LAorICAgIFBsdWdpbkVycm9yQ2Fubm90
RmluZFBsdWdpbiA9IDIwMCwKKyAgICBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4gPSAyMDEs
CisgICAgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGUgPSAyMDIsCisgICAgUGx1Z2luRXJyb3JD
b25uZWN0aW9uQ2FuY2VsbGVkID0gMjAzLAorICAgIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQg
PSAyMDQKK307CisKK2VudW0gRG93bmxvYWRFcnJvciB7CisgICAgRG93bmxvYWRFcnJvck5ldHdv
cmsgPSA0OTksCisgICAgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciA9IDQwMCwKKyAgICBE
b3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEKK307CisKK2VudW0gUHJpbnRFcnJvciB7Cisg
ICAgUHJpbnRFcnJvckdlbmVyYWwgPSA1OTksCisgICAgUHJpbnRFcnJvclByaW50ZXJOb3RGb3Vu
ZCA9IDUwMCwKKyAgICBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSA9IDUwMQorfTsKKworUmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1Jlc291
cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitSZXNvdXJj
ZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7CitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKK1Jlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKTsKK1Jlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0
d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRD
YW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVy
cm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0
IFByaW50Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKK1Jlc291cmNlRXJy
b3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3QgUHJpbnRDb250ZXh0Kik7CitSZXNvdXJjZUVy
cm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFByaW50Q29udGV4dCopOworCit9CisK
KyNlbmRpZiAvLyBFcnJvcnNOaXhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbml4L0ZpbGVTeXN0ZW1OaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0Zp
bGVTeXN0ZW1OaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYTM3YTI3MGZlMjFlOTgzMWM0YWFjNTQ0ODE0
NTEwMjA0ZDg5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvRmlsZVN5c3RlbU5peC5jcHAKQEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBDb2xsYWJvcmEsIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKKyNpbmNsdWRlICJGaWxlTWV0YWRhdGEu
aCIKKyNpbmNsdWRlICJVVUlELmgiCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPGds
aWIuaD4KKyNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dP
d25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR2xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisvKiBPbiBsaW51eCBmaWxlIG5hbWVzIGFyZSBqdXN0IHJhdyBieXRlcywgc28gYWxzbyBzdHJp
bmdzIHRoYXQgY2Fubm90IGJlIGVuY29kZWQgaW4gYW55IHdheQorICogYXJlIHZhbGlkIGZpbGUg
bmFtZXMuIFRoaXMgbWVhbiB0aGF0IHdlIGNhbm5vdCBqdXN0IHN0b3JlIGEgZmlsZSBuYW1lIGFz
LWlzIGluIGEgU3RyaW5nCisgKiBidXQgd2UgaGF2ZSB0byBlc2NhcGUgaXQuCisgKiBPbiBXaW5k
b3dzIHRoZSBHTGliIGZpbGUgbmFtZSBlbmNvZGluZyBpcyBhbHdheXMgVVRGLTggc28gd2UgY2Fu
IG9wdGltaXplIHRoaXMgY2FzZS4gKi8KK1N0cmluZyBmaWxlbmFtZVRvU3RyaW5nKGNvbnN0IGNo
YXIqIGZpbGVuYW1lKQoreworICAgIGlmICghZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKworICAgIEdPd25QdHI8Z2NoYXI+IGVzY2FwZWRTdHJpbmcoZ191cmlfZXNjYXBlX3N0
cmluZyhmaWxlbmFtZSwgIi86IiwgZmFsc2UpKTsKKyAgICByZXR1cm4gZXNjYXBlZFN0cmluZy5n
ZXQoKTsKK30KKworQ1N0cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5n
JiBwYXRoKQoreworICAgIEdPd25QdHI8Z2NoYXI+IGZpbGVuYW1lKGdfdXJpX3VuZXNjYXBlX3N0
cmluZyhwYXRoLnV0ZjgoKS5kYXRhKCksIDApKTsKKyAgICByZXR1cm4gZmlsZW5hbWUuZ2V0KCk7
Cit9CisKKy8vIENvbnZlcnRzIGEgc3RyaW5nIHRvIHNvbWV0aGluZyBzdWl0YWJsZSB0byBiZSBk
aXNwbGF5ZWQgdG8gdGhlIHVzZXIuCitTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQoreworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24oc3RyaW5nKTsKKyAgICBHT3duUHRyPGdjaGFyPiBkaXNwbGF5KGdfZmlsZW5hbWVf
dG9fdXRmOChmaWxlbmFtZS5kYXRhKCksIDAsIDAsIDAsIDApKTsKKyAgICBpZiAoIWRpc3BsYXkp
CisgICAgICAgIHJldHVybiBzdHJpbmc7CisKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChk
aXNwbGF5LmdldCgpKTsKK30KKworYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkK
K3sKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisKKyAgICBpZiAoIWZpbGVuYW1lLmlzTnVsbCgp
KQorICAgICAgICByZXN1bHQgPSBnX2ZpbGVfdGVzdChmaWxlbmFtZS5kYXRhKCksIEdfRklMRV9U
RVNUX0VYSVNUUyk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGRlbGV0ZUZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgQ1N0
cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKworICAgIGlm
ICghZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJlc3VsdCA9ICFnX3JlbW92ZShmaWxlbmFt
ZS5kYXRhKCkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBkZWxldGVFbXB0eURp
cmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
KyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwor
CisgICAgaWYgKCFmaWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gIWdfcm1kaXIo
ZmlsZW5hbWUuZGF0YSgpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgZ2V0Rmls
ZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdFNpemUpCit7CisgICAg
Q1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBp
ZiAoZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdTdGF0
QnVmIHN0YXRSZXN1bHQ7CisgICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgp
LCAmc3RhdFJlc3VsdCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmVzdWx0U2l6ZSA9IHN0YXRSZXN1bHQuc3Rfc2l6ZTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRp
bWVfdCYgbW9kaWZpZWRUaW1lKQoreworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OworICAgIGdpbnQgcmVz
dWx0ID0gZ19zdGF0KGZpbGVuYW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQpOworICAgIGlmIChyZXN1
bHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1vZGlmaWVkVGltZSA9IHN0YXRSZXN1
bHQuc3RfbXRpbWU7CisgICAgcmV0dXJuIHRydWU7CisKK30KKworYm9vbCBnZXRGaWxlTWV0YWRh
dGEoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhKQoreworICAgIENT
dHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYg
KGZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdHJ1Y3Qg
c3RhdCBzdGF0UmVzdWx0OworICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVuYW1lLmRhdGEo
KSwgJnN0YXRSZXN1bHQpOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWUgPSBzdGF0UmVzdWx0LnN0X210aW1lOwor
ICAgIG1ldGFkYXRhLmxlbmd0aCA9IHN0YXRSZXN1bHQuc3Rfc2l6ZTsKKyAgICBtZXRhZGF0YS50
eXBlID0gU19JU0RJUihzdGF0UmVzdWx0LnN0X21vZGUpID8gRmlsZU1ldGFkYXRhOjpUeXBlRGly
ZWN0b3J5IDogRmlsZU1ldGFkYXRhOjpUeXBlRmlsZTsKKyAgICByZXR1cm4gdHJ1ZTsKKworfQor
CitTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiBjb21wb25lbnQpCit7CisgICAgaWYgKHBhdGguZW5kc1dpdGgoR19ESVJfU0VQ
QVJBVE9SX1MpKQorICAgICAgICByZXR1cm4gcGF0aCArIGNvbXBvbmVudDsKKyAgICByZXR1cm4g
cGF0aCArIEdfRElSX1NFUEFSQVRPUl9TICsgY29tcG9uZW50OworfQorCitib29sIG1ha2VBbGxE
aXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGdpbnQgcmVzdWx0ID0gZ19ta2Rpcl93
aXRoX3BhcmVudHMoZmlsZW5hbWUuZGF0YSgpLCBTX0lSV1hVKTsKKworICAgIHJldHVybiAhcmVz
dWx0OworfQorCitTdHJpbmcgaG9tZURpcmVjdG9yeVBhdGgoKQoreworICAgIHJldHVybiBmaWxl
bmFtZVRvU3RyaW5nKGdfZ2V0X2hvbWVfZGlyKCkpOworfQorCitTdHJpbmcgcGF0aEdldEZpbGVO
YW1lKGNvbnN0IFN0cmluZyYgcGF0aE5hbWUpCit7CisgICAgaWYgKHBhdGhOYW1lLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIHBhdGhOYW1lOworCisgICAgQ1N0cmluZyB0bXBGaWxlbmFtZSA9
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoTmFtZSk7CisgICAgR093blB0cjxnY2hhcj4g
YmFzZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh0bXBGaWxlbmFtZS5kYXRhKCkpKTsKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChiYXNlTmFtZS5nZXQoKSk7Cit9CisKK0NTdHJpbmcgYXBw
bGljYXRpb25EaXJlY3RvcnlQYXRoKCkKK3sKKyAgICBDU3RyaW5nIHBhdGggPSBnZXRDdXJyZW50
RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIXBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBwYXRoOworCisgICAgLy8gSWYgdGhlIGFib3ZlIGZhaWxzLCBjaGVjayB0aGUgUEFUSCBlbnYg
dmFyaWFibGUuCisgICAgR093blB0cjxjaGFyPiBjdXJyZW50RXhlUGF0aChnX2ZpbmRfcHJvZ3Jh
bV9pbl9wYXRoKGdfZ2V0X3ByZ25hbWUoKSkpOworICAgIGlmICghY3VycmVudEV4ZVBhdGguZ2V0
KCkpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisKKyAgICBHT3duUHRyPGNoYXI+IGRpcm5h
bWUoZ19wYXRoX2dldF9kaXJuYW1lKGN1cnJlbnRFeGVQYXRoLmdldCgpKSk7CisgICAgcmV0dXJu
IGRpcm5hbWUuZ2V0KCk7Cit9CisKK0NTdHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCit7Cisg
ICAgc3RhdGljIENTdHJpbmcgY2FjaGVkUGF0aDsKKyAgICBpZiAoIWNhY2hlZFBhdGguaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiBjYWNoZWRQYXRoOworCisgICAgR093blB0cjxnY2hhcj4gZGF0
YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdG5peCIsIE5VTEwpKTsKKwor
ICAgIGNhY2hlZFBhdGggPSBkYXRhUGF0aC5nZXQoKTsKKyAgICByZXR1cm4gY2FjaGVkUGF0aDsK
K30KKwordWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgp
Cit7CisgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9w
YXRoKHBhdGgpKTsKKyAgICBHUmVmUHRyPEdGaWxlSW5mbz4gZmlsZUluZm8gPSBhZG9wdEdSZWYo
Z19maWxlX3F1ZXJ5X2ZpbGVzeXN0ZW1faW5mbyhmaWxlLmdldCgpLCBHX0ZJTEVfQVRUUklCVVRF
X0ZJTEVTWVNURU1fRlJFRSwgMCwgMCkpOworICAgIGlmICghZmlsZUluZm8pCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIGdfZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfdWludDY0KGZp
bGVJbmZvLmdldCgpLCBHX0ZJTEVfQVRUUklCVVRFX0ZJTEVTWVNURU1fRlJFRSk7Cit9CisKK1N0
cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICAvKiBObyBudWxs
IGNoZWNraW5nIG5lZWRlZCAqLworICAgIEdPd25QdHI8Y2hhcj4gZGlybmFtZShnX3BhdGhfZ2V0
X2Rpcm5hbWUoZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSkpOworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KGRpcm5hbWUuZ2V0KCkpOworfQorCitWZWN0b3I8U3RyaW5n
PiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIp
Cit7CisgICAgVmVjdG9yPFN0cmluZz4gZW50cmllczsKKworICAgIENTdHJpbmcgZmlsZW5hbWUg
PSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgR0RpciogZGlyID0gZ19kaXJf
b3BlbihmaWxlbmFtZS5kYXRhKCksIDAsIDApOworICAgIGlmICghZGlyKQorICAgICAgICByZXR1
cm4gZW50cmllczsKKworICAgIEdQYXR0ZXJuU3BlYyogcHNwZWMgPSBnX3BhdHRlcm5fc3BlY19u
ZXcoKGZpbHRlci51dGY4KCkpLmRhdGEoKSk7CisgICAgd2hpbGUgKGNvbnN0IGNoYXIqIG5hbWUg
PSBnX2Rpcl9yZWFkX25hbWUoZGlyKSkgeworICAgICAgICBpZiAoIWdfcGF0dGVybl9tYXRjaF9z
dHJpbmcocHNwZWMsIG5hbWUpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgR093
blB0cjxnY2hhcj4gZW50cnkoZ19idWlsZF9maWxlbmFtZShmaWxlbmFtZS5kYXRhKCksIG5hbWUs
IE5VTEwpKTsKKyAgICAgICAgZW50cmllcy5hcHBlbmQoZmlsZW5hbWVUb1N0cmluZyhlbnRyeS5n
ZXQoKSkpOworICAgIH0KKyAgICBnX3BhdHRlcm5fc3BlY19mcmVlKHBzcGVjKTsKKyAgICBnX2Rp
cl9jbG9zZShkaXIpOworCisgICAgcmV0dXJuIGVudHJpZXM7Cit9CisKK1N0cmluZyBvcGVuVGVt
cG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5k
bGUpCit7CisgICAgR093blB0cjxnY2hhcj4gZmlsZW5hbWUoZ19zdHJkdXBfcHJpbnRmKCIlcyVz
IiwgcHJlZml4LnV0ZjgoKS5kYXRhKCksIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgR093blB0cjxnY2hhcj4gdGVtcFBhdGgoZ19idWlsZF9maWxlbmFt
ZShnX2dldF90bXBfZGlyKCksIGZpbGVuYW1lLmdldCgpLCBOVUxMKSk7CisgICAgR1JlZlB0cjxH
RmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKHRlbXBQYXRoLmdldCgp
KSk7CisKKyAgICBoYW5kbGUgPSBnX2ZpbGVfY3JlYXRlX3JlYWR3cml0ZShmaWxlLmdldCgpLCBH
X0ZJTEVfQ1JFQVRFX05PTkUsIDAsIDApOworICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUp
KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
dGVtcFBhdGguZ2V0KCkpOworfQorCitQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkKK3sKKyAgICBDU3RyaW5nIGZzUmVwID0g
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmc1JlcC5pc051bGwoKSkK
KyAgICAgICAgcmV0dXJuIGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisKKyAgICBHUmVmUHRy
PEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgoZnNSZXAuZGF0YSgp
KSk7CisgICAgR0ZpbGVJT1N0cmVhbSogaW9TdHJlYW0gPSAwOworICAgIGlmIChtb2RlID09IE9w
ZW5Gb3JSZWFkKQorICAgICAgICBpb1N0cmVhbSA9IGdfZmlsZV9vcGVuX3JlYWR3cml0ZShmaWxl
LmdldCgpLCAwLCAwKTsKKyAgICBlbHNlIGlmIChtb2RlID09IE9wZW5Gb3JXcml0ZSkgeworICAg
ICAgICBpZiAoZ19maWxlX3Rlc3QoZnNSZXAuZGF0YSgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+
KEdfRklMRV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKSkKKyAgICAgICAg
ICAgIGlvU3RyZWFtID0gZ19maWxlX29wZW5fcmVhZHdyaXRlKGZpbGUuZ2V0KCksIDAsIDApOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpb1N0cmVhbSA9IGdfZmlsZV9jcmVhdGVfcmVhZHdy
aXRlKGZpbGUuZ2V0KCksIEdfRklMRV9DUkVBVEVfTk9ORSwgMCwgMCk7CisgICAgfQorCisgICAg
cmV0dXJuIGlvU3RyZWFtOworfQorCit2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUm
IGhhbmRsZSkKK3sKKyAgICBpZiAoIWlzSGFuZGxlVmFsaWQoaGFuZGxlKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZ19pb19zdHJlYW1fY2xvc2UoR19JT19TVFJFQU0oaGFuZGxlKSwgMCwgMCk7
CisgICAgZ19vYmplY3RfdW5yZWYoaGFuZGxlKTsKKyAgICBoYW5kbGUgPSBpbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlOworfQorCitsb25nIGxvbmcgc2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxl
IGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwgRmlsZVNlZWtPcmlnaW4gb3JpZ2luKQoreworICAg
IEdTZWVrVHlwZSBzZWVrVHlwZSA9IEdfU0VFS19TRVQ7CisgICAgc3dpdGNoIChvcmlnaW4pIHsK
KyAgICBjYXNlIFNlZWtGcm9tQmVnaW5uaW5nOgorICAgICAgICBzZWVrVHlwZSA9IEdfU0VFS19T
RVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vla0Zyb21DdXJyZW50OgorICAgICAgICBz
ZWVrVHlwZSA9IEdfU0VFS19DVVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vla0Zyb21F
bmQ6CisgICAgICAgIHNlZWtUeXBlID0gR19TRUVLX0VORDsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgaWYg
KCFnX3NlZWthYmxlX3NlZWsoR19TRUVLQUJMRShnX2lvX3N0cmVhbV9nZXRfaW5wdXRfc3RyZWFt
KEdfSU9fU1RSRUFNKGhhbmRsZSkpKSwgb2Zmc2V0LCBzZWVrVHlwZSwgMCwgMCkpCisgICAgICAg
IHJldHVybiAtMTsKKyAgICByZXR1cm4gZ19zZWVrYWJsZV90ZWxsKEdfU0VFS0FCTEUoZ19pb19z
dHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lPX1NUUkVBTShoYW5kbGUpKSkpOworfQorCitpbnQg
d3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCkKK3sKKyAgICBnc2l6ZSBieXRlc1dyaXR0ZW47CisgICAgZ19vdXRwdXRfc3Ry
ZWFtX3dyaXRlX2FsbChnX2lvX3N0cmVhbV9nZXRfb3V0cHV0X3N0cmVhbShHX0lPX1NUUkVBTSho
YW5kbGUpKSwgZGF0YSwgbGVuZ3RoLCAmYnl0ZXNXcml0dGVuLCAwLCAwKTsKKyAgICByZXR1cm4g
Ynl0ZXNXcml0dGVuOworfQorCitpbnQgcmVhZEZyb21GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCit7CisgICAgR093blB0cjxHRXJyb3I+IGVy
cm9yOworICAgIGRvIHsKKyAgICAgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5wdXRfc3RyZWFt
X3JlYWQoZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lPX1NUUkVBTShoYW5kbGUpKSwg
ZGF0YSwgbGVuZ3RoLCAwLCAmZXJyb3Iub3V0UHRyKCkpOworICAgICAgICBpZiAoYnl0ZXNSZWFk
ID49IDApCisgICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOworICAgIH0gd2hpbGUgKGVycm9y
ICYmIGVycm9yLT5jb2RlID09IEdfRklMRV9FUlJPUl9JTlRSKTsKKyAgICByZXR1cm4gLTE7Cit9
CisKK2Jvb2wgdW5sb2FkTW9kdWxlKFBsYXRmb3JtTW9kdWxlIG1vZHVsZSkKK3sKKyAgICByZXR1
cm4gZ19tb2R1bGVfY2xvc2UobW9kdWxlKTsKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9HYW1lcGFkc05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvR2FtZXBhZHNOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxYTI4MzllYjJkNjMzYWM0ZWUzMzkw
NmYxMmUwNGYxN2NkOGFiNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvR2FtZXBhZHNOaXguY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHYW1lcGFkcy5oIgorCisjaWYgRU5BQkxF
KEdBTUVQQUQpCisKKyNpbmNsdWRlICJHYW1lcGFkTGlzdC5oIgorCisjaW5jbHVkZSA8cHVibGlj
L1BsYXRmb3JtLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2FtZXBhZExpc3Q7
CisKK3ZvaWQgc2FtcGxlR2FtZXBhZHMoR2FtZXBhZExpc3QqIGludG8pCit7CisgICAgV2ViS2l0
OjpXZWJHYW1lcGFkcyBnYW1lcGFkczsKKworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+c2FtcGxlR2FtZXBhZHMoZ2FtZXBhZHMpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IFdlYktpdDo6V2ViR2FtZXBhZHM6Oml0ZW1zTGVuZ3RoQ2FwOyArK2kpIHsKKyAgICAgICAg
V2ViS2l0OjpXZWJHYW1lcGFkJiB3ZWJHYW1lcGFkID0gZ2FtZXBhZHMuaXRlbXNbaV07CisgICAg
ICAgIGlmIChpIDwgZ2FtZXBhZHMubGVuZ3RoICYmIHdlYkdhbWVwYWQuY29ubmVjdGVkKSB7Cisg
ICAgICAgICAgICBSZWZQdHI8R2FtZXBhZD4gZ2FtZXBhZCA9IGludG8tPml0ZW0oaSk7CisgICAg
ICAgICAgICBpZiAoIWdhbWVwYWQpCisgICAgICAgICAgICAgICAgZ2FtZXBhZCA9IEdhbWVwYWQ6
OmNyZWF0ZSgpOworICAgICAgICAgICAgZ2FtZXBhZC0+aWQod2ViR2FtZXBhZC5pZCk7CisgICAg
ICAgICAgICBnYW1lcGFkLT5pbmRleChpKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPnRpbWVzdGFt
cCh3ZWJHYW1lcGFkLnRpbWVzdGFtcCk7CisgICAgICAgICAgICBnYW1lcGFkLT5heGVzKHdlYkdh
bWVwYWQuYXhlc0xlbmd0aCwgd2ViR2FtZXBhZC5heGVzKTsKKyAgICAgICAgICAgIGdhbWVwYWQt
PmJ1dHRvbnMod2ViR2FtZXBhZC5idXR0b25zTGVuZ3RoLCB3ZWJHYW1lcGFkLmJ1dHRvbnMpOwor
ICAgICAgICAgICAgaW50by0+c2V0KGksIGdhbWVwYWQpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIGludG8tPnNldChpLCAwKTsKKyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTcwN2Mx
ZjZiZjJmMzVlOWU2ZDdlYmZjY2M2MjYxYjg3YmYxNWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1
dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVT
SU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDxsb2NhbGUuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKK3sKKyAgICBjaGFy
KiBsb2NhbGVEZWZhdWx0ID0gc2V0bG9jYWxlKExDX0NUWVBFLCAwKTsKKworICAgIGlmICghbG9j
YWxlRGVmYXVsdCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygiYyIpOworCisgICAgU3RyaW5nIGxv
Y2FsZSA9IFN0cmluZyhsb2NhbGVEZWZhdWx0KTsKKyAgICBsb2NhbGUucmVwbGFjZSgnXycsICct
Jyk7CisgICAgc2l6ZV90IHBvc2l0aW9uID0gbG9jYWxlLmZpbmQoJy4nKTsKKyAgICBpZiAocG9z
aXRpb24gIT0gbm90Rm91bmQpCisgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5sZWZ0KHBvc2l0aW9u
KTsKKworICAgIHJldHVybiBsb2NhbGU7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlczsKKyAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChwbGF0Zm9ybUxh
bmd1YWdlKCkpOworICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05p
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjgxMDExMTk3MjVkZGM0NTc3ZmU3N2Q0NDdhYjA3ZWY3MGVjOTgxOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRT
dHJpbmdzTml4LmNwcApAQCAtMCwwICsxLDYxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KKyAqIENvcHlyaWdodCAo
QykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4
IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCBJbnN0aXR1dG8g
Tm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9O
IGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
U3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoIlN1Ym1pdCIpOworfQorCitTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlN1Ym1pdCIpOworfQorCitTdHJpbmcgcmVz
ZXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJS
ZXNldCIpOworfQorCitTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkRldGFpbHMiKTsKK30KKworU3RyaW5nIHNlYXJjaGFi
bGVJbmRleEludHJvZHVjdGlvbigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlRo
aXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIpOworfQor
CitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIkNob29zZSBGaWxlIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uQ2hvb3Nl
TXVsdGlwbGVGaWxlc0xhYmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ2hv
b3NlIEZpbGVzIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgp
Cit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk5vIGZpbGUgc2VsZWN0ZWQiKTsKK30K
KworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIk5vIGZpbGVzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoIkRvd25sb2FkIExpbmtlZCBGaWxlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiQ29weSBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
Ik9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRG93bmxvYWRWaWRlb1RvRGlzaygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
IkRvd25sb2FkIFZpZGVvIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9h
ZEF1ZGlvVG9EaXNrKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiRG93bmxvYWQg
QXVkaW8iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2soKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJTYXZlIEltYWdlIEFzIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgSW1hZ2UiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgiQ29weSBJbWFnZSBBZGRyZXNzIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KCJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgVmlkZW8gTGluayBMb2NhdGlvbiIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgiUGxheSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
YXVzZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlBhdXNlIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KCJNdXRlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gRnJh
bWUgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weSgp
Cit7CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xhYmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiQ29w
eSIpOworICAgIHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRGVsZXRlKCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwgPSBTdHJpbmc6OmZy
b21VVEY4KCJEZWxldGUiKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpCit7CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xh
YmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiU2VsZWN0IEFsbCIpOworICAgIHJldHVybiBzdG9ja0xh
YmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoIkluc2VydCBVbmljb2RlIENvbnRyb2wgQ2hhcmFjdGVyIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJJbnB1dCBNZXRob2RzIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQoreworICAgIHN0YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9
IFN0cmluZzo6ZnJvbVVURjgoIkdvIEJhY2siKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpCit7CisgICAgc3RhdGljIFN0
cmluZyBzdG9ja0xhYmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiR28gRm9yd2FyZCIpOworICAgIHJl
dHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCit7
CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xhYmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiU3RvcCIp
OworICAgIHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUmVsb2FkIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQoreworICAgIHN0YXRpYyBTdHJpbmcgc3Rv
Y2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgoIkN1dCIpOworICAgIHJldHVybiBzdG9ja0xhYmVs
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQoreworICAgIHN0YXRpYyBT
dHJpbmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgoIlBhc3RlIik7CisgICAgcmV0dXJu
IHN0b2NrTGFiZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3Vu
ZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk5vIEd1ZXNzZXMgRm91bmQiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiSWdub3JlIFNwZWxsaW5nIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOCgiTGVhcm4gU3BlbGxpbmciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlNlYXJjaCB0aGUg
V2ViIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnko
Y29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTG9vayBVcCBp
biBEaWN0aW9uYXJ5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygp
Cit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gTGluayIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIklnbm9yZSBHcmFtbWFyIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTcGVsbGluZ01lbnUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJTcGVs
bGluZyBhbmQgR3JhbW1hciIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1Nw
ZWxsaW5nUGFuZWwoYm9vbCBzaG93KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHNo
b3cgPyAiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1hciIgOiAiSGlkZSBTcGVsbGluZyBhbmQgR3Jh
bW1hciIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNoZWNrIERvY3VtZW50IE5vdyIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgX1R5cGlu
ZyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxs
aW5nKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ2hlY2sgR3JhbW1hciBXaXRo
IFNwZWxsaW5nIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkZvbnQiKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0JvbGQoKQoreworICAgIHN0YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9IFN0
cmluZzo6ZnJvbVVURjgoIkJvbGQiKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCit7CisgICAgc3RhdGljIFN0cmluZyBzdG9j
a0xhYmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiSXRhbGljIik7CisgICAgcmV0dXJuIHN0b2NrTGFi
ZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQoreworICAgIHN0
YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgoIlVuZGVybGluZSIpOwor
ICAgIHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0
bGluZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk91dGxpbmUiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgiSW5zcGVjdCBFbGVtZW50Iik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQoreworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUZXh0RGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTm8gcmVjZW50IHNlYXJjaGVzIik7Cit9CisK
K1N0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOCgiUmVjZW50IHNlYXJjaGVzIik7Cit9CisKK1N0cmluZyBzZWFyY2hNZW51
Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KCJDbGVhciByZWNlbnQgc2VhcmNoZXMiKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RU
ZXJtVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInRlcm0iKTsKK30KKwor
U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoImRlZmluaXRpb24iKTsKK30KKworU3RyaW5nIEFYRm9vdGVyUm9sZURl
c2NyaXB0aW9uVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoImZvb3RlciIp
OworfQorCitTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgicHJlc3MiKTsKK30KKworU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJi
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgic2VsZWN0Iik7Cit9CisKK1N0cmlu
ZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KCJhY3RpdmF0ZSIpOworfQorCitTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidW5jaGVjayIpOworfQorCitTdHJpbmcg
QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJjaGVjayIpOworfQorCitTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoImp1bXAiKTsKK30KKworU3RyaW5nIHVua25vd25GaWxl
U2l6ZVRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJVbmtub3duIik7Cit9
CisKK1N0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFNpemUmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZs
b2F0IHRpbWUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisjZW5kaWYKKworU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQorewor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJMb2FkaW5nLi4uIik7Cit9CisKK1N0cmluZyBt
ZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgiTGl2ZSBCcm9hZGNhc3QiKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
InBhdHRlcm4gbWlzbWF0Y2giKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VP
dmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OCgicmFuZ2Ugb3ZlcmZsb3ciKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VV
bmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoInJhbmdlIHVuZGVyZmxvdyIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVw
TWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoInN0ZXAgbWlzbWF0Y2giKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoInRvbyBsb25nIik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ0eXBlIG1pc21hdGNo
Iik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInR5cGUgbWlzbWF0Y2giKTsKK30K
KworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRl
eHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ0eXBlIG1pc21hdGNoIik7Cit9
CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKQorewor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ0eXBlIG1pc21hdGNoIik7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KCJ2YWx1ZSBtaXNzaW5nIik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9y
TXVsdGlwbGVGaWxlVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Cit9
CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpOworfQorCitTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJtaXNzaW5nIHBsdWdpbiIpOworfQorCitTdHJpbmcg
QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZGaWxl
cykKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobnVtYmVyT2ZGaWxlcykgKyBTdHJpbmc6
OmZyb21VVEY4KCIgZmlsZXMiKTsKK30KKworU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgicGx1Z2luIGNyYXNoZWQiKTsKK30KKworU3Ry
aW5nIGJsb2NrZWRQbHVnaW5CeUNvbnRlbnRTZWN1cml0eVBvbGljeVRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgaW5zZWN1
cmVQbHVnaW5WZXJzaW9uVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBpbmFjdGl2ZVBsdWdpblRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdW5hY2Nl
cHRhYmxlVExTQ2VydGlmaWNhdGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJV
bmFjY2VwdGFibGUgVExTIGNlcnRpZmljYXRlIik7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRTdHJp
bmcoY29uc3QgY2hhcioga2V5KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwg
c3RybGVuKGtleSkpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VCYWRJbnB1dEZvck51
bWJlclRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJpbmcgc25hcHNob3R0ZWRQbHVn
SW5MYWJlbFRpdGxlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBzbmFwc2hvdHRlZFBs
dWdJbkxhYmVsU3VidGl0bGUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTUlNRVR5cGVSZWdpc3RyeU5peC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTUlNRVR5cGVSZWdpc3RyeU5peC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzNhNTg2ODhjNWFkZjU2OGU5MzkwM2IxMzdmNzVkYmFlN2MzMjQ0ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9NSU1FVHlwZVJlZ2lzdHJ5Tml4
LmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVz
aW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBUb3JjaCBNb2JpbGUgSW5jLiAgaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgor
CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFeHRlbnNpb25NYXAgeworICAgIGNv
bnN0IGNoYXIqIGV4dGVuc2lvbjsKKyAgICBjb25zdCBjaGFyKiBtaW1lVHlwZTsKK307CisKK3N0
YXRpYyBjb25zdCBFeHRlbnNpb25NYXAgZXh0ZW5zaW9uTWFwW10gPSB7CisgICAgeyAiYm1wIiwg
ImltYWdlL2JtcCIgfSwKKyAgICB7ICJjc3MiLCAidGV4dC9jc3MiIH0sCisgICAgeyAiZ2lmIiwg
ImltYWdlL2dpZiIgfSwKKyAgICB7ICJodG1sIiwgInRleHQvaHRtbCIgfSwKKyAgICB7ICJodG0i
LCAidGV4dC9odG1sIiB9LAorICAgIHsgImljbyIsICJpbWFnZS94LWljb24iIH0sCisgICAgeyAi
anBlZyIsICJpbWFnZS9qcGVnIiB9LAorICAgIHsgImpwZyIsICJpbWFnZS9qcGVnIiB9LAorICAg
IHsgImpzIiwgImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgfSwKKyAgICB7ICJtbmciLCAidmlk
ZW8veC1tbmciIH0sCisgICAgeyAicGJtIiwgImltYWdlL3gtcG9ydGFibGUtYml0bWFwIiB9LAor
ICAgIHsgInBnbSIsICJpbWFnZS94LXBvcnRhYmxlLWdyYXltYXAiIH0sCisgICAgeyAicGRmIiwg
ImFwcGxpY2F0aW9uL3BkZiIgfSwKKyAgICB7ICJwbmciLCAiaW1hZ2UvcG5nIiB9LAorICAgIHsg
InBwbSIsICJpbWFnZS94LXBvcnRhYmxlLXBpeG1hcCIgfSwKKyAgICB7ICJyc3MiLCAiYXBwbGlj
YXRpb24vcnNzK3htbCIgfSwKKyAgICB7ICJzdmciLCAiaW1hZ2Uvc3ZnK3htbCIgfSwKKyAgICB7
ICJ0ZXh0IiwgInRleHQvcGxhaW4iIH0sCisgICAgeyAidGlmIiwgImltYWdlL3RpZmYiIH0sCisg
ICAgeyAidGlmZiIsICJpbWFnZS90aWZmIiB9LAorICAgIHsgInR4dCIsICJ0ZXh0L3BsYWluIiB9
LAorICAgIHsgInhibSIsICJpbWFnZS94LXhiaXRtYXAiIH0sCisgICAgeyAieG1sIiwgInRleHQv
eG1sIiB9LAorICAgIHsgInhwbSIsICJpbWFnZS94LXhwbSIgfSwKKyAgICB7ICJ4c2wiLCAidGV4
dC94c2wiIH0sCisgICAgeyAieGh0bWwiLCAiYXBwbGljYXRpb24veGh0bWwreG1sIiB9LAorICAg
IHsgIndtbCIsICJ0ZXh0L3ZuZC53YXAud21sIiB9LAorICAgIHsgIndtbGMiLCAiYXBwbGljYXRp
b24vdm5kLndhcC53bWxjIiB9LAorICAgIHsgMCwgMCB9Cit9OworCitTdHJpbmcgTUlNRVR5cGVS
ZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nICZleHQpCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIFN0cmluZyBzID0gZXh0Lmxvd2VyKCk7
CisgICAgY29uc3QgRXh0ZW5zaW9uTWFwICplID0gZXh0ZW5zaW9uTWFwOworICAgIHdoaWxlIChl
LT5leHRlbnNpb24pIHsKKyAgICAgICAgaWYgKHMgPT0gZS0+ZXh0ZW5zaW9uKQorICAgICAgICAg
ICAgcmV0dXJuIGUtPm1pbWVUeXBlOworICAgICAgICArK2U7CisgICAgfQorCisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVn
aW5NSU1FVHlwZShjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGll
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWUyNTE0YzZiZDNiNTdhYmU1YmRjMzY4YTdmMmMyODE0OGZjNDM4
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOaXhLZXli
b2FyZFV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUg
IldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiBLZXlNYXA7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IFdpbmRvd3NLZXlNYXA7
Cit0eXBlZGVmIEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj4gS2V5Q29tbWFuZE1hcDsKKworc3Rh
dGljIEtleU1hcCYga2V5TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEtleU1hcCwg
a2V5TWFwLCAoKSk7CisgICAgcmV0dXJuIGtleU1hcDsKK30KKworc3RhdGljIFdpbmRvd3NLZXlN
YXAmIHdpbmRvd3NLZXlNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoV2luZG93c0tl
eU1hcCwgd2luZG93c0tleU1hcCwgKCkpOworICAgIHJldHVybiB3aW5kb3dzS2V5TWFwOworfQor
CitzdGF0aWMgS2V5Q29tbWFuZE1hcCYga2V5RG93bkNvbW1hbmRzTWFwKCkKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEtleUNvbW1hbmRNYXAsIGtleURvd25Db21tYW5kc01hcCwgKCkpOwor
ICAgIHJldHVybiBrZXlEb3duQ29tbWFuZHNNYXA7Cit9CisKK3N0YXRpYyBLZXlDb21tYW5kTWFw
JiBrZXlQcmVzc0NvbW1hbmRzTWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEtleUNv
bW1hbmRNYXAsIGtleVByZXNzQ29tbWFuZHNNYXAsICgpKTsKKyAgICByZXR1cm4ga2V5UHJlc3ND
b21tYW5kc01hcDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFkZENoYXJhY3RlcnNUb0tleU1h
cChjb25zdCBjaGFyIGZyb20sIGNvbnN0IGNoYXIgdG8pCit7CisgICAgZm9yIChjaGFyIGMgPSBm
cm9tOyBjIDw9IHRvOyBjKyspCisgICAgICAgIGtleU1hcCgpLnNldChTdHJpbmcoJmMsIDEpLCBT
dHJpbmc6OmZvcm1hdCgiVSslMDRYIiwgYykpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWRk
Q2hhcmFjdGVyc1RvV2luS2V5TWFwKGNvbnN0IGNoYXIgZnJvbSwgY29uc3QgY2hhciB0bywgY29u
c3QgaW50IGJhc2VDb2RlKQoreworICAgIGludCBpID0gMDsKKyAgICBmb3IgKGNoYXIgYyA9IGZy
b207IGMgPD0gdG87IGMrKywgaSsrKQorICAgICAgICB3aW5kb3dzS2V5TWFwKCkuc2V0KFN0cmlu
ZygmYywgMSksIGJhc2VDb2RlICsgaSk7Cit9CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJs
S2V5ID0gMSA8PCAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFsdEtleSA9IDEgPDwgMTsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsKKworc3RydWN0IEtleURvd25F
bnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1bnNpZ25lZCBtb2RpZmllcnM7
CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBLZXlQcmVzc0VudHJ5IHsKKyAg
ICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2RpZmllcnM7CisgICAgY29uc3Qg
Y2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3duRW50cnkga2V5RG93bkVudHJp
ZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZUxlZnQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAg
U2hpZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdv
cmRMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQs
ICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAgICAgICAgICAgICAgICAiTW92
ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJ
R0hULCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtleSwgICAgICAgICAgICAi
TW92ZVdvcmRSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVj
dGlvbiIgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgMCwgICAgICAgICAgICAgICAg
ICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX1VQLCAgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVVwQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAg
ICAgICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZURvd24iICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RPV04sICAgU2hpZnRLZXksICAg
ICAgICAgICAiTW92ZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VEb3duQW5kTW9k
aWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9SLCAgMCwgICAgICAg
ICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX05FWFQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VEb3duIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgMCwgICAg
ICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRvQmVnaW5u
aW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3Ry
bEtleSwgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCIgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVRvQmVn
aW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKworICAgIHsgVktfRU5ELCAg
ICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmUiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3Zl
VG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICB9LAorICAgIHsgVktfRU5E
LCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50IiAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJN
b3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICB9LAorCisgICAgeyBW
S19CQUNLLCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIFNoaWZ0S2V5LCAgICAgICAg
ICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19ERUxFVEUsIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUZvcndhcmQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIEN0cmxLZXksICAgICAg
ICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19ERUxFVEUsIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRGb3J3YXJkIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICB7ICdCJywgICAgICAgQ3RybEtleSwg
ICAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdJJywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAiVG9nZ2xlSXRhbGljIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgIHsgVktfRVNDQVBFLCAwLCAg
ICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfT0VNX1BFUklPRCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICAw
LCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRC
YWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJO
LCAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBDdHJsS2V5LCAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVU
VVJOLCBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXkgfCBTaGlmdEtleSwgICJJ
bnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3Rh
dGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVzW10gPSB7CisgICAgeyAnXHQn
LCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyAnXHQnLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2Vy
dEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAg
IDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5l
d2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFs
dEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xp
bmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgdm9pZCBj
cmVhdGVLZXlEb3duQ29tbWFuZE1hcCgpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBX
VEZfQVJSQVlfTEVOR1RIKGtleURvd25FbnRyaWVzKTsgKytpKQorICAgICAgICBrZXlEb3duQ29t
bWFuZHNNYXAoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5RG93
bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJpZXNbaV0ubmFtZSk7Cit9CisKK3N0
YXRpYyB2b2lkIGNyZWF0ZUtleVByZXNzQ29tbWFuZE1hcCgpCit7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleVByZXNzRW50cmllcyk7ICsraSkKKyAgICAg
ICAga2V5UHJlc3NDb21tYW5kc01hcCgpLnNldChrZXlQcmVzc0VudHJpZXNbaV0ubW9kaWZpZXJz
IDw8IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0VudHJpZXNbaV0u
bmFtZSk7Cit9CisKK2NvbnN0IGNoYXIqIGdldEtleURvd25Db21tYW5kTmFtZShjb25zdCBLZXli
b2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlm
IChldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAg
IGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBBbHRLZXk7CisgICAg
aWYgKGV2ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworCisg
ICAgaW50IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LT5rZXlDb2RlKCk7CisgICAg
aWYgKCFtYXBLZXkpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGtleURvd25Db21tYW5k
c01hcCgpLmlzRW1wdHkoKSkKKyAgICAgICAgY3JlYXRlS2V5RG93bkNvbW1hbmRNYXAoKTsKKwor
ICAgIHJldHVybiBrZXlEb3duQ29tbWFuZHNNYXAoKS5nZXQobWFwS2V5KTsKK30KKworY29uc3Qg
Y2hhciogZ2V0S2V5UHJlc3NDb21tYW5kTmFtZShjb25zdCBLZXlib2FyZEV2ZW50KiBldmVudCkK
K3sKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC0+c2hpZnRLZXko
KSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgIGlmIChldmVudC0+YWx0S2V5
KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5
KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworCisgICAgaW50IG1hcEtleSA9IG1v
ZGlmaWVycyA8PCAxNiB8IGV2ZW50LT5jaGFyQ29kZSgpOworICAgIGlmICghbWFwS2V5KQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIGlmIChrZXlQcmVzc0NvbW1hbmRzTWFwKCkuaXNFbXB0eSgp
KQorICAgICAgICBjcmVhdGVLZXlQcmVzc0NvbW1hbmRNYXAoKTsKKworICAgIHJldHVybiBrZXlQ
cmVzc0NvbW1hbmRzTWFwKCkuZ2V0KG1hcEtleSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0
aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0
aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzI1NjEwYzdlOWRlMGZjMmU4MmQ4NDQ0ODUzYmMzZTc3YmY4ZGVi
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgTml4S2V5Ym9hcmRVdGlsaXRpZXNfaAorI2RlZmluZSBO
aXhLZXlib2FyZFV0aWxpdGllc19oCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOwor
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtleWJvYXJkRXZlbnQ7CisKK2NvbnN0
IGNoYXIqIGdldEtleURvd25Db21tYW5kTmFtZShjb25zdCBLZXlib2FyZEV2ZW50Kik7Citjb25z
dCBjaGFyKiBnZXRLZXlQcmVzc0NvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTml4S2V5Ym9hcmRVdGlsaXRpZXNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmROaXgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmROaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY4M2NkZjc0ZTY3YWJjMmZhODFlMDlhZjYwNjcyMjZlZDg1OWFmZGYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAK
QEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5z
IFBldGVyIEZyZXl0aGVyCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEg
ZGUgVGVjbm9sb2dpYQorICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJv
bmljcworICogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJEb2N1
bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVib2Fy
ZCogUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKQoreworICAgIHN0YXRpYyBQYXN0ZWJv
YXJkKiBwYXN0ZWJvYXJkID0gbmV3IFBhc3RlYm9hcmQoKTsKKyAgICByZXR1cm4gcGFzdGVib2Fy
ZDsKK30KKworUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmLCBT
bWFydFJlcGxhY2VPcHRpb24pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJvb2wsIEZyYW1lKiwgU2hvdWxkU2Vy
aWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYsIEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlSW1hZ2UoTm9kZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVDbGlwYm9hcmQo
Q2xpcGJvYXJkKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9h
cmQ6OmNsZWFyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFBhc3RlYm9h
cmQ6OmNhblNtYXJ0UmVwbGFjZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6
ZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+LCBib29sLCBib29sJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitTdHJpbmcgUGFz
dGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJk
OjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFz
dGVib2FyZCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
UHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCisj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpOworfQorI2VuZGlmCisKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJpbmcmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFBhc3Rl
Ym9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0xpc3RIYXNoU2V0PFN0
cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVi
b2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCit2b2lk
IFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2VuZGlmCisKK3ZvaWQgUGFzdGVib2FyZDo6
d3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0
Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQwZWY2YzM0MGM5ODAzYWZl
YWZhZmYwMTc3YTY3MjNhMzFhYThmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGllZ28gSGlkYWxnbyBDLiBHb256
YWxlegorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3Rl
bXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5
Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJU
ZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sKQoreworICAgIEFT
U0VSVChtX3R5cGUgPT0gS2V5RG93bik7CisgICAgbV90eXBlID0gdHlwZTsKKworICAgIGlmICh0
eXBlID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICAgICAgbV90ZXh0ID0gU3Ry
aW5nKCk7CisgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBtX2tleUlkZW50aWZpZXIgPSBTdHJpbmcoKTsKKyAgICAgICAgbV93aW5kb3dz
VmlydHVhbEtleUNvZGUgPSAwOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJl
bnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRL
ZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBzaGlmdEtl
eSA9IGZhbHNlOworICAgIGN0cmxLZXkgPSBmYWxzZTsKKyAgICBhbHRLZXkgPSBmYWxzZTsKKyAg
ICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiZmIzYWMzZWQyMTQzMGFk
MWVhYTJlYmU0MGI5NmY4ZjRhNTEwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TY3JlZW4uaCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2ludCBzY3JlZW5Ib3Jpem9udGFsRFBJKFdpZGdldCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlblZlcnRpY2Fs
RFBJKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBzY3JlZW5J
c01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0KikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwgMTAyNCwgNzY4KTsKK30K
KworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gc2NyZWVuUmVjdCh3aWRnZXQpOworfQorCit2
b2lkIHNjcmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9S
ZW5kZXJUaGVtZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUmVuZGVyVGhl
bWVOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMzIzMDk2MDdlN2U0MzQ5MTY0ODRmYWU0Y2JiZGQ0NjI3
YjYxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUmVu
ZGVyVGhlbWVOaXguY3BwCkBAIC0wLDAgKzEsNDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lTml4Lmgi
CisKKyNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIlBhaW50SW5mby5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJvLmgiCisjaW5jbHVkZSAicHVibGljL1BsYXRm
b3JtLmgiCisjaW5jbHVkZSAicHVibGljL1dlYkNhbnZhcy5oIgorI2luY2x1ZGUgInB1YmxpYy9X
ZWJSZWN0LmgiCisjaW5jbHVkZSAicHVibGljL1dlYlRoZW1lRW5naW5lLmgiCisjaWYgRU5BQkxF
KFBST0dSRVNTX0VMRU1FTlQpCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNlbmRpZgor
I2lmIEVOQUJMRShNRVRFUl9FTEVNRU5UKQorI2luY2x1ZGUgIkhUTUxNZXRlckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJSZW5kZXJNZXRlci5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRCdXR0b25CYWNrZ3JvdW5kQ29sb3IgPSAw
eGZmZGRkZGRkOworCitzdGF0aWMgdm9pZCBzZXRTaXplSWZBdXRvKFJlbmRlclN0eWxlKiBzdHls
ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAoc3R5bGUtPndpZHRoKCkuaXNJbnRy
aW5zaWNPckF1dG8oKSkKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzaXplLndpZHRo
KCksIEZpeGVkKSk7CisgICAgaWYgKHN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAg
c3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2l6ZS5oZWlnaHQoKSwgRml4ZWQpKTsKK30KKworQ29s
b3IgdG9Db2xvcihjb25zdCBXZWJLaXQ6OldlYkNvbG9yJiBjb2xvcikKK3sKKyAgICByZXR1cm4g
V2ViQ29yZTo6Q29sb3IoUkdCQTMyKGNvbG9yKSk7Cit9CisKK3N0YXRpYyBXZWJLaXQ6OldlYlRo
ZW1lRW5naW5lKiB0aGVtZUVuZ2luZSgpCit7CisgICAgcmV0dXJuIFdlYktpdDo6UGxhdGZvcm06
OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKTsKK30KKworc3RhdGljIFdlYktpdDo6V2ViQ2FudmFz
KiB3ZWJDYW52YXMoY29uc3QgUGFpbnRJbmZvJiBpbmZvKQoreworICAgIHJldHVybiBpbmZvLmNv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jcigpOworfQorCitQYXNzUmVmUHRyPFJlbmRlclRo
ZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHJldHVybiBSZW5k
ZXJUaGVtZU5peDo6Y3JlYXRlKCk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRl
clRoZW1lTml4OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVuZGVyVGhl
bWVOaXgpOworfQorCitSZW5kZXJUaGVtZU5peDo6UmVuZGVyVGhlbWVOaXgoKQorICAgIDogUmVu
ZGVyVGhlbWUoKQoreworfQorCitSZW5kZXJUaGVtZU5peDo6flJlbmRlclRoZW1lTml4KCkKK3sK
KworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVOaXg6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQor
eworICAgIHJldHVybiB0aGVtZUVuZ2luZSgpLT5leHRyYURlZmF1bHRTdHlsZVNoZWV0KCk7Cit9
CisKK1N0cmluZyBSZW5kZXJUaGVtZU5peDo6ZXh0cmFRdWlya3NTdHlsZVNoZWV0KCkKK3sKKyAg
ICByZXR1cm4gdGhlbWVFbmdpbmUoKS0+ZXh0cmFRdWlya3NTdHlsZVNoZWV0KCk7Cit9CisKK1N0
cmluZyBSZW5kZXJUaGVtZU5peDo6ZXh0cmFQbHVnSW5zU3R5bGVTaGVldCgpCit7CisgICAgcmV0
dXJuIHRoZW1lRW5naW5lKCktPmV4dHJhUGx1Z0luc1N0eWxlU2hlZXQoKTsKK30KKworQ29sb3Ig
UmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdG9Db2xvcih0aGVtZUVuZ2luZSgpLT5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSk7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lTml4OjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
dG9Db2xvcih0aGVtZUVuZ2luZSgpLT5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigp
KTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Db2xvcih0aGVtZUVuZ2luZSgp
LT5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSk7Cit9CisKK0NvbG9yIFJlbmRlclRo
ZW1lTml4OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdG9Db2xvcih0aGVtZUVuZ2luZSgpLT5pbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcigpKTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtQWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRvQ29sb3IodGhlbWVFbmdpbmUoKS0+YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpKTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVOaXg6OnBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9Db2xv
cih0aGVtZUVuZ2luZSgpLT5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
KSk7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lTml4OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiB0b0NvbG9yKHRoZW1l
RW5naW5lKCktPmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSk7Cit9CisK
K0NvbG9yIFJlbmRlclRoZW1lTml4OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvQ29sb3IodGhlbWVFbmdpbmUo
KS0+aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkpOworfQorCitDb2xv
ciBSZW5kZXJUaGVtZU5peDo6cGxhdGZvcm1BY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
KSBjb25zdAoreworICAgIHJldHVybiB0b0NvbG9yKHRoZW1lRW5naW5lKCktPmFjdGl2ZVRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcigpKTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVOaXg6OnBsYXRm
b3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAoreworICAgIHJldHVy
biB0b0NvbG9yKHRoZW1lRW5naW5lKCktPmluYWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9y
KCkpOworfQorCitDb2xvciBSZW5kZXJUaGVtZU5peDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRvQ29sb3IodGhlbWVFbmdpbmUoKS0+Zm9jdXNSaW5nQ29s
b3IoKSk7ICAgCit9CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorQ29sb3IgUmVuZGVyVGhl
bWVOaXg6OnBsYXRmb3JtVGFwSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAoreworICAgIHJldHVybiB0
b0NvbG9yKHRoZW1lRW5naW5lKCktPnRhcEhpZ2hsaWdodENvbG9yKCkpOworfQorI2VuZGlmCisK
K3ZvaWQgUmVuZGVyVGhlbWVOaXg6OnN5c3RlbUZvbnQoV2ViQ29yZTo6Q1NTVmFsdWVJRCwgRm9u
dERlc2NyaXB0aW9uJikgY29uc3QKK3sKK30KKworc3RhdGljIFdlYktpdDo6V2ViVGhlbWVFbmdp
bmU6OlN0YXRlIGdldFdlYlRoZW1lU3RhdGUoY29uc3QgUmVuZGVyVGhlbWUqIHRoZW1lLCBjb25z
dCBSZW5kZXJPYmplY3QqIG8pCit7CisgICAgaWYgKCF0aGVtZS0+aXNFbmFibGVkKG8pKQorICAg
ICAgICByZXR1cm4gV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3RhdGVEaXNhYmxlZDsKKyAgICBp
ZiAodGhlbWUtPmlzUHJlc3NlZChvKSkKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViVGhlbWVF
bmdpbmU6OlN0YXRlUHJlc3NlZDsKKyAgICBpZiAodGhlbWUtPmlzSG92ZXJlZChvKSkKKyAgICAg
ICAgcmV0dXJuIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlN0YXRlSG92ZXI7CisKKyAgICByZXR1
cm4gV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3RhdGVOb3JtYWw7Cit9CisKK2Jvb2wgUmVuZGVy
VGhlbWVOaXg6OnBhaW50QnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBp
LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OkJ1
dHRvbkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOworICAgIGV4dHJhUGFyYW1zLmlzRGVmYXVsdCA9
IGlzRGVmYXVsdChvKTsKKyAgICBleHRyYVBhcmFtcy5oYXNCb3JkZXIgPSB0cnVlOworICAgIGV4
dHJhUGFyYW1zLmJhY2tncm91bmRDb2xvciA9IGRlZmF1bHRCdXR0b25CYWNrZ3JvdW5kQ29sb3I7
CisgICAgaWYgKG8tPmhhc0JhY2tncm91bmQoKSkKKyAgICAgICAgZXh0cmFQYXJhbXMuYmFja2dy
b3VuZENvbG9yID0gby0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5
QmFja2dyb3VuZENvbG9yKS5yZ2IoKTsKKworICAgIHRoZW1lRW5naW5lKCktPnBhaW50QnV0dG9u
KHdlYkNhbnZhcyhpKSwgZ2V0V2ViVGhlbWVTdGF0ZSh0aGlzLCBvKSwgV2ViS2l0OjpXZWJSZWN0
KHJlY3QpLCBleHRyYVBhcmFtcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlbmRl
clRoZW1lTml4OjpwYWludFRleHRGaWVsZChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5m
byYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBXZWJUaGVtZUVuZ2luZSBkb2Vz
IG5vdCBoYW5kbGUgYm9yZGVyIHJvdW5kZWQgY29ybmVyIGFuZCBiYWNrZ3JvdW5kIGltYWdlCisg
ICAgLy8gc28gcmV0dXJuIHRydWUgdG8gZHJhdyBDU1MgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kLgor
ICAgIGlmIChvLT5zdHlsZSgpLT5oYXNCb3JkZXJSYWRpdXMoKSB8fCBvLT5zdHlsZSgpLT5oYXNC
YWNrZ3JvdW5kSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB0aGVtZUVuZ2lu
ZSgpLT5wYWludFRleHRGaWVsZCh3ZWJDYW52YXMoaSksIGdldFdlYlRoZW1lU3RhdGUodGhpcywg
byksIFdlYktpdDo6V2ViUmVjdChyZWN0KSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IFJlbmRlclRoZW1lTml4OjpwYWludFRleHRBcmVhKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFp
bnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiBwYWludFRleHRG
aWVsZChvLCBpLCByZWN0KTsKK30KKworYm9vbCBSZW5kZXJUaGVtZU5peDo6cGFpbnRDaGVja2Jv
eChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVj
dCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpCdXR0b25FeHRyYVBhcmFtcyBleHRy
YVBhcmFtczsKKyAgICBleHRyYVBhcmFtcy5jaGVja2VkID0gaXNDaGVja2VkKG8pOworICAgIGV4
dHJhUGFyYW1zLmluZGV0ZXJtaW5hdGUgPSBpc0luZGV0ZXJtaW5hdGUobyk7CisKKyAgICB0aGVt
ZUVuZ2luZSgpLT5wYWludENoZWNrYm94KHdlYkNhbnZhcyhpKSwgZ2V0V2ViVGhlbWVTdGF0ZSh0
aGlzLCBvKSwgV2ViS2l0OjpXZWJSZWN0KHJlY3QpLCBleHRyYVBhcmFtcyk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFJlbmRlclRoZW1lTml4OjpzZXRDaGVja2JveFNpemUoUmVuZGVy
U3R5bGUqIHN0eWxlKSBjb25zdAoreworICAgIC8vIElmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFy
ZSBib3RoIHNwZWNpZmllZCwgdGhlbiB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKCFz
dHlsZS0+d2lkdGgoKS5pc0ludHJpbnNpY09yQXV0bygpICYmICFzdHlsZS0+aGVpZ2h0KCkuaXNB
dXRvKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEludFNpemUgc2l6ZSA9IHRoZW1lRW5naW5l
KCktPmdldENoZWNrYm94U2l6ZSgpOworICAgIHNldFNpemVJZkF1dG8oc3R5bGUsIHNpemUpOwor
fQorCitib29sIFJlbmRlclRoZW1lTml4OjpwYWludFJhZGlvKFJlbmRlck9iamVjdCogbywgY29u
c3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFdlYktpdDo6V2Vi
VGhlbWVFbmdpbmU6OkJ1dHRvbkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOworICAgIGV4dHJhUGFy
YW1zLmNoZWNrZWQgPSBpc0NoZWNrZWQobyk7CisgICAgZXh0cmFQYXJhbXMuaW5kZXRlcm1pbmF0
ZSA9IGlzSW5kZXRlcm1pbmF0ZShvKTsKKworICAgIHRoZW1lRW5naW5lKCktPnBhaW50UmFkaW8o
d2ViQ2FudmFzKGkpLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3Qo
cmVjdCksIGV4dHJhUGFyYW1zKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVy
VGhlbWVOaXg6OnNldFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0Cit7CisgICAg
Ly8gSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGJvdGggc3BlY2lmaWVkLCB0aGVuIHdlIGhh
dmUgbm90aGluZyB0byBkby4KKyAgICBpZiAoIXN0eWxlLT53aWR0aCgpLmlzSW50cmluc2ljT3JB
dXRvKCkgJiYgIXN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgSW50U2l6ZSBzaXplID0gdGhlbWVFbmdpbmUoKS0+Z2V0UmFkaW9TaXplKCk7CisgICAgc2V0
U2l6ZUlmQXV0byhzdHlsZSwgc2l6ZSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVOaXg6OnBhaW50
TWVudUxpc3QoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJl
Y3QmIHJlY3QpCit7CisgICAgdGhlbWVFbmdpbmUoKS0+cGFpbnRNZW51TGlzdCh3ZWJDYW52YXMo
aSksIGdldFdlYlRoZW1lU3RhdGUodGhpcywgbyksIFdlYktpdDo6V2ViUmVjdChyZWN0KSk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlbmRlclRoZW1lTml4OjphZGp1c3RNZW51TGlz
dFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25z
dAoreworICAgIHN0eWxlLT5yZXNldEJvcmRlcigpOworICAgIHN0eWxlLT5zZXRXaGl0ZVNwYWNl
KFBSRSk7CisKKyAgICBpbnQgcGFkZGluZ1RvcCA9IDA7CisgICAgaW50IHBhZGRpbmdMZWZ0ID0g
MDsKKyAgICBpbnQgcGFkZGluZ0JvdHRvbSA9IDA7CisgICAgaW50IHBhZGRpbmdSaWdodCA9IDA7
CisgICAgdGhlbWVFbmdpbmUoKS0+Z2V0TWVudUxpc3RQYWRkaW5nKHBhZGRpbmdUb3AsIHBhZGRp
bmdMZWZ0LCBwYWRkaW5nQm90dG9tLCBwYWRkaW5nUmlnaHQpOworICAgIHN0eWxlLT5zZXRQYWRk
aW5nVG9wKExlbmd0aChwYWRkaW5nVG9wLCBGaXhlZCkpOworICAgIHN0eWxlLT5zZXRQYWRkaW5n
UmlnaHQoTGVuZ3RoKHBhZGRpbmdSaWdodCwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0UGFkZGlu
Z0JvdHRvbShMZW5ndGgocGFkZGluZ0JvdHRvbSwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0UGFk
ZGluZ0xlZnQoTGVuZ3RoKHBhZGRpbmdMZWZ0LCBGaXhlZCkpOworfQorCisjaWYgRU5BQkxFKFBS
T0dSRVNTX0VMRU1FTlQpCit2b2lkIFJlbmRlclRoZW1lTml4OjphZGp1c3RQcm9ncmVzc0JhclN0
eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQgKikgY29uc3QK
K3sKKyAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOworfQorCitib29sIFJlbmRlclRo
ZW1lTml4OjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZv
JiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQ
cm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisgICAgV2ViS2l0OjpXZWJUaGVtZUVuZ2lu
ZTo6UHJvZ3Jlc3NCYXJFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBleHRyYVBhcmFtcy5p
c0RldGVybWluYXRlID0gcmVuZGVyUHJvZ3Jlc3MtPmlzRGV0ZXJtaW5hdGUoKTsKKyAgICBleHRy
YVBhcmFtcy5wb3NpdGlvbiA9IHJlbmRlclByb2dyZXNzLT5wb3NpdGlvbigpOworICAgIGV4dHJh
UGFyYW1zLmFuaW1hdGlvblByb2dyZXNzID0gcmVuZGVyUHJvZ3Jlc3MtPmFuaW1hdGlvblByb2dy
ZXNzKCk7CisgICAgZXh0cmFQYXJhbXMuYW5pbWF0aW9uU3RhcnRUaW1lID0gcmVuZGVyUHJvZ3Jl
c3MtPmFuaW1hdGlvblN0YXJ0VGltZSgpOworICAgIHRoZW1lRW5naW5lKCktPnBhaW50UHJvZ3Jl
c3NCYXIod2ViQ2FudmFzKGkpLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6Oldl
YlJlY3QocmVjdCksIGV4dHJhUGFyYW1zKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworZG91
YmxlIFJlbmRlclRoZW1lTml4OjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFy
KFJlbmRlclByb2dyZXNzKikgY29uc3QKK3sKKyAgICByZXR1cm4gdGhlbWVFbmdpbmUoKS0+Z2V0
QW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcigpOworfQorCitkb3VibGUgUmVu
ZGVyVGhlbWVOaXg6OmFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jl
c3MqKSBjb25zdAoreworICAgIHJldHVybiB0aGVtZUVuZ2luZSgpLT5nZXRBbmltYXRpb25EdXJh
dGlvbkZvclByb2dyZXNzQmFyKCk7Cit9CisjZW5kaWYKKworYm9vbCBSZW5kZXJUaGVtZU5peDo6
cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBp
bmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIHRoZW1lRW5naW5lKCktPnBhaW50U2xp
ZGVyVHJhY2sod2ViQ2FudmFzKGluZm8pLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG9iamVjdCks
IHJlY3QpOworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIHBhaW50U2xpZGVyVGlj
a3Mob2JqZWN0LCBpbmZvLCByZWN0KTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwor
dm9pZCBSZW5kZXJUaGVtZU5peDo6YWRqdXN0U2xpZGVyVHJhY2tTdHlsZShTdHlsZVJlc29sdmVy
KiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3sKKyAgICBzdHlsZS0+c2V0
Qm94U2hhZG93KG51bGxwdHIpOworfQorCitib29sIFJlbmRlclRoZW1lTml4OjpwYWludFNsaWRl
clRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0
IEludFJlY3QmIHJlY3QpCit7CisgICAgdGhlbWVFbmdpbmUoKS0+cGFpbnRTbGlkZXJUaHVtYih3
ZWJDYW52YXMoaW5mbyksIGdldFdlYlRoZW1lU3RhdGUodGhpcywgb2JqZWN0KSwgcmVjdCk7CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVOaXg6OmFkanVzdFNsaWRl
clRodW1iU3R5bGUoU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIFJlbmRlclRoZW1lOjphZGp1c3RT
bGlkZXJUaHVtYlN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50KTsKKyAgICBzdHls
ZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOworfQorCitjb25zdCBpbnQgU2xpZGVyVGh1bWJXaWR0
aCA9IDEwOworY29uc3QgaW50IFNsaWRlclRodW1iSGVpZ2h0ID0gMjA7CisKK3ZvaWQgUmVuZGVy
VGhlbWVOaXg6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1l
bnQqKSBjb25zdAoreworICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBzdHlsZS0+YXBwZWFyYW5jZSgp
OworICAgIGlmIChwYXJ0ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7CisgICAgICAgIHN0
eWxlLT5zZXRXaWR0aChMZW5ndGgoU2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAg
c3R5bGUtPnNldEhlaWdodChMZW5ndGgoU2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVkKSk7CisgICAg
fSBlbHNlIGlmIChwYXJ0ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQpIHsKKyAgICAgICAg
c3R5bGUtPnNldFdpZHRoKExlbmd0aChTbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOworICAgICAg
ICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChTbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKKyAg
ICB9Cit9CisKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKK0ludFNpemUgUmVuZGVyVGhl
bWVOaXg6OnNsaWRlclRpY2tTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW50U2l6ZSgxLCA2
KTsKK30KKworaW50IFJlbmRlclRoZW1lTml4OjpzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2Vu
dGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gLTEyOworfQorCitMYXlvdXRVbml0IFJlbmRlclRo
ZW1lTml4OjpzbGlkZXJUaWNrU25hcHBpbmdUaHJlc2hvbGQoKSBjb25zdAoreworICAgIHJldHVy
biA1OworfQorCitib29sIFJlbmRlclRoZW1lTml4OjpzdXBwb3J0c0RhdGFMaXN0VUkoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlKSBjb25zdAoreworICAgIHJldHVybiB0eXBlID09IElucHV0VHlw
ZU5hbWVzOjpyYW5nZSgpOworfQorI2VuZGlmCisKK3ZvaWQgUmVuZGVyVGhlbWVOaXg6OmFkanVz
dElubmVyU3BpbkJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEVsZW1lbnQqKSBjb25zdAoreworICAgIHN0eWxlLT5yZXNldEJvcmRlcigpOworICAgIHN0eWxl
LT5zZXRXaGl0ZVNwYWNlKFBSRSk7CisKKyAgICBpbnQgcGFkZGluZ1RvcCA9IDA7CisgICAgaW50
IHBhZGRpbmdMZWZ0ID0gMDsKKyAgICBpbnQgcGFkZGluZ0JvdHRvbSA9IDA7CisgICAgaW50IHBh
ZGRpbmdSaWdodCA9IDA7CisgICAgdGhlbWVFbmdpbmUoKS0+Z2V0SW5uZXJTcGluQnV0dG9uUGFk
ZGluZyhwYWRkaW5nVG9wLCBwYWRkaW5nTGVmdCwgcGFkZGluZ0JvdHRvbSwgcGFkZGluZ1JpZ2h0
KTsKKyAgICBzdHlsZS0+c2V0UGFkZGluZ1RvcChMZW5ndGgocGFkZGluZ1RvcCwgRml4ZWQpKTsK
KyAgICBzdHlsZS0+c2V0UGFkZGluZ1JpZ2h0KExlbmd0aChwYWRkaW5nUmlnaHQsIEZpeGVkKSk7
CisgICAgc3R5bGUtPnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHBhZGRpbmdCb3R0b20sIEZpeGVk
KSk7CisgICAgc3R5bGUtPnNldFBhZGRpbmdMZWZ0KExlbmd0aChwYWRkaW5nTGVmdCwgRml4ZWQp
KTsKK30KKworYm9vbCBSZW5kZXJUaGVtZU5peDo6cGFpbnRJbm5lclNwaW5CdXR0b24oUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCit7Cisg
ICAgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6SW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgZXh0
cmFQYXJhbXM7CisgICAgZXh0cmFQYXJhbXMuc3BpblVwID0gaXNTcGluVXBCdXR0b25QYXJ0UHJl
c3NlZChvKTsKKyAgICBleHRyYVBhcmFtcy5yZWFkT25seSA9IGlzUmVhZE9ubHlDb250cm9sKG8p
OworCisgICAgdGhlbWVFbmdpbmUoKS0+cGFpbnRJbm5lclNwaW5CdXR0b24od2ViQ2FudmFzKGkp
LCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksIGV4dHJh
UGFyYW1zKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNpZiBFTkFCTEUoTUVURVJfRUxFTUVO
VCkKK3ZvaWQgUmVuZGVyVGhlbWVOaXg6OmFkanVzdE1ldGVyU3R5bGUoU3R5bGVSZXNvbHZlcios
IFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAgc3R5bGUtPnNldEJv
eFNoYWRvdyhudWxscHRyKTsKK30KKworSW50U2l6ZSBSZW5kZXJUaGVtZU5peDo6bWV0ZXJTaXpl
Rm9yQm91bmRzKGNvbnN0IFJlbmRlck1ldGVyKiwgY29uc3QgSW50UmVjdCYgYm91bmRzKSBjb25z
dAoreworICAgIHJldHVybiBib3VuZHMuc2l6ZSgpOworfQorCitib29sIFJlbmRlclRoZW1lTml4
OjpzdXBwb3J0c01ldGVyKENvbnRyb2xQYXJ0IHBhcnQpIGNvbnN0Cit7CisgICAgc3dpdGNoIChw
YXJ0KSB7CisgICAgY2FzZSBSZWxldmFuY3lMZXZlbEluZGljYXRvclBhcnQ6CisgICAgY2FzZSBE
aXNjcmV0ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgIGNhc2UgUmF0aW5nTGV2ZWxJ
bmRpY2F0b3JQYXJ0OgorICAgIGNhc2UgTWV0ZXJQYXJ0OgorICAgIGNhc2UgQ29udGludW91c0Nh
cGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitib29sIFJlbmRlclRoZW1l
Tml4OjpwYWludE1ldGVyKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25z
dCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICghby0+aXNNZXRlcigpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIFJlbmRlck1ldGVyKiByZW5kZXJNZXRlciA9IHRvUmVuZGVyTWV0ZXIo
byk7CisgICAgSFRNTE1ldGVyRWxlbWVudCogZSA9IHJlbmRlck1ldGVyLT5tZXRlckVsZW1lbnQo
KTsKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpNZXRlckV4dHJhUGFyYW1zIGV4dHJhUGFy
YW1zOworICAgIGV4dHJhUGFyYW1zLm1pbiA9IGUtPm1pbigpOworICAgIGV4dHJhUGFyYW1zLm1h
eCA9IGUtPm1heCgpOworICAgIGV4dHJhUGFyYW1zLnZhbHVlID0gZS0+dmFsdWUoKTsKKyAgICBl
eHRyYVBhcmFtcy5sb3cgPSBlLT5sb3coKTsKKyAgICBleHRyYVBhcmFtcy5oaWdoID0gZS0+aGln
aCgpOworICAgIGV4dHJhUGFyYW1zLm9wdGltdW0gPSBlLT5vcHRpbXVtKCk7CisKKyAgICB0aGVt
ZUVuZ2luZSgpLT5wYWludE1ldGVyKHdlYkNhbnZhcyhpKSwgZ2V0V2ViVGhlbWVTdGF0ZSh0aGlz
LCBvKSwgcmVjdCwgZXh0cmFQYXJhbXMpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlm
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9SZW5kZXJUaGVt
ZU5peC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1JlbmRlclRoZW1lTml4LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmQ0MTgxOWJiOTg4MDlkMzY4ZGM1ZmE0MjQ0NzJhMThlNzVhMjg4ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9SZW5kZXJUaGVtZU5peC5o
CkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBSZW5kZXJUaGVtZU5peF9oCisjZGVmaW5lIFJlbmRlclRoZW1lTml4X2gKKworI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyVGhl
bWVOaXggOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKKworICAgIHZpcnR1YWwgflJlbmRlclRoZW1lTml4
KCk7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCk7CisgICAg
dmlydHVhbCBTdHJpbmcgZXh0cmFRdWlya3NTdHlsZVNoZWV0KCk7CisgICAgdmlydHVhbCBTdHJp
bmcgZXh0cmFQbHVnSW5zU3R5bGVTaGVldCgpOworCisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZv
bnQoV2ViQ29yZTo6Q1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3QgT1ZFUlJJREU7
CisKKyNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKKyAgICAvLyBSZXR1cm5zIHRoZSByZXBl
YXQgaW50ZXJ2YWwgb2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KKyAgICB2
aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRl
clByb2dyZXNzKikgY29uc3QgT1ZFUlJJREU7CisgICAgLy8gUmV0dXJucyB0aGUgZHVyYXRpb24g
b2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KKyAgICB2aXJ0dWFsIGRvdWJs
ZSBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Qg
T1ZFUlJJREU7CisjZW5kaWYKKworI2lmIEVOQUJMRShNRVRFUl9FTEVNRU5UKQorICAgIHZpcnR1
YWwgSW50U2l6ZSBtZXRlclNpemVGb3JCb3VuZHMoY29uc3QgUmVuZGVyTWV0ZXIqLCBjb25zdCBJ
bnRSZWN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWV0ZXIo
Q29udHJvbFBhcnQpIGNvbnN0IE9WRVJSSURFOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAgICAv
LyBUaGUgcGxhdGZvcm0gc2VsZWN0aW9uIGNvbG9yLgorICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcigpIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKworICAgIC8vIEhpZ2hsaWdodGlu
ZyBjb2xvcnMgZm9yIFRleHRNYXRjaGVzLgorICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdDsKKworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0OworCisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGFwSGlnaGxpZ2h0Q29s
b3IoKSBjb25zdDsKKyNlbmRpZgorCisgICAgdmlydHVhbCBib29sIHBhaW50QnV0dG9uKFJlbmRl
ck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBwYWludFRl
eHRBcmVhKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBP
VkVSUklERTsKKworICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94KFJlbmRlck9iamVjdCos
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2hlY2tib3hTaXplKFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRSYWRpbyhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFJhZGlvU2l6
ZShSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOworCisgICAgdmlydHVhbCBib29sIHBhaW50
TWVudUxpc3QoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxlKFN0eWxlUmVz
b2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50
SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcikgT1ZFUlJJREUgeyByZXR1cm4gcGFpbnRNZW51TGlz
dChvLCBpLCByKTsgfQorCisgICAgdmlydHVhbCB2b2lkIGFkanVzdElubmVyU3BpbkJ1dHRvblN0
eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRJbm5lclNwaW5CdXR0b24oUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworCisjaWYgRU5BQkxF
KFBST0dSRVNTX0VMRU1FTlQpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5
bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyNlbmRpZgorCisjaWYgRU5B
QkxFKE1FVEVSX0VMRU1FTlQpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdE1ldGVyU3R5bGUoU3R5
bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBwYWludE1ldGVyKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyNlbmRpZgorCisgICAgdmlydHVhbCBib29sIHBh
aW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxl
KFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsK
KworICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVt
ZW50KikgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9WRVJSSURFOworCisjaWYgRU5B
QkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgdmlydHVhbCBJbnRTaXplIHNsaWRlclRpY2tTaXpl
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgc2xpZGVyVGlja09mZnNldEZyb21U
cmFja0NlbnRlcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBzbGlk
ZXJUaWNrU25hcHBpbmdUaHJlc2hvbGQoKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0RhdGFMaXN0VUkoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJ
REU7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBSZW5kZXJUaGVtZU5peCgpOworfTsKKworfQor
CisjZW5kaWYgLy8gUmVuZGVyVGhlbWVOaXhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbml4L1J1bkxvb3BOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L1J1bkxvb3BOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MWI2Nzk1YTAzYTVmMmZhMWQ0MGVlNmYwM2Fl
MGUyODBiNzIyZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvUnVuTG9vcE5peC5jcHAKQEAgLTAsMCArMSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJp
Z2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgor
CisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICAvLyBnX21haW5f
Y29udGV4dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEgcmVmZXJlbmNlLgorICAgIG1f
cnVuTG9vcENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQo
KSA6IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7CisgICAgQVNTRVJUKG1fcnVuTG9v
cENvbnRleHQpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5lcm1vc3RMb29wID0gYWRvcHRH
UmVmKGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LmdldCgpLCBGQUxTRSkpOworICAg
IEFTU0VSVChpbm5lcm1vc3RMb29wKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGlu
bmVybW9zdExvb3ApOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgZm9yIChpbnQg
aSA9IG1fcnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAg
ICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgp
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVu
TG9vcE1haW5Mb29wc1tpXS5nZXQoKSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigp
Cit7CisgICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7CisgICAg
R01haW5Mb29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3AtPmlubmVybW9zdExvb3AoKTsK
KyAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJtb3N0TG9vcCkpIHsKKyAgICAg
ICAgZ19tYWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9vcCBpZiB0aGUgaW5uZXJtb3N0
IG9uZSB3YXMgYWxyZWFkeSBydW5uaW5nLgorICAgIEdNYWluTG9vcCogbmVzdGVkTWFpbkxvb3Ag
PSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOworICAgIG1haW5SdW5Mb29wLT5wdXNoTmVzdGVk
TWFpbkxvb3AobmVzdGVkTWFpbkxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihuZXN0ZWRNYWlu
TG9vcCk7CisgICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5Mb29wKCk7Cit9CisKK0dNYWlu
TG9vcCogUnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBt
YWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1h
aW5Mb29wcy5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX3J1bkxvb3BNYWluTG9vcHNbMF0uZ2V0
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCogbmVz
dGVkTG9vcCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlz
IGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Cisg
ICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYobmVzdGVkTG9vcCkpOworfQor
Cit2b2lkIFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJt
b3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5M
b29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLnJlbW92ZUxh
c3QoKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0
IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29w
TWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGxhc3RNYWluTG9v
cCA9IG1fcnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7CisgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1
bm5pbmcobGFzdE1haW5Mb29wLmdldCgpKSkKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsYXN0
TWFpbkxvb3AuZ2V0KCkpOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9v
cCogcnVuTG9vcCkKK3sKKyAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIHJldHVybiBG
QUxTRTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIEdSZWZQdHI8R1NvdXJj
ZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOworICAgIGdfc291cmNl
X3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CisgICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNl
RnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFj
aChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworCisgICAgZ19tYWluX2Nv
bnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCitSdW5Mb29wOjpUaW1l
ckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxv
b3ApCisgICAgLCBtX3RpbWVyU291cmNlKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6
flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6Y2xlYXJUaW1lclNvdXJjZSgpCit7CisgICAgbV90aW1lclNvdXJjZSA9IDA7Cit9CisKK2di
b29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRp
bWVyQmFzZSogdGltZXIpCit7CisgICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGlt
ZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7CisgICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5p
c1JlcGVhdGluZygpOworICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkg
c3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICBpZiAoIWlzUmVw
ZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQo
KSkKKyAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKKworICAgIHRpbWVyLT5maXJl
ZCgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmICht
X3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291cmNlID0gYWRv
cHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50ZXJ2
YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgZ19zb3VyY2Vf
c2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJj
ZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMsIDAp
OworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3AtPm1f
cnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rv
cCgpCit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBn
X3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFyVGltZXJTb3Vy
Y2UoKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Njcm9sbGJhclRoZW1lTml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5peC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDI0YmFiNGFiNGNlMzhlYmMyYTZmMGI0YmVkMTA5MzVjY2Y3NjgyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVt
ZU5peC5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEz
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZU5peC5oIgorCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Njcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhl
bWUoKQoreworICAgIHN0YXRpYyBTY3JvbGxiYXJUaGVtZU5peCB0aGVtZTsKKyAgICByZXR1cm4g
JnRoZW1lOworfQorCitTY3JvbGxiYXJUaGVtZU5peDo6flNjcm9sbGJhclRoZW1lTml4KCkKK3sK
K30KKworaW50IFNjcm9sbGJhclRoZW1lTml4OjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUpCit7CisgICAgcmV0dXJuIDA7IC8vIHdlIHBhaW50IG9uIHRvcAorfQorCit2
b2lkIFNjcm9sbGJhclRoZW1lTml4OjpyZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNs
aWVudCopCit7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVOaXg6OnVucmVnaXN0ZXJTY3JvbGxi
YXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKQoreworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5peC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L1Njcm9sbGJhclRoZW1lTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNzY4ODQz
OTlmNWRlOGM4MzFiMjExNDhmZjkwZGU3NDlmOWI3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5peC5oCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1l
Tml4X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVOaXhfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJUaGVtZU5p
eCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVOaXgoKTsKKworICAgIHZpcnR1YWwgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3Jv
bGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIpOworCisgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJhclRoZW1lQ2xpZW50Kik7CisgICAgdmlydHVhbCB2
b2lkIHVucmVnaXN0ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKTsKK307CisKK30K
KyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVtZU5peF9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvU2hhcmVkVGltZXJOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNWIxODdjZDEwMmIyMjcx
ZGQ4YjhmMzNkZDQyNDJlMThjYWJiYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvU2hhcmVkVGltZXJOaXguY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdt
YWlsLmNvbQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKKworI2RlZmluZSBHREtfUFJJT1JJVFlfUkVE
UkFXIChHX1BSSU9SSVRZX0hJR0hfSURMRSArIDIwKQorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBndWludCBzaGFyZWRUaW1lcjsKK3N0YXRpYyB2
b2lkICgqc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKSgpOworCit2b2lkIHNldFNoYXJlZFRpbWVy
RmlyZWRGdW5jdGlvbih2b2lkICgqZikoKSkKK3sKKyAgICBzaGFyZWRUaW1lckZpcmVkRnVuY3Rp
b24gPSBmOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gdGltZW91dENhbGxiYWNrKGdwb2ludGVyKQor
eworICAgIGlmIChzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pCisgICAgICAgIHNoYXJlZFRpbWVy
RmlyZWRGdW5jdGlvbigpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBzZXRTaGFyZWRU
aW1lckZpcmVJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpCit7CisgICAgQVNTRVJUKHNoYXJlZFRp
bWVyRmlyZWRGdW5jdGlvbik7CisKKyAgICBndWludCBpbnRlcnZhbEluTVMgPSBzdGF0aWNfY2Fz
dDxndWludD4oaW50ZXJ2YWwgKiAxMDAwKTsKKworICAgIHN0b3BTaGFyZWRUaW1lcigpOworICAg
IHNoYXJlZFRpbWVyID0gZ190aW1lb3V0X2FkZF9mdWxsKEdES19QUklPUklUWV9SRURSQVcsIGlu
dGVydmFsSW5NUywgdGltZW91dENhbGxiYWNrLCAwLCAwKTsKK30KKwordm9pZCBzdG9wU2hhcmVk
VGltZXIoKQoreworICAgIGlmICghc2hhcmVkVGltZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGdib29sZWFuIHJlbW92ZWRTb3VyY2UgPSBnX3NvdXJjZV9yZW1vdmUoc2hhcmVkVGltZXIpOwor
ICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZFNvdXJjZSwgcmVtb3ZlZFNvdXJjZSk7CisgICAgc2hh
cmVkVGltZXIgPSAwOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvU291bmROaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZTFiYmVmZmU0OWMwM2RmM2QxMGVkMGY0ZTU2NDYyOGY4YWU3MjVh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjMwZjhiZmEz
MWZkYTIyMTc2MmRhODJjZjhhMWI2YjQ5N2I0ZjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgIlNTTEtleUdlbmVyYXRvci5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGdldFN1cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJp
bmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgc2lnbmVkUHVibGlj
S2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBLVVJM
JikKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOGQzMDk3M2QyMDA1NDYyYjJlOGNm
MzM2ZmEyMmIzMGZkZjU1NGZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbml4L1dpZGdldE5peC5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIK
KworI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dpZGdldDo6
V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKKyAgICA6IG1fcGFyZW50KDApCisgICAgLCBt
X3dpZGdldCgwKQorICAgICwgbV9zZWxmVmlzaWJsZShmYWxzZSkKKyAgICAsIG1fcGFyZW50Vmlz
aWJsZShmYWxzZSkKKyAgICAsIG1fZnJhbWUoMCwgMCwgMCwgMCkKK3sKKyAgICBpbml0KHdpZGdl
dCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJUKCFwYXJlbnQoKSk7Cit9
CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX2Zy
YW1lOworfQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgV2lkZ2V0OjpmcmFtZVJlY3RzQ2hhbmdlZCgp
OworfQorCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkKK3sKK30KKwordm9pZCBXaWRnZXQ6
OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKK3sKKyAgICBTY3JvbGxWaWV3KiB2aWV3
ID0gcm9vdCgpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOworICAgIHZpZXctPmhv
c3RXaW5kb3coKS0+c2V0Q3Vyc29yKGN1cnNvcik7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2lkZ2V0OjpzZXRJc1NlbGVjdGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L3N1cHBvcnQv
V2ViQXVkaW9CdXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L3N1cHBvcnQvV2Vi
QXVkaW9CdXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2MTIwZGRjOTI0MGJkZTEyMWExY2M0N2I1OGNkY2I4
ZTFiYjQ4M2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
c3VwcG9ydC9XZWJBdWRpb0J1cy5jcHAKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYkF1ZGlvQnVzLmg+CisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCisjZWxzZQorbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQXVkaW9CdXMgeworfTsKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQXVkaW9CdXNQcml2YXRlIHsKK3B1YmxpYzoKKyAgICBXZWJBdWRpb0J1
c1ByaXZhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpBdWRpb0J1cz4gYXVkaW9CdXMpCisgICAgICAg
IDogbV9hdWRpb0J1cyhhdWRpb0J1cykKKyAgICB7IH0KKworICAgIFJlZlB0cjxXZWJDb3JlOjpB
dWRpb0J1cz4gbV9hdWRpb0J1czsKK307CisKK3ZvaWQgV2ViQXVkaW9CdXM6OmluaXRpYWxpemUo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZG91YmxlIHNhbXBsZVJh
dGUpCit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAobV9kKQorICAgICAgICBkZWxl
dGUgbV9kOworICAgIG1fZCA9IG5ldyBXZWJBdWRpb0J1c1ByaXZhdGUoV2ViQ29yZTo6QXVkaW9C
dXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBsZW5ndGgpKTsKKyAgICBtX2QtPm1fYXVkaW9C
dXMtPnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CisjZWxzZQorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworI2VuZGlmCit9CisKK3ZvaWQgV2ViQXVkaW9CdXM6OnJlc2l6ZVNtYWxsZXIoc2l6
ZV90IG5ld0xlbmd0aCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIEFTU0VSVChtX2Qp
OworICAgIGlmIChtX2QpIHsKKyAgICAgICAgQVNTRVJUKG5ld0xlbmd0aCA8PSBsZW5ndGgoKSk7
CisgICAgICAgIG1fZC0+bV9hdWRpb0J1cy0+cmVzaXplU21hbGxlcihuZXdMZW5ndGgpOworICAg
IH0KKyNlbHNlCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKK30KKwordm9pZCBX
ZWJBdWRpb0J1czo6cmVzZXQoKQoreworI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgZGVsZXRl
IG1fZDsKKyAgICBtX2QgPSAwOworI2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNl
bmRpZgorfQorCit1bnNpZ25lZCBXZWJBdWRpb0J1czo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0
Cit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoIW1fZCkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG1fZC0+bV9hdWRpb0J1cy0+bnVtYmVyT2ZDaGFubmVscygpOworI2Vs
c2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
CitzaXplX3QgV2ViQXVkaW9CdXM6Omxlbmd0aCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyAgICBpZiAoIW1fZCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZC0+
bV9hdWRpb0J1cy0+bGVuZ3RoKCk7CisjZWxzZQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2RvdWJsZSBXZWJBdWRpb0J1czo6c2FtcGxlUmF0
ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoIW1fZCkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZC0+bV9hdWRpb0J1cy0+c2FtcGxlUmF0ZSgpOwor
I2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgor
fQorCitmbG9hdCogV2ViQXVkaW9CdXM6OmNoYW5uZWxEYXRhKHVuc2lnbmVkIGNoYW5uZWxJbmRl
eCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGlmICghbV9kKQorICAgICAgICByZXR1
cm4gMDsKKyAgICBBU1NFUlQoY2hhbm5lbEluZGV4IDwgbnVtYmVyT2ZDaGFubmVscygpKTsKKyAg
ICByZXR1cm4gbV9kLT5tX2F1ZGlvQnVzLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11dGFibGVE
YXRhKCk7CisjZWxzZQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK1Bhc3NSZWZQdHI8QXVkaW9CdXM+IFdlYkF1ZGlvQnVzOjphdWRpb0J1cygp
Cit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICByZXR1cm4gbV9kLT5tX2F1ZGlvQnVzOwor
I2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9zdXBwb3J0L1dlYkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbml4L3N1cHBvcnQvV2ViRGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRjNGY2OWFhMWNkNzk1
NjI0ZGZmYTg1MTc1OWM5YjRlZjg4YjZkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9zdXBwb3J0L1dlYkRhdGEuY3BwCkBAIC0wLDAgKzEsMTAzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJEYXRhLmg+CisKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJEYXRhUHJpdmF0ZSA6IHB1YmxpYyBTaGFyZWRCdWZm
ZXIgeworfTsKKwordm9pZCBXZWJEYXRhOjpyZXNldCgpCit7CisgICAgaWYgKG1fcHJpdmF0ZSkg
eworICAgICAgICBtX3ByaXZhdGUtPmRlcmVmKCk7CisgICAgICAgIG1fcHJpdmF0ZSA9IDA7Cisg
ICAgfQorfQorCit2b2lkIFdlYkRhdGE6OmFzc2lnbihjb25zdCBXZWJEYXRhJiBvdGhlcikKK3sK
KyAgICBXZWJEYXRhUHJpdmF0ZSogcCA9IGNvbnN0X2Nhc3Q8V2ViRGF0YVByaXZhdGUqPihvdGhl
ci5tX3ByaXZhdGUpOworICAgIGlmIChwKQorICAgICAgICBwLT5yZWYoKTsKKyAgICBhc3NpZ24o
cCk7Cit9CisKK3ZvaWQgV2ViRGF0YTo6YXNzaWduKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBz
aXplKQoreworICAgIGFzc2lnbihzdGF0aWNfY2FzdDxXZWJEYXRhUHJpdmF0ZSo+KAorICAgICAg
ICBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKS5sZWFrUmVmKCkpKTsKK30KKworc2l6
ZV90IFdlYkRhdGE6OnNpemUoKSBjb25zdAoreworICAgIGlmICghbV9wcml2YXRlKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gY29uc3RfY2FzdDxXZWJEYXRhUHJpdmF0ZSo+KG1fcHJp
dmF0ZSktPnNpemUoKTsKK30KKworY29uc3QgY2hhciogV2ViRGF0YTo6ZGF0YSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBjb25z
dF9jYXN0PFdlYkRhdGFQcml2YXRlKj4obV9wcml2YXRlKS0+ZGF0YSgpOworfQorCitXZWJEYXRh
OjpXZWJEYXRhKGNvbnN0IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiYgYnVmZmVyKQorICAgIDog
bV9wcml2YXRlKHN0YXRpY19jYXN0PFdlYkRhdGFQcml2YXRlKj4oYnVmZmVyLmxlYWtSZWYoKSkp
Cit7Cit9CisKK1dlYkRhdGEmIFdlYkRhdGE6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4mIGJ1ZmZlcikKK3sKKyAgICBhc3NpZ24oc3RhdGljX2Nhc3Q8V2ViRGF0YVBy
aXZhdGUqPihidWZmZXIubGVha1JlZigpKSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitXZWJE
YXRhOjpvcGVyYXRvciBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oKSBjb25zdAoreworICAgIHJl
dHVybiBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oY29uc3RfY2FzdDxXZWJEYXRhUHJpdmF0ZSo+
KG1fcHJpdmF0ZSkpOworfQorCit2b2lkIFdlYkRhdGE6OmFzc2lnbihXZWJEYXRhUHJpdmF0ZSog
cCkKK3sKKyAgICAvLyBwIGlzIGFscmVhZHkgcmVmJ2QgZm9yIHVzIGJ5IHRoZSBjYWxsZXIKKyAg
ICBpZiAobV9wcml2YXRlKQorICAgICAgICBtX3ByaXZhdGUtPmRlcmVmKCk7CisgICAgbV9wcml2
YXRlID0gcDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3ZmE3NzM4OGRmN2M2YWZkNzFhZDEyNjc4
NjllZjA1MDRiNDY2ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjb25zdCBjaGFyKiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAg
IHJldHVybiAiIjsKK30KKworY29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkK
K3sKKyAgICByZXR1cm4gImVuX3VzIjsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206003</attachid>
            <date>2013-07-03 07:49:45 -0700</date>
            <delta_ts>2013-07-03 13:36:15 -0700</delta_ts>
            <desc>New patch avoiding WebAudio and RenderTheme stuff</desc>
            <filename>bug-118358-20130703114738.patch</filename>
            <type>text/plain</type>
            <size>146338</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDYxY2U5ZjkzYWE5NDUxMDM2MDMwYzEz
Yjc4ODI4ZDM5ZWE2OTAwNzMuLmRhYzczNDhkMDNhZDlmMzQzYTU0YTgwYTBkMjYyYjkzM2ZjZWUz
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMDMgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIEF2b2lkIGNvZGUgZHVwbGljYXRpb24gaW5zaWRlIFN0cmluZzo6YXBw
ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzNWM5YTgyODIwYjFmZDA3Yjk4YTUxNWExYmI2M2RmODFhNzhk
NjEwLi5kOTU2MzViZTNlZjAxOWQ0OTFiZTU5ODViNjE2YjFiNTk5MWMxYWVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzYzIEBACisyMDEzLTA3LTAzICBMdWNpYW5vIFdvbGYgIDxsdWNpYW5vLndv
bGZAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgc3R1
YnMgYW5kIE5peCBzcGVjaWZpYyBwbGF0Zm9ybSBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzaWNhbGx5IGFkZGluZyBhbGwgZmlsZXMgdGhh
dCBoYXZlICJOaXgiIGluIHRoZWlyIG5hbWVzIGFuZAorICAgICAgICBhcmUgcmVsYXRlZCB0byBX
ZWJDb3JlIG1vZHVsZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4LmNzczogQWRkZWQuCisgICAgICAgIChhdWRpbyk6Cisg
ICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICAodmlkZW86LXdlYmtpdC1mdWxsLXBh
Z2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICAoYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLW11dGUtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1
dHRvbik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1j
b250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5l
cik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUt
ZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3Bs
YXkpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5p
bmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmct
ZGlzcGxheSk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGlu
ZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUpOgorICAgICAgICAoYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyKToKKyAgICAg
ICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIpOgorICAgICAgICAoYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1mdWxsc2NyZWVuLWJ1dHRvbik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1yZXdpbmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdp
bmQtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVy
bi10by1yZWFsdGltZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVy
bi10by1yZWFsdGltZS1idXR0b24pOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uKToKKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24sIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24pOgorICAg
ICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3M6IEFkZGVkLgorICAgICAg
ICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICAodmlkZW86
LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgor
ICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAg
ICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24pOgorICAgICAg
ICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyKToKKyAg
ICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
KToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxp
bmUpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ci1jb250YWluZXIpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlcik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVr
LWJhY2stYnV0dG9uKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNl
ZWstZm9yd2FyZC1idXR0b24pOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtZnVsbHNjcmVlbi1idXR0b24pOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcmV3aW5kLWJ1dHRvbik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uKToKKyAgICAgICAg
KiBwYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldCk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VNb3ZlRXZlbnRUb1N1
YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFz
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmFjY2Vz
c0tleU1vZGlmaWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEZyb21DdXJyZW50RUdMLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRG
cm9tQ3VycmVudEVHTDo6Y3JlYXRlRnJvbUN1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OkdMQ29udGV4dEZyb21DdXJyZW50RUdMKToK
KyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEZyb21DdXJyZW50RUdMOjptYWtlQ29udGV4dEN1
cnJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OmluaXRp
YWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3Vy
cmVudEVHTC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEZyb21DdXJyZW50
RUdMOjpzd2FwQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRGcm9tQ3VycmVu
dEVHTDo6ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRl
eHRGcm9tQ3VycmVudEVHTDo6Y2Fpcm9EZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250
ZXh0RnJvbUN1cnJlbnRFR0w6OmNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMQ29udGV4dEZyb21DdXJyZW50RUdMOjpwbGF0Zm9ybUNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OndhaXROYXRpdmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93
Tml4LmNwcDogQWRkZWQuCisgICAgICAgIChQbGF0Zm9ybVZpZGVvV2luZG93OjpQbGF0Zm9ybVZp
ZGVvV2luZG93KToKKyAgICAgICAgKFBsYXRmb3JtVmlkZW9XaW5kb3c6On5QbGF0Zm9ybVZpZGVv
V2luZG93KToKKyAgICAgICAgKFBsYXRmb3JtVmlkZW9XaW5kb3c6OnByZXBhcmVGb3JPdmVybGF5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SWNvbjo6fkljb24pOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6
Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OmxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL25peC9DdXJz
b3JOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpDdXJz
b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpjdXJzb3JTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcik6CisgICAgICAgICogcGxh
dGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
RGF0YTo6Y2FuU21hcnRSZXBsYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250
YWluc0NvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0ZpbGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdEYXRhOjphc0ZpbGVuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0
YTo6Y29udGFpbnNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzUGxh
aW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjphc0NvbG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0NvbXBhdGlibGVDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1VSTCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
RGF0YTo6YXNVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzRnJhZ21lbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmRyYWdJbWFnZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlRHJhZ0lt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdl
SWNvbkZvckNhY2hlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjpibG9ja2VkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdp
bldpbGxIYW5kbGVMb2FkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWROZXR3b3Jr
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6cHJpbnRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwcmludGVyTm90Rm91bmRF
cnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnZhbGlkUGFnZVJhbmdlVG9QcmludCk6CisgICAg
ICAgICogcGxhdGZvcm0vbml4L0Vycm9yc05peC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uaXgvRmlsZVN5c3RlbU5peC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5h
bWVUb1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGb3JEaXNwbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGVFeGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlRmlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRG
aWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rv
cmllcyk6CisgICAgICAgIChXZWJDb3JlOjpob21lRGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXRoR2V0RmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25E
aXJlY3RvcnlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYXJlZFJlc291cmNlc1BhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OmRpcmVjdG9yeU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6bGlzdERpcmVjdG9yeSk6
CisgICAgICAgIChXZWJDb3JlOjpvcGVuVGVtcG9yYXJ5RmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVuRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpjbG9zZUZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6c2Vla0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVUb0ZpbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6cmVhZEZyb21GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnVubG9hZE1vZHVs
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpzYW1wbGVHYW1lcGFkcyk6CisgICAgICAgICogcGxhdGZvcm0vbml4L0xh
bmd1YWdlTml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybUxhbmd1YWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmluZ3NOaXguY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJD
b3JlOjppbnB1dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9u
RGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCk6CisgICAgICAgIChXZWJD
b3JlOjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZFZpZGVvVG9EaXNrKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkQXVkaW9Ub0Rpc2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzayk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9D
bGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlv
TGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBh
dXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0RlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5pY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJbnB1
dE1ldGhvZHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdDdXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnU3BlbGxpbmdNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hl
Y2tTcGVsbGluZ1doaWxlVHlwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdGb250TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdCb2xkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVOb1Jl
Y2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51UmVjZW50U2Vh
cmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJj
aGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0VGVybVRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYRm9vdGVyUm9sZURlc2NyaXB0aW9uVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhSYWRpb0J1dHRv
bkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0RmllbGRBY3Rpb25WZXJiKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYik6CisgICAgICAg
IChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJD
b3JlOjpBWExpbmtBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OnVua25vd25GaWxlU2l6
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VUaXRsZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjptZWRp
YUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxlbWVu
dExpdmVCcm9hZGNhc3RTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1p
c21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxl
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
clJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAg
IChXZWJDb3JlOjpBWE1lbnVMaXN0QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjptdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRQbHVnaW5CeUNvbnRlbnRTZWN1cml0eVBvbGlj
eVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6aW5zZWN1cmVQbHVnaW5WZXJzaW9uVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbmFjdGl2ZVBsdWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dW5hY2NlcHRhYmxlVExTQ2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVk
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlQmFkSW5wdXRGb3JO
dW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBzaG90dGVkUGx1Z0luTGFiZWxUaXRs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpzbmFwc2hvdHRlZFBsdWdJbkxhYmVsU3VidGl0bGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL25peC9NSU1FVHlwZVJlZ2lzdHJ5Tml4LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0aW9uUGx1
Z2luTUlNRVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGll
cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6a2V5TWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OndpbmRvd3NLZXlNYXApOgorICAgICAgICAoV2ViQ29yZTo6a2V5RG93bkNvbW1hbmRzTWFw
KToKKyAgICAgICAgKFdlYkNvcmU6OmtleVByZXNzQ29tbWFuZHNNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6YWRkQ2hhcmFjdGVyc1RvS2V5TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZENoYXJh
Y3RlcnNUb1dpbktleU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVLZXlEb3duQ29tbWFu
ZE1hcCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVLZXlQcmVzc0NvbW1hbmRNYXApOgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0S2V5RG93bkNvbW1hbmROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEtleVByZXNzQ29tbWFuZE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGFzdGVib2Fy
ZE5peC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Z2VuZXJhbFBh
c3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6UGFzdGVib2FyZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjp3cml0ZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0
ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpkb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnBs
YWluVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5k
UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpoYXNEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3Jp
dGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZEZpbGVuYW1lcyk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6d3JpdGVQYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXli
b2FyZEV2ZW50Tml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERQSSk6CisgICAgICAgIChXZWJDb3JlOjpz
Y3JlZW5WZXJ0aWNhbERQSSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpzY3JlZW5Jc01vbm9jaHJvbWUpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzY3JlZW5BdmFpbGFibGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OnNjcmVlbkNvbG9yUHJvZmlsZSk6CisgICAgICAgICogcGxhdGZvcm0vbml4L1J1bkxvb3BOaXgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9v
cDo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OmlubmVybW9zdExvb3ApOgorICAg
ICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1
bkxvb3A6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6cXVldWVXb3JrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5M
b29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJC
YXNlOjpjbGVhclRpbWVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJCYXNlOjpz
dG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6c2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OnRpbWVvdXRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZXRTaGFyZWRUaW1lckZp
cmVJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpzdG9wU2hhcmVkVGltZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL25peC9Tb3VuZE5peC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
c3lzdGVtQmVlcCk6CisgICAgICAgICogcGxhdGZvcm0vbml4L1RlbXBvcmFyeUxpbmtTdHVicy5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Z2V0U3VwcG9ydGVkS2V5U2l6ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXaWRnZXQ6OldpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6On5XaWRnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpmcmFtZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2lkZ2V0OjpzZXRGcmFtZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRGb2N1
cyk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEN1cnNvcik6CisgICAgICAgIChXZWJD
b3JlOjpXaWRnZXQ6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpoaWRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0
OjpzZXRJc1NlbGVjdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVTml4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjdXJy
ZW50U2VhcmNoTG9jYWxlSUQpOgorICAgICAgICAoV2ViQ29yZTo6Y3VycmVudFRleHRCcmVha0xv
Y2FsZUlEKToKKwogMjAxMy0wNy0wMiAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29r
LmNvbT4KIAogICAgICAgICBbQ3VybF0gQ3Jhc2ggYWZ0ZXIgZG93bmxvYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXguaCBiL1NvdXJjZS9XVEYvd3Rm
L25peC9GZWF0dXJlRGVmaW5lc05peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzJhZDBlZDI2MTRhNDEyMjY2
YmFiNjNkOTRmYzJiZWVlM2E0NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9u
aXgvRmVhdHVyZURlZmluZXNOaXguaApAQCAtMCwwICsxLDI4MSBAQAorLyoKKyogIENvcHlyaWdo
dCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisqLworCisjaWZuZGVmIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCisjZGVmaW5lIFdURl9G
ZWF0dXJlRGVmaW5lc05peF9oCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfM0RfUkVOREVSSU5HKQor
I2RlZmluZSBFTkFCTEVfM0RfUkVOREVSSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JP
TExJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQkxPQikKKyNkZWZpbmUgRU5B
QkxFX0JMT0IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpCisjZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5V
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVmaW5lIEVO
QUJMRV9DU1MzX1RFWFQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9E
RUNPUkFUSU9OX0JSRUFLKQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19FWENMVVNJT05TKQorI2RlZmlu
ZSBFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
Q1NTX0ZJTFRFUlMpCisjZGVmaW5lIEVOQUJMRV9DU1NfRklMVEVSUyAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pCisjZGVmaW5lIEVOQUJMRV9D
U1NfSU1BR0VfT1JJRU5UQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfU0VUKQorI2RlZmluZSBF
TkFCTEVfQ1NTX0lNQUdFX1NFVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1Nf
UkVHSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NTU19SRUdJT05TIDEKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0NTU19TSEFERVJTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQURFUlMgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1ZBUklBQkxFUykKKyNkZWZpbmUgRU5B
QkxFX0NTU19WQVJJQUJMRVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUxJ
U1RfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfREVUQUlMU19FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREVU
QUlMU19FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkKKyNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9GQVNUX01PQklM
RV9TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSUykKKyNk
ZWZpbmUgRU5BQkxFX0ZJTFRFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlRQ
RElSKQorI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxFX0dBTUVQ
QUQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VTVFVSRV9FVkVOVFMpCisjZGVm
aW5lIEVOQUJMRV9HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9JQ09OREFUQUJBU0UpCisjZGVmaW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKQorI2RlZmluZSBFTkFCTEVfSUZS
QU1FX1NFQU1MRVNTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpCisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSKQorI2RlZmluZSBF
TkFCTEVfSU5TUEVDVE9SX1NFUlZFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKQorI2RlZmluZSBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykK
KyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OKQorI2RlZmluZSBFTkFCTEVf
TEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0xFR0FDWV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UKQorI2RlZmluZSBFTkFCTEVfTExJTlQg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQorI2RlZmluZSBFTkFCTEVf
TUFUSE1MIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisj
ZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX01JQ1JPREFUQSkKKyNkZWZpbmUgRU5BQkxFX01JQ1JPREFUQSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNkZWZpbmUgRU5BQkxF
X05BVklHQVRPUl9DT05URU5UX1VUSUxTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFdPUktfSU5GTykKKyNkZWZpbmUg
RU5BQkxFX05FVFdPUktfSU5GTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTFVH
SU5fUEFDS0FHRV9TSU1QTEVfSEFTSCkKKyNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJ
TVBMRV9IQVNIIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BPUFVQX01FTlVTKQor
I2RlZmluZSBFTkFCTEVfUE9QVVBfTUVOVVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfUFJPR1JFU1NfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisj
ZGVmaW5lIEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9DU1NfU0hBUEVTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQVBFUyAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TSEFSRURfV09SS0VSUykKKyNkZWZpbmUgRU5B
QkxFX1NIQVJFRF9XT1JLRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxFX1NRTF9EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9TVkcpCisjZGVmaW5lIEVOQUJMRV9TVkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfU1ZHX0ZPTlRTKQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRTIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQpCisjZGVmaW5lIEVO
QUJMRV9UT1VDSF9BREpVU1RNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RP
VUNIX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9VTkRPX01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9VTkRPX01BTkFH
RVIgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCisjZGVmaW5lIEVOQUJM
RV9WSURFTyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01F
RElBKQorI2RlZmluZSBFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJH
TCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfU09DS0VUUykKKyNkZWZpbmUg
RU5BQkxFX1dFQl9TT0NLRVRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9U
SU1JTkcpCisjZGVmaW5lIEVOQUJMRV9XRUJfVElNSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9XT1JLRVJTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKQorI2RlZmluZSBFTkFCTEVfWEhS
X1JFU1BPTlNFX0JMT0IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfWFNMVCkKKyNk
ZWZpbmUgRU5BQkxFX1hTTFQgMQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvbml4L1BsYXRmb3JtTml4LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1O
aXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MGQ1M2EzYTI3MGIzODVkYThmNzQ4N2QzMTcxZTY0MjBmNWU1Yjdj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdURl9QbGF0
Zm9ybU5peF9oCisjZGVmaW5lIFdURl9QbGF0Zm9ybU5peF9oCisKKyNkZWZpbmUgV1RGX1BMQVRG
T1JNX05JWCAxCisjZGVmaW5lIEVOQUJMRV9HTE9CQUxfRkFTVE1BTExPQ19ORVcgMAorCisvLyBT
b21lIGJpdHMgY2FuJ3QgYmUgY2hhbmdlZCBhdCBhbGwKKyNkZWZpbmUgV1RGX1VTRV8zRF9HUkFQ
SElDUyAxCisjZGVmaW5lIFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgMQorI2RlZmlu
ZSBXVEZfVVNFX0NBSVJPIDEKKyNkZWZpbmUgV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDUyAx
CisjZGVmaW5lIFdURl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUyAxCisjZGVmaW5l
IFdURl9VU0VfRlJFRVRZUEUgMQorI2RlZmluZSBXVEZfVVNFX0dMSUIgMQorI2RlZmluZSBXVEZf
VVNFX0hBUkZCVVpaIDEKKyNkZWZpbmUgV1RGX1VTRV9IQVJGQlVaWl9ORyAxCisjZGVmaW5lIFdU
Rl9VU0VfSUNVX1VOSUNPREUgMQorI2RlZmluZSBXVEZfVVNFX0lPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSAxCisjZGVmaW5lIFdURl9VU0VfTEVWRUxEQiAxCisjZGVmaW5lIFdURl9VU0Vf
UFRIUkVBRFMgMQorI2RlZmluZSBXVEZfVVNFX1RFWFRVUkVfTUFQUEVSIDEKKyNkZWZpbmUgV1RG
X1VTRV9URVhUVVJFX01BUFBFUl9HTCAxCisjZGVmaW5lIFdURl9VU0VfVElMRURfQkFDS0lOR19T
VE9SRSAxCisjZGVmaW5lIFdURl9VU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCisKKy8vIEVHTC9P
cGVuR0xFUzIgdnMgR0xYCisjaWYgIWRlZmluZWQoV1RGX1VTRV9PUEVOR0xfRVNfMikgfHwgIVdU
Rl9VU0VfT1BFTkdMX0VTXzIKKyNkZWZpbmUgV1RGX1VTRV9PUEVOR0wgMQorI2RlZmluZSBXVEZf
VVNFX0dMWCAxCisjZGVmaW5lIFdURl9QTEFURk9STV9YMTEgMQorI2RlZmluZSBXVEZfVVNFX0dS
QVBISUNTX1NVUkZBQ0UgMQorI2Vsc2UKKyNkZWZpbmUgV1RGX1VTRV9FR0wgMQorI2VuZGlmCisK
Ky8vIFNvdXAgdnMgbGliQ3VybAorI2lmICFkZWZpbmVkKFdURl9VU0VfQ1VSTCkgfHwgIVdURl9V
U0VfQ1VSTAorI2RlZmluZSBXVEZfVVNFX1NPVVAgMQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXguY3NzIGIvU291cmNlL1dl
YkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YjM2NjUyN2I3ZTA1
ODE5NGM1NDE3MTVlZjU3ODhlZDAyNzc0OWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9sc05peC5jc3MKQEAgLTAsMCArMSwyMDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKy8qIE5peFdlYktpdCBtZWRpYSBjb250cm9scy4gRXh0ZW5kcyBtZWRpYUNvbnRyb2xzLmNz
cyAqLworCithdWRpbyB7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMjBweDsKK30K
KworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwsIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Vi
a2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRl
cjsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICBib3R0b206IDA7CisgICAgd2lkdGg6IDEwMCU7CisgICAgei1pbmRleDogMDsKKyAg
ICBvdmVyZmxvdzogaGlkZGVuOworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiBy
aWdodDsKK30KKwordmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcGFuZWwgeworICAgIGJvdHRvbTogMHB4OworfQorCithdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
bXV0ZS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtbXV0ZS1idXR0b247
CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0
OiAyMHB4OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB6LWluZGV4OiAyOworICAgIGJh
Y2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9y
OiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24geworICAgIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247CisgICAgZGlzcGxheTogLXdlYmtpdC1i
b3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIGJhY2tncm91bmQt
Y29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0
OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIs
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciB7CisgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5kOworICAgIGRpc3Bs
YXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAg
ICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDsK
KyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7
CisgICAgaGVpZ2h0OiAyMHB4OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1j
dXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVu
dC10aW1lLWRpc3BsYXkgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY3VycmVudC10
aW1lLWRpc3BsYXk7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICBoZWlnaHQ6IDIwcHg7CisKKyAgICBwYWRkaW5nOiA0cHg7CisK
KyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAxMHB4OworCisgICAgY29s
b3I6IGJsYWNrOworICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CisgICAgd29yZC1zcGFjaW5n
OiBub3JtYWw7CisgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKKyAgICB0ZXh0LXRyYW5zZm9ybTog
bm9uZTsKKyAgICB0ZXh0LWluZGVudDogMDsKKyAgICB0ZXh0LXNoYWRvdzogbm9uZTsKKyAgICB0
ZXh0LWRlY29yYXRpb246IG5vbmU7CisgICAgZm9udC1zdHlsZTogbm9ybWFsOworICAgIGZvbnQt
d2VpZ2h0OiBub3JtYWw7CisgICAgZm9udC1mYW1pbHk6IHNlcmlmOworfQorCithdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKKyAgICBkaXNwbGF5OiBu
b25lOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUgeworICAgIC13ZWJraXQtYXBwZWFyYW5j
ZTogbWVkaWEtc2xpZGVyOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQt
Ym94LWZsZXg6IDE7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHBhZGRpbmc6IDBweCAycHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7CisgICAgbWFyZ2luOiBpbml0aWFsOworfQorCithdWRpbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6IDIwcHg7CisgICAgYm90dG9t
OiAyMHB4OworICAgIHotaW5kZXg6IDE7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1z
bGlkZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlcjsKKyAg
ICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9y
ZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlhbDsK
K30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiB7CisgICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZWRpYS1zZWVrLWJhY2stYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJr
aXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5o
ZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1
dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiB7
CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1zZWVrLWZvcndhcmQtYnV0dG9uOworICAg
IGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBw
eDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsK
KyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
ZnVsbHNjcmVlbi1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3Jl
ZW4tYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWZ1bGxzY3JlZW4tYnV0
dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhl
aWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjog
aW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcmV3aW5kLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3
aW5kLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBp
bml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKwor
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiB7
CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAg
IGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24sIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9u
OworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdo
dDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5p
dGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uOworICAgIGRpc3BsYXk6IG5vbmU7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFD
b250cm9sc05peEZ1bGxzY3JlZW4uY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNOaXhGdWxsc2NyZWVuLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzNkNzA3ZGNhZWVmYzNlYmQwNWFjY2E2
ZjA1MGQzNDc4M2Y5ZjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21l
ZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcwpAQCAtMCwwICsxLDEyOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qIE5peFdl
YktpdCBtZWRpYSBjb250cm9scyBmb3IgZnVsbHNjcmVlbi4gKi8KKwordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13
ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2Vu
dGVyOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIGJvdHRvbTogMDsKKyAgICB3aWR0aDogMTAwJTsKKyAgICB6LWluZGV4OiAwOwor
ICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246
IHJpZ2h0OworfQorCit2aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisK
K3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKKyAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG1lZGlhLXBsYXktYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94
OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsK
K30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIHsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWNvbnRyb2xzLWJhY2tncm91bmQ7CisgICAg
ZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFs
OworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtcGFjazog
ZW5kOworICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDog
bm9uZTsKKyAgICBoZWlnaHQ6IDIwcHg7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LWN1cnJlbnQtdGltZS1kaXNwbGF5OworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Cisg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5n
OiA0cHg7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTBweDsKK30K
KwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7
CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dGltZWxpbmUgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2xpZGVyOworICAgIGRp
c3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CisgICAgaGVpZ2h0
OiAyMHB4OworICAgIHBhZGRpbmc6IDBweCAycHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5p
dGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7CisgICAgbWFy
Z2luOiBpbml0aWFsOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUt
c2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUt
c2xpZGVyLWNvbnRhaW5lcjsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1lZGlhLXZvbHVtZS1zbGlkZXI7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9u
ZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRv
biB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtZnVsbHNjcmVlbi1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7
Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1i
dXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25l
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDE5NzQxODhiMDFkZmU2MzJiNmQ1YzdkMDYxODFlZDQxNTdlNGE3ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAKQEAg
LTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFj
a0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEg
ZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAyMDA5LDIwMTAgUHJvRlVTSU9OIGVtYmVk
ZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOSwyMDEwIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2
ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1
ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XaGVl
bEV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCitj
b25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOworI2VuZGlmCisK
K2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCop
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1
c0RvY3VtZW50VmlldygpCit7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkp
CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJhbWUobV9mcmFt
ZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dp
ZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCkKK3sKKyAgICBS
ZW5kZXJPYmplY3QqIHRhcmdldCA9IGV2ZW50LnRhcmdldE5vZGUoKSA/IGV2ZW50LnRhcmdldE5v
ZGUoKS0+cmVuZGVyZXIoKSA6IDA7CisKKyAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0LT5pc1dp
ZGdldCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcGFzc01vdXNlRG93
bkV2ZW50VG9XaWRnZXQoc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4odGFyZ2V0KS0+d2lkZ2V0
KCkpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9X
aWRnZXQoUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQpCit7CisgICAgcmV0dXJuIHBhc3NNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KHJlbmRlcldpZGdldC0+d2lkZ2V0KCkpOworfQorCitib29sIEV2
ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0KikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRs
ZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2
ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50LCBXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQod2lkZ2V0KTsKKyAgICBp
ZiAoIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFu
ZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKK30KKworI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCitQYXNzUmVmUHRyPENsaXBib2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0NsaXBib2FyZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yRHJh
Z0FuZERyb3AoKTsKK30KKyNlbmRpZgorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJl
c3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFt
ZSogc3ViZnJhbWUpCit7CisgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3Vz
ZVByZXNzRXZlbnQobWV2LmV2ZW50KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEV2
ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSwgSGl0VGVzdFJlc3VsdCogaG92ZXJl
ZE5vZGUpCit7CisgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVF
dmVudChtZXYuZXZlbnQoKSwgaG92ZXJlZE5vZGUpOworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFzZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKK3sKKyAgICBzdWJm
cmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KG1ldi5ldmVudCgp
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWduZWQgRXZlbnRIYW5kbGVyOjphY2Nlc3NL
ZXlNb2RpZmllcnMoKQoreworICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpBbHRLZXk7Cit9Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RnJvbUN1cnJlbnRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmI2ZWYxYjY1MmQ3
MjQ2OTZiZmZkNjVjMzUwNTQyZWFjYmVkMzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNwcApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4dEZyb21DdXJyZW50RUdMLmgiCisKKyNpbmNs
dWRlICJPcGVuR0xTaGltcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8
R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w+IEdMQ29udGV4dEZyb21DdXJyZW50RUdMOjpjcmVhdGVG
cm9tQ3VycmVudEdMQ29udGV4dCgpCit7CisgICAgaWYgKCFpbml0aWFsaXplKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgR0xDb250ZXh0RnJvbUN1
cnJlbnRFR0woKSk7Cit9CisKK0dMQ29udGV4dEZyb21DdXJyZW50RUdMOjpHTENvbnRleHRGcm9t
Q3VycmVudEVHTCgpCisgICAgOiBtX2Rpc3BsYXkoZWdsR2V0Q3VycmVudERpc3BsYXkoKSkKKyAg
ICAsIG1fc3VyZmFjZShlZ2xHZXRDdXJyZW50U3VyZmFjZShFR0xfRFJBVykpCisgICAgLCBtX2Nv
bnRleHQoZWdsR2V0Q3VycmVudENvbnRleHQoKSkKK3sKK30KKworYm9vbCBHTENvbnRleHRGcm9t
Q3VycmVudEVHTDo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBHTENvbnRleHQ6Om1ha2VD
b250ZXh0Q3VycmVudCgpOworICAgIHJldHVybiBlZ2xNYWtlQ3VycmVudChtX2Rpc3BsYXksIG1f
c3VyZmFjZSwgbV9zdXJmYWNlLCBtX2NvbnRleHQpOworfQorCitib29sIEdMQ29udGV4dEZyb21D
dXJyZW50RUdMOjppbml0aWFsaXplKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9
IGZhbHNlOworICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOworICAgIGlmICghaW5pdGlh
bGl6ZWQpIHsKKyAgICAgICAgc3VjY2VzcyA9IGluaXRpYWxpemVPcGVuR0xTaGltcygpOworICAg
ICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorICAgIHJldHVybiBzdWNjZXNzOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk1ZWZjOWY4NDMyNDk4YmY1NDUxZWIxNTcwNmI2ZGE3MTUyYzA3YmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RnJvbUN1cnJlbnRFR0wuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBHTENvbnRleHRGcm9tQ3VycmVudEVHTF9oCisjZGVmaW5lIEdMQ29u
dGV4dEZyb21DdXJyZW50RUdMX2gKKworI2luY2x1ZGUgIkdMQ29udGV4dC5oIgorI2luY2x1ZGUg
PEVHTC9lZ2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHTENvbnRleHRGcm9t
Q3VycmVudEVHTCA6IHB1YmxpYyBHTENvbnRleHQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEdMQ29udGV4dEZyb21DdXJyZW50RUdMKTsKK3B1YmxpYzoKKyAgICAvLyBUT0RPOiBBZGQgc3Vw
cG9ydCBmb3IgT2Zmc2NyZWVuIGJ1ZmZlcnMuCisgICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250
ZXh0RnJvbUN1cnJlbnRFR0w+IGNyZWF0ZUZyb21DdXJyZW50R0xDb250ZXh0KCk7CisKKyAgICB2
aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICAvLyBUaGVzZSBhcmUgbm90
IHVzZWQgYnkgTml4LgorICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIHsgfQorICAgIHZp
cnR1YWwgSW50U2l6ZSBkZWZhdWx0RnJhbWVCdWZmZXJTaXplKCkgeyByZXR1cm4gSW50U2l6ZSgp
OyB9CisgICAgdmlydHVhbCBjYWlyb19kZXZpY2VfdCogY2Fpcm9EZXZpY2UoKSB7IHJldHVybiAw
OyB9CisKKyAgICAvLyBUT0RPOiBUaGlzIGlzIG5vdCB1c2VkIGluIEdMQ29udGV4dCBpbnRlcmZh
Y2UsIGl0J3MgdXNlZCBieQorICAgIC8vIEdMQ29udGV4dEdMWCBvbmx5IGFzIGFuIGltcGxlbWVu
dGF0aW9uIGRldGFpbC4KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVi
dWZmZXIoKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgLy8gVE9ETzogVXNlZCBvbmx5IGFzIGEg
a2V5IGluIEhhc2hNYXBzLCBzZWUgaWYgd2UgY2FuIGNoYW5nZSBXZWJLaXQgY29kZSB0byBub3QK
KyAgICAvLyByZWx5IG9uIHRoaXMgYW55bW9yZSAoYXQgbGVhc3QgaW4gb3VyIHBsYXRmb3JtKS4K
KyAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkg
eyByZXR1cm4gdGhpczsgfQorICAgIHZpcnR1YWwgdm9pZCB3YWl0TmF0aXZlKCkgeyByZXR1cm47
IH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplKCk7CisKKyAgICBHTENv
bnRleHRGcm9tQ3VycmVudEVHTCgpOworCisgICAgRUdMRGlzcGxheSBtX2Rpc3BsYXk7CisgICAg
RUdMU3VyZmFjZSBtX3N1cmZhY2U7CisgICAgRUdMQ29udGV4dCBtX2NvbnRleHQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHTENvbnRleHRGcm9tQ3VycmVudEVH
TF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmQ5ZGEyZjkwZDZiNjAzNzE0MzMwZjM5NmY0MTViMDg2NzNkMDY0MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZp
ZGVvV2luZG93Tml4LmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvV2luZG93LmgiCisKKyNpZiBVU0UoR1NUUkVBTUVSKSAm
JiAhZGVmaW5lZChHU1RfQVBJX1ZFUlNJT05fMSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitQbGF0Zm9ybVZpZGVvV2luZG93OjpQ
bGF0Zm9ybVZpZGVvV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitQbGF0
Zm9ybVZpZGVvV2luZG93Ojp+UGxhdGZvcm1WaWRlb1dpbmRvdygpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBQbGF0Zm9ybVZpZGVvV2luZG93OjpwcmVwYXJlRm9yT3Zlcmxh
eShHc3RNZXNzYWdlKikKK3sKK30KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpICYmICFkZWZp
bmVkKEdTVF9BUElfVkVSU0lPTl8xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbml4L0ljb25OaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbml4L0ljb25OaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkM2Y4ZDMyZTRkMzBiNDRkYzAzNjE3
ODk1NDljM2JhNzJiOWEyYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIklj
b24uaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJY29uOjp+SWNvbigpCit7
Cit9CisKK1Bhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMGIyNGJlNTM2
MDJhMThmYTQ4MmIxYWQ2MzczOGM0ODM5MDVmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQml0
bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQoreworfQorCitzdGF0aWMgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCkKK3sK
KyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsgLy8gVE9ETzogZmFsbGJhY2sgaW1h
Z2U/Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hh
cmVkQnVmZmVyKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
YnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUobWFrZVN0cmlu
ZyhEQVRBX0RJUiAiL3dlYmtpdC0xLjAvaW1hZ2VzLyIsIG5hbWUsICIucG5nIikpOworICAgIGlm
IChidWZmZXIpCisgICAgICAgIHJldHVybiBidWZmZXIucmVsZWFzZSgpOworICAgIHJldHVybiBs
b2FkUmVzb3VyY2VTaGFyZWRCdWZmZXJGYWxsYmFjaygpOworfQorCitQYXNzUmVmUHRyPEltYWdl
PiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBS
ZWZQdHI8Qml0bWFwSW1hZ2U+IGltZyA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKKyAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXIobmFtZSk7
CisgICAgaW1nLT5zZXREYXRhKGJ1ZmZlci5yZWxlYXNlKCksIHRydWUpOworICAgIHJldHVybiBp
bWcucmVsZWFzZSgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvQ3Vyc29yTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9DdXJzb3JO
aXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3N2VmMGNjZTNiZTk3ZmVhYWQ0OGY2Nzg3MDU1NmRiOGExMTUy
YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29y
Tml4LmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBEaXJr
IE11ZWxsZXIgPG11ZWxsZXJAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBHZW9yZ2Ug
U3RhaWtvcyA8c3RhaWtvc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IENoYXJsZXMg
U2FtdWVscyA8Y2hhcmxlc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEhvbGdlciBI
YW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRl
ZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXJzb3I6OkN1cnNvcihjb25zdCBD
dXJzb3ImIG90aGVyKQorICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKKyAgICAsIG1faW1hZ2Uo
b3RoZXIubV9pbWFnZSkKKyAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCisgICAgLCBt
X3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCit7Cit9CisKK0N1cnNvcjo6
fkN1cnNvcigpCit7Cit9CisKK0N1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29y
JiBvdGhlcikKK3sKKyAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7CisgICAgbV9pbWFnZSA9IG90
aGVyLm1faW1hZ2U7CisgICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OworICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOworICAgIHJldHVybiAqdGhpczsK
K30KKworc3RhdGljIGNvbnN0IGNoYXIqIGN1cnNvclN0cmluZyhDdXJzb3I6OlR5cGUgdHlwZSkK
K3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nc1tdID0geworICAgICAgICAi
Y3Vyc29yL3BvaW50ZXIiLAorICAgICAgICAiY3Vyc29yL2Nyb3NzIiwKKyAgICAgICAgImN1cnNv
ci9oYW5kIiwKKyAgICAgICAgImN1cnNvci9pX2JlYW0iLAorICAgICAgICAiY3Vyc29yL3dhaXQi
LAorICAgICAgICAiY3Vyc29yL2hlbHAiLAorICAgICAgICAiY3Vyc29yL2Vhc3RfcmVzaXplIiwK
KyAgICAgICAgImN1cnNvci9ub3J0aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vh
c3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF93ZXN0X3Jlc2l6ZSIsCisgICAgICAg
ICJjdXJzb3Ivc291dGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9lYXN0X3Jlc2l6
ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29y
L3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9zb3V0aF9yZXNpemUiLAorICAg
ICAgICAiY3Vyc29yL2Vhc3Rfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vh
c3Rfc291dGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3Rfc291dGhf
ZWFzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL2NvbHVtbl9yZXNpemUiLAorICAgICAgICAi
Y3Vyc29yL3Jvd19yZXNpemUiLAorICAgICAgICAiY3Vyc29yL21pZGRsZV9wYW5uaW5nIiwKKyAg
ICAgICAgImN1cnNvci9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX3Bhbm5p
bmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vhc3RfcGFubmluZyIsCisgICAgICAgICJjdXJz
b3Ivbm9ydGhfd2VzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9wYW5uaW5nIiwK
KyAgICAgICAgImN1cnNvci9zb3V0aF9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL3Nv
dXRoX3dlc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivd2VzdF9wYW5uaW5nIiwKKyAgICAg
ICAgImN1cnNvci9tb3ZlIiwKKyAgICAgICAgImN1cnNvci92ZXJ0aWNhbF90ZXh0IiwKKyAgICAg
ICAgImN1cnNvci9jZWxsIiwKKyAgICAgICAgImN1cnNvci9jb250ZXh0X21lbnUiLAorICAgICAg
ICAiY3Vyc29yL2FsaWFzIiwKKyAgICAgICAgImN1cnNvci9wcm9ncmVzcyIsCisgICAgICAgICJj
dXJzb3Ivbm9fZHJvcCIsCisgICAgICAgICJjdXJzb3IvY29weSIsCisgICAgICAgICJjdXJzb3Iv
bm9uZSIsCisgICAgICAgICJjdXJzb3Ivbm90X2FsbG93ZWQiLAorICAgICAgICAiY3Vyc29yL3pv
b21faW4iLAorICAgICAgICAiY3Vyc29yL3pvb21fb3V0IiwKKyAgICAgICAgImN1cnNvci9ncmFi
IiwKKyAgICAgICAgImN1cnNvci9ncmFiYmluZyIsCisgICAgICAgICIifTsgLy8gRklYTUU6IEp1
c3QgcmV0dXJuICIiIGZvciBjdXN0b20gdHlwZS4gV2UgZG9uJ3Qgc3VwcG9ydCBpdCBub3cuCisg
ICAgcmV0dXJuIGN1cnNvclN0cmluZ3NbdHlwZV07Cit9CisKK3ZvaWQgQ3Vyc29yOjplbnN1cmVQ
bGF0Zm9ybUN1cnNvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fcGxhdGZvcm1DdXJzb3IpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yU3RyaW5nKG1fdHlwZSk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnRGF0
YU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlmZmI2OTg2YWZhNGYyMWViMDI3NTc3YjZmMWFjMTY0OTcxNWM3NzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3Bw
CkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgRHJhZ0RhdGE6OmNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0NvbG9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9m
RmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit2b2lkIERyYWdEYXRhOjphc0Zp
bGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYpIGNvbnN0Cit7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNv
bnRhaW5zUGxhaW5UZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmlu
ZyBEcmFnRGF0YTo6YXNQbGFpblRleHQoRnJhbWUqKSBjb25zdAoreworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworQ29sb3IgRHJhZ0RhdGE6OmFzQ29sb3IoKSBjb25zdAoreworICAgIHJldHVy
biBDb2xvcigpOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0NvbXBhdGlibGVDb250ZW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRh
aW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5KSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworU3RyaW5nIERyYWdEYXRhOjphc1VSTChGcmFtZSosIEZpbGVuYW1l
Q29udmVyc2lvblBvbGljeSwgU3RyaW5nKikgY29uc3QKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0RhdGE6OmFzRnJhZ21lbnQo
RnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwgYm9vbCYpIGNvbnN0Cit7CisgICAgcmV0
dXJuIDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9E
cmFnSW1hZ2VOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJbWFnZU5p
eC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGRhYzg2MTJjMTNiZjU5ZjVlNTQzOTE2ZDEyODdmZWZjZjhiZjA1
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnSW1h
Z2VOaXguY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
MyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCisKKyNpbmNsdWRl
ICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRTaXplIGRyYWdJbWFnZVNpemUo
RHJhZ0ltYWdlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEludFNp
emUoMCwgMCk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJh
Z0ltYWdlUmVmIGltYWdlLCBGbG9hdFNpemUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJh
Y3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJh
Z0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENhY2hlZEltYWdlKikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25p
eC9FcnJvcnNOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NzA0YWQzMTg5MjY3NDVmNDNkODZlZmIxMTM0
MzUxNmM2ZDk2MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvRXJyb3JzTml4LmNwcApAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnNOaXguaCIK
KworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJQcmludENvbnRleHQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLnN0
cmluZygpLCAiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIpOworfQorCitSZXNvdXJjZUVycm9yIGJs
b2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVz
dHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCksICJOb3QgYWxsb3dlZCB0byB1c2Ug
cmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiKTsKK30KKworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkws
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCksICJVUkwgY2Fubm90IGJlIHNob3duIik7Cit9CisKK1Jl
c291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwg
cmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIik7Cit9
CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKS5z
dHJpbmcoKSwgIkNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUg
c2hvd24iKTsKK30KKworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25z
ZS51cmwoKS5zdHJpbmcoKSwgIkZpbGUgZG9lcyBub3QgZXhpc3QiKTsKK30KKworUmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUGx1Z2luLCBQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgIlBsdWdp
biB3aWxsIGhhbmRsZSBsb2FkIik7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3Jr
RXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBu
ZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRp
b24oKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCBy
ZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIpOwor
fQorCitSZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRl
c3RpbmF0aW9uLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgZXJyb3JNZXNzYWdlKTsKK30KKwor
UmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0
LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9j
dW1lbnRMb2FkZXIgPSBwcmludENvbnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExv
YWRlcigpOworCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJp
bnRFcnJvckdlbmVyYWwsIGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgpIDog
S1VSTCgpLCBlcnJvck1lc3NhZ2UpOworfQorCitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3Vu
ZEVycm9yKGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0KQoreworICAgIERvY3VtZW50
TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IHByaW50Q29udGV4dC0+ZnJhbWUoKS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCk7CisKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
blByaW50LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBkb2N1bWVudExvYWRlciA/IGRvY3Vt
ZW50TG9hZGVyLT51cmwoKSA6IEtVUkwoKSwgIlByaW50ZXIgbm90IGZvdW5kIik7Cit9CisKK1Jl
c291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgUHJpbnRDb250ZXh0KiBw
cmludENvbnRleHQpCit7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gcHJp
bnRDb250ZXh0LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKKworICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JJbnZhbGlkUGFn
ZVJhbmdlLCBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50TG9hZGVyLT51cmwoKSA6IEtVUkwoKSwg
IkludmFsaWQgcGFnZSByYW5nZSIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQxOTgwYTM2MGFj
NWE4MWNkZWMzOGVjYWQyNGM0ZTQ3YWY4OTlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9FcnJvcnNOaXguaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXJyb3JzTml4X2gKKyNkZWZpbmUg
RXJyb3JzTml4X2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFByaW50Q29udGV4dDsKK2NsYXNzIFJlc291cmNlRXJyb3I7
CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworCitzdGF0
aWMgY29uc3QgY2hhciBlcnJvckRvbWFpbk5ldHdvcmtbXSA9ICJXZWJLaXROZXR3b3JrRXJyb3Ii
Oworc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Qb2xpY3lbXSA9ICJXZWJLaXRQb2xpY3lF
cnJvciI7CitzdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblBsdWdpbltdID0gIldlYktpdFBs
dWdpbkVycm9yIjsKK3N0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluRG93bmxvYWRbXSA9ICJX
ZWJLaXREb3dubG9hZEVycm9yIjsKK3N0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUHJpbnRb
XSA9ICJXZWJLaXRQcmludEVycm9yIjsKKworZW51bSBOZXR3b3JrRXJyb3IgeworICAgIE5ldHdv
cmtFcnJvckZhaWxlZCA9IDM5OSwKKyAgICBOZXR3b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDAsCisg
ICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAorICAgIE5ldHdvcmtFcnJvckNh
bmNlbGxlZCA9IDMwMiwKKyAgICBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzCit9
OworCisvLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQgRXJyb3JzIGF0OgorLy8gU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnNbUHJpdmF0ZV0uaAorZW51bSBQb2xpY3lFcnJvciB7
CisgICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTksCisgICAgUG9saWN5RXJyb3JDYW5ub3RTaG93
TWltZVR5cGUgPSAxMDAsCisgICAgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAorICAg
IFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKKyAg
ICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzCit9OworCitlbnVtIFBs
dWdpbkVycm9yIHsKKyAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5OSwKKyAgICBQbHVnaW5FcnJv
ckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCisgICAgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2lu
ID0gMjAxLAorICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlID0gMjAyLAorICAgIFBsdWdp
bkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKKyAgICBQbHVnaW5FcnJvcldpbGxIYW5k
bGVMb2FkID0gMjA0Cit9OworCitlbnVtIERvd25sb2FkRXJyb3IgeworICAgIERvd25sb2FkRXJy
b3JOZXR3b3JrID0gNDk5LAorICAgIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIgPSA0MDAs
CisgICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCit9OworCitlbnVtIFByaW50RXJy
b3IgeworICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAorICAgIFByaW50RXJyb3JQcmludGVy
Tm90Rm91bmQgPSA1MDAsCisgICAgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UgPSA1MDEKK307
CisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1Jl
c291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwor
UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpOworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5k
bGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3du
bG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJik7CitSZXNvdXJjZUVycm9yIGRv
d25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworUmVz
b3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKK1Jlc291cmNlRXJyb3IgcHJpbnRFcnJv
cihjb25zdCBQcmludENvbnRleHQqLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CitSZXNv
dXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFByaW50Q29udGV4dCopOworUmVz
b3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBQcmludENvbnRleHQqKTsK
KworfQorCisjZW5kaWYgLy8gRXJyb3JzTml4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9GaWxlU3lzdGVtTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25peC9GaWxlU3lzdGVtTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmEzN2EyNzBmZTIxZTk4MzFjNGFh
YzU0NDgxNDUxMDIwNGQ4OWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbml4L0ZpbGVTeXN0ZW1OaXguY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhLCBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy
MDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCisjaW5jbHVkZSAiRmlsZU1l
dGFkYXRhLmgiCisjaW5jbHVkZSAiVVVJRC5oIgorI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNs
dWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworLyogT24gbGludXggZmlsZSBuYW1lcyBhcmUganVzdCByYXcgYnl0ZXMsIHNvIGFs
c28gc3RyaW5ncyB0aGF0IGNhbm5vdCBiZSBlbmNvZGVkIGluIGFueSB3YXkKKyAqIGFyZSB2YWxp
ZCBmaWxlIG5hbWVzLiBUaGlzIG1lYW4gdGhhdCB3ZSBjYW5ub3QganVzdCBzdG9yZSBhIGZpbGUg
bmFtZSBhcy1pcyBpbiBhIFN0cmluZworICogYnV0IHdlIGhhdmUgdG8gZXNjYXBlIGl0LgorICog
T24gV2luZG93cyB0aGUgR0xpYiBmaWxlIG5hbWUgZW5jb2RpbmcgaXMgYWx3YXlzIFVURi04IHNv
IHdlIGNhbiBvcHRpbWl6ZSB0aGlzIGNhc2UuICovCitTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhj
b25zdCBjaGFyKiBmaWxlbmFtZSkKK3sKKyAgICBpZiAoIWZpbGVuYW1lKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisKKyAgICBHT3duUHRyPGdjaGFyPiBlc2NhcGVkU3RyaW5nKGdfdXJpX2Vz
Y2FwZV9zdHJpbmcoZmlsZW5hbWUsICIvOiIsIGZhbHNlKSk7CisgICAgcmV0dXJuIGVzY2FwZWRT
dHJpbmcuZ2V0KCk7Cit9CisKK0NTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0
IFN0cmluZyYgcGF0aCkKK3sKKyAgICBHT3duUHRyPGdjaGFyPiBmaWxlbmFtZShnX3VyaV91bmVz
Y2FwZV9zdHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCAwKSk7CisgICAgcmV0dXJuIGZpbGVuYW1l
LmdldCgpOworfQorCisvLyBDb252ZXJ0cyBhIHN0cmluZyB0byBzb21ldGhpbmcgc3VpdGFibGUg
dG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgorU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShj
b25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHN0cmluZyk7CisgICAgR093blB0cjxnY2hhcj4gZGlzcGxheShnX2Zp
bGVuYW1lX3RvX3V0ZjgoZmlsZW5hbWUuZGF0YSgpLCAwLCAwLCAwLCAwKSk7CisgICAgaWYgKCFk
aXNwbGF5KQorICAgICAgICByZXR1cm4gc3RyaW5nOworCisgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoZGlzcGxheS5nZXQoKSk7Cit9CisKK2Jvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcm
IHBhdGgpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBDU3RyaW5nIGZpbGVuYW1l
ID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworCisgICAgaWYgKCFmaWxlbmFtZS5p
c051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gZ19maWxlX3Rlc3QoZmlsZW5hbWUuZGF0YSgpLCBH
X0ZJTEVfVEVTVF9FWElTVFMpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBkZWxl
dGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisK
KyAgICBpZiAoIWZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXN1bHQgPSAhZ19yZW1vdmUo
ZmlsZW5hbWUuZGF0YSgpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgZGVsZXRl
RW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIGJvb2wgcmVzdWx0ID0g
ZmFsc2U7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihw
YXRoKTsKKworICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJlc3VsdCA9ICFn
X3JtZGlyKGZpbGVuYW1lLmRhdGEoKSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29s
IGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQor
eworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7
CisgICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OworICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVuYW1l
LmRhdGEoKSwgJnN0YXRSZXN1bHQpOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJlc3VsdFNpemUgPSBzdGF0UmVzdWx0LnN0X3NpemU7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBw
YXRoLCB0aW1lX3QmIG1vZGlmaWVkVGltZSkKK3sKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1N0YXRCdWYgc3RhdFJlc3VsdDsKKyAgICBn
aW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZS5kYXRhKCksICZzdGF0UmVzdWx0KTsKKyAgICBp
ZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtb2RpZmllZFRpbWUgPSBz
dGF0UmVzdWx0LnN0X210aW1lOworICAgIHJldHVybiB0cnVlOworCit9CisKK2Jvb2wgZ2V0Rmls
ZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK3sK
KyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwor
ICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
c3RydWN0IHN0YXQgc3RhdFJlc3VsdDsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFt
ZS5kYXRhKCksICZzdGF0UmVzdWx0KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBtZXRhZGF0YS5tb2RpZmljYXRpb25UaW1lID0gc3RhdFJlc3VsdC5zdF9t
dGltZTsKKyAgICBtZXRhZGF0YS5sZW5ndGggPSBzdGF0UmVzdWx0LnN0X3NpemU7CisgICAgbWV0
YWRhdGEudHlwZSA9IFNfSVNESVIoc3RhdFJlc3VsdC5zdF9tb2RlKSA/IEZpbGVNZXRhZGF0YTo6
VHlwZURpcmVjdG9yeSA6IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7CisgICAgcmV0dXJuIHRydWU7
CisKK30KKworU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KQoreworICAgIGlmIChwYXRoLmVuZHNXaXRoKEdf
RElSX1NFUEFSQVRPUl9TKSkKKyAgICAgICAgcmV0dXJuIHBhdGggKyBjb21wb25lbnQ7CisgICAg
cmV0dXJuIHBhdGggKyBHX0RJUl9TRVBBUkFUT1JfUyArIGNvbXBvbmVudDsKK30KKworYm9vbCBt
YWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIENTdHJpbmcgZmls
ZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZpbGVuYW1l
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBnaW50IHJlc3VsdCA9IGdf
bWtkaXJfd2l0aF9wYXJlbnRzKGZpbGVuYW1lLmRhdGEoKSwgU19JUldYVSk7CisKKyAgICByZXR1
cm4gIXJlc3VsdDsKK30KKworU3RyaW5nIGhvbWVEaXJlY3RvcnlQYXRoKCkKK3sKKyAgICByZXR1
cm4gZmlsZW5hbWVUb1N0cmluZyhnX2dldF9ob21lX2RpcigpKTsKK30KKworU3RyaW5nIHBhdGhH
ZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGhOYW1lKQoreworICAgIGlmIChwYXRoTmFtZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBwYXRoTmFtZTsKKworICAgIENTdHJpbmcgdG1wRmls
ZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aE5hbWUpOworICAgIEdPd25QdHI8
Z2NoYXI+IGJhc2VOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodG1wRmlsZW5hbWUuZGF0YSgpKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoYmFzZU5hbWUuZ2V0KCkpOworfQorCitDU3Ry
aW5nIGFwcGxpY2F0aW9uRGlyZWN0b3J5UGF0aCgpCit7CisgICAgQ1N0cmluZyBwYXRoID0gZ2V0
Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFwYXRoLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm4gcGF0aDsKKworICAgIC8vIElmIHRoZSBhYm92ZSBmYWlscywgY2hlY2sgdGhlIFBB
VEggZW52IHZhcmlhYmxlLgorICAgIEdPd25QdHI8Y2hhcj4gY3VycmVudEV4ZVBhdGgoZ19maW5k
X3Byb2dyYW1faW5fcGF0aChnX2dldF9wcmduYW1lKCkpKTsKKyAgICBpZiAoIWN1cnJlbnRFeGVQ
YXRoLmdldCgpKQorICAgICAgICByZXR1cm4gQ1N0cmluZygpOworCisgICAgR093blB0cjxjaGFy
PiBkaXJuYW1lKGdfcGF0aF9nZXRfZGlybmFtZShjdXJyZW50RXhlUGF0aC5nZXQoKSkpOworICAg
IHJldHVybiBkaXJuYW1lLmdldCgpOworfQorCitDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgo
KQoreworICAgIHN0YXRpYyBDU3RyaW5nIGNhY2hlZFBhdGg7CisgICAgaWYgKCFjYWNoZWRQYXRo
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gY2FjaGVkUGF0aDsKKworICAgIEdPd25QdHI8Z2No
YXI+IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRuaXgiLCBOVUxM
KSk7CisKKyAgICBjYWNoZWRQYXRoID0gZGF0YVBhdGguZ2V0KCk7CisgICAgcmV0dXJuIGNhY2hl
ZFBhdGg7Cit9CisKK3VpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFy
KiBwYXRoKQoreworICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25l
d19mb3JfcGF0aChwYXRoKSk7CisgICAgR1JlZlB0cjxHRmlsZUluZm8+IGZpbGVJbmZvID0gYWRv
cHRHUmVmKGdfZmlsZV9xdWVyeV9maWxlc3lzdGVtX2luZm8oZmlsZS5nZXQoKSwgR19GSUxFX0FU
VFJJQlVURV9GSUxFU1lTVEVNX0ZSRUUsIDAsIDApKTsKKyAgICBpZiAoIWZpbGVJbmZvKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBnX2ZpbGVfaW5mb19nZXRfYXR0cmlidXRlX3Vp
bnQ2NChmaWxlSW5mby5nZXQoKSwgR19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX0ZSRUUpOwor
fQorCitTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgLyog
Tm8gbnVsbCBjaGVja2luZyBuZWVkZWQgKi8KKyAgICBHT3duUHRyPGNoYXI+IGRpcm5hbWUoZ19w
YXRoX2dldF9kaXJuYW1lKGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKS5kYXRhKCkpKTsK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChkaXJuYW1lLmdldCgpKTsKK30KKworVmVjdG9y
PFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYg
ZmlsdGVyKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGVudHJpZXM7CisKKyAgICBDU3RyaW5nIGZp
bGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIEdEaXIqIGRpciA9
IGdfZGlyX29wZW4oZmlsZW5hbWUuZGF0YSgpLCAwLCAwKTsKKyAgICBpZiAoIWRpcikKKyAgICAg
ICAgcmV0dXJuIGVudHJpZXM7CisKKyAgICBHUGF0dGVyblNwZWMqIHBzcGVjID0gZ19wYXR0ZXJu
X3NwZWNfbmV3KChmaWx0ZXIudXRmOCgpKS5kYXRhKCkpOworICAgIHdoaWxlIChjb25zdCBjaGFy
KiBuYW1lID0gZ19kaXJfcmVhZF9uYW1lKGRpcikpIHsKKyAgICAgICAgaWYgKCFnX3BhdHRlcm5f
bWF0Y2hfc3RyaW5nKHBzcGVjLCBuYW1lKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIEdPd25QdHI8Z2NoYXI+IGVudHJ5KGdfYnVpbGRfZmlsZW5hbWUoZmlsZW5hbWUuZGF0YSgp
LCBuYW1lLCBOVUxMKSk7CisgICAgICAgIGVudHJpZXMuYXBwZW5kKGZpbGVuYW1lVG9TdHJpbmco
ZW50cnkuZ2V0KCkpKTsKKyAgICB9CisgICAgZ19wYXR0ZXJuX3NwZWNfZnJlZShwc3BlYyk7Cisg
ICAgZ19kaXJfY2xvc2UoZGlyKTsKKworICAgIHJldHVybiBlbnRyaWVzOworfQorCitTdHJpbmcg
b3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRs
ZSYgaGFuZGxlKQoreworICAgIEdPd25QdHI8Z2NoYXI+IGZpbGVuYW1lKGdfc3RyZHVwX3ByaW50
ZigiJXMlcyIsIHByZWZpeC51dGY4KCkuZGF0YSgpLCBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdPd25QdHI8Z2NoYXI+IHRlbXBQYXRoKGdfYnVpbGRf
ZmlsZW5hbWUoZ19nZXRfdG1wX2RpcigpLCBmaWxlbmFtZS5nZXQoKSwgTlVMTCkpOworICAgIEdS
ZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aCh0ZW1wUGF0
aC5nZXQoKSkpOworCisgICAgaGFuZGxlID0gZ19maWxlX2NyZWF0ZV9yZWFkd3JpdGUoZmlsZS5n
ZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAwKTsKKyAgICBpZiAoIWlzSGFuZGxlVmFsaWQo
aGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KHRlbXBQYXRoLmdldCgpKTsKK30KKworUGxhdGZvcm1GaWxlSGFuZGxlIG9wZW5GaWxl
KGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlIG1vZGUpCit7CisgICAgQ1N0cmluZyBm
c1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZnNSZXAuaXNO
dWxsKCkpCisgICAgICAgIHJldHVybiBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCisgICAg
R1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKGZzUmVw
LmRhdGEoKSkpOworICAgIEdGaWxlSU9TdHJlYW0qIGlvU3RyZWFtID0gMDsKKyAgICBpZiAobW9k
ZSA9PSBPcGVuRm9yUmVhZCkKKyAgICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfb3Blbl9yZWFkd3Jp
dGUoZmlsZS5nZXQoKSwgMCwgMCk7CisgICAgZWxzZSBpZiAobW9kZSA9PSBPcGVuRm9yV3JpdGUp
IHsKKyAgICAgICAgaWYgKGdfZmlsZV90ZXN0KGZzUmVwLmRhdGEoKSwgc3RhdGljX2Nhc3Q8R0Zp
bGVUZXN0PihHX0ZJTEVfVEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19SRUdVTEFSKSkpCisg
ICAgICAgICAgICBpb1N0cmVhbSA9IGdfZmlsZV9vcGVuX3JlYWR3cml0ZShmaWxlLmdldCgpLCAw
LCAwKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfY3JlYXRl
X3JlYWR3cml0ZShmaWxlLmdldCgpLCBHX0ZJTEVfQ1JFQVRFX05PTkUsIDAsIDApOworICAgIH0K
KworICAgIHJldHVybiBpb1N0cmVhbTsKK30KKwordm9pZCBjbG9zZUZpbGUoUGxhdGZvcm1GaWxl
SGFuZGxlJiBoYW5kbGUpCit7CisgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGdfaW9fc3RyZWFtX2Nsb3NlKEdfSU9fU1RSRUFNKGhhbmRsZSks
IDAsIDApOworICAgIGdfb2JqZWN0X3VucmVmKGhhbmRsZSk7CisgICAgaGFuZGxlID0gaW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZTsKK30KKworbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmls
ZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luIG9yaWdpbikK
K3sKKyAgICBHU2Vla1R5cGUgc2Vla1R5cGUgPSBHX1NFRUtfU0VUOworICAgIHN3aXRjaCAob3Jp
Z2luKSB7CisgICAgY2FzZSBTZWVrRnJvbUJlZ2lubmluZzoKKyAgICAgICAgc2Vla1R5cGUgPSBH
X1NFRUtfU0VUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlZWtGcm9tQ3VycmVudDoKKyAg
ICAgICAgc2Vla1R5cGUgPSBHX1NFRUtfQ1VSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNl
ZWtGcm9tRW5kOgorICAgICAgICBzZWVrVHlwZSA9IEdfU0VFS19FTkQ7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKwor
ICAgIGlmICghZ19zZWVrYWJsZV9zZWVrKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X2lucHV0
X3N0cmVhbShHX0lPX1NUUkVBTShoYW5kbGUpKSksIG9mZnNldCwgc2Vla1R5cGUsIDAsIDApKQor
ICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIGdfc2Vla2FibGVfdGVsbChHX1NFRUtBQkxF
KGdfaW9fc3RyZWFtX2dldF9pbnB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpKTsKK30K
KworaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBsZW5ndGgpCit7CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIGdfb3V0
cHV0X3N0cmVhbV93cml0ZV9hbGwoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19T
VFJFQU0oaGFuZGxlKSksIGRhdGEsIGxlbmd0aCwgJmJ5dGVzV3JpdHRlbiwgMCwgMCk7CisgICAg
cmV0dXJuIGJ5dGVzV3JpdHRlbjsKK30KKworaW50IHJlYWRGcm9tRmlsZShQbGF0Zm9ybUZpbGVI
YW5kbGUgaGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIEdPd25QdHI8R0Vy
cm9yPiBlcnJvcjsKKyAgICBkbyB7CisgICAgICAgIGdzc2l6ZSBieXRlc1JlYWQgPSBnX2lucHV0
X3N0cmVhbV9yZWFkKGdfaW9fc3RyZWFtX2dldF9pbnB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFu
ZGxlKSksIGRhdGEsIGxlbmd0aCwgMCwgJmVycm9yLm91dFB0cigpKTsKKyAgICAgICAgaWYgKGJ5
dGVzUmVhZCA+PSAwKQorICAgICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKKyAgICB9IHdoaWxl
IChlcnJvciAmJiBlcnJvci0+Y29kZSA9PSBHX0ZJTEVfRVJST1JfSU5UUik7CisgICAgcmV0dXJu
IC0xOworfQorCitib29sIHVubG9hZE1vZHVsZShQbGF0Zm9ybU1vZHVsZSBtb2R1bGUpCit7Cisg
ICAgcmV0dXJuIGdfbW9kdWxlX2Nsb3NlKG1vZHVsZSk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWEyODM5ZWIyZDYzM2Fj
NGVlMzM5MDZmMTJlMDRmMTdjZDhhYjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
CisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2FtZXBhZHMuaCIKKworI2lm
IEVOQUJMRShHQU1FUEFEKQorCisjaW5jbHVkZSAiR2FtZXBhZExpc3QuaCIKKworI2luY2x1ZGUg
PHB1YmxpYy9QbGF0Zm9ybS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdhbWVw
YWRMaXN0OworCit2b2lkIHNhbXBsZUdhbWVwYWRzKEdhbWVwYWRMaXN0KiBpbnRvKQoreworICAg
IFdlYktpdDo6V2ViR2FtZXBhZHMgZ2FtZXBhZHM7CisKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpj
dXJyZW50KCktPnNhbXBsZUdhbWVwYWRzKGdhbWVwYWRzKTsKKworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXZWJLaXQ6OldlYkdhbWVwYWRzOjppdGVtc0xlbmd0aENhcDsgKytpKSB7Cisg
ICAgICAgIFdlYktpdDo6V2ViR2FtZXBhZCYgd2ViR2FtZXBhZCA9IGdhbWVwYWRzLml0ZW1zW2ld
OworICAgICAgICBpZiAoaSA8IGdhbWVwYWRzLmxlbmd0aCAmJiB3ZWJHYW1lcGFkLmNvbm5lY3Rl
ZCkgeworICAgICAgICAgICAgUmVmUHRyPEdhbWVwYWQ+IGdhbWVwYWQgPSBpbnRvLT5pdGVtKGkp
OworICAgICAgICAgICAgaWYgKCFnYW1lcGFkKQorICAgICAgICAgICAgICAgIGdhbWVwYWQgPSBH
YW1lcGFkOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmlkKHdlYkdhbWVwYWQuaWQp
OworICAgICAgICAgICAgZ2FtZXBhZC0+aW5kZXgoaSk7CisgICAgICAgICAgICBnYW1lcGFkLT50
aW1lc3RhbXAod2ViR2FtZXBhZC50aW1lc3RhbXApOworICAgICAgICAgICAgZ2FtZXBhZC0+YXhl
cyh3ZWJHYW1lcGFkLmF4ZXNMZW5ndGgsIHdlYkdhbWVwYWQuYXhlcyk7CisgICAgICAgICAgICBn
YW1lcGFkLT5idXR0b25zKHdlYkdhbWVwYWQuYnV0dG9uc0xlbmd0aCwgd2ViR2FtZXBhZC5idXR0
b25zKTsKKyAgICAgICAgICAgIGludG8tPnNldChpLCBnYW1lcGFkKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBpbnRvLT5zZXQoaSwgMCk7CisgICAgfQorfQorCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDk3MDdjMWY2YmYyZjM1ZTllNmQ3ZWJmY2NjNjI2MWI4N2JmMTVhYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAKQEAgLTAsMCAr
MSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0g
SW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgorCisjaW5jbHVkZSA8bG9jYWxlLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCit7Cisg
ICAgY2hhciogbG9jYWxlRGVmYXVsdCA9IHNldGxvY2FsZShMQ19DVFlQRSwgMCk7CisKKyAgICBp
ZiAoIWxvY2FsZURlZmF1bHQpCisgICAgICAgIHJldHVybiBTdHJpbmcoImMiKTsKKworICAgIFN0
cmluZyBsb2NhbGUgPSBTdHJpbmcobG9jYWxlRGVmYXVsdCk7CisgICAgbG9jYWxlLnJlcGxhY2Uo
J18nLCAnLScpOworICAgIHNpemVfdCBwb3NpdGlvbiA9IGxvY2FsZS5maW5kKCcuJyk7CisgICAg
aWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBsb2NhbGUgPSBsb2NhbGUubGVmdChw
b3NpdGlvbik7CisKKyAgICByZXR1cm4gbG9jYWxlOworfQorCitWZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQoreworICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXM7CisgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQocGxh
dGZvcm1MYW5ndWFnZSgpKTsKKyAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0
cmluZ3NOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmlu
Z3NOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MTAxMTE5NzI1ZGRjNDU3N2ZlNzdkNDQ3YWIwN2VmNzBl
Yzk4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTG9j
YWxpemVkU3RyaW5nc05peC5jcHAKQEAgLTAsMCArMSw2MTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgSW5z
dGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1N0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJTdWJtaXQiKTsKK30KKworU3RyaW5nIGlucHV0RWxlbWVudEFsdFRl
eHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJTdWJtaXQiKTsKK30KKworU3Ry
aW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiUmVzZXQiKTsKK30KKworU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQor
eworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJEZXRhaWxzIik7Cit9CisKK1N0cmluZyBz
ZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAi
KTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJDaG9vc2UgRmlsZSIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRv
bkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoIkNob29zZSBGaWxlcyIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVk
TGFiZWwoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJObyBmaWxlIHNlbGVjdGVk
Iik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJObyBmaWxlcyBzZWxlY3RlZCIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gTGluayBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJEb3dubG9hZCBMaW5rZWQgRmlsZSIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIkNvcHkgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkVmlkZW9Ub0Rpc2soKQoreworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJEb3dubG9hZCBWaWRlbyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRBdWRpb1RvRGlzaygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkRv
d25sb2FkIEF1ZGlvIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU2F2ZSBJbWFnZSBB
cyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQo
KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDb3B5IEltYWdlIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgSW1hZ2UgQWRkcmVzcyIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDb3B5IFZpZGVvIExpbmsgTG9jYXRpb24iKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgQXVkaW8gTGluayBMb2NhdGlvbiIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIlBsYXkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJQYXVzZSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgiTXV0ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJP
cGVuIEZyYW1lIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHkoKQoreworICAgIHN0YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVU
RjgoIkNvcHkiKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0RlbGV0ZSgpCit7CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xhYmVsID0gU3Ry
aW5nOjpmcm9tVVRGOCgiRGVsZXRlIik7CisgICAgcmV0dXJuIHN0b2NrTGFiZWw7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQoreworICAgIHN0YXRpYyBTdHJpbmcg
c3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgoIlNlbGVjdCBBbGwiKTsKKyAgICByZXR1cm4g
c3RvY2tMYWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGUoKQorewor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJJbnNlcnQgVW5pY29kZSBDb250cm9sIENoYXJh
Y3RlciIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiSW5wdXQgTWV0aG9kcyIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHN0b2Nr
TGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJHbyBCYWNrIik7CisgICAgcmV0dXJuIHN0b2NrTGFi
ZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHN0
YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgoIkdvIEZvcndhcmQiKTsK
KyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0
b3AoKQoreworICAgIHN0YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgo
IlN0b3AiKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1JlbG9hZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlJlbG9hZCIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKK3sKKyAgICBzdGF0aWMgU3Ry
aW5nIHN0b2NrTGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJDdXQiKTsKKyAgICByZXR1cm4gc3Rv
Y2tMYWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKK3sKKyAgICBz
dGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJQYXN0ZSIpOworICAg
IHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVz
c2VzRm91bmQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJObyBHdWVzc2VzIEZv
dW5kIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIklnbm9yZSBTcGVsbGluZyIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIkxlYXJuIFNwZWxsaW5nIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJTZWFy
Y2ggdGhlIFdlYiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0
aW9uYXJ5KGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkxv
b2sgVXAgaW4gRGljdGlvbmFyeSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmsoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJPcGVuIExpbmsiKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJJZ25vcmUgR3JhbW1hciIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OCgiU3BlbGxpbmcgYW5kIEdyYW1tYXIiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOChzaG93ID8gIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiIDogIkhpZGUgU3BlbGxpbmcg
YW5kIEdyYW1tYXIiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxp
bmcoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDaGVjayBEb2N1bWVudCBOb3ci
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGlu
ZygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNoZWNrIFNwZWxsaW5nIFdoaWxl
IF9UeXBpbmciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldp
dGhTcGVsbGluZygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNoZWNrIEdyYW1t
YXIgV2l0aCBTcGVsbGluZyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1l
bnUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJGb250Iik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHN0b2NrTGFi
ZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJCb2xkIik7CisgICAgcmV0dXJuIHN0b2NrTGFiZWw7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQoreworICAgIHN0YXRpYyBTdHJp
bmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgoIkl0YWxpYyIpOworICAgIHJldHVybiBz
dG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKK3sK
KyAgICBzdGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJVbmRlcmxp
bmUiKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ091dGxpbmUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJPdXRsaW5lIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkluc3BlY3QgRWxlbWVudCIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0
aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQoreworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk5vIHJlY2VudCBzZWFyY2hlcyIp
OworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoIlJlY2VudCBzZWFyY2hlcyIpOworfQorCitTdHJpbmcgc2Vh
cmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOCgiQ2xlYXIgcmVjZW50IHNlYXJjaGVzIik7Cit9CisKK1N0cmluZyBBWERlZmluaXRp
b25MaXN0VGVybVRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ0ZXJtIik7
Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJkZWZpbml0aW9uIik7Cit9CisKK1N0cmluZyBBWEZvb3Rl
clJvbGVEZXNjcmlwdGlvblRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJm
b290ZXIiKTsKK30KKworU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoInByZXNzIik7Cit9CisKK1N0cmluZyBBWFJhZGlvQnV0dG9uQWN0
aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInNlbGVjdCIpOworfQor
CitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOCgiYWN0aXZhdGUiKTsKK30KKworU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9u
VmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInVuY2hlY2siKTsKK30KKwor
U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOCgiY2hlY2siKTsKK30KKworU3RyaW5nIEFYTGlua0FjdGlvblZlcmIoKQor
eworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJqdW1wIik7Cit9CisKK1N0cmluZyB1bmtu
b3duRmlsZVNpemVUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVW5rbm93
biIpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXpl
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
I2lmIEVOQUJMRShWSURFTykKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3Ry
aW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRI
ZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlw
dGlvbihmbG9hdCB0aW1lKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorI2VuZGlmCisKK1N0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTG9hZGluZy4uLiIpOworfQorCitT
dHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIkxpdmUgQnJvYWRjYXN0Iik7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJwYXR0ZXJuIG1pc21hdGNoIik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoInJhbmdlIG92ZXJmbG93Iik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KCJyYW5nZSB1bmRlcmZsb3ciKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJzdGVwIG1pc21hdGNoIik7Cit9CisKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KCJ0b28gbG9uZyIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidHlwZSBt
aXNtYXRjaCIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JF
bWFpbFRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ0eXBlIG1pc21hdGNo
Iik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11bHRpcGxl
RW1haWxUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidHlwZSBtaXNtYXRj
aCIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidHlwZSBtaXNtYXRjaCIpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOCgidmFsdWUgbWlzc2luZyIpOworfQorCitTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JDaGVja2JveFRleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VW
YWx1ZU1pc3NpbmdUZXh0KCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ0Zvck11bHRpcGxlRmlsZVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworfQorCitTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JSYWRpb1RleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JTZWxlY3RU
ZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKK30KKworU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgibWlzc2luZyBwbHVnaW4iKTsKK30KKwor
U3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJl
ck9mRmlsZXMpCit7CisgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG51bWJlck9mRmlsZXMpICsg
U3RyaW5nOjpmcm9tVVRGOCgiIGZpbGVzIik7Cit9CisKK1N0cmluZyBjcmFzaGVkUGx1Z2luVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInBsdWdpbiBjcmFzaGVkIik7Cit9
CisKK1N0cmluZyBibG9ja2VkUGx1Z2luQnlDb250ZW50U2VjdXJpdHlQb2xpY3lUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IGluc2VjdXJlUGx1Z2luVmVyc2lvblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgaW5hY3RpdmVQbHVnaW5UZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiVW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZpY2F0ZSIpOworfQorCitTdHJpbmcgbG9jYWxp
emVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChrZXksIHN0cmxlbihrZXkpKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlQmFkSW5w
dXRGb3JOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKworU3RyaW5nIHNuYXBzaG90
dGVkUGx1Z0luTGFiZWxUaXRsZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgc25hcHNo
b3R0ZWRQbHVnSW5MYWJlbFN1YnRpdGxlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L01JTUVUeXBlUmVnaXN0cnlOaXgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L01JTUVUeXBlUmVnaXN0cnlOaXguY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMzYTU4Njg4YzVhZGY1NjhlOTM5MDNiMTM3Zjc1ZGJhZTdjMzI0NGQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTUlNRVR5cGVSZWdp
c3RyeU5peC5jcHAKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBa
YWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29t
LworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMK
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHly
aWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRXh0ZW5zaW9uTWFwIHsK
KyAgICBjb25zdCBjaGFyKiBleHRlbnNpb247CisgICAgY29uc3QgY2hhciogbWltZVR5cGU7Cit9
OworCitzdGF0aWMgY29uc3QgRXh0ZW5zaW9uTWFwIGV4dGVuc2lvbk1hcFtdID0geworICAgIHsg
ImJtcCIsICJpbWFnZS9ibXAiIH0sCisgICAgeyAiY3NzIiwgInRleHQvY3NzIiB9LAorICAgIHsg
ImdpZiIsICJpbWFnZS9naWYiIH0sCisgICAgeyAiaHRtbCIsICJ0ZXh0L2h0bWwiIH0sCisgICAg
eyAiaHRtIiwgInRleHQvaHRtbCIgfSwKKyAgICB7ICJpY28iLCAiaW1hZ2UveC1pY29uIiB9LAor
ICAgIHsgImpwZWciLCAiaW1hZ2UvanBlZyIgfSwKKyAgICB7ICJqcGciLCAiaW1hZ2UvanBlZyIg
fSwKKyAgICB7ICJqcyIsICJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIH0sCisgICAgeyAibW5n
IiwgInZpZGVvL3gtbW5nIiB9LAorICAgIHsgInBibSIsICJpbWFnZS94LXBvcnRhYmxlLWJpdG1h
cCIgfSwKKyAgICB7ICJwZ20iLCAiaW1hZ2UveC1wb3J0YWJsZS1ncmF5bWFwIiB9LAorICAgIHsg
InBkZiIsICJhcHBsaWNhdGlvbi9wZGYiIH0sCisgICAgeyAicG5nIiwgImltYWdlL3BuZyIgfSwK
KyAgICB7ICJwcG0iLCAiaW1hZ2UveC1wb3J0YWJsZS1waXhtYXAiIH0sCisgICAgeyAicnNzIiwg
ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIH0sCisgICAgeyAic3ZnIiwgImltYWdlL3N2Zyt4bWwiIH0s
CisgICAgeyAidGV4dCIsICJ0ZXh0L3BsYWluIiB9LAorICAgIHsgInRpZiIsICJpbWFnZS90aWZm
IiB9LAorICAgIHsgInRpZmYiLCAiaW1hZ2UvdGlmZiIgfSwKKyAgICB7ICJ0eHQiLCAidGV4dC9w
bGFpbiIgfSwKKyAgICB7ICJ4Ym0iLCAiaW1hZ2UveC14Yml0bWFwIiB9LAorICAgIHsgInhtbCIs
ICJ0ZXh0L3htbCIgfSwKKyAgICB7ICJ4cG0iLCAiaW1hZ2UveC14cG0iIH0sCisgICAgeyAieHNs
IiwgInRleHQveHNsIiB9LAorICAgIHsgInhodG1sIiwgImFwcGxpY2F0aW9uL3hodG1sK3htbCIg
fSwKKyAgICB7ICJ3bWwiLCAidGV4dC92bmQud2FwLndtbCIgfSwKKyAgICB7ICJ3bWxjIiwgImFw
cGxpY2F0aW9uL3ZuZC53YXAud21sYyIgfSwKKyAgICB7IDAsIDAgfQorfTsKKworU3RyaW5nIE1J
TUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyAmZXh0
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBTdHJpbmcgcyA9IGV4dC5s
b3dlcigpOworICAgIGNvbnN0IEV4dGVuc2lvbk1hcCAqZSA9IGV4dGVuc2lvbk1hcDsKKyAgICB3
aGlsZSAoZS0+ZXh0ZW5zaW9uKSB7CisgICAgICAgIGlmIChzID09IGUtPmV4dGVuc2lvbikKKyAg
ICAgICAgICAgIHJldHVybiBlLT5taW1lVHlwZTsKKyAgICAgICAgKytlOworICAgIH0KKworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0
aW9uUGx1Z2luTUlNRVR5cGUoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2Fy
ZFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRV
dGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMjUxNGM2YmQzYjU3YWJlNWJkYzM2OGE3ZjJjMjgx
NDhmYzQzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
Tml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsMjA0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Tml4S2V5Ym9hcmRVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNp
bmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4gS2V5TWFwOwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgaW50PiBXaW5kb3dz
S2V5TWFwOwordHlwZWRlZiBIYXNoTWFwPGludCwgY29uc3QgY2hhcio+IEtleUNvbW1hbmRNYXA7
CisKK3N0YXRpYyBLZXlNYXAmIGtleU1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChL
ZXlNYXAsIGtleU1hcCwgKCkpOworICAgIHJldHVybiBrZXlNYXA7Cit9CisKK3N0YXRpYyBXaW5k
b3dzS2V5TWFwJiB3aW5kb3dzS2V5TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdp
bmRvd3NLZXlNYXAsIHdpbmRvd3NLZXlNYXAsICgpKTsKKyAgICByZXR1cm4gd2luZG93c0tleU1h
cDsKK30KKworc3RhdGljIEtleUNvbW1hbmRNYXAmIGtleURvd25Db21tYW5kc01hcCgpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChLZXlDb21tYW5kTWFwLCBrZXlEb3duQ29tbWFuZHNNYXAs
ICgpKTsKKyAgICByZXR1cm4ga2V5RG93bkNvbW1hbmRzTWFwOworfQorCitzdGF0aWMgS2V5Q29t
bWFuZE1hcCYga2V5UHJlc3NDb21tYW5kc01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChLZXlDb21tYW5kTWFwLCBrZXlQcmVzc0NvbW1hbmRzTWFwLCAoKSk7CisgICAgcmV0dXJuIGtl
eVByZXNzQ29tbWFuZHNNYXA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJz
VG9LZXlNYXAoY29uc3QgY2hhciBmcm9tLCBjb25zdCBjaGFyIHRvKQoreworICAgIGZvciAoY2hh
ciBjID0gZnJvbTsgYyA8PSB0bzsgYysrKQorICAgICAgICBrZXlNYXAoKS5zZXQoU3RyaW5nKCZj
LCAxKSwgU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGMpKTsKK30KKworc3RhdGljIGlubGluZSB2
b2lkIGFkZENoYXJhY3RlcnNUb1dpbktleU1hcChjb25zdCBjaGFyIGZyb20sIGNvbnN0IGNoYXIg
dG8sIGNvbnN0IGludCBiYXNlQ29kZSkKK3sKKyAgICBpbnQgaSA9IDA7CisgICAgZm9yIChjaGFy
IGMgPSBmcm9tOyBjIDw9IHRvOyBjKyssIGkrKykKKyAgICAgICAgd2luZG93c0tleU1hcCgpLnNl
dChTdHJpbmcoJmMsIDEpLCBiYXNlQ29kZSArIGkpOworfQorCitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgQ3RybEtleSA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgPSAxIDw8
IDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkgPSAxIDw8IDI7CisKK3N0cnVjdCBL
ZXlEb3duRW50cnkgeworICAgIHVuc2lnbmVkIHZpcnR1YWxLZXk7CisgICAgdW5zaWduZWQgbW9k
aWZpZXJzOworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitzdHJ1Y3QgS2V5UHJlc3NFbnRy
eSB7CisgICAgdW5zaWduZWQgY2hhckNvZGU7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAg
IGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitzdGF0aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURv
d25FbnRyaWVzW10gPSB7CisgICAgeyBWS19MRUZULCAgIDAsICAgICAgICAgICAgICAgICAgIk1v
dmVMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19M
RUZULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAg
Ik1vdmVXb3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19MRUZULCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVj
dGlvbiIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIDAsICAgICAgICAgICAgICAg
ICAgIk1vdmVSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SSUdIVCwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVSaWdodEFuZE1vZGlmeVNlbGVj
dGlvbiIgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAg
ICAgICAgIk1vdmVXb3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVXb3JkUmlnaHRBbmRNb2Rp
ZnlTZWxlY3Rpb24iICAgICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIDAsICAgICAgICAg
ICAgICAgICAgIk1vdmVVcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19VUCwgICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNl
bGVjdGlvbiIgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNoaWZ0S2V5
LCAgICAgICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19ET1dOLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVEb3duIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0
S2V5LCAgICAgICAgICAgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19ORVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93
bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIDAs
ICAgICAgICAgICAgICAgICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19ORVhULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQYWdl
RG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAg
IDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVU
b0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgIH0sCisgICAgeyBWS19IT01F
LCAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1v
dmVUb0JlZ2lubmluZ09mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisKKyAgICB7IFZL
X0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgU2hpZnRLZXksICAgICAgICAg
ICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgfSwKKyAgICB7
IFZLX0VORCwgICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudCIgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0
S2V5LCAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgfSwKKwor
ICAgIHsgVktfQkFDSywgICAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICBTaGlmdEtleSwg
ICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVGb3J3YXJkIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICBDdHJsS2V5
LCAgICAgICAgICAgICJEZWxldGVXb3JkQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfREVMRVRFLCBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3JkRm9y
d2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgeyAnQicsICAgICAgIEN0
cmxLZXksICAgICAgICAgICAgIlRvZ2dsZUJvbGQiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyAnSScsICAgICAgIEN0cmxLZXksICAgICAgICAgICAgIlRvZ2dsZUl0
YWxpYyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICB7IFZLX0VTQ0FQ
RSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX09FTV9QRVJJT0QsIEN0cmxLZXksICAgICAgICAiQ2Fu
Y2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RB
QiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgU2hpZnRLZXksICAgICAgICAgICAi
SW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X1JFVFVSTiwgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAg
ICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRL
ZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKK307
CisKK3N0YXRpYyBjb25zdCBLZXlQcmVzc0VudHJ5IGtleVByZXNzRW50cmllc1tdID0geworICAg
IHsgJ1x0JywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1x0JywgICBTaGlmdEtleSwgICAgICAgICAg
ICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
J1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBDdHJsS2V5LCAgICAgICAgICAgICJJ
bnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xy
JywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXkgfCBTaGlmdEtleSwgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3RhdGlj
IHZvaWQgY3JlYXRlS2V5RG93bkNvbW1hbmRNYXAoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7ICsraSkKKyAgICAgICAga2V5
RG93bkNvbW1hbmRzTWFwKCkuc2V0KGtleURvd25FbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8
IGtleURvd25FbnRyaWVzW2ldLnZpcnR1YWxLZXksIGtleURvd25FbnRyaWVzW2ldLm5hbWUpOwor
fQorCitzdGF0aWMgdm9pZCBjcmVhdGVLZXlQcmVzc0NvbW1hbmRNYXAoKQoreworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyArK2kp
CisgICAgICAgIGtleVByZXNzQ29tbWFuZHNNYXAoKS5zZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1v
ZGlmaWVycyA8PCAxNiB8IGtleVByZXNzRW50cmllc1tpXS5jaGFyQ29kZSwga2V5UHJlc3NFbnRy
aWVzW2ldLm5hbWUpOworfQorCitjb25zdCBjaGFyKiBnZXRLZXlEb3duQ29tbWFuZE5hbWUoY29u
c3QgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsK
KyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtl
eTsKKyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5
OworICAgIGlmIChldmVudC0+Y3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtl
eTsKKworICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC0+a2V5Q29kZSgp
OworICAgIGlmICghbWFwS2V5KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChrZXlEb3du
Q29tbWFuZHNNYXAoKS5pc0VtcHR5KCkpCisgICAgICAgIGNyZWF0ZUtleURvd25Db21tYW5kTWFw
KCk7CisKKyAgICByZXR1cm4ga2V5RG93bkNvbW1hbmRzTWFwKCkuZ2V0KG1hcEtleSk7Cit9CisK
K2NvbnN0IGNoYXIqIGdldEtleVByZXNzQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQtPnNo
aWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQt
PmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC0+
Y3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKworICAgIGludCBtYXBL
ZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC0+Y2hhckNvZGUoKTsKKyAgICBpZiAoIW1hcEtl
eSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoa2V5UHJlc3NDb21tYW5kc01hcCgpLmlz
RW1wdHkoKSkKKyAgICAgICAgY3JlYXRlS2V5UHJlc3NDb21tYW5kTWFwKCk7CisKKyAgICByZXR1
cm4ga2V5UHJlc3NDb21tYW5kc01hcCgpLmdldChtYXBLZXkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5
Ym9hcmRVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2Fy
ZFV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNTYxMGM3ZTlkZTBmYzJlODJkODQ0NDg1M2JjM2U3
N2JmOGRlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
Tml4S2V5Ym9hcmRVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5peEtleWJvYXJkVXRpbGl0aWVzX2gKKyNk
ZWZpbmUgTml4S2V5Ym9hcmRVdGlsaXRpZXNfaAorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFN0
cmluZzsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLZXlib2FyZEV2ZW50Owor
Citjb25zdCBjaGFyKiBnZXRLZXlEb3duQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCop
OworY29uc3QgY2hhciogZ2V0S2V5UHJlc3NDb21tYW5kTmFtZShjb25zdCBLZXlib2FyZEV2ZW50
Kik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5peEtleWJvYXJkVXRp
bGl0aWVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJv
YXJkTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mODNjZGY3NGU2N2FiYzJmYTgxZTA5YWY2MDY3MjI2ZWQ4NTlhZmRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmRO
aXguY3BwCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwNyBIb2xn
ZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcworICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bh
c3RlYm9hcmQqIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkKK3sKKyAgICBzdGF0aWMg
UGFzdGVib2FyZCogcGFzdGVib2FyZCA9IG5ldyBQYXN0ZWJvYXJkKCk7CisgICAgcmV0dXJuIHBh
c3RlYm9hcmQ7Cit9CisKK1Bhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3Ry
aW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sLCBGcmFtZSosIFNo
b3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZUltYWdlKE5vZGUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlQ2xp
cGJvYXJkKENsaXBib2FyZCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQ
YXN0ZWJvYXJkOjpjbGVhcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBQ
YXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3Rl
Ym9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwg
Ym9vbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworU3Ry
aW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFBhc3RlYm9hcmQpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsK
K30KKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9y
Q29weUFuZFBhc3RlKCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKQoreworICAgIHJldHVybiBjcmVh
dGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKyNlbmRpZgorCitib29sIFBhc3RlYm9hcmQ6Omhhc0Rh
dGEoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworYm9v
bCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitMaXN0SGFz
aFNldDxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQordm9pZCBQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQ
b2ludCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKyNlbmRpZgorCit2b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMGVmNmMzNDBj
OTgwM2FmZWFmYWZmMDE3N2E2NzIzYTMxYWE4ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcApAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IERpZWdvIEhpZGFsZ28g
Qy4gR29uemFsZXoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRl
ZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCkKK3sK
KyAgICBBU1NFUlQobV90eXBlID09IEtleURvd24pOworICAgIG1fdHlwZSA9IHR5cGU7CisKKyAg
ICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgICAgIG1fdGV4
dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7CisgICAgICAgIG1f
d2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50Ojpn
ZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9v
bCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
c2hpZnRLZXkgPSBmYWxzZTsKKyAgICBjdHJsS2V5ID0gZmFsc2U7CisgICAgYWx0S2V5ID0gZmFs
c2U7CisgICAgbWV0YUtleSA9IGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmZiM2FjM2Vk
MjE0MzBhZDFlYWEyZWJlNDBiOTZmOGY0YTUxMDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcApAQCAtMCwwICsxLDg0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldpZGdldC5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5W
ZXJ0aWNhbERQSShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK2ludCBzY3JlZW5EZXB0aChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRn
ZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wg
c2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIDEwMjQsIDc2
OCk7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCogd2lkZ2V0KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHNjcmVlblJlY3Qod2lkZ2V0KTsK
K30KKwordm9pZCBzY3JlZW5Db2xvclByb2ZpbGUoQ29sb3JQcm9maWxlJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvUnVuTG9vcE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUnVuTG9v
cE5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcxYjY3OTVhMDNhNWYyZmExZDQwZWU2ZjAzYWUwZTI4MGI3
MjJkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9SdW5M
b29wTml4LmNwcApAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDxnbGliLmg+CisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIC8vIGdfbWFpbl9jb250ZXh0
X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBhbiBleHRyYSByZWZlcmVuY2UuCisgICAgbV9ydW5Mb29w
Q29udGV4dCA9IGlzTWFpblRocmVhZCgpID8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpIDogYWRv
cHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBBU1NFUlQobV9ydW5Mb29wQ29udGV4
dCk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGlubmVybW9zdExvb3AgPSBhZG9wdEdSZWYoZ19t
YWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZBTFNFKSk7CisgICAgQVNTRVJU
KGlubmVybW9zdExvb3ApOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5hcHBlbmQoaW5uZXJtb3N0
TG9vcCk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBmb3IgKGludCBpID0gbV9y
dW5Mb29wTWFpbkxvb3BzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmICgh
Z19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFp
bkxvb3BzW2ldLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAg
ICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKKyAgICBHTWFpbkxv
b3AqIGlubmVybW9zdExvb3AgPSBtYWluUnVuTG9vcC0+aW5uZXJtb3N0TG9vcCgpOworICAgIGlm
ICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhpbm5lcm1vc3RMb29wKSkgeworICAgICAgICBnX21h
aW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9vcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5lc3RlZCBsb29wIGlmIHRoZSBpbm5lcm1vc3Qgb25lIHdh
cyBhbHJlYWR5IHJ1bm5pbmcuCisgICAgR01haW5Mb29wKiBuZXN0ZWRNYWluTG9vcCA9IGdfbWFp
bl9sb29wX25ldygwLCBGQUxTRSk7CisgICAgbWFpblJ1bkxvb3AtPnB1c2hOZXN0ZWRNYWluTG9v
cChuZXN0ZWRNYWluTG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKG5lc3RlZE1haW5Mb29wKTsK
KyAgICBtYWluUnVuTG9vcC0+cG9wTmVzdGVkTWFpbkxvb3AoKTsKK30KKworR01haW5Mb29wKiBS
dW5Mb29wOjppbm5lcm1vc3RMb29wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9v
cCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3Bz
LmlzRW1wdHkoKSk7CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW5Mb29wc1swXS5nZXQoKTsKK30K
Kwordm9pZCBSdW5Mb29wOjpwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKiBuZXN0ZWRMb29w
KQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhl
cmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1
bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFkb3B0R1JlZihuZXN0ZWRMb29wKSk7Cit9CisKK3ZvaWQg
UnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxvb3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFp
biBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWlu
TG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMucmVtb3ZlTGFzdCgpOwor
fQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBs
b29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9v
cHMuaXNFbXB0eSgpKTsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gbGFzdE1haW5Mb29wID0gbV9y
dW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsKKyAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhs
YXN0TWFpbkxvb3AuZ2V0KCkpKQorICAgICAgICBnX21haW5fbG9vcF9xdWl0KGxhc3RNYWluTG9v
cC5nZXQoKSk7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OnF1ZXVlV29yayhSdW5Mb29wKiBydW5M
b29wKQoreworICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7CisgICAgcmV0dXJuIEZBTFNFOwor
fQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgR1JlZlB0cjxHU291cmNlPiBzb3Vy
Y2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSk7CisgICAgZ19zb3VyY2Vfc2V0X3By
aW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9ERUZBVUxUKTsKKyAgICBnX3NvdXJjZV9z
ZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigm
UnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJj
ZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7CisKKyAgICBnX21haW5fY29udGV4dF93
YWtldXAobV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAg
ICAsIG1fdGltZXJTb3VyY2UoMCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJC
YXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpjbGVh
clRpbWVyU291cmNlKCkKK3sKKyAgICBtX3RpbWVyU291cmNlID0gMDsKK30KKworZ2Jvb2xlYW4g
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNl
KiB0aW1lcikKK3sKKyAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3VyY2UgPSB0aW1lci0+bV90
aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29sIGlzUmVwZWF0aW5nID0gdGltZXItPmlzUmVwZWF0
aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNvdXJjZSBieSBzdGFydGlu
ZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgorICAgIGlmICghaXNSZXBlYXRpbmcg
JiYgY3VycmVudFRpbWVyU291cmNlID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAg
ICAgICB0aW1lci0+Y2xlYXJUaW1lclNvdXJjZSgpOworCisgICAgdGltZXItPmZpcmVkKCk7Cisg
ICAgcmV0dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rh
cnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGltZXJT
b3VyY2UpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYo
Z190aW1lb3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEw
MDApKSk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBnX3NvdXJjZV9zZXRfY2Fs
bGJhY2sobV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4o
JlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7CisgICAg
Z19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29w
Q29udGV4dC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sK
KyAgICBpZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc291cmNl
X2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJUaW1lclNvdXJjZSgpOwor
fQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3RpbWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvU2hhcmVkVGltZXJOaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NoYXJlZFRpbWVyTml4LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YTViMTg3Y2QxMDJiMjI3MWRkOGI4ZjMzZGQ0MjQyZTE4Y2FiYmFiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NoYXJlZFRpbWVyTml4LmNwcApAQCAtMCww
ICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1t
ZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZFRpbWVyLmgiCisKKyNkZWZpbmUg
R0RLX1BSSU9SSVRZX1JFRFJBVyAoR19QUklPUklUWV9ISUdIX0lETEUgKyAyMCkKKyNpbmNsdWRl
IDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgZ3VpbnQgc2hhcmVk
VGltZXI7CitzdGF0aWMgdm9pZCAoKnNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbikoKTsKKwordm9p
ZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24odm9pZCAoKmYpKCkpCit7CisgICAgc2hhcmVk
VGltZXJGaXJlZEZ1bmN0aW9uID0gZjsKK30KKworc3RhdGljIGdib29sZWFuIHRpbWVvdXRDYWxs
YmFjayhncG9pbnRlcikKK3sKKyAgICBpZiAoc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKQorICAg
ICAgICBzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24oKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisK
K3ZvaWQgc2V0U2hhcmVkVGltZXJGaXJlSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQoreworICAg
IEFTU0VSVChzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pOworCisgICAgZ3VpbnQgaW50ZXJ2YWxJ
bk1TID0gc3RhdGljX2Nhc3Q8Z3VpbnQ+KGludGVydmFsICogMTAwMCk7CisKKyAgICBzdG9wU2hh
cmVkVGltZXIoKTsKKyAgICBzaGFyZWRUaW1lciA9IGdfdGltZW91dF9hZGRfZnVsbChHREtfUFJJ
T1JJVFlfUkVEUkFXLCBpbnRlcnZhbEluTVMsIHRpbWVvdXRDYWxsYmFjaywgMCwgMCk7Cit9CisK
K3ZvaWQgc3RvcFNoYXJlZFRpbWVyKCkKK3sKKyAgICBpZiAoIXNoYXJlZFRpbWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBnYm9vbGVhbiByZW1vdmVkU291cmNlID0gZ19zb3VyY2VfcmVtb3Zl
KHNoYXJlZFRpbWVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWRTb3VyY2UsIHJlbW92ZWRT
b3VyY2UpOworICAgIHNoYXJlZFRpbWVyID0gMDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9Tb3VuZE5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUxYmJlZmZlNDljMDNkZjNkMTBlZDBm
NGU1NjQ2MjhmOGFlNzI1YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9Tb3VuZE5peC5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VuZC5oIgorCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IHN5c3RlbUJlZXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTYzMGY4YmZhMzFmZGEyMjE3NjJkYTgyY2Y4YTFiNmI0OTdiNGYyMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9UZW1wb3JhcnlMaW5rU3R1YnMu
Y3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBnZXRTdXBwb3J0ZWRLZXlT
aXplcyhWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3Ry
aW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgS1VSTCYpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9XaWRnZXROaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThkMzA5
NzNkMjAwNTQ2MmIyZThjZjMzNmZhMjJiMzBmZGY1NTRmYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCkBAIC0wLDAgKzEsOTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJD
dXJzb3IuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitXaWRnZXQ6OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCisgICAgOiBtX3Bh
cmVudCgwKQorICAgICwgbV93aWRnZXQoMCkKKyAgICAsIG1fc2VsZlZpc2libGUoZmFsc2UpCisg
ICAgLCBtX3BhcmVudFZpc2libGUoZmFsc2UpCisgICAgLCBtX2ZyYW1lKDAsIDAsIDAsIDApCit7
CisgICAgaW5pdCh3aWRnZXQpOworfQorCitXaWRnZXQ6On5XaWRnZXQoKQoreworICAgIEFTU0VS
VCghcGFyZW50KCkpOworfQorCitJbnRSZWN0IFdpZGdldDo6ZnJhbWVSZWN0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEZyYW1lUmVjdChjb25z
dCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0OworICAgIFdpZGdldDo6ZnJh
bWVSZWN0c0NoYW5nZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7Cit9
CisKK3ZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCit7CisgICAg
U2Nyb2xsVmlldyogdmlldyA9IHJvb3QoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVy
bjsKKyAgICB2aWV3LT5ob3N0V2luZG93KCktPnNldEN1cnNvcihjdXJzb3IpOworfQorCit2b2lk
IFdpZGdldDo6c2hvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRn
ZXQ6OmhpZGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0Ojpw
YWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0SXNTZWxlY3RlZChib29sKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5p
eC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzdmYTc3Mzg4ZGY3YzZhZmQ3MWFkMTI2Nzg2OWVmMDUwNGI0NjZl
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbml4L1Rl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NvbnN0IGNoYXIqIGN1cnJlbnRTZWFyY2hMb2NhbGVJRCgpCit7CisgICAgcmV0dXJuICIiOwor
fQorCitjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQoreworICAgIHJldHVy
biAiZW5fdXMiOworfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206020</attachid>
            <date>2013-07-03 13:36:21 -0700</date>
            <delta_ts>2013-07-04 11:51:31 -0700</delta_ts>
            <desc>New patch with updated Changelog files</desc>
            <filename>bug-118358-20130703173415.patch</filename>
            <type>text/plain</type>
            <size>129908</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEzOTMzZDRkZDZjNDM0ZmViM2E0OTk1
OGZkMDkxNTgzZjg0N2MyM2UuLjg2NDc1MTZkZDg1MWJhY2IwNzUzODc0ZjIwYWIwN2VmN2ZhMGE4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMDMgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTUyMzU2LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQxNTk1
Y2Y0OWI1YjNkYWExMWM0OTFjYjNjYzBiZmMzNDBlZDM4YTUuLmIxNWU5ZTBhMDgyZGI0ODllYjI5
Yzk0YmI2N2RhMjU0YmVhNzY4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMy0w
Ny0wMyAgTHVjaWFubyBXb2xmICA8bHVjaWFuby53b2xmQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgTml4IHVwc3RyZWFtaW5nIC0gQWRkaW5nIHN0dWJzIGFuZCBOaXggc3BlY2lmaWMgcGxhdGZv
cm0gZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExODM1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEJhc2ljYWxseSBhZGRpbmcgYWxsIGZpbGVzIHRoYXQgaGF2ZSAiTml4IiBpbiB0aGVpciBuYW1l
cyBhbmQKKyAgICAgICAgYXJlIHJlbGF0ZWQgdG8gV2ViQ29yZSBtb2R1bGUuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBUaGV5IHdpbGwgYmUgdXBsb2FkZWQgb24gYW5vdGhlciBwYXRjaCBkdXJp
bmcgdGhlCisgICAgICAgIHVwc3RyZWFtaW5nIHByb2Nlc3MuCisKKyAgICAgICAgKiBjc3MvbWVk
aWFDb250cm9sc05peC5jc3M6IEFkZGVkLgorICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4
RnVsbHNjcmVlbi5jc3M6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uvbml4L0V2ZW50SGFuZGxlck5p
eC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRG
cm9tQ3VycmVudEVHTC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHA6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25p
eC9EcmFnRGF0YU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9EcmFnSW1h
Z2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmNwcDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L0Vycm9yc05peC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uaXgvRmlsZVN5c3RlbU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL25peC9HYW1lcGFkc05peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25p
eC9MYW5ndWFnZU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9Mb2NhbGl6
ZWRTdHJpbmdzTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L01JTUVUeXBl
UmVnaXN0cnlOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTml4S2V5Ym9h
cmRVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTml4S2V5Ym9h
cmRVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmRO
aXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2
ZW50Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVu
Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L1J1bkxvb3BOaXguY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvU2hhcmVkVGltZXJOaXguY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvU291bmROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbml4L1dpZGdldE5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
bml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwOiBBZGRlZC4KKwogMjAxMy0w
Ny0wMyAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNwZWN1
bGF0aXZlIGJ1aWxkIGZpeCBhZnRlciByMTUyMzQwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvbml4L0ZlYXR1cmVEZWZpbmVzTml4LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURl
ZmluZXNOaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDMyYWQwZWQyNjE0YTQxMjI2NmJhYjYzZDk0ZmMyYmVl
ZTNhNDUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvbml4L0ZlYXR1cmVEZWZp
bmVzTml4LmgKQEAgLTAsMCArMSwyODEgQEAKKy8qCisqICBDb3B5cmlnaHQgKEMpIDIwMTMgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lm
bmRlZiBXVEZfRmVhdHVyZURlZmluZXNOaXhfaAorI2RlZmluZSBXVEZfRmVhdHVyZURlZmluZXNO
aXhfaAorCisjaWYgIWRlZmluZWQoRU5BQkxFXzNEX1JFTkRFUklORykKKyNkZWZpbmUgRU5BQkxF
XzNEX1JFTkRFUklORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5H
KQorI2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0JMT0IpCisjZGVmaW5lIEVOQUJMRV9CTE9CIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKQorI2RlZmluZSBF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
Q09OVEVYVF9NRU5VUykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKQorI2RlZmluZSBFTkFCTEVfQ1NTM19URVhU
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykKKyNkZWZpbmUgRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NTU19F
WENMVVNJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19GSUxURVJTKQor
I2RlZmluZSBFTkFCTEVfQ1NTX0ZJTFRFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVU
SU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1NFVCkKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFH
RV9TRVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1JFR0lPTlMpCisjZGVm
aW5lIEVOQUJMRV9DU1NfUkVHSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
U1NfU0hBREVSUykKKyNkZWZpbmUgRU5BQkxFX0NTU19TSEFERVJTIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0NTU19WQVJJQUJMRVMpCisjZGVmaW5lIEVOQUJMRV9DU1NfVkFSSUFC
TEVTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCisj
ZGVmaW5lIEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCisjZGVmaW5lIEVO
QUJMRV9EUkFHX1NVUFBPUlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRkFTVF9N
T0JJTEVfU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfRkFTVF9NT0JJTEVfU0NST0xMSU5HIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZJTFRFUlMpCisjZGVmaW5lIEVOQUJMRV9G
SUxURVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikKKyNkZWZpbmUg
RU5BQkxFX0ZUUERJUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0dBTUVQQUQpCisjZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0dFU1RVUkVfRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfR0VT
VFVSRV9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSUNPTkRBVEFCQVNF
KQorI2RlZmluZSBFTkFCTEVfSUNPTkRBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lGUkFNRV9TRUFNTEVTUykKKyNkZWZpbmUgRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKQorI2RlZmlu
ZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1IpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1IgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RP
Ul9TRVJWRVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUikKKyNkZWZpbmUgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfSklUKQorI2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpCisjZGVmaW5lIEVOQUJM
RV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0xFR0FDWV9WSUVXUE9SVF9BREFQVElPTikKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9WSUVXUE9S
VF9BREFQVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfV0VCX0FV
RElPKQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX1dFQl9BVURJTyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9MTElOVCkKKyNkZWZpbmUgRU5BQkxFX0xMSU5UIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX01BVEhNTCkKKyNkZWZpbmUgRU5BQkxFX01BVEhNTCAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVf
TUVURVJfRUxFTUVOVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NSUNST0RBVEEp
CisjZGVmaW5lIEVOQUJMRV9NSUNST0RBVEEgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCisjZGVmaW5lIEVOQUJMRV9OQVZJR0FUT1JfQ09O
VEVOVF9VVElMUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJKQorI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9ORVRXT1JLX0lORk8pCisjZGVmaW5lIEVOQUJMRV9ORVRXT1JL
X0lORk8gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lN
UExFX0hBU0gpCisjZGVmaW5lIEVOQUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QT1BVUF9NRU5VUykKKyNkZWZpbmUgRU5BQkxF
X1BPUFVQX01FTlVTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dSRVNTX0VM
RU1FTlQpCisjZGVmaW5lIEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorI2RlZmluZSBFTkFCTEVf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
Q1NTX1NIQVBFUykKKyNkZWZpbmUgRU5BQkxFX0NTU19TSEFQRVMgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfU0hBUkVEX1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9TSEFSRURfV09S
S0VSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TUUxfREFUQUJBU0UpCisjZGVm
aW5lIEVOQUJMRV9TUUxfREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
U1ZHKQorI2RlZmluZSBFTkFCTEVfU1ZHIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1NWR19GT05UUykKKyNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9UT1VDSF9BREpVU1RNRU5UKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfQURK
VVNUTUVOVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCisj
ZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfVU5ET19NQU5BR0VSKQorI2RlZmluZSBFTkFCTEVfVU5ET19NQU5BR0VSIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPKQorI2RlZmluZSBFTkFCTEVfVklERU8gMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkKKyNkZWZpbmUg
RU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfV0VCX0FVRElPKQorI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1NPQ0tFVFMpCisjZGVmaW5lIEVOQUJMRV9XRUJfU09D
S0VUUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfVElNSU5HKQorI2RlZmlu
ZSBFTkFCTEVfV0VCX1RJTUlORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XT1JL
RVJTKQorI2RlZmluZSBFTkFCTEVfV09SS0VSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9YSFJfUkVTUE9OU0VfQkxPQikKKyNkZWZpbmUgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9C
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCisjZGVmaW5lIEVOQUJMRV9Y
U0xUIDEKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL25peC9Q
bGF0Zm9ybU5peC5oIGIvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzBkNTNhM2EyNzBiMzg1ZGE4Zjc0ODdkMzE3MWU2NDIwZjVlNWI3YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL25peC9QbGF0Zm9ybU5peC5oCkBAIC0wLDAgKzEsNjYgQEAK
Ky8qCisqICBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6
CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lmbmRlZiBXVEZfUGxhdGZvcm1OaXhfaAorI2Rl
ZmluZSBXVEZfUGxhdGZvcm1OaXhfaAorCisjZGVmaW5lIFdURl9QTEFURk9STV9OSVggMQorI2Rl
ZmluZSBFTkFCTEVfR0xPQkFMX0ZBU1RNQUxMT0NfTkVXIDAKKworLy8gU29tZSBiaXRzIGNhbid0
IGJlIGNoYW5nZWQgYXQgYWxsCisjZGVmaW5lIFdURl9VU0VfM0RfR1JBUEhJQ1MgMQorI2RlZmlu
ZSBXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIDEKKyNkZWZpbmUgV1RGX1VTRV9DQUlS
TyAxCisjZGVmaW5lIFdURl9VU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgMQorI2RlZmluZSBXVEZf
VVNFX0NST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMgMQorI2RlZmluZSBXVEZfVVNFX0ZSRUVU
WVBFIDEKKyNkZWZpbmUgV1RGX1VTRV9HTElCIDEKKyNkZWZpbmUgV1RGX1VTRV9IQVJGQlVaWiAx
CisjZGVmaW5lIFdURl9VU0VfSEFSRkJVWlpfTkcgMQorI2RlZmluZSBXVEZfVVNFX0lDVV9VTklD
T0RFIDEKKyNkZWZpbmUgV1RGX1VTRV9JT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUgMQor
I2RlZmluZSBXVEZfVVNFX0xFVkVMREIgMQorI2RlZmluZSBXVEZfVVNFX1BUSFJFQURTIDEKKyNk
ZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUiAxCisjZGVmaW5lIFdURl9VU0VfVEVYVFVSRV9N
QVBQRVJfR0wgMQorI2RlZmluZSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgMQorI2RlZmlu
ZSBXVEZfVVNFX1VOSVhfRE9NQUlOX1NPQ0tFVFMgMQorCisvLyBFR0wvT3BlbkdMRVMyIHZzIEdM
WAorI2lmICFkZWZpbmVkKFdURl9VU0VfT1BFTkdMX0VTXzIpIHx8ICFXVEZfVVNFX09QRU5HTF9F
U18yCisjZGVmaW5lIFdURl9VU0VfT1BFTkdMIDEKKyNkZWZpbmUgV1RGX1VTRV9HTFggMQorI2Rl
ZmluZSBXVEZfUExBVEZPUk1fWDExIDEKKyNkZWZpbmUgV1RGX1VTRV9HUkFQSElDU19TVVJGQUNF
IDEKKyNlbHNlCisjZGVmaW5lIFdURl9VU0VfRUdMIDEKKyNlbmRpZgorCisvLyBTb3VwIHZzIGxp
YkN1cmwKKyNpZiAhZGVmaW5lZChXVEZfVVNFX0NVUkwpIHx8ICFXVEZfVVNFX0NVUkwKKyNkZWZp
bmUgV1RGX1VTRV9TT1VQIDEKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRp
YUNvbnRyb2xzTml4LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWIzNjY1MjdiN2UwNTgxOTRjNTQxNzE1ZWY1
Nzg4ZWQwMjc3NDliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHNOaXguY3NzCkBAIC0wLDAgKzEsMjAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEy
LTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKiBOaXhXZWJL
aXQgbWVkaWEgY29udHJvbHMuIEV4dGVuZHMgbWVkaWFDb250cm9scy5jc3MgKi8KKworYXVkaW8g
eworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDIwcHg7Cit9CisKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1w
YW5lbCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50
OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgYm90dG9t
OiAwOworICAgIHdpZHRoOiAxMDAlOworICAgIHotaW5kZXg6IDA7CisgICAgb3ZlcmZsb3c6IGhp
ZGRlbjsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKK3Zp
ZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVs
IHsKKyAgICBib3R0b206IDBweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
bXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW11dGUtYnV0dG9uOworICAgIGRpc3BsYXk6
IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgei1pbmRleDogMjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30K
KworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1lZGlhLXBsYXktYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRo
OiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFs
OworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtY29udHJvbHMtYmFja2dyb3VuZDsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJv
eDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gt
YWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7CisgICAgLXdlYmtpdC1i
b3gtZmxleDogMTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGhlaWdodDog
MjBweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRp
c3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
IHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5Owor
ICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CisgICAgaGVpZ2h0OiAyMHB4OworCisgICAgcGFkZGluZzogNHB4OworCisgICAgdGV4dC1hbGln
bjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTBweDsKKworICAgIGNvbG9yOiBibGFjazsKKyAg
ICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOworICAgIHdvcmQtc3BhY2luZzogbm9ybWFsOworICAg
IGxpbmUtaGVpZ2h0OiBub3JtYWw7CisgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CisgICAgdGV4
dC1pbmRlbnQ6IDA7CisgICAgdGV4dC1zaGFkb3c6IG5vbmU7CisgICAgdGV4dC1kZWNvcmF0aW9u
OiBub25lOworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAgICBmb250LXdlaWdodDogbm9ybWFs
OworICAgIGZvbnQtZmFtaWx5OiBzZXJpZjsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRl
cjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOwor
ICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAwcHggMnB4OworICAgIGJhY2tncm91bmQt
Y29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0
OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBo
ZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAyMHB4OworICAgIGJvdHRvbTogMjBweDsKKyAgICB6
LWluZGV4OiAxOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xp
ZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXI7CisgICAgZGlzcGxheTogbm9u
ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsK
KyAgICBjb2xvcjogaW5oZXJpdDsKKyAgICBtYXJnaW46IGluaXRpYWw7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtc2Vlay1iYWNrLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3
aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5p
dGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24sIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24geworICAgIC13ZWJraXQt
YXBwZWFyYW5jZTogbWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGlu
aGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0
dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiB7Cisg
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1mdWxsc2NyZWVuLWJ1dHRvbjsKKyAgICBkaXNw
bGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2lu
ZC1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24gewor
ICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBi
b3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24geworICAgIGRpc3BsYXk6
IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRp
YWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBtZWRpYS10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbjsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29s
b3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1z
bGlkZXItbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1z
bGlkZXItbXV0ZS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1l
LXNsaWRlci1tdXRlLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQt
Y29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXhGdWxs
c2NyZWVuLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVl
bi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjMzZDcwN2RjYWVlZmMzZWJkMDVhY2NhNmYwNTBkMzQ3ODNmOWY2
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4
RnVsbHNjcmVlbi5jc3MKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVkaWEgY29u
dHJvbHMgZm9yIGZ1bGxzY3JlZW4uICovCisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBhbmVsIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmll
bnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Vi
a2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0
b206IDA7CisgICAgd2lkdGg6IDEwMCU7CisgICAgei1pbmRleDogMDsKKyAgICBvdmVyZmxvdzog
aGlkZGVuOworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KKwor
dmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFu
ZWwgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS1wbGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDog
MjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsK
KyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK3ZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5kOworICAgIGRpc3BsYXk6IC13ZWJr
aXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0
LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDsKKyAgICAtd2Vi
a2l0LWJveC1mbGV4OiAxOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgaGVp
Z2h0OiAyMHB4OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRp
bWUtZGlzcGxheSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRpbWUt
ZGlzcGxheTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgcGFkZGluZzogNHB4OworICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEwcHg7Cit9CisKK3ZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkgeworICAgIGRpc3BsYXk6
IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0
LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogMjBweDsKKyAgICBw
YWRkaW5nOiAwcHggMnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9y
ZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlhbDsK
K30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWlu
ZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWlu
ZXI7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUt
c2xpZGVyOworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXNlZWstYmFjay1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24geworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4t
YnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1yZXdpbmQtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIHsKKyAgICBk
aXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUt
Y2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxOTc0MTg4
YjAxZGZlNjMyYjZkNWM3ZDA2MTgxZWQ0MTU3ZTRhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwCkBAIC0wLDAgKzEsMTMwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEK
KyAqIENvcHlyaWdodCAoQykgMjAwOSwyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDksMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
KworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2
ZW50LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgorI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorY29uc3QgZG91YmxlIEV2
ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKKyNlbmRpZgorCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAoreworICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXco
KQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKG1fZnJhbWUpOworfQorCitib29s
IEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQpCit7CisgICAgUmVuZGVyT2JqZWN0KiB0
YXJnZXQgPSBldmVudC50YXJnZXROb2RlKCkgPyBldmVudC50YXJnZXROb2RlKCktPnJlbmRlcmVy
KCkgOiAwOworCisgICAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC0+aXNXaWRnZXQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0
KHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KHRhcmdldCktPndpZGdldCgpKTsKK30KKworYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldp
ZGdldCogcmVuZGVyV2lkZ2V0KQoreworICAgIHJldHVybiBwYXNzTW91c2VEb3duRXZlbnRUb1dp
ZGdldChyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2
YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lk
Z2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKHdpZGdldCk7CisgICAgaWYgKCF3aWRnZXQtPmlz
RnJhbWVWaWV3KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
V2hlZWxFdmVudChldmVudCk7Cit9CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorUGFzc1Jl
ZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBj
b25zdAoreworICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Cit9
CisjZW5kaWYKKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZy
YW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQor
eworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KG1l
di5ldmVudCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYg
bWV2LCBGcmFtZSogc3ViZnJhbWUsIEhpdFRlc3RSZXN1bHQqIGhvdmVyZWROb2RlKQoreworICAg
IHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VNb3ZlRXZlbnQobWV2LmV2ZW50
KCksIGhvdmVyZWROb2RlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhhbmRs
ZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCit7CisgICAgc3ViZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtZXYuZXZlbnQoKSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3Vuc2lnbmVkIEV2ZW50SGFuZGxlcjo6YWNjZXNzS2V5TW9kaWZpZXJzKCkK
K3sKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6QWx0S2V5OworfQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50
RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRG
cm9tQ3VycmVudEVHTC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiNmVmMWI2NTJkNzI0Njk2YmZmZDY1YzM1
MDU0MmVhY2JlZDMwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKQEAgLTAsMCArMSw2NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJHTENvbnRleHRGcm9tQ3VycmVudEVHTC5oIgorCisjaW5jbHVkZSAiT3BlbkdMU2hp
bXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEdMQ29udGV4dEZyb21D
dXJyZW50RUdMPiBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6Y3JlYXRlRnJvbUN1cnJlbnRHTENv
bnRleHQoKQoreworICAgIGlmICghaW5pdGlhbGl6ZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdMQ29udGV4dEZyb21DdXJyZW50RUdMKCkpOwor
fQorCitHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0woKQor
ICAgIDogbV9kaXNwbGF5KGVnbEdldEN1cnJlbnREaXNwbGF5KCkpCisgICAgLCBtX3N1cmZhY2Uo
ZWdsR2V0Q3VycmVudFN1cmZhY2UoRUdMX0RSQVcpKQorICAgICwgbV9jb250ZXh0KGVnbEdldEN1
cnJlbnRDb250ZXh0KCkpCit7Cit9CisKK2Jvb2wgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6Om1h
a2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgR0xDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQo
KTsKKyAgICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9kaXNwbGF5LCBtX3N1cmZhY2UsIG1fc3Vy
ZmFjZSwgbV9jb250ZXh0KTsKK30KKworYm9vbCBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6aW5p
dGlhbGl6ZSgpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBz
dGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAg
ICAgIHN1Y2Nlc3MgPSBpbml0aWFsaXplT3BlbkdMU2hpbXMoKTsKKyAgICAgICAgaW5pdGlhbGl6
ZWQgPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gc3VjY2VzczsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NWVmYzlm
ODQzMjQ5OGJmNTQ1MWViMTU3MDZiNmRhNzE1MmMwN2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdM
LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0xfaAorI2RlZmluZSBHTENvbnRleHRGcm9tQ3VycmVu
dEVHTF9oCisKKyNpbmNsdWRlICJHTENvbnRleHQuaCIKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wgOiBw
dWJsaWMgR0xDb250ZXh0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHRGcm9t
Q3VycmVudEVHTCk7CitwdWJsaWM6CisgICAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIE9mZnNj
cmVlbiBidWZmZXJzLgorICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMQ29udGV4dEZyb21DdXJyZW50
RUdMPiBjcmVhdGVGcm9tQ3VycmVudEdMQ29udGV4dCgpOworCisgICAgdmlydHVhbCBib29sIG1h
a2VDb250ZXh0Q3VycmVudCgpOworCisgICAgLy8gVGhlc2UgYXJlIG5vdCB1c2VkIGJ5IE5peC4K
KyAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSB7IH0KKyAgICB2aXJ0dWFsIEludFNpemUg
ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpIHsgcmV0dXJuIEludFNpemUoKTsgfQorICAgIHZpcnR1
YWwgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkgeyByZXR1cm4gMDsgfQorCisgICAgLy8g
VE9ETzogVGhpcyBpcyBub3QgdXNlZCBpbiBHTENvbnRleHQgaW50ZXJmYWNlLCBpdCdzIHVzZWQg
YnkKKyAgICAvLyBHTENvbnRleHRHTFggb25seSBhcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwu
CisgICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkgeyByZXR1
cm4gZmFsc2U7IH0KKworICAgIC8vIFRPRE86IFVzZWQgb25seSBhcyBhIGtleSBpbiBIYXNoTWFw
cywgc2VlIGlmIHdlIGNhbiBjaGFuZ2UgV2ViS2l0IGNvZGUgdG8gbm90CisgICAgLy8gcmVseSBv
biB0aGlzIGFueW1vcmUgKGF0IGxlYXN0IGluIG91ciBwbGF0Zm9ybSkuCisgICAgdmlydHVhbCBQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIHsgcmV0dXJuIHRoaXM7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FpdE5hdGl2ZSgpIHsgcmV0dXJuOyB9CisKK3ByaXZhdGU6
CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZSgpOworCisgICAgR0xDb250ZXh0RnJvbUN1cnJl
bnRFR0woKTsKKworICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5OworICAgIEVHTFN1cmZhY2UgbV9z
dXJmYWNlOworICAgIEVHTENvbnRleHQgbV9jb250ZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR0xDb250ZXh0RnJvbUN1cnJlbnRFR0xfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlk
ZW9XaW5kb3dOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1BsYXRmb3JtVmlkZW9XaW5kb3dOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkOWRhMmY5MGQ2YjYw
MzcxNDMzMGYzOTZmNDE1YjA4NjczZDA2NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5j
cHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1WaWRlb1dpbmRvdy5oIgorCisjaWYgVVNFKEdTVFJFQU1FUikgJiYgIWRlZmluZWQoR1NU
X0FQSV9WRVJTSU9OXzEpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworUGxhdGZvcm1WaWRlb1dpbmRvdzo6UGxhdGZvcm1WaWRlb1dp
bmRvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUGxhdGZvcm1WaWRlb1dpbmRv
dzo6flBsYXRmb3JtVmlkZW9XaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgUGxhdGZvcm1WaWRlb1dpbmRvdzo6cHJlcGFyZUZvck92ZXJsYXkoR3N0TWVzc2FnZSop
Cit7Cit9CisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKSAmJiAhZGVmaW5lZChHU1RfQVBJX1ZF
UlNJT05fMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
eC9JY29uTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JY29u
Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZDNmOGQzMmU0ZDMwYjQ0ZGMwMzYxNzg5NTQ5YzNiYTcyYjlh
MmI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bml4L0ljb25OaXguY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJJY29uLmgiCisKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCitQYXNzUmVm
UHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBJY29u
OjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbml4L0ltYWdlTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTBiMjRiZTUzNjAyYTE4ZmE0ODJiMWFk
NjM3MzhjNDgzOTA1ZjAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJJbWFnZS5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEJpdG1hcEltYWdlOjppbnZh
bGlkYXRlUGxhdGZvcm1EYXRhKCkKK3sKK30KKworc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXJGYWxsYmFjaygpCit7CisgICAgcmV0dXJuIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7IC8vIFRPRE86IGZhbGxiYWNrIGltYWdlPworfQorCitzdGF0
aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihjb25z
dCBjaGFyKiBuYW1lKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKG1ha2VTdHJpbmcoREFUQV9ESVIgIi93
ZWJraXQtMS4wL2ltYWdlcy8iLCBuYW1lLCAiLnBuZyIpKTsKKyAgICBpZiAoYnVmZmVyKQorICAg
ICAgICByZXR1cm4gYnVmZmVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gbG9hZFJlc291cmNlU2hh
cmVkQnVmZmVyRmFsbGJhY2soKTsKK30KKworUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2U6OmxvYWRQ
bGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgUmVmUHRyPEJpdG1hcElt
YWdlPiBpbWcgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gYnVmZmVyID0gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKG5hbWUpOworICAgIGltZy0+c2V0
RGF0YShidWZmZXIucmVsZWFzZSgpLCB0cnVlKTsKKyAgICByZXR1cm4gaW1nLnJlbGVhc2UoKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNvck5p
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNzdlZjBjY2UzYmU5N2ZlYWFkNDhmNjc4NzA1NTZkYjhhMTE1MmM0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHAKQEAgLTAs
MCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxtdWVs
bGVyQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgR2VvcmdlIFN0YWlrb3MgPHN0YWlr
b3NAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBDaGFybGVzIFNhbXVlbHMgPGNoYXJs
ZXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5
dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDdXJzb3IuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQ3Vyc29yOjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikK
KyAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCisgICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2Up
CisgICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RTcG90KQorICAgICwgbV9wbGF0Zm9ybUN1cnNv
cihvdGhlci5tX3BsYXRmb3JtQ3Vyc29yKQoreworfQorCitDdXJzb3I6On5DdXJzb3IoKQorewor
fQorCitDdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNvciYgb3RoZXIpCit7Cisg
ICAgbV90eXBlID0gb3RoZXIubV90eXBlOworICAgIG1faW1hZ2UgPSBvdGhlci5tX2ltYWdlOwor
ICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKKyAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
b3RoZXIubV9wbGF0Zm9ybUN1cnNvcjsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3N0YXRpYyBj
b25zdCBjaGFyKiBjdXJzb3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUpCit7CisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGN1cnNvclN0cmluZ3NbXSA9IHsKKyAgICAgICAgImN1cnNvci9wb2ludGVy
IiwKKyAgICAgICAgImN1cnNvci9jcm9zcyIsCisgICAgICAgICJjdXJzb3IvaGFuZCIsCisgICAg
ICAgICJjdXJzb3IvaV9iZWFtIiwKKyAgICAgICAgImN1cnNvci93YWl0IiwKKyAgICAgICAgImN1
cnNvci9oZWxwIiwKKyAgICAgICAgImN1cnNvci9lYXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJz
b3Ivbm9ydGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9lYXN0X3Jlc2l6ZSIsCisg
ICAgICAgICJjdXJzb3Ivbm9ydGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL3NvdXRo
X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfZWFzdF9yZXNpemUiLAorICAgICAgICAi
Y3Vyc29yL3NvdXRoX3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci93ZXN0X3Jlc2l6ZSIs
CisgICAgICAgICJjdXJzb3Ivbm9ydGhfc291dGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9l
YXN0X3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9lYXN0X3NvdXRoX3dlc3Rf
cmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF93ZXN0X3NvdXRoX2Vhc3RfcmVzaXplIiwK
KyAgICAgICAgImN1cnNvci9jb2x1bW5fcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9yb3dfcmVz
aXplIiwKKyAgICAgICAgImN1cnNvci9taWRkbGVfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Iv
ZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9wYW5uaW5nIiwKKyAgICAgICAg
ImN1cnNvci9ub3J0aF9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3Rf
cGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivc291dGhfcGFubmluZyIsCisgICAgICAgICJjdXJz
b3Ivc291dGhfZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF93ZXN0X3Bhbm5p
bmciLAorICAgICAgICAiY3Vyc29yL3dlc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3IvbW92
ZSIsCisgICAgICAgICJjdXJzb3IvdmVydGljYWxfdGV4dCIsCisgICAgICAgICJjdXJzb3IvY2Vs
bCIsCisgICAgICAgICJjdXJzb3IvY29udGV4dF9tZW51IiwKKyAgICAgICAgImN1cnNvci9hbGlh
cyIsCisgICAgICAgICJjdXJzb3IvcHJvZ3Jlc3MiLAorICAgICAgICAiY3Vyc29yL25vX2Ryb3Ai
LAorICAgICAgICAiY3Vyc29yL2NvcHkiLAorICAgICAgICAiY3Vyc29yL25vbmUiLAorICAgICAg
ICAiY3Vyc29yL25vdF9hbGxvd2VkIiwKKyAgICAgICAgImN1cnNvci96b29tX2luIiwKKyAgICAg
ICAgImN1cnNvci96b29tX291dCIsCisgICAgICAgICJjdXJzb3IvZ3JhYiIsCisgICAgICAgICJj
dXJzb3IvZ3JhYmJpbmciLAorICAgICAgICAiIn07IC8vIEZJWE1FOiBKdXN0IHJldHVybiAiIiBm
b3IgY3VzdG9tIHR5cGUuIFdlIGRvbid0IHN1cHBvcnQgaXQgbm93LgorICAgIHJldHVybiBjdXJz
b3JTdHJpbmdzW3R5cGVdOworfQorCit2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Io
KSBjb25zdAoreworICAgIGlmIChtX3BsYXRmb3JtQ3Vyc29yKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvclN0cmluZyhtX3R5cGUpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmZi
Njk4NmFmYTRmMjFlYjAyNzU3N2I2ZjFhYzE2NDk3MTVjNzc1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcApAQCAtMCwwICsxLDkz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRyYWdEYXRhLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIERyYWdE
YXRhOjpjYW5TbWFydFJlcGxhY2UoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9y
PFN0cmluZz4mKSBjb25zdAoreworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgRHJhZ0RhdGE6OmFz
UGxhaW5UZXh0KEZyYW1lKikgY29uc3QKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK0Nv
bG9yIERyYWdEYXRhOjphc0NvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ29sb3IoKTsKK30K
KworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc1VSTChGcmFtZSos
IEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK1N0cmluZyBEcmFnRGF0YTo6YXNVUkwoRnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xp
Y3ksIFN0cmluZyopIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IERyYWdEYXRhOjphc0ZyYWdtZW50KEZyYW1lKiwgUGFzc1Jl
ZlB0cjxSYW5nZT4sIGJvb2wsIGJvb2wmKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0ltYWdlTml4LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRkYWM4NjEyYzEzYmY1OWY1ZTU0MzkxNmQxMjg3ZmVmY2Y4YmYwNWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0ltYWdlTml4LmNwcApAQCAt
MCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgorCisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2Uu
aCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRTaXplKDAsIDApOworfQor
Cit2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFn
ZSwgRmxvYXRTaXplKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdl
OworfQorCitEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFn
ZVJlZiBpbWFnZSwgZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
aW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2Uq
LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JD
YWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L0Vycm9yc05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNzcwNGFkMzE4OTI2NzQ1ZjQzZDg2ZWZiMTEzNDM1MTZjNmQ5NjM2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0Vycm9yc05peC5j
cHAKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzTml4LmgiCisKKyNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUHJpbnRDb250
ZXh0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdv
cmssIE5ldHdvcmtFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgIkxvYWQg
cmVxdWVzdCBjYW5jZWxsZWQiKTsKK30KKworUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLCAiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0
d29yayBwb3J0Iik7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgp
LnN0cmluZygpLCAiVVJMIGNhbm5vdCBiZSBzaG93biIpOworfQorCitSZXNvdXJjZUVycm9yIGlu
dGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xp
Y3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCku
c3RyaW5nKCksICJGcmFtZSBsb2FkIHdhcyBpbnRlcnJ1cHRlZCIpOworfQorCitSZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xp
Y3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksICJDb250
ZW50IHdpdGggdGhlIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIik7Cit9CisK
K1Jlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0
d29yaywgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCkuc3RyaW5n
KCksICJGaWxlIGRvZXMgbm90IGV4aXN0Iik7Cit9CisKK1Jlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJyb3JXaWxs
SGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksICJQbHVnaW4gd2lsbCBoYW5kbGUg
bG9hZCIpOworfQorCitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJl
c291cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZh
aWxpbmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworfQorCitS
ZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCku
c3RyaW5nKCksICJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxvYWQiKTsKK30KKworUmVzb3VyY2VF
cnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiwgcmVz
cG9uc2UudXJsKCkuc3RyaW5nKCksIGVycm9yTWVzc2FnZSk7Cit9CisKK1Jlc291cmNlRXJyb3Ig
cHJpbnRFcnJvcihjb25zdCBQcmludENvbnRleHQqIHByaW50Q29udGV4dCwgY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpCit7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0g
cHJpbnRDb250ZXh0LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKKworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JHZW5lcmFs
LCBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50TG9hZGVyLT51cmwoKSA6IEtVUkwoKSwgZXJyb3JN
ZXNzYWdlKTsKK30KKworUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBQ
cmludENvbnRleHQqIHByaW50Q29udGV4dCkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1l
bnRMb2FkZXIgPSBwcmludENvbnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpOworCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRF
cnJvclByaW50ZXJOb3RGb3VuZCwgZG9jdW1lbnRMb2FkZXIgPyBkb2N1bWVudExvYWRlci0+dXJs
KCkgOiBLVVJMKCksICJQcmludGVyIG5vdCBmb3VuZCIpOworfQorCitSZXNvdXJjZUVycm9yIGlu
dmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0KQor
eworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IHByaW50Q29udGV4dC0+ZnJh
bWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CisKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSwgZG9jdW1l
bnRMb2FkZXIgPyBkb2N1bWVudExvYWRlci0+dXJsKCkgOiBLVVJMKCksICJJbnZhbGlkIHBhZ2Ug
cmFuZ2UiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L0Vycm9yc05peC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbml4L0Vycm9yc05peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkMTk4MGEzNjBhYzVhODFjZGVjMzhlY2Fk
MjRjNGU0N2FmODk5ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvRXJyb3JzTml4LmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEVycm9yc05peF9oCisjZGVmaW5lIEVycm9yc05peF9oCisK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQcmludENvbnRleHQ7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKworc3RhdGljIGNvbnN0IGNoYXIg
ZXJyb3JEb21haW5OZXR3b3JrW10gPSAiV2ViS2l0TmV0d29ya0Vycm9yIjsKK3N0YXRpYyBjb25z
dCBjaGFyIGVycm9yRG9tYWluUG9saWN5W10gPSAiV2ViS2l0UG9saWN5RXJyb3IiOworc3RhdGlj
IGNvbnN0IGNoYXIgZXJyb3JEb21haW5QbHVnaW5bXSA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Citz
dGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpbkRvd25sb2FkW10gPSAiV2ViS2l0RG93bmxvYWRF
cnJvciI7CitzdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblByaW50W10gPSAiV2ViS2l0UHJp
bnRFcnJvciI7CisKK2VudW0gTmV0d29ya0Vycm9yIHsKKyAgICBOZXR3b3JrRXJyb3JGYWlsZWQg
PSAzOTksCisgICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzAwLAorICAgIE5ldHdvcmtFcnJv
clVua25vd25Qcm90b2NvbCA9IDMwMSwKKyAgICBOZXR3b3JrRXJyb3JDYW5jZWxsZWQgPSAzMDIs
CisgICAgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCA9IDMwMworfTsKKworLy8gU3luYydk
IHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycyBhdDoKKy8vIFNvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViS2l0RXJyb3JzW1ByaXZhdGVdLmgKK2VudW0gUG9saWN5RXJyb3IgeworICAgIFBvbGljeUVy
cm9yRmFpbGVkID0gMTk5LAorICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0gMTAw
LAorICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwKKyAgICBQb2xpY3lFcnJvckZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCisgICAgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMworfTsKKworZW51bSBQbHVnaW5FcnJvciB7Cisg
ICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCisgICAgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1
Z2luID0gMjAwLAorICAgIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIwMSwKKyAgICBQ
bHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKKyAgICBQbHVnaW5FcnJvckNvbm5lY3Rp
b25DYW5jZWxsZWQgPSAyMDMsCisgICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCA9IDIwNAor
fTsKKworZW51bSBEb3dubG9hZEVycm9yIHsKKyAgICBEb3dubG9hZEVycm9yTmV0d29yayA9IDQ5
OSwKKyAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAorICAgIERvd25sb2Fk
RXJyb3JEZXN0aW5hdGlvbiA9IDQwMQorfTsKKworZW51bSBQcmludEVycm9yIHsKKyAgICBQcmlu
dEVycm9yR2VuZXJhbCA9IDU5OSwKKyAgICBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kID0gNTAw
LAorICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCit9OworCitSZXNvdXJjZUVy
cm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VFcnJv
ciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1Jlc291cmNlRXJyb3Ig
aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
K1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJy
b3IoY29uc3QgUmVzb3VyY2VFcnJvciYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxl
ZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1Jlc291cmNlRXJyb3IgZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgUHJpbnRD
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBwcmlu
dGVyTm90Rm91bmRFcnJvcihjb25zdCBQcmludENvbnRleHQqKTsKK1Jlc291cmNlRXJyb3IgaW52
YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgUHJpbnRDb250ZXh0Kik7CisKK30KKworI2VuZGlm
IC8vIEVycm9yc05peF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
RmlsZVN5c3RlbU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRmlsZVN5c3Rl
bU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZhMzdhMjcwZmUyMWU5ODMxYzRhYWM1NDQ4MTQ1MTAyMDRk
ODlkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9GaWxl
U3lzdGVtTml4LmNwcApAQCAtMCwwICsxLDMzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4
IENvbGxhYm9yYSwgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBN
b2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworI2luY2x1ZGUgIkZpbGVNZXRhZGF0YS5oIgorI2lu
Y2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HbGliVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8qIE9u
IGxpbnV4IGZpbGUgbmFtZXMgYXJlIGp1c3QgcmF3IGJ5dGVzLCBzbyBhbHNvIHN0cmluZ3MgdGhh
dCBjYW5ub3QgYmUgZW5jb2RlZCBpbiBhbnkgd2F5CisgKiBhcmUgdmFsaWQgZmlsZSBuYW1lcy4g
VGhpcyBtZWFuIHRoYXQgd2UgY2Fubm90IGp1c3Qgc3RvcmUgYSBmaWxlIG5hbWUgYXMtaXMgaW4g
YSBTdHJpbmcKKyAqIGJ1dCB3ZSBoYXZlIHRvIGVzY2FwZSBpdC4KKyAqIE9uIFdpbmRvd3MgdGhl
IEdMaWIgZmlsZSBuYW1lIGVuY29kaW5nIGlzIGFsd2F5cyBVVEYtOCBzbyB3ZSBjYW4gb3B0aW1p
emUgdGhpcyBjYXNlLiAqLworU3RyaW5nIGZpbGVuYW1lVG9TdHJpbmcoY29uc3QgY2hhciogZmls
ZW5hbWUpCit7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgR093blB0cjxnY2hhcj4gZXNjYXBlZFN0cmluZyhnX3VyaV9lc2NhcGVfc3RyaW5nKGZp
bGVuYW1lLCAiLzoiLCBmYWxzZSkpOworICAgIHJldHVybiBlc2NhcGVkU3RyaW5nLmdldCgpOwor
fQorCitDU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHBhdGgp
Cit7CisgICAgR093blB0cjxnY2hhcj4gZmlsZW5hbWUoZ191cmlfdW5lc2NhcGVfc3RyaW5nKHBh
dGgudXRmOCgpLmRhdGEoKSwgMCkpOworICAgIHJldHVybiBmaWxlbmFtZS5nZXQoKTsKK30KKwor
Ly8gQ29udmVydHMgYSBzdHJpbmcgdG8gc29tZXRoaW5nIHN1aXRhYmxlIHRvIGJlIGRpc3BsYXll
ZCB0byB0aGUgdXNlci4KK1N0cmluZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihzdHJpbmcpOworICAgIEdPd25QdHI8Z2NoYXI+IGRpc3BsYXkoZ19maWxlbmFtZV90b191dGY4
KGZpbGVuYW1lLmRhdGEoKSwgMCwgMCwgMCwgMCkpOworICAgIGlmICghZGlzcGxheSkKKyAgICAg
ICAgcmV0dXJuIHN0cmluZzsKKworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGRpc3BsYXku
Z2V0KCkpOworfQorCitib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAg
IGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihwYXRoKTsKKworICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCisgICAg
ICAgIHJlc3VsdCA9IGdfZmlsZV90ZXN0KGZpbGVuYW1lLmRhdGEoKSwgR19GSUxFX1RFU1RfRVhJ
U1RTKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgZGVsZXRlRmlsZShjb25zdCBT
dHJpbmcmIHBhdGgpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBDU3RyaW5nIGZp
bGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworCisgICAgaWYgKCFmaWxl
bmFtZS5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gIWdfcmVtb3ZlKGZpbGVuYW1lLmRhdGEo
KSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIENT
dHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisKKyAgICBp
ZiAoIWZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXN1bHQgPSAhZ19ybWRpcihmaWxlbmFt
ZS5kYXRhKCkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBnZXRGaWxlU2l6ZShj
b25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKK3sKKyAgICBDU3RyaW5n
IGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmaWxl
bmFtZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1N0YXRCdWYgc3Rh
dFJlc3VsdDsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZS5kYXRhKCksICZzdGF0
UmVzdWx0KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXN1bHRTaXplID0gc3RhdFJlc3VsdC5zdF9zaXplOworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBt
b2RpZmllZFRpbWUpCit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CisgICAgZ2ludCByZXN1bHQgPSBn
X3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3VsdCk7CisgICAgaWYgKHJlc3VsdCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbW9kaWZpZWRUaW1lID0gc3RhdFJlc3VsdC5zdF9t
dGltZTsKKyAgICByZXR1cm4gdHJ1ZTsKKworfQorCitib29sIGdldEZpbGVNZXRhZGF0YShjb25z
dCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCit7CisgICAgQ1N0cmluZyBm
aWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZmlsZW5h
bWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN0cnVjdCBzdGF0IHN0
YXRSZXN1bHQ7CisgICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3Rh
dFJlc3VsdCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
bWV0YWRhdGEubW9kaWZpY2F0aW9uVGltZSA9IHN0YXRSZXN1bHQuc3RfbXRpbWU7CisgICAgbWV0
YWRhdGEubGVuZ3RoID0gc3RhdFJlc3VsdC5zdF9zaXplOworICAgIG1ldGFkYXRhLnR5cGUgPSBT
X0lTRElSKHN0YXRSZXN1bHQuc3RfbW9kZSkgPyBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3Rvcnkg
OiBGaWxlTWV0YWRhdGE6OlR5cGVGaWxlOworICAgIHJldHVybiB0cnVlOworCit9CisKK1N0cmlu
ZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJp
bmcmIGNvbXBvbmVudCkKK3sKKyAgICBpZiAocGF0aC5lbmRzV2l0aChHX0RJUl9TRVBBUkFUT1Jf
UykpCisgICAgICAgIHJldHVybiBwYXRoICsgY29tcG9uZW50OworICAgIHJldHVybiBwYXRoICsg
R19ESVJfU0VQQVJBVE9SX1MgKyBjb21wb25lbnQ7Cit9CisKK2Jvb2wgbWFrZUFsbERpcmVjdG9y
aWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZ2ludCByZXN1bHQgPSBnX21rZGlyX3dpdGhfcGFy
ZW50cyhmaWxlbmFtZS5kYXRhKCksIFNfSVJXWFUpOworCisgICAgcmV0dXJuICFyZXN1bHQ7Cit9
CisKK1N0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCit7CisgICAgcmV0dXJuIGZpbGVuYW1lVG9T
dHJpbmcoZ19nZXRfaG9tZV9kaXIoKSk7Cit9CisKK1N0cmluZyBwYXRoR2V0RmlsZU5hbWUoY29u
c3QgU3RyaW5nJiBwYXRoTmFtZSkKK3sKKyAgICBpZiAocGF0aE5hbWUuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gcGF0aE5hbWU7CisKKyAgICBDU3RyaW5nIHRtcEZpbGVuYW1lID0gZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHBhdGhOYW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBiYXNlTmFt
ZShnX3BhdGhfZ2V0X2Jhc2VuYW1lKHRtcEZpbGVuYW1lLmRhdGEoKSkpOworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KGJhc2VOYW1lLmdldCgpKTsKK30KKworQ1N0cmluZyBhcHBsaWNhdGlv
bkRpcmVjdG9yeVBhdGgoKQoreworICAgIENTdHJpbmcgcGF0aCA9IGdldEN1cnJlbnRFeGVjdXRh
YmxlUGF0aCgpOworICAgIGlmICghcGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHBhdGg7
CisKKyAgICAvLyBJZiB0aGUgYWJvdmUgZmFpbHMsIGNoZWNrIHRoZSBQQVRIIGVudiB2YXJpYWJs
ZS4KKyAgICBHT3duUHRyPGNoYXI+IGN1cnJlbnRFeGVQYXRoKGdfZmluZF9wcm9ncmFtX2luX3Bh
dGgoZ19nZXRfcHJnbmFtZSgpKSk7CisgICAgaWYgKCFjdXJyZW50RXhlUGF0aC5nZXQoKSkKKyAg
ICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKworICAgIEdPd25QdHI8Y2hhcj4gZGlybmFtZShnX3Bh
dGhfZ2V0X2Rpcm5hbWUoY3VycmVudEV4ZVBhdGguZ2V0KCkpKTsKKyAgICByZXR1cm4gZGlybmFt
ZS5nZXQoKTsKK30KKworQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCkKK3sKKyAgICBzdGF0
aWMgQ1N0cmluZyBjYWNoZWRQYXRoOworICAgIGlmICghY2FjaGVkUGF0aC5pc051bGwoKSkKKyAg
ICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CisKKyAgICBHT3duUHRyPGdjaGFyPiBkYXRhUGF0aChn
X2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid2Via2l0bml4IiwgTlVMTCkpOworCisgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOworICAgIHJldHVybiBjYWNoZWRQYXRoOworfQorCit1
aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkKK3sKKyAg
ICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocGF0
aCkpOworICAgIEdSZWZQdHI8R0ZpbGVJbmZvPiBmaWxlSW5mbyA9IGFkb3B0R1JlZihnX2ZpbGVf
cXVlcnlfZmlsZXN5c3RlbV9pbmZvKGZpbGUuZ2V0KCksIEdfRklMRV9BVFRSSUJVVEVfRklMRVNZ
U1RFTV9GUkVFLCAwLCAwKSk7CisgICAgaWYgKCFmaWxlSW5mbykKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gZ19maWxlX2luZm9fZ2V0X2F0dHJpYnV0ZV91aW50NjQoZmlsZUluZm8u
Z2V0KCksIEdfRklMRV9BVFRSSUJVVEVfRklMRVNZU1RFTV9GUkVFKTsKK30KKworU3RyaW5nIGRp
cmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIC8qIE5vIG51bGwgY2hlY2tp
bmcgbmVlZGVkICovCisgICAgR093blB0cjxjaGFyPiBkaXJuYW1lKGdfcGF0aF9nZXRfZGlybmFt
ZShmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoZGlybmFtZS5nZXQoKSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IGxpc3RE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGZpbHRlcikKK3sKKyAg
ICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzOworCisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBHRGlyKiBkaXIgPSBnX2Rpcl9vcGVuKGZp
bGVuYW1lLmRhdGEoKSwgMCwgMCk7CisgICAgaWYgKCFkaXIpCisgICAgICAgIHJldHVybiBlbnRy
aWVzOworCisgICAgR1BhdHRlcm5TcGVjKiBwc3BlYyA9IGdfcGF0dGVybl9zcGVjX25ldygoZmls
dGVyLnV0ZjgoKSkuZGF0YSgpKTsKKyAgICB3aGlsZSAoY29uc3QgY2hhciogbmFtZSA9IGdfZGly
X3JlYWRfbmFtZShkaXIpKSB7CisgICAgICAgIGlmICghZ19wYXR0ZXJuX21hdGNoX3N0cmluZyhw
c3BlYywgbmFtZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBHT3duUHRyPGdj
aGFyPiBlbnRyeShnX2J1aWxkX2ZpbGVuYW1lKGZpbGVuYW1lLmRhdGEoKSwgbmFtZSwgTlVMTCkp
OworICAgICAgICBlbnRyaWVzLmFwcGVuZChmaWxlbmFtZVRvU3RyaW5nKGVudHJ5LmdldCgpKSk7
CisgICAgfQorICAgIGdfcGF0dGVybl9zcGVjX2ZyZWUocHNwZWMpOworICAgIGdfZGlyX2Nsb3Nl
KGRpcik7CisKKyAgICByZXR1cm4gZW50cmllczsKK30KKworU3RyaW5nIG9wZW5UZW1wb3JhcnlG
aWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKK3sK
KyAgICBHT3duUHRyPGdjaGFyPiBmaWxlbmFtZShnX3N0cmR1cF9wcmludGYoIiVzJXMiLCBwcmVm
aXgudXRmOCgpLmRhdGEoKSwgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICBHT3duUHRyPGdjaGFyPiB0ZW1wUGF0aChnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0
X3RtcF9kaXIoKSwgZmlsZW5hbWUuZ2V0KCksIE5VTEwpKTsKKyAgICBHUmVmUHRyPEdGaWxlPiBm
aWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgodGVtcFBhdGguZ2V0KCkpKTsKKwor
ICAgIGhhbmRsZSA9IGdfZmlsZV9jcmVhdGVfcmVhZHdyaXRlKGZpbGUuZ2V0KCksIEdfRklMRV9D
UkVBVEVfTk9ORSwgMCwgMCk7CisgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCh0ZW1wUGF0
aC5nZXQoKSk7Cit9CisKK1BsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQoreworICAgIENTdHJpbmcgZnNSZXAgPSBmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZzUmVwLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm4gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKworICAgIEdSZWZQdHI8R0ZpbGU+
IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChmc1JlcC5kYXRhKCkpKTsKKyAg
ICBHRmlsZUlPU3RyZWFtKiBpb1N0cmVhbSA9IDA7CisgICAgaWYgKG1vZGUgPT0gT3BlbkZvclJl
YWQpCisgICAgICAgIGlvU3RyZWFtID0gZ19maWxlX29wZW5fcmVhZHdyaXRlKGZpbGUuZ2V0KCks
IDAsIDApOworICAgIGVsc2UgaWYgKG1vZGUgPT0gT3BlbkZvcldyaXRlKSB7CisgICAgICAgIGlm
IChnX2ZpbGVfdGVzdChmc1JlcC5kYXRhKCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19GSUxF
X1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfUkVHVUxBUikpKQorICAgICAgICAgICAgaW9T
dHJlYW0gPSBnX2ZpbGVfb3Blbl9yZWFkd3JpdGUoZmlsZS5nZXQoKSwgMCwgMCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGlvU3RyZWFtID0gZ19maWxlX2NyZWF0ZV9yZWFkd3JpdGUoZmls
ZS5nZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAwKTsKKyAgICB9CisKKyAgICByZXR1cm4g
aW9TdHJlYW07Cit9CisKK3ZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxl
KQoreworICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQorICAgICAgICByZXR1cm47CisK
KyAgICBnX2lvX3N0cmVhbV9jbG9zZShHX0lPX1NUUkVBTShoYW5kbGUpLCAwLCAwKTsKKyAgICBn
X29iamVjdF91bnJlZihoYW5kbGUpOworICAgIGhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGU7Cit9CisKK2xvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
LCBsb25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbiBvcmlnaW4pCit7CisgICAgR1NlZWtU
eXBlIHNlZWtUeXBlID0gR19TRUVLX1NFVDsKKyAgICBzd2l0Y2ggKG9yaWdpbikgeworICAgIGNh
c2UgU2Vla0Zyb21CZWdpbm5pbmc6CisgICAgICAgIHNlZWtUeXBlID0gR19TRUVLX1NFVDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWVrRnJvbUN1cnJlbnQ6CisgICAgICAgIHNlZWtUeXBl
ID0gR19TRUVLX0NVUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWVrRnJvbUVuZDoKKyAg
ICAgICAgc2Vla1R5cGUgPSBHX1NFRUtfRU5EOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBpZiAoIWdfc2Vl
a2FibGVfc2VlayhHX1NFRUtBQkxFKGdfaW9fc3RyZWFtX2dldF9pbnB1dF9zdHJlYW0oR19JT19T
VFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIHNlZWtUeXBlLCAwLCAwKSkKKyAgICAgICAgcmV0dXJu
IC0xOworICAgIHJldHVybiBnX3NlZWthYmxlX3RlbGwoR19TRUVLQUJMRShnX2lvX3N0cmVhbV9n
ZXRfaW5wdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkpKSk7Cit9CisKK2ludCB3cml0ZVRv
RmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoKQoreworICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICBnX291dHB1dF9zdHJlYW1fd3Jp
dGVfYWxsKGdfaW9fc3RyZWFtX2dldF9vdXRwdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkp
LCBkYXRhLCBsZW5ndGgsICZieXRlc1dyaXR0ZW4sIDAsIDApOworICAgIHJldHVybiBieXRlc1dy
aXR0ZW47Cit9CisKK2ludCByZWFkRnJvbUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7Cisg
ICAgZG8geworICAgICAgICBnc3NpemUgYnl0ZXNSZWFkID0gZ19pbnB1dF9zdHJlYW1fcmVhZChn
X2lvX3N0cmVhbV9nZXRfaW5wdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkpLCBkYXRhLCBs
ZW5ndGgsIDAsICZlcnJvci5vdXRQdHIoKSk7CisgICAgICAgIGlmIChieXRlc1JlYWQgPj0gMCkK
KyAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQ7CisgICAgfSB3aGlsZSAoZXJyb3IgJiYgZXJy
b3ItPmNvZGUgPT0gR19GSUxFX0VSUk9SX0lOVFIpOworICAgIHJldHVybiAtMTsKK30KKworYm9v
bCB1bmxvYWRNb2R1bGUoUGxhdGZvcm1Nb2R1bGUgbW9kdWxlKQoreworICAgIHJldHVybiBnX21v
ZHVsZV9jbG9zZShtb2R1bGUpOworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9H
YW1lcGFkc05peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFhMjgzOWViMmQ2MzNhYzRlZTMzOTA2ZjEyZTA0
ZjE3Y2Q4YWI0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25p
eC9HYW1lcGFkc05peC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQor
ICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdhbWVwYWRzLmgiCisKKyNpZiBFTkFCTEUoR0FNRVBB
RCkKKworI2luY2x1ZGUgIkdhbWVwYWRMaXN0LmgiCisKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZv
cm0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHYW1lcGFkTGlzdDsKKwordm9p
ZCBzYW1wbGVHYW1lcGFkcyhHYW1lcGFkTGlzdCogaW50bykKK3sKKyAgICBXZWJLaXQ6OldlYkdh
bWVwYWRzIGdhbWVwYWRzOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zYW1w
bGVHYW1lcGFkcyhnYW1lcGFkcyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV2Vi
S2l0OjpXZWJHYW1lcGFkczo6aXRlbXNMZW5ndGhDYXA7ICsraSkgeworICAgICAgICBXZWJLaXQ6
OldlYkdhbWVwYWQmIHdlYkdhbWVwYWQgPSBnYW1lcGFkcy5pdGVtc1tpXTsKKyAgICAgICAgaWYg
KGkgPCBnYW1lcGFkcy5sZW5ndGggJiYgd2ViR2FtZXBhZC5jb25uZWN0ZWQpIHsKKyAgICAgICAg
ICAgIFJlZlB0cjxHYW1lcGFkPiBnYW1lcGFkID0gaW50by0+aXRlbShpKTsKKyAgICAgICAgICAg
IGlmICghZ2FtZXBhZCkKKyAgICAgICAgICAgICAgICBnYW1lcGFkID0gR2FtZXBhZDo6Y3JlYXRl
KCk7CisgICAgICAgICAgICBnYW1lcGFkLT5pZCh3ZWJHYW1lcGFkLmlkKTsKKyAgICAgICAgICAg
IGdhbWVwYWQtPmluZGV4KGkpOworICAgICAgICAgICAgZ2FtZXBhZC0+dGltZXN0YW1wKHdlYkdh
bWVwYWQudGltZXN0YW1wKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmF4ZXMod2ViR2FtZXBhZC5h
eGVzTGVuZ3RoLCB3ZWJHYW1lcGFkLmF4ZXMpOworICAgICAgICAgICAgZ2FtZXBhZC0+YnV0dG9u
cyh3ZWJHYW1lcGFkLmJ1dHRvbnNMZW5ndGgsIHdlYkdhbWVwYWQuYnV0dG9ucyk7CisgICAgICAg
ICAgICBpbnRvLT5zZXQoaSwgZ2FtZXBhZCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
aW50by0+c2V0KGksIDApOworICAgIH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzA3YzFmNmJmMmYz
NWU5ZTZkN2ViZmNjYzYyNjFiODdiZjE1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tp
YSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1i
ZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJv
bmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIGNoYXIqIGxvY2Fs
ZURlZmF1bHQgPSBzZXRsb2NhbGUoTENfQ1RZUEUsIDApOworCisgICAgaWYgKCFsb2NhbGVEZWZh
dWx0KQorICAgICAgICByZXR1cm4gU3RyaW5nKCJjIik7CisKKyAgICBTdHJpbmcgbG9jYWxlID0g
U3RyaW5nKGxvY2FsZURlZmF1bHQpOworICAgIGxvY2FsZS5yZXBsYWNlKCdfJywgJy0nKTsKKyAg
ICBzaXplX3QgcG9zaXRpb24gPSBsb2NhbGUuZmluZCgnLicpOworICAgIGlmIChwb3NpdGlvbiAh
PSBub3RGb3VuZCkKKyAgICAgICAgbG9jYWxlID0gbG9jYWxlLmxlZnQocG9zaXRpb24pOworCisg
ICAgcmV0dXJuIGxvY2FsZTsKK30KKworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzOworICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHBsYXRmb3JtTGFuZ3VhZ2Uo
KSk7CisgICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yODEwMTExOTcyNWRkYzQ1NzdmZTc3ZDQ0N2FiMDdlZjcwZWM5ODE4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmluZ3NO
aXguY3BwCkBAIC0wLDAgKzEsNjExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
TWljaGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWlsLmNvbQorICogQ29weXJpZ2h0IChDKSAyMDA3
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0
aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
TnVhbnRpIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIEluc3RpdHV0byBOb2tpYSBk
ZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRk
ZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcg
c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OCgiU3VibWl0Iik7Cit9CisKK1N0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU3VibWl0Iik7Cit9CisKK1N0cmluZyByZXNldEJ1dHRv
bkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlJlc2V0Iik7
Cit9CisKK1N0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgiRGV0YWlscyIpOworfQorCitTdHJpbmcgc2VhcmNoYWJsZUluZGV4
SW50cm9kdWN0aW9uKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVGhpcyBpcyBh
IHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3JkczogIik7Cit9CisKK1N0cmlu
ZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiQ2hvb3NlIEZpbGUiKTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBs
ZUZpbGVzTGFiZWwoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDaG9vc2UgRmls
ZXMiKTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTm8gZmlsZSBzZWxlY3RlZCIpOworfQorCitTdHJp
bmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgiTm8gZmlsZXMgc2VsZWN0ZWQiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OCgiRG93bmxvYWQgTGlua2VkIEZpbGUiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJD
b3B5IExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5J
bWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBJ
bWFnZSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZFZpZGVvVG9EaXNrKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiRG93bmxv
YWQgVmlkZW8iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkQXVkaW9U
b0Rpc2soKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJEb3dubG9hZCBBdWRpbyIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlNhdmUgSW1hZ2UgQXMiKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ29weSBJbWFnZSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KCJDb3B5IEltYWdlIEFkZHJlc3MiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgiQ29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJDb3B5IEF1ZGlvIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUGF1c2UiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoIk11dGUiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3
V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBGcmFtZSBpbiBO
ZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK3sKKyAg
ICBzdGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJDb3B5Iik7Cisg
ICAgcmV0dXJuIHN0b2NrTGFiZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWxl
dGUoKQoreworICAgIHN0YXRpYyBTdHJpbmcgc3RvY2tMYWJlbCA9IFN0cmluZzo6ZnJvbVVURjgo
IkRlbGV0ZSIpOworICAgIHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VsZWN0QWxsKCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwgPSBT
dHJpbmc6OmZyb21VVEY4KCJTZWxlY3QgQWxsIik7CisgICAgcmV0dXJuIHN0b2NrTGFiZWw7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlKCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOCgiSW5zZXJ0IFVuaWNvZGUgQ29udHJvbCBDaGFyYWN0ZXIiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lucHV0TWV0aG9kcygpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIklucHV0IE1ldGhvZHMiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0dvQmFjaygpCit7CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xhYmVsID0gU3RyaW5n
Ojpmcm9tVVRGOCgiR28gQmFjayIpOworICAgIHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHN0
b2NrTGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJHbyBGb3J3YXJkIik7CisgICAgcmV0dXJuIHN0
b2NrTGFiZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKK3sKKyAgICBz
dGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwgPSBTdHJpbmc6OmZyb21VVEY4KCJTdG9wIik7CisgICAg
cmV0dXJuIHN0b2NrTGFiZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQo
KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJSZWxvYWQiKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCit7CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xhYmVs
ID0gU3RyaW5nOjpmcm9tVVRGOCgiQ3V0Iik7CisgICAgcmV0dXJuIHN0b2NrTGFiZWw7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCit7CisgICAgc3RhdGljIFN0cmluZyBz
dG9ja0xhYmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiUGFzdGUiKTsKKyAgICByZXR1cm4gc3RvY2tM
YWJlbDsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTm8gR3Vlc3NlcyBGb3VuZCIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJJZ25vcmUgU3BlbGxpbmciKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KCJMZWFybiBTcGVsbGluZyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU2VhcmNoIHRoZSBXZWIiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeShjb25zdCBT
dHJpbmcmKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJMb29rIFVwIGluIERpY3Rp
b25hcnkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBMaW5rIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiSWdub3JlIEdyYW1tYXIiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nw
ZWxsaW5nTWVudSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlNwZWxsaW5nIGFu
ZCBHcmFtbWFyIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQ
YW5lbChib29sIHNob3cpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoc2hvdyA/ICJT
aG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiA6ICJIaWRlIFNwZWxsaW5nIGFuZCBHcmFtbWFyIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ2hlY2sgRG9jdW1lbnQgTm93Iik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJDaGVjayBTcGVsbGluZyBXaGlsZSBfVHlwaW5nIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQor
eworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxp
bmciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiRm9udCIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQm9sZCgpCit7CisgICAgc3RhdGljIFN0cmluZyBzdG9ja0xhYmVsID0gU3RyaW5nOjpm
cm9tVVRGOCgiQm9sZCIpOworICAgIHJldHVybiBzdG9ja0xhYmVsOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHN0b2NrTGFiZWwg
PSBTdHJpbmc6OmZyb21VVEY4KCJJdGFsaWMiKTsKKyAgICByZXR1cm4gc3RvY2tMYWJlbDsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpCit7CisgICAgc3RhdGljIFN0
cmluZyBzdG9ja0xhYmVsID0gU3RyaW5nOjpmcm9tVVRGOCgiVW5kZXJsaW5lIik7CisgICAgcmV0
dXJuIHN0b2NrTGFiZWw7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3V0bGluZSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KCJJbnNwZWN0IEVsZW1lbnQiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQorewor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRE
aXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJObyByZWNlbnQgc2VhcmNoZXMiKTsKK30KKworU3RyaW5n
IHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJSZWNlbnQgc2VhcmNoZXMiKTsKK30KKworU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJl
Y2VudFNlYXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNsZWFy
IHJlY2VudCBzZWFyY2hlcyIpOworfQorCitTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidGVybSIpOworfQorCitTdHJpbmcg
QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOCgiZGVmaW5pdGlvbiIpOworfQorCitTdHJpbmcgQVhGb290ZXJSb2xlRGVzY3JpcHRp
b25UZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiZm9vdGVyIik7Cit9CisK
K1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJwcmVzcyIpOworfQorCitTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQorewor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJzZWxlY3QiKTsKK30KKworU3RyaW5nIEFYVGV4
dEZpZWxkQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoImFjdGl2
YXRlIik7Cit9CisKK1N0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ1bmNoZWNrIik7Cit9CisKK1N0cmluZyBBWFVuY2hl
Y2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
ImNoZWNrIik7Cit9CisKK1N0cmluZyBBWExpbmtBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgianVtcCIpOworfQorCitTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVua25vd24iKTsKK30KKworU3Ry
aW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50U2l6ZSYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNpZiBFTkFCTEUoVklE
RU8pCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJp
bmcmIG5hbWUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKyNl
bmRpZgorCitTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoIkxvYWRpbmcuLi4iKTsKK30KKworU3RyaW5nIG1lZGlhRWxl
bWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJMaXZlIEJyb2FkY2FzdCIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0
ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgicGF0dGVy
biBtaXNtYXRjaCIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93
VGV4dChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJyYW5n
ZSBvdmVyZmxvdyIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxv
d1RleHQoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgicmFu
Z2UgdW5kZXJmbG93Iik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgic3RlcCBtaXNtYXRjaCIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUb29Mb25nVGV4dChpbnQsIGludCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
dG9vIGxvbmciKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInR5cGUgbWlzbWF0Y2giKTsKK30K
KworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidHlwZSBtaXNtYXRjaCIpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInR5cGUgbWlzbWF0Y2giKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoInR5cGUgbWlzbWF0Y2giKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoInZhbHVlIG1pc3NpbmciKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmlsZVRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0aXBs
ZUZpbGVUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3Np
bmdUZXh0KCk7Cit9CisKK1N0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIm1pc3NpbmcgcGx1Z2luIik7Cit9CisKK1N0cmluZyBBWE1lbnVM
aXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitT
dHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKQorewor
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihudW1iZXJPZkZpbGVzKSArIFN0cmluZzo6ZnJvbVVU
RjgoIiBmaWxlcyIpOworfQorCitTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJwbHVnaW4gY3Jhc2hlZCIpOworfQorCitTdHJpbmcgYmxv
Y2tlZFBsdWdpbkJ5Q29udGVudFNlY3VyaXR5UG9saWN5VGV4dCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBpbnNlY3VyZVBsdWdp
blZlcnNpb25UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIGluYWN0aXZlUGx1Z2luVGV4dCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVU
TFNDZXJ0aWZpY2F0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0
YWJsZSBUTFMgY2VydGlmaWNhdGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25z
dCBjaGFyKiBrZXkpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4o
a2V5KSk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZUJhZElucHV0Rm9yTnVtYmVyVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKK1N0cmluZyBzbmFwc2hvdHRlZFBsdWdJbkxhYmVs
VGl0bGUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIHNuYXBzaG90dGVkUGx1Z0luTGFi
ZWxTdWJ0aXRsZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9NSU1FVHlwZVJlZ2lzdHJ5Tml4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9NSU1FVHlwZVJlZ2lzdHJ5Tml4LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
M2E1ODY4OGM1YWRmNTY4ZTkzOTAzYjEzN2Y3NWRiYWU3YzMyNDRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L01JTUVUeXBlUmVnaXN0cnlOaXguY3BwCkBA
IC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFj
a0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4IFRv
cmNoIE1vYmlsZSBJbmMuICBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisKKyNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEV4dGVuc2lvbk1hcCB7CisgICAgY29uc3QgY2hh
ciogZXh0ZW5zaW9uOworICAgIGNvbnN0IGNoYXIqIG1pbWVUeXBlOworfTsKKworc3RhdGljIGNv
bnN0IEV4dGVuc2lvbk1hcCBleHRlbnNpb25NYXBbXSA9IHsKKyAgICB7ICJibXAiLCAiaW1hZ2Uv
Ym1wIiB9LAorICAgIHsgImNzcyIsICJ0ZXh0L2NzcyIgfSwKKyAgICB7ICJnaWYiLCAiaW1hZ2Uv
Z2lmIiB9LAorICAgIHsgImh0bWwiLCAidGV4dC9odG1sIiB9LAorICAgIHsgImh0bSIsICJ0ZXh0
L2h0bWwiIH0sCisgICAgeyAiaWNvIiwgImltYWdlL3gtaWNvbiIgfSwKKyAgICB7ICJqcGVnIiwg
ImltYWdlL2pwZWciIH0sCisgICAgeyAianBnIiwgImltYWdlL2pwZWciIH0sCisgICAgeyAianMi
LCAiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiB9LAorICAgIHsgIm1uZyIsICJ2aWRlby94LW1u
ZyIgfSwKKyAgICB7ICJwYm0iLCAiaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXAiIH0sCisgICAgeyAi
cGdtIiwgImltYWdlL3gtcG9ydGFibGUtZ3JheW1hcCIgfSwKKyAgICB7ICJwZGYiLCAiYXBwbGlj
YXRpb24vcGRmIiB9LAorICAgIHsgInBuZyIsICJpbWFnZS9wbmciIH0sCisgICAgeyAicHBtIiwg
ImltYWdlL3gtcG9ydGFibGUtcGl4bWFwIiB9LAorICAgIHsgInJzcyIsICJhcHBsaWNhdGlvbi9y
c3MreG1sIiB9LAorICAgIHsgInN2ZyIsICJpbWFnZS9zdmcreG1sIiB9LAorICAgIHsgInRleHQi
LCAidGV4dC9wbGFpbiIgfSwKKyAgICB7ICJ0aWYiLCAiaW1hZ2UvdGlmZiIgfSwKKyAgICB7ICJ0
aWZmIiwgImltYWdlL3RpZmYiIH0sCisgICAgeyAidHh0IiwgInRleHQvcGxhaW4iIH0sCisgICAg
eyAieGJtIiwgImltYWdlL3gteGJpdG1hcCIgfSwKKyAgICB7ICJ4bWwiLCAidGV4dC94bWwiIH0s
CisgICAgeyAieHBtIiwgImltYWdlL3gteHBtIiB9LAorICAgIHsgInhzbCIsICJ0ZXh0L3hzbCIg
fSwKKyAgICB7ICJ4aHRtbCIsICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIH0sCisgICAgeyAid21s
IiwgInRleHQvdm5kLndhcC53bWwiIH0sCisgICAgeyAid21sYyIsICJhcHBsaWNhdGlvbi92bmQu
d2FwLndtbGMiIH0sCisgICAgeyAwLCAwIH0KK307CisKK1N0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5
OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcgJmV4dCkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgU3RyaW5nIHMgPSBleHQubG93ZXIoKTsKKyAgICBj
b25zdCBFeHRlbnNpb25NYXAgKmUgPSBleHRlbnNpb25NYXA7CisgICAgd2hpbGUgKGUtPmV4dGVu
c2lvbikgeworICAgICAgICBpZiAocyA9PSBlLT5leHRlbnNpb24pCisgICAgICAgICAgICByZXR1
cm4gZS0+bWltZVR5cGU7CisgICAgICAgICsrZTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK2Jvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVU
eXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZTI1MTRjNmJkM2I1N2FiZTViZGMzNjhhN2YyYzI4MTQ4ZmM0MzhmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRp
bGl0aWVzLmNwcApAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5peEtleWJvYXJkVXRp
bGl0aWVzLmgiCisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2luZG93
c0tleWJvYXJkQ29kZXMuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IEtl
eU1hcDsKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGludD4gV2luZG93c0tleU1hcDsKK3R5cGVk
ZWYgSGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPiBLZXlDb21tYW5kTWFwOworCitzdGF0aWMgS2V5
TWFwJiBrZXlNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5TWFwLCBrZXlNYXAs
ICgpKTsKKyAgICByZXR1cm4ga2V5TWFwOworfQorCitzdGF0aWMgV2luZG93c0tleU1hcCYgd2lu
ZG93c0tleU1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXaW5kb3dzS2V5TWFwLCB3
aW5kb3dzS2V5TWFwLCAoKSk7CisgICAgcmV0dXJuIHdpbmRvd3NLZXlNYXA7Cit9CisKK3N0YXRp
YyBLZXlDb21tYW5kTWFwJiBrZXlEb3duQ29tbWFuZHNNYXAoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoS2V5Q29tbWFuZE1hcCwga2V5RG93bkNvbW1hbmRzTWFwLCAoKSk7CisgICAgcmV0
dXJuIGtleURvd25Db21tYW5kc01hcDsKK30KKworc3RhdGljIEtleUNvbW1hbmRNYXAmIGtleVBy
ZXNzQ29tbWFuZHNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5Q29tbWFuZE1h
cCwga2V5UHJlc3NDb21tYW5kc01hcCwgKCkpOworICAgIHJldHVybiBrZXlQcmVzc0NvbW1hbmRz
TWFwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkQ2hhcmFjdGVyc1RvS2V5TWFwKGNvbnN0
IGNoYXIgZnJvbSwgY29uc3QgY2hhciB0bykKK3sKKyAgICBmb3IgKGNoYXIgYyA9IGZyb207IGMg
PD0gdG87IGMrKykKKyAgICAgICAga2V5TWFwKCkuc2V0KFN0cmluZygmYywgMSksIFN0cmluZzo6
Zm9ybWF0KCJVKyUwNFgiLCBjKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0
ZXJzVG9XaW5LZXlNYXAoY29uc3QgY2hhciBmcm9tLCBjb25zdCBjaGFyIHRvLCBjb25zdCBpbnQg
YmFzZUNvZGUpCit7CisgICAgaW50IGkgPSAwOworICAgIGZvciAoY2hhciBjID0gZnJvbTsgYyA8
PSB0bzsgYysrLCBpKyspCisgICAgICAgIHdpbmRvd3NLZXlNYXAoKS5zZXQoU3RyaW5nKCZjLCAx
KSwgYmFzZUNvZGUgKyBpKTsKK30KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN0cmxLZXkgPSAx
IDw8IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ID0gMSA8PCAxOworc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOworCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsK
KyAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2ln
bmVkIGNoYXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworfTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0g
eworICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBTaGlmdEtl
eSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZExlZnQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJs
S2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfUklHSFQsICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUmlnaHQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29y
ZFJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQs
ICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAgICJNb3Zl
VXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVVAs
ICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAgICAgICAgICJN
b3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
RE9XTiwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwgICAgICAgICAg
ICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfTkVYVCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZURvd25BbmRNb2RpZnlTZWxl
Y3Rpb24iICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICAwLCAgICAgICAgICAgICAg
ICAgICJNb3ZlUGFnZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfTkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAg
ICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfSE9NRSwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxp
bmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAg
ICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlVG9CZWdpbm5pbmdP
ZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorCisgICAgeyBWS19FTkQsICAgIDAsICAg
ICAgICAgICAgICAgICAgIk1vdmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0VuZE9m
TGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0
cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVUb0Vu
ZE9mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisKKyAgICB7IFZLX0JBQ0ss
ICAgMCwgICAgICAgICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVs
ZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RF
TEVURSwgMCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgQ3RybEtleSwgICAgICAgICAgICAi
RGVsZXRlV29yZEJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKworICAgIHsgJ0InLCAgICAgICBDdHJsS2V5LCAgICAgICAg
ICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ0knLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAg
ICAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAg
ICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIDAsICAg
ICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xp
bmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFs
dEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5l
d2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29u
c3QgS2V5UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwg
ICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3Rh
YiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgMCwgICAg
ICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5LCAg
ICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyB2b2lkIGNyZWF0ZUtl
eURvd25Db21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJB
WV9MRU5HVEgoa2V5RG93bkVudHJpZXMpOyArK2kpCisgICAgICAgIGtleURvd25Db21tYW5kc01h
cCgpLnNldChrZXlEb3duRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlEb3duRW50cmll
c1tpXS52aXJ0dWFsS2V5LCBrZXlEb3duRW50cmllc1tpXS5uYW1lKTsKK30KKworc3RhdGljIHZv
aWQgY3JlYXRlS2V5UHJlc3NDb21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5UHJlc3NFbnRyaWVzKTsgKytpKQorICAgICAgICBrZXlQ
cmVzc0NvbW1hbmRzTWFwKCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYg
fCBrZXlQcmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsK
K30KKworY29uc3QgY2hhciogZ2V0S2V5RG93bkNvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZl
bnQqIGV2ZW50KQoreworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50
LT5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2
ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZl
bnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQg
bWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQtPmtleUNvZGUoKTsKKyAgICBpZiAoIW1h
cEtleSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFwKCku
aXNFbXB0eSgpKQorICAgICAgICBjcmVhdGVLZXlEb3duQ29tbWFuZE1hcCgpOworCisgICAgcmV0
dXJuIGtleURvd25Db21tYW5kc01hcCgpLmdldChtYXBLZXkpOworfQorCitjb25zdCBjaGFyKiBn
ZXRLZXlQcmVzc0NvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAg
IHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAg
ICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LT5hbHRLZXkoKSkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJz
IDw8IDE2IHwgZXZlbnQtPmNoYXJDb2RlKCk7CisgICAgaWYgKCFtYXBLZXkpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgaWYgKGtleVByZXNzQ29tbWFuZHNNYXAoKS5pc0VtcHR5KCkpCisgICAg
ICAgIGNyZWF0ZUtleVByZXNzQ29tbWFuZE1hcCgpOworCisgICAgcmV0dXJuIGtleVByZXNzQ29t
bWFuZHNNYXAoKS5nZXQobWFwS2V5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMjU2MTBjN2U5ZGUwZmMyZTgyZDg0NDQ4NTNiYzNlNzdiZjhkZWJhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRp
bGl0aWVzLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBOaXhLZXlib2FyZFV0aWxpdGllc19oCisjZGVmaW5lIE5peEtleWJv
YXJkVXRpbGl0aWVzX2gKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS2V5Ym9hcmRFdmVudDsKKworY29uc3QgY2hhciog
Z2V0S2V5RG93bkNvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqKTsKK2NvbnN0IGNoYXIq
IGdldEtleVByZXNzQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCopOworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOaXhLZXlib2FyZFV0aWxpdGllc19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjgzY2RmNzRlNjdhYmMyZmE4MWUwOWFmNjA2NzIyNmVkODU5YWZkZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcApAQCAtMCww
ICsxLDE2MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNu
b2xvZ2lhCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KiAgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50RnJh
Z21lbnQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZWJvYXJkKiBQYXN0
ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpCit7CisgICAgc3RhdGljIFBhc3RlYm9hcmQqIHBh
c3RlYm9hcmQgPSBuZXcgUGFzdGVib2FyZCgpOworICAgIHJldHVybiBwYXN0ZWJvYXJkOworfQor
CitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIFNtYXJ0UmVw
bGFjZU9wdGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiwgYm9vbCwgRnJhbWUqLCBTaG91bGRTZXJpYWxpemVT
ZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJh
bWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3Jp
dGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUNsaXBib2FyZChDbGlwYm9h
cmQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xl
YXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6Y2Fu
U21hcnRSZXBsYWNlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVu
dEZyYWdtZW50KEZyYW1lKiwgUGFzc1JlZlB0cjxSYW5nZT4sIGJvb2wsIGJvb2wmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0cmluZyBQYXN0ZWJvYXJk
OjpwbGFpblRleHQoRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJk
KTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRl
KCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisKKyNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcCgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgp
OworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKGNvbnN0IERyYWdEYXRhJikKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBh
c3RlKCk7Cit9CisjZW5kaWYKKworYm9vbCBQYXN0ZWJvYXJkOjpoYXNEYXRhKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYXN0ZWJvYXJk
OjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0
cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6
d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworTGlzdEhhc2hTZXQ8U3RyaW5nPiBQ
YXN0ZWJvYXJkOjp0eXBlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
TGlzdEhhc2hTZXQ8U3RyaW5nPigpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpy
ZWFkRmlsZW5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBWZWN0
b3I8U3RyaW5nPigpOworfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK3ZvaWQgUGFzdGVi
b2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisjZW5kaWYKKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBh
c3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5
Ym9hcmRFdmVudE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1L
ZXlib2FyZEV2ZW50Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDBlZjZjMzQwYzk4MDNhZmVhZmFmZjAx
NzdhNjcyM2EzMWFhOGY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBEaWVnbyBIaWRhbGdvIEMuIEdvbnphbGV6Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlRleHRFbmNv
ZGluZy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRp
c2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wpCit7CisgICAgQVNTRVJUKG1f
dHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5cGUgPSB0eXBlOworCisgICAgaWYgKHR5cGUgPT0g
UGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgICAgICBtX3RleHQgPSBTdHJpbmcoKTsK
KyAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIG1fa2V5SWRlbnRpZmllciA9IFN0cmluZygpOworICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IDA7CisgICAgfQorfQorCitib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudENhcHNMb2NrU3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9v
bCYgbWV0YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0S2V5ID0gZmFs
c2U7CisgICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNlOworICAgIG1ldGFL
ZXkgPSBmYWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Q
bGF0Zm9ybVNjcmVlbk5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJmYjNhYzNlZDIxNDMwYWQxZWFhMmVi
ZTQwYjk2ZjhmNGE1MTA2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworaW50IHNjcmVlbkhvcml6b250YWxEUEkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEUEkoV2lk
Z2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQg
c2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCitpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0KikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitib29sIHNjcmVlbklzTW9ub2No
cm9tZShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA3NjgpOworfQorCitGbG9h
dFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBzY3JlZW5SZWN0KHdpZGdldCk7Cit9CisKK3ZvaWQgc2Ny
ZWVuQ29sb3JQcm9maWxlKENvbG9yUHJvZmlsZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1J1bkxvb3BO
aXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1J1bkxvb3BOaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA3MWI2Nzk1YTAzYTVmMmZhMWQ0MGVlNmYwM2FlMGUyODBiNzIyZDUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUnVuTG9vcE5peC5jcHAKQEAg
LTAsMCArMSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8Z2xpYi5oPgor
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitS
dW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICAvLyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgZG9l
c24ndCBhZGQgYW4gZXh0cmEgcmVmZXJlbmNlLgorICAgIG1fcnVuTG9vcENvbnRleHQgPSBpc01h
aW5UaHJlYWQoKSA/IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSA6IGFkb3B0R1JlZihnX21haW5f
Y29udGV4dF9uZXcoKSk7CisgICAgQVNTRVJUKG1fcnVuTG9vcENvbnRleHQpOworICAgIEdSZWZQ
dHI8R01haW5Mb29wPiBpbm5lcm1vc3RMb29wID0gYWRvcHRHUmVmKGdfbWFpbl9sb29wX25ldyht
X3J1bkxvb3BDb250ZXh0LmdldCgpLCBGQUxTRSkpOworICAgIEFTU0VSVChpbm5lcm1vc3RMb29w
KTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGlubmVybW9zdExvb3ApOworfQorCitS
dW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgZm9yIChpbnQgaSA9IG1fcnVuTG9vcE1haW5Mb29w
cy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBpZiAoIWdfbWFpbl9sb29wX2lz
X3J1bm5pbmcobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQo
KSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgUnVuTG9vcCogbWFp
blJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RM
b29wID0gbWFpblJ1bkxvb3AtPmlubmVybW9zdExvb3AoKTsKKyAgICBpZiAoIWdfbWFpbl9sb29w
X2lzX3J1bm5pbmcoaW5uZXJtb3N0TG9vcCkpIHsKKyAgICAgICAgZ19tYWluX2xvb3BfcnVuKGlu
bmVybW9zdExvb3ApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGFu
ZCBydW4gYSBuZXN0ZWQgbG9vcCBpZiB0aGUgaW5uZXJtb3N0IG9uZSB3YXMgYWxyZWFkeSBydW5u
aW5nLgorICAgIEdNYWluTG9vcCogbmVzdGVkTWFpbkxvb3AgPSBnX21haW5fbG9vcF9uZXcoMCwg
RkFMU0UpOworICAgIG1haW5SdW5Mb29wLT5wdXNoTmVzdGVkTWFpbkxvb3AobmVzdGVkTWFpbkxv
b3ApOworICAgIGdfbWFpbl9sb29wX3J1bihuZXN0ZWRNYWluTG9vcCk7CisgICAgbWFpblJ1bkxv
b3AtPnBvcE5lc3RlZE1haW5Mb29wKCk7Cit9CisKK0dNYWluTG9vcCogUnVuTG9vcDo6aW5uZXJt
b3N0TG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5
cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwor
ICAgIHJldHVybiBtX3J1bkxvb3BNYWluTG9vcHNbMF0uZ2V0KCk7Cit9CisKK3ZvaWQgUnVuTG9v
cDo6cHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCogbmVzdGVkTG9vcCkKK3sKKyAgICAvLyBU
aGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VS
VCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3Bz
LmFwcGVuZChhZG9wdEdSZWYobmVzdGVkTG9vcCkpOworfQorCit2b2lkIFJ1bkxvb3A6OnBvcE5l
c3RlZE1haW5Mb29wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQg
YWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHko
KSk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLnJlbW92ZUxhc3QoKTsKK30KKwordm9pZCBSdW5M
b29wOjpzdG9wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3
YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7
CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGxhc3RNYWluTG9vcCA9IG1fcnVuTG9vcE1haW5Mb29w
cy5sYXN0KCk7CisgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobGFzdE1haW5Mb29wLmdl
dCgpKSkKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsYXN0TWFpbkxvb3AuZ2V0KCkpOworfQor
CitnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKK3sKKyAgICBy
dW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBSdW5M
b29wOjp3YWtlVXAoKQoreworICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVm
KGdfaWRsZV9zb3VyY2VfbmV3KCkpOworICAgIGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2Uu
Z2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNv
dXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVl
V29yayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVu
TG9vcENvbnRleHQuZ2V0KCkpOworCisgICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9v
cENvbnRleHQuZ2V0KCkpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5M
b29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX3RpbWVyU291
cmNlKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAg
c3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgp
Cit7CisgICAgbV90aW1lclNvdXJjZSA9IDA7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCit7Cisg
ICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0
KCk7CisgICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOworICAgIC8v
IFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIg
d2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1l
clNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKSkKKyAgICAgICAgdGltZXItPmNs
ZWFyVGltZXJTb3VyY2UoKTsKKworICAgIHRpbWVyLT5maXJlZCgpOworICAgIHJldHVybiBpc1Jl
cGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJl
SW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyU291cmNlKQorICAgICAg
ICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3Vy
Y2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1f
aXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJT
b3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1l
ckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFj
aChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkp
OworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3Rp
bWVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGlt
ZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFyVGltZXJTb3VyY2UoKTsKK30KKworYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lclNv
dXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L1NoYXJlZFRpbWVyTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE1YjE4N2NkMTAyYjIy
NzFkZDhiOGYzM2RkNDI0MmUxOGNhYmJhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxA
Z21haWwuY29tCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgorCisjZGVmaW5lIEdES19QUklPUklUWV9S
RURSQVcgKEdfUFJJT1JJVFlfSElHSF9JRExFICsgMjApCisjaW5jbHVkZSA8Z2xpYi5oPgorI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGd1aW50IHNoYXJlZFRpbWVyOworc3RhdGlj
IHZvaWQgKCpzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pKCk7CisKK3ZvaWQgc2V0U2hhcmVkVGlt
ZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgpKQoreworICAgIHNoYXJlZFRpbWVyRmlyZWRGdW5j
dGlvbiA9IGY7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiB0aW1lb3V0Q2FsbGJhY2soZ3BvaW50ZXIp
Cit7CisgICAgaWYgKHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbikKKyAgICAgICAgc2hhcmVkVGlt
ZXJGaXJlZEZ1bmN0aW9uKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lkIHNldFNoYXJl
ZFRpbWVyRmlyZUludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKK3sKKyAgICBBU1NFUlQoc2hhcmVk
VGltZXJGaXJlZEZ1bmN0aW9uKTsKKworICAgIGd1aW50IGludGVydmFsSW5NUyA9IHN0YXRpY19j
YXN0PGd1aW50PihpbnRlcnZhbCAqIDEwMDApOworCisgICAgc3RvcFNoYXJlZFRpbWVyKCk7Cisg
ICAgc2hhcmVkVGltZXIgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR0RLX1BSSU9SSVRZX1JFRFJBVywg
aW50ZXJ2YWxJbk1TLCB0aW1lb3V0Q2FsbGJhY2ssIDAsIDApOworfQorCit2b2lkIHN0b3BTaGFy
ZWRUaW1lcigpCit7CisgICAgaWYgKCFzaGFyZWRUaW1lcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZ2Jvb2xlYW4gcmVtb3ZlZFNvdXJjZSA9IGdfc291cmNlX3JlbW92ZShzaGFyZWRUaW1lcik7
CisgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkU291cmNlLCByZW1vdmVkU291cmNlKTsKKyAgICBz
aGFyZWRUaW1lciA9IDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9Tb3VuZE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvU291bmRO
aXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRlMWJiZWZmZTQ5YzAzZGYzZDEwZWQwZjRlNTY0NjI4ZjhhZTcy
NWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvU291bmRO
aXguY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0ZW1CZWVwKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MzBmOGJm
YTMxZmRhMjIxNzYyZGE4MmNmOGExYjZiNDk3YjRmMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0
cmluZz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBzaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtV
UkwmKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9XaWRnZXROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZDMwOTczZDIwMDU0NjJiMmU4
Y2YzMzZmYTIyYjMwZmRmNTU0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdldC5o
IgorCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2lkZ2V0
OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQorICAgIDogbV9wYXJlbnQoMCkKKyAgICAs
IG1fd2lkZ2V0KDApCisgICAgLCBtX3NlbGZWaXNpYmxlKGZhbHNlKQorICAgICwgbV9wYXJlbnRW
aXNpYmxlKGZhbHNlKQorICAgICwgbV9mcmFtZSgwLCAwLCAwLCAwKQoreworICAgIGluaXQod2lk
Z2V0KTsKK30KKworV2lkZ2V0Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVudCgpKTsK
K30KKworSW50UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJhbWU7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgcmVj
dCkKK3sKKyAgICBtX2ZyYW1lID0gcmVjdDsKKyAgICBXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2Vk
KCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQoreworfQorCit2b2lkIFdpZGdl
dDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQoreworICAgIFNjcm9sbFZpZXcqIHZp
ZXcgPSByb290KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisgICAgdmlldy0+
aG9zdFdpbmRvdygpLT5zZXRDdXJzb3IoY3Vyc29yKTsKK30KKwordm9pZCBXaWRnZXQ6OnNob3co
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpoaWRlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc3ZmE3NzM4OGRmN2M2YWZkNzFhZDEyNjc4NjllZjA1MDRiNDY2ZWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVTml4LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJh
dG9ySW50ZXJuYWxJQ1UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBjaGFyKiBj
dXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAgIHJldHVybiAiIjsKK30KKworY29uc3QgY2hh
ciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gImVuX3VzIjsKK30K
KworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206105</attachid>
            <date>2013-07-04 11:51:38 -0700</date>
            <delta_ts>2013-07-05 13:10:27 -0700</delta_ts>
            <desc>New patch with corrections</desc>
            <filename>bug-118358-20130704154930.patch</filename>
            <type>text/plain</type>
            <size>117377</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEyNTQxOGQ4NjU4ODAyNzI2OGMyZWEx
NzhlMDVmOGFmZDkxOTExZDAuLjEzMGIxMzgzZjUyMmViZDkxY2YxNmQ1MGQzNTM3ODliYWQyMjcx
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMDMgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTAzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFtXaW5kb3dzXSBVbnJldmlld2VkIGJ1aWxkIGNvcnJlY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNj
MGQ5NzA3ODU5OThlODc3MDZiNjJkYWRiY2Y3ZDI5MjhlZWE1Yy4uNDEyYmIxMjRiZDcyZTQzZTE5
OTU4YjE2ZWQ3ZDZmNmVkOTkzY2E0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEz
LTA3LTAzICBMdWNpYW5vIFdvbGYgIDxsdWNpYW5vLndvbGZAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgc3R1YnMgYW5kIE5peCBzcGVjaWZpYyBwbGF0
Zm9ybSBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmFzaWNhbGx5IGFkZGluZyBhbGwgZmlsZXMgdGhhdCBoYXZlICJOaXgiIGluIHRoZWlyIG5h
bWVzIGFuZAorICAgICAgICBhcmUgcmVsYXRlZCB0byBXZWJDb3JlIG1vZHVsZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIFRoZXkgd2lsbCBiZSB1cGxvYWRlZCBvbiBhbm90aGVyIHBhdGNoIGR1
cmluZyB0aGUKKyAgICAgICAgdXBzdHJlYW1pbmcgcHJvY2Vzcy4KKworICAgICAgICAqIGNzcy9t
ZWRpYUNvbnRyb2xzTml4LmNzczogQWRkZWQuCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNO
aXhGdWxsc2NyZWVuLmNzczogQWRkZWQuCisgICAgICAgICogcGFnZS9uaXgvRXZlbnRIYW5kbGVy
Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEZyb21DdXJyZW50RUdMLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNwcDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ljb25OaXguY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bml4L0RyYWdEYXRhTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L0RyYWdJ
bWFnZU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9FcnJvcnNOaXguY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvRXJyb3JzTml4Lmg6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL25peC9GaWxlU3lzdGVtTml4LmNwcDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bml4L0xhbmd1YWdlTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L0xvY2Fs
aXplZFN0cmluZ3NOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTUlNRVR5
cGVSZWdpc3RyeU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGFzdGVib2Fy
ZE5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJk
RXZlbnROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3Jl
ZW5OaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUnVuTG9vcE5peC5jcHA6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25peC9Tb3VuZE5peC5jcHA6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25peC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHA6IEFkZGVkLgorCiAyMDEz
LTA3LTAzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgUGFnZVRocm90dGxlcjo6bV9hY3RpdmVUaHJvdHRsZUJsb2NrZXJzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXguaCBiL1NvdXJjZS9X
VEYvd3RmL25peC9GZWF0dXJlRGVmaW5lc05peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzJhZDBlZDI2MTRh
NDEyMjY2YmFiNjNkOTRmYzJiZWVlM2E0NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXguaApAQCAtMCwwICsxLDI4MSBAQAorLyoKKyogIENv
cHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCisjZGVmaW5l
IFdURl9GZWF0dXJlRGVmaW5lc05peF9oCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfM0RfUkVOREVS
SU5HKQorI2RlZmluZSBFTkFCTEVfM0RfUkVOREVSSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxP
V19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQkxPQikKKyNkZWZp
bmUgRU5BQkxFX0JMT0IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpCisjZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVY
VF9NRU5VUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVm
aW5lIEVOQUJMRV9DU1MzX1RFWFQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19FWENMVVNJT05TKQor
I2RlZmluZSBFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX0ZJTFRFUlMpCisjZGVmaW5lIEVOQUJMRV9DU1NfRklMVEVSUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pCisjZGVmaW5lIEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xV
VElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfU0VUKQorI2Rl
ZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1NFVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9DU1NfUkVHSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NTU19SRUdJT05TIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0NTU19TSEFERVJTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQURF
UlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1ZBUklBQkxFUykKKyNkZWZp
bmUgRU5BQkxFX0NTU19WQVJJQUJMRVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREVUQUlMU19FTEVNRU5UKQorI2RlZmluZSBFTkFC
TEVfREVUQUlMU19FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdf
U1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9GQVNU
X01PQklMRV9TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVS
UykKKyNkZWZpbmUgRU5BQkxFX0ZJTFRFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxF
X0dBTUVQQUQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VTVFVSRV9FVkVOVFMp
CisjZGVmaW5lIEVOQUJMRV9HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9JQ09OREFUQUJBU0UpCisjZGVmaW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKQorI2RlZmluZSBFTkFC
TEVfSUZSQU1FX1NFQU1MRVNTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpCisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RP
UiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSKQorI2Rl
ZmluZSBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKQorI2RlZmluZSBFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJM
RV9KSVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVG
SVhFUykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OKQorI2RlZmluZSBF
TkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElP
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UKQorI2RlZmluZSBFTkFCTEVf
TExJTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQorI2RlZmluZSBF
TkFCTEVfTUFUSE1MIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX01JQ1JPREFUQSkKKyNkZWZpbmUgRU5BQkxFX01JQ1JPREFUQSAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNkZWZpbmUg
RU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFdPUktfSU5GTykKKyNk
ZWZpbmUgRU5BQkxFX05FVFdPUktfSU5GTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCkKKyNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNL
QUdFX1NJTVBMRV9IQVNIIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BPUFVQX01F
TlVTKQorI2RlZmluZSBFTkFCTEVfUE9QVVBfTUVOVVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX0VMRU1F
TlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpCisjZGVmaW5lIEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0hBUEVTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQVBF
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TSEFSRURfV09SS0VSUykKKyNkZWZp
bmUgRU5BQkxFX1NIQVJFRF9XT1JLRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1NRTF9EQVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxFX1NRTF9EQVRBQkFTRSAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9TVkcpCisjZGVmaW5lIEVOQUJMRV9TVkcgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHX0ZPTlRTKQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRT
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQpCisjZGVm
aW5lIEVOQUJMRV9UT1VDSF9BREpVU1RNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1RPVUNIX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9VTkRPX01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9VTkRP
X01BTkFHRVIgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCisjZGVmaW5l
IEVOQUJMRV9WSURFTyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXX01PREVf
Q1NTX01FRElBKQorI2RlZmluZSBFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVE
SU8gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJM
RV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfU09DS0VUUykKKyNk
ZWZpbmUgRU5BQkxFX1dFQl9TT0NLRVRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1dFQl9USU1JTkcpCisjZGVmaW5lIEVOQUJMRV9XRUJfVElNSU5HIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9XT1JLRVJTIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKQorI2RlZmluZSBFTkFC
TEVfWEhSX1JFU1BPTlNFX0JMT0IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfWFNM
VCkKKyNkZWZpbmUgRU5BQkxFX1hTTFQgMQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxh
dGZvcm1OaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBiZTQ0MzdhNmNkYzE2MjZhNjQzNTYyMTcyY2IzZmE4
MWRlYmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4
LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdU
Rl9QbGF0Zm9ybU5peF9oCisjZGVmaW5lIFdURl9QbGF0Zm9ybU5peF9oCisKKyNkZWZpbmUgV1RG
X1BMQVRGT1JNX05JWCAxCisjZGVmaW5lIEVOQUJMRV9HTE9CQUxfRkFTVE1BTExPQ19ORVcgMAor
CisjZGVmaW5lIFdURl9VU0VfM0RfR1JBUEhJQ1MgMQorI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HIDEKKyNkZWZpbmUgV1RGX1VTRV9DQUlSTyAxCisjZGVmaW5lIFdURl9V
U0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgMQorI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JN
X0NPTlRFWFRfTUVOVVMgMQorI2RlZmluZSBXVEZfVVNFX0ZSRUVUWVBFIDEKKyNkZWZpbmUgV1RG
X1VTRV9HTElCIDEKKyNkZWZpbmUgV1RGX1VTRV9IQVJGQlVaWiAxCisjZGVmaW5lIFdURl9VU0Vf
SEFSRkJVWlpfTkcgMQorI2RlZmluZSBXVEZfVVNFX0lDVV9VTklDT0RFIDEKKyNkZWZpbmUgV1RG
X1VTRV9JT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUgMQorI2RlZmluZSBXVEZfVVNFX0xF
VkVMREIgMQorI2RlZmluZSBXVEZfVVNFX1BUSFJFQURTIDEKKyNkZWZpbmUgV1RGX1VTRV9URVhU
VVJFX01BUFBFUiAxCisjZGVmaW5lIFdURl9VU0VfVEVYVFVSRV9NQVBQRVJfR0wgMQorI2RlZmlu
ZSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgMQorI2RlZmluZSBXVEZfVVNFX1VOSVhfRE9N
QUlOX1NPQ0tFVFMgMQorCisjaWYgIWRlZmluZWQoV1RGX1VTRV9PUEVOR0xfRVNfMikgfHwgIVdU
Rl9VU0VfT1BFTkdMX0VTXzIKKyNkZWZpbmUgV1RGX1VTRV9PUEVOR0wgMQorI2RlZmluZSBXVEZf
VVNFX0dMWCAxCisjZGVmaW5lIFdURl9QTEFURk9STV9YMTEgMQorI2RlZmluZSBXVEZfVVNFX0dS
QVBISUNTX1NVUkZBQ0UgMQorI2Vsc2UKKyNkZWZpbmUgV1RGX1VTRV9FR0wgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChXVEZfVVNFX0NVUkwpIHx8ICFXVEZfVVNFX0NVUkwKKyNkZWZpbmUgV1RG
X1VTRV9TT1VQIDEKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRy
b2xzTml4LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWIzNjY1MjdiN2UwNTgxOTRjNTQxNzE1ZWY1Nzg4ZWQw
Mjc3NDliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNOaXguY3NzCkBAIC0wLDAgKzEsMjAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEwLCAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVk
aWEgY29udHJvbHMuIEV4dGVuZHMgbWVkaWFDb250cm9scy5jc3MgKi8KKworYXVkaW8geworICAg
IHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDIwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7
CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jp
em9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC11c2Vy
LXNlbGVjdDogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgYm90dG9tOiAwOwor
ICAgIHdpZHRoOiAxMDAlOworICAgIHotaW5kZXg6IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsK
KyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKK3ZpZGVvOi13
ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAg
ICBib3R0b206IDBweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1i
dXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW11dGUtYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJr
aXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CisgICAgei1pbmRleDogMjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0
aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LXBsYXktYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4
OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAg
IGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtY29udHJvbHMtYmFja2dyb3VuZDsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246
IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7CisgICAgLXdlYmtpdC1ib3gtZmxl
eDogMTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGhlaWdodDogMjBweDsK
K30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXks
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OworICAgIC13
ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAg
aGVpZ2h0OiAyMHB4OworCisgICAgcGFkZGluZzogNHB4OworCisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworICAgIGZvbnQtc2l6ZTogMTBweDsKKworICAgIGNvbG9yOiBibGFjazsKKyAgICBsZXR0
ZXItc3BhY2luZzogbm9ybWFsOworICAgIHdvcmQtc3BhY2luZzogbm9ybWFsOworICAgIGxpbmUt
aGVpZ2h0OiBub3JtYWw7CisgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CisgICAgdGV4dC1pbmRl
bnQ6IDA7CisgICAgdGV4dC1zaGFkb3c6IG5vbmU7CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25l
OworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAgICBmb250LXdlaWdodDogbm9ybWFsOworICAg
IGZvbnQtZmFtaWx5OiBzZXJpZjsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZS1yZW1haW5pbmctZGlzcGxheSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKKyAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhl
aWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAwcHggMnB4OworICAgIGJhY2tncm91bmQtY29sb3I6
IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworICAg
IG1hcmdpbjogaW5pdGlhbDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVt
ZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVt
ZS1zbGlkZXItY29udGFpbmVyOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBoZWlnaHQ6
IDEwMHB4OworICAgIHdpZHRoOiAyMHB4OworICAgIGJvdHRvbTogMjBweDsKKyAgICB6LWluZGV4
OiAxOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXI7CisgICAgZGlzcGxheTogbm9uZTsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBj
b2xvcjogaW5oZXJpdDsKKyAgICBtYXJnaW46IGluaXRpYWw7Cit9CisKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXNlZWstYmFjay1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEt
c2Vlay1iYWNrLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDog
MjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsK
KyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJv
eDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7
Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uLCB2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiB7CisgICAgLXdl
YmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1mdWxsc2NyZWVuLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAt
d2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6
IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0
b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24geworICAgIGRp
c3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6
IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7Cisg
ICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRv
Z2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGlu
aGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIt
bXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIt
bXV0ZS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRl
ci1tdXRlLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6
IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVu
LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjMzZDcwN2RjYWVlZmMzZWJkMDVhY2NhNmYwNTBkMzQ3ODNmOWY2NgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNj
cmVlbi5jc3MKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMg
Zm9yIGZ1bGxzY3JlZW4uICovCisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVs
IHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhv
cml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LXVz
ZXItc2VsZWN0OiBub25lOworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0b206IDA7
CisgICAgd2lkdGg6IDEwMCU7CisgICAgei1pbmRleDogMDsKKyAgICBvdmVyZmxvdzogaGlkZGVu
OworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KKwordmlkZW86
LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgewor
ICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11
dGUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1w
bGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsK
KyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBi
b3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK3ZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5kOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94
OworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1h
bGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDsKKyAgICAtd2Via2l0LWJv
eC1mbGV4OiAxOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgaGVpZ2h0OiAy
MHB4OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlz
cGxheSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxh
eTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgcGFkZGluZzogNHB4OworICAgIHRleHQtYWxp
Z246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEwcHg7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkgeworICAgIGRpc3BsYXk6IG5vbmU7
Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Vi
a2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsK
KyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5n
OiAwcHggMnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBp
bml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKwor
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgewor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7Cisg
ICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVy
OworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXNlZWstYmFjay1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24geworICAgIGRpc3BsYXk6IG5v
bmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9u
IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1yZXdpbmQtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIHsKKyAgICBkaXNwbGF5
OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2Vk
LWNhcHRpb25zLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxOTc0MTg4YjAxZGZl
NjMyYjZkNWM3ZDA2MTgxZWQ0MTU3ZTRhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENv
cHlyaWdodCAoQykgMjAwOSwyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDksMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKworI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
CisjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgorI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5
Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUg
IlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorY29uc3QgZG91YmxlIEV2ZW50SGFu
ZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKKyNlbmRpZgorCitib29sIEV2ZW50SGFuZGxlcjo6
dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAoreworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQorewor
ICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKG1fZnJhbWUpOworfQorCitib29sIEV2ZW50
SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQpCit7CisgICAgUmVuZGVyT2JqZWN0KiB0YXJnZXQg
PSBldmVudC50YXJnZXROb2RlKCkgPyBldmVudC50YXJnZXROb2RlKCktPnJlbmRlcmVyKCkgOiAw
OworCisgICAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC0+aXNXaWRnZXQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHN0YXRp
Y19jYXN0PFJlbmRlcldpZGdldCo+KHRhcmdldCktPndpZGdldCgpKTsKK30KKworYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCog
cmVuZGVyV2lkZ2V0KQoreworICAgIHJldHVybiBwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChy
ZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZp
ZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVl
bEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgQVNTRVJUKHdpZGdldCk7CisgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxF
dmVudChldmVudCk7Cit9CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAor
eworICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Cit9CisjZW5k
aWYKKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAg
IHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KG1ldi5ldmVu
dCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3Vz
ZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBG
cmFtZSogc3ViZnJhbWUsIEhpdFRlc3RSZXN1bHQqIGhvdmVyZWROb2RlKQoreworICAgIHN1YmZy
YW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VNb3ZlRXZlbnQobWV2LmV2ZW50KCksIGhv
dmVyZWROb2RlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NNb3VzZVJlbGVhc2VFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCit7CisgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigp
LT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtZXYuZXZlbnQoKSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3Vuc2lnbmVkIEV2ZW50SGFuZGxlcjo6YWNjZXNzS2V5TW9kaWZpZXJzKCkKK3sKKyAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6QWx0S2V5OworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3Vy
cmVudEVHTC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiNmVmMWI2NTJkNzI0Njk2YmZmZDY1YzM1MDU0MmVh
Y2JlZDMwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJHTENvbnRleHRGcm9tQ3VycmVudEVHTC5oIgorCisjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEdMQ29udGV4dEZyb21DdXJyZW50
RUdMPiBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6Y3JlYXRlRnJvbUN1cnJlbnRHTENvbnRleHQo
KQoreworICAgIGlmICghaW5pdGlhbGl6ZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEdMQ29udGV4dEZyb21DdXJyZW50RUdMKCkpOworfQorCitH
TENvbnRleHRGcm9tQ3VycmVudEVHTDo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0woKQorICAgIDog
bV9kaXNwbGF5KGVnbEdldEN1cnJlbnREaXNwbGF5KCkpCisgICAgLCBtX3N1cmZhY2UoZWdsR2V0
Q3VycmVudFN1cmZhY2UoRUdMX0RSQVcpKQorICAgICwgbV9jb250ZXh0KGVnbEdldEN1cnJlbnRD
b250ZXh0KCkpCit7Cit9CisKK2Jvb2wgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6Om1ha2VDb250
ZXh0Q3VycmVudCgpCit7CisgICAgR0xDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAg
ICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9kaXNwbGF5LCBtX3N1cmZhY2UsIG1fc3VyZmFjZSwg
bV9jb250ZXh0KTsKK30KKworYm9vbCBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6aW5pdGlhbGl6
ZSgpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMg
Ym9vbCBzdWNjZXNzID0gdHJ1ZTsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIHN1
Y2Nlc3MgPSBpbml0aWFsaXplT3BlbkdMU2hpbXMoKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gc3VjY2VzczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dM
Q29udGV4dEZyb21DdXJyZW50RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmI2YTlmOTJjZDlh
MjY2YTE5YWVkZmQyMjBlZGM1NzlmMGRmNzdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmgKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR0xD
b250ZXh0RnJvbUN1cnJlbnRFR0xfaAorI2RlZmluZSBHTENvbnRleHRGcm9tQ3VycmVudEVHTF9o
CisKKyNpbmNsdWRlICJHTENvbnRleHQuaCIKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wgOiBwdWJsaWMg
R0xDb250ZXh0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHRGcm9tQ3VycmVu
dEVHTCk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250ZXh0RnJvbUN1cnJl
bnRFR0w+IGNyZWF0ZUZyb21DdXJyZW50R0xDb250ZXh0KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wg
bWFrZUNvbnRleHRDdXJyZW50KCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1
ZmZlcnMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIEludFNpemUgZGVmYXVsdEZyYW1lQnVm
ZmVyU2l6ZSgpIE9WRVJSSURFIHsgcmV0dXJuIEludFNpemUoKTsgfQorICAgIHZpcnR1YWwgY2Fp
cm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorCisgICAg
dmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkgT1ZFUlJJREUgeyBy
ZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBw
bGF0Zm9ybUNvbnRleHQoKSBPVkVSUklERSB7IHJldHVybiB0aGlzOyB9CisgICAgdmlydHVhbCB2
b2lkIHdhaXROYXRpdmUoKSBPVkVSUklERSB7IHJldHVybjsgfQorCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemUoKTsKKworICAgIEdMQ29udGV4dEZyb21DdXJyZW50RUdMKCk7
CisKKyAgICBFR0xEaXNwbGF5IG1fZGlzcGxheTsKKyAgICBFR0xTdXJmYWNlIG1fc3VyZmFjZTsK
KyAgICBFR0xDb250ZXh0IG1fY29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEdMQ29udGV4dEZyb21DdXJyZW50RUdMX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93
Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0
Zm9ybVZpZGVvV2luZG93Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDlkYTJmOTBkNmI2MDM3MTQzMzBm
Mzk2ZjQxNWIwODY3M2QwNjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlkZW9XaW5kb3dOaXguY3BwCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlk
ZW9XaW5kb3cuaCIKKworI2lmIFVTRShHU1RSRUFNRVIpICYmICFkZWZpbmVkKEdTVF9BUElfVkVS
U0lPTl8xKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK1BsYXRmb3JtVmlkZW9XaW5kb3c6OlBsYXRmb3JtVmlkZW9XaW5kb3coKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1BsYXRmb3JtVmlkZW9XaW5kb3c6On5QbGF0
Zm9ybVZpZGVvV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBs
YXRmb3JtVmlkZW9XaW5kb3c6OnByZXBhcmVGb3JPdmVybGF5KEdzdE1lc3NhZ2UqKQoreworfQor
CisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikgJiYgIWRlZmluZWQoR1NUX0FQSV9WRVJTSU9OXzEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5p
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWQzZjhkMzJlNGQzMGI0NGRjMDM2MTc4OTU0OWMzYmE3MmI5YTJiOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JY29u
Tml4LmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJT
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSWNvbi5oIgorCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkKK3sKK30KKworUGFzc1JlZlB0cjxJY29u
PiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bml4L0ltYWdlTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9J
bWFnZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M2ZTEzYjQyYjQ2MThiNWNlY2FjNTA2NjQ1YjBlNjM2
OWE1MGJmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25peC9JbWFnZU5peC5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQg
c3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwor
ICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2Uu
aCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBs
YXRmb3JtRGF0YSgpCit7Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9h
ZFJlc291cmNlU2hhcmVkQnVmZmVyRmFsbGJhY2soKQoreworICAgIHJldHVybiBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZSgpOyAvLyBGSVhNRTogZmFsbGJhY2sgaW1hZ2U/Cit9CisKK3N0YXRpYyBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIq
IG5hbWUpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVy
OjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUobWFrZVN0cmluZyhEQVRBX0RJUiAiL3dlYmtpdC0x
LjAvaW1hZ2VzLyIsIG5hbWUsICIucG5nIikpOworICAgIGlmIChidWZmZXIpCisgICAgICAgIHJl
dHVybiBidWZmZXIucmVsZWFzZSgpOworICAgIHJldHVybiBsb2FkUmVzb3VyY2VTaGFyZWRCdWZm
ZXJGYWxsYmFjaygpOworfQorCitQYXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3Jt
UmVzb3VyY2UoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBSZWZQdHI8Qml0bWFwSW1hZ2U+IGlt
ZyA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXIgPSBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXIobmFtZSk7CisgICAgaW1nLT5zZXREYXRhKGJ1
ZmZlci5yZWxlYXNlKCksIHRydWUpOworICAgIHJldHVybiBpbWcucmVsZWFzZSgpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9DdXJzb3JOaXguY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3
N2VmMGNjZTNiZTk3ZmVhYWQ0OGY2Nzg3MDU1NmRiOGExMTUyYzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcApAQCAtMCwwICsxLDEy
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBEaXJrIE11ZWxsZXIgPG11ZWxsZXJAa2Rl
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBHZW9yZ2UgU3RhaWtvcyA8c3RhaWtvc0BrZGUu
b3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IENoYXJsZXMgU2FtdWVscyA8Y2hhcmxlc0BrZGUu
b3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4KKyAqIENvcHly
aWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAq
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1cnNvci5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitDdXJzb3I6OkN1cnNvcihjb25zdCBDdXJzb3ImIG90aGVyKQorICAgIDog
bV90eXBlKG90aGVyLm1fdHlwZSkKKyAgICAsIG1faW1hZ2Uob3RoZXIubV9pbWFnZSkKKyAgICAs
IG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCisgICAgLCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVy
Lm1fcGxhdGZvcm1DdXJzb3IpCit7Cit9CisKK0N1cnNvcjo6fkN1cnNvcigpCit7Cit9CisKK0N1
cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKK3sKKyAgICBtX3R5
cGUgPSBvdGhlci5tX3R5cGU7CisgICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7CisgICAgbV9o
b3RTcG90ID0gb3RoZXIubV9ob3RTcG90OworICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5t
X3BsYXRmb3JtQ3Vyc29yOworICAgIHJldHVybiAqdGhpczsKK30KKworc3RhdGljIGNvbnN0IGNo
YXIqIGN1cnNvclN0cmluZyhDdXJzb3I6OlR5cGUgdHlwZSkKK3sKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY3Vyc29yU3RyaW5nc1tdID0geworICAgICAgICAiY3Vyc29yL3BvaW50ZXIiLAorICAg
ICAgICAiY3Vyc29yL2Nyb3NzIiwKKyAgICAgICAgImN1cnNvci9oYW5kIiwKKyAgICAgICAgImN1
cnNvci9pX2JlYW0iLAorICAgICAgICAiY3Vyc29yL3dhaXQiLAorICAgICAgICAiY3Vyc29yL2hl
bHAiLAorICAgICAgICAiY3Vyc29yL2Vhc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0
aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vhc3RfcmVzaXplIiwKKyAgICAgICAg
ImN1cnNvci9ub3J0aF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfcmVzaXpl
IiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9lYXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Iv
c291dGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL3dlc3RfcmVzaXplIiwKKyAgICAg
ICAgImN1cnNvci9ub3J0aF9zb3V0aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL2Vhc3Rfd2Vz
dF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vhc3Rfc291dGhfd2VzdF9yZXNpemUi
LAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3Rfc291dGhfZWFzdF9yZXNpemUiLAorICAgICAg
ICAiY3Vyc29yL2NvbHVtbl9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL3Jvd19yZXNpemUiLAor
ICAgICAgICAiY3Vyc29yL21pZGRsZV9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9lYXN0X3Bh
bm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29y
L25vcnRoX2Vhc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfd2VzdF9wYW5uaW5n
IiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9zb3V0
aF9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL3NvdXRoX3dlc3RfcGFubmluZyIsCisg
ICAgICAgICJjdXJzb3Ivd2VzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9tb3ZlIiwKKyAg
ICAgICAgImN1cnNvci92ZXJ0aWNhbF90ZXh0IiwKKyAgICAgICAgImN1cnNvci9jZWxsIiwKKyAg
ICAgICAgImN1cnNvci9jb250ZXh0X21lbnUiLAorICAgICAgICAiY3Vyc29yL2FsaWFzIiwKKyAg
ICAgICAgImN1cnNvci9wcm9ncmVzcyIsCisgICAgICAgICJjdXJzb3Ivbm9fZHJvcCIsCisgICAg
ICAgICJjdXJzb3IvY29weSIsCisgICAgICAgICJjdXJzb3Ivbm9uZSIsCisgICAgICAgICJjdXJz
b3Ivbm90X2FsbG93ZWQiLAorICAgICAgICAiY3Vyc29yL3pvb21faW4iLAorICAgICAgICAiY3Vy
c29yL3pvb21fb3V0IiwKKyAgICAgICAgImN1cnNvci9ncmFiIiwKKyAgICAgICAgImN1cnNvci9n
cmFiYmluZyIsCisgICAgICAgICIifTsgLy8gRklYTUU6IEp1c3QgcmV0dXJuICIiIGZvciBjdXN0
b20gdHlwZS4gV2UgZG9uJ3Qgc3VwcG9ydCBpdCBub3cuCisgICAgcmV0dXJuIGN1cnNvclN0cmlu
Z3NbdHlwZV07Cit9CisKK3ZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0
Cit7CisgICAgaWYgKG1fcGxhdGZvcm1DdXJzb3IpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3Vyc29yU3RyaW5nKG1fdHlwZSk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZmI2OTg2YWZh
NGYyMWViMDI3NTc3YjZmMWFjMTY0OTcxNWM3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRHJhZ0RhdGEuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRGcmFnbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgRHJhZ0RhdGE6OmNh
blNtYXJ0UmVwbGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIERy
YWdEYXRhOjpjb250YWluc0NvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCit2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5n
PiYpIGNvbnN0Cit7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBEcmFnRGF0YTo6YXNQbGFpblRl
eHQoRnJhbWUqKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworQ29sb3IgRHJh
Z0RhdGE6OmFzQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBDb2xvcigpOworfQorCitib29s
IERyYWdEYXRhOjpjb250YWluc0NvbXBhdGlibGVDb250ZW50KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5h
bWVDb252ZXJzaW9uUG9saWN5KSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3Ry
aW5nIERyYWdEYXRhOjphc1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3Ry
aW5nKikgY29uc3QKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1Bhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gRHJhZ0RhdGE6OmFzRnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJh
bmdlPiwgYm9vbCwgYm9vbCYpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJbWFnZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRh
Yzg2MTJjMTNiZjU5ZjVlNTQzOTE2ZDEyODdmZWZjZjhiZjA1YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwCkBAIC0wLDAgKzEs
NzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCisKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2lu
Y2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEludFNpemUoMCwgMCk7Cit9CisKK3ZvaWQg
ZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9h
dFNpemUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gaW1hZ2U7Cit9CisK
K0RyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGlt
YWdlLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsK
K30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAwOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZElt
YWdlKENhY2hlZEltYWdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRXJyb3Jz
Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9FcnJvcnNOaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY3NzA0YWQzMTg5MjY3NDVmNDNkODZlZmIxMTM0MzUxNmM2ZDk2MzYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmNwcApAQCAt
MCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnNOaXguaCIKKworI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQcmludENvbnRleHQuaCIK
KyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0
d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCAiTG9hZCByZXF1ZXN0
IGNhbmNlbGxlZCIpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCksICJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBv
cnQiKTsKK30KKworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9t
YWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCkuc3RyaW5n
KCksICJVUkwgY2Fubm90IGJlIHNob3duIik7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJydXB0
ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9y
RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKS5zdHJpbmco
KSwgIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIik7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9y
Q2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgIkNvbnRlbnQgd2l0
aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUgc2hvd24iKTsKK30KKworUmVzb3Vy
Y2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBO
ZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgIkZp
bGUgZG9lcyBub3QgZXhpc3QiKTsKK30KKworUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxl
TG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUGx1Z2luLCBQbHVnaW5FcnJvcldpbGxIYW5kbGVM
b2FkLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIik7
Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VF
cnJvciYgbmV0d29ya0Vycm9yKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9t
YWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VS
TCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25s
b2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCByZXNwb25zZS51cmwoKS5zdHJpbmco
KSwgIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIpOworfQorCitSZXNvdXJjZUVycm9yIGRv
d25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCByZXNwb25zZS51
cmwoKS5zdHJpbmcoKSwgZXJyb3JNZXNzYWdlKTsKK30KKworUmVzb3VyY2VFcnJvciBwcmludEVy
cm9yKGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0LCBjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBwcmludENv
bnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOworCisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdlbmVyYWwsIGRvY3Vt
ZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgpIDogS1VSTCgpLCBlcnJvck1lc3NhZ2Up
OworfQorCitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFByaW50Q29u
dGV4dCogcHJpbnRDb250ZXh0KQoreworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRl
ciA9IHByaW50Q29udGV4dC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CisK
KyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yUHJp
bnRlck5vdEZvdW5kLCBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50TG9hZGVyLT51cmwoKSA6IEtV
UkwoKSwgIlByaW50ZXIgbm90IGZvdW5kIik7Cit9CisKK1Jlc291cmNlRXJyb3IgaW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQoY29uc3QgUHJpbnRDb250ZXh0KiBwcmludENvbnRleHQpCit7CisgICAg
RG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gcHJpbnRDb250ZXh0LT5mcmFtZSgpLT5s
b2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKKworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlLCBkb2N1bWVudExvYWRl
ciA/IGRvY3VtZW50TG9hZGVyLT51cmwoKSA6IEtVUkwoKSwgIkludmFsaWQgcGFnZSByYW5nZSIp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvRXJyb3JzTml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
RXJyb3JzTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQxOTgwYTM2MGFjNWE4MWNkZWMzOGVjYWQyNGM0ZTQ3
YWY4OTlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9F
cnJvcnNOaXguaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRXJyb3JzTml4X2gKKyNkZWZpbmUgRXJyb3JzTml4X2gKKworI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFByaW50Q29udGV4dDsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworCitzdGF0aWMgY29uc3QgY2hhciBlcnJvckRv
bWFpbk5ldHdvcmtbXSA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOworc3RhdGljIGNvbnN0IGNoYXIg
ZXJyb3JEb21haW5Qb2xpY3lbXSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7CitzdGF0aWMgY29uc3Qg
Y2hhciBlcnJvckRvbWFpblBsdWdpbltdID0gIldlYktpdFBsdWdpbkVycm9yIjsKK3N0YXRpYyBj
b25zdCBjaGFyIGVycm9yRG9tYWluRG93bmxvYWRbXSA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsK
K3N0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUHJpbnRbXSA9ICJXZWJLaXRQcmludEVycm9y
IjsKKworZW51bSBOZXR3b3JrRXJyb3IgeworICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwK
KyAgICBOZXR3b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDAsCisgICAgTmV0d29ya0Vycm9yVW5rbm93
blByb3RvY29sID0gMzAxLAorICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKKyAgICBO
ZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzCit9OworCisvLyBTeW5jJ2Qgd2l0aCBN
YWMncyBXZWJLaXQgRXJyb3JzIGF0OgorLy8gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRF
cnJvcnNbUHJpdmF0ZV0uaAorZW51bSBQb2xpY3lFcnJvciB7CisgICAgUG9saWN5RXJyb3JGYWls
ZWQgPSAxOTksCisgICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCisgICAg
UG9saWN5RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAorICAgIFBvbGljeUVycm9yRnJhbWVMb2Fk
SW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFVz
ZVJlc3RyaWN0ZWRQb3J0ID0gMTAzCit9OworCitlbnVtIFBsdWdpbkVycm9yIHsKKyAgICBQbHVn
aW5FcnJvckZhaWxlZCA9IDI5OSwKKyAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAy
MDAsCisgICAgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAorICAgIFBsdWdpbkVy
cm9ySmF2YVVuYXZhaWxhYmxlID0gMjAyLAorICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNl
bGxlZCA9IDIwMywKKyAgICBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Cit9OworCitl
bnVtIERvd25sb2FkRXJyb3IgeworICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAorICAg
IERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIgPSA0MDAsCisgICAgRG93bmxvYWRFcnJvckRl
c3RpbmF0aW9uID0gNDAxCit9OworCitlbnVtIFByaW50RXJyb3IgeworICAgIFByaW50RXJyb3JH
ZW5lcmFsID0gNTk5LAorICAgIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCisgICAg
UHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UgPSA1MDEKK307CisKK1Jlc291cmNlRXJyb3IgY2Fu
Y2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hv
d1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VFcnJvciBpbnRlcnJ1
cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7CitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25z
dCBSZXNvdXJjZUVycm9yJik7CitSZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZERl
c3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKTsKK1Jlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBQcmludENvbnRleHQq
LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RG
b3VuZEVycm9yKGNvbnN0IFByaW50Q29udGV4dCopOworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFn
ZVJhbmdlVG9QcmludChjb25zdCBQcmludENvbnRleHQqKTsKKworfQorCisjZW5kaWYgLy8gRXJy
b3JzTml4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9GaWxlU3lz
dGVtTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9GaWxlU3lzdGVtTml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZmEzN2EyNzBmZTIxZTk4MzFjNGFhYzU0NDgxNDUxMDIwNGQ4OWQ0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0ZpbGVTeXN0ZW1O
aXguY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFi
b3JhLCBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbS5oIgorCisjaW5jbHVkZSAiRmlsZU1ldGFkYXRhLmgiCisjaW5jbHVkZSAi
VVVJRC5oIgorI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVk
ZSA8Z2xpYi9nc3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJV
dGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLyogT24gbGludXgg
ZmlsZSBuYW1lcyBhcmUganVzdCByYXcgYnl0ZXMsIHNvIGFsc28gc3RyaW5ncyB0aGF0IGNhbm5v
dCBiZSBlbmNvZGVkIGluIGFueSB3YXkKKyAqIGFyZSB2YWxpZCBmaWxlIG5hbWVzLiBUaGlzIG1l
YW4gdGhhdCB3ZSBjYW5ub3QganVzdCBzdG9yZSBhIGZpbGUgbmFtZSBhcy1pcyBpbiBhIFN0cmlu
ZworICogYnV0IHdlIGhhdmUgdG8gZXNjYXBlIGl0LgorICogT24gV2luZG93cyB0aGUgR0xpYiBm
aWxlIG5hbWUgZW5jb2RpbmcgaXMgYWx3YXlzIFVURi04IHNvIHdlIGNhbiBvcHRpbWl6ZSB0aGlz
IGNhc2UuICovCitTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25zdCBjaGFyKiBmaWxlbmFtZSkK
K3sKKyAgICBpZiAoIWZpbGVuYW1lKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBH
T3duUHRyPGdjaGFyPiBlc2NhcGVkU3RyaW5nKGdfdXJpX2VzY2FwZV9zdHJpbmcoZmlsZW5hbWUs
ICIvOiIsIGZhbHNlKSk7CisgICAgcmV0dXJuIGVzY2FwZWRTdHJpbmcuZ2V0KCk7Cit9CisKK0NT
dHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAg
ICBHT3duUHRyPGdjaGFyPiBmaWxlbmFtZShnX3VyaV91bmVzY2FwZV9zdHJpbmcocGF0aC51dGY4
KCkuZGF0YSgpLCAwKSk7CisgICAgcmV0dXJuIGZpbGVuYW1lLmdldCgpOworfQorCisvLyBDb252
ZXJ0cyBhIHN0cmluZyB0byBzb21ldGhpbmcgc3VpdGFibGUgdG8gYmUgZGlzcGxheWVkIHRvIHRo
ZSB1c2VyLgorU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcmIHN0cmluZykK
K3sKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN0cmlu
Zyk7CisgICAgR093blB0cjxnY2hhcj4gZGlzcGxheShnX2ZpbGVuYW1lX3RvX3V0ZjgoZmlsZW5h
bWUuZGF0YSgpLCAwLCAwLCAwLCAwKSk7CisgICAgaWYgKCFkaXNwbGF5KQorICAgICAgICByZXR1
cm4gc3RyaW5nOworCisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoZGlzcGxheS5nZXQoKSk7
Cit9CisKK2Jvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgYm9vbCBy
ZXN1bHQgPSBmYWxzZTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKHBhdGgpOworCisgICAgaWYgKCFmaWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAgcmVz
dWx0ID0gZ19maWxlX3Rlc3QoZmlsZW5hbWUuZGF0YSgpLCBHX0ZJTEVfVEVTVF9FWElTVFMpOwor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCkKK3sKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIENTdHJpbmcgZmlsZW5hbWUg
PSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisKKyAgICBpZiAoIWZpbGVuYW1lLmlz
TnVsbCgpKQorICAgICAgICByZXN1bHQgPSAhZ19yZW1vdmUoZmlsZW5hbWUuZGF0YSgpKTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3Qg
U3RyaW5nJiBwYXRoKQoreworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgQ1N0cmluZyBm
aWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKworICAgIGlmICghZmls
ZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJlc3VsdCA9ICFnX3JtZGlyKGZpbGVuYW1lLmRhdGEo
KSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGdldEZpbGVTaXplKGNvbnN0IFN0
cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQoreworICAgIENTdHJpbmcgZmlsZW5h
bWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZpbGVuYW1lLmlz
TnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0
OworICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVuYW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQp
OworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlc3VsdFNp
emUgPSBzdGF0UmVzdWx0LnN0X3NpemU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgZ2V0
RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBwYXRoLCB0aW1lX3QmIG1vZGlmaWVk
VGltZSkKK3sKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgR1N0YXRCdWYgc3RhdFJlc3VsdDsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChm
aWxlbmFtZS5kYXRhKCksICZzdGF0UmVzdWx0KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBtb2RpZmllZFRpbWUgPSBzdGF0UmVzdWx0LnN0X210aW1lOwor
ICAgIHJldHVybiB0cnVlOworCit9CisKK2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK3sKKyAgICBDU3RyaW5nIGZpbGVuYW1l
ID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RydWN0IHN0YXQgc3RhdFJlc3Vs
dDsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZS5kYXRhKCksICZzdGF0UmVzdWx0
KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtZXRhZGF0
YS5tb2RpZmljYXRpb25UaW1lID0gc3RhdFJlc3VsdC5zdF9tdGltZTsKKyAgICBtZXRhZGF0YS5s
ZW5ndGggPSBzdGF0UmVzdWx0LnN0X3NpemU7CisgICAgbWV0YWRhdGEudHlwZSA9IFNfSVNESVIo
c3RhdFJlc3VsdC5zdF9tb2RlKSA/IEZpbGVNZXRhZGF0YTo6VHlwZURpcmVjdG9yeSA6IEZpbGVN
ZXRhZGF0YTo6VHlwZUZpbGU7CisgICAgcmV0dXJuIHRydWU7CisKK30KKworU3RyaW5nIHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29t
cG9uZW50KQoreworICAgIGlmIChwYXRoLmVuZHNXaXRoKEdfRElSX1NFUEFSQVRPUl9TKSkKKyAg
ICAgICAgcmV0dXJuIHBhdGggKyBjb21wb25lbnQ7CisgICAgcmV0dXJuIHBhdGggKyBHX0RJUl9T
RVBBUkFUT1JfUyArIGNvbXBvbmVudDsKK30KKworYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29u
c3QgU3RyaW5nJiBwYXRoKQoreworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBnaW50IHJlc3VsdCA9IGdfbWtkaXJfd2l0aF9wYXJlbnRzKGZp
bGVuYW1lLmRhdGEoKSwgU19JUldYVSk7CisKKyAgICByZXR1cm4gIXJlc3VsdDsKK30KKworU3Ry
aW5nIGhvbWVEaXJlY3RvcnlQYXRoKCkKK3sKKyAgICByZXR1cm4gZmlsZW5hbWVUb1N0cmluZyhn
X2dldF9ob21lX2RpcigpKTsKK30KKworU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJp
bmcmIHBhdGhOYW1lKQoreworICAgIGlmIChwYXRoTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBwYXRoTmFtZTsKKworICAgIENTdHJpbmcgdG1wRmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24ocGF0aE5hbWUpOworICAgIEdPd25QdHI8Z2NoYXI+IGJhc2VOYW1lKGdfcGF0
aF9nZXRfYmFzZW5hbWUodG1wRmlsZW5hbWUuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoYmFzZU5hbWUuZ2V0KCkpOworfQorCitDU3RyaW5nIGFwcGxpY2F0aW9uRGlyZWN0
b3J5UGF0aCgpCit7CisgICAgQ1N0cmluZyBwYXRoID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRo
KCk7CisgICAgaWYgKCFwYXRoLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gcGF0aDsKKworICAg
IC8vIElmIHRoZSBhYm92ZSBmYWlscywgY2hlY2sgdGhlIFBBVEggZW52IHZhcmlhYmxlLgorICAg
IEdPd25QdHI8Y2hhcj4gY3VycmVudEV4ZVBhdGgoZ19maW5kX3Byb2dyYW1faW5fcGF0aChnX2dl
dF9wcmduYW1lKCkpKTsKKyAgICBpZiAoIWN1cnJlbnRFeGVQYXRoLmdldCgpKQorICAgICAgICBy
ZXR1cm4gQ1N0cmluZygpOworCisgICAgR093blB0cjxjaGFyPiBkaXJuYW1lKGdfcGF0aF9nZXRf
ZGlybmFtZShjdXJyZW50RXhlUGF0aC5nZXQoKSkpOworICAgIHJldHVybiBkaXJuYW1lLmdldCgp
OworfQorCitDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQoreworICAgIHN0YXRpYyBDU3Ry
aW5nIGNhY2hlZFBhdGg7CisgICAgaWYgKCFjYWNoZWRQYXRoLmlzTnVsbCgpKQorICAgICAgICBy
ZXR1cm4gY2FjaGVkUGF0aDsKKworICAgIEdPd25QdHI8Z2NoYXI+IGRhdGFQYXRoKGdfYnVpbGRf
ZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRuaXgiLCBOVUxMKSk7CisKKyAgICBjYWNoZWRQYXRo
ID0gZGF0YVBhdGguZ2V0KCk7CisgICAgcmV0dXJuIGNhY2hlZFBhdGg7Cit9CisKK3VpbnQ2NF90
IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKQoreworICAgIEdSZWZQ
dHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChwYXRoKSk7Cisg
ICAgR1JlZlB0cjxHRmlsZUluZm8+IGZpbGVJbmZvID0gYWRvcHRHUmVmKGdfZmlsZV9xdWVyeV9m
aWxlc3lzdGVtX2luZm8oZmlsZS5nZXQoKSwgR19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX0ZS
RUUsIDAsIDApKTsKKyAgICBpZiAoIWZpbGVJbmZvKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBnX2ZpbGVfaW5mb19nZXRfYXR0cmlidXRlX3VpbnQ2NChmaWxlSW5mby5nZXQoKSwg
R19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX0ZSRUUpOworfQorCitTdHJpbmcgZGlyZWN0b3J5
TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgLyogTm8gbnVsbCBjaGVja2luZyBuZWVk
ZWQgKi8KKyAgICBHT3duUHRyPGNoYXI+IGRpcm5hbWUoZ19wYXRoX2dldF9kaXJuYW1lKGZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOChkaXJuYW1lLmdldCgpKTsKK30KKworVmVjdG9yPFN0cmluZz4gbGlzdERpcmVjdG9y
eShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgZmlsdGVyKQoreworICAgIFZlY3Rv
cjxTdHJpbmc+IGVudHJpZXM7CisKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHBhdGgpOworICAgIEdEaXIqIGRpciA9IGdfZGlyX29wZW4oZmlsZW5hbWUu
ZGF0YSgpLCAwLCAwKTsKKyAgICBpZiAoIWRpcikKKyAgICAgICAgcmV0dXJuIGVudHJpZXM7CisK
KyAgICBHUGF0dGVyblNwZWMqIHBzcGVjID0gZ19wYXR0ZXJuX3NwZWNfbmV3KChmaWx0ZXIudXRm
OCgpKS5kYXRhKCkpOworICAgIHdoaWxlIChjb25zdCBjaGFyKiBuYW1lID0gZ19kaXJfcmVhZF9u
YW1lKGRpcikpIHsKKyAgICAgICAgaWYgKCFnX3BhdHRlcm5fbWF0Y2hfc3RyaW5nKHBzcGVjLCBu
YW1lKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEdPd25QdHI8Z2NoYXI+IGVu
dHJ5KGdfYnVpbGRfZmlsZW5hbWUoZmlsZW5hbWUuZGF0YSgpLCBuYW1lLCBOVUxMKSk7CisgICAg
ICAgIGVudHJpZXMuYXBwZW5kKGZpbGVuYW1lVG9TdHJpbmcoZW50cnkuZ2V0KCkpKTsKKyAgICB9
CisgICAgZ19wYXR0ZXJuX3NwZWNfZnJlZShwc3BlYyk7CisgICAgZ19kaXJfY2xvc2UoZGlyKTsK
KworICAgIHJldHVybiBlbnRyaWVzOworfQorCitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29u
c3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQoreworICAgIEdP
d25QdHI8Z2NoYXI+IGZpbGVuYW1lKGdfc3RyZHVwX3ByaW50ZigiJXMlcyIsIHByZWZpeC51dGY4
KCkuZGF0YSgpLCBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwor
ICAgIEdPd25QdHI8Z2NoYXI+IHRlbXBQYXRoKGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdG1wX2Rp
cigpLCBmaWxlbmFtZS5nZXQoKSwgTlVMTCkpOworICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBh
ZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aCh0ZW1wUGF0aC5nZXQoKSkpOworCisgICAgaGFu
ZGxlID0gZ19maWxlX2NyZWF0ZV9yZWFkd3JpdGUoZmlsZS5nZXQoKSwgR19GSUxFX0NSRUFURV9O
T05FLCAwLCAwKTsKKyAgICBpZiAoIWlzSGFuZGxlVmFsaWQoaGFuZGxlKSkKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHRlbXBQYXRoLmdldCgp
KTsKK30KKworUGxhdGZvcm1GaWxlSGFuZGxlIG9wZW5GaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwg
RmlsZU9wZW5Nb2RlIG1vZGUpCit7CisgICAgQ1N0cmluZyBmc1JlcCA9IGZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZnNSZXAuaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCisgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9
IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKGZzUmVwLmRhdGEoKSkpOworICAgIEdGaWxl
SU9TdHJlYW0qIGlvU3RyZWFtID0gMDsKKyAgICBpZiAobW9kZSA9PSBPcGVuRm9yUmVhZCkKKyAg
ICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfb3Blbl9yZWFkd3JpdGUoZmlsZS5nZXQoKSwgMCwgMCk7
CisgICAgZWxzZSBpZiAobW9kZSA9PSBPcGVuRm9yV3JpdGUpIHsKKyAgICAgICAgaWYgKGdfZmls
ZV90ZXN0KGZzUmVwLmRhdGEoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9F
WElTVFMgfCBHX0ZJTEVfVEVTVF9JU19SRUdVTEFSKSkpCisgICAgICAgICAgICBpb1N0cmVhbSA9
IGdfZmlsZV9vcGVuX3JlYWR3cml0ZShmaWxlLmdldCgpLCAwLCAwKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfY3JlYXRlX3JlYWR3cml0ZShmaWxlLmdldCgp
LCBHX0ZJTEVfQ1JFQVRFX05PTkUsIDAsIDApOworICAgIH0KKworICAgIHJldHVybiBpb1N0cmVh
bTsKK30KKwordm9pZCBjbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCit7Cisg
ICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGdf
aW9fc3RyZWFtX2Nsb3NlKEdfSU9fU1RSRUFNKGhhbmRsZSksIDAsIDApOworICAgIGdfb2JqZWN0
X3VucmVmKGhhbmRsZSk7CisgICAgaGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsK
K30KKworbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcg
bG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luIG9yaWdpbikKK3sKKyAgICBHU2Vla1R5cGUgc2Vl
a1R5cGUgPSBHX1NFRUtfU0VUOworICAgIHN3aXRjaCAob3JpZ2luKSB7CisgICAgY2FzZSBTZWVr
RnJvbUJlZ2lubmluZzoKKyAgICAgICAgc2Vla1R5cGUgPSBHX1NFRUtfU0VUOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNlZWtGcm9tQ3VycmVudDoKKyAgICAgICAgc2Vla1R5cGUgPSBHX1NF
RUtfQ1VSOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlZWtGcm9tRW5kOgorICAgICAgICBz
ZWVrVHlwZSA9IEdfU0VFS19FTkQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlmICghZ19zZWVrYWJsZV9z
ZWVrKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lPX1NUUkVBTSho
YW5kbGUpKSksIG9mZnNldCwgc2Vla1R5cGUsIDAsIDApKQorICAgICAgICByZXR1cm4gLTE7Cisg
ICAgcmV0dXJuIGdfc2Vla2FibGVfdGVsbChHX1NFRUtBQkxFKGdfaW9fc3RyZWFtX2dldF9pbnB1
dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpKTsKK30KKworaW50IHdyaXRlVG9GaWxlKFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCit7
CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIGdfb3V0cHV0X3N0cmVhbV93cml0ZV9hbGwo
Z19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIGRhdGEs
IGxlbmd0aCwgJmJ5dGVzV3JpdHRlbiwgMCwgMCk7CisgICAgcmV0dXJuIGJ5dGVzV3JpdHRlbjsK
K30KKworaW50IHJlYWRGcm9tRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKQoreworICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBkbyB7
CisgICAgICAgIGdzc2l6ZSBieXRlc1JlYWQgPSBnX2lucHV0X3N0cmVhbV9yZWFkKGdfaW9fc3Ry
ZWFtX2dldF9pbnB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIGRhdGEsIGxlbmd0aCwg
MCwgJmVycm9yLm91dFB0cigpKTsKKyAgICAgICAgaWYgKGJ5dGVzUmVhZCA+PSAwKQorICAgICAg
ICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKKyAgICB9IHdoaWxlIChlcnJvciAmJiBlcnJvci0+Y29k
ZSA9PSBHX0ZJTEVfRVJST1JfSU5UUik7CisgICAgcmV0dXJuIC0xOworfQorCitib29sIHVubG9h
ZE1vZHVsZShQbGF0Zm9ybU1vZHVsZSBtb2R1bGUpCit7CisgICAgcmV0dXJuIGdfbW9kdWxlX2Ns
b3NlKG1vZHVsZSk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvR2FtZXBhZHNOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0dhbWVwYWRz
Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZTc3YzdjZTcxNmQzZmUwNzM4ZGRiMWU5M2MxNTc4YTMwZDVi
ZmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0dhbWVw
YWRzTml4LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
CisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
CisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiR2FtZXBhZHMuaCIKKworI2lmIEVOQUJMRShHQU1FUEFEKQorCisj
aW5jbHVkZSAiR2FtZXBhZExpc3QuaCIKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHYW1lcGFkTGlzdDsKKwordm9pZCBzYW1wbGVH
YW1lcGFkcyhHYW1lcGFkTGlzdCogaW50bykKK3sKKyAgICBXZWJLaXQ6OldlYkdhbWVwYWRzIGdh
bWVwYWRzOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zYW1wbGVHYW1lcGFk
cyhnYW1lcGFkcyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV2ViS2l0OjpXZWJH
YW1lcGFkczo6aXRlbXNMZW5ndGhDYXA7ICsraSkgeworICAgICAgICBXZWJLaXQ6OldlYkdhbWVw
YWQmIHdlYkdhbWVwYWQgPSBnYW1lcGFkcy5pdGVtc1tpXTsKKyAgICAgICAgaWYgKGkgPCBnYW1l
cGFkcy5sZW5ndGggJiYgd2ViR2FtZXBhZC5jb25uZWN0ZWQpIHsKKyAgICAgICAgICAgIFJlZlB0
cjxHYW1lcGFkPiBnYW1lcGFkID0gaW50by0+aXRlbShpKTsKKyAgICAgICAgICAgIGlmICghZ2Ft
ZXBhZCkKKyAgICAgICAgICAgICAgICBnYW1lcGFkID0gR2FtZXBhZDo6Y3JlYXRlKCk7CisgICAg
ICAgICAgICBnYW1lcGFkLT5pZCh3ZWJHYW1lcGFkLmlkKTsKKyAgICAgICAgICAgIGdhbWVwYWQt
PmluZGV4KGkpOworICAgICAgICAgICAgZ2FtZXBhZC0+dGltZXN0YW1wKHdlYkdhbWVwYWQudGlt
ZXN0YW1wKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmF4ZXMod2ViR2FtZXBhZC5heGVzTGVuZ3Ro
LCB3ZWJHYW1lcGFkLmF4ZXMpOworICAgICAgICAgICAgZ2FtZXBhZC0+YnV0dG9ucyh3ZWJHYW1l
cGFkLmJ1dHRvbnNMZW5ndGgsIHdlYkdhbWVwYWQuYnV0dG9ucyk7CisgICAgICAgICAgICBpbnRv
LT5zZXQoaSwgZ2FtZXBhZCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaW50by0+c2V0
KGksIDApOworICAgIH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvTGFuZ3VhZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzA3YzFmNmJmMmYzNWU5ZTZkN2Vi
ZmNjYzYyNjFiODdiZjE1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNu
b2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lz
dGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICog
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2Uu
aCIKKworI2luY2x1ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0
aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIGNoYXIqIGxvY2FsZURlZmF1bHQg
PSBzZXRsb2NhbGUoTENfQ1RZUEUsIDApOworCisgICAgaWYgKCFsb2NhbGVEZWZhdWx0KQorICAg
ICAgICByZXR1cm4gU3RyaW5nKCJjIik7CisKKyAgICBTdHJpbmcgbG9jYWxlID0gU3RyaW5nKGxv
Y2FsZURlZmF1bHQpOworICAgIGxvY2FsZS5yZXBsYWNlKCdfJywgJy0nKTsKKyAgICBzaXplX3Qg
cG9zaXRpb24gPSBsb2NhbGUuZmluZCgnLicpOworICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3Vu
ZCkKKyAgICAgICAgbG9jYWxlID0gbG9jYWxlLmxlZnQocG9zaXRpb24pOworCisgICAgcmV0dXJu
IGxvY2FsZTsKK30KKworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOworICAg
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHBsYXRmb3JtTGFuZ3VhZ2UoKSk7CisgICAg
cmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
M2VjM2I1ZWQwZTc3MDg1ZjMzNjI1NWUxOWViMDUwYjFhMmU5YWJjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmluZ3NOaXguY3BwCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVt
bWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhh
bnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4g
PGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9n
aWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJp
bmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBsb2NhbGl6ZWRT
dHJpbmcoY29uc3QgY2hhcioga2V5KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtl
eSwgc3RybGVuKGtleSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvTUlNRVR5cGVSZWdpc3RyeU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvTUlNRVR5cGVSZWdpc3RyeU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJhZWEwZWQ1ZTM4NTI4
YTJkZGYzYzRkNTFhYjQ2NjhlOTNkNjg4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9NSU1FVHlwZVJlZ2lzdHJ5Tml4LmNwcApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5j
LiAgaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAg
U2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorCisjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBFeHRlbnNpb25NYXAgeworICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbjsK
KyAgICBjb25zdCBjaGFyKiBtaW1lVHlwZTsKK307CisKK3N0YXRpYyBjb25zdCBFeHRlbnNpb25N
YXAgZXh0ZW5zaW9uTWFwW10gPSB7CisgICAgeyAwLCAwIH0KK307CisKK1N0cmluZyBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcgJmV4dCkKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgU3RyaW5nIHMgPSBleHQubG93ZXIo
KTsKKyAgICBjb25zdCBFeHRlbnNpb25NYXAgKmUgPSBleHRlbnNpb25NYXA7CisgICAgd2hpbGUg
KGUtPmV4dGVuc2lvbikgeworICAgICAgICBpZiAocyA9PSBlLT5leHRlbnNpb24pCisgICAgICAg
ICAgICByZXR1cm4gZS0+bWltZVR5cGU7CisgICAgICAgICsrZTsKKyAgICB9CisKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBs
dWdpbk1JTUVUeXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGls
aXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0
aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZTI1MTRjNmJkM2I1N2FiZTViZGMzNjhhN2YyYzI4MTQ4ZmM0
MzhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtl
eWJvYXJkVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5peEtl
eWJvYXJkVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVk
ZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IEtleU1hcDsKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGludD4gV2luZG93c0tleU1h
cDsKK3R5cGVkZWYgSGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPiBLZXlDb21tYW5kTWFwOworCitz
dGF0aWMgS2V5TWFwJiBrZXlNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5TWFw
LCBrZXlNYXAsICgpKTsKKyAgICByZXR1cm4ga2V5TWFwOworfQorCitzdGF0aWMgV2luZG93c0tl
eU1hcCYgd2luZG93c0tleU1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXaW5kb3dz
S2V5TWFwLCB3aW5kb3dzS2V5TWFwLCAoKSk7CisgICAgcmV0dXJuIHdpbmRvd3NLZXlNYXA7Cit9
CisKK3N0YXRpYyBLZXlDb21tYW5kTWFwJiBrZXlEb3duQ29tbWFuZHNNYXAoKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoS2V5Q29tbWFuZE1hcCwga2V5RG93bkNvbW1hbmRzTWFwLCAoKSk7
CisgICAgcmV0dXJuIGtleURvd25Db21tYW5kc01hcDsKK30KKworc3RhdGljIEtleUNvbW1hbmRN
YXAmIGtleVByZXNzQ29tbWFuZHNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5
Q29tbWFuZE1hcCwga2V5UHJlc3NDb21tYW5kc01hcCwgKCkpOworICAgIHJldHVybiBrZXlQcmVz
c0NvbW1hbmRzTWFwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkQ2hhcmFjdGVyc1RvS2V5
TWFwKGNvbnN0IGNoYXIgZnJvbSwgY29uc3QgY2hhciB0bykKK3sKKyAgICBmb3IgKGNoYXIgYyA9
IGZyb207IGMgPD0gdG87IGMrKykKKyAgICAgICAga2V5TWFwKCkuc2V0KFN0cmluZygmYywgMSks
IFN0cmluZzo6Zm9ybWF0KCJVKyUwNFgiLCBjKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBh
ZGRDaGFyYWN0ZXJzVG9XaW5LZXlNYXAoY29uc3QgY2hhciBmcm9tLCBjb25zdCBjaGFyIHRvLCBj
b25zdCBpbnQgYmFzZUNvZGUpCit7CisgICAgaW50IGkgPSAwOworICAgIGZvciAoY2hhciBjID0g
ZnJvbTsgYyA8PSB0bzsgYysrLCBpKyspCisgICAgICAgIHdpbmRvd3NLZXlNYXAoKS5zZXQoU3Ry
aW5nKCZjLCAxKSwgYmFzZUNvZGUgKyBpKTsKK30KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN0
cmxLZXkgPSAxIDw8IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ID0gMSA8PCAxOwor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOworCitzdHJ1Y3QgS2V5RG93
bkVudHJ5IHsKKyAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVy
czsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgewor
ICAgIHVuc2lnbmVkIGNoYXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25z
dCBjaGFyKiBuYW1lOworfTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50
cmllc1tdID0geworICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVm
dCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwg
ICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3Zl
V29yZExlZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVG
VCwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24i
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
UklHSFQsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24i
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5LCAgICAgICAgICAg
ICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfUklHSFQsICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5kTW9kaWZ5U2Vs
ZWN0aW9uIiAgICAgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAg
ICAgICJNb3ZlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxlY3Rp
b24iICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAg
ICAgICAgICJNb3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfRE9XTiwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwg
ICAgICAgICAgICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfTkVYVCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZURvd25BbmRN
b2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICAwLCAgICAg
ICAgICAgICAgICAgICJNb3ZlUGFnZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURvd24i
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAg
ICAgICAgICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfSE9NRSwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9CZWdp
bm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICB9LAorICAgIHsgVktfSE9NRSwgICBD
dHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlVG9C
ZWdpbm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorCisgICAgeyBWS19FTkQs
ICAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1v
dmVUb0VuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgIH0sCisgICAgeyBWS19F
TkQsICAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXkgfCBTaGlmdEtleSwg
Ik1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisKKyAgICB7
IFZLX0JBQ0ssICAgMCwgICAgICAgICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hpZnRLZXksICAgICAg
ICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0RFTEVURSwgMCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgQ3RybEtleSwgICAg
ICAgICAgICAiRGVsZXRlV29yZEJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgIHsgJ0InLCAgICAgICBDdHJsS2V5
LCAgICAgICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ0knLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dnbGVJdGFsaWMi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgeyBWS19FU0NBUEUsIDAs
ICAgICAgICAgICAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAg
IDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2Vy
dEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRV
Uk4sIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEN0cmxLZXksICAgICAgICAgICAgIklu
c2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19S
RVRVUk4sIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAg
Ikluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitz
dGF0aWMgY29uc3QgS2V5UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdc
dCcsICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5z
ZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccics
ICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0
TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAg
QWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3
bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyB2b2lk
IGNyZWF0ZUtleURvd25Db21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IFdURl9BUlJBWV9MRU5HVEgoa2V5RG93bkVudHJpZXMpOyArK2kpCisgICAgICAgIGtleURvd25D
b21tYW5kc01hcCgpLnNldChrZXlEb3duRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlE
b3duRW50cmllc1tpXS52aXJ0dWFsS2V5LCBrZXlEb3duRW50cmllc1tpXS5uYW1lKTsKK30KKwor
c3RhdGljIHZvaWQgY3JlYXRlS2V5UHJlc3NDb21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5UHJlc3NFbnRyaWVzKTsgKytpKQorICAg
ICAgICBrZXlQcmVzc0NvbW1hbmRzTWFwKCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmll
cnMgPDwgMTYgfCBrZXlQcmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tp
XS5uYW1lKTsKK30KKworY29uc3QgY2hhciogZ2V0S2V5RG93bkNvbW1hbmROYW1lKGNvbnN0IEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAg
aWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7Cisg
ICAgaWYgKGV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAg
ICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisK
KyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQtPmtleUNvZGUoKTsKKyAg
ICBpZiAoIW1hcEtleSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1h
bmRzTWFwKCkuaXNFbXB0eSgpKQorICAgICAgICBjcmVhdGVLZXlEb3duQ29tbWFuZE1hcCgpOwor
CisgICAgcmV0dXJuIGtleURvd25Db21tYW5kc01hcCgpLmdldChtYXBLZXkpOworfQorCitjb25z
dCBjaGFyKiBnZXRLZXlQcmVzc0NvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50
KQoreworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5zaGlmdEtl
eSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LT5hbHRL
ZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQtPmN0cmxL
ZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQgbWFwS2V5ID0g
bW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQtPmNoYXJDb2RlKCk7CisgICAgaWYgKCFtYXBLZXkpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGtleVByZXNzQ29tbWFuZHNNYXAoKS5pc0VtcHR5
KCkpCisgICAgICAgIGNyZWF0ZUtleVByZXNzQ29tbWFuZE1hcCgpOworCisgICAgcmV0dXJuIGtl
eVByZXNzQ29tbWFuZHNNYXAoKS5nZXQobWFwS2V5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJk
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGls
aXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjU2MTBjN2U5ZGUwZmMyZTgyZDg0NDQ4NTNiYzNlNzdiZjhk
ZWJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtl
eWJvYXJkVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOaXhLZXlib2FyZFV0aWxpdGllc19oCisjZGVmaW5l
IE5peEtleWJvYXJkVXRpbGl0aWVzX2gKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS2V5Ym9hcmRFdmVudDsKKworY29u
c3QgY2hhciogZ2V0S2V5RG93bkNvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqKTsKK2Nv
bnN0IGNoYXIqIGdldEtleVByZXNzQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCopOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOaXhLZXlib2FyZFV0aWxpdGll
c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5p
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjgzY2RmNzRlNjdhYmMyZmE4MWUwOWFmNjA2NzIyNmVkODU5YWZkZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNw
cApAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhh
bnMgUGV0ZXIgRnJleXRoZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tp
YSBkZSBUZWNub2xvZ2lhCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVt
YmVkZGVkIHN5c3RlbXMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKiAgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZWJv
YXJkKiBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpCit7CisgICAgc3RhdGljIFBhc3Rl
Ym9hcmQqIHBhc3RlYm9hcmQgPSBuZXcgUGFzdGVib2FyZCgpOworICAgIHJldHVybiBwYXN0ZWJv
YXJkOworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYs
IFNtYXJ0UmVwbGFjZU9wdGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiwgYm9vbCwgRnJhbWUqLCBTaG91bGRT
ZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3Ry
aW5nJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUNsaXBib2Fy
ZChDbGlwYm9hcmQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVi
b2FyZDo6Y2xlYXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgUGFzdGVi
b2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJk
Ojpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiwgUGFzc1JlZlB0cjxSYW5nZT4sIGJvb2wsIGJvb2wm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0cmluZyBQ
YXN0ZWJvYXJkOjpwbGFpblRleHQoRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YXN0ZWJvYXJkKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisK
KyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJikKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9y
Q29weUFuZFBhc3RlKCk7Cit9CisjZW5kaWYKKworYm9vbCBQYXN0ZWJvYXJkOjpoYXNEYXRhKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQ
YXN0ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK1N0cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgUGFz
dGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworTGlzdEhhc2hTZXQ8
U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0
ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK3Zv
aWQgUGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisjZW5kaWYKKwordm9pZCBQYXN0ZWJvYXJk
Ojp3cml0ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDBlZjZjMzQwYzk4MDNh
ZmVhZmFmZjAxNzdhNjcyM2EzMWFhOGY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKQEAgLTAsMCArMSw2
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBEaWVnbyBIaWRhbGdvIEMuIEdv
bnphbGV6CisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lz
dGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICog
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlRleHRFbmNvZGluZy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wpCit7CisgICAg
QVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5cGUgPSB0eXBlOworCisgICAgaWYg
KHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgICAgICBtX3RleHQgPSBT
dHJpbmcoKTsKKyAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIG1fa2V5SWRlbnRpZmllciA9IFN0cmluZygpOworICAgICAgICBtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSA9IDA7CisgICAgfQorfQorCitib29sIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3Vy
cmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFs
dEtleSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0
S2V5ID0gZmFsc2U7CisgICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNlOwor
ICAgIG1ldGFLZXkgPSBmYWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJmYjNhYzNlZDIxNDMw
YWQxZWFhMmViZTQwYjk2ZjhmNGE1MTA2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworaW50IHNjcmVlbkhvcml6b250YWxEUEkoV2lkZ2V0KikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGlj
YWxEUEkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0KikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitib29sIHNjcmVl
bklzTW9ub2Nocm9tZShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA3NjgpOwor
fQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpZGdldCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBzY3JlZW5SZWN0KHdpZGdldCk7Cit9CisK
K3ZvaWQgc2NyZWVuQ29sb3JQcm9maWxlKENvbG9yUHJvZmlsZSYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L1J1bkxvb3BOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1J1bkxvb3BOaXgu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3MWI2Nzk1YTAzYTVmMmZhMWQ0MGVlNmYwM2FlMGUyODBiNzIyZDUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUnVuTG9vcE5p
eC5jcHAKQEAgLTAsMCArMSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8
Z2xpYi5oPgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICAvLyBnX21haW5fY29udGV4dF9kZWZh
dWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEgcmVmZXJlbmNlLgorICAgIG1fcnVuTG9vcENvbnRl
eHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSA6IGFkb3B0R1Jl
ZihnX21haW5fY29udGV4dF9uZXcoKSk7CisgICAgQVNTRVJUKG1fcnVuTG9vcENvbnRleHQpOwor
ICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5lcm1vc3RMb29wID0gYWRvcHRHUmVmKGdfbWFpbl9s
b29wX25ldyhtX3J1bkxvb3BDb250ZXh0LmdldCgpLCBGQUxTRSkpOworICAgIEFTU0VSVChpbm5l
cm1vc3RMb29wKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGlubmVybW9zdExvb3Ap
OworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgZm9yIChpbnQgaSA9IG1fcnVuTG9v
cE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBpZiAoIWdfbWFp
bl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW5Mb29w
c1tpXS5nZXQoKSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgUnVu
TG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7CisgICAgR01haW5Mb29wKiBp
bm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3AtPmlubmVybW9zdExvb3AoKTsKKyAgICBpZiAoIWdf
bWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJtb3N0TG9vcCkpIHsKKyAgICAgICAgZ19tYWluX2xv
b3BfcnVuKGlubmVybW9zdExvb3ApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
Q3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9vcCBpZiB0aGUgaW5uZXJtb3N0IG9uZSB3YXMgYWxy
ZWFkeSBydW5uaW5nLgorICAgIEdNYWluTG9vcCogbmVzdGVkTWFpbkxvb3AgPSBnX21haW5fbG9v
cF9uZXcoMCwgRkFMU0UpOworICAgIG1haW5SdW5Mb29wLT5wdXNoTmVzdGVkTWFpbkxvb3AobmVz
dGVkTWFpbkxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihuZXN0ZWRNYWluTG9vcCk7CisgICAg
bWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5Mb29wKCk7Cit9CisKK0dNYWluTG9vcCogUnVuTG9v
cDo6aW5uZXJtb3N0TG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hv
dWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0Vt
cHR5KCkpOworICAgIHJldHVybiBtX3J1bkxvb3BNYWluTG9vcHNbMF0uZ2V0KCk7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCogbmVzdGVkTG9vcCkKK3sK
KyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgor
ICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29w
TWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYobmVzdGVkTG9vcCkpOworfQorCit2b2lkIFJ1bkxv
b3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9v
cCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3Bz
LmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLnJlbW92ZUxhc3QoKTsKK30KKwor
dm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBz
aG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlz
RW1wdHkoKSk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGxhc3RNYWluTG9vcCA9IG1fcnVuTG9v
cE1haW5Mb29wcy5sYXN0KCk7CisgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobGFzdE1h
aW5Mb29wLmdldCgpKSkKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsYXN0TWFpbkxvb3AuZ2V0
KCkpOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkK
K3sKKyAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwor
dm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0g
YWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOworICAgIGdfc291cmNlX3NldF9wcmlvcml0
eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CisgICAgZ19zb3VyY2Vfc2V0X2Nh
bGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxv
b3A6OnF1ZXVlV29yayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0
KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworCisgICAgZ19tYWluX2NvbnRleHRfd2FrZXVw
KG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVy
QmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBt
X3RpbWVyU291cmNlKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgp
Cit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1l
clNvdXJjZSgpCit7CisgICAgbV90aW1lclNvdXJjZSA9IDA7Cit9CisKK2dib29sZWFuIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGlt
ZXIpCit7CisgICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJT
b3VyY2UuZ2V0KCk7CisgICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygp
OworICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBu
ZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1
cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKSkKKyAgICAgICAg
dGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKKworICAgIHRpbWVyLT5maXJlZCgpOworICAgIHJl
dHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRv
dWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyU291cmNl
KQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291cmNlID0gYWRvcHRHUmVmKGdfdGlt
ZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkp
OworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNr
KG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5M
b29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMsIDApOworICAgIGdfc291
cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRl
eHQuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAg
aWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3NvdXJjZV9kZXN0
cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFyVGltZXJTb3VyY2UoKTsKK30KKwor
Ym9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NoYXJlZFRpbWVyTml4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE1YjE4
N2NkMTAyYjIyNzFkZDhiOGYzM2RkNDI0MmUxOGNhYmJhYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5jcHAKQEAgLTAsMCArMSw3
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1p
a2UuZW1tZWxAZ21haWwuY29tCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgorCisjZGVmaW5lIEdES19Q
UklPUklUWV9SRURSQVcgKEdfUFJJT1JJVFlfSElHSF9JRExFICsgMjApCisjaW5jbHVkZSA8Z2xp
Yi5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGd1aW50IHNoYXJlZFRpbWVy
Oworc3RhdGljIHZvaWQgKCpzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pKCk7CisKK3ZvaWQgc2V0
U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgpKQoreworICAgIHNoYXJlZFRpbWVy
RmlyZWRGdW5jdGlvbiA9IGY7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiB0aW1lb3V0Q2FsbGJhY2so
Z3BvaW50ZXIpCit7CisgICAgaWYgKHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbikKKyAgICAgICAg
c2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lk
IHNldFNoYXJlZFRpbWVyRmlyZUludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKK3sKKyAgICBBU1NF
UlQoc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKTsKKworICAgIGd1aW50IGludGVydmFsSW5NUyA9
IHN0YXRpY19jYXN0PGd1aW50PihpbnRlcnZhbCAqIDEwMDApOworCisgICAgc3RvcFNoYXJlZFRp
bWVyKCk7CisgICAgc2hhcmVkVGltZXIgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR0RLX1BSSU9SSVRZ
X1JFRFJBVywgaW50ZXJ2YWxJbk1TLCB0aW1lb3V0Q2FsbGJhY2ssIDAsIDApOworfQorCit2b2lk
IHN0b3BTaGFyZWRUaW1lcigpCit7CisgICAgaWYgKCFzaGFyZWRUaW1lcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgZ2Jvb2xlYW4gcmVtb3ZlZFNvdXJjZSA9IGdfc291cmNlX3JlbW92ZShzaGFy
ZWRUaW1lcik7CisgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkU291cmNlLCByZW1vdmVkU291cmNl
KTsKKyAgICBzaGFyZWRUaW1lciA9IDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9Tb3VuZE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvU291bmROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlMWJiZWZmZTQ5YzAzZGYzZDEwZWQwZjRlNTY0
NjI4ZjhhZTcyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvU291bmROaXguY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0
ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2MzBmOGJmYTMxZmRhMjIxNzYyZGE4MmNmOGExYjZiNDk3YjRmMjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMo
VmVjdG9yPFN0cmluZz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBz
aWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IEtVUkwmKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZDMwOTczZDIw
MDU0NjJiMmU4Y2YzMzZmYTIyYjMwZmRmNTU0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldpZGdldC5oIgorCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ3Vyc29y
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV2lkZ2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQorICAgIDogbV9wYXJlbnQo
MCkKKyAgICAsIG1fd2lkZ2V0KDApCisgICAgLCBtX3NlbGZWaXNpYmxlKGZhbHNlKQorICAgICwg
bV9wYXJlbnRWaXNpYmxlKGZhbHNlKQorICAgICwgbV9mcmFtZSgwLCAwLCAwLCAwKQoreworICAg
IGluaXQod2lkZ2V0KTsKK30KKworV2lkZ2V0Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBh
cmVudCgpKTsKK30KKworSW50UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZnJhbWU7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50
UmVjdCYgcmVjdCkKK3sKKyAgICBtX2ZyYW1lID0gcmVjdDsKKyAgICBXaWRnZXQ6OmZyYW1lUmVj
dHNDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQoreworfQorCit2
b2lkIFdpZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQoreworICAgIFNjcm9s
bFZpZXcqIHZpZXcgPSByb290KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47Cisg
ICAgdmlldy0+aG9zdFdpbmRvdygpLT5zZXRDdXJzb3IoY3Vyc29yKTsKK30KKwordm9pZCBXaWRn
ZXQ6OnNob3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0Ojpo
aWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc3ZmE3NzM4OGRmN2M2YWZkNzFhZDEyNjc4NjllZjA1MDRiNDY2ZWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25z
dCBjaGFyKiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAgIHJldHVybiAiIjsKK30KKwor
Y29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gImVu
X3VzIjsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206168</attachid>
            <date>2013-07-05 13:10:34 -0700</date>
            <delta_ts>2013-07-08 07:21:04 -0700</delta_ts>
            <desc>New patch with corrections and shared files</desc>
            <filename>bug-118358-20130705170825.patch</filename>
            <type>text/plain</type>
            <size>118705</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhNWQ3NmU2NWMwNzY2MWQzOTgwYzll
ZWUyZDQwYjQxMDgyYzgyNDAuLmJkNTg5YjViMWEyZWNiYzg1NDgyMWZhOWMzYWViNmRjZjc4NjZm
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMDUgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTA1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIEEgbG90IG9mIGNvZGUgZHVwbGljYXRpb24gd2l0aGluIFN0cmluZ0lt
cGwgJ2VxdWFsJyBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTYzZWNhZjA3YzliYWNjZDRjMTk4
NjFjMzM4ODk3NzkxNjM4MmNkLi4wMWJhYzI4YzkwNzQ3OGYwNTc2ZWJkYjJiYmI2OWJmZTQxZDQ3
ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTMtMDctMDUgIEx1Y2lhbm8gV29s
ZiAgPGx1Y2lhbm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWlu
ZyAtIEFkZGluZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5n
IGFsbCBmaWxlcyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFy
ZSByZWxhdGVkIHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhl
eSB3aWxsIGJlIHVwbG9hZGVkIG9uIGFub3RoZXIgcGF0Y2ggZHVyaW5nIHRoZQorICAgICAgICB1
cHN0cmVhbWluZyBwcm9jZXNzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNOaXguY3Nz
OiBBZGRlZC4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc05peEZ1bGxzY3JlZW4uY3NzOiBB
ZGRlZC4KKyAgICAgICAgKiBwYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9nbGliL0Vycm9yc0dMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9nbGliL0Vycm9yc0dMaWIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xp
Yi9GaWxlU3lzdGVtR0xpYi5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvTUlN
RVR5cGVSZWdpc3RyeUdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1J1
bkxvb3BHTGliLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9TaGFyZWRUaW1l
ckdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1RlbXBvcmFyeUxpbmtT
dHVicy5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRGcm9tQ3VycmVudEVHTC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHA6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25peC9EcmFnRGF0YU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9EcmFn
SW1hZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHA6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uaXgvU291bmROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uaXgvV2lkZ2V0Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9uaXgv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHA6IEFkZGVkLgorCiAyMDEzLTA3LTA1
ICBCZW5qYW1pbiBEdXBvbnQgICA8YmR1cG9udEBuZHMuY29tPgogCiAgICAgICAgIFNlZ21lbnRh
dGlvbiBmYXVsdCBvY2N1cnJlZCB3aGVuIElDVSBkYXRhIGxpYnJhcnkgZG9lc24ndCBlbWJlZCB0
aGUgZXhwZWN0ZWQgZW5jb2RpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVh
dHVyZURlZmluZXNOaXguaCBiL1NvdXJjZS9XVEYvd3RmL25peC9GZWF0dXJlRGVmaW5lc05peC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM0MzJhZDBlZDI2MTRhNDEyMjY2YmFiNjNkOTRmYzJiZWVlM2E0NTAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXguaApA
QCAtMCwwICsxLDI4MSBAQAorLyoKKyogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdURl9G
ZWF0dXJlRGVmaW5lc05peF9oCisjZGVmaW5lIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfM0RfUkVOREVSSU5HKQorI2RlZmluZSBFTkFCTEVfM0RfUkVOREVS
SU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAwCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCisjZGVmaW5l
IEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQkxPQikKKyNkZWZpbmUgRU5BQkxFX0JMT0IgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCisjZGVmaW5lIEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01F
TlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVmaW5lIEVOQUJMRV9DU1MzX1RFWFQgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorI2RlZmlu
ZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NTU19FWENMVVNJT05TKQorI2RlZmluZSBFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0ZJTFRFUlMpCisjZGVmaW5lIEVO
QUJMRV9DU1NfRklMVEVSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04gMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pCisjZGVm
aW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfSU1BR0VfU0VUKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1NFVCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfUkVHSU9OUykKKyNkZWZpbmUgRU5BQkxF
X0NTU19SRUdJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TSEFERVJT
KQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQURFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX1ZBUklBQkxFUykKKyNkZWZpbmUgRU5BQkxFX0NTU19WQVJJQUJMRVMgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkKKyNkZWZpbmUgRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREVU
QUlMU19FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREVUQUlMU19FTEVNRU5UIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0RSQUdf
U1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GQVNUX01PQklMRV9TQ1JP
TExJTkcpCisjZGVmaW5lIEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSUykKKyNkZWZpbmUgRU5BQkxFX0ZJTFRFUlMgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVfRlRQ
RElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2Rl
ZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxFX0dBTUVQQUQgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9HRVNUVVJFX0VWRU5U
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JQ09OREFUQUJBU0UpCisjZGVmaW5l
IEVOQUJMRV9JQ09OREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSUZS
QU1FX1NFQU1MRVNTKQorI2RlZmluZSBFTkFCTEVfSUZSQU1FX1NFQU1MRVNTIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpCisjZGVmaW5lIEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RP
UikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlNQRUNUT1JfU0VSVkVSKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUiAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKQorI2Rl
ZmluZSBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9W
RU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX1ZJ
RVdQT1JUX0FEQVBUSU9OKQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9O
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pCisjZGVm
aW5lIEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0xMSU5UKQorI2RlZmluZSBFTkFCTEVfTExJTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUFUSE1MKQorI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVN
RU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkKKyNkZWZpbmUg
RU5BQkxFX01JQ1JPREFUQSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykKKyNkZWZpbmUgRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxT
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCisj
ZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX05FVFdPUktfSU5GTykKKyNkZWZpbmUgRU5BQkxFX05FVFdPUktfSU5GTyAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCkK
KyNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNIIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BPUFVQX01FTlVTKQorI2RlZmluZSBFTkFCTEVfUE9QVVBfTUVO
VVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkKKyNk
ZWZpbmUgRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisjZGVmaW5lIEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0hBUEVT
KQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQVBFUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9TSEFSRURfV09SS0VSUykKKyNkZWZpbmUgRU5BQkxFX1NIQVJFRF9XT1JLRVJTIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NRTF9EQVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxF
X1NRTF9EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TVkcpCisjZGVm
aW5lIEVOQUJMRV9TVkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHX0ZPTlRT
KQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1RPVUNIX0FESlVTVE1FTlQpCisjZGVmaW5lIEVOQUJMRV9UT1VDSF9BREpVU1RNRU5UIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykKKyNkZWZpbmUgRU5B
QkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9VTkRPX01B
TkFHRVIpCisjZGVmaW5lIEVOQUJMRV9VTkRPX01BTkFHRVIgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfVklERU8pCisjZGVmaW5lIEVOQUJMRV9WSURFTyAwCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKQorI2RlZmluZSBFTkFCTEVfVklF
V19NT0RFX0NTU19NRURJQSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVE
SU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJfU09DS0VUUykKKyNkZWZpbmUgRU5BQkxFX1dFQl9TT0NLRVRTIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9USU1JTkcpCisjZGVmaW5lIEVOQUJMRV9X
RUJfVElNSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dPUktFUlMpCisjZGVm
aW5lIEVOQUJMRV9XT1JLRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1hIUl9S
RVNQT05TRV9CTE9CKQorI2RlZmluZSBFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfWFNMVCkKKyNkZWZpbmUgRU5BQkxFX1hTTFQgMQorI2Vu
ZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4
LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBiZTQ0
MzdhNmNkYzE2MjZhNjQzNTYyMTcyY2IzZmE4MWRlYmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyogIENv
cHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdURl9QbGF0Zm9ybU5peF9oCisjZGVmaW5lIFdURl9Q
bGF0Zm9ybU5peF9oCisKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX05JWCAxCisjZGVmaW5lIEVOQUJM
RV9HTE9CQUxfRkFTVE1BTExPQ19ORVcgMAorCisjZGVmaW5lIFdURl9VU0VfM0RfR1JBUEhJQ1Mg
MQorI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIDEKKyNkZWZpbmUgV1RG
X1VTRV9DQUlSTyAxCisjZGVmaW5lIFdURl9VU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgMQorI2Rl
ZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMgMQorI2RlZmluZSBXVEZf
VVNFX0ZSRUVUWVBFIDEKKyNkZWZpbmUgV1RGX1VTRV9HTElCIDEKKyNkZWZpbmUgV1RGX1VTRV9I
QVJGQlVaWiAxCisjZGVmaW5lIFdURl9VU0VfSEFSRkJVWlpfTkcgMQorI2RlZmluZSBXVEZfVVNF
X0lDVV9VTklDT0RFIDEKKyNkZWZpbmUgV1RGX1VTRV9JT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdf
U1RPUkUgMQorI2RlZmluZSBXVEZfVVNFX0xFVkVMREIgMQorI2RlZmluZSBXVEZfVVNFX1BUSFJF
QURTIDEKKyNkZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUiAxCisjZGVmaW5lIFdURl9VU0Vf
VEVYVFVSRV9NQVBQRVJfR0wgMQorI2RlZmluZSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUg
MQorI2RlZmluZSBXVEZfVVNFX1VOSVhfRE9NQUlOX1NPQ0tFVFMgMQorCisjaWYgIWRlZmluZWQo
V1RGX1VTRV9PUEVOR0xfRVNfMikgfHwgIVdURl9VU0VfT1BFTkdMX0VTXzIKKyNkZWZpbmUgV1RG
X1VTRV9PUEVOR0wgMQorI2RlZmluZSBXVEZfVVNFX0dMWCAxCisjZGVmaW5lIFdURl9QTEFURk9S
TV9YMTEgMQorI2RlZmluZSBXVEZfVVNFX0dSQVBISUNTX1NVUkZBQ0UgMQorI2Vsc2UKKyNkZWZp
bmUgV1RGX1VTRV9FR0wgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChXVEZfVVNFX0NVUkwpIHx8
ICFXVEZfVVNFX0NVUkwKKyNkZWZpbmUgV1RGX1VTRV9TT1VQIDEKKyNlbmRpZgorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWIzNjY1
MjdiN2UwNTgxOTRjNTQxNzE1ZWY1Nzg4ZWQwMjc3NDliCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCkBAIC0wLDAgKzEsMjAzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcwor
ICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMuIEV4dGVuZHMgbWVkaWFDb250
cm9scy5jc3MgKi8KKworYXVkaW8geworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDIw
cHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Cisg
ICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWdu
OiBjZW50ZXI7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgYm90dG9tOiAwOworICAgIHdpZHRoOiAxMDAlOworICAgIHotaW5kZXg6
IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1h
bGlnbjogcmlnaHQ7Cit9CisKK3ZpZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBib3R0b206IDBweDsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW11dGUtYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW11dGUt
YnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAg
IGhlaWdodDogMjBweDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgei1pbmRleDogMjsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAg
ICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxh
eS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXBsYXktYnV0dG9uOworICAgIGRpc3BsYXk6IC13
ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjog
aW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29u
dGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIg
eworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY29udHJvbHMtYmFja2dyb3VuZDsKKyAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250
YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNr
OiBlbmQ7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0
OiBub25lOworICAgIGhlaWdodDogMjBweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWN1
cnJlbnQtdGltZS1kaXNwbGF5OworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAg
ZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgaGVpZ2h0OiAyMHB4OworCisgICAgcGFkZGluZzog
NHB4OworCisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTBweDsKKwor
ICAgIGNvbG9yOiBibGFjazsKKyAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOworICAgIHdvcmQt
c3BhY2luZzogbm9ybWFsOworICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CisgICAgdGV4dC10cmFu
c2Zvcm06IG5vbmU7CisgICAgdGV4dC1pbmRlbnQ6IDA7CisgICAgdGV4dC1zaGFkb3c6IG5vbmU7
CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAg
ICBmb250LXdlaWdodDogbm9ybWFsOworICAgIGZvbnQtZmFtaWx5OiBzZXJpZjsKK30KKworYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7CisgICAgZGlz
cGxheTogbm9uZTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUs
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAt
d2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAwcHgg
MnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFs
OworICAgIGNvbG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKworYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICAtd2Vi
a2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyOworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAyMHB4OworICAg
IGJvdHRvbTogMjBweDsKKyAgICB6LWluZGV4OiAxOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlk
ZXI7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOwor
ICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKKyAgICBtYXJnaW46IGlu
aXRpYWw7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0
b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24geworICAg
IC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vlay1iYWNrLWJ1dHRvbjsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29s
b3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9y
d2FyZC1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1i
dXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRv
bjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWln
aHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGlu
aXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1m
dWxsc2NyZWVuLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1mdWxsc2Ny
ZWVuLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsK
KyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBi
b3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXJld2luZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7
Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1i
dXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1i
dXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlh
bDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRv
biB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS10b2dnbGUtY2xvc2VkLWNhcHRpb25z
LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAg
ICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3Jk
ZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24geworICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiBu
b25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFs
OworICAgIGNvbG9yOiBpbmhlcml0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRp
YUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMzZDcwN2RjYWVlZmMzZWJk
MDVhY2NhNmYwNTBkMzQ3ODNmOWY2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKQEAgLTAsMCArMSwxMjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisv
KiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMgZm9yIGZ1bGxzY3JlZW4uICovCisKK3ZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsK
KyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxp
Z246IGNlbnRlcjsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICBib3R0b206IDA7CisgICAgd2lkdGg6IDEwMCU7CisgICAgei1pbmRl
eDogMDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIGhlaWdodDogMjBweDsKKyAgICB0ZXh0
LWFsaWduOiByaWdodDsKK30KKwordmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25l
OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CisgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGlu
aGVyaXQ7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRh
aW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5k
OworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9y
aXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYm94
LXBhY2s6IGVuZDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIC13ZWJraXQtdXNlci1z
ZWxlY3Q6IG5vbmU7CisgICAgaGVpZ2h0OiAyMHB4OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBu
b25lOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAg
cGFkZGluZzogNHB4OworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEw
cHg7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRp
c3BsYXkgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsK
KyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAg
IGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAwcHggMnB4OworICAgIGJhY2tncm91bmQtY29s
b3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0Owor
ICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dm9sdW1lLXNsaWRlci1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEt
dm9sdW1lLXNsaWRlci1jb250YWluZXI7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7CisgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyOworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24geworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2Fy
ZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9uIHsKKyAgICBkaXNwbGF5
OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVh
bHRpbWUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgZGlzcGxh
eTogbm9uZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2ZW50SGFu
ZGxlck5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxOTc0MTg4YjAxZGZlNjMyYjZkNWM3ZDA2MTgxZWQ0MTU3ZTRhN2UKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXgu
Y3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVz
aW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOSwyMDEwIFByb0ZVU0lP
TiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJFdmVudEhhbmRsZXIuaCIKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUgIlNj
cm9sbGJhci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQorY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKKyNl
bmRpZgorCitib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJk
RXZlbnQqKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEV2ZW50SGFuZGxl
cjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1l
KG1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2
ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQpCit7
CisgICAgUmVuZGVyT2JqZWN0KiB0YXJnZXQgPSBldmVudC50YXJnZXROb2RlKCkgPyBldmVudC50
YXJnZXROb2RlKCktPnJlbmRlcmVyKCkgOiAwOworCisgICAgaWYgKCF0YXJnZXQgfHwgIXRhcmdl
dC0+aXNXaWRnZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBhc3NN
b3VzZURvd25FdmVudFRvV2lkZ2V0KHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KHRhcmdldCkt
PndpZGdldCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25F
dmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KQoreworICAgIHJldHVybiBw
YXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jikg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBldmVudCwgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKHdpZGdldCk7
CisgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5l
dmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7Cit9CisKKyNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQorUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAoreworICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKCk7Cit9CisjZW5kaWYKKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NN
b3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1l
diwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KG1ldi5ldmVudCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUsIEhpdFRlc3RSZXN1bHQq
IGhvdmVyZWROb2RlKQoreworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91
c2VNb3ZlRXZlbnQobWV2LmV2ZW50KCksIGhvdmVyZWROb2RlKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVudFRvU3ViZnJhbWUo
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCit7Cisg
ICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtZXYu
ZXZlbnQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Vuc2lnbmVkIEV2ZW50SGFuZGxlcjo6
YWNjZXNzS2V5TW9kaWZpZXJzKCkKK3sKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6QWx0S2V5
OworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FcnJvcnNH
TGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXJyb3JzR0xpYi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWI1OWIxZmEyM2QwYTk4NGRkMmU0MWIyNmVjOTcwMjc3ZDg2NWRlOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXJyb3JzR0xpYi5jcHAK
QEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzR0xpYi5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlByaW50Q29udGV4
dC5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3Jr
LCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCksIEFTQ0lJTGl0
ZXJhbCgiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3Ry
aWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxv
d2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKK30KKworUmVzb3VyY2VFcnJv
ciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorewor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNh
bm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCksIEFTQ0lJTGl0ZXJhbCgiVVJMIGNh
bm5vdCBiZSBzaG93biIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJ
bnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCBBU0NJSUxp
dGVyYWwoIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIikpOworfQorCitSZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lF
cnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIEFTQ0lJTGl0
ZXJhbCgiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5vdCBiZSBzaG93
biIpKTsKK30KKworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51
cmwoKS5zdHJpbmcoKSwgQVNDSUlMaXRlcmFsKCJGaWxlIGRvZXMgbm90IGV4aXN0IikpOworfQor
CitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5QbHVnaW4sIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLnN0cmlu
ZygpLCBBU0NJSUxpdGVyYWwoIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIikpOworfQorCitSZXNv
dXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIG5ldHdv
cmtFcnJvcikKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2Fk
LCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxpbmdVUkwoKSwgbmV0d29y
a0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworfQorCitSZXNvdXJjZUVycm9yIGRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxv
YWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIEFTQ0lJTGl0
ZXJhbCgiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOworfQorCitSZXNvdXJjZUVycm9y
IGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCByZXNwb25z
ZS51cmwoKS5zdHJpbmcoKSwgZXJyb3JNZXNzYWdlKTsKK30KKworUmVzb3VyY2VFcnJvciBwcmlu
dEVycm9yKGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0LCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBwcmlu
dENvbnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOworCisgICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdlbmVyYWwsIGRv
Y3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgpIDogS1VSTCgpLCBlcnJvck1lc3Nh
Z2UpOworfQorCitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFByaW50
Q29udGV4dCogcHJpbnRDb250ZXh0KQoreworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciA9IHByaW50Q29udGV4dC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7
CisKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9y
UHJpbnRlck5vdEZvdW5kLCBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50TG9hZGVyLT51cmwoKSA6
IEtVUkwoKSwgQVNDSUlMaXRlcmFsKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKK30KKworUmVzb3Vy
Y2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBQcmludENvbnRleHQqIHByaW50
Q29udGV4dCkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBwcmludENv
bnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOworCisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFu
Z2UsIGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgpIDogS1VSTCgpLCBBU0NJ
SUxpdGVyYWwoIkludmFsaWQgcGFnZSByYW5nZSIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FcnJvcnNHTGli
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Vycm9yc0dMaWIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMjUxNDM2N2JiZmU5M2VmNDEwNDJkOTU5ZDZiYzUwNzFkMTM3NTliCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FcnJvcnNHTGliLmgKQEAgLTAsMCAr
MSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEVycm9y
c0dMaWJfaAorI2RlZmluZSBFcnJvcnNHTGliX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFByaW50Q29udGV4dDsKK2Ns
YXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOworCitzdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpbk5ldHdvcmtbXSA9ICJX
ZWJLaXROZXR3b3JrRXJyb3IiOworc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Qb2xpY3lb
XSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7CitzdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblBs
dWdpbltdID0gIldlYktpdFBsdWdpbkVycm9yIjsKK3N0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9t
YWluRG93bmxvYWRbXSA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKK3N0YXRpYyBjb25zdCBjaGFy
IGVycm9yRG9tYWluUHJpbnRbXSA9ICJXZWJLaXRQcmludEVycm9yIjsKKworZW51bSBOZXR3b3Jr
RXJyb3IgeworICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKKyAgICBOZXR3b3JrRXJyb3JU
cmFuc3BvcnQgPSAzMDAsCisgICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAor
ICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKKyAgICBOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0ID0gMzAzCit9OworCisvLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQgRXJyb3Jz
IGF0OgorLy8gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnNbUHJpdmF0ZV0uaAor
ZW51bSBQb2xpY3lFcnJvciB7CisgICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTksCisgICAgUG9s
aWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCisgICAgUG9saWN5RXJyb3JDYW5ub3RT
aG93VVJMID0gMTAxLAorICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGlj
eUNoYW5nZSA9IDEwMiwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0g
MTAzCit9OworCitlbnVtIFBsdWdpbkVycm9yIHsKKyAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5
OSwKKyAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCisgICAgUGx1Z2luRXJy
b3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAorICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxl
ID0gMjAyLAorICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKKyAgICBQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Cit9OworCitlbnVtIERvd25sb2FkRXJyb3Ig
eworICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAorICAgIERvd25sb2FkRXJyb3JDYW5j
ZWxsZWRCeVVzZXIgPSA0MDAsCisgICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCit9
OworCitlbnVtIFByaW50RXJyb3IgeworICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAorICAg
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCisgICAgUHJpbnRFcnJvckludmFsaWRQ
YWdlUmFuZ2UgPSA1MDEKK307CisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIGZp
bGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVy
cm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwor
UmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJik7
CitSZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKK1Jlc291
cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBQcmludENvbnRleHQqLCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFBy
aW50Q29udGV4dCopOworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25z
dCBQcmludENvbnRleHQqKTsKKworfQorCisjZW5kaWYgLy8gRXJyb3JzR0xpYl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HTGliLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdMaWIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYwMThiNzc4MGMxY2EzYWU4MDY1NWIxYTcxM2Q4NTRmZmRiN2Y2OTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HTGliLmNwcApAQCAt
MCwwICsxLDM2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOSBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSwgTHRkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0
ZW0uaCIKKworI2luY2x1ZGUgIkZpbGVNZXRhZGF0YS5oIgorI2luY2x1ZGUgIlVVSUQuaCIKKyNp
bmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGdsaWIvZ3N0
ZGlvLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIE9uIGxpbnV4IGZpbGUgbmFtZXMg
YXJlIGp1c3QgcmF3IGJ5dGVzLCBzbyBhbHNvIHN0cmluZ3MgdGhhdCBjYW5ub3QgYmUgZW5jb2Rl
ZCBpbiBhbnkgd2F5CisvLyBhcmUgdmFsaWQgZmlsZSBuYW1lcy4gVGhpcyBtZWFuIHRoYXQgd2Ug
Y2Fubm90IGp1c3Qgc3RvcmUgYSBmaWxlIG5hbWUgYXMtaXMgaW4gYSBTdHJpbmcKKy8vIGJ1dCB3
ZSBoYXZlIHRvIGVzY2FwZSBpdC4KKy8vIE9uIFdpbmRvd3MgdGhlIEdMaWIgZmlsZSBuYW1lIGVu
Y29kaW5nIGlzIGFsd2F5cyBVVEYtOCBzbyB3ZSBjYW4gb3B0aW1pemUgdGhpcyBjYXNlLgorU3Ry
aW5nIGZpbGVuYW1lVG9TdHJpbmcoY29uc3QgY2hhciogZmlsZW5hbWUpCit7CisgICAgaWYgKCFm
aWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisjaWYgT1MoV0lORE9XUykKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSk7CisjZWxzZQorICAgIEdPd25QdHI8
Z2NoYXI+IGVzY2FwZWRTdHJpbmcoZ191cmlfZXNjYXBlX3N0cmluZyhmaWxlbmFtZSwgIi86Iiwg
ZmFsc2UpKTsKKyAgICByZXR1cm4gZXNjYXBlZFN0cmluZy5nZXQoKTsKKyNlbmRpZgorfQorCitD
U3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHBhdGgpCit7Cisj
aWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gcGF0aC51dGY4KCk7CisjZWxzZQorICAgIEdPd25Q
dHI8Z2NoYXI+IGZpbGVuYW1lKGdfdXJpX3VuZXNjYXBlX3N0cmluZyhwYXRoLnV0ZjgoKS5kYXRh
KCksIDApKTsKKyAgICByZXR1cm4gZmlsZW5hbWUuZ2V0KCk7CisjZW5kaWYKK30KKworLy8gQ29u
dmVydHMgYSBzdHJpbmcgdG8gc29tZXRoaW5nIHN1aXRhYmxlIHRvIGJlIGRpc3BsYXllZCB0byB0
aGUgdXNlci4KK1N0cmluZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJiBzdHJpbmcp
Cit7CisjaWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gc3RyaW5nOworI2Vsc2UKKyAgICBDU3Ry
aW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN0cmluZyk7CisgICAgR093
blB0cjxnY2hhcj4gZGlzcGxheShnX2ZpbGVuYW1lX3RvX3V0ZjgoZmlsZW5hbWUuZGF0YSgpLCAw
LCAwLCAwLCAwKSk7CisgICAgaWYgKCFkaXNwbGF5KQorICAgICAgICByZXR1cm4gc3RyaW5nOwor
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoZGlzcGxheS5nZXQoKSk7CisjZW5kaWYKK30K
KworYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24ocGF0aCk7CisKKyAgICBpZiAoIWZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXN1bHQg
PSBnX2ZpbGVfdGVzdChmaWxlbmFtZS5kYXRhKCksIEdfRklMRV9URVNUX0VYSVNUUyk7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
KQoreworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKworICAgIGlmICghZmlsZW5hbWUuaXNOdWxs
KCkpCisgICAgICAgIHJlc3VsdCA9ICFnX3JlbW92ZShmaWxlbmFtZS5kYXRhKCkpOworCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJp
bmcmIHBhdGgpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBDU3RyaW5nIGZpbGVu
YW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworCisgICAgaWYgKCFmaWxlbmFt
ZS5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gIWdfcm1kaXIoZmlsZW5hbWUuZGF0YSgpKTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgZ2V0RmlsZVNpemUoY29uc3QgU3RyaW5n
JiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdFNpemUpCit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7Cisg
ICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3VsdCk7Cisg
ICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0U2l6ZSA9
IHN0YXRSZXN1bHQuc3Rfc2l6ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBnZXRGaWxl
TW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgbW9kaWZpZWRUaW1l
KQoreworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0
aCk7CisgICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OworICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVu
YW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQpOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1vZGlmaWVkVGltZSA9IHN0YXRSZXN1bHQuc3RfbXRpbWU7CisgICAg
cmV0dXJuIHRydWU7CisKK30KKworYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBw
YXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhKQoreworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBm
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdHJ1Y3Qgc3RhdCBzdGF0UmVzdWx0Owor
ICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVuYW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQpOwor
ICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1ldGFkYXRhLm1v
ZGlmaWNhdGlvblRpbWUgPSBzdGF0UmVzdWx0LnN0X210aW1lOworICAgIG1ldGFkYXRhLmxlbmd0
aCA9IHN0YXRSZXN1bHQuc3Rfc2l6ZTsKKyAgICBtZXRhZGF0YS50eXBlID0gU19JU0RJUihzdGF0
UmVzdWx0LnN0X21vZGUpID8gRmlsZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5IDogRmlsZU1ldGFk
YXRhOjpUeXBlRmlsZTsKKyAgICByZXR1cm4gdHJ1ZTsKKworfQorCitTdHJpbmcgcGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25l
bnQpCit7CisgICAgaWYgKHBhdGguZW5kc1dpdGgoR19ESVJfU0VQQVJBVE9SX1MpKQorICAgICAg
ICByZXR1cm4gcGF0aCArIGNvbXBvbmVudDsKKyAgICByZXR1cm4gcGF0aCArIEdfRElSX1NFUEFS
QVRPUl9TICsgY29tcG9uZW50OworfQorCitib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBT
dHJpbmcmIHBhdGgpCit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGdpbnQgcmVzdWx0ID0gZ19ta2Rpcl93aXRoX3BhcmVudHMoZmlsZW5h
bWUuZGF0YSgpLCBTX0lSV1hVKTsKKworICAgIHJldHVybiAhcmVzdWx0OworfQorCitTdHJpbmcg
aG9tZURpcmVjdG9yeVBhdGgoKQoreworICAgIHJldHVybiBmaWxlbmFtZVRvU3RyaW5nKGdfZ2V0
X2hvbWVfZGlyKCkpOworfQorCitTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYg
cGF0aE5hbWUpCit7CisgICAgaWYgKHBhdGhOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHBhdGhOYW1lOworCisgICAgQ1N0cmluZyB0bXBGaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihwYXRoTmFtZSk7CisgICAgR093blB0cjxnY2hhcj4gYmFzZU5hbWUoZ19wYXRoX2dl
dF9iYXNlbmFtZSh0bXBGaWxlbmFtZS5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOChiYXNlTmFtZS5nZXQoKSk7Cit9CisKK0NTdHJpbmcgYXBwbGljYXRpb25EaXJlY3RvcnlQ
YXRoKCkKK3sKKyAgICBDU3RyaW5nIHBhdGggPSBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKTsK
KyAgICBpZiAoIXBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBwYXRoOworCisgICAgLy8g
SWYgdGhlIGFib3ZlIGZhaWxzLCBjaGVjayB0aGUgUEFUSCBlbnYgdmFyaWFibGUuCisgICAgR093
blB0cjxjaGFyPiBjdXJyZW50RXhlUGF0aChnX2ZpbmRfcHJvZ3JhbV9pbl9wYXRoKGdfZ2V0X3By
Z25hbWUoKSkpOworICAgIGlmICghY3VycmVudEV4ZVBhdGguZ2V0KCkpCisgICAgICAgIHJldHVy
biBDU3RyaW5nKCk7CisKKyAgICBHT3duUHRyPGNoYXI+IGRpcm5hbWUoZ19wYXRoX2dldF9kaXJu
YW1lKGN1cnJlbnRFeGVQYXRoLmdldCgpKSk7CisgICAgcmV0dXJuIGRpcm5hbWUuZ2V0KCk7Cit9
CisKK0NTdHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCit7CisgICAgc3RhdGljIENTdHJpbmcg
Y2FjaGVkUGF0aDsKKyAgICBpZiAoIWNhY2hlZFBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBjYWNoZWRQYXRoOworCisjaWYgT1MoV0lORE9XUykKKyAgICBITU9EVUxFIGhtb2R1bGUgPSAw
OworICAgIEdldE1vZHVsZUhhbmRsZUV4QShHRVRfTU9EVUxFX0hBTkRMRV9FWF9GTEFHX0ZST01f
QUREUkVTUywgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc2hhcmVkUmVzb3VyY2VzUGF0aCksICZo
bW9kdWxlKTsKKworICAgIEdPd25QdHI8Z2NoYXI+IHJ1bnRpbWVEaXIoZ193aW4zMl9nZXRfcGFj
a2FnZV9pbnN0YWxsYXRpb25fZGlyZWN0b3J5X29mX21vZHVsZShobW9kdWxlKSk7CisgICAgR093
blB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShydW50aW1lRGlyLmdldCgpLCAi
c2hhcmUiLCAid2Via2l0Z3RrLSJXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7
CisjZWxzZQorCisjaWYgUExBVEZPUk0oR1RLKQorICAgIEdPd25QdHI8Z2NoYXI+IGRhdGFQYXRo
KGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRHVEtfQVBJX1ZF
UlNJT05fU1RSSU5HLCBOVUxMKSk7CisjZWxpZiBQTEFURk9STShOSVgpCisgICAgR093blB0cjxn
Y2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdG5peCIsIE5V
TEwpKTsKKyNlbmRpZgorCisjZW5kaWYKKworICAgIGNhY2hlZFBhdGggPSBkYXRhUGF0aC5nZXQo
KTsKKyAgICByZXR1cm4gY2FjaGVkUGF0aDsKK30KKwordWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNp
emVGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpCit7CisgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9
IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKHBhdGgpKTsKKyAgICBHUmVmUHRyPEdGaWxl
SW5mbz4gZmlsZUluZm8gPSBhZG9wdEdSZWYoZ19maWxlX3F1ZXJ5X2ZpbGVzeXN0ZW1faW5mbyhm
aWxlLmdldCgpLCBHX0ZJTEVfQVRUUklCVVRFX0ZJTEVTWVNURU1fRlJFRSwgMCwgMCkpOworICAg
IGlmICghZmlsZUluZm8pCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGdfZmlsZV9p
bmZvX2dldF9hdHRyaWJ1dGVfdWludDY0KGZpbGVJbmZvLmdldCgpLCBHX0ZJTEVfQVRUUklCVVRF
X0ZJTEVTWVNURU1fRlJFRSk7Cit9CisKK1N0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKK3sKKyAgICAvLyBObyBudWxsIGNoZWNraW5nIG5lZWRlZAorICAgIEdPd25QdHI8
Y2hhcj4gZGlybmFtZShnX3BhdGhfZ2V0X2Rpcm5hbWUoZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KHBhdGgpLmRhdGEoKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGRpcm5hbWUuZ2V0
KCkpOworfQorCitWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIpCit7CisgICAgVmVjdG9yPFN0cmluZz4gZW50cmllczsK
KworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7
CisgICAgR0RpciogZGlyID0gZ19kaXJfb3BlbihmaWxlbmFtZS5kYXRhKCksIDAsIDApOworICAg
IGlmICghZGlyKQorICAgICAgICByZXR1cm4gZW50cmllczsKKworICAgIEdQYXR0ZXJuU3BlYyog
cHNwZWMgPSBnX3BhdHRlcm5fc3BlY19uZXcoKGZpbHRlci51dGY4KCkpLmRhdGEoKSk7CisgICAg
d2hpbGUgKGNvbnN0IGNoYXIqIG5hbWUgPSBnX2Rpcl9yZWFkX25hbWUoZGlyKSkgeworICAgICAg
ICBpZiAoIWdfcGF0dGVybl9tYXRjaF9zdHJpbmcocHNwZWMsIG5hbWUpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgR093blB0cjxnY2hhcj4gZW50cnkoZ19idWlsZF9maWxlbmFt
ZShmaWxlbmFtZS5kYXRhKCksIG5hbWUsIE5VTEwpKTsKKyAgICAgICAgZW50cmllcy5hcHBlbmQo
ZmlsZW5hbWVUb1N0cmluZyhlbnRyeS5nZXQoKSkpOworICAgIH0KKyAgICBnX3BhdHRlcm5fc3Bl
Y19mcmVlKHBzcGVjKTsKKyAgICBnX2Rpcl9jbG9zZShkaXIpOworCisgICAgcmV0dXJuIGVudHJp
ZXM7Cit9CisKK1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwg
UGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCit7CisgICAgR093blB0cjxnY2hhcj4gZmlsZW5h
bWUoZ19zdHJkdXBfcHJpbnRmKCIlcyVzIiwgcHJlZml4LnV0ZjgoKS5kYXRhKCksIGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgR093blB0cjxnY2hhcj4g
dGVtcFBhdGgoZ19idWlsZF9maWxlbmFtZShnX2dldF90bXBfZGlyKCksIGZpbGVuYW1lLmdldCgp
LCBOVUxMKSk7CisgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3
X2Zvcl9wYXRoKHRlbXBQYXRoLmdldCgpKSk7CisKKyAgICBoYW5kbGUgPSBnX2ZpbGVfY3JlYXRl
X3JlYWR3cml0ZShmaWxlLmdldCgpLCBHX0ZJTEVfQ1JFQVRFX05PTkUsIDAsIDApOworICAgIGlm
ICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgodGVtcFBhdGguZ2V0KCkpOworfQorCitQbGF0Zm9ybUZp
bGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkK
K3sKKyAgICBDU3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwor
ICAgIGlmIChmc1JlcC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGU7CisKKyAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9u
ZXdfZm9yX3BhdGgoZnNSZXAuZGF0YSgpKSk7CisgICAgR0ZpbGVJT1N0cmVhbSogaW9TdHJlYW0g
PSAwOworICAgIGlmIChtb2RlID09IE9wZW5Gb3JSZWFkKQorICAgICAgICBpb1N0cmVhbSA9IGdf
ZmlsZV9vcGVuX3JlYWR3cml0ZShmaWxlLmdldCgpLCAwLCAwKTsKKyAgICBlbHNlIGlmIChtb2Rl
ID09IE9wZW5Gb3JXcml0ZSkgeworICAgICAgICBpZiAoZ19maWxlX3Rlc3QoZnNSZXAuZGF0YSgp
LCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklMRV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNU
X0lTX1JFR1VMQVIpKSkKKyAgICAgICAgICAgIGlvU3RyZWFtID0gZ19maWxlX29wZW5fcmVhZHdy
aXRlKGZpbGUuZ2V0KCksIDAsIDApOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpb1N0cmVh
bSA9IGdfZmlsZV9jcmVhdGVfcmVhZHdyaXRlKGZpbGUuZ2V0KCksIEdfRklMRV9DUkVBVEVfTk9O
RSwgMCwgMCk7CisgICAgfQorCisgICAgcmV0dXJuIGlvU3RyZWFtOworfQorCit2b2lkIGNsb3Nl
RmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBpZiAoIWlzSGFuZGxlVmFs
aWQoaGFuZGxlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19pb19zdHJlYW1fY2xvc2UoR19J
T19TVFJFQU0oaGFuZGxlKSwgMCwgMCk7CisgICAgZ19vYmplY3RfdW5yZWYoaGFuZGxlKTsKKyAg
ICBoYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworfQorCitsb25nIGxvbmcgc2Vl
a0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwgRmlsZVNl
ZWtPcmlnaW4gb3JpZ2luKQoreworICAgIEdTZWVrVHlwZSBzZWVrVHlwZSA9IEdfU0VFS19TRVQ7
CisgICAgc3dpdGNoIChvcmlnaW4pIHsKKyAgICBjYXNlIFNlZWtGcm9tQmVnaW5uaW5nOgorICAg
ICAgICBzZWVrVHlwZSA9IEdfU0VFS19TRVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vl
a0Zyb21DdXJyZW50OgorICAgICAgICBzZWVrVHlwZSA9IEdfU0VFS19DVVI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU2Vla0Zyb21FbmQ6CisgICAgICAgIHNlZWtUeXBlID0gR19TRUVLX0VO
RDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgaWYgKCFnX3NlZWthYmxlX3NlZWsoR19TRUVLQUJMRShnX2lv
X3N0cmVhbV9nZXRfaW5wdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkpKSwgb2Zmc2V0LCBz
ZWVrVHlwZSwgMCwgMCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4gZ19zZWVrYWJs
ZV90ZWxsKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lPX1NUUkVB
TShoYW5kbGUpKSkpOworfQorCitpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBnc2l6ZSBieXRlc1dy
aXR0ZW47CisgICAgZ19vdXRwdXRfc3RyZWFtX3dyaXRlX2FsbChnX2lvX3N0cmVhbV9nZXRfb3V0
cHV0X3N0cmVhbShHX0lPX1NUUkVBTShoYW5kbGUpKSwgZGF0YSwgbGVuZ3RoLCAmYnl0ZXNXcml0
dGVuLCAwLCAwKTsKKyAgICByZXR1cm4gYnl0ZXNXcml0dGVuOworfQorCitpbnQgcmVhZEZyb21G
aWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCit7
CisgICAgR093blB0cjxHRXJyb3I+IGVycm9yOworICAgIGRvIHsKKyAgICAgICAgZ3NzaXplIGJ5
dGVzUmVhZCA9IGdfaW5wdXRfc3RyZWFtX3JlYWQoZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVh
bShHX0lPX1NUUkVBTShoYW5kbGUpKSwgZGF0YSwgbGVuZ3RoLCAwLCAmZXJyb3Iub3V0UHRyKCkp
OworICAgICAgICBpZiAoYnl0ZXNSZWFkID49IDApCisgICAgICAgICAgICByZXR1cm4gYnl0ZXNS
ZWFkOworICAgIH0gd2hpbGUgKGVycm9yICYmIGVycm9yLT5jb2RlID09IEdfRklMRV9FUlJPUl9J
TlRSKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK2Jvb2wgdW5sb2FkTW9kdWxlKFBsYXRmb3JtTW9k
dWxlIG1vZHVsZSkKK3sKKyNpZiBPUyhXSU5ET1dTKQorICAgIHJldHVybiA6OkZyZWVMaWJyYXJ5
KG1vZHVsZSk7CisjZWxzZQorICAgIHJldHVybiBnX21vZHVsZV9jbG9zZShtb2R1bGUpOworI2Vu
ZGlmCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL01JTUVU
eXBlUmVnaXN0cnlHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvTUlNRVR5
cGVSZWdpc3RyeUdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYWVhMGVkNWUzODUyOGEyZGRmM2M0ZDUx
YWI0NjY4ZTkzZDY4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nbGliL01JTUVUeXBlUmVnaXN0cnlHTGliLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiAgaHR0cDov
L3d3dy50b3JjaG1vYmlsZS5jb20vCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBF
bGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBFeHRlbnNpb25NYXAgeworICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbjsKKyAgICBjb25z
dCBjaGFyKiBtaW1lVHlwZTsKK307CisKK3N0YXRpYyBjb25zdCBFeHRlbnNpb25NYXAgZXh0ZW5z
aW9uTWFwW10gPSB7CisgICAgeyAwLCAwIH0KK307CisKK1N0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5
OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcgJmV4dCkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgU3RyaW5nIHMgPSBleHQubG93ZXIoKTsKKyAgICBj
b25zdCBFeHRlbnNpb25NYXAgKmUgPSBleHRlbnNpb25NYXA7CisgICAgd2hpbGUgKGUtPmV4dGVu
c2lvbikgeworICAgICAgICBpZiAocyA9PSBlLT5leHRlbnNpb24pCisgICAgICAgICAgICByZXR1
cm4gZS0+bWltZVR5cGU7CisgICAgICAgICsrZTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK2Jvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVU
eXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1J1bkxvb3BHTGliLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvUnVuTG9vcEdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MWI2
Nzk1YTAzYTVmMmZhMWQ0MGVlNmYwM2FlMGUyODBiNzIyZDUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1J1bkxvb3BHTGliLmNwcApAQCAtMCwwICsxLDE3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisKKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1J1bkxvb3A6OlJ1
bkxvb3AoKQoreworICAgIC8vIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBh
biBleHRyYSByZWZlcmVuY2UuCisgICAgbV9ydW5Mb29wQ29udGV4dCA9IGlzTWFpblRocmVhZCgp
ID8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpIDogYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25l
dygpKTsKKyAgICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7CisgICAgR1JlZlB0cjxHTWFpbkxv
b3A+IGlubmVybW9zdExvb3AgPSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENv
bnRleHQuZ2V0KCksIEZBTFNFKSk7CisgICAgQVNTRVJUKGlubmVybW9zdExvb3ApOworICAgIG1f
cnVuTG9vcE1haW5Mb29wcy5hcHBlbmQoaW5uZXJtb3N0TG9vcCk7Cit9CisKK1J1bkxvb3A6On5S
dW5Mb29wKCkKK3sKKyAgICBmb3IgKGludCBpID0gbV9ydW5Mb29wTWFpbkxvb3BzLnNpemUoKSAt
IDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyht
X3J1bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKTsKKyAgICB9
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9
IFJ1bkxvb3A6OmN1cnJlbnQoKTsKKyAgICBHTWFpbkxvb3AqIGlubmVybW9zdExvb3AgPSBtYWlu
UnVuTG9vcC0+aW5uZXJtb3N0TG9vcCgpOworICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmlu
Zyhpbm5lcm1vc3RMb29wKSkgeworICAgICAgICBnX21haW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9v
cCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5l
c3RlZCBsb29wIGlmIHRoZSBpbm5lcm1vc3Qgb25lIHdhcyBhbHJlYWR5IHJ1bm5pbmcuCisgICAg
R01haW5Mb29wKiBuZXN0ZWRNYWluTG9vcCA9IGdfbWFpbl9sb29wX25ldygwLCBGQUxTRSk7Cisg
ICAgbWFpblJ1bkxvb3AtPnB1c2hOZXN0ZWRNYWluTG9vcChuZXN0ZWRNYWluTG9vcCk7CisgICAg
Z19tYWluX2xvb3BfcnVuKG5lc3RlZE1haW5Mb29wKTsKKyAgICBtYWluUnVuTG9vcC0+cG9wTmVz
dGVkTWFpbkxvb3AoKTsKK30KKworR01haW5Mb29wKiBSdW5Mb29wOjppbm5lcm1vc3RMb29wKCkK
K3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJl
LgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgcmV0dXJu
IG1fcnVuTG9vcE1haW5Mb29wc1swXS5nZXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjpwdXNoTmVz
dGVkTWFpbkxvb3AoR01haW5Mb29wKiBuZXN0ZWRMb29wKQoreworICAgIC8vIFRoZSBpbm5lcm1v
c3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxv
b3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFk
b3B0R1JlZihuZXN0ZWRMb29wKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxv
b3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUg
dGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBt
X3J1bkxvb3BNYWluTG9vcHMucmVtb3ZlTGFzdCgpOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3Ao
KQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhl
cmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBHUmVm
UHRyPEdNYWluTG9vcD4gbGFzdE1haW5Mb29wID0gbV9ydW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsK
KyAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsYXN0TWFpbkxvb3AuZ2V0KCkpKQorICAg
ICAgICBnX21haW5fbG9vcF9xdWl0KGxhc3RNYWluTG9vcC5nZXQoKSk7Cit9CisKK2dib29sZWFu
IFJ1bkxvb3A6OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQoreworICAgIHJ1bkxvb3AtPnBl
cmZvcm1Xb3JrKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VV
cCgpCit7CisgICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3Nv
dXJjZV9uZXcoKSk7CisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19Q
UklPUklUWV9ERUZBVUxUKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgp
LCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhp
cywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4
dC5nZXQoKSk7CisKKyAgICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5n
ZXQoKSk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxv
b3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fdGltZXJTb3VyY2UoMCkKK3sK
K30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKK3sKKyAgICBt
X3RpbWVyU291cmNlID0gMDsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1l
ckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBHU291cmNl
KiBjdXJyZW50VGltZXJTb3VyY2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBi
b29sIGlzUmVwZWF0aW5nID0gdGltZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4g
Y2hhbmdlIHRoZSB0aW1lclNvdXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhl
IGNhbGxiYWNrLgorICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNlID09
IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAgICAgICB0aW1lci0+Y2xlYXJUaW1lclNv
dXJjZSgpOworCisgICAgdGltZXItPmZpcmVkKCk7CisgICAgcmV0dXJuIGlzUmVwZWF0aW5nOwor
fQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwg
Ym9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGltZXJTb3VyY2UpCisgICAgICAgIHN0b3AoKTsK
KworICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3Rh
dGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7CisgICAgbV9pc1JlcGVhdGlu
ZyA9IHJlcGVhdDsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJT
b3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1fdGltZXJTb3VyY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5n
ZXQoKSk7CisgICAgY2xlYXJUaW1lclNvdXJjZSgpOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3RpbWVyU291cmNlOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nbGliL1NoYXJlZFRpbWVyR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
bGliL1NoYXJlZFRpbWVyR0xpYi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE1YjE4N2NkMTAyYjIyNzFkZDhi
OGYzM2RkNDI0MmUxOGNhYmJhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dsaWIvU2hhcmVkVGltZXJHTGliLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFp
bC5jb20KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNoYXJlZFRpbWVyLmgiCisKKyNkZWZpbmUgR0RLX1BSSU9SSVRZX1JFRFJB
VyAoR19QUklPUklUWV9ISUdIX0lETEUgKyAyMCkKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgZ3VpbnQgc2hhcmVkVGltZXI7CitzdGF0aWMgdm9p
ZCAoKnNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbikoKTsKKwordm9pZCBzZXRTaGFyZWRUaW1lckZp
cmVkRnVuY3Rpb24odm9pZCAoKmYpKCkpCit7CisgICAgc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9u
ID0gZjsKK30KKworc3RhdGljIGdib29sZWFuIHRpbWVvdXRDYWxsYmFjayhncG9pbnRlcikKK3sK
KyAgICBpZiAoc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKQorICAgICAgICBzaGFyZWRUaW1lckZp
cmVkRnVuY3Rpb24oKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgc2V0U2hhcmVkVGlt
ZXJGaXJlSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQoreworICAgIEFTU0VSVChzaGFyZWRUaW1l
ckZpcmVkRnVuY3Rpb24pOworCisgICAgZ3VpbnQgaW50ZXJ2YWxJbk1TID0gc3RhdGljX2Nhc3Q8
Z3VpbnQ+KGludGVydmFsICogMTAwMCk7CisKKyAgICBzdG9wU2hhcmVkVGltZXIoKTsKKyAgICBz
aGFyZWRUaW1lciA9IGdfdGltZW91dF9hZGRfZnVsbChHREtfUFJJT1JJVFlfUkVEUkFXLCBpbnRl
cnZhbEluTVMsIHRpbWVvdXRDYWxsYmFjaywgMCwgMCk7Cit9CisKK3ZvaWQgc3RvcFNoYXJlZFRp
bWVyKCkKK3sKKyAgICBpZiAoIXNoYXJlZFRpbWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBn
Ym9vbGVhbiByZW1vdmVkU291cmNlID0gZ19zb3VyY2VfcmVtb3ZlKHNoYXJlZFRpbWVyKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKHJlbW92ZWRTb3VyY2UsIHJlbW92ZWRTb3VyY2UpOworICAgIHNoYXJl
ZFRpbWVyID0gMDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xp
Yi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNDMxY2UxNWNlNzhmNjU3Yjhk
NGNhYzI2YjYwMDc3NTllMmU3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFp
bC5jb20KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSA8ZmxvYXQuaD4KKworLy8gQ29tcGxldGVseSBlbXB0eSBzdHVicyAobW9zdGx5IHRvIGFs
bG93IERSVCB0byBydW4pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBnZXRTdXBwb3J0
ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgS1VSTCYpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitm
bG9hdCB1c2VySWRsZVRpbWUoKQoreworICAgIC8vIFJldHVybiBhbiBhcmJpdHJhcmlseSBoaWdo
IHVzZXJJZGxlVGltZSBzbyB0aGF0IHJlbGVhc2luZyBwYWdlcyBmcm9tIHRoZSBwYWdlIGNhY2hl
IGlzbid0IHBvc3Rwb25lZC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGTFRf
TUFYOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZmI2ZWYxYjY1MmQ3MjQ2OTZiZmZkNjVjMzUwNTQyZWFjYmVkMzBhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJy
ZW50RUdMLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIw
MTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4dEZyb21DdXJyZW50RUdM
LmgiCisKKyNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NPd25QdHI8R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w+IEdMQ29udGV4dEZyb21DdXJyZW50
RUdMOjpjcmVhdGVGcm9tQ3VycmVudEdMQ29udGV4dCgpCit7CisgICAgaWYgKCFpbml0aWFsaXpl
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgR0xD
b250ZXh0RnJvbUN1cnJlbnRFR0woKSk7Cit9CisKK0dMQ29udGV4dEZyb21DdXJyZW50RUdMOjpH
TENvbnRleHRGcm9tQ3VycmVudEVHTCgpCisgICAgOiBtX2Rpc3BsYXkoZWdsR2V0Q3VycmVudERp
c3BsYXkoKSkKKyAgICAsIG1fc3VyZmFjZShlZ2xHZXRDdXJyZW50U3VyZmFjZShFR0xfRFJBVykp
CisgICAgLCBtX2NvbnRleHQoZWdsR2V0Q3VycmVudENvbnRleHQoKSkKK3sKK30KKworYm9vbCBH
TENvbnRleHRGcm9tQ3VycmVudEVHTDo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBHTENv
bnRleHQ6Om1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIHJldHVybiBlZ2xNYWtlQ3VycmVudCht
X2Rpc3BsYXksIG1fc3VyZmFjZSwgbV9zdXJmYWNlLCBtX2NvbnRleHQpOworfQorCitib29sIEdM
Q29udGV4dEZyb21DdXJyZW50RUdMOjppbml0aWFsaXplKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZCA9IGZhbHNlOworICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOworICAg
IGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgc3VjY2VzcyA9IGluaXRpYWxpemVPcGVuR0xT
aGltcygpOworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorICAgIHJldHVybiBz
dWNjZXNzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVu
dEVHTC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFiMjhkYzY3OWRlZmY4NjMwMzMzZjFiNTBiNzQxMTk2Njg2NGVi
YjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
Z2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHTENvbnRleHRGcm9tQ3VycmVudEVHTF9oCisj
ZGVmaW5lIEdMQ29udGV4dEZyb21DdXJyZW50RUdMX2gKKworI2luY2x1ZGUgIkdMQ29udGV4dC5o
IgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBH
TENvbnRleHRGcm9tQ3VycmVudEVHTCA6IHB1YmxpYyBHTENvbnRleHQgeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEdMQ29udGV4dEZyb21DdXJyZW50RUdMKTsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxHTENvbnRleHRGcm9tQ3VycmVudEVHTD4gY3JlYXRlRnJvbUN1cnJlbnRH
TENvbnRleHQoKTsKKworICAgIHZpcnR1YWwgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKSBPVkVS
UklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIE9WRVJSSURFIHsgfQorICAg
IHZpcnR1YWwgSW50U2l6ZSBkZWZhdWx0RnJhbWVCdWZmZXJTaXplKCkgT1ZFUlJJREUgeyByZXR1
cm4gSW50U2l6ZSgpOyB9CisgICAgdmlydHVhbCBjYWlyb19kZXZpY2VfdCogY2Fpcm9EZXZpY2Uo
KSBPVkVSUklERSB7IHJldHVybiAwOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVuZGVyVG9E
ZWZhdWx0RnJhbWVidWZmZXIoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmly
dHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIE9WRVJSSURF
IHsgcmV0dXJuIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FpdE5hdGl2ZSgpIE9WRVJSSURF
IHsgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGluaXRpYWxpemUoKTsKKworICAgIEdM
Q29udGV4dEZyb21DdXJyZW50RUdMKCk7CisKKyAgICBFR0xEaXNwbGF5IG1fZGlzcGxheTsKKyAg
ICBFR0xTdXJmYWNlIG1fc3VyZmFjZTsKKyAgICBFR0xDb250ZXh0IG1fY29udGV4dDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdMQ29udGV4dEZyb21DdXJyZW50
RUdMX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZDlkYTJmOTBkNmI2MDM3MTQzMzBmMzk2ZjQxNWIwODY3M2QwNjQwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3Jt
VmlkZW9XaW5kb3dOaXguY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9XaW5kb3cuaCIKKworI2lmIFVTRShHU1RSRUFNRVIp
ICYmICFkZWZpbmVkKEdTVF9BUElfVkVSU0lPTl8xKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1BsYXRmb3JtVmlkZW9XaW5kb3c6
OlBsYXRmb3JtVmlkZW9XaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1Bs
YXRmb3JtVmlkZW9XaW5kb3c6On5QbGF0Zm9ybVZpZGVvV2luZG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFBsYXRmb3JtVmlkZW9XaW5kb3c6OnByZXBhcmVGb3JPdmVy
bGF5KEdzdE1lc3NhZ2UqKQoreworfQorCisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikgJiYgIWRl
ZmluZWQoR1NUX0FQSV9WRVJTSU9OXzEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaXgvSWNvbk5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQzZjhkMzJlNGQzMGI0NGRjMDM2
MTc4OTU0OWMzYmE3MmI5YTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
SWNvbi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkK
K3sKK30KKworUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M2ZTEzYjQy
YjQ2MThiNWNlY2FjNTA2NjQ1YjBlNjM2OWE1MGJmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKQEAgLTAsMCArMSw2
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBC
aXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK3N0YXRpYyBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyRmFsbGJhY2soKQor
eworICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOyAvLyBGSVhNRTogZmFsbGJhY2sg
aW1hZ2U/Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNl
U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUobWFrZVN0
cmluZyhEQVRBX0RJUiAiL3dlYmtpdC0xLjAvaW1hZ2VzLyIsIG5hbWUsICIucG5nIikpOworICAg
IGlmIChidWZmZXIpCisgICAgICAgIHJldHVybiBidWZmZXIucmVsZWFzZSgpOworICAgIHJldHVy
biBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXJGYWxsYmFjaygpOworfQorCitQYXNzUmVmUHRyPElt
YWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciogbmFtZSkKK3sKKyAg
ICBSZWZQdHI8Qml0bWFwSW1hZ2U+IGltZyA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKKyAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXIobmFt
ZSk7CisgICAgaW1nLT5zZXREYXRhKGJ1ZmZlci5yZWxlYXNlKCksIHRydWUpOworICAgIHJldHVy
biBpbWcucmVsZWFzZSgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9DdXJz
b3JOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3N2VmMGNjZTNiZTk3ZmVhYWQ0OGY2Nzg3MDU1NmRiOGEx
MTUyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vy
c29yTml4LmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBE
aXJrIE11ZWxsZXIgPG11ZWxsZXJAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBHZW9y
Z2UgU3RhaWtvcyA8c3RhaWtvc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IENoYXJs
ZXMgU2FtdWVscyA8Y2hhcmxlc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEhvbGdl
ciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXJzb3I6OkN1cnNvcihjb25z
dCBDdXJzb3ImIG90aGVyKQorICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKKyAgICAsIG1faW1h
Z2Uob3RoZXIubV9pbWFnZSkKKyAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCisgICAg
LCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCit7Cit9CisKK0N1cnNv
cjo6fkN1cnNvcigpCit7Cit9CisKK0N1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vy
c29yJiBvdGhlcikKK3sKKyAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7CisgICAgbV9pbWFnZSA9
IG90aGVyLm1faW1hZ2U7CisgICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OworICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOworICAgIHJldHVybiAqdGhp
czsKK30KKworc3RhdGljIGNvbnN0IGNoYXIqIGN1cnNvclN0cmluZyhDdXJzb3I6OlR5cGUgdHlw
ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nc1tdID0geworICAgICAg
ICAiY3Vyc29yL3BvaW50ZXIiLAorICAgICAgICAiY3Vyc29yL2Nyb3NzIiwKKyAgICAgICAgImN1
cnNvci9oYW5kIiwKKyAgICAgICAgImN1cnNvci9pX2JlYW0iLAorICAgICAgICAiY3Vyc29yL3dh
aXQiLAorICAgICAgICAiY3Vyc29yL2hlbHAiLAorICAgICAgICAiY3Vyc29yL2Vhc3RfcmVzaXpl
IiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRo
X2Vhc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF93ZXN0X3Jlc2l6ZSIsCisgICAg
ICAgICJjdXJzb3Ivc291dGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9lYXN0X3Jl
c2l6ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vy
c29yL3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9zb3V0aF9yZXNpemUiLAor
ICAgICAgICAiY3Vyc29yL2Vhc3Rfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRo
X2Vhc3Rfc291dGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3Rfc291
dGhfZWFzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL2NvbHVtbl9yZXNpemUiLAorICAgICAg
ICAiY3Vyc29yL3Jvd19yZXNpemUiLAorICAgICAgICAiY3Vyc29yL21pZGRsZV9wYW5uaW5nIiwK
KyAgICAgICAgImN1cnNvci9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX3Bh
bm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vhc3RfcGFubmluZyIsCisgICAgICAgICJj
dXJzb3Ivbm9ydGhfd2VzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9wYW5uaW5n
IiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29y
L3NvdXRoX3dlc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivd2VzdF9wYW5uaW5nIiwKKyAg
ICAgICAgImN1cnNvci9tb3ZlIiwKKyAgICAgICAgImN1cnNvci92ZXJ0aWNhbF90ZXh0IiwKKyAg
ICAgICAgImN1cnNvci9jZWxsIiwKKyAgICAgICAgImN1cnNvci9jb250ZXh0X21lbnUiLAorICAg
ICAgICAiY3Vyc29yL2FsaWFzIiwKKyAgICAgICAgImN1cnNvci9wcm9ncmVzcyIsCisgICAgICAg
ICJjdXJzb3Ivbm9fZHJvcCIsCisgICAgICAgICJjdXJzb3IvY29weSIsCisgICAgICAgICJjdXJz
b3Ivbm9uZSIsCisgICAgICAgICJjdXJzb3Ivbm90X2FsbG93ZWQiLAorICAgICAgICAiY3Vyc29y
L3pvb21faW4iLAorICAgICAgICAiY3Vyc29yL3pvb21fb3V0IiwKKyAgICAgICAgImN1cnNvci9n
cmFiIiwKKyAgICAgICAgImN1cnNvci9ncmFiYmluZyIsCisgICAgICAgICIifTsgLy8gRklYTUU6
IEp1c3QgcmV0dXJuICIiIGZvciBjdXN0b20gdHlwZS4gV2UgZG9uJ3Qgc3VwcG9ydCBpdCBub3cu
CisgICAgcmV0dXJuIGN1cnNvclN0cmluZ3NbdHlwZV07Cit9CisKK3ZvaWQgQ3Vyc29yOjplbnN1
cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fcGxhdGZvcm1DdXJzb3IpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29yU3RyaW5nKG1fdHlw
ZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFn
RGF0YU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlmZmI2OTg2YWZhNGYyMWViMDI3NTc3YjZmMWFjMTY0OTcxNWM3NzUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXgu
Y3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKworI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2Jvb2wgRHJhZ0RhdGE6OmNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0NvbG9yKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBj
b25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJl
ck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit2b2lkIERyYWdEYXRhOjph
c0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYpIGNvbnN0Cit7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6
OmNvbnRhaW5zUGxhaW5UZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0
cmluZyBEcmFnRGF0YTo6YXNQbGFpblRleHQoRnJhbWUqKSBjb25zdAoreworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworQ29sb3IgRHJhZ0RhdGE6OmFzQ29sb3IoKSBjb25zdAoreworICAgIHJl
dHVybiBDb2xvcigpOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0NvbXBhdGlibGVDb250
ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNv
bnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5KSBjb25zdAoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIERyYWdEYXRhOjphc1VSTChGcmFtZSosIEZpbGVu
YW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKikgY29uc3QKK3sKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0RhdGE6OmFzRnJhZ21l
bnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwgYm9vbCYpIGNvbnN0Cit7CisgICAg
cmV0dXJuIDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25p
eC9EcmFnSW1hZ2VOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJbWFn
ZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhYzg2MTJjMTNiZjU5ZjVlNTQzOTE2ZDEyODdmZWZjZjhi
ZjA1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFn
SW1hZ2VOaXguY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCisKKyNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRTaXplIGRyYWdJbWFnZVNp
emUoRHJhZ0ltYWdlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIElu
dFNpemUoMCwgMCk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2Uo
RHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNpemUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRv
RnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFn
ZUZyb21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENhY2hlZEltYWdlKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbml4L0dhbWVwYWRzTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTc3YzdjZTcxNmQzZmUwNzM4ZGRi
MWU5M2MxNTc4YTMwZDViZmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2FtZXBhZHMuaCIKKworI2lmIEVOQUJM
RShHQU1FUEFEKQorCisjaW5jbHVkZSAiR2FtZXBhZExpc3QuaCIKKyNpbmNsdWRlIDxwdWJsaWMv
UGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHYW1lcGFkTGlzdDsK
Kwordm9pZCBzYW1wbGVHYW1lcGFkcyhHYW1lcGFkTGlzdCogaW50bykKK3sKKyAgICBXZWJLaXQ6
OldlYkdhbWVwYWRzIGdhbWVwYWRzOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgp
LT5zYW1wbGVHYW1lcGFkcyhnYW1lcGFkcyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgV2ViS2l0OjpXZWJHYW1lcGFkczo6aXRlbXNMZW5ndGhDYXA7ICsraSkgeworICAgICAgICBX
ZWJLaXQ6OldlYkdhbWVwYWQmIHdlYkdhbWVwYWQgPSBnYW1lcGFkcy5pdGVtc1tpXTsKKyAgICAg
ICAgaWYgKGkgPCBnYW1lcGFkcy5sZW5ndGggJiYgd2ViR2FtZXBhZC5jb25uZWN0ZWQpIHsKKyAg
ICAgICAgICAgIFJlZlB0cjxHYW1lcGFkPiBnYW1lcGFkID0gaW50by0+aXRlbShpKTsKKyAgICAg
ICAgICAgIGlmICghZ2FtZXBhZCkKKyAgICAgICAgICAgICAgICBnYW1lcGFkID0gR2FtZXBhZDo6
Y3JlYXRlKCk7CisgICAgICAgICAgICBnYW1lcGFkLT5pZCh3ZWJHYW1lcGFkLmlkKTsKKyAgICAg
ICAgICAgIGdhbWVwYWQtPmluZGV4KGkpOworICAgICAgICAgICAgZ2FtZXBhZC0+dGltZXN0YW1w
KHdlYkdhbWVwYWQudGltZXN0YW1wKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmF4ZXMod2ViR2Ft
ZXBhZC5heGVzTGVuZ3RoLCB3ZWJHYW1lcGFkLmF4ZXMpOworICAgICAgICAgICAgZ2FtZXBhZC0+
YnV0dG9ucyh3ZWJHYW1lcGFkLmJ1dHRvbnNMZW5ndGgsIHdlYkdhbWVwYWQuYnV0dG9ucyk7Cisg
ICAgICAgICAgICBpbnRvLT5zZXQoaSwgZ2FtZXBhZCk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgaW50by0+c2V0KGksIDApOworICAgIH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzA3YzFm
NmJmMmYzNWU5ZTZkN2ViZmNjYzYyNjFiODdiZjE1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0
byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBF
bGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQoreworICAgIGNoYXIq
IGxvY2FsZURlZmF1bHQgPSBzZXRsb2NhbGUoTENfQ1RZUEUsIDApOworCisgICAgaWYgKCFsb2Nh
bGVEZWZhdWx0KQorICAgICAgICByZXR1cm4gU3RyaW5nKCJjIik7CisKKyAgICBTdHJpbmcgbG9j
YWxlID0gU3RyaW5nKGxvY2FsZURlZmF1bHQpOworICAgIGxvY2FsZS5yZXBsYWNlKCdfJywgJy0n
KTsKKyAgICBzaXplX3QgcG9zaXRpb24gPSBsb2NhbGUuZmluZCgnLicpOworICAgIGlmIChwb3Np
dGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgbG9jYWxlID0gbG9jYWxlLmxlZnQocG9zaXRpb24p
OworCisgICAgcmV0dXJuIGxvY2FsZTsKK30KKworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzOworICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHBsYXRmb3JtTGFu
Z3VhZ2UoKSk7CisgICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xM2VjM2I1ZWQwZTc3MDg1ZjMzNjI1NWUxOWViMDUwYjFhMmU5YWJjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0
cmluZ3NOaXguY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBD
aHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgSW5zdGl0dXRvIE5v
a2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0
cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KGtleSwgc3RybGVuKGtleSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZTI1MTRjNmJkM2I1N2FiZTViZGMzNjhhN2YyYzI4MTQ4ZmM0MzhmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmNw
cApAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5peEtleWJvYXJkVXRpbGl0aWVzLmgi
CisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2luZG93c0tleWJvYXJk
Q29kZXMuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IEtleU1hcDsKK3R5
cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGludD4gV2luZG93c0tleU1hcDsKK3R5cGVkZWYgSGFzaE1h
cDxpbnQsIGNvbnN0IGNoYXIqPiBLZXlDb21tYW5kTWFwOworCitzdGF0aWMgS2V5TWFwJiBrZXlN
YXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5TWFwLCBrZXlNYXAsICgpKTsKKyAg
ICByZXR1cm4ga2V5TWFwOworfQorCitzdGF0aWMgV2luZG93c0tleU1hcCYgd2luZG93c0tleU1h
cCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXaW5kb3dzS2V5TWFwLCB3aW5kb3dzS2V5
TWFwLCAoKSk7CisgICAgcmV0dXJuIHdpbmRvd3NLZXlNYXA7Cit9CisKK3N0YXRpYyBLZXlDb21t
YW5kTWFwJiBrZXlEb3duQ29tbWFuZHNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
S2V5Q29tbWFuZE1hcCwga2V5RG93bkNvbW1hbmRzTWFwLCAoKSk7CisgICAgcmV0dXJuIGtleURv
d25Db21tYW5kc01hcDsKK30KKworc3RhdGljIEtleUNvbW1hbmRNYXAmIGtleVByZXNzQ29tbWFu
ZHNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5Q29tbWFuZE1hcCwga2V5UHJl
c3NDb21tYW5kc01hcCwgKCkpOworICAgIHJldHVybiBrZXlQcmVzc0NvbW1hbmRzTWFwOworfQor
CitzdGF0aWMgaW5saW5lIHZvaWQgYWRkQ2hhcmFjdGVyc1RvS2V5TWFwKGNvbnN0IGNoYXIgZnJv
bSwgY29uc3QgY2hhciB0bykKK3sKKyAgICBmb3IgKGNoYXIgYyA9IGZyb207IGMgPD0gdG87IGMr
KykKKyAgICAgICAga2V5TWFwKCkuc2V0KFN0cmluZygmYywgMSksIFN0cmluZzo6Zm9ybWF0KCJV
KyUwNFgiLCBjKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzVG9XaW5L
ZXlNYXAoY29uc3QgY2hhciBmcm9tLCBjb25zdCBjaGFyIHRvLCBjb25zdCBpbnQgYmFzZUNvZGUp
Cit7CisgICAgaW50IGkgPSAwOworICAgIGZvciAoY2hhciBjID0gZnJvbTsgYyA8PSB0bzsgYysr
LCBpKyspCisgICAgICAgIHdpbmRvd3NLZXlNYXAoKS5zZXQoU3RyaW5nKCZjLCAxKSwgYmFzZUNv
ZGUgKyBpKTsKK30KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN0cmxLZXkgPSAxIDw8IDA7Citz
dGF0aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ID0gMSA8PCAxOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFNoaWZ0S2V5ID0gMSA8PCAyOworCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsKKyAgICB1bnNp
Z25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFy
KiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2lnbmVkIGNoYXJD
b2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsK
Kworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0geworICAgIHsg
VktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBTaGlmdEtleSwgICAgICAg
ICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfTEVGVCwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZExlZnQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hp
ZnRLZXksICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfUklHSFQsICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUmlnaHQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBTaGlmdEtleSwg
ICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5
IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAg
ICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVXAiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBTaGlm
dEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZVVw
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICAw
LCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlRG93
bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwg
ICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICAwLCAgICAgICAgICAgICAgICAgICJNb3Zl
UGFnZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVY
VCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
SE9NRSwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRNb2Rp
ZnlTZWxlY3Rpb24iICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAgICAgICAgICAg
ICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfSE9NRSwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50
QW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAgICAg
ICAgICAgIk1vdmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0VuZE9mTGluZUFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXksICAg
ICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19FTkQsICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVUb0VuZE9mRG9jdW1l
bnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisKKyAgICB7IFZLX0JBQ0ssICAgMCwgICAg
ICAgICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dh
cmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgMCwg
ICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29y
ZEJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwg
Q3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKworICAgIHsgJ0InLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dn
bGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0knLCAg
ICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorCisgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAgICAgICAgICAg
IkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAgICAg
ICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19UQUIsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIDAsICAgICAgICAgICAg
ICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19SRVRVUk4sIEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSwgICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgS2V5UHJl
c3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAgICAgICAg
ICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgMCwgICAgICAgICAgICAg
ICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5LCAgICAgICAgICAg
ICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyB2b2lkIGNyZWF0ZUtleURvd25Db21t
YW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
a2V5RG93bkVudHJpZXMpOyArK2kpCisgICAgICAgIGtleURvd25Db21tYW5kc01hcCgpLnNldChr
ZXlEb3duRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlEb3duRW50cmllc1tpXS52aXJ0
dWFsS2V5LCBrZXlEb3duRW50cmllc1tpXS5uYW1lKTsKK30KKworc3RhdGljIHZvaWQgY3JlYXRl
S2V5UHJlc3NDb21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9B
UlJBWV9MRU5HVEgoa2V5UHJlc3NFbnRyaWVzKTsgKytpKQorICAgICAgICBrZXlQcmVzc0NvbW1h
bmRzTWFwKCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQcmVz
c0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKK30KKworY29u
c3QgY2hhciogZ2V0S2V5RG93bkNvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50
KQoreworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5zaGlmdEtl
eSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LT5hbHRL
ZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQtPmN0cmxL
ZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQgbWFwS2V5ID0g
bW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQtPmtleUNvZGUoKTsKKyAgICBpZiAoIW1hcEtleSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFwKCkuaXNFbXB0eSgp
KQorICAgICAgICBjcmVhdGVLZXlEb3duQ29tbWFuZE1hcCgpOworCisgICAgcmV0dXJuIGtleURv
d25Db21tYW5kc01hcCgpLmdldChtYXBLZXkpOworfQorCitjb25zdCBjaGFyKiBnZXRLZXlQcmVz
c0NvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIHVuc2lnbmVk
IG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBtb2Rp
ZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwg
ZXZlbnQtPmNoYXJDb2RlKCk7CisgICAgaWYgKCFtYXBLZXkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgaWYgKGtleVByZXNzQ29tbWFuZHNNYXAoKS5pc0VtcHR5KCkpCisgICAgICAgIGNyZWF0
ZUtleVByZXNzQ29tbWFuZE1hcCgpOworCisgICAgcmV0dXJuIGtleVByZXNzQ29tbWFuZHNNYXAo
KS5nZXQobWFwS2V5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMjU2MTBjN2U5ZGUwZmMyZTgyZDg0NDQ4NTNiYzNlNzdiZjhkZWJhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmgK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBOaXhLZXlib2FyZFV0aWxpdGllc19oCisjZGVmaW5lIE5peEtleWJvYXJkVXRpbGl0
aWVzX2gKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgS2V5Ym9hcmRFdmVudDsKKworY29uc3QgY2hhciogZ2V0S2V5RG93
bkNvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqKTsKK2NvbnN0IGNoYXIqIGdldEtleVBy
ZXNzQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCopOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBOaXhLZXlib2FyZFV0aWxpdGllc19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgzY2RmNzRl
NjdhYmMyZmE4MWUwOWFmNjA2NzIyNmVkODU5YWZkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcApAQCAtMCwwICsxLDE2MSBA
QAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiAgQ29weXJp
Z2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZWJvYXJkKiBQYXN0ZWJvYXJkOjpn
ZW5lcmFsUGFzdGVib2FyZCgpCit7CisgICAgc3RhdGljIFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQg
PSBuZXcgUGFzdGVib2FyZCgpOworICAgIHJldHVybiBwYXN0ZWJvYXJkOworfQorCitQYXN0ZWJv
YXJkOjpQYXN0ZWJvYXJkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIFNtYXJ0UmVwbGFjZU9wdGlv
bikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
U2VsZWN0aW9uKFJhbmdlKiwgYm9vbCwgRnJhbWUqLCBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRl
eHRGb3JDbGlwYm9hcmQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVJbWFnZShO
b2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUNsaXBib2FyZChDbGlwYm9hcmQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBs
YWNlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50
KEZyYW1lKiwgUGFzc1JlZlB0cjxSYW5nZT4sIGJvb2wsIGJvb2wmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRl
eHQoRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKK30KKwor
UGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3sKKyAg
ICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisKKyNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFn
QW5kRHJvcCgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCitQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNv
bnN0IERyYWdEYXRhJikKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9
CisjZW5kaWYKKworYm9vbCBQYXN0ZWJvYXJkOjpoYXNEYXRhKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpjbGVhcihj
b25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBQYXN0
ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6d3JpdGVTdHJp
bmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworTGlzdEhhc2hTZXQ8U3RyaW5nPiBQYXN0ZWJvYXJk
Ojp0eXBlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTGlzdEhhc2hT
ZXQ8U3RyaW5nPigpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5h
bWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PigpOworfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK3ZvaWQgUGFzdGVib2FyZDo6c2V0
RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisjZW5kaWYKKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2
ZW50Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDBlZjZjMzQwYzk4MDNhZmVhZmFmZjAxNzdhNjcyM2Ez
MWFhOGY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBEaWVnbyBIaWRhbGdvIEMuIEdvbnphbGV6CisgKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEy
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgor
I2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0
ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBL
ZXlEb3duKTsKKyAgICBtX3R5cGUgPSB0eXBlOworCisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bikgeworICAgICAgICBtX3RleHQgPSBTdHJpbmcoKTsKKyAgICAgICAg
bV91bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fa2V5
SWRlbnRpZmllciA9IFN0cmluZygpOworICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
IDA7CisgICAgfQorfQorCitib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNM
b2NrU3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUo
Ym9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtl
eSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0S2V5ID0gZmFsc2U7CisgICAg
Y3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNlOworICAgIG1ldGFLZXkgPSBmYWxz
ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRm
b3JtU2NyZWVuTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybVNj
cmVlbk5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJmYjNhYzNlZDIxNDMwYWQxZWFhMmViZTQwYjk2Zjhm
NGE1MTA2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Q
bGF0Zm9ybVNjcmVlbk5peC5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVl
bi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
aW50IHNjcmVlbkhvcml6b250YWxEUEkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEUEkoV2lkZ2V0KikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuRGVw
dGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQor
CitpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCitib29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRn
ZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitG
bG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA3NjgpOworfQorCitGbG9hdFJlY3Qgc2Ny
ZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBzY3JlZW5SZWN0KHdpZGdldCk7Cit9CisKK3ZvaWQgc2NyZWVuQ29sb3JQ
cm9maWxlKENvbG9yUHJvZmlsZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Tb3VuZE5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUxYmJl
ZmZlNDljMDNkZjNkMTBlZDBmNGU1NjQ2MjhmOGFlNzI1YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Tb3VuZE5peC5jcHAKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTb3VuZC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIHN5c3RlbUJlZXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9XaWRnZXRO
aXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMThkMzA5NzNkMjAwNTQ2MmIyZThjZjMzNmZhMjJiMzBmZGY1NTRmYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCkBAIC0w
LDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIK
KyNpbmNsdWRlICJDdXJzb3IuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkludFJlY3Qu
aCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXaWRnZXQ6OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRnZXQp
CisgICAgOiBtX3BhcmVudCgwKQorICAgICwgbV93aWRnZXQoMCkKKyAgICAsIG1fc2VsZlZpc2li
bGUoZmFsc2UpCisgICAgLCBtX3BhcmVudFZpc2libGUoZmFsc2UpCisgICAgLCBtX2ZyYW1lKDAs
IDAsIDAsIDApCit7CisgICAgaW5pdCh3aWRnZXQpOworfQorCitXaWRnZXQ6On5XaWRnZXQoKQor
eworICAgIEFTU0VSVCghcGFyZW50KCkpOworfQorCitJbnRSZWN0IFdpZGdldDo6ZnJhbWVSZWN0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEZy
YW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0OworICAg
IFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3Vz
KGJvb2wpCit7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJz
b3IpCit7CisgICAgU2Nyb2xsVmlldyogdmlldyA9IHJvb3QoKTsKKyAgICBpZiAoIXZpZXcpCisg
ICAgICAgIHJldHVybjsKKyAgICB2aWV3LT5ob3N0V2luZG93KCktPnNldEN1cnNvcihjdXJzb3Ip
OworfQorCit2b2lkIFdpZGdldDo6c2hvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBXaWRnZXQ6OmhpZGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0SXNTZWxlY3RlZChib29s
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdmYTc3Mzg4ZGY3YzZhZmQ3MWFkMTI2Nzg2
OWVmMDUwNGI0NjZlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIGN1cnJlbnRTZWFyY2hMb2NhbGVJRCgpCit7CisgICAg
cmV0dXJuICIiOworfQorCitjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQor
eworICAgIHJldHVybiAiZW5fdXMiOworfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206241</attachid>
            <date>2013-07-08 07:21:11 -0700</date>
            <delta_ts>2013-07-10 13:47:16 -0700</delta_ts>
            <desc>New patch with corrections - no mention to GTK</desc>
            <filename>bug-118358-20130708111859.patch</filename>
            <type>text/plain</type>
            <size>117827</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdiODcxMDEyODY3ZGJhNTVkODE4NTE5
MzU0YmJkNTVlMWQyMWQ1ZTMuLmUzYWZiMDczZDI2MGQxZTllYzczZTE3YTI2MzlmNTEyMDAzMDcy
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMDUgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgRGVxdWU6OnJlbW92ZUxhc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMjk1M2RjYzI2YmQzYTZjNDVmOTMx
ODYwZmRiNGRiZDg4YmEyM2EzLi5lOGZlN2U2ZWU2NTQxN2RiNDY3YjdkZDdjMDgzNzJhMjFmYTFj
YzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTMtMDctMDUgIEx1Y2lhbm8gV29s
ZiAgPGx1Y2lhbm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWlu
ZyAtIEFkZGluZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5n
IGFsbCBmaWxlcyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFy
ZSByZWxhdGVkIHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhl
eSB3aWxsIGJlIHVwbG9hZGVkIG9uIGFub3RoZXIgcGF0Y2ggZHVyaW5nIHRoZQorICAgICAgICB1
cHN0cmVhbWluZyBwcm9jZXNzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNOaXguY3Nz
OiBBZGRlZC4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc05peEZ1bGxzY3JlZW4uY3NzOiBB
ZGRlZC4KKyAgICAgICAgKiBwYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9nbGliL0Vycm9yc0dMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9nbGliL0Vycm9yc0dMaWIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xp
Yi9GaWxlU3lzdGVtR0xpYi5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvTUlN
RVR5cGVSZWdpc3RyeUdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1J1
bkxvb3BHTGliLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9TaGFyZWRUaW1l
ckdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1RlbXBvcmFyeUxpbmtT
dHVicy5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRGcm9tQ3VycmVudEVHTC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHA6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25peC9EcmFnRGF0YU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9EcmFn
SW1hZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHA6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uaXgvU291bmROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uaXgvV2lkZ2V0Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9uaXgv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHA6IEFkZGVkLgorCiAyMDEzLTA3LTA4
ICDDgWTDoW0gS2FsbGFpICA8a2FkYW1AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0g
SW5jcmVtZW50YWwgYnVpbGQgZml4IGFmdGVyIHIxNDU3MTIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXguaCBiL1NvdXJjZS9XVEYvd3RmL25peC9GZWF0
dXJlRGVmaW5lc05peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzJhZDBlZDI2MTRhNDEyMjY2YmFiNjNkOTRm
YzJiZWVlM2E0NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVy
ZURlZmluZXNOaXguaApAQCAtMCwwICsxLDI4MSBAQAorLyoKKyogIENvcHlyaWdodCAoQykgMjAx
MyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisqCisqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLwor
CisjaWZuZGVmIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCisjZGVmaW5lIFdURl9GZWF0dXJlRGVm
aW5lc05peF9oCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfM0RfUkVOREVSSU5HKQorI2RlZmluZSBF
TkFCTEVfM0RfUkVOREVSSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JP
TExJTkcpCisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQkxPQikKKyNkZWZpbmUgRU5BQkxFX0JMT0Ig
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCisjZGVm
aW5lIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVmaW5lIEVOQUJMRV9DU1Mz
X1RFWFQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19FWENMVVNJT05TKQorI2RlZmluZSBFTkFCTEVf
Q1NTX0VYQ0xVU0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0ZJTFRF
UlMpCisjZGVmaW5lIEVOQUJMRV9DU1NfRklMVEVSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfU0VUKQorI2RlZmluZSBFTkFCTEVfQ1NT
X0lNQUdFX1NFVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfUkVHSU9OUykK
KyNkZWZpbmUgRU5BQkxFX0NTU19SRUdJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0NTU19TSEFERVJTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQURFUlMgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1ZBUklBQkxFUykKKyNkZWZpbmUgRU5BQkxFX0NTU19W
QVJJQUJMRVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkKKyNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfREVUQUlMU19FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREVUQUlMU19FTEVN
RU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNkZWZp
bmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9G
QVNUX01PQklMRV9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJ
TkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSUykKKyNkZWZpbmUgRU5B
QkxFX0ZJTFRFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlRQRElSKQorI2Rl
ZmluZSBFTkFCTEVfRlRQRElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxFX0dBTUVQQUQgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJM
RV9HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JQ09OREFU
QUJBU0UpCisjZGVmaW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKQorI2RlZmluZSBFTkFCTEVfSUZSQU1FX1NFQU1M
RVNTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpCisj
ZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSKQorI2RlZmluZSBFTkFCTEVfSU5T
UEVDVE9SX1NFUlZFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBU
X0RFQlVHR0VSKQorI2RlZmluZSBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykKKyNkZWZpbmUg
RU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OKQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX1ZJ
RVdQT1JUX0FEQVBUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9X
RUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UKQorI2RlZmluZSBFTkFCTEVfTExJTlQgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQorI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVO
QUJMRV9NRVRFUl9FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01JQ1JP
REFUQSkKKyNkZWZpbmUgRU5BQkxFX01JQ1JPREFUQSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKKyNkZWZpbmUgRU5BQkxFX05BVklHQVRP
Ul9DT05URU5UX1VUSUxTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFdPUktfSU5GTykKKyNkZWZpbmUgRU5BQkxFX05F
VFdPUktfSU5GTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTFVHSU5fUEFDS0FH
RV9TSU1QTEVfSEFTSCkKKyNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNI
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BPUFVQX01FTlVTKQorI2RlZmluZSBF
TkFCTEVfUE9QVVBfTUVOVVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJPR1JF
U1NfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisjZGVmaW5lIEVO
QUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DU1NfU0hBUEVTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQVBFUyAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9TSEFSRURfV09SS0VSUykKKyNkZWZpbmUgRU5BQkxFX1NIQVJF
RF9XT1JLRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NRTF9EQVRBQkFTRSkK
KyNkZWZpbmUgRU5BQkxFX1NRTF9EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9TVkcpCisjZGVmaW5lIEVOQUJMRV9TVkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfU1ZHX0ZPTlRTKQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQpCisjZGVmaW5lIEVOQUJMRV9UT1VD
SF9BREpVU1RNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5U
UykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9VTkRPX01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9VTkRPX01BTkFHRVIgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCisjZGVmaW5lIEVOQUJMRV9WSURFTyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKQorI2Rl
ZmluZSBFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfU09DS0VUUykKKyNkZWZpbmUgRU5BQkxFX1dF
Ql9TT0NLRVRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9USU1JTkcpCisj
ZGVmaW5lIEVOQUJMRV9XRUJfVElNSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9XT1JLRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKQorI2RlZmluZSBFTkFCTEVfWEhSX1JFU1BPTlNF
X0JMT0IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfWFNMVCkKKyNkZWZpbmUgRU5B
QkxFX1hTTFQgMQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
bml4L1BsYXRmb3JtTml4LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MTBiZTQ0MzdhNmNkYzE2MjZhNjQzNTYyMTcyY2IzZmE4MWRlYmRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgKQEAgLTAsMCArMSw2
MyBAQAorLyoKKyogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdURl9QbGF0Zm9ybU5peF9o
CisjZGVmaW5lIFdURl9QbGF0Zm9ybU5peF9oCisKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX05JWCAx
CisjZGVmaW5lIEVOQUJMRV9HTE9CQUxfRkFTVE1BTExPQ19ORVcgMAorCisjZGVmaW5lIFdURl9V
U0VfM0RfR1JBUEhJQ1MgMQorI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
IDEKKyNkZWZpbmUgV1RGX1VTRV9DQUlSTyAxCisjZGVmaW5lIFdURl9VU0VfQ09PUkRJTkFURURf
R1JBUEhJQ1MgMQorI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMg
MQorI2RlZmluZSBXVEZfVVNFX0ZSRUVUWVBFIDEKKyNkZWZpbmUgV1RGX1VTRV9HTElCIDEKKyNk
ZWZpbmUgV1RGX1VTRV9IQVJGQlVaWiAxCisjZGVmaW5lIFdURl9VU0VfSEFSRkJVWlpfTkcgMQor
I2RlZmluZSBXVEZfVVNFX0lDVV9VTklDT0RFIDEKKyNkZWZpbmUgV1RGX1VTRV9JT1NVUkZBQ0Vf
Q0FOVkFTX0JBQ0tJTkdfU1RPUkUgMQorI2RlZmluZSBXVEZfVVNFX0xFVkVMREIgMQorI2RlZmlu
ZSBXVEZfVVNFX1BUSFJFQURTIDEKKyNkZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUiAxCisj
ZGVmaW5lIFdURl9VU0VfVEVYVFVSRV9NQVBQRVJfR0wgMQorI2RlZmluZSBXVEZfVVNFX1RJTEVE
X0JBQ0tJTkdfU1RPUkUgMQorI2RlZmluZSBXVEZfVVNFX1VOSVhfRE9NQUlOX1NPQ0tFVFMgMQor
CisjaWYgIWRlZmluZWQoV1RGX1VTRV9PUEVOR0xfRVNfMikgfHwgIVdURl9VU0VfT1BFTkdMX0VT
XzIKKyNkZWZpbmUgV1RGX1VTRV9PUEVOR0wgMQorI2RlZmluZSBXVEZfVVNFX0dMWCAxCisjZGVm
aW5lIFdURl9QTEFURk9STV9YMTEgMQorI2RlZmluZSBXVEZfVVNFX0dSQVBISUNTX1NVUkZBQ0Ug
MQorI2Vsc2UKKyNkZWZpbmUgV1RGX1VTRV9FR0wgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChX
VEZfVVNFX0NVUkwpIHx8ICFXVEZfVVNFX0NVUkwKKyNkZWZpbmUgV1RGX1VTRV9TT1VQIDEKKyNl
bmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRy
b2xzTml4LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNWIzNjY1MjdiN2UwNTgxOTRjNTQxNzE1ZWY1Nzg4ZWQwMjc3NDliCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCkBAIC0w
LDAgKzEsMjAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDExIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMuIEV4
dGVuZHMgbWVkaWFDb250cm9scy5jc3MgKi8KKworYXVkaW8geworICAgIHdpZHRoOiAzMDBweDsK
KyAgICBoZWlnaHQ6IDIwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBh
bmVsLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTog
LXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13
ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
KyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgYm90dG9tOiAwOworICAgIHdpZHRoOiAxMDAl
OworICAgIHotaW5kZXg6IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBoZWlnaHQ6IDIw
cHg7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKK3ZpZGVvOi13ZWJraXQtZnVsbC1wYWdl
LW1lZGlhOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBib3R0b206IDBweDsK
K30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG1lZGlhLW11dGUtYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdp
ZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgei1pbmRleDogMjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRl
cjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBs
YXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXBsYXktYnV0dG9uOwor
ICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDog
MjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlh
bDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdGltZWxpbmUtY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1l
bGluZS1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY29udHJvbHMt
YmFja2dyb3VuZDsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1v
cmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAt
d2Via2l0LWJveC1wYWNrOiBlbmQ7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICAtd2Vi
a2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGhlaWdodDogMjBweDsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKKyAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OworICAgIC13ZWJraXQtdXNlci1zZWxl
Y3Q6IG5vbmU7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgaGVpZ2h0OiAyMHB4Owor
CisgICAgcGFkZGluZzogNHB4OworCisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQt
c2l6ZTogMTBweDsKKworICAgIGNvbG9yOiBibGFjazsKKyAgICBsZXR0ZXItc3BhY2luZzogbm9y
bWFsOworICAgIHdvcmQtc3BhY2luZzogbm9ybWFsOworICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7
CisgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CisgICAgdGV4dC1pbmRlbnQ6IDA7CisgICAgdGV4
dC1zaGFkb3c6IG5vbmU7CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGZvbnQtc3R5
bGU6IG5vcm1hbDsKKyAgICBmb250LXdlaWdodDogbm9ybWFsOworICAgIGZvbnQtZmFtaWx5OiBz
ZXJpZjsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmct
ZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlz
cGxheSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogMjBweDsKKyAg
ICBwYWRkaW5nOiAwcHggMnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAg
Ym9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlh
bDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250
YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFp
bmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFp
bmVyOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdp
ZHRoOiAyMHB4OworICAgIGJvdHRvbTogMjBweDsKKyAgICB6LWluZGV4OiAxOworfQorCithdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1l
ZGlhLXZvbHVtZS1zbGlkZXI7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsK
KyAgICBtYXJnaW46IGluaXRpYWw7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFj
ay1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vlay1iYWNrLWJ1dHRv
bjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWln
aHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGlu
aXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXNlZWstZm9yd2FyZC1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vl
ay1mb3J3YXJkLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDog
MjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsK
KyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS1mdWxsc2NyZWVuLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
aW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisK
K2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24sIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVy
bi10by1yZWFsdGltZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVy
bi10by1yZWFsdGltZS1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVy
aXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2Fw
dGlvbnMtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2Vk
LWNhcHRpb25zLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS10b2dnbGUt
Y2xvc2VkLWNhcHRpb25zLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3
aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5p
dGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24sIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24gewor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbjsK
KyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAg
Ym9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMz
ZDcwN2RjYWVlZmMzZWJkMDVhY2NhNmYwNTBkMzQ3ODNmOWY2NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKQEAgLTAs
MCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMgZm9yIGZ1bGxzY3JlZW4u
ICovCisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAg
LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25l
OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0b206IDA7CisgICAgd2lkdGg6IDEw
MCU7CisgICAgei1pbmRleDogMDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIGhlaWdodDog
MjBweDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KKwordmlkZW86LXdlYmtpdC1mdWxsLXBh
Z2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGRpc3BsYXk6IG5v
bmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKKyAg
ICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5
LWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRvbjsKKyAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIw
cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7
CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jb250
cm9scy1iYWNrZ3JvdW5kOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQt
Ym94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwor
ICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAg
IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgaGVpZ2h0OiAyMHB4OworfQorCit2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CisgICAgLXdl
YmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheTsKKyAgICAtd2Via2l0
LXVzZXItc2VsZWN0OiBub25lOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBoZWln
aHQ6IDIwcHg7CisgICAgcGFkZGluZzogNHB4OworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAg
ICBmb250LXNpemU6IDEwcHg7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRp
bWUtcmVtYWluaW5nLWRpc3BsYXkgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1lZGlhLXNsaWRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJv
eC1mbGV4OiAxOworICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAwcHggMnB4OworICAg
IGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNv
bG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKwordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CisgICAgZGlzcGxheTogbm9u
ZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7Cisg
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyOworICAgIGRpc3BsYXk6
IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0
b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXNlZWstZm9yd2FyZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIHsKKyAgICBkaXNwbGF5
OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9u
IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRv
biB7CisgICAgZGlzcGxheTogbm9uZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVu
dEhhbmRsZXJOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxOTc0MTg4YjAxZGZlNjMyYjZkNWM3ZDA2MTgx
ZWQ0MTU3ZTRhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9F
dmVudEhhbmRsZXJOaXguY3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJ
TmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAw
OSwyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDks
MjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKworI2luY2x1ZGUgIkNsaXBib2Fy
ZC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisj
aW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5o
IgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQorY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdE
ZWxheSA9IDAuMDsKKyNlbmRpZgorCitib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNv
bnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBw
YWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+
c2V0Rm9jdXNlZEZyYW1lKG1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dp
ZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYgZXZlbnQpCit7CisgICAgUmVuZGVyT2JqZWN0KiB0YXJnZXQgPSBldmVudC50YXJnZXRO
b2RlKCkgPyBldmVudC50YXJnZXROb2RlKCktPnJlbmRlcmVyKCkgOiAwOworCisgICAgaWYgKCF0
YXJnZXQgfHwgIXRhcmdldC0+aXNXaWRnZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHN0YXRpY19jYXN0PFJlbmRlcldp
ZGdldCo+KHRhcmdldCktPndpZGdldCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NX
aWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KQor
eworICAgIHJldHVybiBwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChyZW5kZXJXaWRnZXQtPndp
ZGdldCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lk
Z2V0KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAg
QVNTRVJUKHdpZGdldCk7CisgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7Cit9
CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50
SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAoreworICAgIHJldHVybiBD
bGlwYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Cit9CisjZW5kaWYKKworYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHN1YmZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KG1ldi5ldmVudCgpKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3Vi
ZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUs
IEhpdFRlc3RSZXN1bHQqIGhvdmVyZWROb2RlKQoreworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRs
ZXIoKS0+aGFuZGxlTW91c2VNb3ZlRXZlbnQobWV2LmV2ZW50KCksIGhvdmVyZWROb2RlKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VF
dmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSog
c3ViZnJhbWUpCit7CisgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVJl
bGVhc2VFdmVudChtZXYuZXZlbnQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Vuc2lnbmVk
IEV2ZW50SGFuZGxlcjo6YWNjZXNzS2V5TW9kaWZpZXJzKCkKK3sKKyAgICByZXR1cm4gUGxhdGZv
cm1FdmVudDo6QWx0S2V5OworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2xpYi9FcnJvcnNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXJy
b3JzR0xpYi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI1OWIxZmEyM2QwYTk4NGRkMmU0MWIyNmVjOTcwMjc3
ZDg2NWRlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIv
RXJyb3JzR0xpYi5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzR0xpYi5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIlByaW50Q29udGV4dC5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCkuc3Ry
aW5nKCksIEFTQ0lJTGl0ZXJhbCgiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJv
ckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCBBU0NJSUxp
dGVyYWwoIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKK30K
KworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5
LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCksIEFTQ0lJ
TGl0ZXJhbCgiVVJMIGNhbm5vdCBiZSBzaG93biIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5
RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLnN0
cmluZygpLCBBU0NJSUxpdGVyYWwoIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIikpOworfQor
CitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
UG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJsKCkuc3Ry
aW5nKCksIEFTQ0lJTGl0ZXJhbCgiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlNRSB0eXBl
IGNhbm5vdCBiZSBzaG93biIpKTsKK30KKworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4
aXN0LCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgQVNDSUlMaXRlcmFsKCJGaWxlIGRvZXMgbm90
IGV4aXN0IikpOworfQorCitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5QbHVnaW4sIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQsIHJlc3Bv
bnNlLnVybCgpLnN0cmluZygpLCBBU0NJSUxpdGVyYWwoIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2Fk
IikpOworfQorCitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291
cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxp
bmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworfQorCitSZXNv
dXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5E
b3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCkuc3Ry
aW5nKCksIEFTQ0lJTGl0ZXJhbCgiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOworfQor
CitSZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3Rp
bmF0aW9uLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgZXJyb3JNZXNzYWdlKTsKK30KKworUmVz
b3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0LCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1l
bnRMb2FkZXIgPSBwcmludENvbnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpOworCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRF
cnJvckdlbmVyYWwsIGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgpIDogS1VS
TCgpLCBlcnJvck1lc3NhZ2UpOworfQorCitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVy
cm9yKGNvbnN0IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0KQoreworICAgIERvY3VtZW50TG9h
ZGVyKiBkb2N1bWVudExvYWRlciA9IHByaW50Q29udGV4dC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRv
Y3VtZW50TG9hZGVyKCk7CisKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBy
aW50LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50
TG9hZGVyLT51cmwoKSA6IEtVUkwoKSwgQVNDSUlMaXRlcmFsKCJQcmludGVyIG5vdCBmb3VuZCIp
KTsKK30KKworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBQcmlu
dENvbnRleHQqIHByaW50Q29udGV4dCkKK3sKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRM
b2FkZXIgPSBwcmludENvbnRleHQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigp
OworCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJv
ckludmFsaWRQYWdlUmFuZ2UsIGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnVybCgp
IDogS1VSTCgpLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgcGFnZSByYW5nZSIpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9FcnJvcnNHTGliLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Vycm9yc0dM
aWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMjUxNDM2N2JiZmU5M2VmNDEwNDJkOTU5ZDZiYzUwNzFkMTM3NTli
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FcnJvcnNH
TGliLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEVycm9yc0dMaWJfaAorI2RlZmluZSBFcnJvcnNHTGliX2gKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBy
aW50Q29udGV4dDsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworCitzdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFp
bk5ldHdvcmtbXSA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOworc3RhdGljIGNvbnN0IGNoYXIgZXJy
b3JEb21haW5Qb2xpY3lbXSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7CitzdGF0aWMgY29uc3QgY2hh
ciBlcnJvckRvbWFpblBsdWdpbltdID0gIldlYktpdFBsdWdpbkVycm9yIjsKK3N0YXRpYyBjb25z
dCBjaGFyIGVycm9yRG9tYWluRG93bmxvYWRbXSA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKK3N0
YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUHJpbnRbXSA9ICJXZWJLaXRQcmludEVycm9yIjsK
KworZW51bSBOZXR3b3JrRXJyb3IgeworICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKKyAg
ICBOZXR3b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDAsCisgICAgTmV0d29ya0Vycm9yVW5rbm93blBy
b3RvY29sID0gMzAxLAorICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKKyAgICBOZXR3
b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzCit9OworCisvLyBTeW5jJ2Qgd2l0aCBNYWMn
cyBXZWJLaXQgRXJyb3JzIGF0OgorLy8gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRFcnJv
cnNbUHJpdmF0ZV0uaAorZW51bSBQb2xpY3lFcnJvciB7CisgICAgUG9saWN5RXJyb3JGYWlsZWQg
PSAxOTksCisgICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCisgICAgUG9s
aWN5RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAorICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50
ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0ID0gMTAzCit9OworCitlbnVtIFBsdWdpbkVycm9yIHsKKyAgICBQbHVnaW5F
cnJvckZhaWxlZCA9IDI5OSwKKyAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAs
CisgICAgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAorICAgIFBsdWdpbkVycm9y
SmF2YVVuYXZhaWxhYmxlID0gMjAyLAorICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxl
ZCA9IDIwMywKKyAgICBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Cit9OworCitlbnVt
IERvd25sb2FkRXJyb3IgeworICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAorICAgIERv
d25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIgPSA0MDAsCisgICAgRG93bmxvYWRFcnJvckRlc3Rp
bmF0aW9uID0gNDAxCit9OworCitlbnVtIFByaW50RXJyb3IgeworICAgIFByaW50RXJyb3JHZW5l
cmFsID0gNTk5LAorICAgIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCisgICAgUHJp
bnRFcnJvckludmFsaWRQYWdlUmFuZ2UgPSA1MDEKK307CisKK1Jlc291cmNlRXJyb3IgY2FuY2Vs
bGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VS
TEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitS
ZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBS
ZXNvdXJjZUVycm9yJik7CitSZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3Rp
bmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKTsKK1Jlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBQcmludENvbnRleHQqLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3Vu
ZEVycm9yKGNvbnN0IFByaW50Q29udGV4dCopOworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJh
bmdlVG9QcmludChjb25zdCBQcmludENvbnRleHQqKTsKKworfQorCisjZW5kaWYgLy8gRXJyb3Jz
R0xpYl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0
ZW1HTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdMaWIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjczZmJiMGYyYTY2NGI1Y2Y0YzhhZmE0N2RjYjY3NWVjZDZiZTNlY2QK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0
ZW1HTGliLmNwcApAQCAtMCwwICsxLDMzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IENv
bGxhYm9yYSwgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2Jp
bGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworI2luY2x1ZGUgIkZpbGVNZXRhZGF0YS5oIgorI2luY2x1
ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2lu
Y2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
bGliVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIE9uIGxp
bnV4IGZpbGUgbmFtZXMgYXJlIGp1c3QgcmF3IGJ5dGVzLCBzbyBhbHNvIHN0cmluZ3MgdGhhdCBj
YW5ub3QgYmUgZW5jb2RlZCBpbiBhbnkgd2F5CisvLyBhcmUgdmFsaWQgZmlsZSBuYW1lcy4gVGhp
cyBtZWFuIHRoYXQgd2UgY2Fubm90IGp1c3Qgc3RvcmUgYSBmaWxlIG5hbWUgYXMtaXMgaW4gYSBT
dHJpbmcKKy8vIGJ1dCB3ZSBoYXZlIHRvIGVzY2FwZSBpdC4KKy8vIE9uIFdpbmRvd3MgdGhlIEdM
aWIgZmlsZSBuYW1lIGVuY29kaW5nIGlzIGFsd2F5cyBVVEYtOCBzbyB3ZSBjYW4gb3B0aW1pemUg
dGhpcyBjYXNlLgorU3RyaW5nIGZpbGVuYW1lVG9TdHJpbmcoY29uc3QgY2hhciogZmlsZW5hbWUp
Cit7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
R093blB0cjxnY2hhcj4gZXNjYXBlZFN0cmluZyhnX3VyaV9lc2NhcGVfc3RyaW5nKGZpbGVuYW1l
LCAiLzoiLCBmYWxzZSkpOworICAgIHJldHVybiBlc2NhcGVkU3RyaW5nLmdldCgpOworfQorCitD
U3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHBhdGgpCit7Cisg
ICAgR093blB0cjxnY2hhcj4gZmlsZW5hbWUoZ191cmlfdW5lc2NhcGVfc3RyaW5nKHBhdGgudXRm
OCgpLmRhdGEoKSwgMCkpOworICAgIHJldHVybiBmaWxlbmFtZS5nZXQoKTsKK30KKworLy8gQ29u
dmVydHMgYSBzdHJpbmcgdG8gc29tZXRoaW5nIHN1aXRhYmxlIHRvIGJlIGRpc3BsYXllZCB0byB0
aGUgdXNlci4KK1N0cmluZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdHJp
bmcpOworICAgIEdPd25QdHI8Z2NoYXI+IGRpc3BsYXkoZ19maWxlbmFtZV90b191dGY4KGZpbGVu
YW1lLmRhdGEoKSwgMCwgMCwgMCwgMCkpOworICAgIGlmICghZGlzcGxheSkKKyAgICAgICAgcmV0
dXJuIHN0cmluZzsKKworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGRpc3BsYXkuZ2V0KCkp
OworfQorCitib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihwYXRoKTsKKworICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJl
c3VsdCA9IGdfZmlsZV90ZXN0KGZpbGVuYW1lLmRhdGEoKSwgR19GSUxFX1RFU1RfRVhJU1RTKTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBDU3RyaW5nIGZpbGVuYW1l
ID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworCisgICAgaWYgKCFmaWxlbmFtZS5p
c051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gIWdfcmVtb3ZlKGZpbGVuYW1lLmRhdGEoKSk7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCkKK3sKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIENTdHJpbmcg
ZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisKKyAgICBpZiAoIWZp
bGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXN1bHQgPSAhZ19ybWRpcihmaWxlbmFtZS5kYXRh
KCkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBT
dHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKK3sKKyAgICBDU3RyaW5nIGZpbGVu
YW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1N0YXRCdWYgc3RhdFJlc3Vs
dDsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZS5kYXRhKCksICZzdGF0UmVzdWx0
KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXN1bHRT
aXplID0gc3RhdFJlc3VsdC5zdF9zaXplOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIGdl
dEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2RpZmll
ZFRpbWUpCit7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CisgICAgZ2ludCByZXN1bHQgPSBnX3N0YXQo
ZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3VsdCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgbW9kaWZpZWRUaW1lID0gc3RhdFJlc3VsdC5zdF9tdGltZTsK
KyAgICByZXR1cm4gdHJ1ZTsKKworfQorCitib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJp
bmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCit7CisgICAgQ1N0cmluZyBmaWxlbmFt
ZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNO
dWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN0cnVjdCBzdGF0IHN0YXRSZXN1
bHQ7CisgICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3Vs
dCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWV0YWRh
dGEubW9kaWZpY2F0aW9uVGltZSA9IHN0YXRSZXN1bHQuc3RfbXRpbWU7CisgICAgbWV0YWRhdGEu
bGVuZ3RoID0gc3RhdFJlc3VsdC5zdF9zaXplOworICAgIG1ldGFkYXRhLnR5cGUgPSBTX0lTRElS
KHN0YXRSZXN1bHQuc3RfbW9kZSkgPyBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3RvcnkgOiBGaWxl
TWV0YWRhdGE6OlR5cGVGaWxlOworICAgIHJldHVybiB0cnVlOworCit9CisKK1N0cmluZyBwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNv
bXBvbmVudCkKK3sKKyAgICBpZiAocGF0aC5lbmRzV2l0aChHX0RJUl9TRVBBUkFUT1JfUykpCisg
ICAgICAgIHJldHVybiBwYXRoICsgY29tcG9uZW50OworICAgIHJldHVybiBwYXRoICsgR19ESVJf
U0VQQVJBVE9SX1MgKyBjb21wb25lbnQ7Cit9CisKK2Jvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNv
bnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgZ2ludCByZXN1bHQgPSBnX21rZGlyX3dpdGhfcGFyZW50cyhm
aWxlbmFtZS5kYXRhKCksIFNfSVJXWFUpOworCisgICAgcmV0dXJuICFyZXN1bHQ7Cit9CisKK1N0
cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCit7CisgICAgcmV0dXJuIGZpbGVuYW1lVG9TdHJpbmco
Z19nZXRfaG9tZV9kaXIoKSk7Cit9CisKK1N0cmluZyBwYXRoR2V0RmlsZU5hbWUoY29uc3QgU3Ry
aW5nJiBwYXRoTmFtZSkKK3sKKyAgICBpZiAocGF0aE5hbWUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gcGF0aE5hbWU7CisKKyAgICBDU3RyaW5nIHRtcEZpbGVuYW1lID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHBhdGhOYW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBiYXNlTmFtZShnX3Bh
dGhfZ2V0X2Jhc2VuYW1lKHRtcEZpbGVuYW1lLmRhdGEoKSkpOworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KGJhc2VOYW1lLmdldCgpKTsKK30KKworQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVj
dG9yeVBhdGgoKQoreworICAgIENTdHJpbmcgcGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0
aCgpOworICAgIGlmICghcGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHBhdGg7CisKKyAg
ICAvLyBJZiB0aGUgYWJvdmUgZmFpbHMsIGNoZWNrIHRoZSBQQVRIIGVudiB2YXJpYWJsZS4KKyAg
ICBHT3duUHRyPGNoYXI+IGN1cnJlbnRFeGVQYXRoKGdfZmluZF9wcm9ncmFtX2luX3BhdGgoZ19n
ZXRfcHJnbmFtZSgpKSk7CisgICAgaWYgKCFjdXJyZW50RXhlUGF0aC5nZXQoKSkKKyAgICAgICAg
cmV0dXJuIENTdHJpbmcoKTsKKworICAgIEdPd25QdHI8Y2hhcj4gZGlybmFtZShnX3BhdGhfZ2V0
X2Rpcm5hbWUoY3VycmVudEV4ZVBhdGguZ2V0KCkpKTsKKyAgICByZXR1cm4gZGlybmFtZS5nZXQo
KTsKK30KKworQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCkKK3sKKyAgICBzdGF0aWMgQ1N0
cmluZyBjYWNoZWRQYXRoOworICAgIGlmICghY2FjaGVkUGF0aC5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIGNhY2hlZFBhdGg7CisKKyNpZiBQTEFURk9STShOSVgpCisgICAgR093blB0cjxnY2hh
cj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdG5peCIsIE5VTEwp
KTsKKyNlbmRpZgorCisgICAgY2FjaGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOworICAgIHJldHVy
biBjYWNoZWRQYXRoOworfQorCit1aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29u
c3QgY2hhciogcGF0aCkKK3sKKyAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdf
ZmlsZV9uZXdfZm9yX3BhdGgocGF0aCkpOworICAgIEdSZWZQdHI8R0ZpbGVJbmZvPiBmaWxlSW5m
byA9IGFkb3B0R1JlZihnX2ZpbGVfcXVlcnlfZmlsZXN5c3RlbV9pbmZvKGZpbGUuZ2V0KCksIEdf
RklMRV9BVFRSSUJVVEVfRklMRVNZU1RFTV9GUkVFLCAwLCAwKSk7CisgICAgaWYgKCFmaWxlSW5m
bykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gZ19maWxlX2luZm9fZ2V0X2F0dHJp
YnV0ZV91aW50NjQoZmlsZUluZm8uZ2V0KCksIEdfRklMRV9BVFRSSUJVVEVfRklMRVNZU1RFTV9G
UkVFKTsKK30KKworU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQorewor
ICAgIC8vIE5vIG51bGwgY2hlY2tpbmcgbmVlZGVkCisgICAgR093blB0cjxjaGFyPiBkaXJuYW1l
KGdfcGF0aF9nZXRfZGlybmFtZShmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCkuZGF0YSgp
KSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoZGlybmFtZS5nZXQoKSk7Cit9CisKK1Zl
Y3RvcjxTdHJpbmc+IGxpc3REaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJp
bmcmIGZpbHRlcikKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzOworCisgICAgQ1N0cmlu
ZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBHRGlyKiBk
aXIgPSBnX2Rpcl9vcGVuKGZpbGVuYW1lLmRhdGEoKSwgMCwgMCk7CisgICAgaWYgKCFkaXIpCisg
ICAgICAgIHJldHVybiBlbnRyaWVzOworCisgICAgR1BhdHRlcm5TcGVjKiBwc3BlYyA9IGdfcGF0
dGVybl9zcGVjX25ldygoZmlsdGVyLnV0ZjgoKSkuZGF0YSgpKTsKKyAgICB3aGlsZSAoY29uc3Qg
Y2hhciogbmFtZSA9IGdfZGlyX3JlYWRfbmFtZShkaXIpKSB7CisgICAgICAgIGlmICghZ19wYXR0
ZXJuX21hdGNoX3N0cmluZyhwc3BlYywgbmFtZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBHT3duUHRyPGdjaGFyPiBlbnRyeShnX2J1aWxkX2ZpbGVuYW1lKGZpbGVuYW1lLmRh
dGEoKSwgbmFtZSwgTlVMTCkpOworICAgICAgICBlbnRyaWVzLmFwcGVuZChmaWxlbmFtZVRvU3Ry
aW5nKGVudHJ5LmdldCgpKSk7CisgICAgfQorICAgIGdfcGF0dGVybl9zcGVjX2ZyZWUocHNwZWMp
OworICAgIGdfZGlyX2Nsb3NlKGRpcik7CisKKyAgICByZXR1cm4gZW50cmllczsKK30KKworU3Ry
aW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVI
YW5kbGUmIGhhbmRsZSkKK3sKKyAgICBHT3duUHRyPGdjaGFyPiBmaWxlbmFtZShnX3N0cmR1cF9w
cmludGYoIiVzJXMiLCBwcmVmaXgudXRmOCgpLmRhdGEoKSwgY3JlYXRlQ2Fub25pY2FsVVVJRFN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHT3duUHRyPGdjaGFyPiB0ZW1wUGF0aChnX2J1
aWxkX2ZpbGVuYW1lKGdfZ2V0X3RtcF9kaXIoKSwgZmlsZW5hbWUuZ2V0KCksIE5VTEwpKTsKKyAg
ICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgodGVt
cFBhdGguZ2V0KCkpKTsKKworICAgIGhhbmRsZSA9IGdfZmlsZV9jcmVhdGVfcmVhZHdyaXRlKGZp
bGUuZ2V0KCksIEdfRklMRV9DUkVBVEVfTk9ORSwgMCwgMCk7CisgICAgaWYgKCFpc0hhbmRsZVZh
bGlkKGhhbmRsZSkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCh0ZW1wUGF0aC5nZXQoKSk7Cit9CisKK1BsYXRmb3JtRmlsZUhhbmRsZSBvcGVu
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQoreworICAgIENTdHJp
bmcgZnNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgaWYgKGZzUmVw
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKwor
ICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChm
c1JlcC5kYXRhKCkpKTsKKyAgICBHRmlsZUlPU3RyZWFtKiBpb1N0cmVhbSA9IDA7CisgICAgaWYg
KG1vZGUgPT0gT3BlbkZvclJlYWQpCisgICAgICAgIGlvU3RyZWFtID0gZ19maWxlX29wZW5fcmVh
ZHdyaXRlKGZpbGUuZ2V0KCksIDAsIDApOworICAgIGVsc2UgaWYgKG1vZGUgPT0gT3BlbkZvcldy
aXRlKSB7CisgICAgICAgIGlmIChnX2ZpbGVfdGVzdChmc1JlcC5kYXRhKCksIHN0YXRpY19jYXN0
PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfUkVHVUxBUikp
KQorICAgICAgICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfb3Blbl9yZWFkd3JpdGUoZmlsZS5nZXQo
KSwgMCwgMCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlvU3RyZWFtID0gZ19maWxlX2Ny
ZWF0ZV9yZWFkd3JpdGUoZmlsZS5nZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAwKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gaW9TdHJlYW07Cit9CisKK3ZvaWQgY2xvc2VGaWxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSYgaGFuZGxlKQoreworICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBnX2lvX3N0cmVhbV9jbG9zZShHX0lPX1NUUkVBTShoYW5k
bGUpLCAwLCAwKTsKKyAgICBnX29iamVjdF91bnJlZihoYW5kbGUpOworICAgIGhhbmRsZSA9IGlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Cit9CisKK2xvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbiBvcmln
aW4pCit7CisgICAgR1NlZWtUeXBlIHNlZWtUeXBlID0gR19TRUVLX1NFVDsKKyAgICBzd2l0Y2gg
KG9yaWdpbikgeworICAgIGNhc2UgU2Vla0Zyb21CZWdpbm5pbmc6CisgICAgICAgIHNlZWtUeXBl
ID0gR19TRUVLX1NFVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWVrRnJvbUN1cnJlbnQ6
CisgICAgICAgIHNlZWtUeXBlID0gR19TRUVLX0NVUjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBTZWVrRnJvbUVuZDoKKyAgICAgICAgc2Vla1R5cGUgPSBHX1NFRUtfRU5EOworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICBpZiAoIWdfc2Vla2FibGVfc2VlayhHX1NFRUtBQkxFKGdfaW9fc3RyZWFtX2dldF9p
bnB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIHNlZWtUeXBlLCAwLCAw
KSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiBnX3NlZWthYmxlX3RlbGwoR19TRUVL
QUJMRShnX2lvX3N0cmVhbV9nZXRfaW5wdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkpKSk7
Cit9CisKK2ludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICBn
X291dHB1dF9zdHJlYW1fd3JpdGVfYWxsKGdfaW9fc3RyZWFtX2dldF9vdXRwdXRfc3RyZWFtKEdf
SU9fU1RSRUFNKGhhbmRsZSkpLCBkYXRhLCBsZW5ndGgsICZieXRlc1dyaXR0ZW4sIDAsIDApOwor
ICAgIHJldHVybiBieXRlc1dyaXR0ZW47Cit9CisKK2ludCByZWFkRnJvbUZpbGUoUGxhdGZvcm1G
aWxlSGFuZGxlIGhhbmRsZSwgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBHT3duUHRy
PEdFcnJvcj4gZXJyb3I7CisgICAgZG8geworICAgICAgICBnc3NpemUgYnl0ZXNSZWFkID0gZ19p
bnB1dF9zdHJlYW1fcmVhZChnX2lvX3N0cmVhbV9nZXRfaW5wdXRfc3RyZWFtKEdfSU9fU1RSRUFN
KGhhbmRsZSkpLCBkYXRhLCBsZW5ndGgsIDAsICZlcnJvci5vdXRQdHIoKSk7CisgICAgICAgIGlm
IChieXRlc1JlYWQgPj0gMCkKKyAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQ7CisgICAgfSB3
aGlsZSAoZXJyb3IgJiYgZXJyb3ItPmNvZGUgPT0gR19GSUxFX0VSUk9SX0lOVFIpOworICAgIHJl
dHVybiAtMTsKK30KKworYm9vbCB1bmxvYWRNb2R1bGUoUGxhdGZvcm1Nb2R1bGUgbW9kdWxlKQor
eworICAgIHJldHVybiBnX21vZHVsZV9jbG9zZShtb2R1bGUpOworfQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9NSU1FVHlwZVJlZ2lzdHJ5R0xpYi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL01JTUVUeXBlUmVnaXN0cnlHTGliLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MmFlYTBlZDVlMzg1MjhhMmRkZjNjNGQ1MWFiNDY2OGU5M2Q2ODg3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9NSU1FVHlwZVJlZ2lzdHJ5
R0xpYi5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNr
IFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLwor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRXh0ZW5zaW9uTWFwIHsKKyAg
ICBjb25zdCBjaGFyKiBleHRlbnNpb247CisgICAgY29uc3QgY2hhciogbWltZVR5cGU7Cit9Owor
CitzdGF0aWMgY29uc3QgRXh0ZW5zaW9uTWFwIGV4dGVuc2lvbk1hcFtdID0geworICAgIHsgMCwg
MCB9Cit9OworCitTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNp
b24oY29uc3QgU3RyaW5nICZleHQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKwor
ICAgIFN0cmluZyBzID0gZXh0Lmxvd2VyKCk7CisgICAgY29uc3QgRXh0ZW5zaW9uTWFwICplID0g
ZXh0ZW5zaW9uTWFwOworICAgIHdoaWxlIChlLT5leHRlbnNpb24pIHsKKyAgICAgICAgaWYgKHMg
PT0gZS0+ZXh0ZW5zaW9uKQorICAgICAgICAgICAgcmV0dXJuIGUtPm1pbWVUeXBlOworICAgICAg
ICArK2U7CisgICAgfQorCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIE1JTUVUeXBl
UmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShjb25zdCBTdHJpbmcmKQorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2xpYi9SdW5Mb29wR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L1J1bkxvb3BHTGliLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzFiNjc5NWEwM2E1ZjJmYTFkNDBlZTZmMDNh
ZTBlMjgwYjcyMmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9SdW5Mb29wR0xpYi5jcHAKQEAgLTAsMCArMSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29w
eXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5o
IgorCisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICAvLyBnX21h
aW5fY29udGV4dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEgcmVmZXJlbmNlLgorICAg
IG1fcnVuTG9vcENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFpbl9jb250ZXh0X2RlZmF1
bHQoKSA6IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7CisgICAgQVNTRVJUKG1fcnVu
TG9vcENvbnRleHQpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5lcm1vc3RMb29wID0gYWRv
cHRHUmVmKGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LmdldCgpLCBGQUxTRSkpOwor
ICAgIEFTU0VSVChpbm5lcm1vc3RMb29wKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5k
KGlubmVybW9zdExvb3ApOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgZm9yIChp
bnQgaSA9IG1fcnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAg
ICAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdl
dCgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1f
cnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnJ1
bigpCit7CisgICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Cisg
ICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3AtPmlubmVybW9zdExvb3Ao
KTsKKyAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJtb3N0TG9vcCkpIHsKKyAg
ICAgICAgZ19tYWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9vcCBpZiB0aGUgaW5uZXJt
b3N0IG9uZSB3YXMgYWxyZWFkeSBydW5uaW5nLgorICAgIEdNYWluTG9vcCogbmVzdGVkTWFpbkxv
b3AgPSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOworICAgIG1haW5SdW5Mb29wLT5wdXNoTmVz
dGVkTWFpbkxvb3AobmVzdGVkTWFpbkxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihuZXN0ZWRN
YWluTG9vcCk7CisgICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5Mb29wKCk7Cit9CisKK0dN
YWluTG9vcCogUnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9z
dCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9v
cE1haW5Mb29wcy5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX3J1bkxvb3BNYWluTG9vcHNbMF0u
Z2V0KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCog
bmVzdGVkTG9vcCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3
YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7
CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYobmVzdGVkTG9vcCkpOwor
fQorCit2b2lkIFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKK3sKKyAgICAvLyBUaGUgaW5u
ZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9y
dW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLnJlbW92
ZUxhc3QoKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJt
b3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5M
b29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGxhc3RNYWlu
TG9vcCA9IG1fcnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7CisgICAgaWYgKGdfbWFpbl9sb29wX2lz
X3J1bm5pbmcobGFzdE1haW5Mb29wLmdldCgpKSkKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChs
YXN0TWFpbkxvb3AuZ2V0KCkpOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVu
TG9vcCogcnVuTG9vcCkKK3sKKyAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIHJldHVy
biBGQUxTRTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIEdSZWZQdHI8R1Nv
dXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOworICAgIGdfc291
cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CisgICAg
Z19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291
cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0
dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworCisgICAgZ19tYWlu
X2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCitSdW5Mb29wOjpU
aW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1
bkxvb3ApCisgICAgLCBtX3RpbWVyU291cmNlKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFz
ZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgpCit7CisgICAgbV90aW1lclNvdXJjZSA9IDA7Cit9CisK
K2dib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6
OlRpbWVyQmFzZSogdGltZXIpCit7CisgICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0g
dGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7CisgICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVy
LT5pc1JlcGVhdGluZygpOworICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2Ug
Ynkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICBpZiAoIWlz
UmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5n
ZXQoKSkKKyAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKKworICAgIHRpbWVyLT5m
aXJlZCgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlm
IChtX3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291cmNlID0g
YWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50
ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgZ19zb3Vy
Y2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMs
IDApOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3At
Pm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFyVGltZXJT
b3VyY2UoKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9TaGFyZWRUaW1lckdM
aWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9TaGFyZWRUaW1lckdMaWIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFhNWIxODdjZDEwMmIyMjcxZGQ4YjhmMzNkZDQyNDJlMThjYWJiYWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1NoYXJlZFRpbWVy
R0xpYi5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRUaW1l
ci5oIgorCisjZGVmaW5lIEdES19QUklPUklUWV9SRURSQVcgKEdfUFJJT1JJVFlfSElHSF9JRExF
ICsgMjApCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cisj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Rh
dGljIGd1aW50IHNoYXJlZFRpbWVyOworc3RhdGljIHZvaWQgKCpzaGFyZWRUaW1lckZpcmVkRnVu
Y3Rpb24pKCk7CisKK3ZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgp
KQoreworICAgIHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbiA9IGY7Cit9CisKK3N0YXRpYyBnYm9v
bGVhbiB0aW1lb3V0Q2FsbGJhY2soZ3BvaW50ZXIpCit7CisgICAgaWYgKHNoYXJlZFRpbWVyRmly
ZWRGdW5jdGlvbikKKyAgICAgICAgc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKCk7CisgICAgcmV0
dXJuIEZBTFNFOworfQorCit2b2lkIHNldFNoYXJlZFRpbWVyRmlyZUludGVydmFsKGRvdWJsZSBp
bnRlcnZhbCkKK3sKKyAgICBBU1NFUlQoc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKTsKKworICAg
IGd1aW50IGludGVydmFsSW5NUyA9IHN0YXRpY19jYXN0PGd1aW50PihpbnRlcnZhbCAqIDEwMDAp
OworCisgICAgc3RvcFNoYXJlZFRpbWVyKCk7CisgICAgc2hhcmVkVGltZXIgPSBnX3RpbWVvdXRf
YWRkX2Z1bGwoR0RLX1BSSU9SSVRZX1JFRFJBVywgaW50ZXJ2YWxJbk1TLCB0aW1lb3V0Q2FsbGJh
Y2ssIDAsIDApOworfQorCit2b2lkIHN0b3BTaGFyZWRUaW1lcigpCit7CisgICAgaWYgKCFzaGFy
ZWRUaW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgZ2Jvb2xlYW4gcmVtb3ZlZFNvdXJjZSA9
IGdfc291cmNlX3JlbW92ZShzaGFyZWRUaW1lcik7CisgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVk
U291cmNlLCByZW1vdmVkU291cmNlKTsKKyAgICBzaGFyZWRUaW1lciA9IDA7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVGVtcG9yYXJ5TGlua1N0dWJz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVGVtcG9yYXJ5TGlua1N0dWJzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZTQzMWNlMTVjZTc4ZjY1N2I4ZDRjYWMyNmI2MDA3NzU5ZTJlN2JiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9UZW1wb3JhcnlM
aW5rU3R1YnMuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIktVUkwuaCIK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPGZsb2F0Lmg+CisKKy8vIENv
bXBsZXRlbHkgZW1wdHkgc3R1YnMgKG1vc3RseSB0byBhbGxvdyBEUlQgdG8gcnVuKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmlu
Zz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBzaWduZWRQdWJsaWNL
ZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwm
KQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworZmxvYXQgdXNlcklkbGVUaW1lKCkKK3sK
KyAgICAvLyBSZXR1cm4gYW4gYXJiaXRyYXJpbHkgaGlnaCB1c2VySWRsZVRpbWUgc28gdGhhdCBy
ZWxlYXNpbmcgcGFnZXMgZnJvbSB0aGUgcGFnZSBjYWNoZSBpc24ndCBwb3N0cG9uZWQuCisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRkxUX01BWDsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJy
ZW50RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRGcm9tQ3VycmVudEVHTC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiNmVmMWI2NTJkNzI0Njk2YmZmZDY1
YzM1MDU0MmVhY2JlZDMwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKQEAgLTAsMCArMSw2
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJHTENvbnRleHRGcm9tQ3VycmVudEVHTC5oIgorCisjaW5jbHVkZSAiT3BlbkdM
U2hpbXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEdMQ29udGV4dEZy
b21DdXJyZW50RUdMPiBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6Y3JlYXRlRnJvbUN1cnJlbnRH
TENvbnRleHQoKQoreworICAgIGlmICghaW5pdGlhbGl6ZSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdMQ29udGV4dEZyb21DdXJyZW50RUdMKCkp
OworfQorCitHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6R0xDb250ZXh0RnJvbUN1cnJlbnRFR0wo
KQorICAgIDogbV9kaXNwbGF5KGVnbEdldEN1cnJlbnREaXNwbGF5KCkpCisgICAgLCBtX3N1cmZh
Y2UoZWdsR2V0Q3VycmVudFN1cmZhY2UoRUdMX0RSQVcpKQorICAgICwgbV9jb250ZXh0KGVnbEdl
dEN1cnJlbnRDb250ZXh0KCkpCit7Cit9CisKK2Jvb2wgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6
Om1ha2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgR0xDb250ZXh0OjptYWtlQ29udGV4dEN1cnJl
bnQoKTsKKyAgICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9kaXNwbGF5LCBtX3N1cmZhY2UsIG1f
c3VyZmFjZSwgbV9jb250ZXh0KTsKK30KKworYm9vbCBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6
aW5pdGlhbGl6ZSgpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAg
ICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7Cisg
ICAgICAgIHN1Y2Nlc3MgPSBpbml0aWFsaXplT3BlbkdMU2hpbXMoKTsKKyAgICAgICAgaW5pdGlh
bGl6ZWQgPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gc3VjY2VzczsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjI4
ZGM2NzlkZWZmODYzMDMzM2YxYjUwYjc0MTE5NjY4NjRlYmIyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50
RUdMLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0xfaAorI2RlZmluZSBHTENvbnRleHRGcm9tQ3Vy
cmVudEVHTF9oCisKKyNpbmNsdWRlICJHTENvbnRleHQuaCIKKyNpbmNsdWRlIDxFR0wvZWdsLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wg
OiBwdWJsaWMgR0xDb250ZXh0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHRG
cm9tQ3VycmVudEVHTCk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250ZXh0
RnJvbUN1cnJlbnRFR0w+IGNyZWF0ZUZyb21DdXJyZW50R0xDb250ZXh0KCk7CisKKyAgICB2aXJ0
dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc3dhcEJ1ZmZlcnMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIEludFNpemUgZGVmYXVs
dEZyYW1lQnVmZmVyU2l6ZSgpIE9WRVJSSURFIHsgcmV0dXJuIEludFNpemUoKTsgfQorICAgIHZp
cnR1YWwgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkgT1ZFUlJJREUgeyByZXR1cm4gMDsg
fQorCisgICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkgT1ZF
UlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSBPVkVSUklERSB7IHJldHVybiB0aGlzOyB9CisgICAg
dmlydHVhbCB2b2lkIHdhaXROYXRpdmUoKSBPVkVSUklERSB7IH0KKworcHJpdmF0ZToKKyAgICBz
dGF0aWMgYm9vbCBpbml0aWFsaXplKCk7CisKKyAgICBHTENvbnRleHRGcm9tQ3VycmVudEVHTCgp
OworCisgICAgRUdMRGlzcGxheSBtX2Rpc3BsYXk7CisgICAgRUdMU3VyZmFjZSBtX3N1cmZhY2U7
CisgICAgRUdMQ29udGV4dCBtX2NvbnRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBHTENvbnRleHRGcm9tQ3VycmVudEVHTF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRv
d05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxh
dGZvcm1WaWRlb1dpbmRvd05peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ5ZGEyZjkwZDZiNjAzNzE0MzMw
ZjM5NmY0MTViMDg2NzNkMDY0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNwcApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVZp
ZGVvV2luZG93LmgiCisKKyNpZiBVU0UoR1NUUkVBTUVSKSAmJiAhZGVmaW5lZChHU1RfQVBJX1ZF
UlNJT05fMSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitQbGF0Zm9ybVZpZGVvV2luZG93OjpQbGF0Zm9ybVZpZGVvV2luZG93KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitQbGF0Zm9ybVZpZGVvV2luZG93Ojp+UGxh
dGZvcm1WaWRlb1dpbmRvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQ
bGF0Zm9ybVZpZGVvV2luZG93OjpwcmVwYXJlRm9yT3ZlcmxheShHc3RNZXNzYWdlKikKK3sKK30K
KworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpICYmICFkZWZpbmVkKEdTVF9BUElfVkVSU0lPTl8x
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ljb25O
aXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ljb25OaXguY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVkM2Y4ZDMyZTRkMzBiNDRkYzAzNjE3ODk1NDljM2JhNzJiOWEyYjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSWNv
bk5peC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEz
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkljb24uaCIKKworI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitJY29uOjp+SWNvbigpCit7Cit9CisKK1Bhc3NSZWZQdHI8SWNv
bj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIEljb246OnBhaW50
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25peC9JbWFnZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgv
SW1hZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNmUxM2I0MmI0NjE4YjVjZWNhYzUwNjY0NWIwZTYz
NjlhNTBiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaXgvSW1hZ2VOaXguY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVk
IHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkltYWdl
LmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQ
bGF0Zm9ybURhdGEoKQoreworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGxv
YWRSZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCkKK3sKKyAgICByZXR1cm4gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoKTsgLy8gRklYTUU6IGZhbGxiYWNrIGltYWdlPworfQorCitzdGF0aWMgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihjb25zdCBjaGFy
KiBuYW1lKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKG1ha2VTdHJpbmcoREFUQV9ESVIgIi93ZWJraXQt
MS4wL2ltYWdlcy8iLCBuYW1lLCAiLnBuZyIpKTsKKyAgICBpZiAoYnVmZmVyKQorICAgICAgICBy
ZXR1cm4gYnVmZmVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gbG9hZFJlc291cmNlU2hhcmVkQnVm
ZmVyRmFsbGJhY2soKTsKK30KKworUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2U6OmxvYWRQbGF0Zm9y
bVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBp
bWcgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyID0gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKG5hbWUpOworICAgIGltZy0+c2V0RGF0YShi
dWZmZXIucmVsZWFzZSgpLCB0cnVlKTsKKyAgICByZXR1cm4gaW1nLnJlbGVhc2UoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NzdlZjBjY2UzYmU5N2ZlYWFkNDhmNjc4NzA1NTZkYjhhMTE1MmM0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHAKQEAgLTAsMCArMSwx
MjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxtdWVsbGVyQGtk
ZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgR2VvcmdlIFN0YWlrb3MgPHN0YWlrb3NAa2Rl
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBDaGFybGVzIFNhbXVlbHMgPGNoYXJsZXNAa2Rl
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJDdXJzb3IuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworQ3Vyc29yOjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKKyAgICA6
IG1fdHlwZShvdGhlci5tX3R5cGUpCisgICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCisgICAg
LCBtX2hvdFNwb3Qob3RoZXIubV9ob3RTcG90KQorICAgICwgbV9wbGF0Zm9ybUN1cnNvcihvdGhl
ci5tX3BsYXRmb3JtQ3Vyc29yKQoreworfQorCitDdXJzb3I6On5DdXJzb3IoKQoreworfQorCitD
dXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNvciYgb3RoZXIpCit7CisgICAgbV90
eXBlID0gb3RoZXIubV90eXBlOworICAgIG1faW1hZ2UgPSBvdGhlci5tX2ltYWdlOworICAgIG1f
aG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKKyAgICBtX3BsYXRmb3JtQ3Vyc29yID0gb3RoZXIu
bV9wbGF0Zm9ybUN1cnNvcjsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3N0YXRpYyBjb25zdCBj
aGFyKiBjdXJzb3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUpCit7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGN1cnNvclN0cmluZ3NbXSA9IHsKKyAgICAgICAgImN1cnNvci9wb2ludGVyIiwKKyAg
ICAgICAgImN1cnNvci9jcm9zcyIsCisgICAgICAgICJjdXJzb3IvaGFuZCIsCisgICAgICAgICJj
dXJzb3IvaV9iZWFtIiwKKyAgICAgICAgImN1cnNvci93YWl0IiwKKyAgICAgICAgImN1cnNvci9o
ZWxwIiwKKyAgICAgICAgImN1cnNvci9lYXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9y
dGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9lYXN0X3Jlc2l6ZSIsCisgICAgICAg
ICJjdXJzb3Ivbm9ydGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL3NvdXRoX3Jlc2l6
ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfZWFzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29y
L3NvdXRoX3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci93ZXN0X3Jlc2l6ZSIsCisgICAg
ICAgICJjdXJzb3Ivbm9ydGhfc291dGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9lYXN0X3dl
c3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9lYXN0X3NvdXRoX3dlc3RfcmVzaXpl
IiwKKyAgICAgICAgImN1cnNvci9ub3J0aF93ZXN0X3NvdXRoX2Vhc3RfcmVzaXplIiwKKyAgICAg
ICAgImN1cnNvci9jb2x1bW5fcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9yb3dfcmVzaXplIiwK
KyAgICAgICAgImN1cnNvci9taWRkbGVfcGFubmluZyIsCisgICAgICAgICJjdXJzb3IvZWFzdF9w
YW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNv
ci9ub3J0aF9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3RfcGFubmlu
ZyIsCisgICAgICAgICJjdXJzb3Ivc291dGhfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivc291
dGhfZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF93ZXN0X3Bhbm5pbmciLAor
ICAgICAgICAiY3Vyc29yL3dlc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3IvbW92ZSIsCisg
ICAgICAgICJjdXJzb3IvdmVydGljYWxfdGV4dCIsCisgICAgICAgICJjdXJzb3IvY2VsbCIsCisg
ICAgICAgICJjdXJzb3IvY29udGV4dF9tZW51IiwKKyAgICAgICAgImN1cnNvci9hbGlhcyIsCisg
ICAgICAgICJjdXJzb3IvcHJvZ3Jlc3MiLAorICAgICAgICAiY3Vyc29yL25vX2Ryb3AiLAorICAg
ICAgICAiY3Vyc29yL2NvcHkiLAorICAgICAgICAiY3Vyc29yL25vbmUiLAorICAgICAgICAiY3Vy
c29yL25vdF9hbGxvd2VkIiwKKyAgICAgICAgImN1cnNvci96b29tX2luIiwKKyAgICAgICAgImN1
cnNvci96b29tX291dCIsCisgICAgICAgICJjdXJzb3IvZ3JhYiIsCisgICAgICAgICJjdXJzb3Iv
Z3JhYmJpbmciLAorICAgICAgICAiIn07IC8vIEZJWE1FOiBKdXN0IHJldHVybiAiIiBmb3IgY3Vz
dG9tIHR5cGUuIFdlIGRvbid0IHN1cHBvcnQgaXQgbm93LgorICAgIHJldHVybiBjdXJzb3JTdHJp
bmdzW3R5cGVdOworfQorCit2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25z
dAoreworICAgIGlmIChtX3BsYXRmb3JtQ3Vyc29yKQorICAgICAgICByZXR1cm47CisgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IGN1cnNvclN0cmluZyhtX3R5cGUpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmZiNjk4NmFm
YTRmMjFlYjAyNzU3N2I2ZjFhYzE2NDk3MTVjNzc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcApAQCAtMCwwICsxLDkzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRyYWdEYXRhLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50RnJhZ21lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIERyYWdEYXRhOjpj
YW5TbWFydFJlcGxhY2UoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBE
cmFnRGF0YTo6Y29udGFpbnNDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKwordm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmlu
Zz4mKSBjb25zdAoreworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgRHJhZ0RhdGE6OmFzUGxhaW5U
ZXh0KEZyYW1lKikgY29uc3QKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK0NvbG9yIERy
YWdEYXRhOjphc0NvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ29sb3IoKTsKK30KKworYm9v
bCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc1VSTChGcmFtZSosIEZpbGVu
YW1lQ29udmVyc2lvblBvbGljeSkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0
cmluZyBEcmFnRGF0YTo6YXNVUkwoRnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3ksIFN0
cmluZyopIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IERyYWdEYXRhOjphc0ZyYWdtZW50KEZyYW1lKiwgUGFzc1JlZlB0cjxS
YW5nZT4sIGJvb2wsIGJvb2wmKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0ltYWdlTml4LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRk
YWM4NjEyYzEzYmY1OWY1ZTU0MzkxNmQxMjg3ZmVmY2Y4YmYwNWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0ltYWdlTml4LmNwcApAQCAtMCwwICsx
LDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgorCisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNp
bmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRTaXplKDAsIDApOworfQorCit2b2lk
IGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxv
YXRTaXplKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQor
CitEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBp
bWFnZSwgZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gaW1hZ2U7
Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZShDYWNoZWRJbWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0dhbWVw
YWRzTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9HYW1lcGFkc05peC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2U3N2M3Y2U3MTZkM2ZlMDczOGRkYjFlOTNjMTU3OGEzMGQ1YmZkZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9HYW1lcGFkc05peC5j
cHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkdhbWVwYWRzLmgiCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKworI2luY2x1ZGUg
IkdhbWVwYWRMaXN0LmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgR2FtZXBhZExpc3Q7CisKK3ZvaWQgc2FtcGxlR2FtZXBhZHMo
R2FtZXBhZExpc3QqIGludG8pCit7CisgICAgV2ViS2l0OjpXZWJHYW1lcGFkcyBnYW1lcGFkczsK
KworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2FtcGxlR2FtZXBhZHMoZ2FtZXBh
ZHMpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdlYktpdDo6V2ViR2FtZXBhZHM6
Oml0ZW1zTGVuZ3RoQ2FwOyArK2kpIHsKKyAgICAgICAgV2ViS2l0OjpXZWJHYW1lcGFkJiB3ZWJH
YW1lcGFkID0gZ2FtZXBhZHMuaXRlbXNbaV07CisgICAgICAgIGlmIChpIDwgZ2FtZXBhZHMubGVu
Z3RoICYmIHdlYkdhbWVwYWQuY29ubmVjdGVkKSB7CisgICAgICAgICAgICBSZWZQdHI8R2FtZXBh
ZD4gZ2FtZXBhZCA9IGludG8tPml0ZW0oaSk7CisgICAgICAgICAgICBpZiAoIWdhbWVwYWQpCisg
ICAgICAgICAgICAgICAgZ2FtZXBhZCA9IEdhbWVwYWQ6OmNyZWF0ZSgpOworICAgICAgICAgICAg
Z2FtZXBhZC0+aWQod2ViR2FtZXBhZC5pZCk7CisgICAgICAgICAgICBnYW1lcGFkLT5pbmRleChp
KTsKKyAgICAgICAgICAgIGdhbWVwYWQtPnRpbWVzdGFtcCh3ZWJHYW1lcGFkLnRpbWVzdGFtcCk7
CisgICAgICAgICAgICBnYW1lcGFkLT5heGVzKHdlYkdhbWVwYWQuYXhlc0xlbmd0aCwgd2ViR2Ft
ZXBhZC5heGVzKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmJ1dHRvbnMod2ViR2FtZXBhZC5idXR0
b25zTGVuZ3RoLCB3ZWJHYW1lcGFkLmJ1dHRvbnMpOworICAgICAgICAgICAgaW50by0+c2V0KGks
IGdhbWVwYWQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGludG8tPnNldChpLCAwKTsK
KyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xh
bmd1YWdlTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTcwN2MxZjZiZjJmMzVlOWU2ZDdlYmZjY2M2MjYx
Yjg3YmYxNWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L0xhbmd1YWdlTml4LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisKKyNp
bmNsdWRlIDxsb2NhbGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFN0cmlu
ZyBwbGF0Zm9ybUxhbmd1YWdlKCkKK3sKKyAgICBjaGFyKiBsb2NhbGVEZWZhdWx0ID0gc2V0bG9j
YWxlKExDX0NUWVBFLCAwKTsKKworICAgIGlmICghbG9jYWxlRGVmYXVsdCkKKyAgICAgICAgcmV0
dXJuIFN0cmluZygiYyIpOworCisgICAgU3RyaW5nIGxvY2FsZSA9IFN0cmluZyhsb2NhbGVEZWZh
dWx0KTsKKyAgICBsb2NhbGUucmVwbGFjZSgnXycsICctJyk7CisgICAgc2l6ZV90IHBvc2l0aW9u
ID0gbG9jYWxlLmZpbmQoJy4nKTsKKyAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91bmQpCisgICAg
ICAgIGxvY2FsZSA9IGxvY2FsZS5sZWZ0KHBvc2l0aW9uKTsKKworICAgIHJldHVybiBsb2NhbGU7
Cit9CisKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCit7
CisgICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKKyAgICB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChwbGF0Zm9ybUxhbmd1YWdlKCkpOworICAgIHJldHVybiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNlYzNiNWVk
MGU3NzA4NWYzMzYyNTVlMTllYjA1MGIxYTJlOWFiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBtaWtl
LmVtbWVsQGdtYWlsLmNvbQorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVy
IEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3Rp
YW5AaW1lbmRpby5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBJTmRUIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgor
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgbG9jYWxpemVkU3RyaW5nKGNv
bnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXksIHN0cmxl
bihrZXkpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L05peEtleWJvYXJkVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9O
aXhLZXlib2FyZFV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUyNTE0YzZiZDNiNTdhYmU1YmRj
MzY4YTdmMmMyODE0OGZjNDM4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSwyMDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJOaXhLZXlib2FyZFV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBLZXlNYXA7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBp
bnQ+IFdpbmRvd3NLZXlNYXA7Cit0eXBlZGVmIEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj4gS2V5
Q29tbWFuZE1hcDsKKworc3RhdGljIEtleU1hcCYga2V5TWFwKCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEtleU1hcCwga2V5TWFwLCAoKSk7CisgICAgcmV0dXJuIGtleU1hcDsKK30KKwor
c3RhdGljIFdpbmRvd3NLZXlNYXAmIHdpbmRvd3NLZXlNYXAoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoV2luZG93c0tleU1hcCwgd2luZG93c0tleU1hcCwgKCkpOworICAgIHJldHVybiB3
aW5kb3dzS2V5TWFwOworfQorCitzdGF0aWMgS2V5Q29tbWFuZE1hcCYga2V5RG93bkNvbW1hbmRz
TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEtleUNvbW1hbmRNYXAsIGtleURvd25D
b21tYW5kc01hcCwgKCkpOworICAgIHJldHVybiBrZXlEb3duQ29tbWFuZHNNYXA7Cit9CisKK3N0
YXRpYyBLZXlDb21tYW5kTWFwJiBrZXlQcmVzc0NvbW1hbmRzTWFwKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEtleUNvbW1hbmRNYXAsIGtleVByZXNzQ29tbWFuZHNNYXAsICgpKTsKKyAg
ICByZXR1cm4ga2V5UHJlc3NDb21tYW5kc01hcDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFk
ZENoYXJhY3RlcnNUb0tleU1hcChjb25zdCBjaGFyIGZyb20sIGNvbnN0IGNoYXIgdG8pCit7Cisg
ICAgZm9yIChjaGFyIGMgPSBmcm9tOyBjIDw9IHRvOyBjKyspCisgICAgICAgIGtleU1hcCgpLnNl
dChTdHJpbmcoJmMsIDEpLCBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwgYykpOworfQorCitzdGF0
aWMgaW5saW5lIHZvaWQgYWRkQ2hhcmFjdGVyc1RvV2luS2V5TWFwKGNvbnN0IGNoYXIgZnJvbSwg
Y29uc3QgY2hhciB0bywgY29uc3QgaW50IGJhc2VDb2RlKQoreworICAgIGludCBpID0gMDsKKyAg
ICBmb3IgKGNoYXIgYyA9IGZyb207IGMgPD0gdG87IGMrKywgaSsrKQorICAgICAgICB3aW5kb3dz
S2V5TWFwKCkuc2V0KFN0cmluZygmYywgMSksIGJhc2VDb2RlICsgaSk7Cit9CisKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBDdHJsS2V5ID0gMSA8PCAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFs
dEtleSA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsK
Kworc3RydWN0IEtleURvd25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1
bnNpZ25lZCBtb2RpZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBL
ZXlQcmVzc0VudHJ5IHsKKyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2Rp
ZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3du
RW50cnkga2V5RG93bkVudHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAg
ICAgICAgICAiTW92ZUxlZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0xFRlQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSwg
ICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRMZWZ0QW5k
TW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAg
ICAgICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVJpZ2h0QW5k
TW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3Ry
bEtleSwgICAgICAgICAgICAiTW92ZVdvcmRSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRS
aWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAg
MCwgICAgICAgICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVVw
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9S
LCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92
ZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RP
V04sICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAi
TW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X1BSSU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgMCwgICAgICAgICAgICAgICAg
ICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0hPTUUsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksICAgICAg
ICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgfSwKKyAg
ICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1
bWVudCIgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNo
aWZ0S2V5LCAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwK
KworICAgIHsgVktfRU5ELCAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmUi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtl
eSwgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9FbmRPZkRv
Y3VtZW50IiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJs
S2V5IHwgU2hpZnRLZXksICJNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICB9LAorCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJh
Y2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAg
IFNoaWZ0S2V5LCAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0
ZUZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNL
LCAgIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIEN0cmxLZXksICAgICAgICAgICAgIkRl
bGV0ZVdvcmRGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICB7ICdC
JywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdJJywgICAgICAgQ3RybEtleSwgICAgICAgICAg
ICAiVG9nZ2xlSXRhbGljIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAg
IHsgVktfRVNDQVBFLCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfT0VNX1BFUklPRCwgQ3RybEtleSwg
ICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfVEFCLCAgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwg
ICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBDdHJsS2V5
LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5l
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRL
ZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorfTsKKworc3RhdGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVz
W10gPSB7CisgICAgeyAnXHQnLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHQnLCAgIFNoaWZ0S2V5
LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyAnXHInLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyAnXHInLCAgIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFsdEtleSB8IFNoaWZ0
S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9
OworCitzdGF0aWMgdm9pZCBjcmVhdGVLZXlEb3duQ29tbWFuZE1hcCgpCit7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleURvd25FbnRyaWVzKTsgKytpKQor
ICAgICAgICBrZXlEb3duQ29tbWFuZHNNYXAoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9kaWZp
ZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJpZXNb
aV0ubmFtZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNyZWF0ZUtleVByZXNzQ29tbWFuZE1hcCgpCit7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleVByZXNzRW50
cmllcyk7ICsraSkKKyAgICAgICAga2V5UHJlc3NDb21tYW5kc01hcCgpLnNldChrZXlQcmVzc0Vu
dHJpZXNbaV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBr
ZXlQcmVzc0VudHJpZXNbaV0ubmFtZSk7Cit9CisKK2NvbnN0IGNoYXIqIGdldEtleURvd25Db21t
YW5kTmFtZShjb25zdCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBtb2Rp
ZmllcnMgPSAwOworICAgIGlmIChldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJz
IHw9IFNoaWZ0S2V5OworICAgIGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBBbHRLZXk7CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBDdHJsS2V5OworCisgICAgaW50IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50
LT5rZXlDb2RlKCk7CisgICAgaWYgKCFtYXBLZXkpCisgICAgICAgIHJldHVybiAwOworCisgICAg
aWYgKGtleURvd25Db21tYW5kc01hcCgpLmlzRW1wdHkoKSkKKyAgICAgICAgY3JlYXRlS2V5RG93
bkNvbW1hbmRNYXAoKTsKKworICAgIHJldHVybiBrZXlEb3duQ29tbWFuZHNNYXAoKS5nZXQobWFw
S2V5KTsKK30KKworY29uc3QgY2hhciogZ2V0S2V5UHJlc3NDb21tYW5kTmFtZShjb25zdCBLZXli
b2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlm
IChldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAg
IGlmIChldmVudC0+YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBBbHRLZXk7CisgICAg
aWYgKGV2ZW50LT5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworCisg
ICAgaW50IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LT5jaGFyQ29kZSgpOworICAg
IGlmICghbWFwS2V5KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChrZXlQcmVzc0NvbW1h
bmRzTWFwKCkuaXNFbXB0eSgpKQorICAgICAgICBjcmVhdGVLZXlQcmVzc0NvbW1hbmRNYXAoKTsK
KworICAgIHJldHVybiBrZXlQcmVzc0NvbW1hbmRzTWFwKCkuZ2V0KG1hcEtleSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L05peEtleWJvYXJkVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI1NjEwYzdlOWRlMGZjMmU4MmQ4
NDQ0ODUzYmMzZTc3YmY4ZGViYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTml4S2V5Ym9hcmRVdGls
aXRpZXNfaAorI2RlZmluZSBOaXhLZXlib2FyZFV0aWxpdGllc19oCisKK25hbWVzcGFjZSBXVEYg
eworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtleWJv
YXJkRXZlbnQ7CisKK2NvbnN0IGNoYXIqIGdldEtleURvd25Db21tYW5kTmFtZShjb25zdCBLZXli
b2FyZEV2ZW50Kik7Citjb25zdCBjaGFyKiBnZXRLZXlQcmVzc0NvbW1hbmROYW1lKGNvbnN0IEtl
eWJvYXJkRXZlbnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTml4
S2V5Ym9hcmRVdGlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bml4L1Bhc3RlYm9hcmROaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3Rl
Ym9hcmROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4M2NkZjc0ZTY3YWJjMmZhODFlMDlhZjYwNjcyMjZl
ZDg1OWFmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
UGFzdGVib2FyZE5peC5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3
IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IElOZFQg
LSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzdGVib2FyZCogUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKQorewor
ICAgIHN0YXRpYyBQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gbmV3IFBhc3RlYm9hcmQoKTsKKyAg
ICByZXR1cm4gcGFzdGVib2FyZDsKK30KKworUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4
dChjb25zdCBTdHJpbmcmLCBTbWFydFJlcGxhY2VPcHRpb24pCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJvb2ws
IEZyYW1lKiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UoTm9kZSosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVDbGlwYm9hcmQoQ2xpcGJvYXJkKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFu
Z2U+LCBib29sLCBib29sJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpOworfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK1Bhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQoreworICAgIHJldHVy
biBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpCit7CisgICAg
cmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorI2VuZGlmCisKK2Jvb2wgUGFzdGVi
b2FyZDo6aGFzRGF0YSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25z
dCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitib29sIFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK0xpc3RIYXNoU2V0PFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKK30KKworVmVj
dG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCit2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYs
IGNvbnN0IEludFBvaW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2VuZGlmCisK
K3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmQwZWY2YzM0MGM5ODAzYWZlYWZhZmYwMTc3YTY3MjNhMzFhYThmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXgu
Y3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGll
Z28gSGlkYWxnbyBDLiBHb256YWxlegorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVT
SU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBl
LCBib29sKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gS2V5RG93bik7CisgICAgbV90eXBlID0g
dHlwZTsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKKyAg
ICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CisgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJp
bmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2tleUlkZW50aWZpZXIgPSBTdHJpbmcoKTsK
KyAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSAwOworICAgIH0KK30KKworYm9vbCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBj
dHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBzaGlmdEtleSA9IGZhbHNlOworICAgIGN0cmxLZXkgPSBmYWxzZTsKKyAgICBh
bHRLZXkgPSBmYWxzZTsKKyAgICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhiZmIzYWMzZWQyMTQzMGFkMWVhYTJlYmU0MGI5NmY4ZjRhNTEwNmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCkBA
IC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKworI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiV2lkZ2V0Lmgi
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2ludCBzY3JlZW5Ib3Jpem9udGFsRFBJ
KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
aW50IHNjcmVlblZlcnRpY2FsRFBJKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29t
cG9uZW50KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lk
Z2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoMCwg
MCwgMTAyNCwgNzY4KTsKK30KKworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0
KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gc2NyZWVuUmVj
dCh3aWRnZXQpOworfQorCit2b2lkIHNjcmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9Tb3VuZE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvU291bmROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlMWJiZWZmZTQ5YzAzZGYzZDEwZWQwZjRlNTY0
NjI4ZjhhZTcyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvU291bmROaXguY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0
ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZDMwOTczZDIwMDU0NjJi
MmU4Y2YzMzZmYTIyYjMwZmRmNTU0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdl
dC5oIgorCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2lk
Z2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQorICAgIDogbV9wYXJlbnQoMCkKKyAg
ICAsIG1fd2lkZ2V0KDApCisgICAgLCBtX3NlbGZWaXNpYmxlKGZhbHNlKQorICAgICwgbV9wYXJl
bnRWaXNpYmxlKGZhbHNlKQorICAgICwgbV9mcmFtZSgwLCAwLCAwLCAwKQoreworICAgIGluaXQo
d2lkZ2V0KTsKK30KKworV2lkZ2V0Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVudCgp
KTsKK30KKworSW50UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZnJhbWU7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYg
cmVjdCkKK3sKKyAgICBtX2ZyYW1lID0gcmVjdDsKKyAgICBXaWRnZXQ6OmZyYW1lUmVjdHNDaGFu
Z2VkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQoreworfQorCit2b2lkIFdp
ZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQoreworICAgIFNjcm9sbFZpZXcq
IHZpZXcgPSByb290KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisgICAgdmll
dy0+aG9zdFdpbmRvdygpLT5zZXRDdXJzb3IoY3Vyc29yKTsKK30KKwordm9pZCBXaWRnZXQ6OnNo
b3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpoaWRlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25p
eC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc3ZmE3NzM4OGRmN2M2YWZkNzFhZDEyNjc4NjllZjA1MDRiNDY2ZWUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTml4LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0
ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBjaGFy
KiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAgIHJldHVybiAiIjsKK30KKworY29uc3Qg
Y2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gImVuX3VzIjsK
K30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206410</attachid>
            <date>2013-07-10 13:47:22 -0700</date>
            <delta_ts>2013-07-11 06:23:02 -0700</delta_ts>
            <desc>New patch without glib directory.</desc>
            <filename>bug-118358-20130710174508.patch</filename>
            <type>text/plain</type>
            <size>83928</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMzZjIzNzgyNGE5MDcwM2YzYzZkNzdl
N2QzYjk5YmU1YWJjODNiOTkuLjZiMDA5MGJhOGI1ZmZmNDdlNmI2OTQ2ZTJlMTc2OTRkZDgxYWM0
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMTAgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTEwICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4K
IAogICAgICAgICBXb3JrYXJvdW5kIGZvciB4ODYgb3B0aW1pemVyIGJ1ZyBpbiBNU1ZDIDIwMTIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZjgzMDU1ODJkMThhOTYzMTI1ZjgzNTk0NjU5MDk4Njc5OWI4MjZkZi4u
NTdjYzM3OTQ5ODFjNGY1NWViZDBmYjBhYjhmYTIyMmIyNjRiMWRjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDEzLTA3LTEwICBMdWNpYW5vIFdvbGYgIDxsdWNpYW5vLndvbGZAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgc3R1YnMgYW5k
IE5peCBzcGVjaWZpYyBwbGF0Zm9ybSBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmFzaWNhbGx5IGFkZGluZyBhbGwgZmlsZXMgdGhhdCBoYXZl
ICJOaXgiIGluIHRoZWlyIG5hbWVzIGFuZAorICAgICAgICBhcmUgcmVsYXRlZCB0byBXZWJDb3Jl
IG1vZHVsZS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoZXkgd2lsbCBiZSB1cGxvYWRlZCBv
biBhbm90aGVyIHBhdGNoIGR1cmluZyB0aGUKKyAgICAgICAgdXBzdHJlYW1pbmcgcHJvY2Vzcy4K
KworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4LmNzczogQWRkZWQuCisgICAgICAgICog
Y3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzczogQWRkZWQuCisgICAgICAgICogcGFn
ZS9uaXgvRXZlbnRIYW5kbGVyTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNwcDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmg6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93
Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ljb25OaXgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbml4L0RyYWdJbWFnZU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25peC9HYW1lcGFkc05peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9MYW5n
dWFnZU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJp
bmdzTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRp
bGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRp
bGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNw
cDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5p
eC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5j
cHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9Tb3VuZE5peC5jcHA6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL25peC9XaWRnZXROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcDogQWRk
ZWQuCisKIDIwMTMtMDctMTAgIE5pY2sgRGllZ28gWWFtYW5lICA8bmljay55YW1hbmVAb3BlbmJv
c3NhLm9yZz4KIAogICAgICAgICBGaXggYSBidWcgaW4gTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpy
ZW1vdmVWaWRlb0NvbXBvbmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvbml4L0ZlYXR1
cmVEZWZpbmVzTml4LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXguaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNDMyYWQwZWQyNjE0YTQxMjI2NmJhYjYzZDk0ZmMyYmVlZTNhNDUwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvbml4L0ZlYXR1cmVEZWZpbmVzTml4LmgKQEAg
LTAsMCArMSwyODEgQEAKKy8qCisqICBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lmbmRlZiBXVEZfRmVh
dHVyZURlZmluZXNOaXhfaAorI2RlZmluZSBXVEZfRmVhdHVyZURlZmluZXNOaXhfaAorCisjaWYg
IWRlZmluZWQoRU5BQkxFXzNEX1JFTkRFUklORykKKyNkZWZpbmUgRU5BQkxFXzNEX1JFTkRFUklO
RyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
CisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorI2RlZmluZSBF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0JMT0IpCisjZGVmaW5lIEVOQUJMRV9CTE9CIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKQorI2RlZmluZSBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5V
UykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTM19URVhUKQorI2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKKyNkZWZpbmUg
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NTU19FWENMVVNJT05TIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19GSUxURVJTKQorI2RlZmluZSBFTkFC
TEVfQ1NTX0ZJTFRFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdF
X09SSUVOVEFUSU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKQorI2RlZmlu
ZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX0lNQUdFX1NFVCkKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9TRVQgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1JFR0lPTlMpCisjZGVmaW5lIEVOQUJMRV9D
U1NfUkVHSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0hBREVSUykK
KyNkZWZpbmUgRU5BQkxFX0NTU19TSEFERVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0NTU19WQVJJQUJMRVMpCisjZGVmaW5lIEVOQUJMRV9DU1NfVkFSSUFCTEVTIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RFVEFJ
TFNfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9EUkFHX1NV
UFBPUlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRkFTVF9NT0JJTEVfU0NST0xM
SU5HKQorI2RlZmluZSBFTkFCTEVfRkFTVF9NT0JJTEVfU0NST0xMSU5HIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0ZJTFRFUlMpCisjZGVmaW5lIEVOQUJMRV9GSUxURVJTIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikKKyNkZWZpbmUgRU5BQkxFX0ZUUERJ
UiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKKyNkZWZp
bmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0dBTUVQQUQpCisjZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0dFU1RVUkVfRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfR0VTVFVSRV9FVkVOVFMg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSUNPTkRBVEFCQVNFKQorI2RlZmluZSBF
TkFCTEVfSUNPTkRBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lGUkFN
RV9TRUFNTEVTUykKKyNkZWZpbmUgRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKQorI2RlZmluZSBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1Ip
CisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfSU5TUEVDVE9SX1NFUlZFUikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikKKyNkZWZp
bmUgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfSklUKQorI2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9WSUVX
UE9SVF9BREFQVElPTikKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9WSUVXUE9SVF9BREFQVElPTiAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX1dFQl9BVURJTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9MTElOVCkKKyNkZWZpbmUgRU5BQkxFX0xMSU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX01BVEhNTCkKKyNkZWZpbmUgRU5BQkxFX01BVEhNTCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVO
VCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NSUNST0RBVEEpCisjZGVmaW5lIEVO
QUJMRV9NSUNST0RBVEEgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkFWSUdBVE9S
X0NPTlRFTlRfVVRJTFMpCisjZGVmaW5lIEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2Rl
ZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9ORVRXT1JLX0lORk8pCisjZGVmaW5lIEVOQUJMRV9ORVRXT1JLX0lORk8gMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0gpCisj
ZGVmaW5lIEVOQUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9QT1BVUF9NRU5VUykKKyNkZWZpbmUgRU5BQkxFX1BPUFVQX01FTlVT
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpCisjZGVm
aW5lIEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorI2RlZmluZSBFTkFCTEVfUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NIQVBFUykK
KyNkZWZpbmUgRU5BQkxFX0NTU19TSEFQRVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9TSEFSRURfV09SS0VSUyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TUUxfREFUQUJBU0UpCisjZGVmaW5lIEVOQUJMRV9T
UUxfREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHKQorI2RlZmlu
ZSBFTkFCTEVfU1ZHIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NWR19GT05UUykK
KyNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9UT1VDSF9BREpVU1RNRU5UKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCisjZGVmaW5lIEVOQUJM
RV9UT1VDSF9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVU5ET19NQU5B
R0VSKQorI2RlZmluZSBFTkFCTEVfVU5ET19NQU5BR0VSIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1ZJREVPKQorI2RlZmluZSBFTkFCTEVfVklERU8gMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkKKyNkZWZpbmUgRU5BQkxFX1ZJRVdf
TU9ERV9DU1NfTUVESUEgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElP
KQorI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfV0VCX1NPQ0tFVFMpCisjZGVmaW5lIEVOQUJMRV9XRUJfU09DS0VUUyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfVElNSU5HKQorI2RlZmluZSBFTkFCTEVfV0VC
X1RJTUlORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XT1JLRVJTKQorI2RlZmlu
ZSBFTkFCTEVfV09SS0VSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9YSFJfUkVT
UE9OU0VfQkxPQikKKyNkZWZpbmUgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCisjZGVmaW5lIEVOQUJMRV9YU0xUIDEKKyNlbmRp
ZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL25peC9QbGF0Zm9ybU5peC5o
IGIvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwYmU0NDM3
YTZjZGMxNjI2YTY0MzU2MjE3MmNiM2ZhODFkZWJkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL25peC9QbGF0Zm9ybU5peC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisqICBDb3B5
cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI2lmbmRlZiBXVEZfUGxhdGZvcm1OaXhfaAorI2RlZmluZSBXVEZfUGxh
dGZvcm1OaXhfaAorCisjZGVmaW5lIFdURl9QTEFURk9STV9OSVggMQorI2RlZmluZSBFTkFCTEVf
R0xPQkFMX0ZBU1RNQUxMT0NfTkVXIDAKKworI2RlZmluZSBXVEZfVVNFXzNEX0dSQVBISUNTIDEK
KyNkZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORyAxCisjZGVmaW5lIFdURl9V
U0VfQ0FJUk8gMQorI2RlZmluZSBXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTIDEKKyNkZWZp
bmUgV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTIDEKKyNkZWZpbmUgV1RGX1VT
RV9GUkVFVFlQRSAxCisjZGVmaW5lIFdURl9VU0VfR0xJQiAxCisjZGVmaW5lIFdURl9VU0VfSEFS
RkJVWlogMQorI2RlZmluZSBXVEZfVVNFX0hBUkZCVVpaX05HIDEKKyNkZWZpbmUgV1RGX1VTRV9J
Q1VfVU5JQ09ERSAxCisjZGVmaW5lIFdURl9VU0VfSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NU
T1JFIDEKKyNkZWZpbmUgV1RGX1VTRV9MRVZFTERCIDEKKyNkZWZpbmUgV1RGX1VTRV9QVEhSRUFE
UyAxCisjZGVmaW5lIFdURl9VU0VfVEVYVFVSRV9NQVBQRVIgMQorI2RlZmluZSBXVEZfVVNFX1RF
WFRVUkVfTUFQUEVSX0dMIDEKKyNkZWZpbmUgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIDEK
KyNkZWZpbmUgV1RGX1VTRV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKKworI2lmICFkZWZpbmVkKFdU
Rl9VU0VfT1BFTkdMX0VTXzIpIHx8ICFXVEZfVVNFX09QRU5HTF9FU18yCisjZGVmaW5lIFdURl9V
U0VfT1BFTkdMIDEKKyNkZWZpbmUgV1RGX1VTRV9HTFggMQorI2RlZmluZSBXVEZfUExBVEZPUk1f
WDExIDEKKyNkZWZpbmUgV1RGX1VTRV9HUkFQSElDU19TVVJGQUNFIDEKKyNlbHNlCisjZGVmaW5l
IFdURl9VU0VfRUdMIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoV1RGX1VTRV9DVVJMKSB8fCAh
V1RGX1VTRV9DVVJMCisjZGVmaW5lIFdURl9VU0VfU09VUCAxCisjZW5kaWYKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc05peC5jc3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc05peC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViMzY2NTI3
YjdlMDU4MTk0YzU0MTcxNWVmNTc4OGVkMDI3NzQ5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcwpAQCAtMCwwICsxLDIwMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAq
IENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworLyogTml4V2ViS2l0IG1lZGlhIGNvbnRyb2xzLiBFeHRlbmRzIG1lZGlhQ29udHJv
bHMuY3NzICovCisKK2F1ZGlvIHsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiAyMHB4
OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAg
IC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjog
Y2VudGVyOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgIGJvdHRvbTogMDsKKyAgICB3aWR0aDogMTAwJTsKKyAgICB6LWluZGV4OiAw
OworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxp
Z246IHJpZ2h0OworfQorCit2aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgYm90dG9tOiAwcHg7Cit9CisKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1tdXRlLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1tdXRlLWJ1
dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBo
ZWlnaHQ6IDIwcHg7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHotaW5kZXg6IDI7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXkt
YnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CisgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGlu
aGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRh
aW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIHsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWNvbnRyb2xzLWJhY2tncm91bmQ7CisgICAg
ZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFs
OworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtcGFjazog
ZW5kOworICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDog
bm9uZTsKKyAgICBoZWlnaHQ6IDIwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1j
dXJyZW50LXRpbWUtZGlzcGxheSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJy
ZW50LXRpbWUtZGlzcGxheTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIGRp
c3BsYXk6IC13ZWJraXQtYm94OworICAgIGhlaWdodDogMjBweDsKKworICAgIHBhZGRpbmc6IDRw
eDsKKworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEwcHg7CisKKyAg
ICBjb2xvcjogYmxhY2s7CisgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKKyAgICB3b3JkLXNw
YWNpbmc6IG5vcm1hbDsKKyAgICBsaW5lLWhlaWdodDogbm9ybWFsOworICAgIHRleHQtdHJhbnNm
b3JtOiBub25lOworICAgIHRleHQtaW5kZW50OiAwOworICAgIHRleHQtc2hhZG93OiBub25lOwor
ICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBmb250LXN0eWxlOiBub3JtYWw7CisgICAg
Zm9udC13ZWlnaHQ6IG5vcm1hbDsKKyAgICBmb250LWZhbWlseTogc2VyaWY7Cit9CisKK2F1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkgeworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLCB2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CisgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBtZWRpYS1zbGlkZXI7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdl
YmtpdC1ib3gtZmxleDogMTsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgcGFkZGluZzogMHB4IDJw
eDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsK
KyAgICBjb2xvcjogaW5oZXJpdDsKKyAgICBtYXJnaW46IGluaXRpYWw7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBi
b3R0b206IDIwcHg7CisgICAgei1pbmRleDogMTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVy
OworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAg
ICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7CisgICAgbWFyZ2luOiBpbml0
aWFsOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9u
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNlZWstYmFjay1idXR0b247CisgICAgZGlzcGxheTog
LXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIGJh
Y2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9y
OiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndh
cmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0
dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNlZWstZm9yd2FyZC1idXR0b247
CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0
OiAyMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0
aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVs
bHNjcmVlbi1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtZnVsbHNjcmVl
bi1idXR0b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7Cisg
ICAgaGVpZ2h0OiAyMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9y
ZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1yZXdpbmQtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29s
b3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0Owor
fQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0
dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0
dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7
CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24g
eworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1i
dXR0b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAg
aGVpZ2h0OiAyMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVy
OiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b247CisgICAgZGlzcGxheTogbm9u
ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsK
KyAgICBjb2xvcjogaW5oZXJpdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFD
b250cm9sc05peEZ1bGxzY3JlZW4uY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzM2Q3MDdkY2FlZWZjM2ViZDA1
YWNjYTZmMDUwZDM0NzgzZjlmNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvbWVkaWFDb250cm9sc05peEZ1bGxzY3JlZW4uY3NzCkBAIC0wLDAgKzEsMTI5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyog
Tml4V2ViS2l0IG1lZGlhIGNvbnRyb2xzIGZvciBmdWxsc2NyZWVuLiAqLworCit2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Cisg
ICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWdu
OiBjZW50ZXI7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgYm90dG9tOiAwOworICAgIHdpZHRoOiAxMDAlOworICAgIHotaW5kZXg6
IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4dC1h
bGlnbjogcmlnaHQ7Cit9CisKK3ZpZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsK
K30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24geworICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247CisgICAgZGlzcGxheTogLXdlYmtp
dC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIGJhY2tncm91
bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhl
cml0OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWlu
ZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY29udHJvbHMtYmFja2dyb3VuZDsK
KyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6
b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1w
YWNrOiBlbmQ7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICAtd2Via2l0LXVzZXItc2Vs
ZWN0OiBub25lOworICAgIGhlaWdodDogMjBweDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXk7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9u
ZTsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHBh
ZGRpbmc6IDRweDsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAxMHB4
OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNw
bGF5IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy10aW1lbGluZSB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1zbGlkZXI7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICBo
ZWlnaHQ6IDIwcHg7CisgICAgcGFkZGluZzogMHB4IDJweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKKyAg
ICBtYXJnaW46IGluaXRpYWw7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyOworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIgeworICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlcjsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKKyAgICBkaXNwbGF5
OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQt
YnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiB7CisgICAgZGlzcGxheTog
bm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0
aW1lLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24geworICAgIGRpc3BsYXk6
IG5vbmU7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRs
ZXJOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMTk3NDE4OGIwMWRmZTYzMmI2ZDVjN2QwNjE4MWVkNDE1N2U0YTdlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4LmNw
cApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2lu
IDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBO
b2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksMjAxMCBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LDIwMTAgU2Ftc3VuZyBFbGVj
dHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRXZlbnRIYW5kbGVyLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZvY3VzQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJTY3Jv
bGxiYXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKK2NvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7CisjZW5k
aWYKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2
ZW50KikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6
OmZvY3VzRG9jdW1lbnRWaWV3KCkKK3sKKyAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKSkKKyAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZSht
X2ZyYW1lKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVu
dFRvV2lkZ2V0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50KQorewor
ICAgIFJlbmRlck9iamVjdCogdGFyZ2V0ID0gZXZlbnQudGFyZ2V0Tm9kZSgpID8gZXZlbnQudGFy
Z2V0Tm9kZSgpLT5yZW5kZXJlcigpIDogMDsKKworICAgIGlmICghdGFyZ2V0IHx8ICF0YXJnZXQt
PmlzV2lkZ2V0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBwYXNzTW91
c2VEb3duRXZlbnRUb1dpZGdldChzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQqPih0YXJnZXQpLT53
aWRnZXQoKSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZl
bnRUb1dpZGdldChSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCkKK3sKKyAgICByZXR1cm4gcGFz
c01vdXNlRG93bkV2ZW50VG9XaWRnZXQocmVuZGVyV2lkZ2V0LT53aWRnZXQoKSk7Cit9CisKK2Jv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50
SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQsIFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCh3aWRnZXQpOwor
ICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQpOworfQorCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKK1Bhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURy
YWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpOworfQorI2VuZGlmCisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91
c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYs
IEZyYW1lKiBzdWJmcmFtZSkKK3sKKyAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtZXYuZXZlbnQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lLCBIaXRUZXN0UmVzdWx0KiBo
b3ZlcmVkTm9kZSkKK3sKKyAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNl
TW92ZUV2ZW50KG1ldi5ldmVudCgpLCBob3ZlcmVkTm9kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAg
IHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobWV2LmV2
ZW50KCkpOworICAgIHJldHVybiB0cnVlOworfQorCit1bnNpZ25lZCBFdmVudEhhbmRsZXI6OmFj
Y2Vzc0tleU1vZGlmaWVycygpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsK
K30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYjZlZjFi
NjUyZDcyNDY5NmJmZmQ2NWMzNTA1NDJlYWNiZWQzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wu
Y3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaCIKKwor
I2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093
blB0cjxHTENvbnRleHRGcm9tQ3VycmVudEVHTD4gR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OmNy
ZWF0ZUZyb21DdXJyZW50R0xDb250ZXh0KCkKK3sKKyAgICBpZiAoIWluaXRpYWxpemUoKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHTENvbnRleHRG
cm9tQ3VycmVudEVHTCgpKTsKK30KKworR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OkdMQ29udGV4
dEZyb21DdXJyZW50RUdMKCkKKyAgICA6IG1fZGlzcGxheShlZ2xHZXRDdXJyZW50RGlzcGxheSgp
KQorICAgICwgbV9zdXJmYWNlKGVnbEdldEN1cnJlbnRTdXJmYWNlKEVHTF9EUkFXKSkKKyAgICAs
IG1fY29udGV4dChlZ2xHZXRDdXJyZW50Q29udGV4dCgpKQoreworfQorCitib29sIEdMQ29udGV4
dEZyb21DdXJyZW50RUdMOjptYWtlQ29udGV4dEN1cnJlbnQoKQoreworICAgIEdMQ29udGV4dDo6
bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZGlzcGxh
eSwgbV9zdXJmYWNlLCBtX3N1cmZhY2UsIG1fY29udGV4dCk7Cit9CisKK2Jvb2wgR0xDb250ZXh0
RnJvbUN1cnJlbnRFR0w6OmluaXRpYWxpemUoKQoreworICAgIHN0YXRpYyBib29sIGluaXRpYWxp
emVkID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2wgc3VjY2VzcyA9IHRydWU7CisgICAgaWYgKCFp
bml0aWFsaXplZCkgeworICAgICAgICBzdWNjZXNzID0gaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCk7
CisgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIHN1Y2Nlc3M7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWIyOGRjNjc5ZGVmZjg2MzAzMzNmMWI1MGI3NDExOTY2ODY0ZWJiMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRGcm9tQ3VycmVudEVHTC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEdMQ29udGV4dEZyb21DdXJyZW50RUdMX2gKKyNkZWZpbmUg
R0xDb250ZXh0RnJvbUN1cnJlbnRFR0xfaAorCisjaW5jbHVkZSAiR0xDb250ZXh0LmgiCisjaW5j
bHVkZSA8RUdML2VnbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4
dEZyb21DdXJyZW50RUdMIDogcHVibGljIEdMQ29udGV4dCB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wpOworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
T3duUHRyPEdMQ29udGV4dEZyb21DdXJyZW50RUdMPiBjcmVhdGVGcm9tQ3VycmVudEdMQ29udGV4
dCgpOworCisgICAgdmlydHVhbCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIE9WRVJSSURFOwor
CisgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVh
bCBJbnRTaXplIGRlZmF1bHRGcmFtZUJ1ZmZlclNpemUoKSBPVkVSUklERSB7IHJldHVybiBJbnRT
aXplKCk7IH0KKyAgICB2aXJ0dWFsIGNhaXJvX2RldmljZV90KiBjYWlyb0RldmljZSgpIE9WRVJS
SURFIHsgcmV0dXJuIDA7IH0KKworICAgIHZpcnR1YWwgYm9vbCBjYW5SZW5kZXJUb0RlZmF1bHRG
cmFtZWJ1ZmZlcigpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkgT1ZFUlJJREUgeyByZXR1
cm4gdGhpczsgfQorICAgIHZpcnR1YWwgdm9pZCB3YWl0TmF0aXZlKCkgT1ZFUlJJREUgeyB9CisK
K3ByaXZhdGU6CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZSgpOworCisgICAgR0xDb250ZXh0
RnJvbUN1cnJlbnRFR0woKTsKKworICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5OworICAgIEVHTFN1
cmZhY2UgbV9zdXJmYWNlOworICAgIEVHTENvbnRleHQgbV9jb250ZXh0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gR0xDb250ZXh0RnJvbUN1cnJlbnRFR0xfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Bs
YXRmb3JtVmlkZW9XaW5kb3dOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlkZW9XaW5kb3dOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkOWRh
MmY5MGQ2YjYwMzcxNDMzMGYzOTZmNDE1YjA4NjczZDA2NDAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dp
bmRvd05peC5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1WaWRlb1dpbmRvdy5oIgorCisjaWYgVVNFKEdTVFJFQU1FUikgJiYgIWRl
ZmluZWQoR1NUX0FQSV9WRVJTSU9OXzEpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGxhdGZvcm1WaWRlb1dpbmRvdzo6UGxhdGZv
cm1WaWRlb1dpbmRvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUGxhdGZvcm1W
aWRlb1dpbmRvdzo6flBsYXRmb3JtVmlkZW9XaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1WaWRlb1dpbmRvdzo6cHJlcGFyZUZvck92ZXJsYXkoR3N0
TWVzc2FnZSopCit7Cit9CisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKSAmJiAhZGVmaW5lZChH
U1RfQVBJX1ZFUlNJT05fMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25peC9JY29uTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25peC9JY29uTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDNmOGQzMmU0ZDMwYjQ0ZGMwMzYxNzg5NTQ5
YzNiYTcyYjlhMmI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbml4L0ljb25OaXguY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJJY29uLmgi
CisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQor
CitQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
dm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzZlMTNiNDJiNDYxOGI1
Y2VjYWM1MDY2NDViMGU2MzY5YTUwYmZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJbWFnZS5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEJpdG1hcElt
YWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKK3sKK30KKworc3RhdGljIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXJGYWxsYmFjaygpCit7CisgICAg
cmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7IC8vIEZJWE1FOiBmYWxsYmFjayBpbWFnZT8K
K30KKworc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBsb2FkUmVzb3VyY2VTaGFyZWRC
dWZmZXIoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShtYWtlU3RyaW5nKERB
VEFfRElSICIvd2Via2l0LTEuMC9pbWFnZXMvIiwgbmFtZSwgIi5wbmciKSk7CisgICAgaWYgKGJ1
ZmZlcikKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGxvYWRS
ZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IElt
YWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIFJlZlB0
cjxCaXRtYXBJbWFnZT4gaW1nID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihuYW1lKTsKKyAg
ICBpbWctPnNldERhdGEoYnVmZmVyLnJlbGVhc2UoKSwgdHJ1ZSk7CisgICAgcmV0dXJuIGltZy5y
ZWxlYXNlKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25p
eC9DdXJzb3JOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNvck5peC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTc3ZWYwY2NlM2JlOTdmZWFhZDQ4ZjY3ODcwNTU2ZGI4YTExNTJjNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9DdXJzb3JOaXgu
Y3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IERpcmsgTXVl
bGxlciA8bXVlbGxlckBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEdlb3JnZSBTdGFp
a29zIDxzdGFpa29zQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQ2hhcmxlcyBTYW11
ZWxzIDxjaGFybGVzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1cnNvcjo6Q3Vyc29yKGNvbnN0IEN1cnNv
ciYgb3RoZXIpCisgICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQorICAgICwgbV9pbWFnZShvdGhl
ci5tX2ltYWdlKQorICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKKyAgICAsIG1fcGxh
dGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNvcikKK3sKK30KKworQ3Vyc29yOjp+Q3Vy
c29yKCkKK3sKK30KKworQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90
aGVyKQoreworICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKKyAgICBtX2ltYWdlID0gb3RoZXIu
bV9pbWFnZTsKKyAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7CisgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7CisgICAgcmV0dXJuICp0aGlzOworfQor
CitzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nKEN1cnNvcjo6VHlwZSB0eXBlKQorewor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmdzW10gPSB7CisgICAgICAgICJjdXJz
b3IvcG9pbnRlciIsCisgICAgICAgICJjdXJzb3IvY3Jvc3MiLAorICAgICAgICAiY3Vyc29yL2hh
bmQiLAorICAgICAgICAiY3Vyc29yL2lfYmVhbSIsCisgICAgICAgICJjdXJzb3Ivd2FpdCIsCisg
ICAgICAgICJjdXJzb3IvaGVscCIsCisgICAgICAgICJjdXJzb3IvZWFzdF9yZXNpemUiLAorICAg
ICAgICAiY3Vyc29yL25vcnRoX3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfZWFzdF9y
ZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1
cnNvci9zb3V0aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL3NvdXRoX2Vhc3RfcmVzaXplIiwK
KyAgICAgICAgImN1cnNvci9zb3V0aF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivd2Vz
dF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25vcnRoX3NvdXRoX3Jlc2l6ZSIsCisgICAgICAg
ICJjdXJzb3IvZWFzdF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfZWFzdF9z
b3V0aF93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfd2VzdF9zb3V0aF9lYXN0
X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3IvY29sdW1uX3Jlc2l6ZSIsCisgICAgICAgICJjdXJz
b3Ivcm93X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3IvbWlkZGxlX3Bhbm5pbmciLAorICAgICAg
ICAiY3Vyc29yL2Vhc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfcGFubmluZyIs
CisgICAgICAgICJjdXJzb3Ivbm9ydGhfZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9u
b3J0aF93ZXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL3NvdXRoX3Bhbm5pbmciLAorICAg
ICAgICAiY3Vyc29yL3NvdXRoX2Vhc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivc291dGhf
d2VzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci93ZXN0X3Bhbm5pbmciLAorICAgICAgICAi
Y3Vyc29yL21vdmUiLAorICAgICAgICAiY3Vyc29yL3ZlcnRpY2FsX3RleHQiLAorICAgICAgICAi
Y3Vyc29yL2NlbGwiLAorICAgICAgICAiY3Vyc29yL2NvbnRleHRfbWVudSIsCisgICAgICAgICJj
dXJzb3IvYWxpYXMiLAorICAgICAgICAiY3Vyc29yL3Byb2dyZXNzIiwKKyAgICAgICAgImN1cnNv
ci9ub19kcm9wIiwKKyAgICAgICAgImN1cnNvci9jb3B5IiwKKyAgICAgICAgImN1cnNvci9ub25l
IiwKKyAgICAgICAgImN1cnNvci9ub3RfYWxsb3dlZCIsCisgICAgICAgICJjdXJzb3Ivem9vbV9p
biIsCisgICAgICAgICJjdXJzb3Ivem9vbV9vdXQiLAorICAgICAgICAiY3Vyc29yL2dyYWIiLAor
ICAgICAgICAiY3Vyc29yL2dyYWJiaW5nIiwKKyAgICAgICAgIiJ9OyAvLyBGSVhNRTogSnVzdCBy
ZXR1cm4gIiIgZm9yIGN1c3RvbSB0eXBlLiBXZSBkb24ndCBzdXBwb3J0IGl0IG5vdy4KKyAgICBy
ZXR1cm4gY3Vyc29yU3RyaW5nc1t0eXBlXTsKK30KKwordm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRm
b3JtQ3Vyc29yKCkgY29uc3QKK3sKKyAgICBpZiAobV9wbGF0Zm9ybUN1cnNvcikKKyAgICAgICAg
cmV0dXJuOworICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjdXJzb3JTdHJpbmcobV90eXBlKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWZmYjY5ODZhZmE0ZjIxZWIwMjc1NzdiNmYxYWMxNjQ5NzE1Yzc3NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHAKQEAg
LTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEcmFnRGF0YS5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Ym9vbCBEcmFnRGF0YTo6Y2FuU21hcnRSZXBsYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29sb3IoKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5h
bWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3QKK3sKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFp
bnNQbGFpblRleHQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIERy
YWdEYXRhOjphc1BsYWluVGV4dChGcmFtZSopIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitDb2xvciBEcmFnRGF0YTo6YXNDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENv
bG9yKCk7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBj
b25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNV
UkwoRnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252
ZXJzaW9uUG9saWN5LCBTdHJpbmcqKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnRGF0YTo6YXNGcmFnbWVudChGcmFt
ZSosIFBhc3NSZWZQdHI8UmFuZ2U+LCBib29sLCBib29sJikgY29uc3QKK3sKKyAgICByZXR1cm4g
MDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJ
bWFnZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0ltYWdlTml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kZGFjODYxMmMxM2JmNTlmNWU1NDM5MTZkMTI4N2ZlZmNmOGJmMDVjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdJbWFnZU5p
eC5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIkNh
Y2hlZEltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFn
SW1hZ2VSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50U2l6ZSgw
LCAwKTsKK30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK0RyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1h
Z2VSZWYgaW1hZ2UsIEZsb2F0U2l6ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlv
bihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1h
Z2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9HYW1lcGFkc05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
R2FtZXBhZHNOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlNzdjN2NlNzE2ZDNmZTA3MzhkZGIxZTkzYzE1
NzhhMzBkNWJmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvR2FtZXBhZHNOaXguY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UK
KyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHYW1lcGFkcy5oIgorCisjaWYgRU5BQkxFKEdBTUVQ
QUQpCisKKyNpbmNsdWRlICJHYW1lcGFkTGlzdC5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9y
bS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdhbWVwYWRMaXN0OworCit2b2lk
IHNhbXBsZUdhbWVwYWRzKEdhbWVwYWRMaXN0KiBpbnRvKQoreworICAgIFdlYktpdDo6V2ViR2Ft
ZXBhZHMgZ2FtZXBhZHM7CisKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnNhbXBs
ZUdhbWVwYWRzKGdhbWVwYWRzKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXZWJL
aXQ6OldlYkdhbWVwYWRzOjppdGVtc0xlbmd0aENhcDsgKytpKSB7CisgICAgICAgIFdlYktpdDo6
V2ViR2FtZXBhZCYgd2ViR2FtZXBhZCA9IGdhbWVwYWRzLml0ZW1zW2ldOworICAgICAgICBpZiAo
aSA8IGdhbWVwYWRzLmxlbmd0aCAmJiB3ZWJHYW1lcGFkLmNvbm5lY3RlZCkgeworICAgICAgICAg
ICAgUmVmUHRyPEdhbWVwYWQ+IGdhbWVwYWQgPSBpbnRvLT5pdGVtKGkpOworICAgICAgICAgICAg
aWYgKCFnYW1lcGFkKQorICAgICAgICAgICAgICAgIGdhbWVwYWQgPSBHYW1lcGFkOjpjcmVhdGUo
KTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmlkKHdlYkdhbWVwYWQuaWQpOworICAgICAgICAgICAg
Z2FtZXBhZC0+aW5kZXgoaSk7CisgICAgICAgICAgICBnYW1lcGFkLT50aW1lc3RhbXAod2ViR2Ft
ZXBhZC50aW1lc3RhbXApOworICAgICAgICAgICAgZ2FtZXBhZC0+YXhlcyh3ZWJHYW1lcGFkLmF4
ZXNMZW5ndGgsIHdlYkdhbWVwYWQuYXhlcyk7CisgICAgICAgICAgICBnYW1lcGFkLT5idXR0b25z
KHdlYkdhbWVwYWQuYnV0dG9uc0xlbmd0aCwgd2ViR2FtZXBhZC5idXR0b25zKTsKKyAgICAgICAg
ICAgIGludG8tPnNldChpLCBnYW1lcGFkKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBp
bnRvLT5zZXQoaSwgMCk7CisgICAgfQorfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk3MDdjMWY2YmYyZjM1
ZTllNmQ3ZWJmY2NjNjI2MWI4N2JmMTVhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5jcHAKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lh
IGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJM
YW5ndWFnZS5oIgorCisjaW5jbHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCit7CisgICAgY2hhciogbG9jYWxl
RGVmYXVsdCA9IHNldGxvY2FsZShMQ19DVFlQRSwgMCk7CisKKyAgICBpZiAoIWxvY2FsZURlZmF1
bHQpCisgICAgICAgIHJldHVybiBTdHJpbmcoImMiKTsKKworICAgIFN0cmluZyBsb2NhbGUgPSBT
dHJpbmcobG9jYWxlRGVmYXVsdCk7CisgICAgbG9jYWxlLnJlcGxhY2UoJ18nLCAnLScpOworICAg
IHNpemVfdCBwb3NpdGlvbiA9IGxvY2FsZS5maW5kKCcuJyk7CisgICAgaWYgKHBvc2l0aW9uICE9
IG5vdEZvdW5kKQorICAgICAgICBsb2NhbGUgPSBsb2NhbGUubGVmdChwb3NpdGlvbik7CisKKyAg
ICByZXR1cm4gbG9jYWxlOworfQorCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQoreworICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXM7CisgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQocGxhdGZvcm1MYW5ndWFnZSgp
KTsKKyAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmluZ3NOaXguY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmluZ3NOaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEzZWMzYjVlZDBlNzcwODVmMzM2MjU1ZTE5ZWIwNTBiMWEyZTlhYmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05p
eC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IE1p
Y2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KKyAqIENvcHlyaWdodCAoQykgMjAwNyBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlh
biBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IE51
YW50aSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCBJbnN0aXR1dG8gTm9raWEgZGUg
VGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVk
IHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGxv
Y2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMjUx
NGM2YmQzYjU3YWJlNWJkYzM2OGE3ZjJjMjgxNDhmYzQzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCkBAIC0w
LDAgKzEsMjA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTml4S2V5Ym9hcmRVdGlsaXRpZXMuaCIKKworI2lu
Y2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5o
IgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gS2V5TWFwOwordHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgaW50PiBXaW5kb3dzS2V5TWFwOwordHlwZWRlZiBIYXNoTWFwPGludCwg
Y29uc3QgY2hhcio+IEtleUNvbW1hbmRNYXA7CisKK3N0YXRpYyBLZXlNYXAmIGtleU1hcCgpCit7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChLZXlNYXAsIGtleU1hcCwgKCkpOworICAgIHJldHVy
biBrZXlNYXA7Cit9CisKK3N0YXRpYyBXaW5kb3dzS2V5TWFwJiB3aW5kb3dzS2V5TWFwKCkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdpbmRvd3NLZXlNYXAsIHdpbmRvd3NLZXlNYXAsICgp
KTsKKyAgICByZXR1cm4gd2luZG93c0tleU1hcDsKK30KKworc3RhdGljIEtleUNvbW1hbmRNYXAm
IGtleURvd25Db21tYW5kc01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChLZXlDb21t
YW5kTWFwLCBrZXlEb3duQ29tbWFuZHNNYXAsICgpKTsKKyAgICByZXR1cm4ga2V5RG93bkNvbW1h
bmRzTWFwOworfQorCitzdGF0aWMgS2V5Q29tbWFuZE1hcCYga2V5UHJlc3NDb21tYW5kc01hcCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChLZXlDb21tYW5kTWFwLCBrZXlQcmVzc0NvbW1h
bmRzTWFwLCAoKSk7CisgICAgcmV0dXJuIGtleVByZXNzQ29tbWFuZHNNYXA7Cit9CisKK3N0YXRp
YyBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzVG9LZXlNYXAoY29uc3QgY2hhciBmcm9tLCBjb25z
dCBjaGFyIHRvKQoreworICAgIGZvciAoY2hhciBjID0gZnJvbTsgYyA8PSB0bzsgYysrKQorICAg
ICAgICBrZXlNYXAoKS5zZXQoU3RyaW5nKCZjLCAxKSwgU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIs
IGMpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFkZENoYXJhY3RlcnNUb1dpbktleU1hcChj
b25zdCBjaGFyIGZyb20sIGNvbnN0IGNoYXIgdG8sIGNvbnN0IGludCBiYXNlQ29kZSkKK3sKKyAg
ICBpbnQgaSA9IDA7CisgICAgZm9yIChjaGFyIGMgPSBmcm9tOyBjIDw9IHRvOyBjKyssIGkrKykK
KyAgICAgICAgd2luZG93c0tleU1hcCgpLnNldChTdHJpbmcoJmMsIDEpLCBiYXNlQ29kZSArIGkp
OworfQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSA9IDEgPDwgMDsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBBbHRLZXkgPSAxIDw8IDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hp
ZnRLZXkgPSAxIDw8IDI7CisKK3N0cnVjdCBLZXlEb3duRW50cnkgeworICAgIHVuc2lnbmVkIHZp
cnR1YWxLZXk7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0IGNoYXIqIG5hbWU7
Cit9OworCitzdHJ1Y3QgS2V5UHJlc3NFbnRyeSB7CisgICAgdW5zaWduZWQgY2hhckNvZGU7Cisg
ICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitzdGF0
aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURvd25FbnRyaWVzW10gPSB7CisgICAgeyBWS19MRUZU
LCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1v
dmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19M
RUZULCAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkTGVmdCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXkgfCBTaGlmdEtleSwg
Ik1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19SSUdIVCwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVSaWdodCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIFNoaWZ0S2V5LCAgICAgICAg
ICAgIk1vdmVSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkUmlnaHQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlm
dEtleSwgIk1vdmVXb3JkUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19VUCwgICAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVVcCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19QUklPUiwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlVXBBbmRNb2Rp
ZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIDAsICAgICAg
ICAgICAgICAgICAgIk1vdmVEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVEb3duQW5kTW9k
aWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ORVhULCAgIFNoaWZ0
S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQYWdlVXAi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ORVhULCAgIDAs
ICAgICAgICAgICAgICAgICAgIk1vdmVQYWdlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0Jl
Z2lubmluZ09mTGluZSIgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAg
IFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVj
dGlvbiIgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVU
b0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01F
LCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnRBbmRNb2Rp
ZnlTZWxlY3Rpb24iIH0sCisKKyAgICB7IFZLX0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAi
TW92ZVRvRW5kT2ZMaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X0VORCwgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSwgICAgICAgICAg
ICAiTW92ZVRvRW5kT2ZEb2N1bWVudCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgfSwKKworICAgIHsgVktfQkFDSywgICAwLCAgICAgICAgICAg
ICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfQkFDSywgICBTaGlmdEtleSwgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAg
ICAgICAgICAgICJEZWxldGVGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3JkQmFja3dh
cmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCBDdHJsS2V5
LCAgICAgICAgICAgICJEZWxldGVXb3JkRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorCisgICAgeyAnQicsICAgICAgIEN0cmxLZXksICAgICAgICAgICAgIlRvZ2dsZUJvbGQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnSScsICAgICAgIEN0
cmxLZXksICAgICAgICAgICAgIlRvZ2dsZUl0YWxpYyIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuY2Vs
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX09FTV9Q
RVJJT0QsIEN0cmxLZXksICAgICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5z
ZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RB
QiwgICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgMCwgICAgICAgICAgICAgICAgICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAg
ICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBLZXlQcmVzc0VudHJ5
IGtleVByZXNzRW50cmllc1tdID0geworICAgIHsgJ1x0JywgICAwLCAgICAgICAgICAgICAgICAg
ICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
J1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJ
bnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xy
JywgICBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywg
ICBBbHRLZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorfTsKKworc3RhdGljIHZvaWQgY3JlYXRlS2V5RG93bkNvbW1hbmRNYXAo
KQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlEb3du
RW50cmllcyk7ICsraSkKKyAgICAgICAga2V5RG93bkNvbW1hbmRzTWFwKCkuc2V0KGtleURvd25F
bnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURvd25FbnRyaWVzW2ldLnZpcnR1YWxLZXks
IGtleURvd25FbnRyaWVzW2ldLm5hbWUpOworfQorCitzdGF0aWMgdm9pZCBjcmVhdGVLZXlQcmVz
c0NvbW1hbmRNYXAoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xF
TkdUSChrZXlQcmVzc0VudHJpZXMpOyArK2kpCisgICAgICAgIGtleVByZXNzQ29tbWFuZHNNYXAo
KS5zZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleVByZXNzRW50cmll
c1tpXS5jaGFyQ29kZSwga2V5UHJlc3NFbnRyaWVzW2ldLm5hbWUpOworfQorCitjb25zdCBjaGFy
KiBnZXRLZXlEb3duQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7Cisg
ICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisg
ICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQor
ICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC0+Y3RybEtleSgpKQor
ICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKworICAgIGludCBtYXBLZXkgPSBtb2RpZmll
cnMgPDwgMTYgfCBldmVudC0+a2V5Q29kZSgpOworICAgIGlmICghbWFwS2V5KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIGlmIChrZXlEb3duQ29tbWFuZHNNYXAoKS5pc0VtcHR5KCkpCisgICAg
ICAgIGNyZWF0ZUtleURvd25Db21tYW5kTWFwKCk7CisKKyAgICByZXR1cm4ga2V5RG93bkNvbW1h
bmRzTWFwKCkuZ2V0KG1hcEtleSk7Cit9CisKK2NvbnN0IGNoYXIqIGdldEtleVByZXNzQ29tbWFu
ZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZp
ZXJzID0gMDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8
PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMg
fD0gQWx0S2V5OworICAgIGlmIChldmVudC0+Y3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMg
fD0gQ3RybEtleTsKKworICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC0+
Y2hhckNvZGUoKTsKKyAgICBpZiAoIW1hcEtleSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBp
ZiAoa2V5UHJlc3NDb21tYW5kc01hcCgpLmlzRW1wdHkoKSkKKyAgICAgICAgY3JlYXRlS2V5UHJl
c3NDb21tYW5kTWFwKCk7CisKKyAgICByZXR1cm4ga2V5UHJlc3NDb21tYW5kc01hcCgpLmdldCht
YXBLZXkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNTYx
MGM3ZTlkZTBmYzJlODJkODQ0NDg1M2JjM2U3N2JmOGRlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuaApAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE5peEtleWJvYXJkVXRpbGl0aWVzX2gKKyNkZWZpbmUgTml4S2V5Ym9hcmRVdGlsaXRpZXNfaAor
CituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFN0cmluZzsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBLZXlib2FyZEV2ZW50OworCitjb25zdCBjaGFyKiBnZXRLZXlEb3duQ29tbWFu
ZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCopOworY29uc3QgY2hhciogZ2V0S2V5UHJlc3NDb21t
YW5kTmFtZShjb25zdCBLZXlib2FyZEV2ZW50Kik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIE5peEtleWJvYXJkVXRpbGl0aWVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODNjZGY3NGU2N2FiYzJm
YTgxZTA5YWY2MDY3MjI2ZWQ4NTlhZmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmROaXguY3BwCkBAIC0wLDAgKzEsMTYxIEBACisvKgor
ICogIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogIENv
cHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogIENvcHlyaWdo
dCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogIENvcHly
aWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGFzdGVib2FyZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlYm9hcmQqIFBhc3RlYm9hcmQ6OmdlbmVyYWxQ
YXN0ZWJvYXJkKCkKK3sKKyAgICBzdGF0aWMgUGFzdGVib2FyZCogcGFzdGVib2FyZCA9IG5ldyBQ
YXN0ZWJvYXJkKCk7CisgICAgcmV0dXJuIHBhc3RlYm9hcmQ7Cit9CisKK1Bhc3RlYm9hcmQ6OlBh
c3RlYm9hcmQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rp
b24oUmFuZ2UqLCBib29sLCBGcmFtZSosIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNs
aXBib2FyZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKE5vZGUqLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlQ2xpcGJvYXJkKENsaXBib2FyZCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpjbGVhcigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUq
LCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwgYm9vbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFt
ZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworfQorCitQYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVy
biBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
CitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisKK1Bhc3NPd25Q
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJh
Z0RhdGEmKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKyNlbmRp
ZgorCitib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0
cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6
OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitMaXN0SGFzaFNldDxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVz
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJp
bmc+KCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9
CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQordm9pZCBQYXN0ZWJvYXJkOjpzZXREcmFnSW1h
Z2UoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKyNlbmRpZgorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQ
YXN0ZWJvYXJkJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXgu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkMGVmNmMzNDBjOTgwM2FmZWFmYWZmMDE3N2E2NzIzYTMxYWE4ZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1L
ZXlib2FyZEV2ZW50Tml4LmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IERpZWdvIEhpZGFsZ28gQy4gR29uemFsZXoKKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKworI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCisjaW5jbHVk
ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93
bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCkKK3sKKyAgICBBU1NFUlQobV90eXBlID09IEtleURvd24p
OworICAgIG1fdHlwZSA9IHR5cGU7CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpS
YXdLZXlEb3duKSB7CisgICAgICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9k
aWZpZWRUZXh0ID0gU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlm
aWVyID0gU3RyaW5nKCk7CisgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAg
ICB9Cit9CisKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0
ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBz
aGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9vbCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgc2hpZnRLZXkgPSBmYWxzZTsKKyAgICBjdHJsS2V5
ID0gZmFsc2U7CisgICAgYWx0S2V5ID0gZmFsc2U7CisgICAgbWV0YUtleSA9IGZhbHNlOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3Jl
ZW5OaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YmZiM2FjM2VkMjE0MzBhZDFlYWEyZWJlNDBiOTZmOGY0YTUxMDZj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3Jt
U2NyZWVuTml4LmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
LTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisK
KyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIldpZGdldC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2Ny
ZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERQSShXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5EZXB0aChXaWRn
ZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBz
Y3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0Zsb2F0UmVj
dCBzY3JlZW5SZWN0KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gRmxvYXRSZWN0KDAsIDAsIDEwMjQsIDc2OCk7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5BdmFp
bGFibGVSZWN0KFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIHNjcmVlblJlY3Qod2lkZ2V0KTsKK30KKwordm9pZCBzY3JlZW5Db2xvclByb2ZpbGUo
Q29sb3JQcm9maWxlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvU291bmROaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTFiYmVmZmU0OWMw
M2RmM2QxMGVkMGY0ZTU2NDYyOGY4YWU3MjVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNv
dW5kLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
OGQzMDk3M2QyMDA1NDYyYjJlOGNmMzM2ZmEyMmIzMGZkZjU1NGZiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHAKQEAgLTAsMCArMSw5
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXaWRnZXQuaCIKKworI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1
ZGUgIkN1cnNvci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKKyAgICA6
IG1fcGFyZW50KDApCisgICAgLCBtX3dpZGdldCgwKQorICAgICwgbV9zZWxmVmlzaWJsZShmYWxz
ZSkKKyAgICAsIG1fcGFyZW50VmlzaWJsZShmYWxzZSkKKyAgICAsIG1fZnJhbWUoMCwgMCwgMCwg
MCkKK3sKKyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAg
QVNTRVJUKCFwYXJlbnQoKSk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25z
dAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgV2lkZ2V0
OjpmcmFtZVJlY3RzQ2hhbmdlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkK
K3sKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKK3sK
KyAgICBTY3JvbGxWaWV3KiB2aWV3ID0gcm9vdCgpOworICAgIGlmICghdmlldykKKyAgICAgICAg
cmV0dXJuOworICAgIHZpZXctPmhvc3RXaW5kb3coKS0+c2V0Q3Vyc29yKGN1cnNvcik7Cit9CisK
K3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRn
ZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRJc1NlbGVjdGVkKGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2ZhNzczODhkZjdjNmFmZDcxYWQxMjY3ODY5ZWYwNTA0
YjQ2NmVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9u
aXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHAKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY29uc3QgY2hhciogY3VycmVudFNlYXJjaExvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4g
IiI7Cit9CisKK2NvbnN0IGNoYXIqIGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpCit7CisgICAg
cmV0dXJuICJlbl91cyI7Cit9CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206457</attachid>
            <date>2013-07-11 06:23:09 -0700</date>
            <delta_ts>2013-09-09 07:07:33 -0700</delta_ts>
            <desc>New reviewed patch.</desc>
            <filename>bug-118358-20130711102053.patch</filename>
            <type>text/plain</type>
            <size>83858</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyYWRmNjc3YjlhMjZmODJkODNjMzZl
OGRmODhhMTY5YThiNTRlMGEuLjEzOTMzMTJjNGJhY2U5MGJjMTU3M2VhZjVhMDNkZmQ2ZjFlNzM4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMTEgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpY2FsbHkgYWRkaW5nIGFsbCBmaWxl
cyB0aGF0IGhhdmUgIk5peCIgaW4gdGhlaXIgbmFtZXMgYW5kCisgICAgICAgIGFyZSByZWxhdGVk
IHRvIFdlYkNvcmUgbW9kdWxlLgorCisgICAgICAgICogd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvbml4L1BsYXRmb3JtTml4Lmg6IEFkZGVkLgorCiAy
MDEzLTA3LTExICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSB1bnVzZWQgV2luZG93cyBDRSBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY5ZDQ2NGZm
ZmNhOTRmMDE3OGEwYTM1ZjEyZjdkNDc5NjUzZjRiMzcuLjYxY2RjODgzMGViN2EwZGViZWE1OWQ2
Zjg1OTczNmMzMzc3MjIxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMy0wNy0x
MSAgTHVjaWFubyBXb2xmICA8bHVjaWFuby53b2xmQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
Tml4IHVwc3RyZWFtaW5nIC0gQWRkaW5nIHN0dWJzIGFuZCBOaXggc3BlY2lmaWMgcGxhdGZvcm0g
ZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODM1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJh
c2ljYWxseSBhZGRpbmcgYWxsIGZpbGVzIHRoYXQgaGF2ZSAiTml4IiBpbiB0aGVpciBuYW1lcyBh
bmQKKyAgICAgICAgYXJlIHJlbGF0ZWQgdG8gV2ViQ29yZSBtb2R1bGUuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBUaGV5IHdpbGwgYmUgdXBsb2FkZWQgb24gYW5vdGhlciBwYXRjaCBkdXJpbmcg
dGhlCisgICAgICAgIHVwc3RyZWFtaW5nIHByb2Nlc3MuCisKKyAgICAgICAgKiBjc3MvbWVkaWFD
b250cm9sc05peC5jc3M6IEFkZGVkLgorICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzTml4RnVs
bHNjcmVlbi5jc3M6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5j
cHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9t
Q3VycmVudEVHTC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRGcm9tQ3VycmVudEVHTC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHA6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbml4L0N1cnNvck5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9E
cmFnRGF0YU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9EcmFnSW1hZ2VO
aXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXguY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHA6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uaXgvU291bmROaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgv
V2lkZ2V0Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9uaXgvVGV4dEJy
ZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHA6IEFkZGVkLgorCiAyMDEzLTA3LTExICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgaXNI
VE1MVGl0bGVFbGVtZW50IGFuZCB0b0hUTUxUaXRsZUVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL25peC9GZWF0dXJlRGVmaW5lc05peC5oIGIvU291cmNlL1dURi93dGYvbml4L0Zl
YXR1cmVEZWZpbmVzTml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQzMmFkMGVkMjYxNGE0MTIyNjZiYWI2M2Q5
NGZjMmJlZWUzYTQ1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL25peC9GZWF0
dXJlRGVmaW5lc05peC5oCkBAIC0wLDAgKzEsMjgxIEBACisvKgorKiAgQ29weXJpZ2h0IChDKSAy
MDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNpZm5kZWYgV1RGX0ZlYXR1cmVEZWZpbmVzTml4X2gKKyNkZWZpbmUgV1RGX0ZlYXR1cmVE
ZWZpbmVzTml4X2gKKworI2lmICFkZWZpbmVkKEVOQUJMRV8zRF9SRU5ERVJJTkcpCisjZGVmaW5l
IEVOQUJMRV8zRF9SRU5ERVJJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorI2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9CTE9CKQorI2RlZmluZSBFTkFCTEVfQkxP
QiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykKKyNk
ZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0NPTlRFWFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkKKyNkZWZpbmUgRU5BQkxFX0NT
UzNfVEVYVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJ
T05fQlJFQUspCisjZGVmaW5lIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpCisjZGVmaW5lIEVOQUJM
RV9DU1NfRVhDTFVTSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfRklM
VEVSUykKKyNkZWZpbmUgRU5BQkxFX0NTU19GSUxURVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFH
RV9PUklFTlRBVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9TRVQpCisjZGVmaW5lIEVOQUJMRV9D
U1NfSU1BR0VfU0VUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19SRUdJT05T
KQorI2RlZmluZSBFTkFCTEVfQ1NTX1JFR0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX1NIQURFUlMpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0hBREVSUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKQorI2RlZmluZSBFTkFCTEVfQ1NT
X1ZBUklBQkxFUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElTVF9FTEVN
RU5UKQorI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9ERVRBSUxTX0VM
RU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQT1JUKQorI2Rl
ZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0ZBU1RfTU9CSUxFX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0ZBU1RfTU9CSUxFX1NDUk9M
TElORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxURVJTKQorI2RlZmluZSBF
TkFCTEVfRklMVEVSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVFBESVIpCisj
ZGVmaW5lIEVOQUJMRV9GVFBESVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQorI2RlZmluZSBFTkFCTEVfR0FNRVBBRCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HRVNUVVJFX0VWRU5UUykKKyNkZWZpbmUgRU5B
QkxFX0dFU1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lDT05E
QVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxFX0lDT05EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpCisjZGVmaW5lIEVOQUJMRV9JRlJBTUVfU0VB
TUxFU1MgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkK
KyNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIpCisjZGVmaW5lIEVOQUJMRV9J
TlNQRUNUT1JfU0VSVkVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpCisjZGVmaW5lIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKKyNkZWZpbmUgRU5BQkxFX0pJVCAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9MRUdBQ1lfVklFV1BPUlRfQURBUFRJT04pCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lf
VklFV1BPUlRfQURBUFRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZ
X1dFQl9BVURJTykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8gMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlQpCisjZGVmaW5lIEVOQUJMRV9MTElOVCAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NQVRITUwpCisjZGVmaW5lIEVOQUJMRV9NQVRITUwg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUg
RU5BQkxFX01FVEVSX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUlD
Uk9EQVRBKQorI2RlZmluZSBFTkFCTEVfTUlDUk9EQVRBIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKQorI2RlZmluZSBFTkFCTEVfTkFWSUdB
VE9SX0NPTlRFTlRfVVRJTFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUV09SS19JTkZPKQorI2RlZmluZSBFTkFCTEVf
TkVUV09SS19JTkZPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BMVUdJTl9QQUNL
QUdFX1NJTVBMRV9IQVNIKQorI2RlZmluZSBFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hB
U0ggMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9QVVBfTUVOVVMpCisjZGVmaW5l
IEVOQUJMRV9QT1BVUF9NRU5VUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUk9H
UkVTU19FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKKyNkZWZpbmUg
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0NTU19TSEFQRVMpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0hBUEVTIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKQorI2RlZmluZSBFTkFCTEVfU0hB
UkVEX1dPUktFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1FMX0RBVEFCQVNF
KQorI2RlZmluZSBFTkFCTEVfU1FMX0RBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1NWRykKKyNkZWZpbmUgRU5BQkxFX1NWRyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9TVkdfRk9OVFMpCisjZGVmaW5lIEVOQUJMRV9TVkdfRk9OVFMgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVCkKKyNkZWZpbmUgRU5BQkxFX1RP
VUNIX0FESlVTVE1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZF
TlRTKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1VORE9fTUFOQUdFUikKKyNkZWZpbmUgRU5BQkxFX1VORE9fTUFOQUdFUiAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFTykKKyNkZWZpbmUgRU5BQkxFX1ZJREVP
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpCisj
ZGVmaW5lIEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BVURJTykKKyNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9TT0NLRVRTKQorI2RlZmluZSBFTkFCTEVf
V0VCX1NPQ0tFVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1RJTUlORykK
KyNkZWZpbmUgRU5BQkxFX1dFQl9USU1JTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfV09SS0VSUykKKyNkZWZpbmUgRU5BQkxFX1dPUktFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IpCisjZGVmaW5lIEVOQUJMRV9YSFJfUkVTUE9O
U0VfQkxPQiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQorI2RlZmluZSBF
TkFCTEVfWFNMVCAxCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9uaXgvUGxhdGZvcm1OaXguaCBiL1NvdXJjZS9XVEYvd3RmL25peC9QbGF0Zm9ybU5peC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcxMGJlNDQzN2E2Y2RjMTYyNmE2NDM1NjIxNzJjYjNmYTgxZGViZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaApAQCAtMCwwICsx
LDYzIEBACisvKgorKiAgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpZm5kZWYgV1RGX1BsYXRmb3JtTml4
X2gKKyNkZWZpbmUgV1RGX1BsYXRmb3JtTml4X2gKKworI2RlZmluZSBXVEZfUExBVEZPUk1fTklY
IDEKKyNkZWZpbmUgRU5BQkxFX0dMT0JBTF9GQVNUTUFMTE9DX05FVyAwCisKKyNkZWZpbmUgV1RG
X1VTRV8zRF9HUkFQSElDUyAxCisjZGVmaW5lIFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcgMQorI2RlZmluZSBXVEZfVVNFX0NBSVJPIDEKKyNkZWZpbmUgV1RGX1VTRV9DT09SRElOQVRF
RF9HUkFQSElDUyAxCisjZGVmaW5lIFdURl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5V
UyAxCisjZGVmaW5lIFdURl9VU0VfRlJFRVRZUEUgMQorI2RlZmluZSBXVEZfVVNFX0dMSUIgMQor
I2RlZmluZSBXVEZfVVNFX0hBUkZCVVpaIDEKKyNkZWZpbmUgV1RGX1VTRV9IQVJGQlVaWl9ORyAx
CisjZGVmaW5lIFdURl9VU0VfSUNVX1VOSUNPREUgMQorI2RlZmluZSBXVEZfVVNFX0lPU1VSRkFD
RV9DQU5WQVNfQkFDS0lOR19TVE9SRSAxCisjZGVmaW5lIFdURl9VU0VfTEVWRUxEQiAxCisjZGVm
aW5lIFdURl9VU0VfUFRIUkVBRFMgMQorI2RlZmluZSBXVEZfVVNFX1RFWFRVUkVfTUFQUEVSIDEK
KyNkZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUl9HTCAxCisjZGVmaW5lIFdURl9VU0VfVElM
RURfQkFDS0lOR19TVE9SRSAxCisjZGVmaW5lIFdURl9VU0VfVU5JWF9ET01BSU5fU09DS0VUUyAx
CisKKyNpZiAhZGVmaW5lZChXVEZfVVNFX09QRU5HTF9FU18yKSB8fCAhV1RGX1VTRV9PUEVOR0xf
RVNfMgorI2RlZmluZSBXVEZfVVNFX09QRU5HTCAxCisjZGVmaW5lIFdURl9VU0VfR0xYIDEKKyNk
ZWZpbmUgV1RGX1BMQVRGT1JNX1gxMSAxCisjZGVmaW5lIFdURl9VU0VfR1JBUEhJQ1NfU1VSRkFD
RSAxCisjZWxzZQorI2RlZmluZSBXVEZfVVNFX0VHTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KFdURl9VU0VfQ1VSTCkgfHwgIVdURl9VU0VfQ1VSTAorI2RlZmluZSBXVEZfVVNFX1NPVVAgMQor
I2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29u
dHJvbHNOaXguY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI1YjM2NjUyN2I3ZTA1ODE5NGM1NDE3MTVlZjU3ODhlZDAyNzc0OWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc05peC5jc3MKQEAg
LTAsMCArMSwyMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qIE5peFdlYktpdCBtZWRpYSBjb250cm9scy4g
RXh0ZW5kcyBtZWRpYUNvbnRyb2xzLmNzcyAqLworCithdWRpbyB7CisgICAgd2lkdGg6IDMwMHB4
OworICAgIGhlaWdodDogMjBweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cGFuZWwsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAg
LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25l
OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0b206IDA7CisgICAgd2lkdGg6IDEw
MCU7CisgICAgei1pbmRleDogMDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIGhlaWdodDog
MjBweDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KKwordmlkZW86LXdlYmtpdC1mdWxsLXBh
Z2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGJvdHRvbTogMHB4
OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtbXV0ZS1idXR0b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAg
d2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
KyAgICB6LWluZGV4OiAyOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9y
ZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cGxheS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247
CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDIwcHg7CisgICAgaGVpZ2h0
OiAyMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0
aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRp
bWVsaW5lLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jb250cm9s
cy1iYWNrZ3JvdW5kOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94
LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAg
IC13ZWJraXQtYm94LXBhY2s6IGVuZDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIC13
ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgaGVpZ2h0OiAyMHB4OworfQorCithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkgeworICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXk7CisgICAgLXdlYmtpdC11c2VyLXNl
bGVjdDogbm9uZTsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICBoZWlnaHQ6IDIwcHg7
CisKKyAgICBwYWRkaW5nOiA0cHg7CisKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9u
dC1zaXplOiAxMHB4OworCisgICAgY29sb3I6IGJsYWNrOworICAgIGxldHRlci1zcGFjaW5nOiBu
b3JtYWw7CisgICAgd29yZC1zcGFjaW5nOiBub3JtYWw7CisgICAgbGluZS1oZWlnaHQ6IG5vcm1h
bDsKKyAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKKyAgICB0ZXh0LWluZGVudDogMDsKKyAgICB0
ZXh0LXNoYWRvdzogbm9uZTsKKyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgICAgZm9udC1z
dHlsZTogbm9ybWFsOworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CisgICAgZm9udC1mYW1pbHk6
IHNlcmlmOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmlu
Zy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1k
aXNwbGF5IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUg
eworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2xpZGVyOworICAgIGRpc3BsYXk6IC13
ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CisgICAgaGVpZ2h0OiAyMHB4Owor
ICAgIHBhZGRpbmc6IDBweCAycHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAg
ICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7CisgICAgbWFyZ2luOiBpbml0
aWFsOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNv
bnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250
YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250
YWluZXI7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGhlaWdodDogMTAwcHg7CisgICAg
d2lkdGg6IDIwcHg7CisgICAgYm90dG9tOiAyMHB4OworICAgIHotaW5kZXg6IDE7Cit9CisKK2F1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtdm9sdW1lLXNsaWRlcjsKKyAgICBkaXNwbGF5OiBub25lOworICAgIGJhY2tncm91bmQt
Y29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0
OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtc2Vlay1iYWNrLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1i
YWNrLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1zZWVrLWJhY2stYnV0
dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhl
aWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjog
aW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1z
ZWVrLWZvcndhcmQtYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRo
OiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFs
OworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG1lZGlhLWZ1bGxzY3JlZW4tYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Owor
ICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30K
KworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiwgdmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAg
ICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0
dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0
dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5o
ZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1j
YXB0aW9ucy1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9z
ZWQtY2FwdGlvbnMtYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRvZ2ds
ZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAg
IHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBp
bml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKwor
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7
CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9u
OworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAg
ICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc05peEZ1bGxzY3JlZW4uY3NzIGIvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MzNkNzA3ZGNhZWVmYzNlYmQwNWFjY2E2ZjA1MGQzNDc4M2Y5ZjY2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcwpAQCAt
MCwwICsxLDEyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKy8qIE5peFdlYktpdCBtZWRpYSBjb250cm9scyBmb3IgZnVsbHNjcmVl
bi4gKi8KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGRpc3Bs
YXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAg
ICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmU7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJvdHRvbTogMDsKKyAgICB3aWR0aDog
MTAwJTsKKyAgICB6LWluZGV4OiAwOworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgaGVpZ2h0
OiAyMHB4OworICAgIHRleHQtYWxpZ246IHJpZ2h0OworfQorCit2aWRlbzotd2Via2l0LWZ1bGwt
cGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTog
bm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewor
ICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBs
YXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXBsYXktYnV0dG9uOwor
ICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDog
MjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlh
bDsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdGltZWxpbmUtY29udGFpbmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWNv
bnRyb2xzLWJhY2tncm91bmQ7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtp
dC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7
CisgICAgLXdlYmtpdC1ib3gtcGFjazogZW5kOworICAgIC13ZWJraXQtYm94LWZsZXg6IDE7Cisg
ICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBoZWlnaHQ6IDIwcHg7Cit9CisKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OworICAgIC13ZWJr
aXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIGhl
aWdodDogMjBweDsKKyAgICBwYWRkaW5nOiA0cHg7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOwor
ICAgIGZvbnQtc2l6ZTogMTBweDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dGltZS1yZW1haW5pbmctZGlzcGxheSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUgeworICAgIC13ZWJraXQtYXBwZWFyYW5j
ZTogbWVkaWEtc2xpZGVyOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQt
Ym94LWZsZXg6IDE7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHBhZGRpbmc6IDBweCAycHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7CisgICAgbWFyZ2luOiBpbml0aWFsOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKKyAgICBkaXNwbGF5OiBu
b25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXI7CisgICAgZGlzcGxh
eTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1
dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24geworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0
b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisK
K3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2
ZW50SGFuZGxlck5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE5NzQxODhiMDFkZmU2MzJiNmQ1YzdkMDYx
ODFlZDQxNTdlNGE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4
L0V2ZW50SGFuZGxlck5peC5jcHAKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAy
MDA5LDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAw
OSwyMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiQ2xpcGJv
YXJkLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIK
KyNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCitjb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJh
Z0RlbGF5ID0gMC4wOworI2VuZGlmCisKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3Jt
Q29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50VmlldygpCit7CisgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LT5zZXRGb2N1c2VkRnJhbWUobV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNz
V2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RS
ZXN1bHRzJiBldmVudCkKK3sKKyAgICBSZW5kZXJPYmplY3QqIHRhcmdldCA9IGV2ZW50LnRhcmdl
dE5vZGUoKSA/IGV2ZW50LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIoKSA6IDA7CisKKyAgICBpZiAo
IXRhcmdldCB8fCAhdGFyZ2V0LT5pc1dpZGdldCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gcGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoc3RhdGljX2Nhc3Q8UmVuZGVy
V2lkZ2V0Kj4odGFyZ2V0KS0+d2lkZ2V0KCkpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQp
Cit7CisgICAgcmV0dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHJlbmRlcldpZGdldC0+
d2lkZ2V0KCkpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9X
aWRnZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdl
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRnZXQqIHdpZGdldCkKK3sKKyAg
ICBBU1NFUlQod2lkZ2V0KTsKKyAgICBpZiAoIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdp
ZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsK
K30KKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCitQYXNzUmVmUHRyPENsaXBib2FyZD4gRXZl
bnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKK30KKyNlbmRpZgorCitib29sIEV2
ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCit7CisgICAgc3ViZnJhbWUtPmV2
ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQobWV2LmV2ZW50KCkpOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZUV2ZW50VG9T
dWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFt
ZSwgSGl0VGVzdFJlc3VsdCogaG92ZXJlZE5vZGUpCit7CisgICAgc3ViZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChtZXYuZXZlbnQoKSwgaG92ZXJlZE5vZGUpOwor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFz
ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1l
KiBzdWJmcmFtZSkKK3sKKyAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNl
UmVsZWFzZUV2ZW50KG1ldi5ldmVudCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWdu
ZWQgRXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIHJldHVybiBQbGF0
Zm9ybUV2ZW50OjpBbHRLZXk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZmI2ZWYxYjY1MmQ3MjQ2OTZiZmZkNjVjMzUwNTQyZWFjYmVkMzBhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29u
dGV4dEZyb21DdXJyZW50RUdMLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4dEZy
b21DdXJyZW50RUdMLmgiCisKKyNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w+IEdMQ29udGV4
dEZyb21DdXJyZW50RUdMOjpjcmVhdGVGcm9tQ3VycmVudEdMQ29udGV4dCgpCit7CisgICAgaWYg
KCFpbml0aWFsaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0woKSk7Cit9CisKK0dMQ29udGV4dEZyb21D
dXJyZW50RUdMOjpHTENvbnRleHRGcm9tQ3VycmVudEVHTCgpCisgICAgOiBtX2Rpc3BsYXkoZWds
R2V0Q3VycmVudERpc3BsYXkoKSkKKyAgICAsIG1fc3VyZmFjZShlZ2xHZXRDdXJyZW50U3VyZmFj
ZShFR0xfRFJBVykpCisgICAgLCBtX2NvbnRleHQoZWdsR2V0Q3VycmVudENvbnRleHQoKSkKK3sK
K30KKworYm9vbCBHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6bWFrZUNvbnRleHRDdXJyZW50KCkK
K3sKKyAgICBHTENvbnRleHQ6Om1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIHJldHVybiBlZ2xN
YWtlQ3VycmVudChtX2Rpc3BsYXksIG1fc3VyZmFjZSwgbV9zdXJmYWNlLCBtX2NvbnRleHQpOwor
fQorCitib29sIEdMQ29udGV4dEZyb21DdXJyZW50RUdMOjppbml0aWFsaXplKCkKK3sKKyAgICBz
dGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIHN0YXRpYyBib29sIHN1Y2Nlc3Mg
PSB0cnVlOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgc3VjY2VzcyA9IGluaXRp
YWxpemVPcGVuR0xTaGltcygpOworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQor
ICAgIHJldHVybiBzdWNjZXNzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1
cnJlbnRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRGcm9tQ3VycmVudEVHTC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMjhkYzY3OWRlZmY4NjMwMzMzZjFiNTBi
NzQxMTk2Njg2NGViYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHTENvbnRleHRGcm9tQ3Vy
cmVudEVHTF9oCisjZGVmaW5lIEdMQ29udGV4dEZyb21DdXJyZW50RUdMX2gKKworI2luY2x1ZGUg
IkdMQ29udGV4dC5oIgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBHTENvbnRleHRGcm9tQ3VycmVudEVHTCA6IHB1YmxpYyBHTENvbnRleHQgewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdMQ29udGV4dEZyb21DdXJyZW50RUdMKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxHTENvbnRleHRGcm9tQ3VycmVudEVHTD4gY3JlYXRl
RnJvbUN1cnJlbnRHTENvbnRleHQoKTsKKworICAgIHZpcnR1YWwgYm9vbCBtYWtlQ29udGV4dEN1
cnJlbnQoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIE9WRVJS
SURFIHsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBkZWZhdWx0RnJhbWVCdWZmZXJTaXplKCkgT1ZF
UlJJREUgeyByZXR1cm4gSW50U2l6ZSgpOyB9CisgICAgdmlydHVhbCBjYWlyb19kZXZpY2VfdCog
Y2Fpcm9EZXZpY2UoKSBPVkVSUklERSB7IHJldHVybiAwOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsg
fQorCisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4
dCgpIE9WRVJSSURFIHsgcmV0dXJuIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FpdE5hdGl2
ZSgpIE9WRVJSSURFIHsgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGluaXRpYWxpemUo
KTsKKworICAgIEdMQ29udGV4dEZyb21DdXJyZW50RUdMKCk7CisKKyAgICBFR0xEaXNwbGF5IG1f
ZGlzcGxheTsKKyAgICBFR0xTdXJmYWNlIG1fc3VyZmFjZTsKKyAgICBFR0xDb250ZXh0IG1fY29u
dGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdMQ29udGV4
dEZyb21DdXJyZW50RUdMX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93Tml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZDlkYTJmOTBkNmI2MDM3MTQzMzBmMzk2ZjQxNWIwODY3M2QwNjQwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1BsYXRmb3JtVmlkZW9XaW5kb3dOaXguY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9XaW5kb3cuaCIKKworI2lmIFVT
RShHU1RSRUFNRVIpICYmICFkZWZpbmVkKEdTVF9BUElfVkVSU0lPTl8xKQorCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1BsYXRmb3Jt
VmlkZW9XaW5kb3c6OlBsYXRmb3JtVmlkZW9XaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK1BsYXRmb3JtVmlkZW9XaW5kb3c6On5QbGF0Zm9ybVZpZGVvV2luZG93KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBsYXRmb3JtVmlkZW9XaW5kb3c6OnBy
ZXBhcmVGb3JPdmVybGF5KEdzdE1lc3NhZ2UqKQoreworfQorCisjZW5kaWYgLy8gVVNFKEdTVFJF
QU1FUikgJiYgIWRlZmluZWQoR1NUX0FQSV9WRVJTSU9OXzEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQzZjhkMzJl
NGQzMGI0NGRjMDM2MTc4OTU0OWMzYmE3MmI5YTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcApAQCAtMCwwICsxLDUy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaW5jbHVkZSAiSWNvbi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lj
b246On5JY29uKCkKK3sKK30KKworUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2M2ZTEzYjQyYjQ2MThiNWNlY2FjNTA2NjQ1YjBlNjM2OWE1MGJmYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAK
QEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEy
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKworI2luY2x1ZGUgIkJpdG1h
cEltYWdlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordm9pZCBCaXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisK
K3N0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVy
RmFsbGJhY2soKQoreworICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOyAvLyBGSVhN
RTogZmFsbGJhY2sgaW1hZ2U/Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
bG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNP
ZkZpbGUobWFrZVN0cmluZyhEQVRBX0RJUiAiL3dlYmtpdC0xLjAvaW1hZ2VzLyIsIG5hbWUsICIu
cG5nIikpOworICAgIGlmIChidWZmZXIpCisgICAgICAgIHJldHVybiBidWZmZXIucmVsZWFzZSgp
OworICAgIHJldHVybiBsb2FkUmVzb3VyY2VTaGFyZWRCdWZmZXJGYWxsYmFjaygpOworfQorCitQ
YXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciog
bmFtZSkKK3sKKyAgICBSZWZQdHI8Qml0bWFwSW1hZ2U+IGltZyA9IEJpdG1hcEltYWdlOjpjcmVh
dGUoKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBsb2FkUmVzb3VyY2VTaGFy
ZWRCdWZmZXIobmFtZSk7CisgICAgaW1nLT5zZXREYXRhKGJ1ZmZlci5yZWxlYXNlKCksIHRydWUp
OworICAgIHJldHVybiBpbWcucmVsZWFzZSgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9DdXJzb3JOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3N2VmMGNjZTNiZTk3ZmVhYWQ0OGY2
Nzg3MDU1NmRiOGExMTUyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uaXgvQ3Vyc29yTml4LmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiBEaXJrIE11ZWxsZXIgPG11ZWxsZXJAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAo
QykgMjAwNiBHZW9yZ2UgU3RhaWtvcyA8c3RhaWtvc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChD
KSAyMDA2IENoYXJsZXMgU2FtdWVscyA8Y2hhcmxlc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXJzb3I6
OkN1cnNvcihjb25zdCBDdXJzb3ImIG90aGVyKQorICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkK
KyAgICAsIG1faW1hZ2Uob3RoZXIubV9pbWFnZSkKKyAgICAsIG1faG90U3BvdChvdGhlci5tX2hv
dFNwb3QpCisgICAgLCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCit7
Cit9CisKK0N1cnNvcjo6fkN1cnNvcigpCit7Cit9CisKK0N1cnNvciYgQ3Vyc29yOjpvcGVyYXRv
cj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKK3sKKyAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Cisg
ICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7CisgICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RT
cG90OworICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOworICAg
IHJldHVybiAqdGhpczsKK30KKworc3RhdGljIGNvbnN0IGNoYXIqIGN1cnNvclN0cmluZyhDdXJz
b3I6OlR5cGUgdHlwZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nc1td
ID0geworICAgICAgICAiY3Vyc29yL3BvaW50ZXIiLAorICAgICAgICAiY3Vyc29yL2Nyb3NzIiwK
KyAgICAgICAgImN1cnNvci9oYW5kIiwKKyAgICAgICAgImN1cnNvci9pX2JlYW0iLAorICAgICAg
ICAiY3Vyc29yL3dhaXQiLAorICAgICAgICAiY3Vyc29yL2hlbHAiLAorICAgICAgICAiY3Vyc29y
L2Vhc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9yZXNpemUiLAorICAgICAgICAi
Y3Vyc29yL25vcnRoX2Vhc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF93ZXN0X3Jl
c2l6ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9z
b3V0aF9lYXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfd2VzdF9yZXNpemUiLAor
ICAgICAgICAiY3Vyc29yL3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9zb3V0
aF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL2Vhc3Rfd2VzdF9yZXNpemUiLAorICAgICAgICAi
Y3Vyc29yL25vcnRoX2Vhc3Rfc291dGhfd2VzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL25v
cnRoX3dlc3Rfc291dGhfZWFzdF9yZXNpemUiLAorICAgICAgICAiY3Vyc29yL2NvbHVtbl9yZXNp
emUiLAorICAgICAgICAiY3Vyc29yL3Jvd19yZXNpemUiLAorICAgICAgICAiY3Vyc29yL21pZGRs
ZV9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vy
c29yL25vcnRoX3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL25vcnRoX2Vhc3RfcGFubmluZyIs
CisgICAgICAgICJjdXJzb3Ivbm9ydGhfd2VzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9z
b3V0aF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9zb3V0aF9lYXN0X3Bhbm5pbmciLAorICAg
ICAgICAiY3Vyc29yL3NvdXRoX3dlc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivd2VzdF9w
YW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9tb3ZlIiwKKyAgICAgICAgImN1cnNvci92ZXJ0aWNh
bF90ZXh0IiwKKyAgICAgICAgImN1cnNvci9jZWxsIiwKKyAgICAgICAgImN1cnNvci9jb250ZXh0
X21lbnUiLAorICAgICAgICAiY3Vyc29yL2FsaWFzIiwKKyAgICAgICAgImN1cnNvci9wcm9ncmVz
cyIsCisgICAgICAgICJjdXJzb3Ivbm9fZHJvcCIsCisgICAgICAgICJjdXJzb3IvY29weSIsCisg
ICAgICAgICJjdXJzb3Ivbm9uZSIsCisgICAgICAgICJjdXJzb3Ivbm90X2FsbG93ZWQiLAorICAg
ICAgICAiY3Vyc29yL3pvb21faW4iLAorICAgICAgICAiY3Vyc29yL3pvb21fb3V0IiwKKyAgICAg
ICAgImN1cnNvci9ncmFiIiwKKyAgICAgICAgImN1cnNvci9ncmFiYmluZyIsCisgICAgICAgICIi
fTsgLy8gRklYTUU6IEp1c3QgcmV0dXJuICIiIGZvciBjdXN0b20gdHlwZS4gV2UgZG9uJ3Qgc3Vw
cG9ydCBpdCBub3cuCisgICAgcmV0dXJuIGN1cnNvclN0cmluZ3NbdHlwZV07Cit9CisKK3ZvaWQg
Q3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fcGxhdGZv
cm1DdXJzb3IpCisgICAgICAgIHJldHVybjsKKyAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Vyc29y
U3RyaW5nKG1fdHlwZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9EcmFnRGF0YU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJh
Z0RhdGFOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZmI2OTg2YWZhNGYyMWViMDI3NTc3YjZmMWFjMTY0
OTcxNWM3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
RHJhZ0RhdGFOaXguY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgRHJhZ0RhdGE6OmNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0NvbG9y
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRHJhZ0RhdGE6OmNvbnRh
aW5zRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgRHJh
Z0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit2b2lk
IERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYpIGNvbnN0Cit7Cit9CisKK2Jv
b2wgRHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK1N0cmluZyBEcmFnRGF0YTo6YXNQbGFpblRleHQoRnJhbWUqKSBjb25zdAorewor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworQ29sb3IgRHJhZ0RhdGE6OmFzQ29sb3IoKSBjb25z
dAoreworICAgIHJldHVybiBDb2xvcigpOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0Nv
bXBhdGlibGVDb250ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
RHJhZ0RhdGE6OmNvbnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5KSBj
b25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIERyYWdEYXRhOjphc1VSTChG
cmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0Rh
dGE6OmFzRnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwgYm9vbCYpIGNv
bnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bml4L0RyYWdJbWFnZU5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhYzg2MTJjMTNiZjU5ZjVlNTQzOTE2
ZDEyODdmZWZjZjhiZjA1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9EcmFnSW1hZ2VOaXguY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0ltYWdl
LmgiCisKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRTaXpl
IGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIEludFNpemUoMCwgMCk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJ
bWFnZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2Nh
bGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNpemUpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2
ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENhY2hlZEltYWdlKikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvR2FtZXBhZHNOaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTc3YzdjZTcx
NmQzZmUwNzM4ZGRiMWU5M2MxNTc4YTMwZDViZmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2FtZXBhZHMuaCIK
KworI2lmIEVOQUJMRShHQU1FUEFEKQorCisjaW5jbHVkZSAiR2FtZXBhZExpc3QuaCIKKyNpbmNs
dWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBH
YW1lcGFkTGlzdDsKKwordm9pZCBzYW1wbGVHYW1lcGFkcyhHYW1lcGFkTGlzdCogaW50bykKK3sK
KyAgICBXZWJLaXQ6OldlYkdhbWVwYWRzIGdhbWVwYWRzOworCisgICAgV2ViS2l0OjpQbGF0Zm9y
bTo6Y3VycmVudCgpLT5zYW1wbGVHYW1lcGFkcyhnYW1lcGFkcyk7CisKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgV2ViS2l0OjpXZWJHYW1lcGFkczo6aXRlbXNMZW5ndGhDYXA7ICsraSkg
eworICAgICAgICBXZWJLaXQ6OldlYkdhbWVwYWQmIHdlYkdhbWVwYWQgPSBnYW1lcGFkcy5pdGVt
c1tpXTsKKyAgICAgICAgaWYgKGkgPCBnYW1lcGFkcy5sZW5ndGggJiYgd2ViR2FtZXBhZC5jb25u
ZWN0ZWQpIHsKKyAgICAgICAgICAgIFJlZlB0cjxHYW1lcGFkPiBnYW1lcGFkID0gaW50by0+aXRl
bShpKTsKKyAgICAgICAgICAgIGlmICghZ2FtZXBhZCkKKyAgICAgICAgICAgICAgICBnYW1lcGFk
ID0gR2FtZXBhZDo6Y3JlYXRlKCk7CisgICAgICAgICAgICBnYW1lcGFkLT5pZCh3ZWJHYW1lcGFk
LmlkKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmluZGV4KGkpOworICAgICAgICAgICAgZ2FtZXBh
ZC0+dGltZXN0YW1wKHdlYkdhbWVwYWQudGltZXN0YW1wKTsKKyAgICAgICAgICAgIGdhbWVwYWQt
PmF4ZXMod2ViR2FtZXBhZC5heGVzTGVuZ3RoLCB3ZWJHYW1lcGFkLmF4ZXMpOworICAgICAgICAg
ICAgZ2FtZXBhZC0+YnV0dG9ucyh3ZWJHYW1lcGFkLmJ1dHRvbnNMZW5ndGgsIHdlYkdhbWVwYWQu
YnV0dG9ucyk7CisgICAgICAgICAgICBpbnRvLT5zZXQoaSwgZ2FtZXBhZCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgaW50by0+c2V0KGksIDApOworICAgIH0KK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9MYW5ndWFnZU5peC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmUxY2JhNDBkOGY5ZjIyMjA0OTdiNmI1ODAzYmM4NjM2YzNhNGRlODYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5k
VCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKworI2luY2x1ZGUgPGxvY2FsZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQor
eworICAgIGNoYXIqIGxvY2FsZURlZmF1bHQgPSBzZXRsb2NhbGUoTENfQ1RZUEUsIDApOworCisg
ICAgaWYgKCFsb2NhbGVEZWZhdWx0KQorICAgICAgICByZXR1cm4gQVNDSUlTdHJpbmcoImMiKTsK
KworICAgIFN0cmluZyBsb2NhbGUgPSBTdHJpbmcobG9jYWxlRGVmYXVsdCk7CisgICAgbG9jYWxl
LnJlcGxhY2UoJ18nLCAnLScpOworICAgIHNpemVfdCBwb3NpdGlvbiA9IGxvY2FsZS5maW5kKCcu
Jyk7CisgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBsb2NhbGUgPSBsb2Nh
bGUubGVmdChwb3NpdGlvbik7CisKKyAgICByZXR1cm4gbG9jYWxlOworfQorCitWZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQoreworICAgIFZlY3RvcjxTdHJp
bmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CisgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5h
cHBlbmQocGxhdGZvcm1MYW5ndWFnZSgpKTsKKyAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1
YWdlczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xv
Y2FsaXplZFN0cmluZ3NOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2Fs
aXplZFN0cmluZ3NOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZWMzYjVlZDBlNzcwODVmMzM2MjU1ZTE5
ZWIwNTBiMWEyZTlhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20K
KyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
SU5kVCBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxp
dGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRp
ZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlMjUxNGM2YmQzYjU3YWJlNWJkYzM2OGE3ZjJjMjgxNDhmYzQz
OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5
Ym9hcmRVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsMjA0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTml4S2V5
Ym9hcmRVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRl
ICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gS2V5TWFwOwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgaW50PiBXaW5kb3dzS2V5TWFw
OwordHlwZWRlZiBIYXNoTWFwPGludCwgY29uc3QgY2hhcio+IEtleUNvbW1hbmRNYXA7CisKK3N0
YXRpYyBLZXlNYXAmIGtleU1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChLZXlNYXAs
IGtleU1hcCwgKCkpOworICAgIHJldHVybiBrZXlNYXA7Cit9CisKK3N0YXRpYyBXaW5kb3dzS2V5
TWFwJiB3aW5kb3dzS2V5TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdpbmRvd3NL
ZXlNYXAsIHdpbmRvd3NLZXlNYXAsICgpKTsKKyAgICByZXR1cm4gd2luZG93c0tleU1hcDsKK30K
Kworc3RhdGljIEtleUNvbW1hbmRNYXAmIGtleURvd25Db21tYW5kc01hcCgpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChLZXlDb21tYW5kTWFwLCBrZXlEb3duQ29tbWFuZHNNYXAsICgpKTsK
KyAgICByZXR1cm4ga2V5RG93bkNvbW1hbmRzTWFwOworfQorCitzdGF0aWMgS2V5Q29tbWFuZE1h
cCYga2V5UHJlc3NDb21tYW5kc01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChLZXlD
b21tYW5kTWFwLCBrZXlQcmVzc0NvbW1hbmRzTWFwLCAoKSk7CisgICAgcmV0dXJuIGtleVByZXNz
Q29tbWFuZHNNYXA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzVG9LZXlN
YXAoY29uc3QgY2hhciBmcm9tLCBjb25zdCBjaGFyIHRvKQoreworICAgIGZvciAoY2hhciBjID0g
ZnJvbTsgYyA8PSB0bzsgYysrKQorICAgICAgICBrZXlNYXAoKS5zZXQoU3RyaW5nKCZjLCAxKSwg
U3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGMpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFk
ZENoYXJhY3RlcnNUb1dpbktleU1hcChjb25zdCBjaGFyIGZyb20sIGNvbnN0IGNoYXIgdG8sIGNv
bnN0IGludCBiYXNlQ29kZSkKK3sKKyAgICBpbnQgaSA9IDA7CisgICAgZm9yIChjaGFyIGMgPSBm
cm9tOyBjIDw9IHRvOyBjKyssIGkrKykKKyAgICAgICAgd2luZG93c0tleU1hcCgpLnNldChTdHJp
bmcoJmMsIDEpLCBiYXNlQ29kZSArIGkpOworfQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgQ3Ry
bEtleSA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgPSAxIDw8IDE7Citz
dGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkgPSAxIDw8IDI7CisKK3N0cnVjdCBLZXlEb3du
RW50cnkgeworICAgIHVuc2lnbmVkIHZpcnR1YWxLZXk7CisgICAgdW5zaWduZWQgbW9kaWZpZXJz
OworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitzdHJ1Y3QgS2V5UHJlc3NFbnRyeSB7Cisg
ICAgdW5zaWduZWQgY2hhckNvZGU7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0
IGNoYXIqIG5hbWU7Cit9OworCitzdGF0aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURvd25FbnRy
aWVzW10gPSB7CisgICAgeyBWS19MRUZULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVMZWZ0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAg
IFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVX
b3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZU
LCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIDAsICAgICAgICAgICAgICAgICAgIk1v
dmVSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19S
SUdIVCwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAgICAgICAg
Ik1vdmVXb3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVXb3JkUmlnaHRBbmRNb2RpZnlTZWxl
Y3Rpb24iICAgICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIDAsICAgICAgICAgICAgICAg
ICAgIk1vdmVVcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19VUCwgICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNoaWZ0S2V5LCAgICAg
ICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19ET1dOLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVEb3duIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19ORVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAg
ICAgICAgICAgICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19ORVhULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQYWdlRG93biIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIDAsICAg
ICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19IT01FLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0JlZ2lu
bmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0
cmxLZXksICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVUb0Jl
Z2lubmluZ09mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisKKyAgICB7IFZLX0VORCwg
ICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92
ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgfSwKKyAgICB7IFZLX0VO
RCwgICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudCIgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAi
TW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgfSwKKworICAgIHsg
VktfQkFDSywgICAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICBTaGlmdEtleSwgICAgICAg
ICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVGb3J3YXJkIiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAg
ICAgICAgICJEZWxldGVXb3JkQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfREVMRVRFLCBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3JkRm9yd2FyZCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgeyAnQicsICAgICAgIEN0cmxLZXks
ICAgICAgICAgICAgIlRvZ2dsZUJvbGQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyAnSScsICAgICAgIEN0cmxLZXksICAgICAgICAgICAgIlRvZ2dsZUl0YWxpYyIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICB7IFZLX0VTQ0FQRSwgMCwg
ICAgICAgICAgICAgICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX09FTV9QRVJJT0QsIEN0cmxLZXksICAgICAgICAiQ2FuY2VsIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAg
MCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0
QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVS
TiwgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5z
ZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JF
VFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRLZXksICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0
YXRpYyBjb25zdCBLZXlQcmVzc0VudHJ5IGtleVByZXNzRW50cmllc1tdID0geworICAgIHsgJ1x0
JywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNl
cnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywg
ICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnRO
ZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBB
bHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXds
aW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3RhdGljIHZvaWQg
Y3JlYXRlS2V5RG93bkNvbW1hbmRNYXAoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
V1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7ICsraSkKKyAgICAgICAga2V5RG93bkNv
bW1hbmRzTWFwKCkuc2V0KGtleURvd25FbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURv
d25FbnRyaWVzW2ldLnZpcnR1YWxLZXksIGtleURvd25FbnRyaWVzW2ldLm5hbWUpOworfQorCitz
dGF0aWMgdm9pZCBjcmVhdGVLZXlQcmVzc0NvbW1hbmRNYXAoKQoreworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyArK2kpCisgICAg
ICAgIGtleVByZXNzQ29tbWFuZHNNYXAoKS5zZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1vZGlmaWVy
cyA8PCAxNiB8IGtleVByZXNzRW50cmllc1tpXS5jaGFyQ29kZSwga2V5UHJlc3NFbnRyaWVzW2ld
Lm5hbWUpOworfQorCitjb25zdCBjaGFyKiBnZXRLZXlEb3duQ29tbWFuZE5hbWUoY29uc3QgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBp
ZiAoZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAg
ICBpZiAoZXZlbnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAg
IGlmIChldmVudC0+Y3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKwor
ICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC0+a2V5Q29kZSgpOworICAg
IGlmICghbWFwS2V5KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChrZXlEb3duQ29tbWFu
ZHNNYXAoKS5pc0VtcHR5KCkpCisgICAgICAgIGNyZWF0ZUtleURvd25Db21tYW5kTWFwKCk7CisK
KyAgICByZXR1cm4ga2V5RG93bkNvbW1hbmRzTWFwKCkuZ2V0KG1hcEtleSk7Cit9CisKK2NvbnN0
IGNoYXIqIGdldEtleVByZXNzQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQp
Cit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQtPnNoaWZ0S2V5
KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQtPmFsdEtl
eSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC0+Y3RybEtl
eSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKworICAgIGludCBtYXBLZXkgPSBt
b2RpZmllcnMgPDwgMTYgfCBldmVudC0+Y2hhckNvZGUoKTsKKyAgICBpZiAoIW1hcEtleSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoa2V5UHJlc3NDb21tYW5kc01hcCgpLmlzRW1wdHko
KSkKKyAgICAgICAgY3JlYXRlS2V5UHJlc3NDb21tYW5kTWFwKCk7CisKKyAgICByZXR1cm4ga2V5
UHJlc3NDb21tYW5kc01hcCgpLmdldChtYXBLZXkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRV
dGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVlMmNhZTg2MDNiMDMzZWMzNDFiZjcxNWU5ZDE4ODhjYjI0NjQ5
MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5
Ym9hcmRVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5peEtleWJvYXJkVXRpbGl0aWVzX2gKKyNkZWZpbmUg
Tml4S2V5Ym9hcmRVdGlsaXRpZXNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtl
eWJvYXJkRXZlbnQ7CisKK2NvbnN0IGNoYXIqIGdldEtleURvd25Db21tYW5kTmFtZShjb25zdCBL
ZXlib2FyZEV2ZW50Kik7Citjb25zdCBjaGFyKiBnZXRLZXlQcmVzc0NvbW1hbmROYW1lKGNvbnN0
IEtleWJvYXJkRXZlbnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
Tml4S2V5Ym9hcmRVdGlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbml4L1Bhc3RlYm9hcmROaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bh
c3RlYm9hcmROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4M2NkZjc0ZTY3YWJjMmZhODFlMDlhZjYwNjcy
MjZlZDg1OWFmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvUGFzdGVib2FyZE5peC5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiAgQ29weXJpZ2h0IChDKSAy
MDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IElO
ZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJk
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzdGVib2FyZCogUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKQor
eworICAgIHN0YXRpYyBQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gbmV3IFBhc3RlYm9hcmQoKTsK
KyAgICByZXR1cm4gcGFzdGVib2FyZDsKK30KKworUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dChjb25zdCBTdHJpbmcmLCBTbWFydFJlcGxhY2VPcHRpb24pCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJv
b2wsIEZyYW1lKiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UoTm9kZSosIGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVDbGlwYm9hcmQoQ2xpcGJvYXJkKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8
UmFuZ2U+LCBib29sLCBib29sJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpOworfQorCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKK1Bhc3NPd25QdHI8
UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQoreworICAgIHJl
dHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpCit7Cisg
ICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorI2VuZGlmCisKK2Jvb2wgUGFz
dGVib2FyZDo6aGFzRGF0YSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhj
b25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitib29sIFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK0xpc3RIYXNoU2V0PFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKK30KKwor
VmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKworI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCit2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYsIGNvbnN0IEludFBvaW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2VuZGlm
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmQwZWY2YzM0MGM5ODAzYWZlYWZhZmYwMTc3YTY3MjNhMzFhYThmNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRO
aXguY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
RGllZ28gSGlkYWxnbyBDLiBHb256YWxlegorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJv
RlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1
bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Zv
aWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0
eXBlLCBib29sKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gS2V5RG93bik7CisgICAgbV90eXBl
ID0gdHlwZTsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsK
KyAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CisgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBT
dHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2tleUlkZW50aWZpZXIgPSBTdHJpbmco
KTsKKyAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSAwOworICAgIH0KK30KKworYm9v
bCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29s
JiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICBzaGlmdEtleSA9IGZhbHNlOworICAgIGN0cmxLZXkgPSBmYWxzZTsKKyAg
ICBhbHRLZXkgPSBmYWxzZTsKKyAgICBtZXRhS2V5ID0gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhiZmIzYWMzZWQyMTQzMGFkMWVhYTJlYmU0MGI5NmY4ZjRhNTEwNmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3Bw
CkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKworI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiV2lkZ2V0
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2ludCBzY3JlZW5Ib3Jpem9udGFs
RFBJKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworaW50IHNjcmVlblZlcnRpY2FsRFBJKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVy
Q29tcG9uZW50KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNjcmVlblJlY3Qo
V2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3Qo
MCwgMCwgMTAyNCwgNzY4KTsKK30KKworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lk
Z2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gc2NyZWVu
UmVjdCh3aWRnZXQpOworfQorCit2b2lkIHNjcmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25peC9Tb3VuZE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvU291bmROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlMWJiZWZmZTQ5YzAzZGYzZDEwZWQwZjRl
NTY0NjI4ZjhhZTcyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvU291bmROaXguY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTItMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU291bmQuaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBz
eXN0ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZDMwOTczZDIwMDU0
NjJiMmU4Y2YzMzZmYTIyYjMwZmRmNTU0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldp
ZGdldC5oIgorCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V2lkZ2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQorICAgIDogbV9wYXJlbnQoMCkK
KyAgICAsIG1fd2lkZ2V0KDApCisgICAgLCBtX3NlbGZWaXNpYmxlKGZhbHNlKQorICAgICwgbV9w
YXJlbnRWaXNpYmxlKGZhbHNlKQorICAgICwgbV9mcmFtZSgwLCAwLCAwLCAwKQoreworICAgIGlu
aXQod2lkZ2V0KTsKK30KKworV2lkZ2V0Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVu
dCgpKTsKK30KKworSW50UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZnJhbWU7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVj
dCYgcmVjdCkKK3sKKyAgICBtX2ZyYW1lID0gcmVjdDsKKyAgICBXaWRnZXQ6OmZyYW1lUmVjdHND
aGFuZ2VkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQoreworfQorCit2b2lk
IFdpZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQoreworICAgIFNjcm9sbFZp
ZXcqIHZpZXcgPSByb290KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisgICAg
dmlldy0+aG9zdFdpbmRvdygpLT5zZXRDdXJzb3IoY3Vyc29yKTsKK30KKwordm9pZCBXaWRnZXQ6
OnNob3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpoaWRl
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc3ZmE3NzM4OGRmN2M2YWZkNzFhZDEyNjc4NjllZjA1MDRiNDY2ZWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L25peC9UZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVTml4LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBj
aGFyKiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAgIHJldHVybiAiIjsKK30KKworY29u
c3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gImVuX3Vz
IjsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>206465</attachid>
            <date>2013-07-11 08:02:20 -0700</date>
            <delta_ts>2013-07-11 08:02:20 -0700</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-04 for mac-mountainlion</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>614769</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
IatmMILWkcAYlvVAoJOcVzTwvLeVq8yIfM/c40FKR7pDV/laVePdt8R2mX2tDQU6P+rcqmkEIz0Z
kkbWrOjlhKsPz2FCsBbhoddTteHA8z6lvf5xUu9emehpQ6IShnR1sk9U7/NIz3z1aJGNbBaoRvAp
0icxptOhjqFmgenop2L8TMef7/+obvJTBwgdJn32KRP92K1Asxg9UZWQk3GApxMlUpyHsg8Io0xt
9ReyZe4z+Jr+I8yVhcqiHa1MYJzMPRLpx0SPcrNiXO1lR+kpkngp1Mm2WQiahS5/OQRVHKY3bBTw
kGXWgmajyBQWz3qa7UJrh8HeohrQ6tQKXQN0lMxM6YVu/9JFnIV9QKtTb5SAQb52EGDslQDGouaw
1THrZUCgW8XkTSaIMjQOC5vHPNPufOsuf15dHl1cXh0fHXw4+lTfxPrLDesSGgRRtVZrEPWN6XpK
Y+X1lNnEMmE1X+268HhV/2nrwyCx9eolRlBjmDPp+p4o+KUmhw8fO81O2B/LZpravTZBrwKo50T6
ufK8p1mIYhbFZMutekBusy+GTQd9NzYuTn69PPr02w9G5A7iWLVjjrwR81KYtBU30MB/MU6g7ewY
F2Crqik8pLbLDJ5QBNvt8T7UKsf4y+VCfe3iNP2m/uKXhemPc3gQqO9WzQr8Zxrbvws+2jHOj8+r
zYpVqTcN5WxqXAxcFUKEnNPYdg1fOldR5I2v+RgwAbeu1irtSiuczRchUArRwFeChQx96hkyYKFu
1+fy29SDUS6igNnKyQEab1sDuPMYOHkuOraleTltr1bS/wNQSwMECgAAAAAANTzrQgAAAAAAAAAA
AAAAAAUAHABmYXN0L1VUCQADRcLeUZzD3lF1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAHTzrQgAA
AAAAAAAAAAAAAAwAHABmYXN0L2V2ZW50cy9VVAkAAxrC3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAGk660Ihj704MgAAADMAAAA/ABwAZmFzdC9ldmVudHMvbWVkaWEtZm9jdXMtaW4tc3Rh
bmRhbG9uZS1tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAPmvt5R5r7eUXV4CwABBPUBAAAE
FAAAAHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsD
BBQAAgAIAB0860Ihj704MgAAADMAAAAuABwAZmFzdC9ldmVudHMvdGFiaW5kZXgtZm9jdXMtYmx1
ci1hbGwtc3RkZXJyLnR4dFVUCQADGsLeURrC3lF1eAsAAQT1AQAABBQAAABzy0ksSXVJTc5PSbVS
SAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQKAAAAAAB4OutCAAAAAAAA
AAAAAAAADAAcAGZhc3QvbG9hZGVyL1VUCQADA7/eUZzD3lF1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAIjzrQhS5YSKnAAAA1wAAAC8AHABmYXN0L2xvYWRlci9qYXZhc2NyaXB0LXVybC1pbi1vYmpl
Y3QtYWN0dWFsLnR4dFVUCQADIMLeUQO/3lF1eAsAAQT1AQAABBQAAABNjkEKwjAURPc9xdBN2k33
FlyoRBGqLuoFvumnpsREkp+it7e6cjMMw4M3u8u5v3QaJ933m4Nu4axnrFpc30/WMYbYQvnsnIJN
8EFAHuE2sRFUPJPLJNaPUEMw+cFempFFO/7W7fs4VKVQXKayblI0WKOcaKZkon1KS46jVGq/OXaq
LlVdXO+LRDjJkncS/LHI0SVY/+cXGjGE36nFAH6xycJDUxTFB1BLAwQUAAIACAAiPOtCUtFYehAB
AADXAQAALQAcAGZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJsLWluLW9iamVjdC1kaWZmLnR4dFVU
CQADIMLeUSDC3lF1eAsAAQT1AQAABBQAAAC9kMFqAkEMhu8+RdjLKus4SHvpQmG13RaprdCVeo67
qY6kMzKTEX37jrZQn6AEkhBCvv+PUgr0h+P4RUE/oqCuV41e0frFyG+ZRsOdficmDKQZTy6KEgqi
PIXIEvQnBtHssCOvd3jA0HqzFxU9K2OVW++oFUXHfSrUjeQovaIo/gmLrUTkC7SqQI2HN1CMh7dQ
Vb3iYfHWLOY1vNZNM3muS2BjCe5KWJ72VHvvfAm5jcw5mADWCaCFn7vQpwNyRDF2A3nn2uTEymhD
UjOd2+lp1vUzQZ9G2WAUfAv3kP3JLJHJSz9/mszm+SDLBz1YbhPl7DDlLQpcLUMyFcDYKwGCG+jc
RVVCAB2pjef39iDFN1BLAwQUAAIACAAiPOtCDgkQaEQAAABJAAAAMQAcAGZhc3QvbG9hZGVyL2ph
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
TCZQ6NxeX1GY6aL7pX0wgJ9dM02k67/bPvp92K1tpO0Sdque3Sb8BFBLAwQUAAIACABSPOtCGNdf
G3oAAADgAAAAQAAcAGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLXdpdGgtbWF4LXdpZHRo
LWhlaWdodC1leHBlY3RlZC50eHRVVAkAA3vC3lFdv95RdXgLAAEE9QEAAAQUAAAA43INc/UL0ShP
TcrOLEkrzckpTi5KTc1LzkjMS0/VVAhxDQ7RSCtKzE3VS08tccovzUvJzEt3zslMzSsJSk0u0dDU
K8pMzyhRsLVVSMlPLs0Fiusl5adUElCupqaA39Sk/JKS/FzijYWo11Tw9+Zy9XNR8HcDO52LCwBQ
SwMEFAACAAgAUjzrQhdIM/A6CAAApxsAAEQAHABmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFt
ZS13aXRoLW1heC13aWR0aC1oZWlnaHQtcHJldHR5LWRpZmYuaHRtbFVUCQADe8LeUV6/3lF1eAsA
AQT1AQAABBQAAADVWW1v28gR/u5fsbDRU3IwKcmSU1uKXSSW3BaXS4rIuPtYLMmluPGSy+MuJTlt
/3tn3yiSIiUXaA/oBReR+zI7L8/MM8u8T2TK7s/eJwRH8JMSiVGY4EIQeTcoZezdDGBYyBdG7s9m
jGbPl2i2oYJKEqF/nCH4T5Kd9CIS8gJLyrMZynhG5noq4EVECi/gUvJ0hsb5DkXwTKL52b/OjDgr
JOSMFzN0MZrc6jn/kTKyoHFs5wMcPq8LXmaR55bGN+pP/SBzguCMRugiiiIzF/NMejFOKXuZoZRn
XOQ4tAqmuFhTUHlMUjQyQzkH47QdBWFg0YZohZJxS9PJZNIhX+BMeIIUNK5NCvqd6DPqh3qMxHKG
Rv61G4+oyBkGIRIHjHghYcxMbGkkExAwGv3B6oijiGbrarfRz4ZHPTUjZFWmWQKKyWp5wjekaFl1
fX0973M4IcYVvorLJzhL2M0x4xhMKeg6kc3oqVUP4AJMs+ooDu6nEswcnTDbWulpuQ1PbROwztNx
VHDbFjjfa7YioYpfL3D05iZs2pCxuHV+B1CN8p05YbnLIcQgH0wjl8hXP20Le9UTNCLBi/obaVU/
Mh4+/w0X0gdTZzEthPTChLKo17HquBXsvzwmrCAphPbyxHn2DOd+mgF8iBeoJQ3YXTvUAVokDTHz
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
b250cm9scy10aW1lbGluZS1zdGRlcnIudHh0VVQJAANfv95RX7/eUXV4CwABBPUBAAAEFAAAAHPL
SSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAA
ACY660IAAAAAAAAAAAAAAAAFABwAaHR0cC9VVAkAA2i+3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAMY660IAAAAAAAAAAAAAAAALABwAaHR0cC90ZXN0cy9VVAkAA5S/3lGcw95RdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAACY660IAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9hcHBjYWNo
ZS9VVAkAA2i+3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAM8760Ihj704MgAAADMAAAAk
ABwAaHR0cC90ZXN0cy9hcHBjYWNoZS92aWRlby1zdGRlcnIudHh0VVQJAAOFwd5RaL7eUXV4CwAB
BPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZ
elwAUEsDBAoAAAAAACk660IAAAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9jYWNoZS9VVAkAA22+
3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANE760JI4a1KUAAAAHsAAAAtABwAaHR0cC90
ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1hY3R1YWwudHh0VVQJAAOKwd5Rbb7eUXV4CwAB
BPUBAAAEFAAAAHP29wv293FV8HUNDnZ0d7VSyMnMS1UwNAAy8pMTczLyi0u4nIlQ4+bo6aNQlFpc
kJ9XnKpQnJFfmpOikARUZWSuZwCEhnoK4YnFCA16XFwAUEsDBBQAAgAIANE760Igf/7c1gAAALoB
AAArABwAaHR0cC90ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1kaWZmLnR4dFVUCQADisHe
UYrB3lF1eAsAAQT1AQAABBQAAAC9jsFKxEAMhu/zFGGv4zRbEQRPrVpFXF1xYHvOtoEOjJ2yycD6
9nYXsSfBkwSS8Cd/vjjnAHcp5g8WvCclbFqPLe+fg36X2xxij+8cmYQx0mfK6pRF3YElRxUcVCc8
KYIddQPjRAcNGtLIvTsrjo8Td8p9oUc11tp/gVKnmeIZWVXgyosrsKdUVQbutq9+u2ngpfG+fmxu
IIaRoVzPTeooDknUuN+XysvrYj1Hadxb7T3MX01pFIYgsPoZroz9C8c+1E+b5YQMKcce9rxQCmhJ
FkdhwHwBUEsDBBQAAgAIANE760LuFGS+RwAAAGYAAAAvABwAaHR0cC90ZXN0cy9jYWNoZS9wYXJ0
aXRpb25lZC1jYWNoZS1leHBlY3RlZC50eHRVVAkAA4rB3lFtvt5RdXgLAAEE9QEAAAQUAAAAc/b3
C/b3cVXwdQ0OdnR3tVLIycxLVTA0ADLykxNzMvKLS7iccaoxNDLXMwBCQ64Ax+BghaLU4oL8vOJU
hcxiBSW4nBIXFwBQSwMECgACAAAA0TvrQo08gGxBAAAAQQAAADQAHABodHRwL3Rlc3RzL2NhY2hl
L3BhcnRpdGlvbmVkLWNhY2hlLWlmcmFtZS1hY3R1YWwudHh0VVQJAAOJwd5RbL7eUXV4CwABBPUB
AAAEFAAAAENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogVGhlIGNhY2hlIGlzIG5vdCBwcm9wZXJs
eSBwYXJ0aXRpb25lZAoKUEsDBBQAAgAIANE760KrKw+zvAAAAGkBAAAyABwAaHR0cC90ZXN0cy9j
YWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1pZnJhbWUtZGlmZi50eHRVVAkAA4nB3lGKwd5RdXgLAAEE
9QEAAAQUAAAAvY6xbgIxEER7f8X2ZrOBCl11JDlRJEAUR6Fe7jY6S+Zs2WsJ/h5xSpEidZoZ6U3x
BhGBvmKoZyn0wsrUHR0d5fTq9aeeqg8DfUgQLkKBr7EqqhTFLKUGLTSqJrqTQj33o1DirF59nGTA
maD/znwWlEuSXmV40Isaa+1/urnXymE2ty3gcrECe4+2Nfh82LvDWwe7zrnNtmsg+Elg9djA+8Y5
Y//el+sGPkeBWQO+wBQVUo5JcrjCryMGzA1QSwMECgACAAAA0TvrQj/NiGYgAAAAIAAAADYAHABo
dHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hlLWlmcmFtZS1leHBlY3RlZC50eHRVVAkA
A4nB3lFsvt5RdXgLAAEE9QEAAAQUAAAAQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBQQVNTCgpQ
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
KcKKHYmQOnpMZG5IETsh9QgSXd9amIuvkNihquhcWWFTKbTqF9xGxmZlIVyDEJuTd1fVxQG984Rv
gR1cfAs3xpznAYfd/rg1lznkJ/s9Sgt5Mmi3Ysi6rH+wrwc+4T+azQNQSwMEFAACAAgA9DvrQl3x
HCo/AQAAcQIAAE8AHABodHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5p
ZmVzdC13aXRoLW5vbi1leGlzdGluZy1maWxlLWRpZmYudHh0VVQJAAPLwd5Ry8HeUXV4CwABBPUB
AAAEFAAAAM2QzW7CMAyA730K30tIu7ENceJnaIf9IK3TOJvEpREhqRpHwNsvRQNN2h5gyiFxZH/+
bCEEyE9v456CfERGuVxXck2bZ8Pf1zwaq+U7WcJA0uLJRxZMgUVHIVoOsmFuZf8TpHGhJcW+k9i2
ClVD14fYozN1X3cw3AjnnaCjCWzcVtTGUor6UtJDPnKW5/m/EUPFEe1ZazoFUQ5GkJeDW5hOM7FY
vVWrlyW8Lqtq9rScwKxtrVHIxjtY9HiIrUYmqDGx9AA2pDAGgl5uImV58zAs0ikn46Io/vJM0/jY
qbSHX2qgfLQanOeEhZo45ethBh/9zMANMuAPnzMP9l6ThR1Rm1I6VDvwNVx2ALGzAdBpCIycPEPq
0XVJyZ7g0JBLVOoITEpKfR1cfODsY1NAGoy7ApNNBvO4hfvR3bjMvgBQSwMEFAACAAgA9DvrQmbR
kd/5AAAA4gEAAFMAHABodHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5p
ZmVzdC13aXRoLW5vbi1leGlzdGluZy1maWxlLWV4cGVjdGVkLnR4dFVUCQADy8HeUcvB3lF1eAsA
AQT1AQAABBQAAAC1j81OwzAQBu95iu8IEm0SxE+VWykRF6CH8gLG3jRWHduy14K+PdtIIBASN+yT
pdnZ8Wb7vNs+9njqd7v1Q99hHaOzWrENHhulR0KJRjFhUNaRucAraVUyYWSOXV23l7fLRm7brZqm
qa3PkTSHVKsY9Wm+TpRDSZpy7YNf0LvNbP1+MYgOOhRn4AOLFgOx8GZZvVDmDB4VQ33LmXWYgiGH
A1EUJCl9QBgwKW8HmUJJLkN5g8yKJTPLipSkyB3xNpIXKyWCFUjWenzmYM5x8iAD67+Ey6q6K3vc
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
BPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPVXlY7h9kspREnI6mAqqIR
PsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQRnoCMBavBTZdJ4l0hwqhp
nxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAAOE660IAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9VVAkAA8W/3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANM660IAAAAA
AAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJ
AAOtv95RnMPeUXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAB4POtCY6qsbIIAAACoAAAAQAAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVy
ci50eHRVVAkAA8TC3lGsv95RdXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBti
UCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4U
JpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIA
CAB4POtCY6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA8TC3lGt
v95RdXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1y
tsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUw
ziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQKAAAAAADUOutCAAAAAAAAAAAA
AAAAHAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9VVAkAA7C/3lGcw95RdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAHk860LA5zttJQAAADMAAABOABwAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11c2VyLWFjdGlvbi1hY3R1YWwudHh0
VVQJAAPGwt5RsL/eUXV4CwABBPUBAAAEFAAAAOPi4tKFAi63osTcVCsF9cw0EEMdIeGcn5+dmaqQ
WaxQnFrCBQBQSwMEFAACAAgAeTzrQuNC+iu4AAAAgQEAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXVzZXItYWN0aW9uLWRpZmYudHh0
VVQJAAPGwt5Rx8LeUXV4CwABBPUBAAAEFAAAAM2PPY7CQAyF+5zCHUUwbqioIv4apF1pF0E9TAyx
GJho7JHI7UkACY6ACz/7s/T0jIhAuxjyhZWWzhyt9v+058NG7CXzLKGmPw7slCm4LmZDYzVMrDmY
UmPW0kCUlH1OYh35GM/Se1ojqcbWJevwyfAQoj/L9YRZOaHzJvGKfGvZG9cTu1lRluV3pOolu/DI
VFWA0/EUyqFVVQH4qgLWyV14BiM5DsPo44SLhzmIws/vFpT7395oWO9QSwMEFAACAAgAeTzrQlpE
3ZEpAAAANwAAAFAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29v
a2llLWJsb2NraW5nLXVzZXItYWN0aW9uLWV4cGVjdGVkLnR4dFVUCQADxsLeUbC/3lF1eAsAAQT1
AQAABBQAAADj4uLShQIut6LE3FQrBfXMNBBDHSHhnJ+fnZmqkFms4OcfolCcWsIFAFBLAwQUAAIA
CAB6POtCEP3lXZcHAAA2GQAAVAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1w
YXJ0eS1jb29raWUtYmxvY2tpbmctdXNlci1hY3Rpb24tcHJldHR5LWRpZmYuaHRtbFVUCQADx8Le
UbC/3lF1eAsAAQT1AQAABBQAAACtWVtvo0YUfs+vQIlaS6sAdmKnsZ111c1FlXpVs2ofqwEGM5uB
oTNDYm/b/94zNwwYbFftVlvwXM585/qdYe8ymdPV2V2GUQKPHEvkxRniAsv3o0qm/u0IhoXcUrw6
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
XgcwsxMM0NHrFEUOOLnz0BUPyoj+55J/AFBLAwQKAAAAAADhOutCAAAAAAAAAAAAAAAAIQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L1VUCQADxb/eUZzD3lF1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAhzzrQj4ycCajAQAAeQQAAFcAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLWlmcmFtZS1pbi1tYWluLWZyYW1lLWFjdHVh
bC50eHRVVAkAA97C3lHFv95RdXgLAAEE9QEAAAQUAAAArZNNb9swDIbv+RVcT9vBdroVWBF0K4Y2
WQd0SwAH2JmW2UiIPgyJTpZ/P9oJ0maHrGkL+6CPl+RD6ZVD4+EhoiPIoDZ1yRh5FsPKJBM82vuA
9STESacYuH/EE+NN0rdBtY48H5Xeoa8tTb0V0Xgl6vSfrEez3QTnzGHB7e7Z1bss64czZA1FsZ8P
s+yr/GfPaPNm+quc3o/h57gsv30fj2CuCRpcECADVqHlUWXRLyVRaixuqAbjE6k2EqjgWboT2OBA
Mzejojj/+Dkfync+uhxeDoteaXhTREqhjYqSjGoT80Y31220X7qwdBh3cfHpMc6ZPyRH0Bd6kqQK
0fhFrtnZfDCQJm+3eD92bLuIU27xtEN99a28GckJbjsifQn8M97LgWSuTQKmxBAa8gkQ1sbXYQ2s
xWwdlKz5R3+Zbbr3K4Oi5WjUcgO9fUjxhxx+EyQdWlt3e4sFRVH1ftk7U6G1FaolVKSwTSSVCJ6Q
yqBb2WEI3d18Piuharmb7CwvRtsn7EmVQFZb+8dgrdSrNh04KjYrAk+8DnEpD4ilNMV88BdQSwME
FAACAAgAhzzrQsKXkFITAQAAygIAAFUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZWRpcmVjdC1odHRwcy10by1odHRwLWlmcmFtZS1pbi1tYWluLWZyYW1lLWRpZmYudHh0VVQJ
AAPewt5R3sLeUXV4CwABBPUBAAAEFAAAAM2PTUsDMRCG7/srYq/bcTxpDyKL/UBRsLRgz+lmZAey
yZLMLu2/N/tBwYtQvAhhMpO8PO87AKDw09u2pogrLRrXhz0e6PjGMl3PLVuDO7KkI6HVZ98KCEWB
QLG1ErESabB/iRipbAPLGWs+kVl6J+QEAxkOVAr0ygjihwb4K+iagB3UOpVxolOTlGRu5SRZnuf/
LJ4updV2CFcUChbzB5Uv5veqKDKVKcNmxbFJKV7d4EWTR6Z6hhoYCnrdhh3HauXLtJuTd6/NxodN
/5+NVmr2eANju9VSKcTLfAfwlM5sJO2oJO5oT6GjsJt2SbBt8B1H9k7bH3h1HX7p65rlL4RfVr2S
9KKdsfThbGKsuwSLF9I3UEsDBBQAAgAIAIc860KOqrFUtgEAANcEAABZABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC1pZnJhbWUtaW4tbWFp
bi1mcmFtZS1leHBlY3RlZC50eHRVVAkAA97C3lHFv95RdXgLAAEE9QEAAAQUAAAArVNNb9NAEL3n
Vww9wcF2CpWoogJCbUKRShPVkXoer4fsKutda3fskH/P2LHSBonQALIP+/HmzZvZNxUaB98DVgQJ
lKbMGQMvgm9NNN6hvfNYznyYdYhR9Qt4ZpyJ+sarpiLHR6G36EpLc2cFNG0FHf/AepTt2leVOUy4
uz27epUk/XKBrCHL9vtxknyU/+wFZV7P7/P53RS+TfP885fpBJaaoMYVATJg4RueFBbdWohibXFL
JRgXSTWBQHnHUp2I9RVo5nqSZedv36dj+c4nl+PLcdYjDW+zQNE3QVGUVWlCWuv6UxPshy4sHsZd
XLx7iqvMD5IW9ImekRQ+GLdKNVc2HY2kyJudvK+DtiHilFc8rakPpMi0lFNoKTx0JZFi4fpdn09j
/+c3/291nuDlI9C/Ef+CaTyALLWJwBQZfE0uAsLGuNJvgLVYuRMlZ+7JvWZH97o1KFgORq23EIaX
fJPCI0HUvrFld7daURBU78a97xVaW6BaQ0EKm0iSieCZUll0J4MMUXe7XC5yKBruNsNAiY33hL1S
JSKL3XAFb63kK7adcFQshgNHvPFhLePJkppCOvoJUEsDBBQAAgAIAIc860Jvn+xsAAgAABocAABd
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0
cC1pZnJhbWUtaW4tbWFpbi1mcmFtZS1wcmV0dHktZGlmZi5odG1sVVQJAAPewt5Rxb/eUXV4CwAB
BPUBAAAEFAAAAMVZa2/bRhb97l/BtbExUJikZEmpHokXGz/Qot02iIv2YzHkDMWJhxxlZmjL2e1/
3zsviqRIWUAStEEjch53zn2eO8ybXBXs6uRNThCGn4IoFKQ5EpKot+eVysL5OQxL9czI1cmS0fLh
Ilg+UkkVwcF/TwL4T5GtCjFJuUCK8nIZlLwkKzOVcIGJCBOuFC+WwXizDTA8E7w6+evEinNCUs64
WAZno8nCzEV3lJEbmmVuPkHpw1rwqsShX5rN9Z/mQfYEyRnFwRnG2M5lvFRhhgrKnpdBwUsuNyh1
AAsk1hQgj0kRjOzQhoNyRg9BGGj0SAygfNxBOplMeuRLVMpQEkGzxqSkn4k5o3loyEimlsEomvlx
TOWGIRCiUMJImBLG7MQTxSoHAaPRPx1GhDEt1/Vui8+5Rz+1PeQg0zIHYKpenvNHIjpazWaz1ZDB
CbGmiLRffoazpNucMY5AFUHXuWp7T6+6BhMgWtZHcTA/VaDm6AW1nZahkduy1FMO2oXGjzrcngTa
7JDdk1T7bzBwzOZ22HRDxsWttzsE1WiztSfcbjfgYpAPqpGLINI/XQ0H4UmKSfKs/w4M1HeMpw/v
kVARqLrMqJAqTHPK8KBh9XH3sP/ikDBBCnDtxQvnuTO8+WkJ4UPCRC9phd3MRx1Ei6IpYiFidA35
oXiPWoLoaP8BlZgRbw4nR5tQv+fEOnQXz2klpHaNht3NQpSAdyrvMTizDhybQAbeIRStON8Ph7Ug
z6tOYEazl/xlTRxEir9o5igTvOgY29VIfYa2+i9VkRAB0USa0WVHPfD9UuqidrFoFUGfLn2l0Gfy
dDrt5N6+9+saowXNbArYNKiLvosDF559IWLhtsJp4gpWQ3GjYm/BsUQxaJZDRUojdLbzhcQFjNeh
laYbQUKbqGYKTGleQQVB0EOoB6xcWqA1aTllGVzWtk4Y0gbUC1OoCoABvOqegq7KO4fMp4vBspuR
bJf7OqJAYs2OjUTu2Yoz3N4KfpbDyxdksTpE6bUkV2CaOFxCDLM1xnsCAkzY8A6yeBFN/F1wX202
XCggWuGCGIxaFKRUMvguhvNQpXJu7W3JWPcyEPAKQjT1njIbzJoB+q/XaDAIQsIs9pXstY9pXWkQ
Y9ceQe/qS0tjBdqGHWYvoC1wQ5ejmnK6R4PdD55TJ3Wdza1j+nBGfEMsY4ZPJHmgKlRCZ5y1hAUe
RJdy1VBj6pQ+kwqpSr6rEqDvmgojnT29cPQWxTlLkGjP+6MzRkyG7iYK/rkerevSxOaxa6P0o28U
9PNwRzhUNA52cruwyOiWWDmuFI/aKkXItB82zfYJ/IlCLRCdUKtlfg5pickWitQB1XYc2IDQp5cr
Ri1mm7sqVmqYLmF7WQnOS/j2RaCvd0DHNog9/9g3A9Y91+TlXmvAdVPWOppmAhUWYSdP2h1EI0eu
Byrtvm2eoc3kT47mCYOeEdrlIzjp9eJuF16OjgcmjSHac3UHifc743Zf7GRY8+3H8GA3gH2dtcf8
2xcFf9MZNWd/8xzZuZK8/t4XtH2YB5KkcdmRBbJtfLPmllzA8Gqgyjj9dfcl+w63evi8HvUtYSgh
bIkyyLCLve123AgxhFyCqqfB/4LT1UlNxA367u5mCJpznoXqeUN6RZ0OInILOzfcnDBTIOs+FOk+
dICjzgoipW88Bu3c55ZGdtybQn0MFQLFQEP0SHklr+sR6GM/k/K6QZZ9PO9bji7FNMlF13KIWhMJ
vra7dxeJrohMPAcehcaFBvQ4ROmcaNGFa/sGmr4mzyYVZFXZrDue3zF9XGY8dTbkldL1opl+CasM
k7gpiJcMsACDjb0iTbI0UqCH+S0n9qTYMe0a8GsdFA8UzCV2tQs1GTxSpGuy+o+LCQCbCP4EDodO
IEew1zVFVEW6Car1mM5cA1+3Iu7dVwfdyOr/R20S9V90uu19QTFcsKxi2kHS37t7GAX6MC7RI9ge
LEA6vNK85O1RXTiOJrZl2n338Ozf44Ozm5ubRkqfze9u7mZ3vfUJmsv+KL69ve1DvSTFBipUy/mu
TeusjOARkLYy/3YxH81d3UoZQeJP0x74q4AeMTemXC95E7uPbm9kKugGfCrSt6e5Uhu5jGP0EW2j
Nedr2LShUoeuGYsZTWT88VNFxHM8jqbRpXuJoLWMPsrTK5Br5F0FbckpxyTUPiRPsO5f4GntzLfT
eWMLgHLfCROOn+EH8gFwIynfnvubgP5cmI+v4t/Bn1Cz4hukUHz7x338B0l+osr9vKsow/EH4F0k
SQyRAuYMFYEKCzf3iikZa01jPSJjSdJKADPEhe4+rm0WxIJgKoC2Q2MTIErzENqmAbqTsIAKHNo3
6HUqxCK1VaDBuA288cnofH/GXOWHxvUVP5A5NN64s0RfcoLWpyHzGRU4168wHwV27cb51RzMDPNX
rVVQAF5eAyR+fuVmwEUA44vBLI4AsxgGgym+sRXgx9J4jzivfV2U49ERMAcWGZw6RALbZYZQs/Ad
LanMb6DCayL4mSN8x8Wdnu8CNz9N+I2E1s4w0/tKHhdS9nb8Ykg11h020/gIM70qE7lZDZvKWunV
p4qr1SumVv8IbW69RyoP4rg5NArDV2u1sn/bHda8H0hK4M5xTwSUlw8uf8HC7wW33IHY32bzr5XG
48tjYnL8bQ2tuyJ6MH6/UMnJMUpeflslj0/WL1R2eoyyk2+rrP2U/WsJsY5vH3UX+DWypPNjWB0Y
0vyT4P8BUEsDBBQAAgAIAG0860JgS2YQkQAAAPsBAABFABwAaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRlcnIudHh0VVQJAAOtwt5R
lL/eUXV4CwABBPUBAAAEFAAAAO2OMQ6DMAxFd07hC4QEllaZYejSngEFUyKZJLKdCm5fOvQGHau/
vq/3Qt5KpEljToDMmT0skRBW1eKt7fpL6851/uqcs4KhctTD7iJmGO+3cTC7kJlzqBsmNV/gwfEZ
U7tvBBQTQg9I+CFA9CCUFVGb8+lfyHK6PeREB3StgwUnrYwCEyNILSWz4tyEf+iPQ99QSwMEFAAC
AAgA1zzrQuqKfEJhBQAABQ8AAAoAHABodHRwZC5jb25mVVQJAAN1w95RecPeUXV4CwABBPUBAAAE
FAAAAK1XbW/bNhD+rl9BuDCwFZOcuHHnDYEB13GaLEmdWU4DLEkNWqIk1hLJkVQSZ+t++4605RfJ
EQpsDmCTx+e5Ox6Px4tP5CORY841arRyJRuOc8mD+SlNCQh0Jlq3ZHZBdSvRWoReCmsN55qGrwEE
DRuOH3BJPnAsX4Upg5gZBBic0IzwXKN3BwfOBSGin9JHgkbMucLP6/mY/JkTpRU63EYV1MOO41xR
5gssiW+3BEDD35F0HF9jqXcAg5QSZtR2Dsy0MHNN5CChaWjMwcdEBYdXPMxhPzjXycs04UpPs6Uk
pTPyTIIWFjhISLsF4ukG5Sm+TacsSPOQ1HFXkBIx5fE04CyicR13gyrRE4JD2HYddwUpEZVK60iw
XCJkcCp1DLNeomBFaz0z6yVKENM6BiyXCIzEXFOsKWd1xC1Y+eQyHJMMi9qjW2HK+wuMvvotLiFl
YkpxPc0ASiRJniTVtWewgpSIIhGdgrX6lMkwNyhDdJY36RPOCDps/+wdwN+h4xyfUEkCzeUCtXqO
0TESdmvonIWgS6FTnqb8yV9kl5TNFbrKU00/U/Kk0BBMDT6eA9LeAGXpfYMegSVJQ2JmS6USchXi
A2s/hYQtNlAUSZ6ZFee4tfal5zj9ICBKmZpkXfYSja0EXDZChf5BjS/33g93Z8nD3UQ//H13Ej7c
+ephar5+bPRet3sCg41ZI/Ehg1S0sO4et6x+cOFGkQFmnNEAp9YJKHMnJMIQgclCEKTJs26JFFPm
nEHpYAC55HyeC4VGUWTKUHxJHkmKnrBkZnbKZYaheDcT1ExRM0dNje4bTXnfQM2eQs2Zmf01JhGR
RH6jIDZzcEO6/RgqnxE1UMCzGWUk/C6NFp7xXfMbE8jtoeZNA5LQCnZR1jBeGm4gOyjSyKcxwzqX
NibO8XlUVJN1kgc9iGQh75UxtqoEyzPqh+ElZnEOBlCIkRfOK2KWIo+lFTFhyCOsKtYgJhVxJJEX
yapJSK6wioZj80jVZGJScY0eJFgqMHfuj9xut/OL20UeVXw5rHAp+EV1RfwV9vwV71PZPmi33d+u
YZmqCm0O25nLV2kXY+uKO6/umEHYWDVsjIOYV8QCAiH4qztuL82IaqgEbFfoPWJ3Js0K/FQWU/2C
vDSvyAOIUYCrh6TgkKqhUY/IU49VJYAOQH9QZcgcebJq9iVxJ7fIgx/9VI7ABxp3irqLvGLmzWBQ
ht6efzoZ3fruYbtzCOaFHZRBg+vu+/drfYGA2atBN6Zs2Dc+F5iL0XnXHRdq5px23UqS3Ax8OLcC
kweqvQ9xtI04qiAmp5Dta4SOuo6F7N7z7fd5dd3NpwjwtaQcXraFuclw9eGag2a4p6G9f3Bf4G5A
nkNmQhZCPi1zBw7L5AnkBJw/nPXqbHbKzcpbW6exECnUcONE69mFrhJ5On5ZY4Ys4CFlMXp2oVYK
CY8M8v7Ysxq/UIG8+GWXfoZZmMIjAz2MqwJJTdrDGDI83XXDPheJzuA+KfNTVqBsZXWFiW9YYKog
FrpYuVTZNqyuxtqXf1Nj94TC9vcu4MDZRHwfcIb19wBdxXMZEKtY7cuMkMrtjFg//bbtgL4bvj0b
rOWw8K9yyLAwjVIc244bug4O/yxwtrukEi71lAvCphqmsFwTtqLZWjk3Xk6HLIY317x2W8IBZyGC
13T4+83Qn0yvhpOz0ck39GUy7g+G28CxUe69RS66O30oGf9Mpc5xajoI9PbX7tHRu6Xhvf2aXfAv
N94ct7b4oO6N8wb14UiIqwQJaEQDFJl2ZqE0yZCQXBPbunqAXDVSDalk8H/0S1u9pOnOvLf33r1n
uqIw4nL+XyxsNYb/AlBLAwQUAAIACAAvOutCasZz9iokAADufQAAGgAcAEltYWdlRGlmZi02NTQz
Mi1zYW1wbGUudHh0VVQJAAN5vt5Reb7eUXV4CwABBPUBAAAEFAAAAMRabXMbN5L+zl/B+yZXFhTe
X1x3m8IAMz5fnI0TebOp2nK5hkPQmjNFKnxxov311xi+aDCEaGdXd6dymRIH03i60eh+ugG7rBcP
m3YzXs3Hm/ruftEuP45f39Ufg2/n8/HVfTsbS8EZfTEOn8P6YUzw+K5dLNpNaFbL2Wb0dr1qwmbz
cnz8eXz5792L70dv6+3t43P4uf55tdjdhc21r7f1dfm3m+u/hel37fbwUezaxez6p7AI9SZcn+SN
3qzq2djOZuvjfPh3gmdGTjHGo9ezsNy28zasXw5wjH4O6027Wj5C+Pbbb8dX8N+LkVvNwvjdw304
PvxFSyT5+Oov9bb9HF4A9jXIHT9q+fZhe7tadrph8X40AhXC9bv27iSBYsIQVoiQMVYvCfzTEyLk
GL4DmD/cjFM439fNGL78BQw70RM2viLUK/1i9FO4X623vcFqNHL1YjH+uK7vb1+O4rvG0PG723Wo
Zx+YUlRzzeFb327u621z++Mu7MIH8nLcrO4m9f39Ikzu6naJtt0b4/HVJqzbevGiE/VNJ2yzrWHO
8VW7HC/a6exhMZvAf+30BTwn4/Hf8e9qPp/rZsqnKpD3hzf3QKLs/asny3evUay6N7ulamYz8b63
Nu7VpLm/f0kxPcnaS5t/DNvNCcnmYbMNdx+aRzQU60c8gpI6TGfvezL2Uj582KzDHNyVXBKlEklh
RueppIOszcFsT8khMpEzV1M8lHNE1S3ZctXUyyYshiI/hfUyLHpy8aNcOZ3Oqabvn1h+ebb8tL/8
cU0PT9FdvYQ1WGfd4MNx1Ie7j+sPJ385eMXh2SNAwXuKY8xNCKlrpPLa5efVp3BBntYsFTgL9fuB
f3yCaLTc/lHTzYjcCyJKDkxnDhPEJ902+PDbrwPNM0veB0rMnMx6myJK+nC/l/E1wjihfWlTPiOs
r3Yqb7X+9Cv40Xa3Xl7ybZGKnPMm9clO6EFatF5e4pfsKmcnu5KBXdXJruTZ7Eqe2a7kf8Ou5Fnt
KtXArnp0mAie/Ot2PUp6Hrse5T2jv+5//m0v9PnsekD6h3GyIU6RCExEht/b7SWVBzrTWpBUViJt
vg7h9MdqCUvffLq04kIm0kUjAeno3WpbL8bL3d0UUgC8uxdztQ7NDvjG5wBJY7fchtn4brfYtpA7
/jT+7TYsx3/+D/Hi5Wh0E6nJ9GG8Xd13xDG+/afIH+OLi0V9v4FXrw5vjOMrR03+UO57zJmn978m
7mde+6Muc/gRhI1GRbusgfh2nGVz0qTHPcdonH45m8/V+Jsei46EE0Xa+WL874wYX9lSIqu4QsyX
BhmsSgT7UWnleKWl//M/S5H3IOJiy5nogzt9aeaGzcfjyO3GVxRIJz0hs8BojbIWCUENYowppB02
yGuLCS8LIpQGZLvN+hqMdB1F9CbUVNH5cEL40qhojWjp5ptvJmRv4fGVFPB7HAz0BPJ/O20X7RbK
iwmeYMBCcclIYTAipgAsjlpkTVkgrniJdWWqEosellR6HxXDPJyhYhDr4HPc40adDV//MJmvwYuj
s4yv2IR2CDU3gMgJakvPCaybo4hhXCBDKjCWrRRTRHvKGSC66dzp+k07XYPXXFdHcZvrsxmuD+R+
c22PDxPktJHnyGlzsudsuWmX89XRolywCTEXbEo48OyqKpBjziJWOYcML8DEXBJSgN8Z6ns23W+M
6+FECUTOz5c8fjkw7ufQvIkQ2UTD2MNf8AeAUoYzopxCvGQanE7DQmvFkSiJxpg4IICXzbqXlrfq
/lmKGAjlGWIpcIcY1GubXbNah4k9mdVcdNTKSyDkXiNfsQoxzSlsGloiV3EFPlEYKU3qqIMZRimQ
WQbdbNot+aM9NzFOA4o5ROkZYIKC9Ep2IIUgREx456+wrEYRVHIhECNWImMKjWylseOFo9L7i4a9
OUxSnSbJG/l8XKrSrMmoFMLRi//xGBMIbDjxdEiwBLQrQQOINDFwClSAyyIjIGrxqiScyNTS/8gF
BC6n9AxQ/HI+n/VtXO9m7WqyW7bbzcTG3/8Kv0aM0YVJ57tEMcZloZAk3MHaQ0jQpcbIFJ4UpcAQ
ZfhFE5/k5i17epzgN0qd4zcmDPbcSeJkXt+1i4dmtdyuV4sNePSEwNucRKMKXAkrqEO6KmSMahaB
fI+Eq3zJvVBGFucqvF23n+tt6GlSdXO4wxx5ddIxqU5mntGpPu1K39Yfl6vNtm2+D5tNTMRu0QIR
OHpOP8FqwXWJvUPYU9iRGPQqMBeoKiGPMV0q6XXqJ5elp0Brcg60FnRg/Df1btnc3oT157YJYHLB
zETF7Rk/AaOHJCIxhAlRYgKbE/alocKjAoK4xM5ibaqLnuMgghzFP2Htx8EpmvzwdMwoVY+d6zyl
YhCUIqR34XfYI1TiLhjt10MUlSNewi6xMkbIAtKOh8xunCJUal56676oaxScB358mkCemfOgw2dh
eqIi8FKzfrjfrnIe5ErsqLEMOciYkJNMgayPvIhWXEIKZsy5bKIcik0xhQymEMli4jrfh20NYbSG
UIMnqrOjwmoiABcnHBekkkh5xQAXZM2CVRRxXzBuHMT40jyf1xyB5AcenyYqhmaWUTGwoYqxqNiu
duBvu/vY5uyzLsrEhBqQsf8F1JZElU5XBBWuBMYsBEPAkT2qNBBSKUtChfqaGHVh2kSz4bBUxZCJ
vvCfoftItZr+d/NIHijVE3yBPRjsoR6gGlVce8TKSLkhlyFKsRWk8ga+SWNVX34fWEdrhsAgBYkT
W0z6bHtolF3A5qk0EP0rVDkBZo/sW2soDCrJhBZCkhKbPF1MZkpBEpkBqdkglETHmoVtaLar9SZu
qmPSAkgTGndC5TmE0BIVBYYdam2Bili52JIZ4QXHuHRf4xKxuvLHieLuyLvE2bBUKd3klJodk9eh
wpwuVs2nzdH8wlx0DA9c3BWOIcEJUAtVeGStL5F1TgmLnTBOZ42fmWwANmTAmuboJof3l2HbcYdM
dMTemIpyyF2yKiPrqVChCZRmljvJcFkKrS5BS0Qn2IjJYKOyHmBrjqg0hQghL1iRO/BajCXkfgKp
p9IV0hiKCw87i7uKQjwpLkFtMiDpeVkNu6HRAxeuEmoeOaPhUPLKSFCAH0pdeaSog5JHOAJ1mAP2
ZbGqsFFO4MvM/DIjd9d5Jg4gmxzyIXF8t95ttuXnerHrRNiPseFytS+FKYt9AqM847pAjEJ0YKWA
ksdDGhKmqKynpCSWfc3my02U33+5kYlqsjmnKPBlfdyCzer+Yd7GyHLwnMu7TyspFPMYlQbHjCMl
sgRrJJQqLXB7STR9ggD05xlAnOYgnqLEr7t6XS+37fIEUtCLIHlR0lJCvWkJZAzGgboXXMMyFJ7a
EjzcUZ4FOZxpADOzB2UQAyd5FZZh3S1GvbiBqAikOdZGMUYTRiesq4y51bxgiDALbg58F1lhSkSF
ZVAwcWXJV6XtzFR5L8kMTFRT+Jy7w5enfspu+Vu7nB2tz77QoCIKM88koh6SD/OwHTSHxSghF1Hm
sITMnrV+f5YBPJ2BJ8wgsOztBVXUvP24Wx8iDFiedp28/S9dM49xUsS0wVjMkJDCtTYEPNoRS7W0
in6h/D+f54n6/3xgoldN6nO9akYGHuWqH+7D0rfrLss+dPS3K7UF6NR1WqqisIJphHEhgP1CBoK/
C+S09dJ552EfXNQokf9F+jvA80TxkQ5K9WY0o/ehVITFf7v8mEuvFXcUlgvqVaLAsUrY2yY2FQpn
VKWULiw3/3yf8aewWe3WQP+v+whS3JlyT9SqHvjh27Cer9Z3sY1vj5dIoh/KuGYxzZVca8105LbA
DhhhJZR8RYEEpGCPFVAaa75m/2cmyuuWGZgqpjIReGqmA0echc2n7ep+cyreCZRhrNtbqgtsEDJg
ITzsdYeBAHFGYOtHFmQg3HllC+/lV5HP/UTHgiwOeIJ+ng9MFJvOxLli86Y5etob+9a673LO5iWj
UFsViBYWooSOpVXsAVHsLXwSbMjl2tw2TVjEqBu+uKEuNWoHIPvaSZxpIEpCzDzstXv1pvP4nHqE
GWu0gRQpgZ+wihsor6oClco6VglZ4i80l+PufvXmiY5JN7zdb6UExChFmoFf140chD+oKl7Fqz1t
07kc1Em9Hgo3ghkJlYCRHsoB4xWyvhJQ9EhVUatKXpLL6wSTtE0XnL+6AdCH9HTv5ThilOo3yygd
HTKJId+F9TSsV5sjvSSx+cJNAXUmeCMv/UFVDizMslJDMSSg/pcXVT0KzUM+Pk3gTtl5ipJThQcV
XP+0pe9mvKqcpZD8gb5zxKSAMkNZiTwvq0IbgZkjl8qM/OEKAGAZVBoP4lVc2lDdOKAp8WZcxwe4
6eJV1+GN9TXnsKfBTSAM09gxlxTJiklmCLYal18Trc6neaJpfTYuVSrnGdND+ZQ/jgXvwAJPKJ0Q
9iQfExb2R0ktcmByWANaQMbkQD4pVZhbKAP5xaq0P2EKuMn4RoOHtOxHH4+3+ONpKpRETIJfIOCC
kP5wxSEKQapQQNurSpVC+uffsj/6/JAffaJTQ2hGJyFP5dLufjOhJ+sD/8owYXqwvCKlUsQShLk2
sGsJME0L/iakpc6A4hq7wVFtT3yKS6gMLsUHtl5BVN406/Z+G2+rQrBkE/nYvMVYQ2i3iHStdc8d
ssZW8VjDGI/j0fsXmqT1evqUcw9Sw80RRH50MiRVVImMonoYcJarbTt/OK6D0RNxoSKBwEmVcA5p
JizU5jFmVoWNZ/iEqfiwkBf7Mr3JUrCa5MA+egvAgZp3/WF9Oo9h+GLpCiukFSMeCdi0EOMrAukM
Y8SFwYwST7k1T9TXg6kGQHPuU59ii/uputm12yxVUEzaohQaaR/TDgVXthhCuqPxgN+WAqq61ItT
aSmQ2mSATE/L+6r65ea2XodZ9vxKGqDIBfAVoMsQOByLab5EihVQ3xteyEI9E2lJYSQqhJyHBk0H
W/EvYWt329vYn42D+f5MXBROeQW1Z0Vj5a8ZhL7YdrPecg3BDxzqa1LOQXhek8PDFLTOZMxghnc9
NvchNLeTzcNyexuScqLrM0MJ3akSf4k9euAhwLGgvscGuJcnQLtKL5CynoNXWOWIfPZAftNBvDlH
mFTe6aDUFEbnTKHn57Szd0zZnVHGA0rjPeeuwMhJzmOPEgqDSiiECyjmWOkIV/5fPGrqjxhAz+ye
OSbH3fPZ37w9BRqNJ5c6wA7ivyjLAmpoyeJm4gicj8HiidKWFhelxP9HBc4j7L62CtfnC6UI5mdt
n7vp6uhGXc6LLeWuz0adKrtTbsohmGKgzgWDGg5LJmO+Y6y7tvXF3ZbM8FSrpzdklAIWGS3EqXX/
7nVVZY9aucclMRIZRoA8kHjUWimKdCFZVcTQS4pn6nY8QkiQM3Ge3RRTsyPyn16/fTzP66qyjLtJ
fmrKUijTSopEPCFhlTXIcKYggkNF7UhpCyP+Hwq1xBA9jVJL6DpjCTMbeOKbevmx3/HZn1F3n7Ev
WlEJEROypyrc4YyaOyiISmew8hWuyuLZDdCH9NT1hscRidKS8nOljeCDOPmfr9+tVovp6vdjqbp3
XwksHmsHJRWW8SiHURTbPyh2VQQWyrmCPgfZPE2fH3l6nKhmzHk2VLURxzj6X29ptpotS4gZZdyI
porVLORxAVuyUp4Q64lTsnqmLXlCMEohygzumvf45t1q6ZLrG93x90XOWVhbldgZVBRaAimxsSHu
MCqZK6zR3uJOrSznHEyXoq0zkW9an9q8m18BRmAnEp9NV+YA0voSSJ/RyMdLWLB8ULwwGm/kAunj
HCtpqpSFJuITYNPMfRM1nQ+vKvl288mup+32eJZAocqIBKj7jCFaEWa7kkLGdqd08RQ69giF09Ky
SmBnL/rDYIYnepzpoFSTecaRGzoMTK9ubmIN3p1T7m9XKIBW4njDFUIwq+KJgVRAYipfMEW4g617
ETlIfOKo6eYmQdgonEGo9NEJFt3tqtOVUk7juTV9+nAJ0p6zlUYS0ggEExNNLiSCmCKl0BBQcf4C
Un+eBOBsfn6spwI+7am7urldPZ6rXz4eLSoGTukNKnWMEFqVyFDLkSyJBTctPPf58q03Sx+dxtPz
HKwpHrrq/krm9hAJu9uRp6jcv5fppMYlYIHME2u5EpbcwlIj77gylFoH8e3L9zIvRtz+iFGKmmVU
4XLgqz+Fu9U2/NyG3x7Z9+G2ORDa2M9yVTwm9YjHpjyz8bJ2WUE4APik4qyw/KsuZp5P9FRcHo5L
1GL43H/ideUhS23qRT1dhL9uwvr1chvW87rpDoaP3d2KeM58VSCigPSBgvFqHS+6HkBZelYAGby4
ND/+T3FX0hy3kazv/BVzfJdi1L4ca7UVI48VljV39CZ1iIuGFB32/PqXCfSCAgpNvnE/TygkUg0E
OrO6KvP7cuuX7un7v5dLdcaAtiXMArBt3VovgNatBZgmj17JYcYiJePYOhAwOMUBKliF1eIuAgzm
UpRI/2wOczEjaWUjt2/lTp8BQf6hhQgUQDfFiyaJBoFhCYwxUU6kBlMkEuC9pK6GCI4i1JLv5pEd
7Aw4Sh6BBK//DzA9GgpHKBjCrQQLEcCMeRUDMRY8sHYs8CT/2zC90ummVlw2VkNtG2HS9R3aFX7L
bO8V8ReEeN7YrESEUwgUX4C22F3jSS7WcEDokonXU+nx/fL+i+8rgXuKOxW4s1P7fmxr+LI/xpMU
YCvEIEJmqbCCJEVMYmDrimdg23Mo0gZjolJXCeoeexl+fHe51+HHd5V+q0Y83a54s8codt++v2BF
ox3M/dCaYzzol7Gy18MJ0x5Te7kQw0NkQjvLfL6GfmMJLjQiHe6odeS2paM7Q5yHz/uFgKaMkrpE
ksJMiMVCgCAl8RJQpTSFCzlp3Bg/ayJE1xKim6bEzkGbC61HQXlmc8bWHQvG2IIxBmgAiw4wO3DP
Nefqr4gNzbuUQKVVQ0/hjkGJr7/fNZdaAskB2okF0gJ7ZKgmIcNvAB6NKsZo0LKJzM4PrOUQrfV2
brreGWyuVH0Wpv+JosgiMfFJwHECd1BSADXGAKqjPFNenNBXbHHweQGn5bE+TjQMEbw4zT5uHp6f
m+urmS7gDBkBj461r6GQwKMkXAJDYlEV79OlHMvowRO55iFPp1bbRotFOvQG6KGLh5q+oYTLTL0O
EkAi9vYlxkEw7dGAuBSxqlTbV1c7LVb7H6/e1PLtWkJPm/8G0wQiK9lDIexkEIYbphNmoT1DGMgI
FoeD4AkAotfZRvsf27vhWi3quvG5q60ataZ2q/0p4akv12Zb2AauCAJ/QWRjPHEe/psCM9hjCYBO
znpTT4+v5Nqs5kYVXjxV7vzwrhk11V5rGQC5UG+xabIYDEBJQmNiyuExy9eqETtJMJF7nsV3u840
9uu8ENpIOcAQr2kU0YFPMLqnuVhIJSOJ0hofwVxF/npn0GvtifU9N7XAjdXfrafW7dNq/68X3ADY
oIgwSopbhrs4Om8yssugMb6gDVhbrQ2J1CK6DADT3lThdnyDtgLHq7XojaoEt9ueciQ/vG/WQ6kC
KBfW2kqsLUwiEae1IBn2rCh4lV2tHqqxa3bbeaisozODserWX1++jZNy7FYeqltlH5KiQYGTc4LE
xMHaUVz4DNakcJvAu7AcWXrLwofJO43VGa6N5e8YnUfUOsbMLKeGAcMhLToORxnvAHOzQmxgFis7
NeAgQN1cJxcUoFip3iT1+flLO/54vZaeuYb01iz2jb77+e/7ofK/dzXHLSQBo2qsp3CYUPOc2Ow4
MULblIFNSX35zPZPXcCeeKmW2dqGzLOELjKdz3d9EKhvs+x/olfUxZRiHNGhz6dr2ydiiAEnk6mJ
Tin2H+/34VotbuNUwotTN/5rjFVMhBcRjBKkRGzrQ6RkQ8jgEV1JAcw8mPs39VPEuNA+EeNEzLnj
7iR22za7zP/2P+bYW27cLWN9tQTWKFhJVMAsj3KGeKMY7AJDA41cmqze1Fx+mWbd1AKyhtQrevTh
v3dP51byauKGoTkJpUhWTBPBGBaOF6AjlmohsEchs9pfjx5Vi9CIU3ZarvtS1NG4g969Hlvy9VAT
4TMTABsIdxhKF8DwbAY6hD4uMoBxxZurkY2hFrVNNvprN7UCm5ZWm0VSdYy2jl4ZAq/aJ2lx/1KL
Dj1JSiyNmVBWmJWFA2b5c4zqfL3WoFE31ml7ysH8/nz3/bw3RLtpTBxTuJIBUcKObIadEwDOsWCy
YNzLqlK8BmYz2S6jx9dyNepRAHOcOHN47z82s+KM8kiLJjZiV36QDnYsbBaeg2aFBm6s/IuqFs4i
VppZOY94dE6Y8xiNx4ffziWEpgmozXGGBpDw4JwmGcMCAo4CCU5nkoQBeCJTLtMDWj2+Eswp2RBs
My2naMXv/K+YPxLnEs6QrAhUOCCuXGF3bibOGYXFTMlnrZ21189lgxQLe//XKufU7XYNZ7Pb7U5p
0m795dxLZi5SGq0ACESNobW+pQ/nhDDvcfdLqTJ34NjbydHzm4yFW1E5d9wrupnlC7bd0/rL34fB
GvJQSCAPIdoigZk7UpBlixjgY0haE8Z8LjHEnLK5XvzgJMiSQzpcrpXc6JaSZhJNeO4eNphIahE5
KyyAqUSs5nDQhQIgG2TBf4w1nGlOL1YtV4+eyNb8ANbTkOTPH18OSRqLrBcp+vDLAJ8oi0li/SGS
NA+W0LpENPBzcFlK8vDKyKPj05fw3uFyJbmic9OyUu7EiX/7af+8fmv9FxByITSAbNb36hihSBAs
EhzClbwvmnP2V9V/neWu9XWbhr7n2Se/dJs99jQ1m8VMcp7C/gFwDxZKxkBCyYoYl3wRRVIfxZUC
AbUYtQYNZLbSeprzxEb+l/2p18OyW4SSViQeHYddhbOTRIT95bD6VrikAC4oGYV/Gyt62n56txwD
+FSF7EE805C5m3a5rR7vcSTvILEbuGdhhQPZFFpio0EA+p9lIICOPWVGcOrelJgN8B5t4vl4X0va
rVqSro77o6oy//R9f9fcKFZbxjkn1AEGFYEBMgMbSqJSXgYXFZ8W6S88thZt21rE3XTeR3zqnr8M
A423T4ehGkNutK9iBLyFsMvmlFIRRBls/nEJTKECsgwbvAQHbtmEN3WVt95sYVc07qzUM2ruYVcr
M4CcAnYL99X7/ecvPUseJlS0zZCHo+kUQIcoYz/vh2E1MaB/IE0UKJPM9o1jlkZvujRlaXTLTS15
wyX0lUqzoN0/95vt4xHmO9d7g6yo5YDHiE6YLnHAVT1FLmO9VwGgsbX6VYfcP3j5kPaXa6G7OYRe
rWfDh37c7u833V0dcIk43i5qsPYCt5TysOrgD0jJXPFsAvf0TZWxh4cv1N4NF29q+RrAYLOZFhWe
axmOSy3oEODiQmYPtJRQbbDm3ANlzT4SbaTiOnPBI/9TZRLn6ze1jPPIwGqLpdcHjv3t5HkBANxK
fqlKKGSlbEhEZRxAp7Ik1mVwVR6oDMXCSeWb2Ob0Jje1FA1YsFVTQPPtaT+eInH7Af8/LPFgbYQ1
/RKr4GkMII9MFmme9sRpqQFuChWdpSqY6/dnnaRZ6GA+Xq41b9RDrnZKzM7t3eMT1gxg8twe2jGG
9LKOWQgBmwhMbB9tB3KrHPyTAgAoyRK4gf+HcoeDPEvH/XD5plZLtnTdtjs4nrbrx88P+zr4P/Rw
qEMLh+oTNkDiGOYegVfDTmRA4ZixRLMMnF5HqT27SvVAL9UvLaHmbRuj28YrsJZifgTXSp5GmZTH
h+8fuqfn7VPLzzvQhmfpAAF6IBQSXE7Ak6e9sVw5eDH5v46yVgByKvhNreCqpfWJzPbO4afloX8e
qLpjyRGFk8EEaEs8d6i3oFnnmJnn18lszCWpFWnMF10rs51wwvuWEkEKCUYz4ogUHP0AtjN4b4gC
txDAIwgpL/YR3zfkMbwhj9G7ozz4qfyy/bx//v70R0smnqlIJoFxDLYgcgk4KlJh8ihoDhSVm/Jf
3FC16LXmpqW5OfmyQeTbcHJo2t1emocmtJLGwAeTNPbZIBGGJZFgSorPTiuTc64hdP0OE+F4Szg9
s+mYyvnQPWzvns/zUR3CMe8jhY8mE550X4qAaUig6awAXHAsG/5KrPWNRm0swqV803BHraSd5/vW
9tBDiI7+/o6fY4Q9H2gsPz3GZU2gLgZOohY4qpQDngiALDSVtIB1c0FOKMz4+ZVgtlEOsHZaN5Dw
ac/+/HHUJ6dMX+vS/8SkWEhBSaUJjRnYFcVBDQ6Avs0l0cRDiTFdL1Z1lmQhMfWxVcK7do1g9NrN
4f+Xl4evQPkOUp7ouhD98BMbckRGRlLE+KDBebxorbiUnAfErbG8iabVb7Ows+qbanUa3HPtdqeO
s9XzPWyc5oAdnF8G3FdS8BcCeDuxMmC6QmWBUMtMZy6OHlWJ0MnGinZymu5bPW9uD5/IT/23rtyP
J6oNTIUBs+JJEaBRYPklFvx7hV9FVOCPNYW/UhY9e/5SHHNy20SfBvTo7DQvmPbrfsjW0x8fRzNy
+vy8lT1VpEoWMEuFuFgwnFwYtt9bbBmB5Q6a6ciudx7m8iy1mEzvq7VvcJ/1Sp56OJ6/b3DGvD6F
1PXFpEb2ngclAHPj3EYBKwF0ORdSgkvSSSB23E9aeao3uKnFcC3ZTlMbz1/VdBjqf7s8KaMoJ4BV
OhIZQ+LDA/HaKeIoMGRAT9jP0Z7r+UerRhDE2DRk2zY7jesm1sHbsj78EwHjlBRgj5Ri4ASECGfB
eoIT1CPHLEyrxrwdBnxDJ+vstlqlRrfMet1oCqwOwLkt0DM4zzilvOR+wiMNAOS4Jso7LHeNkol0
ddB0lmapSbC57QfEOtN1yqv/sf1ePsKmH7X5W565DM4TYzByi5XLLjsHJJNrk5yNVF0uWu6fudjd
X6p013rXKL5Z7+SsnW27evk8fLLPODID4VI/q11mY21gRGYsBSnJEAe7DEy/U0KmEpmzbxvadX7+
0rSu8x21BpuGu9jtTnDoCcDt3W+3rjl0FWBTilinj+OsBAOzCpQnEhqCYjZKOxtPUT+tFmTXFOTU
TfF1+8f95xO95Opi6jBGl4UAqhUyVlfABieOAw7Nyrigac6St5vBxu8yFm9D7TzegS825h5Nzgh+
CQZuT9WHXH0o2GqTk8BxKMBZAABlEoSxgnmpvKXXOYONGyf6zJHKBszmPCXdJ0KHIknGrLkVZqgc
8djjQMCwYyK0nzSHHdXKG+VUjGBZXlNkIbEZD9cqcbd07gc3W2Yb1GT7NMSaj9VMXPcpHUk92D9v
4awpIOPReBI4GAYL6J2C9Yv67YVu+BaLadnGvcvBtfEdY4W3Zjt3rvDiaTLrt+7+zFJE8zAca0ci
EEKFtS8qKDD8vJ/nnRnhkYMzY8mIMPnugdHDa6F2uiHUblqb+mV7922YgNTPLBl6ZYQDX5qRImG0
y4BZNgmcT8nMFBBOBH+VnnR466WQ+F1VOLl1jSZ7eFGdLd/942/b8YBefvzynYV6BaNFiDYTZnHa
F/ai2oJlI1Jgt7LhWrabuafvNBGzsearddeghYcKLwtSymHU2rDzMbQNqwwnFFGMxriJFNhdpTRj
hUmT/bXaG09iLCOcWa0XaLNqqXja6/GfP338cPfyef9wTJ21gm1YEsKyIECbMFUXKLiloIlkTHHt
LVCWK00oWhBnotIcrG03cpaELP8YBo/j7HUNBwYR8uG3vkgQEGa0WImBqNj0pWs5EikyE9QYF8Mr
HQnH5y9Nij1cHsu+ow3OsWP81Ofzw/tPzfowLkXUCb8DwiJxBVgTAlMk44wvFa3hTl6rjvvTfMlB
wnlidCcluxQ/GazKwVtQYfpI1vBLX1DKki0AbVhUmFpnAhAzZSSX7JVMPhV5RcZ4luVSB8nUUezk
rqX2rpsxnfVjh368L0XGb7BgBTaQVJEUAb5QMAOfF+eZFOMDLRFrfOUr2sEjl845XKrEVHxejgEv
ivOc6/UbsZ3jlirBLYk46VpIQJ1gzsCVGAaCS6uo4QtDrhspPJBBNgQTp6aF1b85ztw+fx0UvfB1
UDE7Y1W2BEg2phcpIFABG8jyQqmWWDbAJ2Gc8eNrwRxvCLY5Be27l/YXxRgRU8SZ60yDNRQlAqmA
DxM4vufJS5lCnMhwflIlgG7M/oYXp56nmdw8dpICwui9v9Y6Rk6C1YC9BB4kAbbZO2eMT8D901W8
/4dalFkWc6LeqqFeN52huX/4WnV9YEC4Dyupnm4C17Rc4RdtIa4xCrwsDuwDFCyklCWkfJVZO+8e
Fkw4XKi0MnLOnHdmFlAdplagMemHRhxGzB0nzGF6kqkiShCoTl//r4DbAXJ0niuvgFBl8XobVP/s
ZSTQX775X1BLAwQUAAIACABBOutC1qPYVW8jAACoeAAAGgAcAEltYWdlRGlmZi02NTUzMi1zYW1w
bGUudHh0VVQJAAOavt5Rmr7eUXV4CwABBPUBAAAEFAAAAMRbWZMbN5J+56/gYys8YOM+FLvjwFHQ
aC2PJbXG44gJhaJYLKprxSZ7eMhu//pNFM8qgpQ8o9jRQzebhQK+TGR+eQCy83L2tGpWw8V0uCof
HmfN/OPw5UP5sQ7NdDq8eWwmQykEo8+G9ed6+TQkePjQzGbNqq4W88lq8Hq5qOrV6vlw/+/48j/a
F98PXpfr++Nz+Hf782K2eahXt6Fcl7fF3+9u/16Pf2jWu19u08wmt2/rWV2u6tvDfINXi3IytJPJ
cr8e/o3gEpMxxnjwclLP1820qZfPezgGP9fLVbOYHyF8//33wxv48WzgF5N6+O7psd4//EVLJPnw
5q/luvlcPwPsS5h3eJTy9dP6fjFPsjEj3g8GIEJ9+655OMxAMWEIK0TIEKvnRD3neKQ0HcJ3APOn
u2EXzo9lNYQvfwHFjvSIDW8IDUo/G7ytHxfL9clgNRj4cjYbflyWj/fPB+ldY+jw3f2yLicfmFLU
cKXh29CsHst1df9mU2/qD+T5sFo8jMrHx1k9eiibOVq3bwyHN6t62ZSzZ+1U37WTrdYlrDm8aebD
WTOePM0mI/jRjJ/BczIc/gP/pqbTqa7GfKxq8n735hZImnv76kHz7WsUq/bNdquqyUS8P9kb/2JU
PT4+p5ge5trONv1Yr1cHJKun1bp++FAd0VCsj3gEJWU9nrw/mWM7y4cPq2U9BXMl16ZSnZnqCZ12
Z9rNtdqp7dI8RHbmmaox7s+zR9Vu2XxRlfOqnvWn/FQv5/XsZF58nFeOx1Oq6fsL22/Otp+ebn/a
091T9FDOYQ+WPTPYAdyP+vDwcfnhYC87q9g9OwIU/ERwjLmp6/eDjsCd+Zr558Wn+sp8WrPuhJO6
PE64nfITsNF8/UdVNyESXPbdYl3OhvPNwxjkh/fB6qtPw5tlXW3A2T7XoLHNfF1Phg+b2boBxf1p
+Ot9PR/++b/Fs+eDwV3yy/HTcL14bFkzvf2nRJ7pxdmsfFzBqze7N4bplT3wP7TxR2EP73+N0Cev
DVwzL4GyW29bHWCcsOYQDbtfTqZTNfzuhP8TVaJEmM+G/8WICdEWElnFFWKhMMhgVSBBjNLK86hl
+PO/Su5bEGmnpKlOwR2+5FPDpsNhYqXhDQW6pAdklmNhlLVICGoQY0wh7bFBQVtMeOGIUBqQbVbL
W1DSbZriZEFNFZ32F4QvjUraSJquvvtuRLYaHt5IAZ/TYHAssNxm3MyaNQTGER5hwEJxwYgzGBHj
AIunFllTOMQVL7COJhZYnGDpzn6KimFen6FiRKbfwxOvbnX48qfRdAkm+OtiCabMRrRFqLkBRF5Q
WwROYN88RQxjhwyJoCwbFVNEB8oZILprzen2VTNegtXcxv10q9uzFW53YWl1a/cPO8hpJc+R0+qg
z8l81cyni71GuWAjYq7olHCIEDE65Jm3iEXvkeEOVMwlIQ7sztBwotOtY9z2F+pA5Px8y9OXPeV+
rqtXCSIbaRi7+wv+AFDKcEaUV4gXTIPRadhorTgSBdEYEw/UdV2t29nyWt0+6yIGKjxDLAVuEYN4
TbWpFst6ZA9qNVcNNQYJoSRoFCKLiGlOwWlogXyEPCJQZ6Q0XUPtrTDoAplk0E3G7ZYf9blKJAso
pkCxE8AEqdSNbEEKQYgY8dZeYVuNIqjgQiBGrETGOI1s1Nhz56kM4api73aLxMMieSWfj+uKNKky
ItX13op/P3ICAYcTlynBEpCuAAmAaRJxCuTAZJERwFo8FoQT2dX07zlC4HJMzwClL6fTyamOy82k
WYw282a9Gtn0+W/wMWFMJkxa2yWKMS6dQpJwD3sPlKALjZFxgbhCYGAZflXFh3nzmj087uA3Sp3j
N6bu+dxhxtG0hFrjCQqN9XIxW4FFjwi8zUlSqsBRWEE90tHJxGoWwfwBCR9DwYNQRrpzEV4vm8+Q
sZ9IEts1/G6NvDjdMV2ZzDQjU3nwytCUH+eL1bqpfoQCIgViP2sgiu8t5zTAasF1gYNHOFDwSAxy
OcwFigXEMaYLJYPu2sn12btAS3IOtBS0p/xX5WZe3d/Vy88NVDzDGyhzRiq5Z/oNGAMEEYmBJkSB
CTgn+KWhIiAHJC6xt1ibeNVyPDDIfvoL2j4O7qLJD++OGXTFY+cyj6nokVKC9K7+DXyEStyS0XY/
hIueBAleYmViSAdhJ0BkN14RKjUvgvVflDVNnAe+f9qBPDHnpAMJ8PiQisBL1fLpcb3IWZAvsKfG
MuQhYkJMMg7ZkPIiGrmEEMyY99lA2Z+2i6nOYKrlpGc6P9brEmi0BKqBkrfVo8JqJAAXJxw7EiVS
QTHABVHTsUgRD45x44HjC/PtrGYPJD9w/7QjYl1NMiLWrC9iqgjWiw3Y2+YxFeinWRdlYkQNzLH9
AGJLogqvI0HOF5AxC8EQ5MgBRQ0JqZQFoUJ9DUddWbYjWX9YV8Q6w77ww9AtUy3G/1sdkwdK9Qhf
yR4MDlAPUI0i1wGxIqXcEMsQpdgKEoOBb7pcdTr/KbA2rekDgxAkDtlip0LcQqPsCrZApQH2jyh6
AWpP2bfWUBhEyYQWQpICm3y62FmpC5LIDEjNelSSDGtSr+tqvViuklPtgxZAGtHkCTFwoNACOYfB
Q611yKXKxRbMiCA4xoX/GpNI1VXYL5S8I28SZ8O6QukqJ9RkH7x2FeZ4tqg+rfbqF+aqYQTIxb3z
DAlOILVQLiBrQ4Gs90pY7IXxOqv8zGI9sHUGrKn2ZrJ7f16v29whw444GBMph9glY5GynoicJlCa
We4lw0UhtLoGrTN1BxsxGWxUlj1s1R6VpsAQ8ooWuQerxVhC7CcQeqKOSGMoLgJ4FveRAp+4a1Cr
DEgqx+cgRaV7Jhw7qXnKGQ2HklemBAXyQ6ljQIp6KHmEJ1CHeci+LFYRG+UFvp6ZX8/I/W0+EweQ
VQ55P3F8t9ys1sXncrZpp7AfU7fkZlsKU5b6BEYFxrVDjAI7sEJAyRMgDAnjog2UFMSyr3G+3EJ5
/8uN7Igmq/MUBb4s9y5YLR6fpk1ilp3lXPc+raRQLGBUGJwijpTIEqyRUKqwkNtLoumFBOB0nR7E
cQ7igSX+uSmX5XzdzA8gBb0KkruCFhLqTUsgYjAOqbvjGrbBBWoLsHBPeRZkf6UezIwPylr0jORF
Pa+X7WaUsztgRUiaU22UOJowOmJtZcyt5o4hwiyYOeS7yApTICosg4KJK0u+KmxnlspbSWZgRzSF
z3N3+PLQT9nMf23mk7322RcaVERhFphENEDwYQHcQXPYjAJiEWUeS4jsWe2frtKDpzPwhOkRy1Zf
UEVNm4+b5Y5hQPO07eRtP7TNPMaJS2GDsRQhIYRrbQhYtCeWamkV/UL5f77Ohfr/fGBHrpKU53KV
jPQsysefHut5aJZtlH1q09+21BYgU9tpic5ZwTTC2AnIfiECwd8OeW2D9MEH8IOrEnXm/2L628Nz
ofjoDurKzWhG7l2pCJv/ev4xF14j9xS2C+pVosCwCvBtk5oKzhsVldLOcvOv9xnf1qvFZgnp/+0p
gi7uTLknSlX27PB1vZwulg+pB2/3x5/JDmXasxTmCq61ZjrltpAdMMIKKPmcQwJCcMAKUhprvsb/
MwvlZcsM7AqmMgw8NuOeIU7q1af14nF1KN4JlGGs9S3VEhtQBmxEAF/3GBIgzgi4fsqCDNBdUNaF
IL8q+dwutC/I0oAL6ef5wI5g44k4F2xaVXtLe2VfW/9DztiCZBRqK4eos8ASOpVWqQdEcbDwm2BD
rtfmtqrqWWLd+osOda1R2wN5Kp3EmQaiJMRM6610L161Fp8TjzBjjTYQIiXkJyxyA+VVdKhQ1rMo
ZIG/0FxO3v3i1YWOSTu82bpSB8SgizQDvywr2aM/qCpepEPppmpNDuqkkx4KN4IZCZWAkQHKARMU
siEKKHqkitSqghfk+j7BIk3VkvNXNwBOIV3uvexHDLryTTJCJ4PscMgP9XJcLxerfXpJUvOFGwd1
JlgjL8JOVA5ZmGWFhmJIQP0vr4q6nzQPef+0A3fMzkOUHCvcq+BOT1tOzYzH6C2F4A/pO0dMCigz
lJUo8CI6bQRmnlwrM/KHKwCAZVBp3OOrtLV1vPOQpqQ7HW0+wE3LV22HN9XXnINPg5kADdPUMZcU
ycgkMwRbjYuvYavzZS40rc/GdYXKWcZ4Vz7lj2PBOrDAI0pHhF3Mx4QF/yioRR5UDntAHURMDskn
pQpzC2Ugv1qVni7YBVxlbKPC/bTsTUjHW/x4mgolEZNgFwhyQQh/OHJgIQgVCtL2GFUhZPj2Lvsm
5Ie8CR2ZKkIzMgl5KJc2j6sRPWgf8q9MJkx3mlekUIpYgjDXBryWQKZpwd6EtNQbEFxj3zuqPZm+
i0uoDC7Fe7peACuvqmXzuE73rIAs2Ugem7cYa6B2i0jbWg/cI2tsTMcaxgScjt6/0CQtl+NLxt0L
DXd7EPnRnSFdQZXICKr7hDNfrJvp034fjB6JKxUJECdVwnukmbBQmyfOjM6mM3zCVHro5NW+zMli
XbCa5MAerQXgQM27/LA8nMcwfLV0hR3SipGABDgtcHwkEM4wRlwYzCgJlFtzob7uLdUDmjOf8sAt
/m282zTrbKqgmLSuEBrpkMIOBVO2GCjd03TAbwsBVV3XiruzdYGUJgNkfNjeF/GXu/tyWU+y51fS
QIrsIF+BdBmIw7MU5gukmIP63nAnnfpGSUsXRkeEOmehtaY9V/xrvbab9X3qz6bBfHsmLpxXQUHt
GWmq/DUD6kttNxss10B+YFBfE3J2k+cl2T3sgtaZiFmb/l2P1WNdV/ej1dN8fV93yom2zwwldCtK
+pB69JCHQI4F9T02kHsFAmlXEQRSNnCwCqs8kd+cyO9aiHfnCDuVd3dQVxVG51Shp+dp58kxZXtG
mQ4oTQice4eRl5ynHiUUBlEohB0Uc6zwhKvwbx41nY7oQc94zxSTvfd8DnevD0Sj8ehaB9gD/4ui
cFBDS5aciSMwPgabJwpbWOwKif+fCpwj7FNpFS7PN0oRzM/aPg/jxd6M2piXWsptn416VbSn3JQD
mWJInR2DGg5LJlO8Y6y9tvVFb+uscKnVczJk0AUsMlKIQ+v+3csYs0etPOCCGIkMI5A8kHTUGhVF
2kkWXaJe4r5Rt+MIoYOcifPoppia7JG/ffn6eJ7XVmUZc5P80JSlUKYVFIl0QsKiNchwpoDBoaL2
pLDOiP9AodZRxIlEXU3oMqMJM+lZ4qty/vG047M9o25/p75opBIYE6Kncn53Rs09FESFN1iFiGPh
vrkCTiFdut5wHNERWlJ+LrQRvMeTf3n5brGYjRe/7UvVrflKyOKx9lBSYZmOchhFqf2DUldFYKG8
d/RbJJuH5fMjD487ohlzHg1VacSeR//nNc1Ws0UBnFEkRzQxVbMQxwW4ZFSBEBuIVzJ+I5c8IBh0
IcoM7pKf5JsPi7nvXN9oj7+v5pzO2lhgb5BzWkJSYlND3GNUMO+s0cHiVqxsztlbrou2zDDfuDy0
eVf/BBg1OyTx2XBldiBtKCDpMxqFdAkLtg+KF0bTjVxI+jjHSprYzUI703eAjTP3TdR42r+qFJrV
J7scN+v9WQKFKiMlQO3vRNGKMNuWFDK1O6VPp9CpRyi8lpZFgb29ag+9FS70OLuDupJMM4Zc0T4x
vbi7SzV4e065vV2hAFqB0w1XoGAW04mBVJDExOCYItyD615FDjNeOGq6u+sgrBTOIFR6bwSz9nbV
4Uopp+ncml4+XIKw523USEIYATIxSeVCIuAUKYUGQsX5C0in63QATqbnx3qqxgefeiir+8XxXP36
8aiLDIwyGFToxBBaFchQy5EsiAUzdYGHfPl2ssopOo3H5zFYU9w31e2VzPWOCdvbkQdWPr2X6aXG
BWCByJNquQK23MJWo+C5MpRaD/z25XuZVxn3dMSgi5plROGyZ6tv64fFuv65qX89Zt+72+aQ0KZ+
lo/pmDQgnpryzKbL2kUEOgD4JHLmLP+qi5nnC13i5f64jlgMn9tPuq7cz1KrclaOZ/XfVvXy5Xxd
L6dl1R4M77u7kQTOQnSIKEj6QMB0tY67tgdQFIE5SAavbs2bTblc/375qs5pQpsDcyGxzQ3tKkDK
nAL6h0dfOMP0kXNC038dcKk5RSFV0CLdFjce0mDKWfT43z3DvHgiqXnmbF/zqTwmBMWLXEYgIHUT
NEoUsGOpLZF6TJgiLoGKWIB8L4hvlhHsIXSRT887O+l/BuyReyiCqz+QpnuFwYWcQlRzYAgHNGaF
d0hpiMDSEEcD/0+n6R2ZBl3BeUYbos60SatZ4hU6+r/irqw5buMIv/NX5DEvw5r7eJzTVkWOVZaV
d+wlbYmHQoouO78+3cAeGGCwZCUbp1QSqQUK6MbOdH9fX2C294r4C0I8b2xWIsIuBIovQFvsrvEk
F2s4IHTJxOup9Ph+ef3F95XAPcWdCtzZqX0/tjV82R/jSQqwFWIQIbNUWEGSIiYxsHXFM7DtORRp
gzFRqasEdY+9DD++u9zr8OO7Sr9VI55uV7zZYxS7b99fsKLRDuZ+aM0xHvTLWNnrYYdpj6m9XIjh
ITKhnWU+X0O/sQQXGpEOZ9Q6ctvS0Z0hzsPn/UJAU0ZJXSJJYSbEYiFAkJJ4CahSmsKFnDRujK81
EaJrCdFNU2LnoM2F1qOgPLM5Y+uOBWNswRgDNICHDjA7cM815+rPiA3Nu5RApVVDT+GOQYmvv981
H7UEkgO0EwukBfbIUE1Cht8APBpVjNGgZROZnS9YyyFaz9u56fPOYHOl6rMw/U8URRaJiU8CjhO4
g5ICqDEGUB3lmfLihL5ii4PPCzgtj/VxomGI4MNp9nHz8PzcfL6a6QLOkBHw6Fj7GgoJPErCJTAk
FlXxPl3KsYwuPJFrHvJ0arVttFikQ2+AHrp4qOkbSrjM1OsgASRib19iHATTHg2ISxGrSrV99Wmn
xWr/49GbWr5dS+hp899gmkBkJXsohJ0MwnDDdMIstGcIAxnB4nAQPAFA9DrbaP9jezccq0VdN753
tVWj1tRutT8lPPXl2mwLy8AVQeAviGyMJ87Df1NgBnssAdDJWW/q6fKVXJvV3KjCh6fKnR/eNaOm
2mstAyAX6i02TRaDAShJaExMOdxm+Vo1YicJJnLPs/hu15nGep0XQhspBxjiNY0iOvAJRvc0Fwup
ZCRRWuMjmKvIX+8Meq09sT7npha48fR366l1+7Ta//MFFwA2KCKMkuKW4SqOzpuM7DJojC9oA9ZW
a0MitYguA8C0N1W4HW/QVuB4tBa9UZXgdttTjuSH9816KFUA5cKzthJrC5NIxGktSIY1KwoeZVer
h2qsmt12Hirr6MxgrLr115dv46Qcu5WH6lbZh6RoUODknCAxcbB2FB98BmtSuE3gXViOLL3lwYfJ
ncbqDMfG8neMziNqHWNmllPDgOGQFh2Ho4x3gLlZITYwi5WdGnAQoG6ukwsKUKxUb5L6fP2lFX88
XkvPXEN6axb7Rt/9/Lf9UPnfu5rjEpKAUTXWUzhMqHlObHacGKFtysCmpL68Z/urLmBPPFTLbG1D
5llCF5nO57s+CNS3WfY/0SvqYkoxjujQ59O17RMxxICTydREpxT7j9f7cKwWt7Er4cOpG/81xiom
wosIRglSIrb1IVKyIWTwiK6kAGYezP2b+iliXGifiHEi5txxdxK7bZtd5n/5qzn2lht3y1hfLYE1
ClYSFTDLo5wh3igGq8DQQCOXJqs3NZdfplk3tYCsIfWKHn34793TuZW8mrhhaE5CKZIV00QwhoXj
BeiIpVoI7FHIrPbXo0vVIjTilJ2W674UdTTuoHevx5Z8PdRE+MwEwAbCHYbSBTA8m4EOoY+LDGBc
8eZqZGOoRW2Tjf7YTa3ApqXVZpFUHaOto0+GwKv2SVpcv9SiQ0+SEktjJpQVZmXhgFn+O0Z1Pl5r
0Kgb67Q95WB+f777fl4bot00Jo4pXMmAKGFHNsPOCQDnWDBZMO5lVSleA7OZLJfR5Wu5GvUogDlO
nDm89x+bWXFGeaRFExuxKz9IBysWFgvPQbNCAzdW/klVC2cRK82snEc8OifMeYzG48Nv5xJC0wTU
5jhDA0h4cE6TjGEBAVuBBKczScIAPJEpl+kGrS5fCeaUbAi2mZZTtOJ3/lfMH4lzCWdIVgQqHBBX
rrA7NxPnjMJipuSz1s7a6+eyQYqFtf9rlXPqdruGs9ntdqc0abf+cu4lMxcpjVYABKLG0Frf0odz
Qpj3uPqlVJk7cOzt5Oj5JmPhVlTOHfeKbmb5gm33tP7yt2GwhjwUEshDiLZIYOaOFGTZIgb4GpLW
hDGfSwwxp2yuFz84CbLkkA6HayU3uqWkmUQTnruHDSaSWkTOCgtgKhGrOWx0oQDIBlnwH2MNZ5rT
i1XL1aUnsjW/gPU0JPnzx5dDksYi60WKPvwywCfKYpJYf4gkzYMltC4RDfwcXJaSPLwy8uh49SW8
dzhcSa7o3LSslDtx4t9+2j+v31r/BYRcCA0gm/W9OkYoEgSLBIdwJe+L5pz9WfVfZ7lrfd2moe95
9skv3WaPPU3NZjGTnKewfgDcg4WSMZBQsiLGJV9EkdRHcaVAQC1GrUEDma20nuY8sZH/ZX/q9bDs
FqGkFYlHx2FV4ewkEWF9Oay+FS4pgAtKRuHfxoqetp/eLccAPlUhexDPNGTupl1uq8d7HCY5SOwG
7llY4UA2hZbYaBCA/mcZCKBjT5kRnLo3JWYD3KNNPB/va0m7VUvS1XF9VFXmn77v75oLxWrLOOeE
OsCgIjBAZmBDSVTKy+Ci4tMi/YXL1qJtWw9xN533EZ+65y/DKM7t02GoxpAb7asYAW8h7LI5pVQE
UQabf1wCU6iALMMCL8GBWzbhTV3lrZstrIrGmZV6Rs097GplBpBTwG7hunq///ylZ8nDhIq2GfKw
NZ0C6BBl7Of9MKwmBvQPpIkCZZLZvnHM0uimS1OWRqfc1JI3XEJfqTQL2v1jv9k+HmG+c703yIpa
DniM6ITpEgdc1VPkMtZ7FQAaW6tfdcj9hZc3aX+4FrqbQ+jVejZ86Mft/n7T3dUBl4jj7aIGay9w
SSkPTx38ASmZK55N4J6+qTL2cPGF2rvh4E0tXwMYbDbTosJzLcPxUQs6BLi4kNkDLSVUG6w590BZ
s49EG6m4zlzwyP+rMonz8ZtaxnlkYLXF0usDx/528rwAAG4lv1QlFLJSNiSiMg6gU1kS6zK4Kg9U
hmLhpPJNbHO6yU0tRQMWbNUU0Hx72o+nSNx+wP8Pj3iwNsKa/hGr4GkMII9MFmme9sRpqQFuChWd
pSqY6/dnnaRZ6GA+Hq41b9RDrnZKzPbt3eMT1gxg8twe2jGG9LKOWQgBiwhMbB9tB3KrHPyTAgAo
yRK4gf9BucNBnqXtfjh8U6slW7pu2x0cT9v14+eHfR38H3o41KGFQ/UJGyBxDHOPwKthJTKgcMxY
olkGTq+j1J5dpXqgl+qXllDzto3RaeMnsJZivgXXSp5GmZTHh+8fuqfn7VPLzzvQhmfpAAF6IBQS
XE7Anae9sVw5+DD5P4+yVgByKvhNreCqpfWJzPbO4afloX8eqLpjyRGFk8EEaEs8d6i3oFnnmJnn
18lszCWpFWnMF10rs51wwvuWEkEKCUYz4ogUHP0AtjN4b4gCtxDAIwgpL/YR3zfkMbwhj9G7ozz4
rfyy/bx//v70R0smnqlIJoFxDLYgcgk4KlJh8ihoDhSVm/J/XFC16LXmpqW5OfmyQeTbcHJo2t1e
mocmtJLGwBeTNPbZIBGGRyLBlBSfnVYm51xD6PoOE+F4Szg9s+mYyvnQPWzvns/zUR3CMe8jha8m
E550X4qAaUig6awAXHAsG/5KrPWNRm0swqV803BGraSd5/vW9tBDiI7+/o6fY4Q9H2g8fnqMy5pA
XQycRC1wVCkHPBEAWWgqaQHr5oKcUJjx9SvBbKMcYO20biDh05r9+eOoT06Zvtal/4lJsZCCkkoT
GjOwK4qDGhwAfZtLoomHEmO6XqzqLMlCYupjq4R37RrB6LWbw/8vLw9fgfIdpDzRdSH64Sc25IiM
jKSI8UGD83jRWnEpOQ+IW2N5E02rb7OwsuqTanUa3HPtdqeOs9XzPSyc5oAdnF8G3FdS8BcCeDux
MmC6QmWBUMtMZy6OLlWJ0MnGE+3kNN23et7cHr6Rn/r3BdyPJ6oNTIUBs+JJEaBRYPklFvx7hS/R
KPDHmsJfKYueXX8pjjk5baJPA3p0dpoXTPt1P2Tr6Y+Poxk5fX7eyp4qUiULmKVCXCwYTi4M2+8t
tozA4w6a6ciutx/m8iy1mEzPq7VvcJ/1Sp56OJ6/b3DGvD6F1PXFpEb2ngclAHPj3EYBTwLoci6k
BJekk0DsuJ+08lQ3uKnFcC3ZTlMbzy8ZOQz1v12elFGUE8AqHYmMIfHhgXjtFHEUGDKgJ+znaM/1
/KNVIwhibBqybZudxnUT6+BtWR/+iYBxSgqwRkoxsANChL1gPcEJ6pFjFqZVY94OA76hk3V2Wq1S
o1tmvW40BVYb4NwW6BnsZ5xSXnI/4ZEGAHJcE+UdlrtGyUS6Omg6S7PUJNhc9gNinek65dV/334v
H2HRj9r8Lc9cBueJMRi5xcpll50Dksm1Sc5Gqi4XLffXXOzuL1W6a71rFN+sd3LWzrZdvXwevtln
HJmBcKmf1S6zsTYwIjOWgpRkiINVBqbfKSFTiczZtw3tOl9/aVrX+Yxag03DXex2Jzj0BOD27rdb
1xy6CrApRazTx3FWgoFZBcoTCQ1BMRulnY2nqK9WC7JrCnLqpvi6/eP+84lecnUxdRijy0IA1QoZ
qytggRPHAYdmZVzQNGfJ281g47uMxdtQO4934IeNuUeTPYIvwcDlqfqQqw8FW21yEjgOBTgLAKBM
gjBWMC+Vt/Q6e7Bx4kSfOVLZgNmcp6T7ROhQJMmYNbfCDJUjHnscCBh2TIT2k+awo1p5o5yKESzL
a4osJDbj4Vgl7pbO/eBmy2yDmmyfhljzsZqJ6z6lI6kH++ct7DUFZDwaTwIHw2ABvVOwflG/vdAN
b7GYlm2cuxxcG58xVnhrtnPnCh+eJrN+6+7PLEU0N8OxdiQCIVRY+6KCAsPP+3nemREeOTgzlowI
k3cPjC5eC7XTDaF209rUL9u7b8MEpH5mydArIxz40owUCaNdBsyySeB8SmamgHAi+Kv0pMOtl0Li
d1Xh5NY1muzhQ3W2fPePv23HA3r58eU7C/UKRosQbSbM4rQv7EW1BctGpMBuZcO1bDdzT+80EbPx
zFfrrkELDxVeFqSUw6i1YeVjaBueMuxQRDEa4yZSYHeV0owVJk3212pvPImxjHBmtV6gzaql4mmt
x3/89PHD3cvn/cMxddYKtmFJCMuCAG3CVF2g4JaCJpIxxbW3QFmuNKFoQZyJSnOwtt3IWRKy/H0Y
PI6z1zVsGETIh9/6IkFAmNFiJQaiYtOXruVIpMhMUGNcDK90JByvvzQp9nB4LPuONjjHjvFTn88P
7z8168O4FFEnfAeEReIKsCYEpkjGGV8qWnyN3bXquD/NHzlIOE+M7qRkl+Ing1U5eAsqTB/JGn7p
C0pZsgWgDYsKU+tMAGKmjOSSvZLJpyKvyBjPslzqIJk6ip3ctdTedTOms37s0I/3pcj4BgtWYAFJ
FUkR4AsFM/B9cZ5JMT7QErHGV76iHVxyaZ/DoUpMxeflGPChOM+5Xr8R2zluqRLckoiTroUE1Anm
DFyJYSC4tIoavjDkupHCAxlkQzBxalpY/YvjzO3z66DohddBxeyMVdkSINmYXqSAQAUsIMsLpVpi
2QCfhHHGl68Fc7wh2OYUtO9e2i+KMSKmiDPXmQZrKEoEUgFfJnB8z5OXMoU4keF8pUoA3Zj9DR9O
PU8zuXnsJAWE0Xt/rXWMnASrAXsJ3EgCbLN3zhifgPunq3j/D7UosyzmRL1VQ71uOkNz//C16vrA
gHAfVlI93QSuabnCF20hrjEKvCwO7AMULKSUJaR8lVk77x4WTDgcqLQycs6cd2YWUB2mVqAx6YdG
HEbMHSfMYXqSqSJKEKhOX/+vgNsBcnSeK6+AUGXxehtUf+1lJNAfvvk3UEsDBBQAAgAIANY760LT
91QzDyQAAEt+AAAaABwASW1hZ2VEaWZmLTY3NjQ2LXNhbXBsZS50eHRVVAkAA5PB3lGTwd5RdXgL
AAEE9QEAAAQUAAAAxFttcxs3kv7OX8GPcmVB4f3FdbdbGGDg9cXZOJE3m6otl2s4HNpzpkiFL06U
X3+N4YsGQ4hWdnV3/iBRHEzj6Uaj++kGbJfV4n7Tbsar+XhT3d4t2uXH8evb6mPj2/l8fHXXzsZS
SS5fjJsvzfp+TPD4tl0s2k1Tr5azzejtelU3m83L8fHfw8v/7F58P3pbbT89PId/1z+tFrvbZnPt
q211Xf7j5vofzfTbdnv4Vezaxez6x2bRVJvm+iRv9GZVzcZ2Nlsf58O/ESwwERjj0etZs9y287ZZ
vxzgGP3UrDftavkA4S9/+cv4Cn68GLnVrBm/u79rjg9/1hJJPr76W7VtvzQvAPsa5I4ftHx7v/20
Wna6Uf5+NAIVmut37e1JAsWEIawQIWOsXjL8kpGJlmoM3wHM72/GKZzvqnoMX/4Mhp3oCRtfEeqV
fjH6sblbrbe9wWo0ctViMf64ru4+vRzFd42h43ef1k01+8CU4ooLAd/6dnNXbetPP+yaXfOBvBzX
q9tJdXe3aCa3VbtE2+6N8fhq06zbavGiE/VNJ2yzrWDO8VW7HC/a6ex+MZvAj3b6Ap6T8fif+Dc1
n891PeVT1ZD3hzf3QKLs/asny3evUay6N7ulkrOZeN9bG/dqUt/dvaSYnmTtpc0/NtvNCcnmfrNt
bj/UD2go1g94BCVVM52978nYS/nwYbNu5uCu5JIolUhqZnSeSjrI2hzM9pgcIhM5czXFQzlHVN2S
LVd1taybxVDk52a9bBY9ufhBrpxO51TT948svzpbftpf/rimh6fotlrCGqyzbvDhOOrD7cf1h5O/
HLzi8OwBoOA9xTHmpmlS10jltcsvq8/NBXlas1TgrKneD/zjM0Sj5faPmm5G5F4Q0SQ1nSSHCeKT
bht8+PWXgeaZJe8DJWZOZr1NESV9uNvLeIowTmhf2pTPCOurncpbrT//An603a2Xl3xbpCLnvE59
shN6kBatl5f4NbvK2dGuSg1cUh/tCk+eya4g6Vntmsh7LrtGoc9pVznwV3yyq3w2u8pntqv837Cr
fF67DkOoGR0nos9g16Ok57FrTt6/addE6PPYdfRuta0W4+Xudgr5Bd4HM9afx1frpt4BmfnSQEba
LbfNbHy7W2xbSEx/Gv/6qVmO//yf4sXL0egm8p7p/Xi7uutYaXz7T5GcxhcXi+puA69eHd4Yx1eO
SvyhxPqQkE/vPyWpZF77o3Y7/FNYjkZFu6yAVXeEaHPSpEdsx2icfgnGVuNvehQ9slkUOe2L8X8w
YnywpUQWnBkxXxpksCoROKXSyvGgpf/zv8q/9yDiYkte98GdvuTGsPl4HInj+IoCo6UnZJZjYZS1
SAhqEGNMIe2wQV5bTHhZEKE0INtt1tdgpOsoojehporOhxPCl6azRrR0/c03E7K38PhKCvgcBwP3
AXLRTttFu4XaZYInGLBQXDJSGIyIKQCLoxZZUxYI9n+JdTChxKKHJZXeR8Uwb85QMSLj73GPeHU2
fP39ZL4GL47OMr5iE9oh1NwAIieoLT0nsG6OIoZxgQwJYCwbFFNEe8oZILrp3On6TTtdg9dch6O4
zfXZDNeHymFzbY8PE+S0lufIaX2y52y5aZfz1dGiXLAJMRdsSjiQ+BAK5JiziAXnkOEFmBioFSnA
7wz1PZvuN8b1cKIEIufnSx6/HBj3S1O/iRDZRMPYw1/wB4BShjOinEK8ZBqcTsNCa8WRKInGmDhg
l5fNupeWt+r+WYo4boohYilwhxjUa+tdvVo3E3syq7noqMFLYPteIx9YQExzCpuGlsgFrsAnCiOl
SR11MMMoBTLLoJtNuyV/sOcmxmlAMYcoPQNMUO1eyQ6kEISICe/8FZbVKIJKqDkRI1YiYwqNbNDY
8cJR6f1Fw94cJgmnSfJGPh+XqjSrMyo1zdGLf3+ICQQ2nHg8JFgC2pWgAUSaGDgFKsBlkREQtXgo
CScytfTvuYDA5ZSeAYpfzuezvo2r3axdTXbLdruZ2Pj57/AxYowuTDrfJYoxLguFJOEO1h5Cgi41
RqbwpChjLa34RROf5OYte3qc4DdKneM3phnsuZPEyby6bRf39Wq5Xa8WG/DoCYG3OYlGFTgIK6hD
OhQyRjWLQL5HwgVfci+UkcW5Cm/X7Zdq2/Q0Cd0c7jBHXp10TKqTmWd0qk670rfVx+Vqs23r75rN
JiZit2iBCBw9p59gteC6xN4h7CnsSAx6FZgLFErIY0yXSnqd+sll6SnQipwDrQQdGP9NtVvWn26a
9Ze2bsDkgpmJitsz/gaMHpKIxBAmRIkJbE7Yl4YKjwoI4hI7i7UJFz3HQQQ5in/E2g+DUzT54emY
UaoeO9d5SsUgKEVI75rfYI9QibtgtF8PUQRHvIRdYmWMkAWkHQ+Z3ThFqNS89NZ9VdcoOA/8+DSB
PDPnQYfPmumJisBL9fr+brvKeZArsaPGMuQgY0JOMgWyPvIiGriEFMyYc9lEORSbYmoymBo5G7jO
d822gjBaQajBE9XZUWE1EYCLE44LEiRSXjHABVmzYIEi7gvGjYMYX5rn85ojkPzA49NExaaeZVRs
2FDFWFRsVzvwt91d7KH2WRdlYkINyNh/ALUlUaXTgaDClcCYhWAIOLJHQQMhlbIkVKinxKgL0yaa
DYelKjaZ6As/DN1HqtX0v+sH8kCpnuAL7MFgD/UA1Shw7RErI+WGXIYoxVaQ4A18k8aqvvw+sI7W
DIHFAuXEFpMm3h4aZReweSoNRP+AghNg9si+tYbCIEgmtBCSlNjk6WIyUwqSyAxIzQahJDrWrNk2
9Xa13sRNdUxaAGlC404InkMILVFRYNih1haoiJWLLZkRXnCMS/cUl4jVlT9OFHdH3iXOhqVK6Tqn
1OyYvA4V5nSxqj9vjuYX5qJjeODirnAMCU6AWqjCI2t9iaxzSljshHE6a/zMZAOwTQasqY9ucnh/
2Ww77pCJjtgbEyiH3CVDGVlPQIUmUJpZ7iTDZSm0ugQtEZ1gIyaDjcpqgK0+otIUIoS8YEXuwGsx
lpD7CaSeoAPSGIoLDzuLu0AhnhSXoNYZkFROz0GKWg9cOCTUPHJGw6HklZGgAD+UOnikqIOSRzgC
dZgD9mWxCtgoJ/BlZn6ZkbvrPBMHkHUO+ZA4vlvvNtvyS7XYdSLsx9hwudqXwpTFPoFRnnFdIEYh
OrBSQMnjIQ0JUwTrKSmJZU/ZfLmJ8vsvNzJRTdbnFAW+rI5bsF7d3c/bGFkOnnN592klhWIeo9Lg
mHGkRJZgjYRSpQVuL4mmjxCA/jwDiNMcxFOU+GVXravltl2eQAp6ESQvSlpKqDctgYzBOFD3gmtY
hsJTW4KHO8qzIIczDWBm9qBsxMBJXjXLZt0tRrW4gagIpDnWRjFGE0YnrKuMudW8YIgwC24OfBdZ
YUpEhWVQMHFlyZPSdmaqvJdkBiaqKXzO3eHLUz9lt/y1Xc6O1mdfaVARhZlnElEPyYd52A6aw2KU
kIsoc1hCZs9avz/LAJ7OwBNmEFj29oIqat5+3K0PEQYsT7tO3v5D18xjnBQxbTAWMySkcK0NAY92
xFItraJfKf/P53mk/j8fmOhVkepcr4qRgUe58P1ds/Ttusuy9x397UptATp1nZZQFFYwjTAuBLBf
yEDwd4Gctl467zzsg4saJfK/Sn8HeB4pPtJBqd6MZvQ+lIqw+G+XH3PpNXBHYbmgXiUKHKuEvW1i
U6FwRgWldGG5+df7jD82m9VuDfT/uo8gxZ0p90SlqoEfvm3W89X6Nrbx7fGGSvRDGdcsprmSa62Z
jtwW2AEjrISSryiQgBTssQJKY81T9n9morxumYGpYioTgadmOnDEWbP5vF3dbU7FO4EyjHV7S3WB
DUIGLISHve4wECDOCGz9yIIMhDuvbOG9fBL53E90LMjigEfo5/nARLHpTJwrNq/ro6e9sW+t+zbn
bF4yCrVVgWhhIUroWFrFHhDF3sJvgg25XJvbum4WMeo2X91Qlxq1A5B97STONBAlIWbe7LV79abz
+Jx6hBlrtIEUKYGfsMANlFehQKWyjgUhS/yV5nLc3a/ePNIx6Ya3+62UgBilSDPwq6qWg/AHVcWr
eG+orTuXgzqp10PhRjAjoRIw0kM5YLxC1gcBRY9UgVpV8pJcXieYpK274PzkBkAf0uO9l+OIUarf
LKN0dMgkhnzbrKfNerU50ksSmy/cFFBngjfy0h9U5cDCLCs1FEMC6n95UdWj0Dzk49ME7pSdpyg5
VXhQwfVPW/puxkNwlkLyB/rOEZMCygxlJfK8DIU2AjNHLpUZ+cMVAMAyqDQexKu4tE24cUBT4rW7
jg9w08WrrsMb62vOYU+Dm0AYprFjLimSgUlmCLYal0+JVufTPNK0PhuXKpXzjOmhfMofx4J3YIEn
lE4Ie5SPCQv7o6QWOTA5rAEtIGNyIJ+UKswtlIH8YlXanzAFXGd8o8ZDWvaDj8db/OE0FUoiJsEv
EHBBSH84cIhCkCoU0PYQVCmkf/4t+4PPD/nBJzrVhGZ0EvJULu3uNhN6sj7wrwwTpgfLK1IqRSxB
mGsDu5YA07Tgb0Ja6gworrEbHNX2xKe4hMrgUnxg6xVE5U29bu+28SosBEs2kQ/NW4w1hHaLSNda
99wha2yIxxrGeByP3r/SJK3W08ece5Aabo4g8qOTIamiSmQU1cOAs1xt2/n9cR2MnogLFQkETqqE
c0gzYaE2jzEzFDae4ROm4sNCXuzL9CZLwWqSA/vgLQAHat71h/XpPIbhi6UrrJBWjHgkYNNCjA8E
0hnGiAuDGSWecmseqa8HUw2A5tynOsUW92O42bXbLFVQTNqiFBppH9MOBVe2GEK6o/GA35YCqrrU
i1NpKZDKZIBMT8v7Kvx886laN7Ps+ZU0QJEL4CtAlyFwOBbTfIkUK6C+N7yQhXom0pLCSFRoch7a
aDrYin9rtna3/RT7s3Ew35+Ji8Ipr6D2DDRW/ppB6IttN+st1xD8wKGeknIOwvOaHB6moHUmYzZm
eNdjc9c09afJ5n65/dQk5UTXZ4YSulMlfog9euAhwLGgvscGuJcnQLtKL5CynoNXWOWIfPZAftNB
vDlHmFTe6aDUFEbnTKHn57Szd0zZnVHGA0rjPeeuwMhJzmOPEgqDIBTCBRRzrHSEK/9vHjX1Rwyg
Z3bPHJPj7vnib96eAo3Gk0sdYAfxX5RlATW0ZHEzcQTOx2DxRGlLi4tS4v+jAucBdl9bhavzhVIE
87O2z+10dXSjLufFlnLXZ6NOld0pN+UQTDFQ54JBDYclkzHfMdZd2/rqbktmeKzV0xsySgGLjBbi
1Lp/9zqE7FEr97gkRiLDCJAHEo9ag6JIF5KFIoZeUjxTt+MBQoKcifPsppiaHZH/+Prtw3leV5Vl
3E3yU1OWQplWUiTiCQkL1iDDmYIIDhW1I6UtjPh/KNQSQ/Q0Si2hq4wlzGzgiW+q5cd+x2d/Rt39
jn3RQCVETMieqnCHM2ruoCAqncHKBxzK4tkN0If02PWGhxGJ0pLyc6WN4IM4+dfX71arxXT127FU
3buvBBaPtYOSCst4lMMoiu0fFLsqAgvlXEGfg2yeps+PPD1OVDPmPBuqyohjHP2vtzRbzZYlxIwy
bkQTYjULeVzAlgzKE2I9cUqGZ9qSJwSjFKLM4K54j2/erpYuub7RHX9f5JyFtaHEzqCi0BJIiY0N
cYdRyVxhjfYWd2plOedguhRtlYl80+rU5t38AjAadiLx2XRlDiCtL4H0GY18vIQFywfFC6PxRi6Q
Ps6xkiakLDQRnwCbZu6bqOl8eFXJt5vPdj1tt8ezBApVRiRA3e8YohVhtispZGx3ShdPoWOPUDgt
LQsCO3vRHwYzPNLjTAelmswzjlzTYWB6dXMTa/DunHJ/u0IBtBLHG64QglmIJwZSAYkJvmCKcAdb
9yJykPjIUdPNTYKwVjiDUOmjEyy621WnK6WcxnNr+vjhEqQ9Z4NGEtIIBBMTTS4kgpgipdAQUHH+
AlJ/ngTgbH5+rKcafNpTt1X9afVwrn75eLQIDJzSG1TqGCG0KpGhliNZEgtuWnju8+Vbb5Y+Oo2n
5zlYUzx01f2VzO0hEna3I09RuX8v00mNS8ACmSfWciUsuYWlRt5xZSi1DuLb1+9lXoy4/RGjFDXL
qMLlwFd/bG5X2+antvn1gX0fbpsDoY39LBfiMalHPDblmY2XtcsA4QDgk8BZYfmTLmaeT/RYXB6O
S9Ri+Nx/4nXlIUutq0U1XTR/3zTr18tts55XdXcwfOzuBuI586FARAHpAwXj1TpedD2AsvSsADJ4
cWl+2FXr7e+PX9XpE9ocmEeIbW5oagApcwYYHh595QzTBc4Jjf91oIjNKQpUQYv/Ke5KmuM2kvWd
v+Id36UYtS/HWm3FyGOFZc0dvUkd4qIhRYc9v/5lAr2ggEKTM+7nCYVEqoEAMtFVmd+XG7Ba3EWA
wVyKEumfzWEuZiStbOT2rdzpMyDIP7QQgQLopnjRJNEgMCyBMSbKidRgikQCvJfU1RDBUYRa8t08
soOdAUfJI5Dg9b8B06OhsIWCIdxKsBABzJhXMRBjwQNrxwJP8r8N0yudbmrFZeNpqG0jTLq+Q7vC
b5ntvSL+ghDPG5uViLALgeIL0Ba7azzJxRoOCF0y8XoqPb5fXn/xfSVwT3GnAnd2at+PbQ1f9sd4
kgJshRhEyCwVVpCkiEkMbF3xDGx7DkXaYExU6ipB3WMvw4/vLvc6/Piu0m/ViKfbFW/2GMXu2/cX
rGi0g7kfWnOMB/0yVvZ62GHaY2ovF2J4iExoZ5nP19BvLMGFRqTDGbWO3LZ0dGeI8/B5vxDQlFFS
l0hSmAmxWAgQpCReAqqUpnAhJ40b42tNhOhaQnTTlNg5aHOh9Sgoz2zO2LpjwRhbMMYADeChA8wO
3HPNuforYkPzLiVQadXQU7hjUOLr73fNRy2B5ADtxAJpgT0yVJOQ4TcAj0YVYzRo2URm5wvWcojW
83Zu+rwz2Fyp+ixM/xNFkUVi4pOA4wTuoKQAaowBVEd5prw4oa/Y4uDzAk7LY32caBgi+HCafdw8
PD83n69muoAzZAQ8Ota+hkICj5JwCQyJRVW8T5dyLKMLT+SahzydWm0bLRbp0Bughy4eavqGEi4z
9TpIAInY25cYB8G0RwPiUsSqUm1ffdppsdr/ePSmlm/XEnra/DeYJhBZyR4KYSeDMNwwnTAL7RnC
QEawOBwETwAQvc422v/Y3g3HalHXje9dbdWoNbVb7U8JT325NtvCMnBFEPgLIhvjifPw3xSYwR5L
AHRy1pt6unwl12Y1N6rw4aly54d3zaip9lrLAMiFeotNk8VgAEoSGhNTDrdZvlaN2EmCidzzLL7b
daaxXueF0EbKAYZ4TaOIDnyC0T3NxUIqGUmU1vgI5iry1zuDXmtPrM+5qQVuPP3demrdPq32/3zB
BYANigijpLhluIqj8yYjuwwa4wvagLXV2pBILaLLADDtTRVuxxu0FTgerUVvVCW43faUI/nhfbMe
ShVAufCsrcTawiQScVoLkmHNioJH2dXqoRqrZredh8o6OjMYq2799eXbOCnHbuWhulX2ISkaFDg5
J0hMHKwdxQefwZoUbhN4F5YjS2958GFyp7E6w7Gx/B2j84hax5iZ5dQwYDikRcfhKOMdYG5WiA3M
YmWnBhwEqJvr5IICFCvVm6Q+X39pxR+P19Iz15DemsW+0Xc//20/VP73rua4hCRgVI31FA4Tap4T
mx0nRmibMrApqS/v2f6qC9gTD9UyW9uQeZbQRabz+a4PAvVtlv1P9Iq6mFKMIzr0+XRt+0QMMeBk
MjXRKcX+4/U+HKvFbexK+HDqxn+NsYqJ8CKCUYKUiG19iJRsCBk8oispgJkHc/+mfooYF9onYpyI
OXfcncRu22aX+f/8rzn2lht3y1hfLYE1ClYSFTDLo5wh3igGq8DQQCOXJqs3NZdfplk3tYCsIfWK
Hn34793TuZW8mrhhaE5CKZIV00QwhoXjBeiIpVoI7FHIrPbXo0vVIjTilJ2W674UdTTuoHevx5Z8
PdRE+MwEwAbCHYbSBTA8m4EOoY+LDGBc8eZqZGOoRW2Tjf7YTa3ApqXVZpFUHaOto0+GwKv2SVpc
v9SiQ0+SEktjJpQVZmXhgFn+HKM6H681aNSNddqecjC/P999P68N0W4aE8cUrmRAlLAjm2HnBIBz
LJgsGPeyqhSvgdlMlsvo8rVcjXoUwBwnzhze+4/NrDijPNKiiY3YlR+kgxULi4XnoFmhgRsr/6Kq
hbOIlWZWziMenRPmPEbj8eG3cwmhaQJqc5yhASQ8OKdJxrCAgK1AgtOZJGEAnsiUy3SDVpevBHNK
NgTbTMspWvE7/yvmj8S5hDMkKwIVDogrV9idm4lzRmExU/JZa2ft9XPZIMXC2v+1yjl1u13D2ex2
u1OatFt/OfeSmYuURisAAlFjaK1v6cM5Icx7XP1SqswdOPZ2cvR8k7FwKyrnjntFN7N8wbZ7Wn/5
2zBYQx4KCeQhRFskMHNHCrJsEQN8DUlrwpjPJYaYUzbXix+cBFlySIfDtZIb3VLSTKIJz93DBhNJ
LSJnhQUwlYjVHDa6UABkgyz4j7GGM83pxarl6tIT2ZpfwHoakvz548shSWOR9SJFH34Z4BNlMUms
P0SS5sESWpeIBn4OLktJHl4ZeXS8+hLeOxyuJFd0blpWyp048W8/7Z/Xb63/AkIuhAaQzfpeHSMU
CYJFgkO4kvdFc87+qvqvs9y1vm7T0Pc8++SXbrPHnqZms5hJzlNYPwDuwULJGEgoWRHjki+iSOqj
uFIgoBaj1qCBzFZaT3Oe2Mj/sj/1elh2i1DSisSj47CqcHaSiLC+HFbfCpcUwAUlo/BvY0VP20/v
lmMAn6qQPYhnGjJ30y631eM9zvsdJHYD9yyscCCbQktsNAhA/7MMBNCxp8wITt2bErMB7tEmno/3
taTdqiXp6rg+qirzT9/3d82FYrVlnHNCHWBQERggM7ChJCrlZXBR8WmR/sJla9G2rYe4m877iE/d
85dhWvL26TBUY8iN9lWMgLcQdtmcUiqCKIPNPy6BKVRAlmGBl+DALZvwpq7y1s0WVkXjzEo9o+Ye
drUyA8gpYLdwXb3ff/7Ss+RhQkXbDHnYmk4BdIgy9vN+GFYTA/oH0kSBMsls3zhmaXTTpSlLo1Nu
askbLqGvVJoF7f6x32wfjzDfud4bZEUtBzxGdMJ0iQOu6ilyGeu9CgCNrdWvOuT+wsubtD9cC93N
IfRqPRs+9ON2f7/p7uqAS8TxdlGDtRe4pJSHpw7+gJTMFc8mcE/fVBl7uPhC7d1w8KaWrwEMNptp
UeG5luH4qAUdAlxcyOyBlhKqDdace6Cs2UeijVRcZy545H+qTOJ8/KaWcR4ZWG2x9PrAsb+dPC8A
gFvJL1UJhayUDYmojAPoVJbEugyuygOVoVg4qXwT25xuclNL0YAFWzUFNN+e9uMpErcf8P/DIx6s
jbCmf8QqeBoDyCOTRZqnPXFaaoCbQkVnqQrm+v1ZJ2kWOpiPh2vNG/WQq50Ss3179/iENQOYPLeH
dowhvaxjFkLAIgIT20fbgdwqB/+kAABKsgRu4P+h3OEgz9J2Pxy+qdWSLV237Q6Op+368fPDvg7+
Dz0c6tDCofqEDZA4hrlH4NWwEhlQOGYs0SwDp9dRas+uUj3QS/VLS6h528botPETWEsx34JrJU+j
TMrjw/cP3dPz9qnl5x1ow7N0gAA9EAoJLifgztPeWK4cfJj8X0dZKwA5FfymVnDV0vpEZnvn8NPy
0D8PVN2x5IjCyWACtCWeO9Rb0KxzzMzz62Q25pLUijTmi66V2U444X1LiSCFBKMZcUQKjn4A2xm8
N0SBWwjgEYSUF/uI7xvyGN6Qx+jdUR78Vn7Zft4/f3/6oyUTz1Qkk8A4BlsQuQQcFakweRQ0B4rK
TfkvLqha9Fpz09LcnHzZIPJtODk07W4vzUMTWklj4ItJGvtskAjDI5FgSorPTiuTc64hdH2HiXC8
JZye2XRM5XzoHrZ3z+f5qA7hmPeRwleTCU+6L0XANCTQdFYALjiWDX8l1vpGozYW4VK+aTijVtLO
831re+ghREd/f8fPMcKeDzQePz3GZU2gLgZOohY4qpQDngiALDSVtIB1c0FOKMz4+pVgtlEOsHZa
N5Dwac3+/HHUJ6dMX+vS/8SkWEhBSaUJjRnYFcVBDQ6Avs0l0cRDiTFdL1Z1lmQhMfWxVcK7do1g
9NrN4f+Xl4evQPkOUp7ouhD98BMbckRGRlLE+KDBebxorbiUnAfErbG8iabVt1lYWfVJtToN7rl2
u1PH2er5HhZOc8AOzi8D7isp+AsBvJ1YGTBdobJAqGWmMxdHl6pE6GTjiXZymu5bPW9uD9/IT/0r
Xe7HE9UGpsKAWfGkCNAosPwSC/69wvccFfhjTeGvlEXPrr8Ux5ycNtGnAT06O80Lpv26H7L19MfH
0YycPj9vZU8VqZIFzFIhLhYMJxeG7fcWW0bgcQfNdGTX2w9zeZZaTKbn1do3uM96JU89HM/fNzhj
Xp9C6vpiUiN7z4MSgLlxbqOAJwF0ORdSgkvSSSB23E9aeaob3NRiuJZsp6mN5/dAHYb63y5PyijK
CWCVjkTGkPjwQLx2ijgKDBnQE/ZztOd6/tGqEQQxNg3Zts1O47qJdfC2rA//RMA4JQVYI6UY2AEh
wl6wnuAE9cgxC9OqMW+HAd/QyTo7rVap0S2zXjeaAqsNcG4L9Az2M04pL7mf8EgDADmuifIOy12j
ZCJdHTSdpVlqEmwu+wGxznSd8uq/b7+Xj7DoR23+lmcug/PEGIzcYuWyy84ByeTaJGcjVZeLlvtr
Lnb3lyrdtd41im/WOzlrZ9uuXj4P3+wzjsxAuNTPapfZWBsYkRlLQUoyxMEqA9PvlJCpRObs24Z2
na+/NK3rfEatwabhLna7Exx6AnB799utaw5dBdiUItbp4zgrwcCsAuWJhIagmI3SzsZT1FerBdk1
BTl1U3zd/nH/+UQvubqYOozRZSGAaoWM1RWwwInjgEOzMi5omrPk7Waw8V3G4m2oncc78MPG3KPJ
HsGXYODyVH3I1YeCrTY5CRyHApwFAFAmQRgrmJfKW3qdPdg4caLPHKlswGzOU9J9InQokmTMmlth
hsoRjz0OBAw7JkL7SXPYUa28UU7FCJblNUUWEpvxcKwSd0vnfnCzZbZBTbZPQ6z5WM3EdZ/SkdSD
/fMW9poCMh6NJ4GDYbCA3ilYv6jfXuiGt1hMyzbOXQ6ujc8YK7w127lzhQ9Pk1m/dfdnliKam+FY
OxKBECqsfVFBgeHn/TzvzAiPHJwZS0aEybsHRhevhdrphlC7aW3ql+3dt2ECUj+zZOiVEQ58aUaK
hNEuA2bZJHA+JTNTQDgR/FV60uHWSyHxu6pwcusaTfbwoTpbvvvH37bjAb38+PKdhXoFo0WINhNm
cdoX9qLagmUjUmC3suFatpu5p3eaiNl45qt116CFhwovC1LKYdTasPIxtA1PGXYoohiNcRMpsLtK
acYKkyb7a7U3nsRYRjizWi/QZtVS8bTW4z9++vjh7uXz/uGYOmsF27AkhGVBgDZhqi5QcEtBE8mY
4tpboCxXmlC0IM5EpTlY227kLAlZ/j4MHsfZ6xo2DCLkw299kSAgzGixEgNRselL13IkUmQmqDEu
hlc6Eo7XX5oUezg8ln1HG5xjx/ipz+eH95+a9WFciqgTvgPCInEFWBMCUyTjjC8VreFOXquO+9P8
kYOE88ToTkp2KX4yWJWDt6DC9JGs4Ze+oJQlWwDasKgwtc4EIGbKSC7ZK5l8KvKKjPEsy6UOkqmj
2MldS+1dN2M668cO/XhfioxvsGAFFpBUkRQBvlAwA98X55kU4wMtEWt85SvawSWX9jkcqsRUfF6O
AR+K85zr9RuxneOWKsEtiTjpWkhAnWDOwJUYBoJLq6jhC0OuGyk8kEE2BBOnpoXVvzjO3D6/Dope
eB1UzM5YlS0Bko3pRQoIVMACsrxQqiWWDfBJGGd8+VowxxuCbU5B++6l/aIYI2KKOHOdabCGokQg
FfBlAsf3PHkpU4gTGc5XqgTQjdnf8OHU8zSTm8dOUkAYvffXWsfISbAasJfAjSTANnvnjPEJuH+6
ivf/UIsyy2JO1Fs11OumMzT3D1+rrg8MCPdhJdXTTeCalit80RbiGqPAy+LAPkDBQkpZQspXmbXz
7mHBhMOBSisj58x5Z2YB1WFqBRqTfmjEYcTcccIcpieZKqIEger09f8KuB0gR+e58goIVRavt0H1
115GAv3hm/8DUEsDBBQAAgAIAOk760If7WZJciMAAKh4AAAaABwASW1hZ2VEaWZmLTY3NzQ5LXNh
bXBsZS50eHRVVAkAA7XB3lG1wd5RdXgLAAEE9QEAAAQUAAAAxFtZkxs3kn7nr+BjKzxg4z4Us+PA
UdBqLY9lt8bjiAmFolgsSrVikz08ZLd//SaKV1URTckzih09dLNZKODLROaXByC7LBePm2YzXs3H
m/L+YdEs349f3pfv69DM5+Obh2Y2lkpx82xcf6rXj2OCx/fNYtFs6mq1nG1Gr9erqt5sno+P/84v
/6N98e3odbn9cH4O/25/Xi129/XmNpTb8rb4+93t3+vpd8328MvtmsXs9qd6UZeb+vY03+jVqpyN
7Wy2Pq6HfyNYcc4xxqOXs3q5beZNvX4+wDH6uV5vmtXyDOHbb78d38CPZyO/mtXjN48P9fHhL1oi
ycc3fy23zaf6GWBfw7zjs5SvH7cfVsskmyT67WgEItS3b5r70wwUE4awQoSMsXrO8HMhJkzqMXwH
MH+4G/fhfF9WY/jyF1DsRE/Y+IbQoPSz0U/1w2q97QxWo5EvF4vx+3X58OH5KL1rDBu/+bCuy9k7
BqrW3Aj4NjSbh3JbffhxV+/qd+T5uFrdT8qHh0U9uS+bJdq2b4zHN5t63ZSLZ+1U37STbbYlrDm+
aZbjRTOdPS5mE/jRTJ/BczIe/wP/pubzua6mfKpq8vbw5h5Imnv/6knz7WsUq/bNdqvEbCbedvbG
v5hUDw/PKaanufazzd/X280JyeZxs63v31VnNBTrMx5BSVlPZ287c+xnefdus67nYK7k2lSqN1M9
o/P+TIe5Nge1PTUPkb155mqKh/McUbVbtlxV5bKqF8MpP9brZb3ozIvP88rpdE41ffvE9quL7afd
7U97eniK7ssl7MF6YAYHgMdR7+7fr9+d7OVgFYdnZ4CCdwTHmJu6fjvqCdybr1l+Wn2sr8ynNetP
OKvL84T7KT8CGy23f1R1MyLBZd+stuVivNzdT0F+eB+svvo4vlnX1Q6c7VMNGtstt/VsfL9bbBtQ
3J/Gv36ol+O//Jd49nw0ukt+OX0cb1cPLWumt/+UyDO9uFiUDxt49ebwxji9cgT+hzb+LOzp/S8R
uvPayDXLEii79bbNCUaHNcdo3P9Szudq/E2H/xNVokSYz8Z/ZsSEaAuJrOIKsVAYZLAqkCBGaeV5
1DL85V8l9z2ItFNS4S6405dKGzYfjxMrjW8o0CU9IbMcC6OsRUJQgxhjCmmPDQraYsILR4TSgGy3
Wd+Ckm7TFJ0FNVV0PlwQvjQqaSNpuvrmmwnZa3h8IwV8ToPBscBym2mzaLYQGCd4ggELxQUjzmBE
jAMsnlpkTeEQV7zAOppYYNHB0p+9i4phXl+gYkSm3+OOV7c6fPnDZL4GE/x1tQZTZhPaItQpbv/Z
C2qLwAnsm6eIYeyQIRGUZaNiiuhAOQNEd6053b5qpmuwmtt4nG5ze7HC7SEsbW7t8WEPOa3kJXJa
nfQ5W26a5Xx11CgXbELMFZ0SDhEiRoc88xax6D0y3IGKuSTEgd0ZGjo63TvG7XChHkTOL7c8fTlQ
7qe6epUgsglE8PHhL/gDQCnDGVFeIV4wDUanYaO14kgURGNMPFDXdbXuZ8trdf+sjxio8AKxFLhF
DOI11a5areuJPanVXDXUGCSEkqBRiCwipjkFp6EF8pErsAlnpDR9Qx2sMOoDmWXQzabtlp/1uUkk
CyjmQLEzwASp1I1sQQpBiJjw1l5hW40iqOBCIEasRMY4jWzU2HPnqQzhqmLvDovE0yJ5JV+O64s0
qzIi1fXRin8/cwIBhxNPU4IlIF0BEgDTJOIUyIHJIiOAtXgsCCeyr+nfc4TA5ZReAEpfzuezro7L
3axZTXbLZruZ2PT5b/AxYUwmTFrbJYoxLp1CknAPew+UoAuNkXGBuEJgYBl+VcWnefOaPT3u4TdK
XeI3ph743GnGybyEWuMRCo3terXYgEVPCLzNSVKqwFFYQT3S0cnEahbB/AEJH0PBg1BGuksRXq+b
T5CxdySJ7Rr+sEZenP6YvkxmnpGpPHllaMr3y9Vm21TfQwGRArFfNBDFj5bTDbBacF3g4BEOFDwS
g1wOc4FiAXGM6ULJoPt2cn32PtCSXAItBR0o/1W5W1Yf7ur1pwYqnvGNYGaiknum34AxQBCRGGhC
FJiAc4JfGioCckDiEnuLtYlXLccDgxynf0Lb58F9NPnh/TGjvnjsUuYpFQNSSpDe1L+Bj1CJWzLa
74dw0ZMgwUusTAzpIOwEiOzGK0Kl5kWw/rOyponzwI9Pe5Bn5pJ0IAGenlIReKlaPz5sVzkL8gX2
1FiGPERMiEnGIRtSXkQjlxCCGfM+GyiH0/Yx1RlMtZwNTOf7elsCjZZANXiiWj1C1jYRgIsTjh2J
EqmgGOCCqOlYpIgHx7jxwPGF+XpWcwSSH3h82hOxrmYZEWs2FDFVBNvVDuxt95AK9G7WRZmYUANz
7D+A2JKowutIkPMFZMxCMAQ5ckBRQ0IqZUGoUF/CUVeW7Uk2HNYXsc6wL/wwdM9Uq+n/VufkgVI9
wVeyB4MD1ANUo8h1QKxIKTfEMkQptoLEYOCbPld15+8Ca9OaITAIQeKULfYqxD00yq5gC1QaYP+I
oheg9pR9aw2FQZRMaCEkKbDJp4u9lfogicyA1GxAJcmwZvW2rrar9SY51TFoAaQJTZ4QAwcKLZBz
GDzUWodcqlxswYwIAgqfwn+JSaTqKhwXSt6RN4mLYX2hdJUTanYMXocKc7pYVR83R/ULc9UwAuTi
3nmGBCeQWigXkLWhQNZ7JSz2wnidVX5msQHYOgPWVEczOby/rLdt7pBhRxyMiZRD7JKxSFlPRE4T
KM0s95LhohBaXYPWm7qHjZgMNirLAbbqiEpTYAh5RYvcg9ViLCH2Ewg9UUekoUCHXD0Y7iMFPnHX
oFYZkFROL0GKSg9MOPZS85QzGg4lr0wJCuSHUseAFPVQ8ghPoA7zkH1ZrCI2ygt8PTO/npH723wm
DiCrHPJh4vhmvdtsi0/lYtdOYd+nbsnNvhSmLPUJjAqMa4cYBXZghYCSJ0AYEsZFGygpiGVf4ny5
hfL+lxvZE01WlykKfFkeXbBaPTzOm8QsB8u57n1aSaFYwKgwOEUcKZElWCOhVGEht5dE0ycSgO46
A4jTHMQTS/xzV67L5bZZnkAKehUkdwUtJNSblkDEYBxSd8c1bIML1BZg4Z7yLMjhSgOYGR+UtRgY
yYt6Wa/bzSgXd8CKkDSn2ihxNGF0wtrKmFvNHUOEWTBzyHeRFaZAVFgGBRNXlnxR2M4slbeSzMCe
aApf5u7w5amfslv+2ixnR+2zzzSoiMIsMIlogODDAriD5rAZBcQiyjyWENmz2u+uMoCnM/CEGRDL
Xl9QRc2b97v1gWFA87Tt5O0/tM08xolLYYOxFCEhhGttCFi0J5ZqaRX9TPl/uc4T9f/lwJ5cJSkv
5SoZGViUjz881MvQrNso+9imv22pLUCmttMSnbOCaYSxE5D9QgSCvx3y2gbpgw/gB1cl6s3/2fR3
gOeJ4qM/qC83oxm5D6UibP7r5ftceI3cU9guqFeJAsMqwLdNaio4b1RUSjvLzb/eZ/yp3qx2a0j/
b7sI+rgz5Z4oVTmww9f1er5a36cevD0efyY7lGnPUpgruNaa6ZTbQnbACCug5HMOCQjBAStIaaz5
Ev/PLJSXLTOwL5jKMPDUTAeGOKs3H7erh82peCdQhrHWt1RLbEAZsBEBfN1jSIA4I+D6KQsyQHdB
WReC/KLkc7/QsSBLA55IPy8H9gSbzsSlYPOqOlraK/va+u9yxhYko1BbOUSdBZbQqbRKPSCKg4Xf
BBtyvTa3VVUvEuvWn3Woa43aAciudBJnGoiSEDOv99K9eNVafE48wow12kCIlJCfsMgNlFfRoUJZ
z6KQBf5Mczl594tXT3RM2uHN3pV6IEZ9pBn4ZVnJAf1BVfEiHUo3VWtyUCd1eijcCGYkVAJGBigH
TFDIhiig6JEqUqsKXpDr+wSLNFVLzl/cAOhCerr3chwx6ss3ywidDLLHId/V62m9Xm2O6SVJzRdu
HNSZYI28CAdROWRhlhUaiiEB9b+8Kupx0jzk49Me3Cm7DFFyqvCgguuetnTNjMfoLYXgD+k7R0wK
KDOUlSjwIjptBGaeXCsz8ocrAIBlUGk84Ku0tXW885CmpDsdbT7ATctXbYc31decg0+DmQAN09Qx
lxTJyCQzBFuNiy9hq8tlnmhaX4zrC5WzjOmhfMofx4J1YIEnlE4IezIfExb8o6AWeVA57AF1EDE5
JJ+UKswtlIH8alXaXbAPuMrYRoWHadmPIR1v8fNpKpRETIJdIMgFIfzhyIGFIFQoSNtjVIWQ4eu7
7I8hP+TH0JOpIjQjk5Cncmn3sJnQk/Yh/8pkwvSgeUUKpYglCHNtwGsJZJoW7E1IS70BwTX2g6Pa
zvR9XEJlcCk+0PUKWHlTrZuHbbpnBWTJJvLcvMVYA7VbRNrWeuAeWWNjOtYwJuB09P6ZJmm5nj5l
3IPQcHcEkR/dG9IXVImMoHpIOMvVtpk/HvfB6Im4UpEAcVIlvEeaCQu1eeLM6Gw6wydMpYdOXu3L
dBbrg9UkB/ZsLQAHat71u/XpPIbhq6Ur7JBWjAQkwGmB4yOBcIYx4sJgRkmg3Jon6uvBUgOgOfMp
T9zif4p3u2abTRUUk9YVQiMdUtihYMoWA6V7mg74bSGgqutbcX+2PpDSZIBMT9v7Iv5y96Fc17Ps
+ZU0kCI7yFcgXQbi8CyF+QIp5qC+N9xJp75S0tKH0ROhzllorenAFf9ab+1u+yH1Z9Ngvj8TF86r
oKD2jDRV/poB9aW2mw2WayA/MKgvCTmHyfOSHB72QetMxKzN8K7H5qGuqw+TzeNy+6HulRNtnxlK
6FaU9CH16CEPgRwL6ntsIPcKBNKuIgikbOBgFVZ5Ir86kd+1EO8uEfYq7/6gviqMzqlCzy/Tzs4x
ZXtGmQ4oTQice4eRl5ynHiUUBlEohB0Uc6zwhKvwbx41dUcMoGe8Z47J0Xs+hbvXJ6LReHKtA+yB
/0VROKihJUvOxBEYH4PNE4UtLHaFxP9PBc4ZdldahcvLjVIE84u2z/10dTSjNuallnLbZ6NeFe0p
N+VAphhSZ8eghsOSyRTvGGuvbX3W23orPNXq6QwZ9QGLjBTi1Lp/8zLG7FErD7ggRiLDCCQPJB21
RkWRdpJFl6iXuK/U7ThD6CFn4jK6KaZmR+Q/vXx9Ps9rq7KMuUl+aspSKNMKikQ6IWHRGmQ4U8Dg
UFF7UlhnxH+gUOspoiNRXxO6zGjCzAaW+Kpcvu92fPZn1O3v1BeNVAJjQvRUzh/OqLmHgqjwBqsQ
cSzcV1dAF9JT1xvOI3pCS8ovhTaCD3jyv1++Wa0W09Vvx1J1b74SsnisPZRUWKajHEZRav+g1FUR
WCjvHf0ayeZp+fzI0+OeaMZcRkNVGnHk0f95TbPVbFEAZxTJEU1M1SzEcQEuGVUgxAbilYxfySVP
CEZ9iDKDu+SdfPN+tfS96xvt8ffVnNNZGwvsDXJOS0hKbGqIe4wK5p01OljcipXNOQfL9dGWGeab
lqc27+afAKNmpyQ+G67MAaQNBSR9RqOQLmHB9kHxwmi6kQtJH+dYSRP7WWhv+h6waea+iZrOh1eV
QrP5aNfTZns8S6BQZaQEqP2dKFoRZtuSQqZ2p/TpFDr1CIXX0rIosLdX7WGwwhM9zv6gviTzjCFX
dEhML+7uUg3enlPub1cogFbgdMMVKJjFdGIgFSQxMTimCPfguleRw4xPHDXd3fUQVgpnECp9NIJF
e7vqdKWU03RuTZ8+XIKw523USEIYATIxSeVCIuAUKYUGQsX5C0jddXoAZ/PLYz1V45NP3ZfVh9X5
XP368aiLDIwyGFToxBBaFchQy5EsiAUzdYGHfPnWWaWLTuPpZQzWFA9NdX8lc3tgwvZ25ImVu/cy
vdS4ACwQeVItV8CWW9hqFDxXhlLrgd8+fy/zKuN2R4z6qFlGlP1/CeiI8lN9v9rWPzf1r+fs+3Db
HBLa1M/yMR2TBsRTU57ZdFm7iEAHAJ9EzpzlX3Qx83Khp3h5OK4nFsOX9pOuKw+z1KpclNNF/bdN
vX653NbreVm1B8PH7m4kgbMQHSIKkj4QMF2t467tARRFYA6Swatb8+OuXG9/f/qqTjehzYF5IrHN
De0rQMqcAoaHR585w/SRc0LTfx1wqTlFIVXQIt0WNx7SYMpZ9PjfPcN88kRS88zZvuZzeU4Iihe5
jEBA6iZolChgx1JbIvWYMEVcAhWxAPleEF8tIzhC6COfX3Z20v8MOCL3UARXfyBN9wqDCzmFqObA
EA5ozArvkNIQgaUhjgb+n07TezKN+oLzjDZEnWmTVovEK3RCdBsV04f/K+7KmuM2jvA7f0Ue8zKs
uY/HOW1V5FhlWXnHXtKWeCik6LLz69MN7IEBBktWsnFKJZFaoIBu7Ez39/UFhHje2KxEhF0IFF+A
tthd40ku1nBA6JKJ11Pp8f3y+ovvK4F7ijsVuLNT+35sa/iyP8aTFGArxCBCZqmwgiRFTGJg64pn
YNtzKNIGY6JSVwnqHnsZfnx3udfhx3eVfqtGPN2ueLPHKHbfvr9gRaMdzP3QmmM86JexstfDDtMe
U3u5EMNDZEI7y3y+hn5jCS40Ih3OqHXktqWjO0Och8/7hYCmjJK6RJLCTIjFQoAgJfESUKU0hQs5
adwYX2siRNcSopumxM5BmwutR0F5ZnPG1h0LxtiCMQZoAA8dYHbgnmvO1Z8RG5p3KYFKq4aewh2D
El9/v2s+agkkB2gnFkgL7JGhmoQMvwF4NKoYo0HLJjI7X7CWQ7Set3PT553B5krVZ2H6nyiKLBIT
nwQcJ3AHJQVQYwygOsoz5cUJfcUWB58XcFoe6+NEwxDBh9Ps4+bh+bn5fDXTBZwhI+DRsfY1FBJ4
lIRLYEgsquJ9upRjGV14Itc85OnUattosUiH3gA9dPFQ0zeUcJmp10ECSMTevsQ4CKY9GhCXIlaV
avvq006L1f7Hoze1fLuW0NPmv8E0gchK9lAIOxmE4YbphFlozxAGMoLF4SB4AoDodbbR/sf2bjhW
i7pufO9qq0atqd1qf0p46su12RaWgSuCwF8Q2RhPnIf/psAM9lgCoJOz3tTT5Su5Nqu5UYUPT5U7
P7xrRk2111oGQC7UW2yaLAYDUJLQmJhyuM3ytWrEThJM5J5n8d2uM431Oi+ENlIOMMRrGkV04BOM
7mkuFlLJSKK0xkcwV5G/3hn0Wntifc5NLXDj6e/WU+v2abX/5wsuAGxQRBglxS3DVRydNxnZZdAY
X9AGrK3WhkRqEV0GgGlvqnA73qCtwPFoLXqjKsHttqccyQ/vm/VQqgDKhWdtJdYWJpGI01qQDGtW
FDzKrlYP1Vg1u+08VNbRmcFYdeuvL9/GSTl2Kw/VrbIPSdGgwMk5QWLiYO0oPvgM1qRwm8C7sBxZ
esuDD5M7jdUZjo3l7xidR9Q6xswsp4YBwyEtOg5HGe8Ac7NCbGAWKzs14CBA3VwnFxSgWKneJPX5
+ksr/ni8lp65hvTWLPaNvvv5b/uh8r93NcclJAGjaqyncJhQ85zY7DgxQtuUgU1JfXnP9lddwJ54
qJbZ2obMs4QuMp3Pd30QqG+z7H+iV9TFlGIc0aHPp2vbJ2KIASeTqYlOKfYfr/fhWC1uY1fCh1M3
/muMVUyEFxGMEqREbOtDpGRDyOARXUkBzDyY+zf1U8S40D4R40TMuePuJHbbNrvM//JXc+wtN+6W
sb5aAmsUrCQqYJZHOUO8UQxWgaGBRi5NVm9qLr9Ms25qAVlD6hU9+vDfu6dzK3k1ccPQnIRSJCum
iWAMC8cL0BFLtRDYo5BZ7a9Hl6pFaMQpOy3XfSnqaNxB716PLfl6qInwmQmADYQ7DKULYHg2Ax1C
HxcZwLjizdXIxlCL2iYb/bGbWoFNS6vNIqk6RltHnwyBV+2TtLh+qUWHniQllsZMKCvMysIBs/x3
jOp8vNagUTfWaXvKwfz+fPf9vDZEu2lMHFO4kgFRwo5shp0TAM6xYLJg3MuqUrwGZjNZLqPL13I1
6lEAc5w4c3jvPzaz4ozySIsmNmJXfpAOViwsFp6DZoUGbqz8k6oWziJWmlk5j3h0TpjzGI3Hh9/O
JYSmCajNcYYGkPDgnCYZwwICtgIJTmeShAF4IlMu0w1aXb4SzCnZEGwzLadoxe/8r5g/EucSzpCs
CFQ4IK5cYXduJs4ZhcVMyWetnbXXz2WDFAtr/9cq59Ttdg1ns9vtTmnSbv3l3EtmLlIarQAIRI2h
tb6lD+eEMO9x9UupMnfg2NvJ0fNNxsKtqJw77hXdzPIF2+5p/eVvw2ANeSgkkIcQbZHAzB0pyLJF
DPA1JK0JYz6XGGJO2VwvfnASZMkhHQ7XSm50S0kziSY8dw8bTCS1iJwVFsBUIlZz2OhCAZANsuA/
xhrONKcXq5arS09ka34B62lI8uePL4ckjUXWixR9+GWAT5TFJLH+EEmaB0toXSIa+Dm4LCV5eGXk
0fHqS3jvcLiSXNG5aVkpd+LEv/20f16/tf4LCLkQGkA263t1jFAkCBYJDuFK3hfNOfuz6r/Octf6
uk1D3/Psk1+6zR57mprNYiY5T2H9ALgHCyVjIKFkRYxLvogiqY/iSoGAWoxagwYyW2k9zXliI//L
/tTrYdktQkkrEo+Ow6rC2UkiwvpyWH0rXFIAF5SMwr+NFT1tP71bjgF8qkL2IJ5pyNxNu9xWj/c4
THKQ2A3cs7DCgWwKLbHRIAD9zzIQQMeeMiM4dW9KzAa4R5t4Pt7XknarlqSr4/qoqsw/fd/fNReK
1ZZxzgl1gEFFYIDMwIaSqJSXwUXFp0X6C5etRdu2HuJuOu8jPnXPX4ZRnNunw1CNITfaVzEC3kLY
ZXNKqQiiDDb/uASmUAFZhgVeggO3bMKbuspbN1tYFY0zK/WMmnvY1coMIKeA3cJ19X7/+UvPkocJ
FW0z5GFrOgXQIcrYz/thWE0M6B9IEwXKJLN945il0U2XpiyNTrmpJW+4hL5SaRa0+8d+s308wnzn
em+QFbUc8BjRCdMlDriqp8hlrPcqADS2Vr/qkPsLL2/S/nAtdDeH0Kv1bPjQj9v9/aa7qwMuEcfb
RQ3WXuCSUh6eOvgDUjJXPJvAPX1TZezh4gu1d8PBm1q+BjDYbKZFhedahuOjFnQIcHEhswdaSqg2
WHPugbJmH4k2UnGdueCR/1dlEufjN7WM88jAaoul1weO/e3keQEA3Ep+qUooZKVsSERlHECnsiTW
ZXBVHqgMxcJJ5ZvY5nSTm1qKBizYqimg+fa0H0+RuP2A/x8e8WBthDX9I1bB0xhAHpks0jztidNS
A9wUKjpLVTDX7886SbPQwXw8XGveqIdc7ZSY7du7xyesGcDkuT20YwzpZR2zEAIWEZjYPtoO5FY5
+CcFAFCSJXAD/4Nyh4M8S9v9cPimVku2dN22OzietuvHzw/7Ovg/9HCoQwuH6hM2QOIY5h6BV8NK
ZEDhmLFEswycXkepPbtK9UAv1S8toeZtG6PTxk9gLcV8C66VPI0yKY8P3z90T8/bp5afd6ANz9IB
AvRAKCS4nIA7T3tjuXLwYfJ/HmWtAORU8JtawVVL6xOZ7Z3DT8tD/zxQdceSIwongwnQlnjuUG9B
s84xM8+vk9mYS1Ir0pgvulZmO+GE9y0lghQSjGbEESk4+gFsZ/DeEAVuIYBHEFJe7CO+b8hjeEMe
o3dHefBb+WX7ef/8/emPlkw8U5FMAuMYbEHkEnBUpMLkUdAcKCo35f+4oGrRa81NS3Nz8mWDyLfh
5NC0u700D01oJY2BLyZp7LNBIgyPRIIpKT47rUzOuYbQ9R0mwvGWcHpm0zGV86F72N49n+ejOoRj
3kcKX00mPOm+FAHTkEDTWQG44Fg2/JVY6xuN2liES/mm4YxaSTvP963toYcQHf39HT/HCHs+0Hj8
9BiXNYG6GDiJWuCoUg54IgCy0FTSAtbNBTmhMOPrV4LZRjnA2mndQMKnNfvzx1GfnDJ9rUv/E5Ni
IQUllSY0ZmBXFAc1OAD6NpdEEw8lxnS9WNVZkoXE1MdWCe/aNYLRazeH/19eHr4C5TtIeaLrQvTD
T2zIERkZSRHjgwbn8aK14lJyHhC3xvImmlbfZmFl1SfV6jS459rtTh1nq+d7WDjNATs4vwy4r6Tg
LwTwdmJlwHSFygKhlpnOXBxdqhKhk40n2slpum/1vLk9fCM/9e8LuB9PVBuYCgNmxZMiQKPA8kss
+PcKX6JR4I81hb9SFj27/lIcc3LaRJ8G9OjsNC+Y9ut+yNbTHx9HM3L6/LyVPVWkShYwS4W4WDCc
XBi231tsGYHHHTTTkV1vP8zlWWoxmZ5Xa9/gPuuVPPVwPH/f4Ix5fQqp64tJjew9D0oA5sa5jQKe
BNDlXEgJLkkngdhxP2nlqW5wU4vhWrKdpjaeXzJyGOp/uzwpoygngFU6EhlD4sMD8dop4igwZEBP
2M/Rnuv5R6tGEMTYNGTbNjuN6ybWwduyPvwTAeOUFGCNlGJgB4QIe8F6ghPUI8csTKvGvB0GfEMn
6+y0WqVGt8x63WgKrDbAuS3QM9jPOKW85H7CIw0A5Lgmyjssd42SiXR10HSWZqlJsLnsB8Q603XK
q/++/V4+wqIftflbnrkMzhNjMHKLlcsuOwckk2uTnI1UXS5a7q+52N1fqnTXetcovlnv5Kydbbt6
+Tx8s884MgPhUj+rXWZjbWBEZiwFKckQB6uM4Ot+hEwlMmffNrTrfP2laV3nM2oNNg13sdud4NAT
gNu7325dc+gqwKYUsU4fx1kJBmYVKE8kNATFbJR2Np6ivlotyK4pyKmb4uv2j/vPJ3rJ1cXUYYwu
CwFUK2SsroAFThwHHJqVcUHTnCVvN4ON7zIWb0PtPN6BHzbmHk32CL4EA5en6kOuPhRstclJ4DgU
4CwAgDIJwljBvFTe0uvswcaJE33mSGUDZnOeku4ToUORJGPW3AozVI547HEgYNgxEdpPmsOOauWN
cipGsCyvKbKQ2IyHY5W4Wzr3g5stsw1qsn0aYs3Haiau+5SOpB7sn7ew1xSQ8Wg8CRwMgwX0TsH6
Rf32Qje8xWJatnHucnBtfMZY4a3Zzp0rfHiazPqtuz+zFNHcDMfakQiEUGHtiwoKDD/v53lnRnjk
4MxYMiJM3j0wungt1E43hNpNa1O/bO++DROQ+pklQ6+McOBLM1IkjHYZMMsmgfMpmZkCwongr9KT
DrdeConfVYWTW9dosocP1dny3T/+th0P6OXHl+8s1CsYLUK0mTCL076wF9UWLBuRAruVDdey3cw9
vdNEzMYzX627Bi08VHhZkFIOo9aGlY+hbXjKsEMRxWiMm0iB3VVKM1aYNNlfq73xJMYywpnVeoE2
q5aKp7Ue//HTxw93L5/3D8fUWSvYhiUhLAsCtAlTdYGCWwqaSMYU194CZbnShKIFcSYqzcHadiNn
Scjy92HwOM5e17BhECEffuuLBAFhRouVGIiKTV+6liORIjNBjXExvNKRcLz+0qTYw+Gx7Dva4Bw7
xk99Pj+8/9SsD+NSRJ3wHRAWiSvAmhCYIhlnfKloDXfyWnXcn+aPHCScJ0Z3UrJL8ZPBqhy8BRWm
j2QNv/QFpSzZAtCGRYWpdSYAMVNGcsleyeRTkVdkjGdZLnWQTB3FTu5aau+6GdNZP3box/tSZHyD
BSuwgKSKpAjwhYIZ+L44z6QYH2iJWOMrX9EOLrm0z+FQJabi83IM+FCc51yv34jtHLdUCW5JxEnX
QgLqBHMGrsQwEFxaRQ1fGHLdSOGBDLIhmDg1Laz+xXHm9vl1UPTC66BidsaqbAmQbEwvUkCgAhaQ
5YVSLbFsgE/COOPL14I53hBscwrady/tF8UYEVPEmetMgzUUJQKpgC8TOL7nyUuZQpzIcL5SJYBu
zP6GD6eep5ncPHaSAsLovb/WOkZOgtWAvQRuJAG22TtnjE/A/dNVvP+HWpRZFnOi3qqhXjedobl/
+Fp1fWBAuA8rqZ5uAte0XOGLthDXGAVeFgf2AQoWUsoSUr7KrJ13DwsmHA5UWhk5Z847MwuoDlMr
0Jj0QyMOI+aOE+YwPclUESUIVKev/1fA7QA5Os+VV0Cosni9Daq/9jIS6A/f/BtQSwMECgAAAAAA
ZTzrQgAAAAAAAAAAAAAAAAYAHABtZWRpYS9VVAkAA57C3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIALg660Ihj704MgAAADMAAAAtABwAbWVkaWEvY2xpY2stdm9sdW1lLWJhci1ub3QtcGF1
c2luZy1zdGRlcnIudHh0VVQJAAN7v95Re7/eUXV4CwABBPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJI
AdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBBQAAgAIAGE860IhuCesogAA
AFsDAAAhABwAbWVkaWEvZXZlbnQtYXR0cmlidXRlcy1zdGRlcnIudHh0VVQJAAOVwt5Rf7/eUXV4
CwABBPUBAAAEFAAAAN2RwQqCQBRF933F+4FipFQYIggNSQrC3EWL18yDhqZRnmPa3xe1bmlQ63vg
cLh5ayEIQMRyGkoRQEeni/Fj6pqxmE1spdBC2l7rgpwmLpnoEMVREB5hvmKueCEhyZLKeer9/glT
Um4lGHdDazSo9wCiF6P8J00lo2ss+u/Yllrv0J8HEylr6uErUsZuYxwhZ4zakPP/9tOrEO/Ea1eQ
+pD3AFBLAwQUAAIACABhPOtCcYVqIqIAAABbAwAAHwAcAG1lZGlhL21lZGlhLWNhcHRpb25zLXN0
ZGVyci50eHRVVAkAA5bC3lGAv95RdXgLAAEE9QEAAAQUAAAA3ZHBCoJAFEX3fcX7AWOsVBgiCA1J
CsLcRYuX86ChaZTnmPb3Ra1bGtT6HjgcbtYa8H0QkZwGUkygo9NFO4+6xhOzsalKNJC01zonq4gL
JjqEUegHR5ivmCteSIjTuLKOerd/whQXWwna3tBoBeV7ANGLUfaTpoLRNgbdd2xLpXbozoOJSqPr
4SsSxm6jLSGnjEqTdf/206sQ78Rrm1P5Ie8BUEsDBBQAAgAIAGY860Ihj704MgAAADMAAAAoABwA
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1pbmxpbmUtc3RkZXJyLnR4dFVUCQADoMLeUYu/3lF1eAsA
AQT1AQAABBQAAABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ
2XpcAFBLAwQKAAAAAABlPOtCAAAAAAAAAAAAAAAADAAcAG1lZGlhL3RyYWNrL1VUCQADnsLeUZzD
3lF1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAZTzrQiGPvTgyAAAAMwAAACgAHABtZWRpYS90cmFj
ay90cmFjay1hY3RpdmUtY3Vlcy1zdGRlcnIudHh0VVQJAAOewt5RnsLeUXV4CwABBPUBAAAEFAAA
AHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBBQA
AgAIAIM860IEj0adrAAAALYGAAAbABwAbWVkaWEvdmlkZW8tc2l6ZS1zdGRlcnIudHh0VVQJAAPV
wt5Rxr/eUXV4CwABBPUBAAAEFAAAAO2T0QqCQBBF3/uK+QFjpVSQCEJDkoIw36KHyR1oaVtlXNP+
vqhvMEp8nguHy52TNhpcF0QQzvxQeNDS+aqsQ23tiPlUlwVqiJtblZGRxDkTHf3Ad70TLNbMJS9D
iJKoNJY6e3iFKcp3IShzR60kFJ8DiE5M0r8k5Yym1mi/Q1tJuUd76Q1UaFX13yJmbLfKEHLCKBUZ
O7Sd3g3xQbwxGRV2SA8/qjWq9fNqPQFQSwMEFAACAAgAgzzrQmJ2HqmiAAAAWwMAACIAHABtZWRp
YS92aWRlby1zb3VyY2UtbG9hZC1zdGRlcnIudHh0VVQJAAPWwt5RyL/eUXV4CwABBPUBAAAEFAAA
AN2RwQqCQBRF933F+wFjpFIYIggNSQrC3EWL18yDhqZRnmPa3xe1bmlQ63vgcLh5ayEMQcRyEkkR
QUeni/EBdU0gpmNbKbSQtte6IKeJSyY6RHEUzo4wXzFXvJCQZEnlPPV+/4QpKbcSjLuhNRrUewDR
i1H+k6aS0TUW/XdsS6136M+DiZQ19fAVKWO3MY6QM0ZtyPl/++lViHfitStIfch7AFBLAwQKAAAA
AAC3OutCAAAAAAAAAAAAAAAACgAcAG1lZGlhL1czQy9VVAkAA3q/3lGcw95RdXgLAAEE9QEAAAQU
AAAAUEsDBAoAAAAAALU660IAAAAAAAAAAAAAAAAQABwAbWVkaWEvVzNDL2F1ZGlvL1VUCQADdb/e
UZzD3lF1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAtTrrQgAAAAAAAAAAAAAAABcAHABtZWRpYS9X
M0MvYXVkaW8vZXZlbnRzL1VUCQADdb/eUZzD3lF1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAtTrr
QiGPvTgyAAAAMwAAAC8AHABtZWRpYS9XM0MvYXVkaW8vZXZlbnRzL2V2ZW50X2NhbnBsYXktc3Rk
ZXJyLnR4dFVUCQADdb/eUXW/3lF1eAsAAQT1AQAABBQAAABzy0ksSXVJTc5PSbVSSAHRmXnpCqlF
RflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQKAAAAAABjPOtCAAAAAAAAAAAAAAAAEAAc
AG1lZGlhL1czQy92aWRlby9VVAkAA5nC3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAALc6
60IAAAAAAAAAAAAAAAAXABwAbWVkaWEvVzNDL3ZpZGVvL2V2ZW50cy9VVAkAA3q/3lGcw95RdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIALc660Ihj704MgAAADMAAAAvABwAbWVkaWEvVzNDL3ZpZGVv
L2V2ZW50cy9ldmVudF9jYW5wbGF5LXN0ZGVyci50eHRVVAkAA3q/3lF6v95RdXgLAAEE9QEAAAQU
AAAAc8tJLEl1SU3OT0m1UkgB0Zl56QqpRUX5RVYKmXnJ+UVFqcklCimJJYkKyRmpydl6XABQSwME
CgAAAAAAYzzrQgAAAAAAAAAAAAAAABcAHABtZWRpYS9XM0MvdmlkZW8vcGF1c2VkL1VUCQADmcLe
UZzD3lF1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAYzzrQiGPvTgyAAAAMwAAADoAHABtZWRpYS9X
M0MvdmlkZW8vcGF1c2VkL3BhdXNlZF9mYWxzZV9kdXJpbmdfcGxheS1zdGRlcnIudHh0VVQJAAOZ
wt5RmcLeUXV4CwABBPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJ
JQopiSWJCskZqcnZelwAUEsDBAoAAAAAAMM660IAAAAAAAAAAAAAAAAJABwAcGxhdGZvcm0vVVQJ
AAONv95RnMPeUXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADDOutCAAAAAAAAAAAAAAAADQAcAHBs
YXRmb3JtL21hYy9VVAkAA42/3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAMM660IAAAAA
AAAAAAAAAAAVABwAcGxhdGZvcm0vbWFjL2VkaXRpbmcvVVQJAAONv95RnMPeUXV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAADDOutCAAAAAAAAAAAAAAAAHgAcAHBsYXRmb3JtL21hYy9lZGl0aW5nL2Rl
bGV0aW5nL1VUCQADjb/eUZzD3lF1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAajzrQrH9vTHbAwAA
dAkAAEMAHABwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLXNpbmdsZS1p
bnN0YW5jZS1hY3R1YWwudHh0VVQJAAOowt5Rjb/eUXV4CwABBPUBAAAEFAAAAI1WYW/iRhD9fr9i
xH1oIjnIBoMN0n24lLRFSto0pSdVp1O1tiewzXrX3fUGONT/3lkbbENC7qIkEO+b2Tcz700QbIsa
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
6h3+7kbJOUYN1nZsvElku9Jq+/Zttxo735y81jnGFpR9dF257nmv5wiIYjPkmY17lsidv0d9bksP
d46edLvs9YuTvx2yu3mU0pnitSAFPRXY+1TwwBrK2TnpwGoOMZaHYfQdUAG3pKu0qPIIF72dM37v
N8MgnGXMRRh+5o8+84g2qW257gC1n5Pr8qHHul3AiqPHinx8vAtVs1UOgqdfrUOOF6ValOOgHBNZ
itgd75o7PaxHuTp3/g9QSwMECgAAAAAA6jzrQgAAAAAAAAAAAAAAAAgAHAByZXRyaWVzL1VUCQAD
mMPeUZzD3lF1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA6jzrQgAAAAAAAAAAAAAAABMAHAByZXRy
aWVzL2Z1bGxzY3JlZW4vVVQJAAOYw95RnMPeUXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADqPOtC
ZjCJvIwAAACiAAAARgAcAHJldHJpZXMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtd2l0
aC1tYXgtd2lkdGgtaGVpZ2h0LWFjdHVhbC50eHRVVAkAA5jD3lGYw95RdXgLAAEE9QEAAAQUAAAA
HY1BCsIwEADvecXeohdB8NRbsVGEasH4gbTdymrMarpp6e+NXgdmZt9cbFMbOBtry6MpwFNA2O4K
uC1vNDFyLECH5L0GGiGwgAvA7QM7gRVOzicnFO6gBUepaNrM2D5JrvhJGRyyaLuIGPRaHcpTnbv0
wh44CcyO/urA8RemYak4z4WhReic99grpb5QSwMEFAACAAgA6jzrQm73dkRZAQAAsAIAAEQAHABy
ZXRyaWVzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLXdpdGgtbWF4LXdpZHRoLWhlaWdo
dC1kaWZmLnR4dFVUCQADmMPeUZjD3lF1eAsAAQT1AQAABBQAAADFkc1uwjAQhO95ij0BUepESJyQ
kMJPqCookUgEZydZwK1jU2cN5O1rQqXe2t56sUer3dlvbMYYRDstbY1NtODEo2SfRXssVoK+rpkV
soq2KJE3GEneakuMsCFmsLGSmsggGeHmD1bKpjSIqpPsoZk4GF4juwo6sZrfnKicOqE4nojh7Ywl
YRXSjbwgCP6XhpdkuexY4hjY8GkEwf2IYy+Yp5ssXSfwmmTZ9DkZgxQKYTgaQ96eMTFGmzH0lVvV
B9GA0gRcgS7eXD4Y4IVLy0moI/TvuAtxCa9YvAva4od1haUbzDrEvu8Fy+nL2hmLGitwCeHKRTd7
0ObuLA7tQrvtpKFAKLmUWHngsWSXbPLBw/c7f3ni6og+5EmWD7r44RFppq2qnOdcClSOoqSBH5r7
M8BkApUu3S8oCgtdtb+093rws2uhiXT9d9tHvw/pykXaLCBdduwu4SdQSwMEFAACAAgA6jzrQhjX
Xxt6AAAA4AAAAEgAHAByZXRyaWVzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLXdpdGgt
bWF4LXdpZHRoLWhlaWdodC1leHBlY3RlZC50eHRVVAkAA5jD3lGYw95RdXgLAAEE9QEAAAQUAAAA
43INc/UL0ShPTcrOLEkrzckpTi5KTc1LzkjMS0/VVAhxDQ7RSCtKzE3VS08tccovzUvJzEt3zslM
zSsJSk0u0dDUK8pMzyhRsLVVSMlPLs0Fiusl5adUElCupqaA39Sk/JKS/FzijYWo11Tw9+Zy9XNR
8HcDO52LCwBQSwMEFAACAAgA6jzrQuawvZs/CAAArxsAAEwAHAByZXRyaWVzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4taWZyYW1lLXdpdGgtbWF4LXdpZHRoLWhlaWdodC1wcmV0dHktZGlmZi5odG1s
VVQJAAOYw95RmMPeUXV4CwABBPUBAAAEFAAAANVZbXPbuBH+7l+Bsaen5MakJEtObSl2J7HktnO5
pBN57j52QBIUEYOEDgBtOW3/exdvFEmRkjvT3kwvcxGJl8W+PLvPgnmfqZzdnrzPCE7gJycKozjD
QhJ1MyhVGlwNYFiqF0ZuT2aMFo/naPZEJVUkQf84QfCfIlsVJCTmAivKixkqeEHmZiriIiEiiLhS
PJ+h8WaLEngmyfzkXydWnBMSc8bFDJ2NJtdmLrynjCxomrr5CMePa8HLIgn80vRK/6kfZE+QnNEE
nSVJYudSXqggxTllLzOU84LLDY6dgjkWawoqj0mORnZow8E4Y4cgDCx6IkahbNzSdDKZdMiXuJCB
JIKmtUlJvxNzRv3QgJFUzdAovPTjCZUbhkGIwhEjQUwYsxPPNFEZCBiN/uB0xElCi3W12+rnwqOf
mhFyKtMiA8VUtTzjT0S0rLq8vJz3OZwQ64pQx+UTnCXd5pRxDKYIus5UM3p61R24ANOiOoqD+6kC
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
ZWlnaHQtc3RkZXJyLnR4dFVUCQADmMPeUZjD3lF1eAsAAQT1AQAABBQAAABGQUlMOiBUaW1lZCBv
dXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKUEsDBAoAAAAAADM760IAAAAA
AAAAAAAAAAANABwAcmV0cmllcy9odHRwL1VUCQADYcDeUZzD3lF1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAMzvrQgAAAAAAAAAAAAAAABMAHAByZXRyaWVzL2h0dHAvdGVzdHMvVVQJAANhwN5RnMPe
UXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAzO+tCAAAAAAAAAAAAAAAAGQAcAHJldHJpZXMvaHR0
cC90ZXN0cy9jYWNoZS9VVAkAA2HA3lGcw95RdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANg860JI
4a1KUAAAAHsAAAA1ABwAcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hl
LWFjdHVhbC50eHRVVAkAA3fD3lFhwN5RdXgLAAEE9QEAAAQUAAAAc/b3C/b3cVXwdQ0OdnR3tVLI
ycxLVTA0ADLykxNzMvKLS7iciVDj5ujpo1CUWlyQn1ecqlCckV+ak6KQBFRlZK5nAISGegrhicUI
DXpcXABQSwMEFAACAAgA2DzrQvNbXfnbAAAAygEAADMAHAByZXRyaWVzL2h0dHAvdGVzdHMvY2Fj
aGUvcGFydGl0aW9uZWQtY2FjaGUtZGlmZi50eHRVVAkAA3fD3lF3w95RdXgLAAEE9QEAAAQUAAAA
vY7BSsRADIbv8xRhr2M6WxEWPLVqFXHdFQe259lpoANjpzQZWN/e7iL2JHiSQBLy588XRARzSDF/
EJsHJ840rTUtHV+CfJe7HGJn3imSYzLRfaYsKMSCE3GOwmYimcLs70VGc1bYeOd7MqObJEhIA3V4
mSCdRvJCXSEnUVrrf4U7L9nFC7qqAMurG9DnVFUK7vc7u9828NpYWz81txDDQFCu5yZ5F/vEovD3
pfJ6U6znKBW+1dbC/N2YBiYIDKsfcaX0Xzj6sX7eLie4Tzl2cKSFUkDreHEUCtQXUEsDBBQAAgAI
ANg860LuFGS+RwAAAGYAAAA3ABwAcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVk
LWNhY2hlLWV4cGVjdGVkLnR4dFVUCQADd8PeUWHA3lF1eAsAAQT1AQAABBQAAABz9vcL9vdxVfB1
DQ52dHe1UsjJzEtVMDQAMvKTE3My8otLuJxxqjE0MtczAEJDrgDH4GCFotTigvy84lSFzGIFJbic
EhcXAFBLAwQKAAIAAADYPOtCjTyAbEEAAABBAAAAPAAcAHJldHJpZXMvaHR0cC90ZXN0cy9jYWNo
ZS9wYXJ0aXRpb25lZC1jYWNoZS1pZnJhbWUtYWN0dWFsLnR4dFVUCQADd8PeUWHA3lF1eAsAAQT1
AQAABBQAAABDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFRoZSBjYWNoZSBpcyBub3QgcHJvcGVy
bHkgcGFydGl0aW9uZWQKClBLAwQUAAIACADYPOtCRdnUZ8IAAAB5AQAAOgAcAHJldHJpZXMvaHR0
cC90ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1pZnJhbWUtZGlmZi50eHRVVAkAA3fD3lF3
w95RdXgLAAEE9QEAAAQUAAAAxY6xTgMxEER7f8X2ZtkkVXTVBXJKASQII1IvdxudJeds2Wsp+XvI
iYKCnmZGmtFoHiICfcRQz1Joy8rUHR0d5fPJ6489VB8GepMgXIQCX2NVVCmKWUoNWiiLZv+9H1UT
3ZpCPfejUOKsXn2cZMA5QX/KfBaUS5JeZbjXixpr7X8wcK+Vw0zQtoDLuxXYm7StwcfD3h2eO3jp
nNvsugaCnwRWiwZeN84Z+3e/XDfwPgrMN+ALTFEh5Zgkhyv8AjFgvgBQSwMECgACAAAA2DzrQj/N
iGYgAAAAIAAAAD4AHAByZXRyaWVzL2h0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUt
aWZyYW1lLWV4cGVjdGVkLnR4dFVUCQADd8PeUWHA3lF1eAsAAQT1AQAABBQAAABDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjA6IFBBU1MKClBLAwQUAAIACADYPOtCRXXKiZwHAABLGAAAQgAcAHJldHJp
ZXMvaHR0cC90ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1pZnJhbWUtcHJldHR5LWRpZmYu
aHRtbFVUCQADd8PeUWHA3lF1eAsAAQT1AQAABBQAAAClWVtv2zYUfs+vEBJsAYpIspO48yX10CbO
Bmxrh3nYHgdKoiw2lKiRVGJ323/f4U2WZMnOsBWrLF4Oz+U73zlU7zKZ0+XZXYZRAo8cS+TFGeIC
y3eXlUz96SUMC7mjeHk2p6R4uvLmz0QQiRPvrzMP/pN4K/0Ex4wjSVgx9wpW4IWeihhPMPcjJiXL
59643HoJ/MbJ4uyfMyPOCokZZXzuXYxuZnoueCQUP5A0tfMRip82nFVF4rul6VT9aR5kThCMksS7
SJLEzKWskH6KckJ3cy9nBRMliq2COeIbAiqPce6NzFDJwDhtB8cULHrGWqFs3NH05uamR75AhfAF
5iRtTAryBeszmof6FKdy7o2CiRtPiCgpAiESRRT7MabUTLyQRGYgYDT6yuqIkoQUm3q30c+GR/1q
R8iqTIoMFJP18ow9Y96xajKZLIYcjrFxRaDi8iOcJezmlDIEpnCyyWQ7emrVPbgAkaI+ioH7iQQz
RyfMtlb6Wm7LUy8ZWOfrOCq4vXBU7jVb41jFbxA4enMbNl3IWNw6vwOoRuXWnLDalhBikA+m4Ssv
UI+uhYPqCZLgaKf+9rSqHyiLn35GXAZg6jwlXEg/zghNBh2rjlvD/qtjwjjOIbRXJ86zZzj3kwLg
g/1ILWnBbuJQB2iRJEbUR5RsID8k6zGLY4X271GRUOzcYeUoF6r3DJuA7vEcV1yo0Ci1u1mIIohO
5SIGZ9bAMQmk1TumRQvnh3DYcLxbdIAZTE7Fy7jYCyQ76eYg5SzvONtypDpDef1jlUeYA5pwE11m
1Cl+SKUWtbNZiwRduvRRocvk29vbTu4dRr/mGCVoYlLApEFN+hYHFp59EDHqtuB0YwmrYbg2sZdw
TKEYdMsxklIaWt85IrGAcTa00rTk2DeJqqfAlfoVTOAYPflqwMglOdrgVlDm3nXt64gi5UC1MAZW
AB0gqvaX1zV5H5Dp7WyQdlOc7nNfIQok1tWxkcg9W5M0aW+FOIvh5TM8Wxwr6bUkSzBNPWxCDFfr
JDkQ4CWYDu/As5PahG+8dVWWjEsotNyCGJya57iQwnsTwnmokhkz/jbFWPUyAHgJEI1dpPQGvWag
/NdrlDIIIKEXOyZ76zCtmAZReu806F19bcpYjrZ+p7Ln0BbYoetRXXK6R4Pfj55TJ3Wdza1j+vQM
WIlNxfRfcPREpC+5yjjjCaO4F1yLRcOMW2v0hZBIVuJDFUH5rkthoLKnVx21RTJGI8Tb8+7olGKd
ofuJnH2pR2teujF5bNso9dM1Cur3cEc4RBpHO7k9LFKyxUaOpeJR26QA6fbDpNlhAX8hwAW8A7Va
5hefFAneAkkdMW1fAxsq9NllyahV2aaWxQqlpk3Y3qoE50Vse1LRt3tFxwbErv6YN62s/V0XL/ta
K1w3Za2jScpRbjTs5Em7g2jkyP0A0x76ZgdtJnuxZR5T6BmhXX5FTXo7e9zDy5bjgUntiPZc3UEm
h51xuy+2Moz7DjE82A0kjmfNMe8dKbibzqg5+6urkZ0rydtvHKEdqnkkSRqXHZEj08Y3ObdgHIYX
Ayxj7Vfdl+g73Njh8nrUt4SiCNM5SiHDrg62m3EtRBfkAkw99/72zhdndSFulO/uboqgOWepL3cl
7hV1PqiRXdi54WaYaoKs+1Ck+tCBGnWRYyFc4zHo576wNLJjrYn6NaUQSgw0RM+EVeK+HoE+9gsu
7hvFsq/Ou5ajW2KaxUVxOaBWI8Fxu323SLQkcuNq4Ku0sdCAHgdLlROtcmHbvoGmr1lnowqyqmjy
jqvvCXmepyy2PmSVVHzRTL+IVrqS2CnASwq6QAUbO0OaxVJLgR7m1wybk0JbaTegv7JBMk/CXGRW
W6gJ75kgxcnyJ4sJUDbi7AUCDp1AhmCvbYqIDFQTVNtxO7ENfN2K2HfHDqqRVf+P2kXUfdHptvc5
SeCCZQxTARLu3t1TUaAPYwI9g+/BA7hTV5qXvINS54+DG9My7b97uOrfE4OLh4eHRkpfTB8fHieP
vfwEzWU/ilerVZ/Wc5yXwFCt4Ns2rbMygJ+gaSvzV7PpaGp5K6YY8T90e+CuAmpE35gyteQutB/d
7kTMSQkx5fG780zKUszDEH1G22DD2AY2lUQo6OqxkJJIhJ//rDDfhePgNri2LwG0lsFncb4EuVre
0mtLjlmCfRVD/ALrvoVIq2C+u502toBS9jthxJIdPCAfQG8kxLtLdxNQnwuz8TL8DeIJnBU+IInC
1e/r8Hcc/UCkfXyoCE3CX6DuIoFDQAq405cYGBZu7hWVIuRYcgL7lcWhmhFhjOIMhyXcqzVqMIRL
jfimT/ChoakQDeRWgprjtnaN70KXhzP6vj40ru7xnrmvdJaom4zX/v6zXwcMU7iF+gPAvrW4XI7B
pTC/bK2CZG+u+bqIRLnoXQhV+3J5/+nj+tOPK++n1Xr9/rvVXG/27uBKtbwe3YXqqV/m3s/v12s7
YKRBHMEM9xi2GrLttMl20VF7j9jCXuGYY/YC2S/H07tQPfXLXNOpRoZHBBCQBJqH6w2nO6+BHbvj
lEMaeXq5tNN27X8Gkcjginbaoye9ef0KR14PO/L/2Nx5aBqAbNP/hvAvUEsDBBQAAgAIANg860Lz
ajT79gcAAC0bAAA7ABwAcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hl
LXByZXR0eS1kaWZmLmh0bWxVVAkAA3fD3lFhwN5RdXgLAAEE9QEAAAQUAAAAtVlrc9s2Fv3uX8Gx
Z+uZjklKlpRakqOdxJbbzqaPWXU2HzsgCYqIQYIFQFtOt/+9Fy+KpEjJ3WbjiUm8z32eC/o2kzld
nd1mGCXwyLFEXpwhLrB8e1nJ1L+5hG4hXyhenS0oKR6vvMUTEUTixPv9zIN/Eu+kn+CYcSQJKxZe
wQq81EMR4wnmfsSkZPnCG5c7L4F3nCzP/jgz29lNYkYZX3gXo8lcjwUPhOJ7kqZ2PELx45azqkh8
NzW9UT/Ng8wJglGSeBdJkpixlBXST1FO6MvCy1nBRIliCzBHfEsA8hjn3sh0lQyE03JwTEGiJ6wB
ZeMO0slk0rO/QIXwBeYkbQwK8hnrM5qH+hSncuGNgpnrT4goKYJNJIoo9mNMqRl4JonMYIPR6B8W
I0oSUmzr1QafNY96a1vIQiZFBsBkPT1jT5h3pJrNZsshhWNsVBEou3yAs4RdnFKGQBROtplsW0/N
ugMVIFLURzFQP5Eg5uiE2FZKX+/b0tRzBtL52o7K3Z45KvfINjhW9ht0HL247TZdl7F+6/QOTjUq
d+aE9a4EE8P+IBq+8gL16Eo4CE+QBEcv6renob6nLH78GXEZgKiLlHAh/TgjNBlUrDpuA+uvjm3G
cQ6mvTpxnj3DqZ8U4D7Yj9SUltvNnNeBt0gSI+ojSrYQH5L1iMWx8vbvUJFQ7NRh91EqVO0MG4Pu
/TmuuFCmUbC7UYgisE7lLAZn1o5jAkjDO4ai5eeH7rDl+GXZccxgdspeRsVeINlJNQcpZ3lH2TZH
qjOU1n+s8ghz8Cbc9C7T64AfplLrtfN5Kwm6cOlLhS6Sp9NpJ/YOrV/nGLXRzISACYM66Vs/sO7Z
5yIGbsudJjZhNQTXIvYmHEMUg2o5lqQUQqs7l0iswzgZWmFacuybQNVDoErdBBE4Ro++6jD7khxt
ccsoC++61nVEkVKgmhhDVgAMYFX75nVF3hvkZjofTLspTvexrzwKdqzZsRHIPUuTNGkvBTuL4elz
PF8eo/R6J5tgmjhsQAyzdZIcbOAlmA6vwPOTaMKvvU1VloxLIFpunRiUmue4kML7OoTzUCUzZvRt
yFjVMuDwElw0dpbSC/ScAfqv5ygwCFxCT3aZ7I3zaZVpEKV3DkHv7GtDYzna+R1mz6EssF3Xo5py
ukeD3o+eUwd1Hc2tY/pwBqzEhjH9Zxw9EulLriLOaMIA94JrsWyIMbVCXwiJZCXeVxHQd02FgYqe
XjhqiWSMRoi3x93RKcU6QvcDOftc99Z5aWLi2JZR6tUVCup9uCIcShpHK7m9W6Rkh80+NhWP2iIF
SJcfJswOCfyZQC7gHVer9/zskyLBO0hSR0Tbc2ADQp9cNhm1mO3GZrFCwbQB28tKcF7EdieBvtkD
HRsndvxjWhqsfa/JyzZrwHVR1jqapBzlBmEnTtoVRCNG7gYy7aFuXqDMZM+W5jGFmhHK5Vdw0pv5
w969LB0PDGpFtMfqCjI5rIzbdbHdw6jv0IcHq4HE5VlzzDuXFNxNZ9Qc/cVxZOdK8uYbl9AOYR4J
ksZlR+TIlPHNnFswDt3LgSxj5VfVl+g73Mjh4nrUN4WiCNMFSiHCrg6Wm369iSbkAkQ99/7rnS/P
aiJu0Hd3NUVQnLPUly8l7t3qfBCRndi54WaY6gRZ16FI1aEDHHWRYyFc4TGo5z6zNKJjoxP1a6gQ
KAYKoifCKnFX90Ad+xkXdw2y7ON5V3J0KaZJLiqXg9dqT3C53batJ9okMnEc+Co01jWgxsFSxUSL
LmzZN1D0NXk2qiCqimbecfyekKdFymKrQ1ZJlS+a4RfRSjOJHQJ/SQELMNjYCdIkS70L1DC/ZNic
FFqm3QJ+JYNknoSxyMy2ria8J4JUTpY/WJ8AsBFnz2BwqAQyBGttUURkoIqgWo7pzBbwdSli2y47
qEJW/R+1SdR90emW9zlJ4IJlBFMGEu7e3cMoUIcxgZ5A96AB3OGV5iXvgOr8cTAxJdP+u4dj/x4b
XNzf3zdC+uLm4f5h9tCbn6C47Pfi9Xrdh3qB8xIyVMv4tkzrzAzgFZC2In89vxnd2LwVU4z4r7o8
cFcB1aNvTJmachvaj263IuakBJvy+O15JmUpFmGIPqFdsGVsC4tKIpTr6r6QkkiEn36rMH8Jx8E0
uLaNAErL4JM4X8G+er+V1945Zgn2lQ3xM8z7J1haGfPt9KaxBEDZ74QRS17gAfEAuJEQby/dTUB9
LszGq/A/YE/IWeE9kihcf9yEH3H0LyLt431FaBL+G3gXCRyCp4A6fYkhw8LNvaJShBxLTmC9kjhU
IyKMUZzhsIR7tfYaDOZSPT5UMhWigdxJwDduw2p8ELo8HNEX9aF+dYH3RAZlddKZoq4wXuvDj/5I
CozqZugr/76YuFyNQYkwvmrNgvA+PQco+nJ199OPm58+rL0f1pvNu2/XC70Oyh94YRCPGSQDuxhs
BEjdo4m64XKXKzts5/5ltZj720m1NOYd1c71K7TzVRGJcvm/qOgWrpmr8fU3wQh+QMmq2dXWFxFj
8gXE0GB/tiDVr3ebjWkBClHCxQIbgUhjjmi8e1/9VjG5ND17qVWrOXLSXdoGh8R72tp20lEdHZGf
vcInTpkauH/VCAnV/Gum/qIyTI7YWUF7sAjVr3fffzCthp1VU2SsokljohfBiG7uratagfcRiX0+
CPql/7+mhS+VLaev0O30iG7/hsydhyY6oBX9V7I/AVBLAwQUAAIACADrPOtCaL4cAv7pBQC0OSEA
CgAcAHN0YXRzLmpzb25VVAkAA5rD3lFmwN5RdXgLAAEE9QEAAAQUAAAApP1rk+vKkiUG/pUyfZ3m
McQbmG/VpZbUsh51WVXNjGRjbduYJDKT9zDJvCRzP46s//vEA0B4AOEruKtH03nPPXURBCI8/LF8
ufv//T+dxsd4fxzGy2O8/U//z3/4v/+nw/2u4j98fJ0fp8P1/PVxSf+H+I+7H6fj4323//w8n8b7
7nHddZ394/3xEf83t/Hun7r7f/7/qf/wD1I6+R/+wTorhv/wD6oz4c/w3/77f/gHsJbm1+qWteTQ
h7W6xlqGX0uQ91Lhj92udRnf9o/T99GvJPiVLHkrEf4Y/FYCfKHJbyXCWwnb+MKeX0uRL5Rx+xtr
KXYtO5BvjAuKxlqSX6sn3xjeS+jGfvHv5TT5RhH+NNYC52gdWcuF9yqk63C9PPany+nytns5Xw9/
4v2y63OsSP3neAu3bv/WkC/6XmnT6FrpZV6vt4/94xHeLrzo+POBv5XKmZ7kLCz6eh5/vlx/xoem
f9597v0P/O3r/ji9/uJW1WQHZTgI2YU/6U3nhcJ/wgWMygvEd5OiWCC+yXg54reweZEk96pYZH8+
vV2aq5gur6LDt2hV+xbJL6DJZsQ/5QJvt+vX553Td+lLBPkSm3Vn+SX3x/72wN9C1llOu/Yqin8V
sh0yqHHZF0uc97+uXw+8hFov4Spf87K/j+fTZYQfpImgabE9nLRUMmnwkPRAdib+UVuBW9YBMmfI
twXLJMuTut6Op8v+nHYar0TExoRdMj36NLBHPREetxWeSYANLzV5k+Vgo+KvLcAfuKGbYrcyczzd
xsPjdL1g4ZXkrMN11rr2GvwtMkQfiG57xov0g7tMxaTf6qVlCfAZ5DiCtCjr6hcIiAbZCWHiq2yF
ta0NLBUMMenHsE6wGvGJ8A/39/3x+gO6Y312oYTf48nEFQ87/uFsucOOym77MO+89dmpjOKptg/z
flGfbZ9w9V8e+Idt82HeK+i75oYBNyC7TTL8C7N9mPe53NDcbd6F71X5sNg8LDr+YVd8c/jl8PSL
14jj7f7iRTZcnsvxHp8OYvzE55ihPIX0RmnN3W1/PH3d/UX4dR7hcWhylmFXZWWVHyfvqD3eb+O4
+74/f413eEaG3AgT3q2yYuHZ8vdDVQUtrXR93Z0+vNt45/07crv0Imn8i4DTl6ZcylaWOpxPn3Bj
lCu2WqWvyae/u42f4/6xu3sdNnpFdjxGP/v6k11R5K2OBlesVvz2ebt6B/vhv/Db282vPd6+Pd73
l2+NnROuVC26tXP8R8vqdQfSwIuqkuUhuPX+ed9/f3j/8G7BzscD3tO4H27Xs3ek3tg1u6xQRBfe
1f+VrVcER9yVt0mDO8lrdt2XYj+/EFELvEGyotylvvU1/FJKgbN7XD935/H1Ma+5aAZ+PUNAAn+h
pAO7w6+i3e9JFNhoqYHyYz+Ql1BDIsoQ8Frwgbxi16b6VvlWJz3xLeqJb2n1b1BNEKtpa2rCR9HX
27dJ4+ClTM0AkzsYl5r2/xj2P/5r/4+nS4xoxvMYLih/IYfydPs5zPervozvJ/8TLbUv2/bn/vUR
DEj4bydsZFcXWtUWe7/eglY9QkWo82UKeqa60uX68Pv0Pt5Oj7GxmqxZRnDLeedEEljLZbNUs238
Pqm+5lsVKgt4DD34mHANb6e3999SNK6U0qq5DgiRtxTjsQE9qaE0hqalb/j3kqq016p1arzqUrqq
BfNFvJ/+GuliESLj7zV5M7k2XKwmBPcmv15QsqpmCE+X0+PkrXRcDkt76VK2pR0Iqqhew7UCm9aG
qrCrOl+8XPAvJZ+w2SuVBTZrKLS9bNpH3v+W9jdNLR8zyr7Uyk23hHfGldlEUzXRv3+OhyCyj9OV
P0NdvtWwVVsA3+6q71G19uC4dNsuPJnskK66x4zjMClAbO4HYEtZtQA0falmqncmRZs/rk+tJ8vN
q6mZ4+n1dbwFVZ8yDvAwukJtTXfncr0EeUqORwCpxhsvFKr6RiQku95PAe/7FgPqb6/Xr9u39KX8
KdjfuztAZqXEr5fuDtJVQpZO/JCwjPQJ3gn68lo94RjxnzAu0tczV9OTEjw5rPN6Or3H2+10jE+E
f9h5P+qDdRWiAM6qN3o+OqdA4+Mpu8SKYFxgviJxgS6+znoBbj/T831+PqhuZUR+fn5/w7+/JD8f
U8tu+zj/9nN47lYA+fF0//SCvovLwM+3ywJTUlTVFgDf78gC8c5NWbjL/mOMmipJ0/1w/UxQ1s+P
c3Ul1ZGVSGb8/uvy2P/04iT5Ry3ZhphkSnfs8za+nn5GGeYelfn9i0zu/KvC8b9Kzi5h2ensjuPh
vL8F8CfsPPvDqi65y+eCnXL1R+fP9TaG/VVD3jnmM2YY9fZxunjf6e0XfGtFxD1deVduF//TStVF
fXlrfqfnQN+tkojLowP/KBHwPqb+0/3++9f+fHr1Qe7/EeQUnxRVEX1Oqi/SBR7tV49OL74cMi+Y
ip5Un09q2WnLP0qVosqsieVRfrsU2emUaAqKOTz8v++/7++H2+kz5Vd8bCP/UH/IndxFr3GzXBSO
blrOTJFcOnH/rPpD/2F23U6yz6oZdTcFVjH9rtA7gR625OGMVfnAQnT+VxX3oNde5MHgFfb0V9XO
/6zt2Z8Vc5rBPx1SNH3xtJA7tXP8O8+mZPXOxm+V/kN2/rct+3A/2OXhiF0Z+rDfLbNT/HaZ2Y7E
ZK3/f8Pm6WTM60+LrjwpWzxt/NMJc60+bWdezuacp6flTvBvbmcM3UxhXFeelwRC0tEN1/Ss/Q8q
/868ZGvRw8MSYb/ZHx7UUD48/bAIH+xfWfPiqVT5yuVWD7t+x+90PzOzNg9H6RRBuPm7HL2j6hfH
pxW+zLpjrtUk25b/aDV0PZCv+LAED9tStN36Qmv+l7sZjDQJXJMDfTjovgTxMOLVlaIpVpdKARHR
RgPtF16755WB6FTxy+Vrp4Pmn5YDUYGi9tOSf7jTGsiYDb/M/7BdCXdxp4T1EsY/7LSr3imy24JX
3JoqoWFzVs7fK6B7hUYPm/DRQP+ZvtxuvbE4AzgscjfCHZtIRPSwOl5El0xhdMfCv9hqbv63rcvf
HfyG8moZdNJ6da/61e8O8KSzGovhl5DLa5ukEICg6E7l3w56WMv1jpkOKISeMTfJoUHvrYYB6e5g
6Hh9YDtZKtBlr31s47wq4j94CXFNwTShAgbU/uIRbpTv/LQC+tNIJF86KFDeIdI6b3aI8HRH7LPw
lvLNos8mv11RCBbaK6c58x5cg2/B+WTPSkuqfgt9sGw4kDDZNxS/Aw9Tr6SwV5Ma82aD/+aBuFJy
7YhFl4Z/eGD1/nTSAplKrTp0VkNQY7z6tR3z07OYaCQmRJuEuFoN28PiN1wIA04LaQNJlOfWgfTa
QCEpsbLhEiHh7oeuPGhdKrEeOXJDDxw5f87IwGuXNZGSS1qJONyCv1ViILpE0IenDQPKQNmhw97B
sHvZnUBwZqhvYjc3C4eypjfMpk32CmmTTtmGQvD2D6hvx1zq5WnDb5uwthENO+AKDlnCg3Nmuk0w
DIylkKWhXQu4902Az69Kn3+Jr7x8CbTbPv4X6Jw1hDu0FoUu0V0ZLgC3RA5EvEsrbeboXwKnxjgG
aJl1IAiEvQ4UjAu63A5wM7SshjkpmNV/7IEek8PaztoNyMMfs3Id1kXoTmri+m6NtIXB2cKRrDv8
vdegvKXszUqPqZoqOoGfN05gR7Lf7UE47Wi4Iip2fkDhtOkxAIEe7nvLRMSLRgCqTFHsYwsIBqwH
6BOt0E+HhwEypwdkqzWE9bTpMTqG1KAlvjt1oGW8G+BeEfC09GqyNuGVCb3RmxgeRvDU2tQkU4CL
YQbBhP/ZXvBPKzkwkdkSyoLoygocwRvgmfg4WBRe9+qngzrgb2Ove+ar3R8K+a0E16oCkAKhJQPF
Owq3IIaT8IcJVpxIVasYA220Gwx+a4deWhskXdbvM38NnbMguolKs6F2HYmEQxpML4ZO/GG+Bc/3
hb9UcqD2pgjN0v/n9Q9wAgVNpLgtzB2cQAWcwL7UImoLUIFYw9QvdeetpEUeTScZeH15Zw1SKazD
nR1X3jUQrmv8tgWOa69RFD1b6BMQVdPXUyLZKTLAJ1IMrBbviPQXjBfzYVAg0AmhRoeQdrnKIrlN
egFoMrfy5YaNXwF+mQTxlejO+o8GHo3pgQKO1g74YwMHuKRoWCIPlDrtRSSdL7UGlxrlY6KIOwDM
kfAq0sK7ihcIMmeOZr9W7z5tmup5H4E1IBl35vdcyg7ElQICuErSNBa5nsknAvqo71F6IThiQIda
GtutoExvNb3uPiKXSjacQIGAdjOsfBu5tjwHpIdFz7z5nMQCqrATDfRXAp9Mqq6641McrtFLU/Uv
NyGpgW9tOwNSylGDAiRz0KwyaQTxSndDqT8rxwzy6IPCAgoyw/6bOcWf7SWAiSDtIWYMJVCDnW3a
al7E1CoyGzY2RwGb45jsbg6u+KO2yqKsdPShQRbfCXRcEfLmz0vLFRZqNhlHYLMEevH42UBSpES6
KLw3iGalBMokwCYg22gU45QNweZABoEWopkQB7aSUQjRZAAwkHhxFK/OXhxgasAgWgicCe8lw+ZZ
bLMAttlw/uvs0Sjg0XRYOCRiAmkjAF9CIDxOur7hDFmQZ6T7ZTPgSwAaACxppxC84+BRub6dxwH0
JdWxlsqgJLa0DN47WbjBuwQomtUdVSG1IAfiB4ZsuAjEYyG6rfvYAfdRMSBoFnANBFyW99LWIVTA
ujBuaN4w4M6ZVbRiVlAV5EIRXlAZZM1ZsB7QzlwJvsiVqDoUoNGAvMsPJ3UGkxNyYBIESwILbJYy
iAc1QG+sZ9KkE5HTAQeyxwlph3IassdRtEUhuBBYhSKOnpGQiGQhCdQZBTBQCSEm7/c6lJcIGKjk
LaztDd7ulGAFOVIaw28+PCb8EENQAmXmPxw5crqTHVCm0SECzDGpSoeokpUAmQXDkV9nXQAwwV5i
xHtCNIG8qBbZ2fCv3pEwvEzmT6g3ytD2yjDeb/aOQP6NZpZ1yC5vaJkgz9qKVWQH6HaCUwxzntWg
EzMC7LeDVkPaOgpLMQCEPq/gGrvRwQjY6zCw51Auns2dLbRhkLVTA2C1RzcH2J2uSX0AILDoBfPe
XsICiUAgL7pXbFiaMATA/BWCQT6iSoAxklUN1JkHmeRgODwxZf1CegNl/oZGgmIA4RmJ7SqxsMb5
Cd33CCpavEEDnEHFBLWLM2iAL97LFs/bgojJYRDBoPDBrFmha7un0c3suQwLdmD1Uo7FM5YVSM2Y
jks9TioUGj3Vt9J4IAdIcartZg/RYoL6iV4gAoLEALJSGpMIBFDBWgwowxEQTQs8Ow5NmEg2qEhG
OYkcu4BTATMvVCsFqIAKNgKY6kQIAC9OHbOaUkHOsJEGlhV5ldQDkniTsWfB/aCpQ1dNo8XQHuXS
OPJyDs35yqbO1RGgiJUBD8MNKGRaEAmgR4VmhGWJbQEQ3EHyMobtB+eQd2QgC830fVVKQ3rchx3x
o8G2rZ0UvSFdg0hTKwQDD7hi0Lb0Eaa0cgBOrlrRoGqlJK+U1ysFTRoETZYRlEW+AXZEiOplonlx
VAA336FSxUD0AZBTbwzyU0LABKhzSvKBIpRuH3UMiNIafhe8tEIJwJTkAFW4FmOjKC9vjQF0sGQ7
gEtpVjVZW4BRAwQdKrMpt45S67JVsIjIy3WSfBceRdst+4EzWjFygFUQ1iDYKQLowIdVOCjuEAlC
ccUIi3NigXOyInW5Nf9CIdxnXTO9DRz2SPEbAfz+6JMBk9O7FocXFyQ4StVh+Agof+CArfUSOiCk
UKxu5rClWoKUR4+A2fjT4HII13CtQHaqozS4bY38vOcg1yPr2ZqlrgCkA63EBBAUqVnD1Qbk+BiQ
Enqk/yOyCvT/MLBlCfMNc4Dh1LW6KQBYQAqB3BsHyaJuGECQmlwMwCa2HS4eRBi+cxyevICbAGHs
HcDLeowRuq5a9zIX5MJnKb9pS/2Lhh6g4NQ9Gag2EhDt0kIahHZZfyPBw04iMCA2vQCpFsqtJyBd
4pGBQKdvAMhOgZoo0cKKAO6ticteLddGRStWClABkaJSQCEmX12i/Rn7QDiuRI5zEC4AkUmuxUek
jWjs/ArY8yJiCIDYJKEDGwIsBwIsg7R2ZAaAyg+5QnzEtqILVbV2TXomyK8IgyCIDqNN3QrM7bf9
XAA5SXC+5JJpRqX9XBFyrnoBwIfldNiSDQNESadb9BUAGPUW6PwU6vBbJvTQYv71DtCIB0wl60FA
7DqusCDfLpD8lD1L40hZElAxLhQqFtK4GIwtoFvQPQF6GgyMJ5fYVcJCgmgPiCMKFnl6/3UAoKTA
nGmHIlKJU3jDgDAAgd1POTSMdGIGgLowqwGpLBpcwC4dIAo8QFXWO4lJyN7oOcAYN/hmSdRuyQrX
wKkE8G2Etrz1UN9CijxsOqq2dxi6gf0cDKmpCH6lXkNdEJhckW9WvIZAgQFFWqbBX0QEKUPN/VCv
kwLH3SQwgtDU9bgCW8CMcd/y7AZA0ofd22K+4QVWEvJZxDmdB1KJbHuCXK4EipGlxjCdArbLStfi
UEuATuq6yU5FcQAH6Aybm0nxNHRw1k0CtmQjAJbpHgP+DvLS6secqAUGxUsUrRc150YDxN26BggM
ulcUNUq22g0H4GtDh4t6YUsaqRHpJfpFIL/BJh8JLgm0mOnwORv044ZWmlYznz62ALC7YRCIBakC
gV4PK9o0JIpqYnJi7w1REEVRrbwTreAU+KGSg1wW7BuVUrtmASBIjxMsIdYjd2u2DyD7MO2a5g6U
IGGpBOChGVzUJcuGcboGuAMdpF3VeSb0JsAHNqYRY1nAdewNbPsmUOpOdxBrlzDvN7AdvXJwB67j
YJoFTuC3HVIkU0of5fMVClck5EUptlx+cgJdg06gnHUYcZco+di5Z0rAkRZ2slU52QHoW/LQdwqN
gRoVqBWbxJVHlOm/7emYVBIoI2SzWhmAQVUVPUoFKlyKrR0gIKYKRmByO65GYen3J0C/P4FjpZRX
Aj/vZA+Uk4V+rDRIvcSOPIA2g9OQGsOj2tqmcgLCMliEhfeQytevWzBtO5cCJMW6AbkpMboF5LDB
IqqTaFKdfNBkQLgXTQKgdw0d1k2IzqfXLMRhU5zCi5qhHVDUZtssTsiRHjsRQhNr0j4oxBxQPY4X
FdfgWalea1TgrGHhqupbVfACJLwF7Ewc9TGoRldPyBoStBYsLTrw5oILkSe3R/3xgnzjzjRLLRzA
JQbAHY1FHgCOF4gOGEM/oI171+pnD3oPWA2Sv/GjgZ+p2x3awY4NDSI86sykafOBjlYWLoEMYoT3
jSbrAnRZLwhq26phhScAqEa1cxRSwKzuNIKBLG5nZWDTcQdroByFWLtKLSdseTPYRoIPhAXd0OPM
pIHItHNMV485DAOKXAvcRnVylcCuSbZzWYMGKRUKwwSulcBzF4J/CNqCSs3kzud6fJCq6nsMTkyB
CGDqug5nVFGpnVfhoowHtkkMwFti79aiUxAzpJ4Aj7xqiFB0Aw56IS9POQTEGxisW8waMriYx7pG
j2LUl9moulM447Ngu0yDiajQvAerNYJJDQYbrZOMQ5nToaCfiHTPxF1Il0CnMJJagFeoYAeFSIME
XfV6C32rASJKHaO/56phYKp7TgNndQD6NugeJ00MihctqbML7VH0tqkToG9a0eO4xyAdTHLYIXWj
N77oAPzgrkdIlsLvrSwiPyUQDtBpnG71VgJ8s2JMUTU1CJpCFZVANTcBgfnWqAZT1wBCDOF1V9hm
AnvRip0XlCpZIVFCNasOBuCBdxx65sJ7o2vZDXhyg4FcV8XWKk/wNKKk2Mb4BIno+3rVp41UP8Gs
YCdavVwFYtgiyhMq/he40wNU2UY0uoJ0sHh0aBIqQOpj4KawxH69Bvq9sto8kFTvA6q/hhVPgYIN
MJeuY8/Y4Kyx7lTXBCZBUGe5CoVEokZEKcE1l+xwXsw1mxODRhzOYIr+0MK3BpIwqPCcomEG6Q5n
GzDRALhGJFdSWvVlQhDgZxkF+snh2Ehq1eo5A3Kgypg63zO5zArmQOth/1yiZUCJVmsWk+xA2aSo
169H4XSQs45aYUgMsNA+GpWymVABDroz9GsMcQsCAunQK1BKbfEwEB+sMRK7CQTBhVJ9q34E1Ppr
dJ9jowFQNO8GRmFH796hHLkWdCabrUVUGsCP1mDmCEqZat0hFC8GUyABx/pdedaXBSWuDo+0gIR1
Dft3RJ4+QMPWgIHaAPQAbTCu1bAFYGlGgM5TKTIA1ABCaYiCMmyjEoCH0ZaJ9bAfEGNt08cGrR6V
xL+MkH1rGnMe0BQQ21lGI0ycWoWKgnVBtDcVxjrq/6HW7bY3NhYEU9KiFgMSj1IaRKO4QILQV67L
wsTG9wR5Tt1j4jgq1dd9s/kTyA8L1Uxsg/hTaInGLWhcFaFtz1zMhe4ObscgG20ZesCXZEtBMnsD
NeXkIthMBEZl4Bysn1swgd/uDWjsk/r/WVAMrRgHZ6lBBNfaQcfbQtPjbNciWw7gdjHdn6ZYBbmD
Gg1b0HBSg1ED7lIeeiOAlJkAecY0AxB4N63uxBCw1c4izoiF2shZ3eplAZwEw3miWZ8AU61Kb3LD
dYFjqC2lg20rbAUIV7TodctSg8ChoLdWtSgoSxACDgAILvShMYSl73XVNYsFvoAb26vWwC6EUqsV
+DgU2w0vh1cmrsQPt3KiQeeoVvoJDVm3FEPcxjuwk4ZSQqO5BxonlE1Xb06ZW1seIam4MWZ9wKVO
ypihpYQB0UShtvQJqQYsV0ozrTH9UU5a94qp8QoDvBDUDOktrk2t7Tvb8EYlQASkrDuF6bgtmofn
D7vZlw34wcg3itEtcMCdbpXJAri6AYSGXi2oPTE3N5wQXBC+DzFvA/Ffy4z7nVwMEJw62+YtALzb
lFOZ9TYND1xo6wzuOQsbHmrd6p7H62BNM1fb6Xg+4ulRn141sD3CEhEYgaE9UzyT87rABWZh2OW4
AJCqxVONqEGxlepbExQBXqYHlKZ0sFLL9YijCJWR3/KhkVyVYOqEVJqx9Yu1RvcS5pQ7eF6D6FvD
BEH9uzAW9AkWkMwkVvCL3rw1uBpCg0xBLOABGHbfVb0bOfVyBn2bNCaSOtwyFk6iyvQtcLnWsdq2
0SKoKxa0SXtfVMVpVKUKO92muBTci26lTCruAWg+Ik1rAg0wdkqhpvQag9DaNX8a4DYK4B8zPKhA
EQms2uxh1XtP9qzUJbmqGNTdDFD59y0Z1xIIS0wugYZI64YYenvaKOfQSKobNPfH9lyJ7xwZg4xD
D5v7DHjkpG2RdwXgAgja+U9s5oN20HAU/WZttbANeGXKtuAXECpp63Drbgn7IYn6gFA6fRfNQOT6
YSxANGiza+rFBHOiGHjBqsfJIdzdoGept6kGEE2373Bbedg6W9sVT8+sCVTIrbGNRJ5Bsemqfcd2
vBwKLE2PUQhU769705zQCei3g2mFhwAF7kyrjR3oK2+EYjs0zt2+HWh61aOa+5jcR3aHw69zd0jU
zULjYgA0iNAMHS4J69F59cbi4TUd7O4gqwo4qiI8R4s0Bg7xmtl2agFTDGmd6bbKJnWVGECGnRuJ
vQDvHTB3A/JjBwi89JQAW6MVDKjmUGvcV97tQEu3TgG6TeKPgM44w9CqnNCAKu34XLPBnHzdKc7/
ztkw8Mu9wONve1y338GRawJx4LjJ5XnDwO86ieqhFhgB8PmJ7amTXwQYYSY0gvjiMBVQp9nbVhM+
B5Idg2o1+wIostDN8lRQZylkK2UsgAWglX9b5k2jrlabZgUFcAgNl4fMdwR0eO+bdxtIqhZ4+iYi
xg99s0mlAvgiDR26ikcJK8d1h0t9EAXF9M0R0YCK18PJOz30j3rTgQATj0SUhGsUY1u7MVwAWbSK
afKVeJ4K8Dwd7wUnYwu4EOuehZusKyAFiM622i3uIdOcIsFuM447pfeBChYGMfEkdBSGXiLCpoRs
82FANKfcMQZgwcQXFmHjRWWcOOAXWN2YWd83x9I63WiWiTqBaAtblg24PsE4VOOkcfMVZ1pTuWJZ
LxpF2eHaddgsU5s6OBBhTtATqte46yJC/zUdQmwqDdOHVtbDrNNUlanVYOydE42GVrIDsbKQTKyc
rT5QMrL+5rOLCOB0iwiYPRZRKZB8a6hbdC9Bx7NItQUwzoAr+OBwKelaniHQKUUjb1OdJQDK0XDx
eA+7/vZaVFHhvGEgEND1WHOuRkakZm4McO4FAXgoxrTmTYCenkKjntIQcPOhIi7BgxnnHrbgDoXf
AP5RAk0Tt7hawIJxtt5zx/NQ/OMrJsm6IA72yBwkqO1IWUgQrFnNzzpKrQUAeK8kClrCaQEuX9ej
zuMSmmhF20VuUi2p3y0A7+VzQ7ZBY+ZVx64a3AeOTAzNojxgsGyr67ow4MBXg+CrTVERQms0CgQs
btXCxprp1RFa2AkD8taJjIJGqHGThGe9Athlg2pxqgEjRPMEnqQM0bRSOOyoh50sevLDQSFru7UA
oNjeyNYoBVBcUvQcIQ3AlwFPqM3xgKssUH9+3Ym+mXAHOZeuCSkYAJLifnIG9h43PeJUx2QkcI06
gwnZyPA52jtEV7I9yf+GrXF60QTtgGtG9428/ewEI/69RO0HLU66uF5gGwLLGruO1QlzxgYxBVYH
1q89JNTDrzm8CHWKwWVfFhsu1yMvGgfG0q1+WW48cJBC6BvFEggetVIhXp2DZsf1quEKg2lPRQZh
w2zDcxCkRkWkkeQF5wlgHyNACaBIo1Mt+ARYLWMYjkDWBoCV0Vtg5mE1zmDQxbC4vtq5HlPI4WAu
zUxQi022IBFbdEjvS1g+qgsqNkEfSDAOfloPjQ6Logc3smv36ALVHRbO6egx7UetsuVqW+cAOHm0
Sm1TsBvH+AIIXVk8q3RAriBupmlg4yVruS6HOWkN3F8qKKFt05qXbOHMConi6h7We/W6wzN8YcZ7
qI8yT6MFAYrAjuqcfN8ONh0QreahoLVEb1p1vqjzqBwaXjdoOiAN5vChYcl20HxHjI6/i3KwQ2sg
FrgQXdcoqROgpm5oNYgFY607g+bfRpgcCIiD5FgLwzLnBIrpBsyYMT2mow2wZtToZoUWkC9aPdlV
szIwIeboIK5aaQTsFa4lNzczNm6CM7mlACzRFAiD4N80I0oFoFCjkL0QOBOnm9XzBsTgFnJ6LW7d
bASi9MLcpRZuaKQIBuCUOMA0CsRF4JIYyzTUzX4BiKukZB2aFJMB0qMwrewCiMnksCrS2lxLwLXv
2Exn9guAdEvHtFhYZsICkum6jVKlUw1AmCg3S1T1CdCitBivpoxQBYwj96qkVy0uCaBqDgq3SAA1
/97gDZiEh5pkF07NJq6SeB5s8cuF2RnCbzdm/wqwXwlxAK6FUnjqJWRB9x3uKQTLGqxoovQIpO9a
AXTMS/cgFz9gJwPBJcqi0WcapoSkQqO1k04A7o3UreaOaKgHgQ6C669lfcQEqoNRhD7ShT9q8wYA
fhi4XgshGgdCXvcIE0dJIqanLMDAuo/QAcRDWNzQCIEtiq29WdrDgrZwTiGm6JwHA1w22+Hpwehu
K9tKMksARUqpUTe9JYcHaCO2b/XQR3gRVahdvQMhAPeEYkY2L8ELyISZMvm5CeZhAZDWqlW1CuIm
0qWtRNwXSh3wSEWHLP4A2+X0fd9iFQMw1A2tSSTAikCuTRx4AFiqbF+L6bXx4LgeDBmKwTVg5nYS
2y+LOvAPdZM/1fkC5MUaphNfqukAT67H3NVp63BUnVZYwKBjx6TV0yRaNCZBPTXiDpRmOIemv4tG
WmXgMZRE4OgBgUMzkUduXgjq+ZzBaAQCUbQymIQmIAdCGqZCYUmOAHosa3DzwAHQMqBvYXSiAzx/
0T/D8AQET9mav4lGxXVctiF32QGOYadbXEeQClOt4gpQ19ENtoWLAnM5dOykm7mSEgQ/eniGKwQa
D1g0wNJi3F4ajtLWwLyYKl/SrAYpfwebKyN11MGhmakGE2QahMBpXoOgENtzO730HwTFAg6NNYpJ
YmB4eraDoEZgV4+G0sXebCAV1bd6HoIarY6OAC7h1BnfQ1vVo6kBEse1dLTDpkQrgUYAr1LNOeZA
BTmUf5vm8CKii6YcNKbPsAHMJgXIABIWBtBMybYiL8aIKF/RJE+gW6Vla7gP4pFJwc/1lnhwlRUt
VQLSFaZz/DiOJOGo+7ep8teocwLK/qVjgrulxSVwLwyXE8tkQ1CyOqAWUlPbLNRHWzeADAtUvxta
BZA9msLeAzGzcMi1ZEcXZpcM5GgkcuATlxiVJajWNCUQiw/c7ciEQ8AsbbCYISCsNedS5UbxqL+E
ajViNeCsnag6GAs9FMWXHa7bRHdrgD6ohUCbNLJKOqHn3ANt1Dfb8juw2z1zsxbsA0RpkJFgMfyu
Gzlb2ClBk7lX2xnoONMtnWpScYGdZkl7pIcUao+M0uyRjIu6wnXIdgwwx9PbBmsPnbQ1GjeXMHBa
hsAd1nrYy1oyrZQypgg6lXUGQ3sCYRgF76VGGEfDtClnkJlHiqBUaVsz5ToEh8IE/QBbSPXrNjuO
RByArtO30ANhwRsTCx9LCraZCuD4O8dHZ9N8NOAMaolUoIAyooouqpuDkngg1eBa8TtQYxZB3nkg
FfIvOpINE0U2bEH4ABeDzbIviQbQlNnoFsAHEr96Na99MzANzsvQAjcghMkZs+70vomNAQO5gwCf
RO2NvbAMuLPbBAajd3dcV9HJ8qF2ep1qolWgqI1SNSvqTELcx+H+VyhJ4tbMBrUKEoEjalHRTRwb
BEy1lYjAouCcJsV208hRNcDYdIc6KincRFs3mkJDANtI0Wp0JlDPlsZUaA2HgXWtmRfxegBiGrnZ
lZKfiBACLgoeSTBgQoizTDYul8SB9kDURZLV1kQOPD3IVmsiA9oMsPPIcrESIC0Nz4yHRgkup5tD
KEE5uWbTY0tDElQI4yzqKBXpzSgMsc3WZaApoOufoBAhaZcKTw4WKPHAkuAXLQGajA621QGgRyV9
DutGr6BARyq2Q9LMVUOcRIko5T0eLeYsZpsZOLFkDYu7OrwMbppwuJGJhrDjgDBii/tK2cb4+R6O
AHWiNfdUaAAHEaC32ioJ4W+m15jj51AOpdONvpsODgBBc1On/oAApOgMRuA6BAkp1RrqBiSl7xpx
K5iO09nWQHIQMRczOKoPA5yAzvYuZ0JEVEfD5tzFkK+aSkIbZvWAB2GAsFdzo/vU1DMf9YNqzo3y
nwVIZu0JHGBcCm2YLyspZEgitbSdSrUTo5Roerx6wuVA1FvpUA1XzDKCwfeqx5RljVx71a26d24v
iAYUDdPKcIJyk85Ytt/prM8A7NlJ3Pesb3V+63sFihQtFhlpBW5va1Alg+kstp2I8WCkxkENCpsH
8t4BtdBbJir4ZeUwDQplhTVlY24ybhKOWSjogbUme7A9iKVZfENN9gJSgMTVekqNWKHzstUvaTCI
KjjAnFtvHTMFMKdiAA5JILFog+Q2EAOpxvW4320+BfCvtOOI+Vmfg/YkfYd1KuwIZmnHbdJNhtZW
AQxVCr7LVCz0BJ5Ob3H1McynKIXxV4tQYyFbTOkONFqSmnfvQk+wfaMnGOrpm5IiiKgytAZOgum3
tEv5lpCqINW6+OXt/EOMD8legckDC1yO8XLZ8G0lSFlKJZ4BqGD3U615L3XKcwC8XmtAbG3UDGlh
QcQfO9qgiSaiQaIAFEvZtZpCAuVAyxn6NQk5VgyhC16HI7Negv0VhW6lwxSA1bRhKAFZ1BERTjIk
iHnPQMNVbcAYlgiJgb5HVjFo+ypHASit9RFNsdsJbNHS9YCziAN9CRtJxGI+B4r5DLIDAqIEVEC3
VLLFX0Ej620bKACRWMf1Kp+tJ+Bq9qoxYhTEIh1MrkRsBRAKugZ2Caex2F403ts7gYBR4BgORp7A
jma5wMyOgzNK+25oDqEBKThYSC6xU96t59+oTcQOqpykxVg1olFYVsCXcABsN5sKKxj2qBmnQC23
Fe55rdiwM88RAI6W1S26pgKArzW4wSNsjiNtq39TB0BXiYZxwZG0CnWXF7hHr+1EM4kGXpqiSjXv
yCDSuxErrbD6ZEDdbk2nBmarb7lVQoO8n5Woz7eDdEfX25ZkS8CrsgJzoFGLLt23J1sDPq/sW7An
qpmRCreBHjC8oIxxqERBYdqLMg7NqpNoRJ439QKPXhtgC+vWPFqUsluXi26bYgCjR2nnJPAg/j/g
zJjVL1dGv4MCg66pviXgyxuLZUXCjJvWuPkVKp/UHQs6LkYTWA7FtSuwaG6l98DhqAYLHWFnTUOX
aeCdGG6G49yBGdjo4Ykp6MBBMBb3dkRaVPelbCu1SeCAIK+XLRzGAgiJpn9WuaNlYj0Qz06C8vHY
pwxkUJyravAUWDvU3lbSiZvbMtNk5AFIqhTuo4yGmLu1fG+gK1AftnaJKgVHgLe3bgKyVkQQr1MK
0FujgIPiAq1a1CIFXAyDiEkx5ABZhPX4k21JHcgD0CLVTZ2UxI0WCy90Q+tBwYq0fYsx0EpzkfBy
6lAj64N6HCCyCcTOsTBf5YhbuJ0MHtObgLgoBtCIOZJjwYEPBre/gvS/vmNajS/8cZBWdT2oJhG4
8keuNakrgScFgSeNeVSwglvbOh4dsbKuwf725triwAMyguR6mMq2ww4Af1jSXk6hAxlTCKDsYUf6
XjtMRkK1gLblVaESYd0ROYndqzbmwwJmTN8IPBBcZqRr9VMGHEnbN2duosZyolVUDWwmRPmWaXEI
jm720wBFp5Syt210IPFcp0E1x63tEbNUNEqmkBbWplHpBfs2WqVBtwJcOOqjNYQ6pVoaYHidRCFq
SL4DHN6plpSDSnRb5mNlBf0B7EjZoniAG2IGNpeLJrho0UJVkRK1ctXEw25zWyDSE4YpbljSasDD
IVBChXNtYAWkHQwuiVYIpdOuRzWnAzzl3vagBazbwVb8LGcsWw4QzZP+ZCUxJHPsQSOmTmD2EgT+
NeEYxuELYksMAVACO3RyJm2BhuVk1kMUUbO5VQ31P1jXoA6DUpbOtEZhafCwbSKzoJmIsIjbH6kK
aDiHYhxhhYdcKNVzd2tpmQ5ygatEy3ZcDihFcNC5mSMeYOelxENCBxhda4Or4lCjS385OS8hc76A
Ejft+mRwvaRg5k3M9fco9LAAiZa40WORNnYVAwBLKHtcTK6xP2qExZM+W612VDHhtD6FAdB4hsYE
Xwhmm8aUUoc4YxBNwXNZJesJzwgpoCwPuHMLImzVIfA0YwPNoeoQCVPDkXpa9Q3FLVHDdNarShsF
+0/13Fi8bKeBIhlWyGa3PiJQtTkINMvcoio2LUgvjTIwXbJKwGWnb833+ZWoid2qpREzmBpof9Eo
/AAzKzvHlZPN6lsj9o1GE6ViWgxQIbtVHYPcZOhBtCOHZn8IkJGTXfOrgdHSPepnF7sbo9C2w6Rb
GF9Kh7pMwhumlOBMXrphiHujBtfsFg/apwjYkbSHsWmvYNP0pXYCdfTIliNyh0Wlig7knYXqWoUj
IDmnG9PPIDlca9PyFcDsjMFhngFqE6EHg/MmAqEommDwIYTSW60G/FnYXzmmPl7gpFKJRr+DppEO
TowTmEzoHRQLnYyYUwRH3TXCAIEaHQ9cNjTbXtDbYhiwjA6I6+sjiB5RaQy0oHYYcE4STge0asB9
VAzSxYZlOCyTyVF/DM4EZWgApCXXAwLUJmIEqVjXIleDzjOy1YhQgJaVQg1YSBW0A8rgjtpvMMim
EwI39Q8SthTpuka1CnQ2BofqNR0MmNwAhwBbGDA5DZveWFiO5YxBt9rCb3brYeSKDu0A/BnZDys2
ysYpBAXrBemz3hzBgoR7L1sThBAXHLaUcDixJlpwGQjpi0HmNT5332xt5LRogTgCFLCtYZihGAEH
L6WA7k2wWiDcNIND6jsAKQNAExRToDJT40C3Nhq5bKOuHsMYKxrkquYODnyySEIFbiXhjGyEW2Bo
XecknupiEPXSdPW60JngawHBF0F8UXmCL+77VskZQKF1ad23pE3A3eGvxAJVDcATbLEDBsDEFq2c
sQDQuzB9K9WigSNI4ICywi73pgFzCCx2AxH6brsO6xGUK7HStKoqQapDsO5r9ojAR8Mxaq6dpe+x
3elxTQyJD4NK0315L0FOTnGzGzLsDwSld6gwJESHoGu6bXS5h2O51snX7dR4AHf1DpXma8jbNEqB
b5Z4YF4nFEIxHAaNelEflZqOGaZelUU5Xwdzvm5oUT6FAd6Yk62RKMCjkYNgbqX7Q2GXpOtBdOQa
iQLb0CSgu1bRwG+opPYR3mKtwqI5wEhWc/XJGdFELWBbnVHAuHrRaVy0BDkJlp1KG8ekNrwpoVDz
AzwCQaNZ9Qtwjyb0mdbwY0C7J+n1CgukhzWBPTuqwzSnrOpOq2a/dFBEz2Bcc1goQVhoQUeV2MAG
pKWsbBkrBYyVdaAyzkKmkDQIE4z6E1R1DD1zNRZKASpt5vI6c0IMEJEHJJspjAaNkmhbSFWZsjHF
o8BwsF2mFiI0MNIUbiF05MQ0so36iCfKWeBoWeMsBnsQlaMXDSYGymJqaqpVBSmCppqZ0E1a3g0A
WWuyNUE5S+eaQ+BBYslwfWOXmw0KKbVroEUDcE9EvW1dzM6DgtVethuoofQfN8FdhP6bgHMIOzlq
PL/LkG4csRGI2D4N8P1VQqXSwrLR1sKpbUbnv4c17ofb9Xx+2d/u8bHlv+5evh6P6+VeXVHGGGLS
y66Q95f9/XTYLcvwj8+umit0zO2R/tfH0/fd+/V2+ut6eezP1VXCb84VCFIkJ2LqrxKe/j7eHqcD
fFYtz5LILTy7f7lfz1+PETwr8u9Ox1ns5u5w29/fd9fL7ja++offwT7KvI8Zy7r69389X3/syJLX
j5fTZf84wWOZS3TDcsF0SpPsfF7n43S/7z6uX/fxw//K7ni671/O4xG8YV4yhmBmgq7SkuP38fLY
nV5v+49xd7lOL3y6vPELzho+LCjCenG599PxOF7mlVZbKcEX5w0kU7nz86fL6XHan3ef1/spbB74
0PxeEYDpVyt9jrdD+NjP/fHoPzC9GfjM8mTlLGBpv5+5JLOTGl4oNN8QQqxeyd8R/0b7xncNRCaW
q5qvfpDTeXf8ix38pfOLgg/T5dW3q5eaFmjtj81fR4KHvMzxtn/bPd6/Pl52P06P9915f3sb2283
x3FuchhtW7rACeTFYhpdl7fz8HV/XD9+Y7ksYdHkpeU2qzyChOwO4/kMlsr6N4ATkkrGzutRLxq7
l4fftF8jkrA+v1DOgjZu9u7H+ziCV5tZ11Fs42CPThV3nFypW/yVe3jP6xc4VaNrL3o+3R8v15+/
ryXJGwYET2i3vlg/LuFLb+PlON7G5sG6rrxia9Ux7eLhfDr8uTtex7vf0Mfu5fx1e0Kg88sSBIns
4f4W7tq4f/jLG2+KPyz/L5+4go5cQbE6/iiD03vfkq1oSfdQU3j5RZd/Cm9894t+7k9PvKMqBb2D
9gxsYxb1iNYYPaxWervtj6dnFFeWxUDpCnYiLOTf4OYXO30+FmfK/3M86NvXZffqL6TfzbePIO+c
a7HUv0a3RCxsyLD27v745Y9k7+93PBWwiMuLRJqfv4BkmfRe+6/j6epl8fD1wYlfeiG3rBUi4iHp
rNPFL/VIr3T36gB+Uld4aVNrmx+ny9GrUG9ybrewNf7/nbzflaT4ejsfGX82faDJS2Ywg+zS4/qZ
dsn/wPkXWCh7gUGjGrHdpyf2e/IcEhP0P/yD267yef56O12e2e4hH52MKdbwH4t6CmsFadqHvffX
CCyk8xZl3kO5hNduYAFVOzb6UU9vchaAUHE8EZPpSqePvbftT+xOTwSbeERtYZLg9fLpkUCUvt73
03F85q64VVyQdNXH6Wdwq/b3kdwX8I3VReYf343nMf7n/vv+lJR0WxbMUF4Xvbou8Y28p/x9fz4d
93zkszCf4ko5b38/fXyen/w6Uy6gk/LcHw7j/X56OZ1Pj1/xwfP4xolnVEO1MP583UfPfDJbX5/h
Y+67/c/HbRy5pejo+ECvmoLz/e20300Oy7LQ+Xwc7z4IOO45JR4WdDUQ6nA9e6n8wTl14W5Up8zG
9zi8j4c/g6cT/2Fkt6WKx6RgdH+8Rmt0HP2d9e7mZfyBJTqoRNLwNdve+EZe9PynjMeXX7vgDt/8
DfH7s/xfWCClOlgiGN7rhDnsHqeHlyW4CmW9hNL0Pi2T/Gb/Io/b9Ve4cqwdj9PmSGmhfxVjqx/n
b9av6FWdLuw3mXKXkvwk19G7d1/ev/M+/fiT3WbasW598v6bdt5BCSoWgjKTlt7WaSbV+rH/TL6h
V5Sn23jw+sN7jHiHKG3bLet9jEf/WpMW4u8UBWKH+Dbd5Lh+f/Oe1vXrc9Fk8b3iqfMbVAVI4waF
zeG3JItbYBkYuYQN7CMkZyDCb4np/vJSjwVe10DluNj+8Dh9H7NCwadRrWU67L3OvgeRj4bKRz27
/eUY94TVMlXm1cU/6XXcnsSe00X8OrUPu8rPDLt8eowf+GiHav7xdPn8mr2C/Zn95b7a74Z8QnAE
vOL9+pj35UdDKUg6iCX0vxnkpL1jlOZlP60+GYbj6TurO6tTCNLTl+vr6RZC1+MvXj1lkQ+OzvRp
XoskdRAvDbVR3iP30sgup6u041PQTZf9eefj+j/9Fh3er7c7i0STujiChhRq2/sUd/8q3g/zp/eG
zk5XOdSltUNKsy+Uk0jB3Hl/efuKQvN43E4vHIgbvoVohhASdsRUHke/Kx+niAAsOiagHpd01wNs
cUdm09RYXJfr4f10Pnq7MF8o3oMgBa4iuFzCuQWeTsZoPizvV8Y9x7pD1PoQTgfkr/xbdOD9F/r7
ev/cH9hdW3Wx1+sLx38RKUiJuX9hiQ73m/EVY3n/n0Fl3Pk0ds19uF4SsPLu7/jZB+G820AmzgbV
TmQuXoD71+fnNWAT4YD5l7DlKpO6i5Ix2zS4AMksE/kgl5n9gKEm9NnCJz+1Df6Ek6xmt+M7ZEQE
2RFVZYp7GTh93k93eHVt9eqnDUwa++I9uLPfjIeXR3aZ+uTISR3FA4gm9spuJ6FiCL2Iw+X6OL2e
DhFD3AUjNl6QTHXViRLHkxeDe0AhvTY8nL+O0S9tRQ6kPjudcdrTj8/Hr8kYtn0lW21j9pgixUkr
8p9DblgsZdZTOBSUxauPf+4ve3/THlf8Euth3P1ivYJaj+r0NqardvdXBp6SqM9lDf/rXfwz3zkv
dae3y/UGwiNy4HbJ8Ez3//6IPsLstrC3v0phnByxsENxg+YcCM8vIT6TjX8G4vm8noJCfUKzE0Jl
iD0mjUD9gigxTYPT16qh4i9HIxhthDc6XsmwslslrRy/Ps/hLvmvCcYvxp/sWxAKHtGLXqvH3z7d
G6drq1V0Id6Id4cXeVtrLp+1avJsnjqNrhYvxwxFgEaScN35SX41V5iRLHaRfJJJExC3KqnV+6RE
9i9AqdXeZB0P+AVvIZS8AFMnCNEuRtlmJRb7nylQvr78LUSl2I2p1qWG/7Hx6uTvXz6wPbY9P0KL
jVKWPesYEid95BdKvrYXPuBUV6k3s4/f8O9t4d+LVZDJqh9RcwGWrPJyxiHt8Ho9fMV/z24ocej1
woGYvNtoAPeLep3EJq7JO1imFgkmdTSeP/mNLA0xcUYgP0EkD4z48XrWot6fS8ni0+ULpAPDpa1W
fx39Zz8IljihSgFMPOx9gMKqQXL/wsKTiYnOenQyg4j6aPtXSFntXs7XcKWR0GtOTJZYkK+DqU0f
Koyw93DWkS2Oj3W1C1mBVPFgjKsZmfjsNWEX6GtktU45OaznU4Davu/PX/xmmPLHdYEYPhouCOVT
hr2U02amxOixELSsHp+wGLQVRqSvGKqvP16u/qhY/7fW+iTFq5My5Gm1NTJbOsXr25vfksmLbrub
utr4dtGm8RrGdIxX8j95sbI1wxm9IG8prvtj8UL7nzC8IjUEUw9jImmLHYWiSojthAq0virThQlo
xVOHbap1i4ujwfL36n0DY7AXvbPZ4gUvaXqnZ0TPVL3htEDc59sX2iISPQWlZ4b14wt0wi/R1Tyv
jwC/tEFH0s92WKDdWRMhNdTX1OJCWgru5hgcVRIFPnW41QEu373XGjak6YDTVEs+jAS2z0ad3wtR
Y2zfx8PXbYx24vU0eud7duB4ZSRZYGLlFEC709VW+TzvH14RfOwu3pzyDoSsuTcpmP9xvf15n01W
wAcevz6BfApb6yQeP2bKdLKmZtUiyK0lO0Xkj/dxf3zuqmlRO93FP0M4MinWo9nJxYWY8kzJkzhd
SlP0lOAW12GyBREOS5DyrHrnFO15hODOYGpWPmKNYevnxRLuyPpkumbbwn4HhReoaayDTJrIkLRe
Ch13Edy8NW8j6RtKEL7JtO6PLNthyq9Pj4ZAw02P0vR2SsIG+tMNKTiCoASTaEnyNeV7XlIeKkD/
n1/8OnWgb/tCH96Xuf3yhuji7RFSvcRjUTJ2bJsRvDL97vXF8V4oUlZmsisT0G6XzszHlSEOS9TA
xgXrqo2fE5w/ceJmtywFeMCvMtUJT4nBw+9yteImWMF7W++aarxdZMVTytSf0QsEuGn9eOAODXby
pG73h783jzkVvXv4yPYe9fFTCQRX9TULIZoieO9Mh/iIV67EOVtCvZlONsfeUzxwujyu0798Dn8Z
am5k0Ij7U0hJRTmPkd1zLhI9l6zLFuc2vfUp0qcDkzE6u5evcES8JciC6iIiuaRfA2v1+zjhvA1p
X8F1k004/m1/SLgMCXvTh3oxnN/1dX86e7+AVWDlRaJx0vUCWMnRa3Y1vZm+KFgUVt+62uVZHGMW
RHXVmHAOyjZhdkQgn7LXotoo9f55ukzXEcaaQqpa3eGkFl/2ga11PP0FVSJpMRXH0LvVVu4IxMGu
YUtshDr4H9cj8W8xUUbXMOYJXsY0LVedX/l5vd7Ov0JY+BGOaXHZ+ePQbLKKMjIallCu+CxdwSEf
L1NdxmMP8iPrcaD9Bm9/T0yo8/kJn78G1S6K2b9LKwYyssb4SQd8T5AGCHEpfhCvTyfnqOPytYvU
jYYaUjUPm9AvvLuFXoDECcHLFS4j9uEOP8bmBkhXm5uQ3mAmrYcXaQh4X4Mfw2u8XL+8D8P//CoG
FetAYZaJECjcW2kuWQsgJ/i/MLXBjCVry6IyphbjbimN7MtU2xDH5732PMarNmtnPp9RDh2bL//Z
G6n36/kIjKTYzgyY/cvxltihARM6jq/eqIdnP5DFDBpjmbEUuTSx5qPTs7mIi92/Xvwz16/bYaJ6
hOhyggPu/LpzymcowrM377dNeVKvZv1bJp5bJCnfT3+N4D1tfs84GNz/Tdf6sv9+ekv6+sf7KcKW
r4GCFgIi/wHgHWczOUxolqW2JO5pYof+H8E9So4CWMwtixEEeP7giI0fvVicQu1j2k6wllnWCsn8
YSIDH+53+YeITzy6vlOd2B20ELvvj93H7e2y67rdS3XRYOTmagM3EXsmn82vY3YHY8Swe7kdvdTs
/Kojt4qcYoCoVPKUp0cXRrupnQ+/9p9ey3cWvMjkpEk3Kef5RYyQ4YOk2k1eeTDj8JMmoE6WhTUP
ry9tJ3cvx8iYeD17J/nHTsrdkVvITJY8LkTyVf6btP+qe+DPeKvsRdX/N/Z15l7EcqqTnEOd6uuI
DrzOZJDnhSa6w6Mb0lFJs3s9P37c9p9we+ZONctGy9WJm90pHjlcRJOPUvld/FnJhcMrJNgVSSQm
ewb5Lfokd4/wGnte7siW2MXXCnLnX8OJ3euPY6D33MOt94f0yi00u+LrTakekhHgkGwWvhhTKVZm
0O4MtjzqvDs67E7nQlXtJdxKyX+UnKL85aPQRVAGfBQ9bU1O2/obfTBWJiqc91+i0OwYoCp+WD6w
6JpOBya6rvdKS+/Ol13wLv3rHdEyIu8yaYL/EP7cg7LwN3f38nYbP73O8RsGVjIdkcPW7dRoj0ze
oxhkmuXIVDwy6V2AoI1vUVvwMj3Pk1nJtP8ur0qlik+8ejMUMszhroeqIu/Te0s5hThdJ6KrsF47
IqKTRgtbH0yx7OXUiODwZ4BMvHD6yPwWkMyDX6hn1pmn/aR1Fn0/dwLYXWIpf3RdQo3l0bt2XSeZ
xeYYPyxGCgL2gdAcOE/+Ucu9x5RUCY8qHX1qNXFIbqmawB/d6ZCrgLrU7re2NbMgxE+KPamoe+oN
WHQlEtKyP4PvmZtPxpUyIPaxv4WStv3n5/nkbaF3dfj91VPeOG6JXlyQFJcXm/s+nt7ewxYN3BbZ
1e6q9lEJbr/FXBmlCmA+Pbassmx2J7gtmoC3eR1CKomZz8BOI2Ko2WWIOA/xj6F8hu0ucWempSk3
3IFdWlbjPm/OUqfge1G867ead9twL6VcKUimfKntC3HyJJyunRt7SxQnAIvZjj0BI70vydP16zHh
K6Fs6zkhn8v/VJH4qgj5rEG4uysdEctcesN+Hn9Zhp4IVBzrIhqfl6YhVD8vi5SKmJRyjfPj713f
1c6PX0mxojmocqWhtRKrtqktyaY8mqaKaHJCrqhoZu1f0ZaCUwOLw18KUnqTqn7jdmeueo8riQXa
WBpYPPc6Qz4sFdLu3rQgI6tYI7vSIq5pBCS7VF/ukMJqkr2yirxSrtX00vN5ve+mxEHwtef0auol
4y/cnnuziVuzWIInPAnJ7bywrpSlbuNJsCpEZzFUAYxXExrPSxG71tzxIL5GDtQO59PnbDTOtccU
0a02Bq/VK9Xyp2bIYWXLeGXP3gYpiEsU8cIB2mnWIxKSWI0YiYimLLM+n5XlIfd5k1IPkmelWfXq
Ny8Ya6oltWW0qHVa4COSwX8Cn0EPxIalJhRJAI+/LvsPv73Bz0/wWtCm3H1SWq4NtAY3KrxTc8cF
8UNIEhK7kIZ1IfvywtuGAeJve0/cozzXtuGzOdZny7cvJuOe+ciO/UhVaoAeXGTeGvWSXeW+E3pg
n7PEAEUomfMcp1cwrFyLlWmdlGJs0ZAio4lvwIvP3Iwo6bWY39PNiybY2+9q9uKHV26RrZI0QMxk
RPIKsK8LnhbVW6yWU+DGsReOKMlQUiGdoMeEFH5PNsZFLeKevausp6+GWuQ4Xl+B7lGa3KQgdLI3
MGJhlZhSpRqUdCs4uEKdWbiCvFegB2Fl1lZk0tT8g+lFqjae/VIiPFEn2icQEFaTkf0nRICq28m/
kcuKNXaBUq44xHTbng9itajGHFM9d3p6f3673k6P9w8vEzwcQg5xiMAKdGtYNdKL2iZNbs189wsP
nb2zanV4GqtH3ux3K++1EXgq1mWUVNKjq9W14mpuo7Qd1qCYhEfHWljTDbXACthqNljsCSbWLVZ/
NmWd5HUkRRojluKejTle2JhD1Uw9jxmyerOjkV4Xwz2oN1msQJmapeeWYSNPEkGQLAaNf1i7qvq1
z2CBEmIDRHJc0zKNu2XYiIyAeyHsNC2gidVAmkAMSid7h1+KtyDES4+9hdWTwqhfuc+kfqdZAJlK
2NnU2HM325WGXBbIodot5MVhMJKlIaTYjHvCug2sMyx/Kx7l1XZHztHED27hYOzVFTRIHp7EHRSL
O9gSf+xaoBq70mBKgMW2MFE2TCbuQC1o2+pu9p16W1NOtXwGK0/ESSZeKYcVslbSVf23J9xlNupT
/W+HtmwoIOpZGxxCsgJKoiZya6ZdP4SOo5/30CJ13N+Q7jMb76vHuo+14ZJcP6kXghK7kGNFUxAH
JcjW8KQSNQdWiQ4wfbPVC2z8RGLumHNxIIJ5eT3AbGtPsglWrAPfp2MN2btaVIXC544NnynGuNTG
1Y28Y4080cMyVtjJlnJhxZzGwIRjQxBG3t8xgvpfaVxsw7awWCCNUmL6tx9a+C8bqVhVs8NTX5I5
6mXhW5oOd6QrApfMYpP0JHpW8cJK2vcv9fm678af+9iNEmRrO4onqYwngeCElR1HjixNnRINX4z9
PuJ9h8+bWJsNsEHy3Ah6NeIf24jmOjaa6+rADoKp2N2niwWNIucea0aL3bSif559GRLtyCHipHaL
C/xePkkTikNRllJDGlrXRYu+BqXUMoAda+W64s5MTvTqxin2xtka0lGDhZadYSM5kjMhO1OSSNBV
68CrPJ9V1bIv1arlkU02nFjD/k8n+9hYR63EpmmmWTyBeLeEbcU5lOwnEm1EXFug19hzJ4ZV6RRo
whievVqqStVIAC4Pscs6LYO/460sou7qWUTgdLCOI82qm7Ur+5zZ0A4onN+5nrama1gVL9kcC/Fh
pYvE7mcQYDbG0vX34s9Ns3FfFU+obTZ79Fo+HxTRMIu/roSnR1bkLSvrHHE5G0CKYsM1J8v8oW1d
flbbEgGP+aCZhgg0G5s6JOdHOq8QDI/PjdE0Dk2zNzIA7GcRBI7AiUAo2Tdzqsb344JZnugzrF2Z
BpCnWedRZDsdk7VDLTJbtoi9bb2ufRjyqdg9Mq4WebKfZtl3ErYMF/UTMAQL3lkJFO/vWRSpamYA
+cRs4CepTyujNCCKFYtEkDx9rFuRKDPF+o+ur3kRT8BSbFS8YkU1+X6SZw4OpTp5hv7LWiljq9K+
UuNppEjnWNupfpPNyO+T7WtUa5we5q2UEr8HmfK3Zs0sGjaJGJaCqpkMCkh8sAqcgNwRjFJDN3UG
iR+Qznu6yylEARhuJ2voJqfDeVvZ1cPRmofChoza1uI9ur9sypY4N3FWn3LdE1eCTd0bVyN+IaVm
WKWmnzDfv+VWLkV1JRJVDQNZ7UYZJdk1rUOG7IGRC6HSMBPZsNwsLZbyEnSZMAMcEx72oSBtYhhB
V4CNcvoqIyQFbmxGgxqgoMyk63Bkw/pGsiqIDdePjbeEKZKvSj4bArB+bT0F9LsvJntbK2dBYSkr
SIQn8QwNQLF5SUIrKryRdPbsY0bUg/bfxM8kSTNQZcjdLLa4Q3Z9jVu3sg9yzyIXVeoZv5+sfyBb
sfXz10LUi0xaIDHPSCNH7WKzs+FZZ493O6rB8dqwdpK9rMQti5WRCtUt8MaiZywzKKRg43S7Mhr9
szwJlrQjJSyGqr4em/a1HfTYN8aIDdooQ+qJhdgzlN0qtd24PHyGjzJUaAkTj3Gxlp+QfwuwZZV5
4AFkvb4szTiG9agH8XsUC/7s+2e4CC2YTbmhFsw+kcPmBbyqfTn/mr3FhpawmYyRzCO+d/vz6S1W
WY93WKJp6sUfvF1hAQmaW+3o1W0pgyO7V7o03X3T67as123q9FRgbFghdaYmFJyPwzomPage+C3I
RZmqi1O3CwNrF2j6N1Z7dy0gkK+Tcc8gCDm5zfoqxBCr0ExImValJu86W5ooj6yIZ/hurIKhycgN
UbmiytnT6wSx60OMnCrZxKQh4F3uFASBtvw0FjOnSfJc2Txd5dUWTaqLT01LkmGM9HVdTCas1Nzz
X6jLL3w2XuEdR2VqXnUNpWDlitQUEseuXk3Ke2WMPadgB6tJNGFbpFGJeqspD+/72/7wGG93WMOX
7YoOV1dP2g2myXkseBXEPwuZ8nw5LX8zX8nHmIS/86yryROc1sWgPRAClt9AS90GVxiphg1lP5KA
nQQ65aM11hMqYCuXYavaVWGlXFcpU0/cX1ZTKVuzxa3OKXzgp9btQVoeqGQ5hqRAnPa7bMJ8rKLp
qhAd49KyeETf1XasgSCxJyqqiaMEibCyVJS8xz+AuMK60kqrep6QSQ+xWLyxRXpINpslsOjXIGu3
DdFKAWIp60185sqeQqOwaE1H6xZtrjandoX16AmYF9EvJZtsSfbMreCF97eqbhWtDc0xIkcK4kM7
VS7TiJ95Z5frtvRE5MP2S6D8skzvQPgnzxTpaglnZDHZLyVnSPpCcH0C2IpcodaO+NDwndlDJC7v
hInBJhzslxFmVQTCGyAx6wco0dUL2Tjx5LPNsuY61Uqy+UoaqthCjOgPsKwVWqZYoSIhWXDJn6u/
Z+01Denz5eUdVV6ISHVB2HR//FwdFOC+UPK0yIOoeVCAhXftUOu9wjtaLEVdMpmqJ9QJXzhRYs8F
f+U3uCt9tf3FE+4bSzVQ+nmHsEU/EvVALD1WrJQdQVa67PN8ina1vnS/BRWwtTmKdljpYz9Ni+in
fKKWME+iJm/adVZP2SoMAlbi6xr730rU8WJadGaycdtaSBYbWruyY5xsFRGz3F3aLpACthzyy6aB
CFWraGHE1n2zKpQkAkkVYj1mZUN8Wv1EY1aw2SxbbxWaTGqqjmOyUVJPnVYZPdeGKmZlu+CfkTPj
j59Ndnb9uoZcPKnVWTGXXemzKOiN8apO1POBT9ibkX01U8sL1g+Sr+cmFj62H1XPUHhYJUycVzLe
j1fCrIEWm9RL0bHnr/F2na/h1KaZZ993K1AF5plb90cY8e+EV9hUB0EW11Fb9UtZ5U7zlZQFgb+U
5TvqKhSCMkMs4inFmrPUaKMkWaC7U7XcHi9ibFhDO56mYrBGFa5l+UokwbctNfr3MJh1p3+H4sOG
XP2qf24z/cWGOZYrZGgladnEI22AmNn5IOnE3nBr6l1aeKFgP5OmaofotD3jlfJULVnNGlYxONYh
VatOmv0zYCLbVmTtdctnvG42tSOr/V/a+Csv+BYweJ6j6ppV+KtaQs9aIWuAZq5XsLOoN807PF3l
xKpBQQujn8vRsOCVrV5EEJ+zkSatAexZ3TyR2nt225V4vjdFq9WCsKYm7ysmHp9M6ap5x0JJAWm2
ag2gtKrqWT+5o+hZSF4K0ZRGnnxHU6Gpn0IDS2HpVkq4daxknlEprDsk+9/vHsmevjE1O1omxd99
FPdXsGAToafVcb2TVWoKu3MsyN4Nz/VcbypNVeVh4RpyvlndCkixDU+NTfkQVR4HDqKcPQ8e0sa5
Q54lwIDPbI626Jy57iMf52Tw/kUBg/aZPLLhlYLeMWa9RPeMX8FXNXW1S5JSgnxx/rDur/lsEsXw
SZRqoghU2LCYgrP1XaZZNNYDV0N9fxkxYW0hJZKrdT75N/x3qX8LjeSxsUH+DiGZvUakomLKMvbV
bgp868lVWurZbm0Di18oXcMvqqkFvj+8LfAGveLATffy+vp6H3HBSbXpEZBill7i6BgVnRvkPVsa
pvramzScfV5zCWhLt1l3vlufK8s7u1pbEL4rrq5JD4Cd2aiR2IPYmUOrjo0QeGKvfMZPza/DqgtC
ZZm6JjWheRa9tNW+BbRancVEtK2nLP4dzSrkar5Ji8zElssqwbQ6AkRzvvRkqNHIuHwv385fPNfb
rJkFG1YEczOT+dXu8TNMoj7EuKDjBxQQvzTA1uIJbx40dxZ1w87QlvgeLlURBJAMS3QmmfXYNUkp
+0xQwPrxcmWXe5jX4fv5inpeB5AQ2PEAYkPcgcwo9sJRr0w/xR1hczu22mWiymdgnUQ6j4yWURaF
zu0K57J7+cStaZgx1swL9Zs1/Cw1gmbS1LLZVaeDNaqEi1RzOjbWg41JCu9Fx/vXQKDZWIsEbQHw
cLxR5EOUqq9Q3RrWsJJSgkAc1E2qB8v8J34UHbyN1QcLTEn5m82peESHDreJee9GXzE2xyyHJ2d2
tatczFCl2dUVEd/zpq9teYop+RaL5KEA/5GYkukAz35Ft6pLY6FfPszRBo4S2PRVZfeC5h/DHdf8
ZeBJXaqc7NhsaCP4DsTy2QoK1iLr6rzBaiaCTZlpnofCIZA89bZjk5UhpKw4rU8UwRCFOsQ/jSJS
wy4lZElaM2lANDPGVqExtqacoZzntOrdwTuMt8/z7uUlAFB4UCsdr9pVhw3HMb8/8JhfrYuRqPO4
SCHjKlbtzqf7I00gR1OLFyLRM1N+FZryq1X5WRYsNFh+IUunXuegLs50TmO8dRjqnEbGvvFDvPMu
R8LHxPsRJkzVNdKlicOi2x3Yrel18SLzJGU60PnudQ/YXJU/JTV2nQd4d8PuEKZKH+9wiPiSuneF
LadDj0/z1GM8ZXiJdOZztiupc0nqAo2U35Jl/p4r3K6wq2HqcRi3HXb1xwPLnB3qJxxGo4eNcX57
PyaurQBTzdVqBrNlB7XDgdn5XqtYxLXa437a45c4nxos1JHPcsWV9B+2ux+u4S4KfneXujZXVBJO
08xnuZ+nmfOT5x0zmto7HmHwsg5DyIPx+tFSVQsIFhVF8GunF7JhHSEynssf0kIlWh12MRYdDosX
5BK5ZbDyasb7e/yYA68Qlgri1el0JgyR3h2vH7v3gMWGQz7sTld2T+h89Ww7s9DZaVb8oaG/V3dA
LqohTsf2h3047+/3WJDOn7WmY8hzDiuP2Da7OGE7fBSvGmR1jZWqRDdxmUKwuole5MTOG+1dBJf9
BTL8GnKtoTTQCh3SCmRQvALv0oPv6URpXQWyihJZRV1+lGKMWcevsSSfXQEszJJ7kP6zDo/T9zAo
PsjK7sRLS1/Krq0pGP9eR3CPnKiagEXidJK4c7qPwCL1ptwaagXUbrwf9p9j46g7WR4T8jmcBsfU
21I5SN4GiN0rsgF99byrbySBF2So60DKh+ruVA/cKdFVHbzl0+wuftlj8iB4LeHKF1J1LWGQlljp
vK7qUCE9o2R5FdCBqw7dS1l6q+icvB8Bzkmw3mq2TofzrXUdlnqRKNcBVliug98c56Xux9Gf1O0e
knNBCNmDUqb6aZX4QiAPeum66IpYdVnHq524zhnbOStLdWGLW35K4ywG4BTJrrROQ13uBiA11PTT
SznFSjbFSvfHOelPELuRrylcvG7aE71g82hrFfEUSekrvZOn+VIKfCkNp7fS+8h0Rl6EeHfR9uUa
awm2z0rwsLpTs8qywdIZ7fL0Ev4+KaKJY8gkNxHPHPCI8Da8ItblVylWeuHe6FJ6s/AFY+e3Nwrf
6/7jdP7ViHls3Q2uKZwOKRxZuibLtczeQPJj294ACeYiHxWZmH5AEbvgNEU8Mx9kxzMLkS44MUnE
p89+vghnfohiGPb6/lcjDFuKQdeO/ixBw3S5ztNCvEALVboXCBsZFNogU1cbVa8AmS1q/yTRpit3
Mpw9eJ9l4swMjtiVDyd9ZBecOH/LNIYVaCifAfkUa65gMehWahJBRMveL2LttY63op/38et43Y3n
j5iLAeEMDdBUFRU4PQUL9OVWG3BmGuGGpsQNFbr5ziEndeAEO33YpOxvTcuuutKVMzWfZW5hBoPq
oat7P8Lbd7W7v+8vxyeix8H8BgaJdKMR5VZnH0oFL8qK3W08787jpQWXLXzhtThuoxwFRLFfyZDL
iNDuw/8PT2nKFMAgTRnhiH515moS5pcGXEzCiSIo9t5ltM7K3/O329jal2UYzzoskfHAv5/up5fT
+fT4Bb9K0wOnWqNqedCVGIa675KP6TSfk8CKjMYmQ7HSxiVrxEkau1P0cjUQqxxx6RizIA2Eoltj
66htdaEepUC656Mmg+wY9aMJ1uPNRp+cRb37vj+/xXu6hwilK9/I8JbMNgRAVAOV6rdZpO8pFkai
3DLi6cHtEMPz3oJCGIKuI6dz3KNT3HP6eGvFK7arB+5VE4b2hmA+BYhQFSAk0sSdpnooZlZOx93d
q/n7r8tj/xPHytQFrmUQ9BQl/IDO/cJaXiOoMiqgkNU9BmeTj3qI4SK9xQPQrienPvg/4ctaPn1+
kxC/G8XaLRg+ib4ernh3LII13hv/vAd/7DLesTumqftDA7qaPhRYH/ZlemRANxSpsb7jovgSIZYI
ra7f8s0aGq1Rgvf11AiCqSXJz4ilE0/ttBH+T+wMjShXXopAXoriooAVLAL9UiW6ugou9gPlW2kI
ycra4ZoiCARy90ycVcGDO5wTdNWdiajerKAMUFAkqx5jdFX32z7vYZkD9NxcuTcoDOmR7abpon6T
SAu66vV6+Lo/k44garMLKQnirvuVrNx9jrdDIt813HVR/7ggwonPh71sXYeVbZQbbQIZ+HHbX+6t
F1kYvDFvk/Xv5B8H0Qufc7lexoaHrOr2LZzVIXj9l/fd18V/2Pl0gRlCYfq6yS0uFUKuhClvpdmE
IEsE0gg7TTWPVYNhoSFQJCFGE9w1p6/h9VNUjuYtqwiPQwjPUI3T8j313udbsAmNNzKi4+xKhlNO
z7CMXB3i2aS7RSPdLbh0d9prNe11SxMuQ/xWtKeKyy8apASGD+C/bPGUjl6WLn82Loauh8RlNgrl
FQhIoOOlJZ6+2e0ff46/sOOopamGL9uwvCE1KwS2HnNoFHOYuger02uIpUQaAK8ELKe2qgLdK97i
SUKPo8S2GuWpAd923fMRnUbUNlMq48W62PhKWu7O4yOo0TD6AeZr1NDVV6oGUga5sI6nUAXRu30l
nw2I3lDN1tTzjR3KN+oqVFZPpSKuhGS4EitCAFhCd7puqyr4OGRcEOUpC3w8mbwpefRomjxyvwuW
5nK/jb/fu9fTz2MjBDeEWBCLsBWT6cPvQz6Molx1e4dSPkL8BmSLEAFtMMBJthqQxJby5VUiNG+0
f/jt9LF/GxtbpCmkqIpYZm2nVLRTvHtLwkzK/qxSdBE8TmJ6zoO7R3iLp024ai5jvhZzZDTTSIHt
lRz8m51JoVGEtmLEat51axBaLQOzBfnz3vF4Oz2iHHpjEZ0TfqGuPHCU6JEIjFbD0yQiBYNGhrKz
wRYswhYGLoGR9EU3Jw4a9I0VKtqzFFuURjeuDkRWY0+EaA7981n0QSN/nfFGF33hvL54/fl5b7Ee
DNGE0VYYJvmNxVmStH4Ib9b63V+qE4EiAa9UlVcdWWOLPIw1ss5AkofzvYlJ9lWYK67k1YaaecT7
C6YSa+PY7PeaH93gMPZVnKjusiDPUNaZRTWugQ68QcA1+A2KgEOvRMlOfeFFZcRJIcRJVEsO6kQV
dFdFj5lx9jne9lAP9kvrJ5D9pOCQKJJNqla6A6yfrqJMEa9yJN/ASzD1dqpwnt/ht3aotfTL2CIg
IhH83/+amuHAmNzK59MxFrnuTlfZ7HWhQdJLKDcFCaiCdzb0cifrr7Q2oijA75jsexllwQC/r0uv
iQpCqonUlDqpQf6Yq3opG6K/wqTrQXEJ89lanZ4zV12hihXkzyIzIx2sYzPJSY7IGdweUccvqk4c
Siyqeq58CkIP+3vjwLsVfqerzjpykZWpQ79bTg3akEHXfchSbVoAimvLRWYbbkUjtU4L6Zp0D6Qd
hjohr4YNYQ97Xd9RZ6KjqiSlnweXhg55orLuiZavgo6aUNCL+pAqkqMRktNzBWwkVYAsrbAl/0pt
+Fef77/uCwGLL+GpFwrUYByEBhFyYnTNNWMCELAwrKqJHPkkf3usysgozlCpOjJVmhKFNqUus4Vj
h05XS66WdBN6mwZVpisroftSZ4uks4+n++e5UXzs2HPOp/x6wvVR0hmuBm52wjPfl8edRcnVI8Tz
jbprcGJ7Wa1Y2NR8IUeRYOnhH10NaIGQD4knoyPlikRkPJv9r2cSkbrOkKGZBSFR/UbJDQDl7ohu
oW1dUtbuT6sKunRbIIXEIQrJ0MEiGymncB2DKwNXk11CB0hs5cqh04uwhdz3fM5zS4iYneCTfcSL
Cn6QKZKPv1Hekq9S0ORasRdSYBzMPV9MZxEy54Z6gUKQm4N3go7j/TBejhGAkKgc31UrJmr+RyPx
PAzVKL1OhEOfxtTS15NcKIQz+jdYh+hqmK6eY4jUBaNt7KyWJm5D40DpXh3nSQtUb6hNHcIqM8X7
y+G9AWEJSnCqFX0TDgTkCeY9Dnl1yOhV6NR1vVNA/dQRmcesomTDWz3ZsHodxwHrvc3TwVmbEAnI
WyBwalJDKFZAgeXAsNqqNwzJs2Pkuch5IDGkmVZbpI9XdXEQrFE9W9c5MzGeJGK4ah+bkiugEFeg
bD0D0fwOSTEhOgc5NFuPdHZIEX3RaVzvQ+4m8jBo24AW7tmjjObAaJ2SFQJT87Yeu1dAMNkAwXTp
BVp2hzEd2DGg8jqBeG4mEImHkftxraNdxHklsSFFCNcsAbCEpvk1W0XtZ/9E7V4BNC0YI74qTUaM
1V487+JoVPpEE3VdeUJFzyS+t49Tz3ccsOhVelwOSnhAjYLiTtWLO8qYWaOYWXLw67qmVKG2Dsqx
9n/j+OkGKUk+j5QLpDzlb7gAEtk33f2GCKI3ojwFWupfqckAilhQxmHZS2YiYPTBl4jtQTHksm4w
UuVNCIkcSJYGviGnILdvTWzShRw/0URJK1W3cQWx/XRJvCbcZmJlEWCmBsULQnOUwwrqKBHqaKvN
EDYoHVKjXVft1+NFL1pMf8ihgebnxGUD+TmL64FIiS30JUSJ3sDsCPIlpHmieRbKYMkSR7JM9wxk
cPvfSBI6JDG95qJw0g0P4CVC9xxJdU2yblWxMsWexXUKpS/NOhFbraReqRigNJV2zyipnr8/Svf1
au4KB6FBO9IcI7TwrJC97WydS7USN5T+ItyMZtzmkBsyCK70hiCXKM5h1HbNDVcNN/w3CtwHgZJF
qu7lFbGbQbGbrbu+NfK8QuR5V4+Wto4VgnhcV899VWMu1OSq63j+u9yFiOt6OzbSaEOPxH/aW4f2
tq+7doWyRu6GcPW8StUDR0lsZ3l2OLnJKNtERbYVDmtEA1rXH61DUJFC0GZdva1Tu+ubg17I9XWa
5jo9IyEXyNYrNyKpza+iZOAKHPbHpstBivMDPKjqZShIbJR6noCP2sIY8TvV2cjSW12v9KrGJkiH
r+v6QFIO2jbRl8aAlFUlypSMRVXvk8HniVeOqTsvlIRFSsLVMYMCTbTA3KuuzuWumPsGh2fN4a8R
TV6eqJ5cc4okD8ChTLty1URhhXgvG8R7t8r7D1UsRCIsREL2tPfoTrldMughxNBMqr4Mgul7WVfo
lbgEbrGs94IsNwbm2rsnjCTKJwuBmxiRjgswHyzqxXtVzwGpqkEDCsIcCrycD39C3qLksh/FtUbU
GVoJWPZ+jgH1pKBCMUOrafO64yJSvhaxrZzCjSTnHPet1XtIVWk4K0BcIkDc1Uk4W55Ig/edtXfI
oBnBHzbeZElVTJzDutqbftqbR0NB6KpzVDYOgZ0XuucLujqULqO+Z8tkDwa54q6OAg6J9H1YOAmw
OJfKzFB0QyWQmYCQmeFuJNlaFA9opkCyVJYaWRFdR7YqAaRoBJCKa4IaxE3qFG593zdK+W3P96mZ
DD3qzWnqHZsrQR+ugnV1sm6VjoGEZF07ONQa7qMIfxB8q6YMzMIRBLoeJnWR7BAI3vN4XcyYqc8W
qTl1ouHUSS63tfGYGyw/rmF+YeoR80uo5zkuDkVsfc9906xsZ10rUBEaxdCT+NS+CA1oEJLlOKxS
E6KRmtBcA+C5O+3pqebKhtG1ld5KEvdWGngOcU7aAHIp22V8I3YNip7rf6NXKopmKY+ecP2qUBea
wWJMvdZmBaYg1K2rG9ca9VZiEIQd7bGOkXSrOJkk4hWBHagojwG+aEXEND2QB8puIF/EpXe/QdVB
0YkR8jdwVomcGF0P87e8CdT+k5uKUaV7ITxvXYoBuUwIT3EMJr79rsbwhlWT5XVzeG/EnxqC0tfV
YCLXP9HAT2vNpoS8kxa7Kxz2l+/7VvmQqef3adUPMgydgPxA2e3mYmtkoWy9YUDcDu8HWL37up1S
S0xQaLBqo615qADmrIeif5CuNxhBQZtqDJ7ILJsWTmUbSm+xuhpHxr3jbvUGe2iMRijbRpIWaKk7
ovfHT7f7Y3d+PG4N9Fc/T7rpkYoYmCx6kXyALMWu3opopccREE3TDuvw4na9PnjRV4ZJHBauPPh+
PchmmTDOOxIyVzSIPd8AGNvowT5HhBUNIqystwRdN3xBl5h2SdXFyMKSWiFQAZSu84zK/ASSLGWf
mhwDE4Wa64q2VgGqoQIsF8IW74Iqa/rfaIKMRNYQvRa7dzomaQlbpw/P53NRZYOx7eIyi/z/eu+v
Ev9EPqAsezso5PZb5AM6xgeM5QfaG/NxbnkIr1/vng9eBaLXqa4e2tfADjgK0nI05zmPeioSqaBz
jnp+soFAcbnsq05gtZsBAlEGpra9YGqgpIIUzxfBCHQlpX268BSPsyBIG73bGyOgGkZAl8sg98Cg
o7L900xGlHYh+xPYlQO6pR26FbJDDIXpyJHHLWU9JNoAb7jlcMdwfKpoA0qWKMVN9Z0LFE9zheIe
om4MvZ00fg2trfaXw9hobzng8V05JIEJilVPK7up6B5/koEafDDQP2vAO1SIoHtVzeOvwRikbQiW
7oI74PoqboyQzYENbTaBBErH6np7kbrwoeTNur9bvVQOeb9aI17Dsq8O7etQH3ayuZGN4lFVXabw
ROD4u4GrFJ413YmQtsE4qr46QKza9LNRuDVwBM2ydhmOxxJMrmJ1xsjF0up5dMwgcVt3kZS1+4Oi
3p7BeGvdGmEbpB7eQzLkDcIuqkQwq13jZ+WNyfWmmL6g3TRsPrQOf73ePu7xocv12/Jvvr2fHt8e
4/1xutSX1ZEmOX2nKJq6He73j/3jdvq5k0dvF7wAvO4P4x8/+WXsskx4096tllFPLuOWZWLLEDER
bOQx/s+Xbwt9TcdjbHq+P13GW/X7VKzTTbIdzjCIxuxWLAslFpJ3mMAS3bJEKIl2yW7ex8cuLxMI
TY/rJ7/IRMYOi4hoNGermZc4HL5u+8MvsMaQ1wgbLrp0Wu+ny/G0u10f+8d4BI/bvBUyn9H149Pf
8WP+mPvu+z1v7R0sqPKCfu1BlgtKuiZYReav0hHh1Ms6X/6DphZW19vp7XQBy+j8Mq5y0On5p847
v1DIGPXpvP+6Xj92H+PlK3QgAQ/r2sP5Nb7vz19j7MwKtsTkjQ1skM0iEp1yTwQtnJCYs5HFpQ6f
AxYxyyJB+kP5bJT5729RNu53dIeH5Q5H1mkSM5Vu8NvoRWqfHnzZH/4MtTNeVMh0r/P+Fyd0cbWZ
5RWK3EMjiXSNPv0zn2OYVT3uvi6nB1rALAuE0GXqf0IXuFwv6TXAIjp/ZL9g2IW+Y3c4LSDzApmF
Mj394+SdmShw6giWUMsS4Zx1P230StjQVnRZ3Yb7I7St35q/pjYfYKlsAAJWG0Q2buvVq/3dx/4z
FEjFB/3OFP9y+gnwloq+ZRcnl0xfWq4EVsg7JWQ0K111hV2YW3BurpYlMHhOQ/1tvAb9PO8veyBE
MtteEeywEKK+1HEcP8EyAzGaNhvNzTIKrEEMb6h4EJ2pryHBGpa8h4pUiPoan/7J8eYvGpJulS9I
nKXhfckkUt6t2U1uTXow2b3d/O/RG2Y5CNjzYP7bvOD8Snf4TjKffGCJToYq6LHg13i9QTyC+XXA
lcnHH7ivLpu96/1EvwgskY8+hK+92eiyw/n0+Tmib8r7HNILQ9Ii600Fz2d1OkTHRJSb8sRHuKrv
OF2fpAwP+w9vN8BbdLU11l8xrfV+OqMNyap99hj/e9Jl56+gqKaHXmNkFJgMf94ByEaKJMNGpd1N
K+2O18PXR4Cjztf9MYjg9wAgH3dfXhTvh9vp88EvTONys8Sy76fjcbzsTq83v1/pa+8/Xnfp98Bw
LMpqjx3Kkiz+8I7l9cfOB13gYUJiIWLs/1env8bd680bsdbPE/w5ehvJFo4fL2PcldcQfk6bv/N3
axfDtzsYgb6aXZYU9Oft9N1Lg4/brj9i6fDH9Tgy+iy9VsZQAl/Zpcv1Fvz+/c3/h3+7v+2/79NJ
7b5uZ7DBNP3exYHmcbHL+Ij4x/R5u88Qlx72h3d/eNcbEixSQRg+d7Bkz/YP70W8eN/5nnxnsFNk
plQX48puGjWzvFmY5+NDk/GOXqaaUAzG9HY6Br3o/3yMj/frEQi0rsHIf7snETr623u7/gK9fbIU
RpZ6vxzW+PHp3Up0PB3JEoRDn/R6eNg/lq4ROenpXaIla10sU2Z+zXQ3Hl+3y87vjhfm+HmX8Yc/
qtu49196He9eJZwu369/jvNvTf9HIKskKRD80eTfxGlp4LNp6lPE9oLxsXTcu/1rAKGiSE6vMR7B
UCiaBohoQrp28xccv25hxy6fn/Frry9/Gw+TQn7dn8/BXsxDzED3N9LlKugsuT2oF281/pxuKDiY
rCKCitZJfXoFk+Bvf9in8/7Fh50vo9c4Y7pH9/fR34qorf0tS18AJFLWEizzdvgQ4z4+koIF30uq
CoKLb4o1JonxqxzAHScYYezkkt7D+yofp9lG+DjhdNyNP/3m309XIM90xkZu8fAW5Pm8u43eYvvN
+/vXeAM3lY6bCRj5UNWE3lfcHfeP/e5x3d1vB/BKqja6c6NYb96I3bwemGR7/HkYPx/4W02thVQ6
MS8L929p6W+fe+/bfmNdnGQj8zkG5p6bXJzb/v7ut+3+uN6yNkk3LhnOxRyA481iFiyxoYbAy3PQ
vw1J7YbVEmkLpxt6vaSZix9f3pfyG7aLbw30eLW84n7Zf97fr4+dDwHG/S1cMrBbtKon2pMpOr56
z8ibbe/WxgFz0375/3/0d8BVHMp3MguC5+/7A6hIQZrYhdBqou5cPm/e9/PXJz4zOyqThI1//9oH
JKO6aKy9nsNuU3B2j+PZ+xTzR4V76f/DX61/nhbm15tvlCmHB7x7R6ch6PHxOZ41RdJ+On5qfcNX
Llt+/3rhdz2uO7soZrKqpnDrWh81q08z+RSq+VbgTUxeK59iMrHgqa58Azedvf9hb7Cuh+BMHvw/
+ReYrIT/v93fvx5eQaCXWW23Lpwlb3bP53l7ToyXm9ax+fXydJjFb3jd+/812N4hP51ZBFUZbO1T
N5T7ZGmMk3ymaEqns3v2DWdIwqR+bhOoEWz9ctUmRyrCXOBT80YRCxEfur6Ca6HKHVIV8Z0jrSfu
fD71SJ2bwuwxarP2bZD5ikcNJko9FOXwnoz55csLkHezwGKy1D9JcmJc5LXqfEyBKAE/qcv7qoWM
b5UdgpDumdZ4PcVc5ng47c8Ikkz7ZEpdNsWCl68Q/z/QKZPjyrDznYgLOOquvEqaXqVpX16/Lgf0
3uSAzCKttymzcvJO7ycww+lYhvItbHnG4EFV0wTemfb68Qv9YueqGjqcEd7rrNlDvmNyGMhp+9/2
+uwOzY7IPx6bOkzQ89W/NAe/psOSG2uXnKnRv/O/LurmvyYxXvz3/Q3FFapWkLl2IheHfRexDQAd
EDJT9JO7WaCio8063t56eFnz//f7/ZnoUugaoWdSilDekm/T1R4/nE+HPyM8UrxFoJ174xQMxBsn
G2krq+MbYch7mOO/8DNBeyWl2oSNXG082qz+guuUkm0RfGaSOcllFbUqci78x0CPrfXZmQO22+hv
CIiNOtqYOhfYhzd58gU6wtolVnOOul99WAu8XUIoJb7770TFQFhViVAkaQvH7T/L78uC8B0DTfo2
hvXAZ5LAuF/aye8fDx8szVBDCzPqSKW9iQba/7XF2V+uXqH9SiIQ/vvjff9ImxjiUviKoqtO75va
5f84HcNvBNpAvHCNqKojzPCY9czwVgCLdz5OvDxK8z/dsnTw4C1dFStdAdTxdvoj/7G/IQiPRLly
QYInf2JynKhXyKn5tBhhsEXCxETkvOy/n7wGus7hH4IlV9NrOIx0fMBX6QgnLyIBWT+8nvxlwPex
rwlqUgSBmP31eQxxxCQPMfPjDQHKKKhimqNNKuJpk2FrKOt0KpM3CiO79A6iJo2zxdn97R5HJXqn
i8RoE5qYfunrgu8O7UAbRN9b/fSi+7tXEKfX1/EWxDJIN/BxkhyZWhMsbNrBi7la16hy/7xNO/4K
wMIIkuZpH6tkzwRzJLUwrXw4j/tbkNRzSOsh1Io02yDdQwpbNsUsTYiUYK1qwb/y9QtezL8FHksg
6b49ACREGNlkNkF8i+Cfx5eavQwoeB1pgE58xjrEDJRpdZXJuhZRKnCeqkXOs+8VfKSQfQ0zcKIe
/nE7PZAgDCW7byCCELOCQCGQ3oAEIz5dLv66hYeKiTxgGZIKcksDm7Uh+HE6n/91vBz/xUe8IaEa
rA24e9UGfYXKu7fwRFLGGD9vKAQ6GuTHe7h09+vXzTspMZc6u6nxfcMGBMAGWUFZ8wBP1A+d603A
Dnalqi92kPhvrWwapRlHEuSUzZnFfLkq1+w6A2F3ZVv8OUgI+zS7XJdrhJqR1dm2GZ1cw0A0uN7i
Q/dL4BoEUPV62zN6T8UexpkkJ4cYH8npC1++3t7GtFo4teBrgky4jotlAkOcbaUnk5ie80rzekMU
WLlMRRTTkFAjTPE20xvc+RU6QilLU3NEucKLtwl/xjgkbHYQgUdMRh9DHgj4ujqyxQk3R4af8n/7
1Rs+xs/d9QvsEmHlec0u49/VZ37ert6phWhJWkoQnk8kC6lOl0t5gbp4aQ0O397rMP7bBsI+ifST
YfVl8fmwSy/n6+FPv2BUh7vQQfDME/T8woSWEq70MN3pH/uHjxDGn4HwE0Lue2Yj+X+55/Nf8dM1
IZJF2oL/u3rhgJ6E9w03E5iz9JKE2daF1Iv/OzFX/Gf6dcaf4+ErZl3Opwu/kCL0rQh39hO7eNKJ
QVMerh8fXG41XQMiITbVAU4XIaPRM4wH3sQQYQ0Ol//bU/sayFH7VN7gfZrDO3ihLGd9SFX3Q2Go
Z20TaBzghQj3LyZeeqHKA5vu4pLakuAmZmrQEJrPDraj24xPWylC94tpS/938r+jkEeo3W/MxR98
S+kRkpKIA76FnLzHiAQ/9tF33B/2oczXa9LwDyPSMeRORzzE/7XlPk2R6/f97RT0MliLfKdMfSsm
ACxgqHGjj+ODRSKSUs9r2Ogla7nSeP7ks1b1OvRt/AlUlm2omahA/ULXSb8Ekvd4AQpGkcIJYeNp
Wmnrgk60PzhRcv1cICYL5zpOZe0vYeKFd5zR/dGEQdnFq9itz/T+5S/05ZjuQOL6JP8XHY2gVNFo
SboFcQ70jWBCvp+OgMXtZYQa7T5O70lv9uuy/zgdJvn3MQqw24T/bCLsNVEPA13NR0zXYDc45lra
crpB0bB2naua/paNXoo9A5czCIOTpipgYAVq5SPNWa5lPr1EMC7Yqi7DxdNaMv7VSz4kiyPQVZTL
K6ONn/g8a+kGa0iiv2VU4httmerLwBqOGqUh3jJR8xC88oyWt6E45UAowAH/G/rVcvuvxzUI8uny
Ff2OqTAwItdAnvN+2dSrpJ9xhkDk232d0lcfAhVuvh9AMgWpDoh8rg4bLfBmxDeNHLu1Dlg8LCKr
3jWFzoIcesKkDvzDjTO5NmlgLWJVg/c8THtH1PvH/rIPq85q+d6Qm6WJarRk0ZkRYibfTfI3CXKj
eMCfRT7a2DTcTOUHCyHm+hL9x6xNf7wHWDDuAFAZhLs9BPs0dEPFk3xqLTlQ8x3OxocIXcORbmQT
0rqOeNGhKn8mQSwo0PcTg7SkvetIrU1Me6ej/TrtplOIF2JBKKD/pPNisZZNay5WCAh9gBzv9+C2
Ioe+64hj0IU/asmBLop23jJwlqT8MdXXibVjFxz4tlunqLrr4l9ZdypCevd6Ru5mR42AIkZgZd1C
BORVUgAlrsjhIY60jVV2onKW4PiyjMawTw62FsR+R3qRFizJ6e90YDGzGEgra28JrGZIAVUfh8Ov
XN7rx+d5jID8syFdTxSPUbFv66Rwt+oMrELKGYJY9hNfvHSP0KdpgkjEP6oARaIHCWSHqOSwM8NM
KA7K6P7Ln9RHsGIRKW0qUFrfkSIw+ZxqOl3+BuDupKDIxQtxRz/VfR6un4EfG8Kgx21/QAdGa4KS
OaMXbvwZnn8EcKURgpOIJbIGDWdnMSUvfRaxDYFYPcz1dH6zeVity6WfMYBSU/V79Bqz3ft1Obzf
rpfr1/38a/f1eO3BirlqWcZ8kZyLlK5/ngjo+rHnIhFFnK5UThpII5ObXXhFtzFUgXIXVpGoN1rO
eNGG2Xn7fjrEEmHvtCSjfP/iUVZFTFtqzRJS9RMHPIo4kmlFDig+HZAAOSEB+6/j6ZFKhNI/TrHa
HPkiP8g5GoN38a8kq05LXa6p/uW5NXsSZ8XuQcPUOOD0MUaTdHxFG54PTgWdr6Z5c4cZUdpfjmCT
CMxrY7ZRL6y3B6QlKxJoxh8PWQBl5uT8NbIvnznm2WrFRXRcabKnCaOe9jQEvvO/ifUi4K0MuWQ2
X7KYh/8YH7fTAW1ofroPhQf9VHE7WfP4zPTPgTb2sTtfL2/BR6uvGWu1Jh8mteIJYrMU4qd1zte3
nMCJIC+71tyZO60VrNfkD81rHU+33dv5+sLIXFxjmhcr5o52qi/fJxG8JleGX2ZCcMU8rlVmlCEu
M4lfyo3yy0xthsQ8VTersLw7zRgv7Y0mexP/DMVKH14Q48UkducOlnP5xVRsXqj+G8mppNxd8DgO
1zNK+yYZsOQr06cW7zbFxleuFDQdXE8WiWPGusoiT+2VJbuuYivDUga86tp/vb0/GsYwfZskrxXU
iChlMtDnImi6v932v/h3cpq8Ux97ra5l++cHkut8N+J0DWlsKUn7ewAi7xyrOZ16vhzRV5RDa2Nm
aANskMAflm4aqAVM20NPv4t7nYzP2QdRu8f1X9O1bR/YTMwLK7lYOenMRo7Ae5DjLn2OWS1y/lxS
GwO5pTo2TZ15jSGPvju9Xa63WBuzmypC54JQ8EF5a2J3OL16pYkzsDBufSTChrLpJbPK1mHfdb86
sdM5xHhsUVHaKMPp2aQYo3nff56AbsyC4/rYbETUBCcrIKDOnCVvE4ss+q3yaJoOohO72Lyv3Bf/
NU8EYpIUEYWlhljsP7hiqZ+fe4azku4U2VwZzXz5Ofevl/vj9Ph6IIU62PWVKjXXz8DOmCwzeBVq
d4LK6ET1nHeT5QB7ksUucrhnuuNytby8gSMe8unEQSuLN0iP+OtyHF/9Gx13c0kLkBniKQQTr7qt
oti97v8ES1iyxSoGYuUntbwDovQ6txW4w/2++7G/Xbx6ABtj875KHasqhu1LLP46eBsi/n3siOxY
RR6QwcfINiNK+0vW07H33tpyzjbmOZfFEQsYom1Z1RfA+OV9KlCJlR4NnRA4WDEJIjF4QQCkrega
lPBOp0YczOCvSFea4tv4OUbt94VWGTRWWcG/nOjSC1uGz0ulbWpYwEsily3Z1FAiyxdNpCWznMcI
RonKjiGYM+0Y+VaZ4svtKqnucFEDQJrIrZED9RFXeu1tfPynkJX9LzP6Dyw18TuDrlSdWPt44PPI
vpvYTtFsPY+mOyYG6kipOGWgWObl5D8OazVj10GLqIUa7Qtn1254eeESQg7eIx+4CfC7WSmQqcgm
aPrAcHwgqTZ5d3UIWXVXrhUghXjk3t34+kDxgMKxzsQ8Cq3FPsHWEEnR8cTLe5vaUu0fqZUTj3Sk
I5c4BH85vbWiE5O10RBgl0FWdf+D5V6kO5W/SpmI2oiNNlpceQDApC0iPpCNJNfyPizMKb8q2Bty
XEpNFnqiFb0FkH73sr8BvKUjEFQs4J1SSI/QL+40IrDFEQApFualLQ3GBdFqFUmfiGEaba4njTke
TzPf8eEjz13670HfXb3FONaxFROLGCYsLrBYQ5CjpwKJ99Pb+9n/v9Rtw8tuUDHIesXV5taiEWmL
baGn5qLkpeJ1inmHO1hoyAu5+MduFwooFIt/p6/r8jLJ1zCbZTB/PS2j8ybp2J1j2CwTuiemDgDH
8XC97RsrumXFyIJUU5e16otFW8rz0tKCeedtJM1NnNqXaB4iFM7kduLjJu+3SNPi5oZt9I0WoWAj
uHR45OPCTVFirtk6zlA4eDjvdexUK63ZCOTL/s4BmmmNrr3G4f3r8qcXn48TkmexLDSEXR309pim
Aou43twYiGmymE5K5pdLZSTbOxJKLpMvff/kgIW0mCFfGpzziWdMFzu8ez/fi9Dher0dg/UY0dZZ
8nbRm+42C/LkxvROgigB4ikWt+X653jZ7XNxEVjOEmlKk2uAYMaFwedldafCQaiKXklXhsgKWC5v
v41o59L8NgvaE2rKZpGYDOREZfeGNdSFpRe7+3cK+QCQB5DdOjUii+rp3dTJBaRHepJDinjiRD7b
P/ZvPnCOVCS2HEmR9GfKboQUyZROSIWZ0yNvKcALMWOjylDRVm46/DFkObgnadRofr4PwXg/BePR
OC49Ex7XtzfUlIwMAjfh1prp1n7ub/cxJix3L9cP8BWkOm2I5el0U/y5HM5fRy911wDXfoV/1dgW
40i9UPzTL4HK6TEZD1AZ0pGiLBfcQzdI+kb74zFW54aXAeMkFNnckOpeKn0m9majaUhchLSNmyYU
9PRNDqHO9xwvAayIJG0NY+tvN3GX4kFPRGFYSBBXsbnQZQiJsdnl/fC/v49tpPC3kEZSwVtzU3Dz
9bkLHVh2sWeEN16pyjbU7oDFyGyfPvgg/dSjadqYsCOkiVSsZZzL+fGxkWZGNmIFkzTSQ1/oQemS
3j+BKJGdN/HPUBxgEsn2AVryViK+Wj7A5+SRTABbNZqOm5XBjlwlDj6LiELiAAr6WXMt0OPdm7Lx
ktrJTPDiZfe1B9tP2hHEyir/lrL81CcElVR9dsHj8X/l1GEv0B/iKKxr4k0CeaWTHGNyVU4daKdx
0GmZwzkUuTZUEul6prvYt3HIW5/aHsSyypBD/ggtRVGNMq3PjDTHmeq7yFRqxM5nXpJM0VmrJv0d
SMXfPUJDj8cZthEkVafBoTVCkk456bI1zRgR7sQ6HFhhSh2PgPzkvYl9VvqJ2B3dRlJ7n9YGm7NZ
x066LjIG4sgmb+vhpSVV0aJzkbXuii+bKiujY/w38DKWNH7UNvbct1WtlBTcEwaO9MoLkm2GucVa
epJ3ytKBubU2UuUVfebUyRwqk5rWFypkYipdX1/v4wPtTb5ZJpZxTrjQLMNzcwm/xf4+hC43e3C1
HDHaIY/dT5VyIa9wDkY7XFiwr2QKScyQ+L9ue1Cp0W80Hsk0vVyPQJ0JqvxD2q/jlW2jhL0jlctx
UKiZSBHJho8fX+c9LFjvSEX9ENyKYXZhs+iAzoodKTE2gbxielv7lmm2FdI8pIWqC5fLuUILhs3+
x3/+z0BTkM4rcSv8374igeEqIPmTpGN0kB5jGpYQvBJp7DjEzo6FUzORiaHOoVNku5jf6Cb8JF7O
2ENxPqkQ2YGrQC2xswkRm/uVx5bpKUyY/sv1defdt7f4sXvc9KAjPSdjW7xe9mv/OrWFbZt6TY20
iUz6ucgvLZbdjmf8bTJ32U6mrYhFGv0OaN/QsPlOFO8yedqxv3IqFGg7fqT3QZRYKzkZnbxS8HF5
rwYRpyHM4FPMCjzj95EmqzKm0uTM16Cd27w+87Kxx+GAok0+A94wubTn/V+/duUwGfA+xKmNxKMw
eWpuPfJ4JqihfWtmASrU65Tn+PP0ijxOckxRuqf2Qd9Hf0dusSv66SfaDTIw2QV/yE1VuJH/54Oh
mNlO2MB9zm+gzaXNQEQcSljG1MlTSBM5QY+/JNWkLQQlz75FZUIFp6FSJNWVkXOt1/d+frMnbj5p
9x48LTc1REtU1/Bd9x8szTntOZnRZVM7AgJckK+K5Dm026STRPBHtJ0G8HhNG7ICCdnJSFxUAPfD
7XoGWOGQcWcb1ZKdASta8Op3zV+2R9KXYLGMFNroIs9N+6cXnMO/udlMwmqXxj3ee9qfAHbYZ1jb
BGfV2NzO0b/d3NlEsitIkeFC0aVhWRNgmF/xI+TCrufH6RO8Sf5QHeIkLVcfmgjEEdwOE8nCbIkb
gkV7mgUKQjK5GeVp8h/WZcA9ycZUJXx/34f2RWEYOv+wXD88975JDwen9uN6DC3PApIdgEiww1me
TAAOjSp6muKvEPlFjIke+0Ab0E7QPmBGpb0knxPcNz376sGRCB8TzOEdbEcGg210iqccX5x5EMO6
2MscB0DpTTIQb3TsEWZqYtJKLQ15GR2W1FPfqyD3S8cysKs5oTNEhnI3efaFhxX+APnKx6qDAdRT
wDFd5FhLElUGWCInyIyLg7OnmxcabIRKlMPX7e6Dn/MvsBNZA8QBfNrUtNUu9Dfn0sdpHaIHItVS
6KnidzmaSeYoBgcOOq9XuNQhy3o83L4+XqYoHCR+HLk5wQczVi6lqefp6kAyTjpsktyi/PiVyE1F
44Dpkb6LHPsQB2AOMxs90H8bOsmQ3F38Y9YPRxLp/vOOvqgjud+wz3qiv0WYpeFtp/tMckTR0Z2A
+icUUkcsTtjZuQnQ+gLzME8St/wJwgV/wP91K/0epugFNR0nvMH9oNogbUrNCoaROHEcX30oXxIW
R66BiZPUDAFr05AXnuGbRCRf6z6Wkvu/rqJvkVmW+ZNix+aZgRpFJFFy+Y/oSEaxT+Nvy0g0bwp4
A6Ijg84fRF+/NrFl2+7de9rguIkZC5C60ZkkMgMyTbU9F5Ykl6CL7JC67AVu+dcNrDQoorxVVt7P
bo7IO9ybOEurYn/ifMS4jpfk+jKKJFkJ8eZp36LLXlefEl5d3ZzOtI3YRuvVL4OMqyROZfxjCrW7
DxUCLb8ly2/skaHUnIUOHvj79fY4fAEtO/TEegSMclCMcgB7Qz4j/LOZ9H6sYYv+BUBKk7xJolcC
tWnGx0u9woKIaScsEf1IDZTcZYQKIYvKEJYZ9JSPZwv0AFUsZ8PjbFo9OWFxlNZnIufgus6559Sm
ZHEul0y8r7l28rz/FWIlb/rv1wu/qCGJfiu2i5JuN8xWJdocWabgi8zLHK57b5wO8APJcNtYTqum
PMSyyNyxZK7tBe9DSiuDS6PmObXzUnEyDng+l4eqoAJVv3oVtut9fNyR8tDY2VWtHg8yM7ckmmY2
8Y5r2pz8RTbaifXmsE2A0gflNzIhOW3UakO8Av3OdU9L30QqZsPLzCVmWVJCH/vGxlhSm5wa/Q7l
ImGaQlgpTdwF20EOaIitaNT2gMJCH6Ao3XXrTzLbPW0djCVkzKSx3FrUAsTCGre0CKnc1XFMhGOv
oQDLEFapUhW5yzfoMJ5CzpK1dWk9ciODTVATOWRZL8GpuS0Cyz5Ph5ZfLw6xN91KS/jX2p8PIS8z
Inc2vZsljTpt7NZZLra/nD5SJTaPZKfXoneD5JgLWbrFKQPHFP6nIo5Q6XXneucmAcv7l0vc6cqp
0TB4NfKROorp6tomNQ8WIBduiO1NVt+WgtbQ5Qb2SVCGSGjsQ6t0ZZPAVmT9taQLTUFvC9Y0cMhj
//qQwwYEN7KvMnZH6Wh98jIBL3U0XdIioBTfEE1gMt8tM0VCJ9sxknUSHr1L48LZ5I8ivf3issrl
6tfI8j6g3gCSKkoyspB2OWl6DB3Rb5QWmko4Q6FpWCZ7qkdvAK5vU4UnXlnWzcmsX9Lssskbf6C+
IPk7TYCWjZrxhkg7+cd//s8IkVakya5I5YcRcUguY6oGz/4r3HBBVGfA69TcDp9MU5snGuXJZ6Hv
6On+X39c4CS0+AOaNPVIpeKa/kC5KFiGeFqxNmQiodNpS//LVH31X4FoauKQBjU/JwTmdUIbi/O/
To7us+9GhDaA3D60L9a854lx/x92LlbSNoTBGkIC74RNrvf6UHPzanC2A9Fdwboqx7UMApJK3W9S
khcs6Mv+Pqbyl1hcHYoX940mLUSd0hpe/xrhrVIRx/u4/9wt4wmDv+i91tgqI1J8LlwCKpYiCVsv
Ni8X9Y5o4IIHWnFcc38GxfySVMUFjTn3ej58fu3mFw/ujt8Cr0DCIMr5X++i6mRDv1Q7lWvT4iDK
vvK6mz2A7ytIFSWtQyneN4Hpad5lqja9oYJnUmccfGo1N6+aiQbLuhytLS6jyE66GDSJytfev7yt
CRh/+2TIYbs0M7exe0tH6aVUKjQHHC+wJ3naVVLzHbIc82jeH+PLW3oi/hPZ4c/TRAcAeUUykjYE
XFP8uFrpbU5QgnUUIe6G9lTBNcBbe5lR4K/YhOb3dkOSisrkOQzVnf/w9+J0vz6zv6petQsv7v/Y
N9ASwQB9DJW7Bx7PhX1TblnhF/4fkD1SGUkxEH63n1CUuWJbxzEEumtpnuZr9vX+QHUZ/PdvhzTr
rjiivR3/Q6IiaP03CeCB4sK7Lx3RXD2nudZmqrEmqcEPiZu6nZosU8wJwxY2WeZsvO2qdR+bx0Y6
WYXklhjEE7buf+zcaPeSyBKfW7JfvP8kj6m71/Rf8iZ5N+aRSKWg2C75fiSCClDB0n9hXvPttj+e
oqmd1wSLZXRnqsdeLdYyKYpMRAirRNLk5EJWpCB8YCCqBsR0CfnAZmbrHXsI1XTQNAw2iljD8ZGk
dUHCYBXj7GIQSdDQwOS2gcsMx8TNyf91AVLRJma3V8RKFP/XrJaFqW5F+r2nLtlxcIydCkvJKs2y
Z0deRcae6HL9haB7qCKTJFLpdJwOu1lhimHBGnmfbaTUTVBI8SkIB1OkNC5Vxm4W4CprFelenmC5
Pl8P+nxqy4iXUXVIhyyDOvkqMqAmtc8MfwTzKmAJetnj+MVuvQRoca9I++W4RIDMdBj7toaWPvxV
8v89DHd6vO9moBHiN5Lg+OEiqKnHxIROLITFJkRBdtrEgYumbBRA7vj0LHgpIj1BOc4TimjvycgG
/GdUVKvIaIAEnURXc6ZyxgG50QQF5h4C9iRN/ZBC5qkPa0S/byAQJpohVt2F8pHp8G7BLXosimvG
8Xb5/4DTidIqRQraQ05vmkh4idKQJOF9TCXD+df49QhHIKJyE5ia3+f99IitqtJygdjEL0b6CcSJ
wW692PHrNvXRD02aUmO4/H/GIXX8BUMq4FNTHDvBmj4+v319BqQ0oNh5UX4tQtNwIefhJuow2bd4
2Jxhj4sQVlycddKvP/kUy572v3af7/v7CPbOEtJI6GS9XijsTsK2U88VfilSdj2EuzXInl/s4ytw
Mr1N7wTYdpJKD0bZTM0qqytObh5fXy6tIaS1gGOYpeVOoP6SVb1XOL3gCXyxIXTbWJk/Tx0673/x
L0F4DwG9mHDaxiYpsO1ZFPqQ2u4VaYCQekQ8JZfalJJg+fdKYzSBUNF9jn9mFkYaSDkVGjZfSRH+
QTKKYLPyAGb/zTcoBrZ+mxdVs7t+Rvoh6HmdtowcZXQfkv+6n7xg7+vT7+SrnJJeEOs2H4sHcNs/
tV2EOyVivYz/C+7zeXwFr2MIWa5I5tWW+rpM1QrHXaeBXBBaS+w3NfeeyGs+Th+xcTDqo5fWGmqK
a1HIu7/G23VR/GDXDSGruTxVLdIJU6HdM1tPWInR2VFot4KlaFMd/RFkiSiqFQ5fL6fD7mX86+Tf
Lhjz17MP5fnJlUk4qHgtQ6AnIjd5TciNlVbRfjJzjJWGE6euOMfdRDR/zg8gfkXMdkzZr2m2akOV
KvJNee5vU0IlkCpC9ktJuW4lV1lJPGXsNdNtpfaOT70haegz3cukE1WCHqhH0njBuGskHZ05wSm1
eo/VDqGMqSVbhBmfekMlkdjf/3xOCsTKjmog5mAQcZJzWTOvqc9joB2cJhTm8GdoHjd3jQAyRsyi
jX+Spin0S3C3sHYnfLw4qkjPDYs/n5EjQ6jyIU6AiuAJj5mSuVMNwTTuaPI3ou+wucdgk7oyPFBz
/fztEaZ47l6ut2OhSYEwqL74VDlsPe3DYTwHzsCTbgShMYZQYSnPjDSr37rOmhSjxBB7asmwMvT5
w3FcYQhdNSJrJr/ZOM+YmiZOIc9bk8qUoMHMlFKdh1X95keqddGPe06vAk+eNKArPO/r5/5wCv2C
8tp/BZ/1J5APWQsd85Y/J2TEe4jZmue+ELjhpE3X9IXyGU2PHHtShhLc1NmLLjXPDLd+XUAZlNc/
ebHg5fCv9oT2sDQsCy82xQqv5/Hnc9vf0X6EQVFvIvYbbIrnhXSoAxJhU0PvQOBykPKNUDPYl6rv
easlibsdi+Y5DAMIjSnFsJ8azvhzeN1/nM7LvPun1FzXwFSmTW15VZqGEdJSePjvX6fv+3MQE2JA
46iaMA76qRjF0c6IsVdiMmXz5NlQVvwbX21IlapQ01/Ni3dgrV+uFyAfpN1iTNHPWF5g7T8lF5q6
yMGI1TGGuHkQ5CFloPGWCAB+3Mb9A3yUaUFkJDqZa0BQZCLrqqmBYoDQkLSGdCEmc3ND5aqLE86i
6Qjqp3GWGToArRrSZ1OIJP6xpfIgt+I5FeJq93+r4CMBMP3rCOqNF+ANkBouFxC03D5s/Lw/H2Br
2di/bHIbCoU0xSXe4RZt8SqkBbiQVqiBfwbEOMFA8H6R5pwi9u/zf4f6Zd3zVfdeBfW1y9U+RZ4i
lc6RGKrYLML/hZci+uvgQhC/LnbxecY/QT6dqiuBqcHgU8rbkFp1nXndU7wQMt1f9+dWqiq4F68k
jqG/6lPX0ZDSuqlWfJiG613eoqB/vxOpP3mPi6v0SAa5byCqYc9TtVuSj6mSBdwkoi/kcpO22Asu
YfV6p+pDTw2UdtfH+1SMi2J2WfOg5/fIl3tWNOhtKOgicl3u9D7gHVQZVPPaOLRYfVIl23JrZLnm
b4FbQ80RaNhIAP2QrtIuLOimFX/T6hjSgYBo9pb6ULQNdfwzlR2EJ8z59BKfmtj843Emeic6770T
u1hsy1csdrRdRIhhZ8pzGlnTt54nUT4BA5fnpdzBelRBguiALU/0qeV5YVsvQEGQAPeIXq+WGJpL
UGc2du7rVl+hW19By/RDcnD1Cs1tJACviU2AVgu4xgsQTDZ2vxZ24dVHTncq0ryPUUy/h9gfv1BH
6q+jZs/LHa+HEOp50YKv1JF0VCxQmfvr5Y/qWrtCVFQgmg1iLZx4U2inGpFmf5YL2NYCovEJsnm9
8rn2kdO7PO/1T+ROdLK1j1SfReZ+3oYf48ufp0frKATxoIv53mGJqEdizv8QOsPAV6GIc/pjlnVO
94ggtVYgbxL4S8P2Uxo7StKILvZ+XFZIdRTh95uySYHdsKA0fXmw304Xr1H/t3/7f/2Xb83NFeUn
ZRHxZvm9tR8k3xe7MW2uSENCSXOREAFrnVcIIGQIOgIhcKYbtvZFlK/Tl9/S0BmkAVOMnCV+lc/z
PjBCAuj9dbnvX8emTlK1hEW+jK2TovBjEOXCVNxOhz9/PSF+pKOELE47voNpvAKB4GLffaqnvSMQ
R4Z1La3Sua4G5BG11jLapDtT7OK72siWXqQwYGx5YvTGbOMVJN0HHTsaE12Q1mieBfGnY1MCUy7g
mtugyeCDQI/+XXltXCYSysutayRM8/sI4hux7a20NlQT8dS7oTSAxP60rnWWNhWJp6vvaLl4JNsc
qUWr52XTDSC5qch2Wgtb684J2rBOx78DY/9aW0Ekzhbma3IHGm9Cd0LEvrrlAqrpT5CmeYGatXEF
Wq9ACCZRPITJt2aajNSOGjo6/iWyS9ef0dgHMvAlTQgTWy3YfAnLXo/TJXRYaa9AsB4Vm5tuJLNh
UEhwZuPszo64yR9/uz+nKEg+Qoft1Gp1RZoRDME8bKwXqJ1p4yUE7WMVe7qtTVvrJTpONgvPrGXk
aRfH4or9vr9gy9i2rwkZ3hWSlphqy9wmNGxsi7YliUACT7PlfKwMnt04QK136Ur/ztWcj8aOEI9T
bI2uaIXKhLMVtGlvN5FuyxqQTQjFNWoT7jcuLWVhyPBHbxVHw2tXHGiRg+OWBiUBf5TPte/S8PuJ
K0w7axSWvXnls3CnbMEafWmdJUkrRg9n7ZA3zRlJ2sWz1Gu919gFEsa5iD877MK1FIausvWyo9Gy
zgSdDd8zD0ShnnXrindlNLl2zZtamOSR4/3UDRyoIekDZyGJlLVEnRin2NV44wc3NAbtsBhHapjN
pjTiFarFRVTlG4CuoTRo6NnH4pO8wgy1NsKBIuQJf9xGdbYCgpUpURv0peXw2ALVWweOouVKkwKS
CDkK8gqFw9MSCctGNknvtC5aX0sX0JCktZOrxFW/0VwNiVpZAA28lIZYEF84+GBzY47Cp28pjR4G
wrK5AM06x65EKceQfj/WdKHuSEtbiVgfKaNsq2mJw/1+/Ujlufd7msYUB6vEKSbVFW0ctpfexxQf
5FeIKbbjeDjv59oi/6/CXr+eLvtzyPDGduE3fmW3rJy6E80rp9FOudicX6FfVkgZPamXar15NOB5
/ytmweN/ic36UlnV/O+ZLmgyMoFzjTrJE9UWkWARRaaSJ8uc+PV/nc7nfTqP622c/uH8LdaS3b+F
uYjxz/9y+vnPzC7Gzupz/x2TBWbegW88nSM+Ojc3NNOrzZOPy5d4bb3AsKxCvECyil/g2ydaYW7n
FkuNlwzHaoXwLmAJkZfI6e/rZfx2Y3J6aQfyYwT0TZsXxyaCR03ePFf77OUE8e7lb48bqeeM9gF8
bN5xSobe7peXHbCKLD9gGvB7vl4/XsbbG//gXLYcLm4c/jG/9P72drqALTP5wZBlm4ffxt1Obw62
25ay2te+uSWqJi8SIfqevECq3kRvoEspdcsbeFfuAk4437KYULTgtPDbq1LGJ0t5/dF4AZsPOsr7
9AL7Tz5Nnl5c1I4rUVPAY2oovtey34s/Nu929Et09XphtdLl9++yehvP5/Zha1lqVc2IG/j1rB9I
CibVkApwWPmlI55nWLUCL7cm2kkuy7xcf34DA/jSk1156h37AmANXSooxRkWsETWFfHWTmbzOLkw
aZ7BP13Pgi/tIU0TgyUfLOnX75+8K/5RSZpMRqKRoKM7/smL0P1f373l/1OCn8+VRRFeMaufB29O
2gUEEE5MbRn2nyGU/pfrj/t/ilMm0LfnFWwc9rP6cfDepCdm3DZDv/x6BrvW5Qr+3i4kgfRkeOt/
GV++Tmf02iK/dqQZqPquow/XxdvPlT35yzX48vwsoQikX/+3AEc1t530ZwjR7TSdi7x/ewu6vASB
SvP7G/D+hrRACKDHNNYrPfzcCcgcQAQPxxVSG74g7QGQH9KhPIpet97FJ8QgH0RMLQq5urv/6+36
9QmFuKsJ8eYz0DvQzUzxIbmEz4kD6W4agsti3MhT15i06CA6JL2C3wakfbryLnbrDZhOAR1kX7Y9
sqUiiGeAHs9vEN0OnZ2t/5kZbZ6+uUdS/OQtIl1Y48a5yrujg8vdfWLFnKuJH/r5gTRZX3ygrAmb
akzQbibRAHXlF6CjJxjAQraaHPTvp0t85ue3x+v1+vgWBse9Xb49rp9//KxaYjOPxYvGPII0kytx
/PXtwY5PiDbc5dgmaoKkyvxPH7+9vEWK+beAhLK/3A3l8zo/fzqyT4n8vgRX8E+9j/vjt/S9sfSf
W4CGo91CbkmYwvLi1zDZlv30Xqqa//Xzm384MFU/p/f429f9EWYk1l9FDyQ+pTUI6VX4SvX4CsT9
TX2jSbAzc+bDVh5/+UM4Hb4dxzAd5ztXRhNPdCBOrV3eZ/VRh/HyQH55L4oobMqXxGNNC9yCc85L
RV9DCx43IlPff327vb2wbzBIWfrm3SIi06Zyv028UsLF9A/GXX1CqPXg8hZG1dLTI/VbED1kcKp9
LQhcCWfYASCbRKjs4uHPGgFvgFqFJ2q9+S/nrxFvviBLyFyKFW/npI5ero8HYyLiEh25XX0GEvJb
vN3G8dJ4DVtTE/M5vLfOgcA/5HYlJvo3voI3xXhZwUTbLGtn+MsbOn9B0Tf0ytYgieklAsZ7nrtJ
+zW/PgBG4GQJUsxU/eVE9veRHZQb91Plj4rVoKL4qAgafJPgU7KuV2Y50lJrh5lKvNYuVdOsFspN
/fy6fSKdKVenOqn+ZwWzd0Mp2yartmmFj9PxCO6X7MrIubybT2yD1KXhmRBN8jjb9iZ+QW9K47dY
z2jwn/uIThYQgqrqqP3fv/ZYujuC1smFY7ERCPb5wRVafpaI49My3bu+FEq5OU7kOBE9myjjm/ef
zT//CX1tJ4kb8cyBeDfC1e7GbLYO5/39zj7b61LXkj1IKpL9/KqR3QgyL4mqBun7b0/AJe8C6oHi
TyYXDi+6/eZdcASZ9rb0edXy0bdnDp5qAbG20acj/7PEvYiMgaoOe/06vN+ZjF1cRYiqgS1XuY1H
fPskET218A2ij1QqQ1Yhd+UuGF4hN97ElgtpzsoB85a1WkQ1ZOm3Jev0+ZN32oZSq7q1w5GsNbCO
prTUNgsUdrjIm5NuDfEYEojN+6q6HoKkb2572v6rdW3j429frj9ue/4G0KRkt9CRot5KyQruJ2ke
L8PfhX/pzx14hq5mvmoeEcwLki+fOz5v3VzwFkPtLcjj99PZR2DYQSWuNiH8rGItaMwdUaExiaJK
vR+glNB/5vLGa39Z0/7kSx7j/tz4DlmL1+aXiFnWb/GTgA1ypUYbtv7+vhHyEVSgDPluZdTKSTTJ
P4Z7KLuNRWg4RcSXiJdpbc5aZsVbNVnz9qlGRkbJcMfw/hwYQ/JCEZrvV95U+G3eludrnWYMrPPs
39ieJMkVJJCBWhK3cfefenmXnw8VO64K6UTV0nBJq0ax9ApYESQ7mOj66eHoWFN1zLujslSOutQI
pRzySqH8hpzgqwFT/CrVBGnS8Gv/mlX2ssY/oe51w8UQQy3YmYPG5+6lXSkGUd1UdLCuH4pAxZKL
CXBKkqIlSdL49dglEI5VZc/tvJlZf4ujqYlv/sx9HkQNB1ybaayRyV2i/K9542NwEXwyHoxc4YhT
gPH+fHw3rC6UJEK8/D4rvQTwCEQ7t47NoKNjV76VqgX62CQRjDnKwQaLa/n4A/Hx4zFucLSP/e16
vQCrOpQqzZHcQLiDwMMaat7p+vQPwLkZsjolidJ46/wyYPP91VPl1aulCDA07+2pLX0SW9+7xgF0
tVRDEWS1rrJebaReOzYYTXcdg1jdkO5yVeld2dMf7yeQS+iVqgKwFGdqwm2mfA1b1d2NVRzxLiMe
XqAFwUn+3B9DAQMUx15rxr+6PZNzskMVKyK+QRMrIicZXfXCxwkssRy28R+xClwsUYhP6CTv41jG
qL0/JY0EBY4KqWOOAnwBCXlkZnTefgdxGAjiEN1VvcKPnspz9YSmGV0ktcH/sL83dF09/l5pydt4
5kP4riZXKzgXhQ1dlXQ4RW/8z4ry08UWum1s3mCfgPMbqEtPUJcIn7pN2DEFnrzD3xUI8ALAUjON
RVq6mp1Y5d+bWl4JAKZ5j7GJaBJvJUYu/cbSNPxks3L5mIw2SE54p6cDh5oRLR6WVbVdoHgGVdUs
miCqflM8jwYk7WruzgYR5YWaJdxjBm/fVX/39qSpHZSqZUKK8DnoQ9baZzc5DlR1GyS/aZx6XcM/
V2SEdy+Bo1dHwG0cdM1zY/C9XRRM4IOubMWwtjYzOsZbG4Ou5ftzYf2a5OEq3ijWMYQUQDvxJj3n
N/YZrJBmywyNKtcgDXut+lodCJ+Mbp6OKMFLsw1zMTpA6Ec0FbralRZbZViFyqoOHTVYDz1hPUT9
aytoPPAQvUlVNT75vECs9Pn2/QqSYiSzG5XPRomcTx8t6kbPeBOFLcOnQuBgEvhRKeN6jabjGMp9
NFv2CAThOlOHYQknDalCcoykZj55U9h2sOdXUaOsL2Fq9qPkWCigrfLLa5MBkwqxrZGQ01UzfvuN
NQayBqWLrDl6vCmtRwprt5Y/DsdnqJ64jetASfPKbkTiTPzzCCiIVVYA5+a1eiLFmnJN4DSHumdI
kVx0pfVACpOKMTTPvsJAX6GnjLTjc0hYpwEp7rl4g3BWqDzdfoePNVA+Vkc60D/LPxqkqaa6I54W
9AQQpL6EMstAD4vR4Fi3fDIsL1eEw6oqGFwBgxpsNl1DY6d1juPr3v+vgXJb8c9kzbwB0+ZKNEpw
Zh6I0MB4UE+xjmnmul9h0d/byUFTZ67dniQsDwRMTrOdV57sDKnyXqx8ImB/AhPt5cpTclVyJzhJ
wzrD93ZWoSdcqblee5tTQogJYYaS3oglLA/OoXTDsyrcpAnZ22xZJ2G5zcFTABe6TBWrrgYaNSGL
rqtZBZpcQcCV6Wu5zp+ZmcvGQqqmyNd59oZFI6WvtASgCtnwMW+dqF4I4ng7cA3PkzTa0ltes8Wf
RCIFi4PFVVqwsFmRH0qEfL2xQEeLJ8jr6Hr0soSxTF+N6XDA7Ya+GkOsNrURtRvFxjH3gpcCYkJV
I9OXd72Btw91kmXUVTAeGQilglDaNnge1jVW1U3eLBMoke1vmalmkbZfz1+PakeBOahCXo8Ppqq1
HCWZhg8/Sj6fUlwZRsPWrYLhEoGKr89fJsu4G/HwQfLOMjmBSvKVPfehKna333D3hnVdmeUdBnCF
hloGcIvO80ra1uF5kvFCiLZ2T3BtA0cOuL2iaq+Lephm9UW3Mtm6QnDloSVXS1RtWeYNo0ltVSYs
FtcZIiRUqAp1WCkNYmVb1S715kNa++mIWBBoeIV0NTImFHXXawFfwGEMc9iuKt+358sohs4y9ZBr
EihOmtShhqpHyIMumgFB358C34j7EMLdqUfiBLrEXkz33TRQERRfZbUfN1dVjT8+Fcql7EhSNCuN
VmGnrpKfVoxWEOOoGk6QP6KVSKPFUgNl3t2eRCJtXyvOqPoO/B3L0hDUqNkYkValwyDKrGgdeWhy
g3vCDQ76z1S4jI0CG6Or4MOWy8XbIckUfh1bPH+hqpF/uQlNbL+n2L5bLAjV3vhOuGpWNaFPV4SA
luHq4sIRDh5QSzQy2QT7z1eD9sLWegVVTGCL02oNk2o9NtxRsQo5DVVun9d5PDyucyEm1OaWDbOu
x954PzzhjwVzAxAwwzBTj01KnpA1hvj2ABAGRpVSt4onniNH95QYm1VBvQKrIVEMt3SKzaAsmLp7
fXz2KyhfwJQMYfzDNEmliiKB8NKYlmxFjUhdgPANX7zTtaBqVQOMMwFUETtaprHWY2xAbapR4Vab
gpN3DBPw2CqbItBl6ixbye8JEEn0hSqt5/eeKD3qVbUH2LyLIMc89LUPWCOH2IXvRNXl3YZUjW+Q
ZcmIKzx4EB7LoUZhXPWXAACuqCU2SwlseYeDZtZY85x4ZV7y1pYTrLfqYK0rV19xe6YUnVYdD7Ui
ARgXD5Typhd98nMVObHBV5WNstkAqAtoSoPpVNHQxEOnq8ytin8C9ImpVTOX1JHGQTrJEP2fbLih
VsVrQ0UxdeAuulqzjJ+0FJuN+VbYROnRNIs0SI0IgXqJELUCHbVS5uvGGC0BUAOTx3iqqUVnEH0X
+3OEIRGVCF/zBiyyewKhRvjYoFis8SmAmRaRV6qzGrRJUzDIrNxmcVqe1NDVOs2sxA/EJ0NXp5lk
Ejk6fmWrzsjttzzRQUimxCN+A2KMVekMq6p5yAl0dZjj/ent10wm8thUHCSiI5KzRhNbSUxqAooS
+HVDFdabsFWXrkKY4715rqnMe8Ob15Ipc3q2xqmzTDxXtLviITsvAHkFp5Z2kkVQgGEFUn9AkZUF
6WryEkhEUET26zIO9g4ahjj/vBCJvubJVNOnMOmkV/WyNrX1e/l6S73u/T9IK1zPNaM3gnS0J66E
f864gX9sno2ZIqqMTXy99XLQlu9+b9TszLvCmfZPWus0/4PzvXcFGBXfU4Hvk7O4uQILC/siB8v/
nCI/J5dL6h/Tqjf8Y241H8Auv6bdsFPg9/r8oKIPmkEZflvk7NW7wh7450RvDDh2m58jUXF4TjnV
9/wMBKMMOcBswP2jg7TawaMfSqHR+WW7jt8bMZQSs8hamDelDPrF+aq6IvAOYuqFxoI3zedIdEz4
Sal6C35Qi0Ju1LKvtvdWF5wjuzVDZwU4DmHJNInsj4QnnVBAAkyWcNoP3Iuq8tEm/1yfv5BMmI+K
ZjAW7Knryz1dXlRr6cCVyt/nIsc6S2rvpAFymj+Q9MkJv2eV7YHUSG1LXSOyzuiMQp8omE+M11+C
65/VaWxslkXcDKLjT1FZ7iPD2HKpwc3Iv0jq8YKgdp1QQFBFKaiL+vYfD+yFJR/YLUFbPHwjwc+R
CxzVd94Yb4YV/6CSlnnPMJtSgDNURKNaeoOlQZpfEzsqqFZU2oBrKKUstalbfs4Zi8TbZY1Bmg3M
siaArOWdCYfZZ5OhFTgKofNRxFEZy3Na9sBwu67U3lk/dcag9+zI0QcNJZQrnQxgo7qulO5FaXjN
7oC4dY6xbcK77egGC0GPw8XZy9lmeM8G2YwsAnHcYBYdv0MD/7JClHd/ORCnHdjXIb9pTGgQc+o/
kv9CqZmDlNoLFTAYqlSK3cp8g0tMRJV0xo07YwegwIVk7rDt+s4B5aaL56g3pcBJzDO+4nMZ14xX
yitwZL21KtVUtqaul8iasmbY6g650ao2wCpcKeuQnel0+ZzKh2+B9RZkRwmRKGpTa4HQDKJUp8tz
3otSaENFV0p31vtKAAMliANOy0i9dvN7BuxavkyxGnzIXpTXAPzPrZ2h5TWdDJL2kxHQYRWWkFMX
cG6ZY9x9GTp3gOPrS/950cDaaOA/SzWU4mJo+KSR76VUeX6yOHikgEUZCTmi1qBfSn6xNKROAa09
z0JeTj7/Xjd0Gik1ybyoFN7iD8DX4w5D+v8buIMDifVM4Qh7xW3AUWRhI40zojYU/Q74QtIVuilL
m1dbA38ppLVMMGuMBSGJpC6GpHfXh/jgBGkgq2mML4zR4FLofA5R8QuisxE6oHpZ3MJssIV3xw1E
TfRQhiQdcS+Burec2tZ+Q8GOmvJN89bIvkfvuSRnXEnIi8a+13fgXaw8r5746whU6IjLVmpSbXXf
wTCvL/c0qxpgmZb2J5OPoKkqBSpR0AhflECUtwZIJyoSApe2fugFALGUWGFfJHQe/OejnzSWiWT7
3qCwslsZGnKFjQa6xg6MvQ8mFoUJ0jhGaXjPZABRkGGUorexQAnLbhVXEmTIdcBFVJI5fiElwr66
Et3Jqq0fFApkSpWY4+ahA8c3z+5drkQ2aqEkF6hEW4JJ2VQMGv2gIiqf1CEtARdy9HouVJPSIkev
20xfne+hdz4QuKMZiTHeVUcIdM8GFUBgOrlSwcvJIzHrOtamSSeBk6BoIFJgXs4JJDBkNy31f0Nw
B05PlsAsQVlCTAj85qGUF1uCekBPEPginjsxvsKiizswEYzqlEP4xVqFZpWm7NChV7WlpOWj75UF
e7qyTPnsVcAtkSUUmoli/DXTHXjRrlRqJocjDgQjA2OWlBIKROeCs6BaauBwSzkwd8IO3iVDB0HH
PTtq673MAMMrdFf+Yo7qO+OArBGUNMpoDl57a8EttIIRNWGQlRB6dZvyzigHHFnZWyZkEsogCIkg
XaRzTjhBpxWQT1NKdg4nBwvCEIpZWGo7tfdvgFSrlWXJmRHXKaRjBAnPSaF6DO0GL2zQx+s4H69z
IOolKTXShHzWTij4WTlqWTt5PxZE9iTdVDoWohMogaukKO+SIukfYNCI1SUFHcnd7hBy4RglY3oA
x3ckVg7hQYYfpJYgRyn6FeKYVXanJIItuhL/J1femR4E9eT8CI0oISzg2J1gNJOSKOihCiZHrvvj
6/V2GL+dPt5O928HhrEiKYnaFS0Qcr4ZhSIrpUEgUtehXCzJjUctRcD8TgEtLFwJBWb4QjiAdUrL
MRu8Z6ktwLkFFfKujA2Bz9YR5Cr2bRc5Ey8QAkW9/BJnsbID5pCwG1YZgH6QiGMyMBvqpV9omAEg
SQdSBJL8xAGcIeVFrMK0oYM6nGwqKXgImwrz6UqUiip7GcYacLWkW0G6xJYKgM4JxSk4NUgQIUjq
eRfwYy8GBSAheojFDXZCIA3XDdlZiF25c95Q9AMww9JxfAElgeaXSjDJH2FC30wQi5KIKwxJVURm
BEKSBAETSN1iMjbAQSGQUEz8uRIlBzeRoAkx7MqOmzeY4PCpmSryB15F9RoFv5aFLzoFXFOlOy4v
HoMS4GRS9GqFlnq90UG01NTSHdqrN5Qj0YzKUP40wHvKjuEKeRdMwfCi4yCMFJgAh5ik8cpsVT8A
z1YQdG4VrSMEoyMBVIl82G5AadjeMKrNCsQYILk/0v4gURKBNSRBSUCVXA7UbS+QgqJphxKg8fcF
JWS05gJSKxtgRMewPmJqBThi0jCJvCRs4DA6LuoerELOglAlXcRkvS8RMa0jOUcyairsTt8jN4rg
JjFQEBSDdJDuZzn+lX8QkugoYaDMc/aA2tBRMtQKLlUI1HVcMr1XGoWXPUMuTA4mMFBO8nA+cNwo
2F0kZeSgwU0ksEIcwzIU9wLcCs2dggP+ekd9vSI3FsiaIERUgvu6GOeD7aTRTJnLMYBa1hFy6CrT
3AuLtH2Z4tic+x4cvGLivSkFhHi+hgmfDCK0dUTpxwharZx9BBEYBoM2xsDAq8xaUIRdoHPspGYY
VEIjLjpNPZRkXR9YAh9aiYEDT0QPtpSo7ogQ5hSX9WcBxHRFDc5i6oYBsmgGx4VP3hlAzDtBvSEb
hVzQ3QHg4MrfIzyxvkNnyFH9eq+6DSQJGsYZTpljZL4dk0OKyWrEabTMiSjvfoMfJBJXVjEE3o8E
Pm3PRN7e6ENBlQyhDQEgHWXNW2pl4j0E2yJXFJyectjRSQjDQhIpqw6On9pEVRBoE1yDtCqHZkVX
E3yoXdGZbfmhwORQCLwM21WPckJlZiejri7gvMDk2PIoszOtOsgutpID+pxAaVljGPfUe1LA+EvV
MaCbDxKB50YYm2TCU3L4JHTdSVkBKd9duJ4o28Jam86APIagFPHCv5myCkDGCa0iQhrkNIxGp2HL
jxSU/wMcnJ6J3LxyExypUVA9vCJdW5S9IlqjrCmYMGUQ1BjFse4HLxo7RKxYsfd6ktoDLr/qmGy+
thYSWqUeOA9OdoCxK+TAFMzJDiXNiFNcWhohEGNMyJ5JRPnXFIBzrWh+vcyZ+ZhNKk5qlCPwYKgO
MIX6Bj9IlHf54DAMEgXCjkEzBi9t6DnDOgsCwe1KdhyjNQJg306xdzOAJ/ILBw85AyLa+xPAnSZH
SQZiRLqZw5ScrOBigxWTwYkBpZOFYmyGHeCLDoLxUgMXAiEMAweDxY0FO0pKZzqKhRirEZPWKc6d
HpQBLrE1TC7CuAEFxH2pGEk1mQRxu6BurSlLCY02MHSjjo2il8qHfMah7N7A1GmB4qfc0XxDiwsD
C8HGKM5bdAbhGSXOZ1bREPDapGCUcFL7iPLQMXZGdRrUMcg1YVCUhaTgXa1mSpAFrJQWZf6KVC4H
ejkI2h2TGPCfDo5Qd1xCcBDgDGXH8hZ8sItKgWlldlExE/NeCP80DAomlEawlBYsE7pDDFNiZ2Le
S61wU+QmdkyqJbFvkZj2JfEz2yjjUHZPER5JmRX07i6CXgR7jLGYDHwkLWcI6so4UUIFqHJ9xW/N
ztSA6PfkEgfTQYuR1AD8b0UeLKMh79ogCiDNuBSGRg44MF05xKS+QFrg1tqOQWyVGNCvDcxjESgA
ymbtZSriu6H9XOMnqgz3kIAbRuCkA4WkHfEUVibY/+AdfKBgYr1IMkYvSvzhMosVam4AoYtgoKuC
OdsJBEisUPeMLCjE/JVULRZ3wipYuCjLbFKmmnrtjRpkOIZX13fOYvJnz9VpSSMQmceWTgbx93sF
2LRqnY9wpMUJ4J5JikaVIF/IeqGSOcU5+kpZFNFwQmqdN8JoT4lnGpPRQqy5QEAJU5TQUCsVlRvi
OpZlvUR7K0iupCFmAdhoO0hUPcX1SNDGAeVGuO1RZ+SfM6FUHhVNWoanbPsBdPGRQ8fRQRxiA2rD
5aNi4gxlJCynTSPugrgSggv3BwUox5J2EShwCWkRB0ErLkXrDRtAXWgp4lAU3BkQ6nfkCq9BkE4A
n8+VRa+EHSsk6jYkmbY4oh8A1UUQcDe2KSE3UIEqEUlQ6NL8TpcegSCSuYORWIuQb8EoNyGsgjma
njvCyOpABYWcAk9cJ4AqCsO000q/CaAFrZijNL3uoH2jDUSKvgwR4kd8GcU4YSb4/OAHuZr+ELSj
HySsNdK6Nl4qJOVEfYdv7R2phQLnLxSDLYTk3gDKeyXbwynUvv4doASWiWmVFg65bhxWGw0GMBeO
642jUKaVCGlEv9SqfBncYpIYKOFvJbVGJT8rkNcS/Ybov5ZDlXqLyi1Vp1imW484p71iuuj5s0Wi
tqLlkAwGaqYkLMP+C7ARKrKVTJWmNrADVz68kDN1GdYdHHiMsDJIu+1MPUHpGccY7UH2FoV5HUvM
sAL6F0quODaG7A0IgJ3l2ifGIj9gLKzh6K3pXZEj3DOKVPQaBBjCcApKQukW9CTtMgJhDteBFyUt
Q431lxdIDom5S31vUYqNlqKWPUc6WJ8reZ5xlFOAehP0q6RIKWMRoUsqxu8Wg4FqzTKdEGPPL3AQ
JMkWnHedMUUrDQrys4UJZPWhpMQDap1lcG8fAfQOwYJcAy4DGVL9qs9FyThEnhcpSVyVg4ehGQBp
4wjxckC4kJFM3XOqS0E1BnpDcpsaX5/3n/cwrCu1X14av4aGBIw2iIVmc0HHsM4UaG+0JCNN6cl+
ebJ3tINcelKBJ93yZIyuRd+lz7g+3sdbfGSeY8CtoWfZCmuE6E50Uwv98f6w4LH8ubH3pZgg5x/7
qXnx4530kGaXmfMPcSJ07AGd7tL9vL+/n69vV/AG+eOVC0iIckO/eodpjAL4fbEsEqL3IcndxX/7
ePy32D8YvIAhuy+n3fdPf6BnVP7eKOjznDf/iwo8lkUkkqvFHLCj6U/xSTmsXnLyN9InSvCTOu+M
/xdDUh1kmh14NG9qNMv98mhq6I72p1u/bpLGj+v3OH8WPCnzk0Gbi6B74mV4Pz3C9vpXjg++ns7n
KB67+8Mvwg8AdcVUhcD3GdLe5RWuXw885pA0t45serVaYPz4fPyKmwrWULWhvnmN8/h9hM/rsr35
+h1uDzA9jHTIj2ptUjDTBo6HODTLH87t9Xz9sTucT5+7w83fXZBsFqUja6cD/su/0P7b+PPTLzoe
v73uT+cv/2xc43C9jdM/XF7Pp8Oj/rmx5clEKYqp5dxPauoCfhfsg3ZC02JddKa++tv19XFBvyeW
x2L+RpO5Ytevy/EOftEsj4YfH5ZhmuA13eSYpSzvEq7cH/vLcX87wifV8mSM4HWxMxK8p1seDB7r
BFTNDyrwYF/ujZo/MA6WQL84LA/GrnlimAz08foRH9h/fo6X4z+Fm/Mv48vX6Xysf3i8NFO+Kqbi
9OLPkCXQs255lrDhp2ev5/81jMkAj0+so+R9bR9HPzyUT6Zrf7rcx9vj34Lib3/3hPalvPciKmSJ
//TTHwNcQZQriHQKH/vb99MlPpEs7awBlm7776fjcbx848fpxeV1Phjaj7gYOOpXAiuo/IIBLHZk
CEt+qePp9vj17TbG/xJHq/ALTtFS/GJNJ8LEJSNH7Nv5vToTIj7fm9qBl8+/3/03gSV0XmI1xb3+
TeBriATk5hv0XfYvfkmwv/mE6Iyp8l28p3f8ddl/nA7fjuPe24Tv+wdY0/Y1sfy5mtTATf2IS7jy
Vs6Of22Y4y6YV/CBalkpWmiqvqcYYFrnhjZa5m+K3R01eCG4kMpfFmnDtrbh8+26gZMnVyun91br
xAFH88XA+2SG8l642nrzCXJTNtJKRKcQNDFt1evp53jcvbyBDcoaNULnhj2wv3+dbn/ewZnZvNVB
f0h2Jbw1MotQtKsCHRlWiMaWV39Au8wOdkm6dShvrmNubntSULpxXalJHD9jhZ9CmVbKGjJ2IGlL
5jSN6/Ry5uKOpFdsKVi6ufAt/IvmslmHEpyX3UgwbSgtV9p11SFpadgqV36wrJjP+zvUNvnbCH2E
/TZ4r12+17F/itrYmu/X0xEIrCpl322efxmhsVMDvwCv8p4QgI4/sewQ8N8lCu9T08dvX+H6BJgE
7KsqzaXhbx7WCC77FTHAKYYMrufU86vY8nXKoWXkgzjbPXQ1200fDxEQeAFyH7tyP7Y6sqGLTFdz
sktv7eX6k3fVVPkuurIZ8WvYBbLMkr7X5QskF41doSuVgEEOzC6O9QOmjHgfXTmpPQ0ERAMh0+kM
Nev+s2oi2DX6mojVTxjcO1PzWMqz2Xu7zm5sX+izupxt7RTQI6aMdtQz9gksJ8rv69vvh50Pq2q+
fkWSgPzk0yfjvRm/PCIrLYlUulxRYse6uZwtnQ+NlEeywkDC3BM+8TIMsKGKbF6MVPutVFE0gKzA
lgZYDc8JRPsm2TIgrRjA7ymi5XeKrFCMeSz0bJAw/utWbhiv554TLEkES24G3xafxb6Sq6neSqTP
70sHrlz1vgDRNmVgVPugG0IuiGGXq69hoJRGMJN3mLRJYe5ay23W+e1IXhm9HVSeRtVgPV6agByZ
mhytN53/rpU3o7YzJxPfjUfpNAGMVo11YxG15J8kvlTJyg69qDv+uYGomr4g5HO9iuNjVPu6YgZG
x3VGjs+RyC5Ej2RykbB2J8Av0oC6nPTAtQNMLzqUrrIsfxA8uRb6zHfrnQOfSKLiVQ+rMLoIPKeZ
5+Kbgge1qUU1sZ6VmQ6Svm+o4mVLHzkFEO0sbGGXjCtmlwEpJVFqbJqli28Eh0HMDgm9EjMEbqqt
ufWRzOl6sDlEhZZFf0lserCtK0AzF+2KTku0OUM1HgvkvEBt40+jI6G/oV0WpRQSqYzsFseOREmr
DyH1Ck4w27lYvSfKjQE/R9DCVb237joHdRtJDVg6PCVyUaA+7bjflH3vwJ6K/JOVKYJI3/QFFGl6
2icAPEfApHUlXcey3tI3qtIRNiXTGQncKkwob6NQ4CxX2YiheBL85ApCUUPR0wIJ+VD+Yp/Lqrjh
UOm5rlQApOGtRYrKFC4UqeKSGuwLCbzKNtlCKAXk1K7ymqXuB5dfG1Pz9eYnwatqyWyoFAbpN5Kw
KdsQgi4I6RtNeRd7MtptAC86kJtRDBbSskNnQXz6aDJIh3TXAUejX0XjQ1kZJ4GsiRICGkhJNBKa
/Fg8zS43LVXAQTGdIs8FxW/JVCkLjBuJxFc8Um4qQnrPjvm80E4QbCgBklYHHzplgktI8PpVjVLs
04Z0oqwhKjNR+hvIk3eWcabifQKGkWTAy/rNwTtFDvygrgItwSzqHvye49R+onYi32Z1Hrn0Uw/g
B61mLr53+YE7rDizz7cdTm/ZF2FiLv4wA0fNTepCl0ZNlUWY6MnVL5KBrBIoRFUH2+a570jWTKnZ
yI76Q+rBg/0m1FzK4qxBjrsqYxrCIFcObY1jrIw/e2eQ+XXMmybDBq5TVx5G+SCQbq0YL9q7kRaZ
ma6WzFzeFAVSqkYUiWx3GND2paZZRaZgb0iuowxOUogBnhxWwDWd44y8DAJpEmgkNvjhxpil35Pl
75FYWCIn2pXx5ao5OtJthnFpU5ABtoakxaMxpYMWB4tChQ4hDEAAdBlj6tL9BhqHoNUl+JIkByhj
vcrpuBZZPjHXEblNl5pBl5x3tG+2sNF69SRwfIQp5d+tufKRjPuNZ+MmEqXOzMQgK/Mc9UAx1uCx
TPWMVc3C2UBPTjzKy/d92rrP99P59Jl4dX699C/l8Y/P/eP9j5fxr9N4+6ev2/fx365/vOzvpwP3
e1rktwyXd2KW+pUO148IK49/fF0OATcd4+qP8Xb54xhZ0vsIOe+5VH8IawmRNHp3dl59Xun0sX8L
v3AcX0+X8cgttFwCUTRGvJ/+Gv/wK91OL19+G/6IKQtuDWfzyxC2HHmZw+16v6dNZl+EfFEEuMS8
SPyS/3n/2P9xffnbeHj88Xm7fo63x2nkZURk8mqc2trNiwXO9b/Gj/nc3+7jH4ev2228PP64jYHf
zm7TXGkW+bd50FdlwdMlEDX8Qvczc4fCcoMu6bw9Xe5fwkc+bvvL/fV6+2DX0AOzRhawuIh/r/CF
9+vX7TBCqeozb1s7uuJj/PnYHb7uj+vH7vV6eezO1/0RsMzD1ynyibGuTPt4ny74x/G2//FHIDz4
Y0h6bJz+K7emzWTmyKw1k9YKK877FS/PH7frIxAgj6dbIsizS/aEkd0tDLT5wp8up8dpf2Yvucq0
bNKRsPjAcKJ/fOx//n9D2v6P+8f+zC5nTV4ugG5GMV+XheP+5/iDF1vKjI8AXFd83f1xu/4ZlMT+
9TVS/tnvHGT5nWZe5x63+b4PasyLx21cvyr3qYIe5RI91a77fXyw91wSic2p6dX3fd6+LvGmf2cl
awlaxOS4LNr67bY/nsL9OV28Kvu8nsP3enH1t4lbbG77n0R/ifAaqn+6n9evB6/0bakil6+NFTCH
/ecfXlvzm6VlKV1m4qInEff/Y7/R89twAiWzuQjAZ3Fd4oOf+1NUp5/j/uG/1zslbI3Bkv8tVf7G
9oyPf5z/2x/jT1Z7OZOFnRShLlf5/s9X/2r/+fLP4b/5/T9f70DiyWIRDrbFzU41bYuu51RgPi9S
TbvVDlz5T1QJQymYbr3h01Z/Xbymu75dTuCjFiq5KALlQjBD/dATski1u1lq4UvNnm4f9JKsI/Ik
Fypx8Ub3a9jj6ZVOQDTzRnVUFSw3OPynF/TD1V+W+/v+c2Qlc57eveiVxRkJX/afo2v113i7Ypdm
bny4lDMJbKGfdf6cK0XCbpdN3t98jF7RsCJhyv3XxZ2JwpAOkC1q0kQllDclLrG/HdJm8yuo3pZK
RfHW5e18fdmf//H8+b5nZYqWn+klIKSSMFmWsF9+61kpMKQczS7gPnt+h+vnL95HZgRq2aT95c07
kYaPXyyzzdtN8v/m8CdveRVjRTaWtxk9KKrBCysePysqtx+nSyx/vn+9+M3yqyremyJyYJeq1dm+
/c2rbx+BfR9ZZTl3mdy6A8hLl7yXTpbTC3hS7NTh5pWvVyQNR3Hu7Bw1b24n3HLWgQLuNeMqok9l
r6DoB0afb6UrHMY/7T/560fezFFXarZYSaFcrl4RR2vBRoTENuhlSswsDh9+z24tEzw3go3f1dcV
+WV88zr3+5j2nN0hlbUKyfOGHXrfH68/Co8l/pt/8k5i8wUNieLitZ4oX7+8wvSW/QyiIdev3AsH
/J3L9fIaZJT3gHW2BCFtn138w3nc32JM2lxEcLuNHF+kNkW3supqewU//SWJhopVUq4MawdeBny8
yAtAvsKxm6Hgbhy+aZaELHJBz4o9CvBGip6e8ersSgebQgzCXWliVUYxanyS7cnPoRpK8B5Fz7gU
ySFMkjTtN/tN1LB0dU0+3Sy/Klc6EoEbU55aCUF8jPv7l9dpP1JwDsGHnkQEMg4CK414QBqiV/iH
5cNMEkcr6u5mUVT7G/81HQlTDXVtVtHAYX8f+ShAlXGShp7y4ZcXoSPvQUpry0tfYgwrOODw7v0c
cF6aFOSX0szZtdvby451KSRBFTFuFy7t4bz/+AT+gB0YF2y9cU1FKYk3R6peVsBFRMN5WVKlLNl6
KH69hTebdh9DsNSTt9RyI5/C8O6TYsKfSaukIOU5peKGakuJyYMo1OTL/nj/en09/eRRsb68AJVb
+ON2vbxFK8wGd3mzYoas20ZOTwBrRM+FVJ3r1nGB190pfBov/Cpd3h3CCK0AKeyW6GwjE4z/BBSD
pNMRV5xUglYdyviprDfZM95kO4ZGcW/fMYq4Amh6CfuPXp+ybWZiUOUYP2WtGsa/f4EwwYky4uyh
mF+4aTlRyMmJ6g0aFiLOx4/r52n8g+8BQlDfoK/cAA3Fy3jn+kTE3+csejae2Ekh4H+kILNbnNFx
HuCph0+Pa/Ao/9//8l/a0YlztnZUDUMleENFTt4tHC3igi3izhq7pbqtjCUKZ/ltbGyzJH1fCBMy
v8hkmwLazCO7g2Tg9BI/a4RcmnOVlxMPd3J/e+rETT7xuY3SHGh93q6PK1L2rjcMkluGIXBnlbS/
kd2JeQa4Hm2zFEoXcnKHxDXXHzc+VBcKpSGpDN+/v/F+kVTVrSWhcYTreGkhOGnMLnVb1dBA66ln
VigXPtH42N8efKKRrBeOzcgBBNfj8Q3E1STBGIFAFO+9n97ez2yRop7Me83OUL8xGL4zf+yaKL/4
So7HtRq6gvhAuYf96/58DmVcf3z4/+3pExAHRJZg0hyzgI7H82vMvIVGZwhC1ow9zyIUHChWBjWx
vLG+aajrzrZLpwjxI7qqNZduvISw8/71Ev8d/1YES4ugjHrCyOx5l1wKDsSqhEP7KR5i7Y2goHYB
GpZaMZYExjPgz0+V1AOCHKWQ5Ta+eofsAowFobEEn35QW/wKOZpCMFHsbH+DQ8+rMHIvScPF8tCD
7kn2iofAiU4vwRNWkYG4wFKHIPVF6rfrpVxmWAblIYvkccTWFZd2+nnl002W09NV+kYzjrZUlcml
+dgGuYJqzFDaReE3rTeJbe4Rd4iAaHGqj8j+8viY3Un/XjdeeUgSVWKvMl70mBoF6AeFLAv0o4Ti
MSygSQvBEhZYtDSQQUUjrY6mm1ZHfj/sz8+c+FDCHtlZqDI1UvKY3e2BAQfrwWW0zCCmFAyKusqu
N5ahh2Zo1qlGsfj5x/XrgeKupR/EJoCuZ3b+9yufYrcdB85Nt205gj1K0Bq32ijV9uv5wIlg17EC
y6KcQ1JQKOMwSCZRu44yp33nLx+BrMrs4Vqr3KDDpym8H3WmXMWqn5e3+LHn8WciJt35oDVrupA9
Gtq+CZ/377g8csVDTsRZ3kdeWU9XUZzjz9OdbzorKbVFLoPBGaAXQLyqpG5phszAgya9KxA9O6Dr
+6t5fYljFM1UmXP4+9f+GEKHw8xJftaxJGhMmRNbi/np0pDyciFTid1mBgDretsSvSxJlIFvOkeh
AY70sdIhANp8yGWJlJfJ9tLsoYjfUDwm94LJqu7lHAiA/ubyXsXv+u4BzkNshCzhsYoP0duCoLIs
i7yOc4gbHQCryxdLQJ6n9WwVXO3K8WkCkj8Kr5aRr+y4Y/eNxxVpSgzC1YZAGGQCALQiz9K1iMPS
YPC1uPpqJdd9Mzjw7lSDUW3r1mWN/IeGLhMZ93Q8xywnm0ogWJlZ6v8qwDNfq0Ho8RF47lcWb397
+/rwSuDOmydH8eYiWbdQ7KFUCeLOl+Bjqccv1+e4riRBUGoDwidtsElXKRrVIqD819fXkPJpMVCM
rHUI5z8UX0bB0UimtxwvsWPR9fUVZPvsKptieFp3tDBs5NLVuruzCQy+/1FMYBiOIlV8Ga9jCNe1
jA/Y9Or4ky8h6S2DBGb093RJbiEg7BBMmvg769ufXuvjdPniXUsKAsvCYFbjjFQOwQYatpn1Kymu
PFGOmOHSu1hI89fP8cLznA2DC+U3SZzUf1r+O8uyySYmRIswUInUyWctTL9ihdiVZF6TIkjNzL6P
/xe7VT1H3eMDM94zJMybMv3P1ca8hFkNPBGexkExsLUVYlG0TIKnFQ01gihMc/949ycDjagj4N/c
op8/2ZxZpMfLB90kH7eh/FDSkebh/o6prIMgMp/u6TjUhK1SmhIBv3hQh9TrqWqmeRK8NrOGmLOY
qjN8YRFkjs3TmbeoIKGfxtA9MbdZBqpkdr9hthtGW5Vhoay83PjzMI5HkKkwA2JurSL40xsKKjTn
RPA8K0CR7Jm05NrPxbUlhQcY/6jt3WkTY0mEG/W2w3hc9AN510b2TKIgm+0hMACxcyo4ptZyX2C4
I8lxlWyDtX0t+DRfwNNiiPcFgOMVgv80gOGQkTMxxtnuTcgH8vpdEB+ZAwOLciJYZiMYiCSLdMgI
3kd/2whIzBJRq1seMQgMbTlCGi2rtsrU5ESmiMaMhZYFQzej3NwmBC8Nc9qlJ5wgEs7Ft0whIXkT
xOq2UqCkTUnsbdSgEQsb4mqTbcY6RzE+/m1t1ECmwpSfWHELpszL02X/HIOEbBr+1nqxVt3fvx4e
PFVtnqu2JVGybJamYBXjsYogecOGhPQNLVaVI/aJLBqgt3S/Uc4bXVqUYCD4cPTnSFGZNxxBCrC3
KTqu/K+WdW8R7RX5OFxHFLeqwZCWhM5a1kiso6VUwRffuFFyTBPPG0L4U8UEgsZwGcqpsiq/LqfD
9QgYKytaK6DOIJBMEjA3zgZyW9ATaj9GIksR8FIZ6PbAAyTp5rLiDoFcvHMjOCS/fvxJ+zXOX60G
2AkuO9BQ8oph8G3hiSz5LDzRMRzJ59BiEOytaKmANR2/nH1BUSqZoR3nXi/nXzjMJeQNUl8/eTAP
wAFwvWIq1QDtiEe+iL0uORK5TBRCOoYrnYzPH8fXffhf83dmYMpniBGeHCHWCrtaNQM8nveRr2cw
KwdRbKtwJ/4kZlgrjhRfOprxfNjt6VYop3sC5QR1qQLlY6OKnNOLoELdlN+10XIf1+Pp9Vf6TKDd
VCF3unsKRwGU72oLlG3mBXYmctoyPP/Fkvw/FksZaRkdX2RO5Cgco+jsM6R2zX+hLiHArt5x5J03
t/muBRSr1+12IyD0VgyStuLnPFtDwrpO5XVJMzXYgUpxIcOo/azREqTDqjTFBgab5gAEZPo/eZox
1/6ECaTRPhEApUyA5rB+f/F7Fki1fm3wnYJ0DWIqAjZNPvj7Z1e8tv4Jq8Sn551huHYc3B0M+CvK
zRqzJqH37ZIXHo8nNQxxZcGgK/wnEles/EQY0CLREMOTKbGgZ9IJ8NqGCkfhFU/W+Ak2mSETqInj
BNDa/xhAjmaRv2X4TUtKPAQL4Sz5BJsiI6Ajb0O1etphCJGQXpmrRHmU30PDvQOoXCP1fiWiWGmc
2MZcRZWRmwkAz9TFO5r36DfUqZw5MXzmRDAUN1AQu0cUHsvAkyvwNylVf6V4RahqDIkKE/PJ8lrF
gBL8PeQVDTk8ru3RNgrk+97U8PLShfDOW6wO4Iv1qDzJjYFNICFuJEKT9x1v7JuirQjDn8z74UzY
6w2EedK6581+DE5wWEu4GyVVe9so41+jhP5vY8h/8fJO4pwyUis3zZuKXzxkzeE/le4d/lt549Ux
xN5sn1/mKt/Tcbz64/h8B4CC6VZ0/wmXr2Op/hqewojTv31d/uT9JFJOZZfBResF30AZt3wSlE1k
e4yY9CvfuwY2w9JtWu9YssWhU/p/8fIJmEq0iZbib7FuNqjJxXiXr/MZdxKwstXVK6HVfFcvwlAi
g6srSF6z7EwNqBXXrU2O0IQ2G8HAoYK+xyV4WrEo+5u48pLl+9VqnDjU0FEmS9HErUhbMdLi+Fni
DQ/W9QNqPjo13nmWTW9WvTC3HYERniyo+1WU4ML+YuDbVO2i1E/gCYYMIfiX3SCI/W228uKMXQXo
wDgX17qyWpDU6lQ0SKaDZUm+mtcB5CuubSHvg/GxLTHlZKgxiEaRdFnS0ilKunqGLoASmaTdSMk8
4SpH+XoLpZoqfYPqoFcjPkvZMrleoojq6y3haMY25IqNSEErhWpnkfvoo7yT35xjjIj+M+8REOg9
wEyi6yt2PPnjsGrLSsn0G+KBRu7MfoN2FC8yb3A0V124gSSeAKrkKjHAlRIEx4An6RvE1ysD4ahi
+K4GtEe22Jj0qoHhd8oYRn3WK374HC+JFUt2VhU4aNQ3SQKNrGAzQL14oko0LxtyaoNtgSWNTKkw
/ZONxIiZBfqZ+CRl7Uw5v+El3NALX6REJmHkSae0at6rmQvPuyROw2DjZLCJclHG181ZBI7qhgLg
KsuwcVkoyS8GpefVVeVd7qjnEeEERf4IhoehEegY8tc6zy9gGZkk1Gwyt6lKPWiHG44wb2PPMb1l
DUAvUTNCN53SLHv4mHquSy+f/G6z9Ml9Lfd7FdrxHSScfLIDV9Jv/NUkC5UkpHXqo1HH7Z42TU+S
LEXfYufP7QcbPqskuYqYM3TFRcPTDRyRopJctXK4EAmKbYUEksR8HxISrID+Q4aH57kmfGyA+IRA
iyeTS0WyGCQ3BAOlMRUxyMUlfIFqJVPaLx4t1h3jl2zaRv26P0a+ooq4SkNArgZEp4JqljjJHEV2
Iv1f9jwxhF6wgQIgK3g+3FdEsxUUs9z6gHM3mNPlEDwjXqURkljsSVSHQU5HnqRJ7lnYl6kjSc6j
/O1zfPvj8+Z36far2Tuga+r90tXm0QXiLhDUq44uTPXePLrjikhX11oatBNOpOCMo77MQwMeV9C6
w5X8R41THxPXiBeArKbdMtK0Pt3meruABguEdBrb5JhnvFfAiHUI90x1FeOPOSZhMQD1DAuKVB5H
twmIAinZJfMcW8nbRurWMbpu7Q08m/Jet6qrlBU0xEKQ2TQlebQSp2KP0ihbI7M1+r7yB0CYeXlo
6LZkAjXlEYTLEr1Uswqg304JGmCj5vx8oDz0A6Ll3K4/AC3HNSes0XE5yOSqEtxb5aLJnBU+gJdc
6z9O/0KUS5TNVA3nTjScXCKKDBgwqc3JzWlMzjIr4N8+V0n5zOwswbDmK7DMs5AKpTv3S7ZjaX94
8RoB0BPEihS7cRKa5sH1zDdlfwWRyAURgtJvJkWE+8MXSGabVaUe6pL5BP1mmcW9od8URBnUspg4
PMGlFLWOdwvzatKTbAHhpucdSz6f+i/x9HNdpHZFz/oXLcxG0RIevW5swfaV4Sm2A1czl8mHN1SZ
rYx9ZoxbeqfjePBfDBzWnukImqs9mkNItH0mvNG8yVel271NxcFGkjS3UUNZVtX4/ycPtLCkzsbE
GTiKyOie4a/X2NCgoUm1zWn91IHLIFeQlgS0DGDPrKF3tS+6L9YTNxErudz53I2pNYRdf19DRbt1
QZRi5+S1U/yWVKRuJj5UeoE12qnLZt5s69gil8JaphNYmdNDd0epnqGMZF2Ek8SGK45j/JHpMrIw
VfcbXeX4ihXrmI4Ji1lr1un1gmH2gMo63nFhurMvLVHuXpj4wXiKatjC68vfc73ACnTVc+JXeukI
zlYkyR1ZBevGiK3LaUt8pd/Sd/A30MJhW+9yvxDb306vPFzkWD+DtnJv2T2lmuPq4qysCKiBmX49
OtxQjNKeJ9UztdmbCYxT9o2NB3qGVVzjCUBZWbW6z/JGGCgpHdtwum3P1u+yfAOAhPVM3+t88O1J
4GpgImaeOcJjOySoiX2cVDM7z7vz5MWSueGrt0Dca8veMKY1HXTpxPRfc199rk5SMTkakIfgOxn2
qxQ7bPUPMSJVm9TcmKP3nMCJTvPtCGmmzfJqj5untz2Q0NPw9noGpZCCm9ywTbTCgmpCxktpLWSp
+VSSbRewt1o5wV6QPUdC5lonnY5eP54eoHVS35ggNbdb5FmxtKW2oKzNGmUlElpZx2JgiGLEIqLk
siAmvUybbUAu0GVeGgYpw3wbQ/H2jsYiJSmj3VbPdFxR5kYa/QKaVyjcAFpm5u9x/AR8bJq47ehs
gTpxJw0R4Q2Fbjm1IfHScGs1qXyMiLGuQFDXl8fXHTTYEsy8DVTWySOFcmjzCZMENqBRgtOU07Nq
SUCAaJEAOawjXP8UyMbPmDAdaGz0RPm60JwWI77U8iLA07QD40qlOOR2vYMq/J45pu3ViFL0X07+
P3g/wNUStjAN0uiVsFIliwr6fj0db+Pji2944YiFDpp5MAxN57nSrp4Dibcb9XJ6fPBsVjP0jFdS
6bgEAyfbd+yoDEJKbTq+lnjP8erLgl0V3wE3+XOdZYgDEEzl/YdhaNI0VnxUoIkUc82wLwKnGzjm
1qwKVvjWzLQqyNazayEig1Ze0QZiWQMx2OFPvkMbGZUR0eJai8Yfp8c77w4rq59sjhn8Rt5SW1Pr
dMDZ1lbrMMl2na22fGtwbJXomiV0pOwUM1tWw6YtLJ44+1UBR7djxpDNQHljNAIJtypV1RM9+uKv
xGcwkLw55MCsj9P97nUHalmo6CgTV8nrXu9jmr/efA1ZneGKnM+rF3AA5Bh2AmhZjIVLsWhNokGt
e0iEzBeE9hINAaWdap6YnUtuf9ltCjUrsby7ZmvzFaAP0Mpm0VRLEZRWkhtRY76MD1CRSbkoqVn/
8ETLCj7z57jxj+Wozwi7gwIV/Zv5yHAMfAsaGhEo2kcctiYFYIrh2IrFGOowXxAgRWada3ewT97l
6wN1yXNg7Gaz95vQHI0bxXG8qeEKG0jr1q/L6e9fwFoJprca6CHI86+J20NK1+rOAR5EIbnqiIUt
/wS22hTut7HsssDymjTTcGPLdW0SuAlis2ofiMo94UBsU5NJqP3wPADyuWUEBFQVD62S67cq2uRG
n1wf7wBgpcWk0uXeOlz+Go06J50FZPRuuWzH1+dxDzqXk4xspC/2W7Q8j0Jl3QjVBNAyBg1aCdgO
Fendnum7qUklBenxm/NzL9e3rzucu0yOqUwgZM8Vl0gJii+LzcDcKVXZaNlBiBiwZ3ewSLBpy7+j
nQyIOQauifeSxm2VVBNLUvYiqXrz7YbHgmEZV9ydj9PxCJYivMIpJVqZF18OB2alsBomlFVl8pjQ
EJarZ5gxo58F6JZ2q7VPmpDUfq/eBDQO7ZpYATUIT2KhNMGtNnN45girSa43jmmUUEaz5/HyBrgh
hMFZwterUAsqa03Luzvad7zqqzSKD6Ts+SFRS668vUGWmxy66fN2/Tq8gxZvklEwlQuIpx1ZysSc
Zq4U6sW7hFeAqhhGHCu+TnOiBwkwynF++av+DAGy91bvpzuqELAkscppqHjfniBj2Q51/8j9VsDI
8b6kD8vfGe3IJ93pCEuGhzXvPcRn5MB1qpqLehfVAiZ5cUNU6hR6ANSpBjN4yU0ewn6BsaWOqc1a
oet4zFnPNRQj07d+E68RBBXl+hq3DLqRjFBybT8wQkeZvUwX0PZEXW3BIL41O6WpcCU/0boiBvzl
I813CaukNmJQ8t6pKSth+3arkGY7GVqppWn7keaUP8z6NYJh/eLebv94OcJJbYKmSyU7QK6IG2HQ
ble9rBUqDTyjeXR9yWOqfPDr+bp/TBg6+32KaSoKRkkAbGNgVqukchvwt9bVAYBw52H3OVJ3FZnY
DCPzFvpk8E5aX14JVytZjOEEfzVpGMGXvU4Vxrjz19CwYMH0AOP1u4PT3sefgMyhGfVe4JDUS+cx
177jO8Ns+2I3R8RbppkoqSOCTToF4TqUXJDqLRmvr/wNMc/1g0nle6wWlWUNoPutOjLEnuvKfA9O
zDVZ3R0XYCFEAGSfBbN5FUAf9EDm8s5A7Hte7FmiBqxiaYy/65i0W50NH30e1hOoqWQ8/5iHnDUD
4S2QzJTeYhEZxVHXVn19sXvqJCOm+UbDGiZSFkyHlZV9A2CO3xFyT0l/Wse0k3YCDad6Bopcz/2U
PJ+2nJc37Uf+ns/L820QhrI9jGVcbNxc1XDE4y0rJ6z7j3E+NEvss1xnNlDKwys56xiHndpwGP/r
gUubEGJGo9uj+vfW6/KhH0suhWQfMN6iY5osllyYWE93Qq1bObSkVNv4yg8d0z5yE63zboXVDFGk
ljxoFEqQ0o2yGUMV0+Jvf88xLHIWr2VmAYpZG3LVcpfE8NtkwafaP9uu1iS1BKqXzWOR6r6pC6iL
CVjUPdeiDnYwAm3hyW0Rm8ISQlQHDXFEOQKh7KZ22N/9Hl1SWS3P+DPla2iMSMEBMAbzJ+IATFD8
YEhPRtJAgEhmuvLBuGEH3NCu8phwjhppUUyz5j9OTQmx62EZfG1b6Q6ryuWK3WOfYMGCgGnAftWp
XZtgnAGTCIu2V9/fUOtH9TuDN8LZI0aepB04ymncqxYFuBmXdauJhE+NAlS8klyB25gQCTdeavVc
HxagzJRlzr+OtTcas1q+s33pkRreI5VPoqKUNQVmskuuBd7Gn0TcIjOs7gkzWbKdM6cb3j+JnTg+
iHRPzgnK48V5LVfv7Vlrq3ZvVCA7kk2MExs6hMP8amhO1fF+N2GAwu7DBH8LuUkl+T5mcIqfsAxR
s4Ik8EqATEAmnlfp0SBxdOQ1KgOBudIX0C56aEIbkzwiWoowpWtUaUXfKqGRpQ2wTTYhwJQt02Ji
Hf2hJI2tkiSgT9tqzGc4+jE3/uM/gnnhliBlZPYHnmgK51cT34t0msFfjPINNN4pPrciqpiiQECk
MkmdSdJz1fT+COjRii8MZWYn8jdZmlZFP+2s/DK+n3jXTtpqA/gVuuRt8jnUvV6uDy//L6DPrquC
vXk574F7UfXBwR/7++F04tfRDGiWkZ19xGHS8PHzg5dWbdgCp5zM9Td8fz6PZz68MM8PKGxNxxOk
UqGs+qv0xWI5D5SnEsXC5RnAF9SZmyQ/nisjiIrP8cGkZppW1adugCZLgqlB3NafN1KssueGWjRm
BzbaNRkmccuWjDedM9d1zKSfSrQIutpw7ePq6W84YYRkCSJVtFZSCr0nRdsPrXuSpq7mT7Ri0XTa
RjALRhquiwqqTmXzvGXpTQNCs4qbEr+J7YLZmgxyqo3AC7tqX2CmRyau5es005W80sIZzHmTtHNf
Tj/Xs74QRiN2L3bNFVvN20jCFOTTes/Xotc2D6UbxShd1MjjiSykaUQKUwu3BBqBidb5Q8P2i06h
/jqtMkMlUHHXNsaGnSRoEgJypUn5ADB+jqcN1YvroItmOsO0CMzkv9E7QGDWWtbAAZoaaqMWQZwn
CPRYltyURU2Rt83iWdy8t63pg6pXEqS42Xtlj+rRZLPmIBoRvrUBSc4lJxN0zIY6QNPRTd2G8b10
IgVYNTmhSFvdnFF1RisPYTrN9LnIxqCp9mWBDshV1f1T3aet4nhCNT4fpHrAkcHFYUXVzR7VUB6V
goEOxmDoIJuMyJeJYjZ+6JuNSIoWfZjLqassjBpBUfEZJVtGNPIJ8hqf7iSQJUkIMWHbZCwgW8yR
DvDldYXzlUEr2xWDtvSXUvDWFG9Tduod0FdCYXIk5BoSeagumddbUAPJWYaNGw1NihTDBpuzd0Dp
iGFK6zKY9cR4OFc6vBbdwZ+tS+gYXi0/9p6Hx3qOSEA5gDzwYVejPGytwqNZ8WMG5BoVqi6YFlbT
rfw+BzCmGSJiX6k6V7nub7/zna0d1QqQINuYje7AVMCtTwv6EstSCxvY/v/thQ9sLCrwyI3y+NZN
q0/SLQoUmEnFtdxbeGWNQj/XuAQpu/ycI2IGpu9CrRgONwolpT2kQpSF3G6PMw+52XXFoGIHXWZt
yXYWUkyZGBpLeP9z/AEqhgi2ENvNdmxvIITUUxJTTqxl+9RKGDvaSbjw1tulgrwRcdxssnrs90RJ
HNfDr1LKFkY3AlVn9bDqDS7FM00l+K+lxXHMKI7Mk3qKlmLck924222jXFkBbkU91sWNscx61KB4
CrDlu6uQRgqRdiOr3fDO4Tz3NxA4E+iyZHavi+1xkzVJwEsRCwt52AryVORg0AiM3FKLb79JsM+S
KZuxABPKy1k0CJa4F/mi+9eLv9uHB+rZy433K0pa29Od1vWRqpX+S7xvluPaMbmQYqgD78eRZiCl
0aoHZzBuoQ1YVg1wS/qH4qMMbjxgCbz9uF0vbygVrfRKmzMIHgKTFBnnRYaU1ppY/YCBOKmGDgUq
vSzn4eBgiWCR1eFdk5McfB1QusBBkIhVw2eZumbf/rIFAe8K0mkSPbX9VTYsiGa43p3Vjg0w5TJU
08y1tOnX5XS4HkEYb5g6qToLJqaa+TNUgknD5jYojRJ/yfgiuNSR52r0SArKqKulFTWcnJeDCr4B
o2OLTlc5oQa+ZN0KQnZ18imeJDEMTB0DKR1rOdtCSoZpDCflgvyIQ20rokFsdMXSihsCzLfU51ua
CVj1mXwfjCZroh1jubKF7hMoexbMyIp1wBXSF5DhINj+EJshDyFVivnL0nBDqNb+L+B4rvm5th75
+9jj8zZ+fPH2sGvzTbN7/3r1XgPffG7Abst42b94Wbq+vqKyjL45Sboyg5KPEGzP6OvypfipkbRx
s+Z3GjouJCAoHRfgtfJyTVDbOFFWcyBmUxv1jDMNGjtAcyTICKgyzVGZErMH+QVBOZmBjxXZN/7/
51f7GL3zEJ/5fjqO193nef9rPO6WZmi1JaM2muDNACooE2+eme5eWmga0PJvp49xdxz9qvxS03eG
pfpAZe2nCo/4brvzdX/cjd85wmAkQk7Zu7ACKWHafx1P/kWuF+8BfoXpu7s7A5HGRSaIPH5RtwSa
6Wse/jNSE7bd8SuEv3GjonPKrTd3qI/8i+gQ+r8DWfP79fz1MYLn80dJE1Vdsb/eXt+u57u3Zru0
UcfrIeZ1+I0WeaPj6AY1dQhf1jrc77FuJew5v1ETuSS+2LBsVHqJuNv7kFxiH7dkn3M5e/oqf0A7
0Fch7YtaniepjEl8r3eusX6SWiIoXexxk07Eq3X/3bvX2/Vj2cfd5brDG9EP5Zto+iXj+GdUhuy7
EKGNrYS1odKxZF/u443r/RKXmfLNy2kIsoj/gilr1dwZQ2RDBufH/6U7G69hGDH561/ZhmdxoclR
nRYKf9x6GW9F43+GWV9gIfphIvaunM4qBv/psD69Ftwd9od3fiE5EIGLxJ5pHvaiH5LwH8N+PXav
+yOPkiVFkQUwUvfk1Mt8WekWogLv3J0Of+68QQ3Kg7P0cUGdXzAVHBe6Z//1uH4iBSqHgWiaIARC
FmIQmlGfx1306lvXa56vFhcLiKKYEirpfo/nMd6N8EK7/asXqd14BZfdEd0e/M/eUSUW6Xm7dz6K
ihd+QnDi9mQE5nDb3993AWOI6jjIQejYPinD/d2/4tebV44LisBvP1HUgaMgptbBi0YLp3r2XxoO
ctFwQMFZsl4qiqfr7S/pFvx4Hy+799PxyDShjGsZYmZz7WPavfksYsPSXWDRxqYmu7gz/AEroncC
KKo7umg82M/9133cjT8P4yfb2zhpDbKWWhze/KFxtY/P8W0XLxv4ziwnhJhGDeXufj4dgQabGzOl
WxD0sf+7tQ27IAtvPDKbzIQh/kQf20bUTO9hH7fnvgtO5p/+LL78yR78LfsLKWyRb7t0kWuoiDry
vpL3DL1wnM7zJ+8e718fL0mfgIXneo64AZGBIOlbH4O2TIoXyEZegrDLps+OgVhTf3T5JKWO1ciy
1LaTZ7i7f31+XqFtm+PfdJNcvJqOGsnj6R4l7HF9e0OmVmWNHbspi0K+iHN3846mD853UN/qLu9S
7LuhdEXOeApdErGe+M8L4yStMHkjyfb7/xZRsDvwJLJERQxLS6rAYgY0+OHAkSE6P6gHocXKldm9
/NrdP7wq9W91uI3YzyRKP7oSsyeRRCCoA/3M6cu8RSbNjdFbByn4EE8spoaOaIc4lZWKwMcXfNjk
DY6MUNF3pZfVtNHKEK811denPbmMjx/X259hkemLooHZgTKwdGSGeI8L+Wbl0vh75vUHl61Lm5zP
KvYFFoOtB09gCUn8oRA8rcyJN8V7/0X+XXbX193Du2/gWtDXiSmFrvSt/HreOfM3/wb67ieznk+c
5NfIYSV/wVu62+7Nv9TXLdz/v3+dGuItqcdt4khdXViH8/WWDPGvr+9+d4CqdERhm6yw097HV2wE
vipvfUgnDn3VcQHuWd4j0p54ZebaUjRXfcYtiTW3XnU/azK9CzQGN3nylwFXPG0aiT5d/OO2WiHo
TxQzDSQEDUZGWUk1XgBBbi0/SucbrYMC1RN29DK+hvAk+ngfYyhA2+0Ph/EOvGRinwiklUPi/z9r
/9okOW6kC8K/KMYI3vlxpjU6o93WjFbds7Pva7bWxoxgZlIVEQyREVWVbXb++8LdAcLBABzMko7Z
KXXXNBG4+P3yOPQPpv3ijMUv8I9mK6QkE6zgpiZklguj/f+n+An/e/wc/8mYEfyffzM4V8tvIJB/
E+UhaAQ7RRxLBBzC3tNq8QgZrmJ6J2EVNvHMrnKbIdp6//ht+D4uEQVKy1RuMw59K3C037QPFZln
QafK3EJOFD4tdBnu/QmCnfEddW4hF2N5WgjuObUn03OcPtxVOphyi+Rrk+rTIgjMn9xQ49YyDa9Y
QTgf8T/X/8sOaCsK9f7uvxEL/GYcH+FBTaMoFaA4MFBcWcuG/vzbaRoWXFOv//Y2zL/BQahYLL6q
IxOVwTXoP2u28n4yKdeFbGSXIhs2vGK+sv/6GwUdfwOWislhgCq1M1kwj1WssbHnhbQtH2VPWqh0
C7lijueF4NaGU5SWaa3a31S7XUvqZKQVunUFBskaPdb9Xft3b+/CetW6Hki6TomnE7mV1mv8/T1d
+x5JhCsZfEJCsKXBdLDUMM/TjB/gP/0WrcpA8soZg7kJKvSl5nL83yN0EJ/0vxqeFbQLrekkLbOm
aK3dcjbvnkQRihEINxh1gv/422t/XjyqF6SJY3VWCWrW0barW6aPDYOldcqgVDL2ueNK/hecTuKy
g0hE+UzQ/L/b1XewQb6uoTChoNTzKrtJzdovjf8Ymof+oi/8148bnZf9O+it9+mUfman2xm78oX6
201be5hv/G063gct2u+aXS7xNRWjv3xNhe9Z8zcw83+DOpTj8lsu7Jrp7mbV3Z/+BSWcofNJrHv6
BeLFaPqT9ql83Vaad6Owyi9Gi7p/JRvqt/EVFFMsA0YrF08rewt/gtGdzYEd3vl2JbA2cFsYQ/5t
Ge53YCR5e5UngkwJTHzR/nTCNcloOL6P55OwePlEsyjgwP9aSPLCP+5RCbhe4W6gRUy8/3ddbqOm
frv010cviPPCPQvmhJUx4dyGEnZL4XgHmlq8vRiTIrmJ0q2h4PaV1QC4CjZFbO4mZRvQsjk7G/xh
LF2+rLku0fqhxRhnAK5VnlXPty5cU8aOmOO8vM1FpW/JvTrDGTQLzNOb/u+X5CIV20dHgZDQe6fp
pmPnwfl/TfDJaDW7PeFwBTd/4Y9ys6/UaxclWwFySyrf3LDw68xHI0yLMspSwg4YvVU4E6YNPJGw
C3en0PjuvUyaPhtG7Jig4A+C9kmawtwVsu6rELvsvZKSkRu4ncqU9dCaLjieplum9uFyCu927LaS
VOuYGGK2JukbEr7ppdh9QzWFtZe2BJteiDl+EP1TbRO8IuFu3KkwxlmAR/W/1/DMPyOsgkZd44w6
li/8RFgFV6mdv8VQxj4TVqFlnOPHJrJ+LqxCp3LGM4PI+lxYhRbKfJu3+6GwCh3O+XwsxLA/rEL7
cRY9xovUj4VVaEPO91ewOQWu0D8xsELVBaaUrPBnrP54YIVWbddVVQYxPf1n98nACi3UuIUIO6H6
Z4VWmpZxFiEd/mhwpXHBFYV/5OofCK80jstMwYb6dIClcQzPBlX+eIClqRhzNAjZ8A+GWBrHbqgW
8h8OsbRMBpjIcyjEstvXaXI/NFr9E6ItjVMXLPy2J/bTZP5uyn8sxEKSpWRSE+Vv8/kgC63k6MK2
aPwzgyz1JshS/0CQpXYimUm4Hwux1IW/Vp0OseyKMRRCALH0A4jNPzOKQb/AdJaj909EMWiVKqQ+
+Sr6wn8bL3qvWp+A8SNtqfPtgya5WC48Wubr5Oc4kLkjMrelbTH7J6O1fjSqJOy3Kpj8z+CP57tc
CyR+0yof9KhZFpAktexNHKNNPfinwnm0JrPommAoLB1rpIVY6L0kG/OfFA2ray8eaIIu/2AMq3Zh
FLzW/IdDbHXHPIq1jPqfFA2rm6ez/0PRsIZttsHdZj8eD2tqdofQrNmWn4uHtSxOVKLM6H4gItYp
Fl5Rju/+wYhYy3xNXj36QxGxlkU1KTuVfSYi1rCID1XG1p+NiLXu5Vm1/icjYh3fR7aNEu6PiLU8
2li4IrAfjYi1NVuv2gZ09rx202zjn2p3RKx1siQvEGer+YGIWFNto4T1pyJiHbtTSNIoj8SSFNox
exVspLxoPx0Ta90l4kikomj+4ahY60gOS1ptNc2no2Idy1rkWKH5I1GxhkdOMf/X/XhcrGURP1Aj
qsl/LC7WsKQA6AlVZJ+Mi3XuXDVpNGVb0wINI6KioaIs3nSFQfy8rKMtPkJLBSsXhZix7QkwdccP
6uE8fLlO3647+iAK1jOF1WeFqTkwXRXXk1QI21SsE4YyhxY/G6ro8Bv8p7UlAIq9j4BuI3UDkMCq
1ogJs8NptW/Dy9f7/XA/Zqo7HB/DIQoPhNdkGzMLrxWXlrpqe/OgTRBT2xzfT+siOKynarufLD+8
RGbQ4yqdW4VFHmkVOMha0njQdupwGBezLyA1sL/OH/G1a3dMk55hb3GAdmj8JyGIZgEUCg/v8enO
1eHl3F+/HKA3O77aCjdWeAhA61kX082hqVWblEIQziLLFpg4o/RZ+PbzXFPsXfvR0rYUixQ2awrY
bGtZ8BnO4+twj1WmEwsrd1VglFYGbJbWuQBVQdMW0foJqtSvwzcqLhVozN2/11kWog/8CbN8fEXb
rV1g9yr8UW9f4TIui7RE7ZZQ2ICi/2yj20LLHv8uwd+V4wQW8XZLQmVurwlsZotjn3OstpqepWVh
YGxh4Fs1ojaxsy5jT7s27dIKOF0eGzO0KRaZNkNEyyLHIGNVyZkJBE6CFgpGpqCiiXvehvtPj+Ff
l//49c8//yQfo2Bs4wpZsc0f/3sEeYHhCOQ3/arlw6+wJb3+z9rDw788D9e3e9wYqXjhiCvook3+
28efTsKXTEMbvHb4dN3F7i2w6hh02umap6u+4vgN05cqWFmxbgE/+hIb+4FLZPXTKUB3xqBl6BuW
/XZwrHJ/Mn3ITC0HaqTP+dND+rnCL22jnzv3L8NZ+Kjxf0qZj65vjxh2Cn3Xhkp6QcwI3wRrnIlV
xZMpFapphj6ugeSi8Gnm0615euCqfydLBT+Df0dS4H8pwe2S6cjdn7VaKUGMWR6ipERfM32ZhQp6
5Ae2KDdUUYWAFWslMryy8GvKLxVr3M39GUxGflN3y0mSl9aEzq2JemVD4VsWbzGoHz4Ha/IhUScJ
ok15ZesyCP91/feYYUKfVv5Dm5Jrsa2NPqxDVeAJClHsphx+odaNid/i/uKaeO+j45fpo/y5Dvx/
B+3d6vCuaRSaUqZL1HMhc9DpI4xgemoVsTQgi5Rq5Sc7KfOt6DpqjizX/na4T2SqokUGQ3Titk7O
0rSUBlXdxj689PfjO6wtCYLVzVsNVxAzWRFZS1jDuUENGF9NzY16WWuQGeDMN0bfTzZ9cTBhYsmg
dyYbNuFuDPrDeIVrPvQLtIeCF5oyAdkztvhHFTbrKwCkwuuavzxugmnvzgrmk2/ae3TxFXZ4jIQQ
iBSYLY7ZBe/momYBGX/uorB8u6zqzcNDw2pULdLDM/ONl5U9XU62esCHOFfT9ZS+Sbm9nsvjHkUG
oQdjHqYq3QQIxsQYxoDWsF18zNjNCX/mQp3GBXZ0SlFSyzx80O2F4meDqhlAETweAHdpvJ+ley+c
4Y7dOmXtEeU0a2dOn+2LxLVF7vaDXZl524bvGt1y4cLZBVEKLd+6b7K1Q6TcMIcmQyCxrA6HL0rN
Y2/6okioCz5Sxyh87fJ9kioNCt6032axB9boSnh7eXt4XNeUYVIc5Lm3SR6AOGv3gqIrvb49iegt
ChSF5TFwxwmiPwLqYoKXC+7XY1axi0qmGCI4vaS7pi7H3sIID2s+7N9EfbyOWaZiU1de+XTpjXPq
hVtSvjsfVjN5ucN3LlQbD5K5UJ24n7yo2Onwj2rLOQtRkWmLBcgG0MaCVGfMmGf0Z1hhZcXBIMtK
wbZ2Fwtl0CGrLy2hmiuv/K0sN5G/g6MQIH1hV8xmoT+ap3sbBlH62apIksaFq0h72g6g+xkEtFRM
xglURMNTG32KzfKAEDbHerRJqbKgEzq2eRaz7qJuEC3EFA6Z1ZwRbbQ7ARFHl7UpXOzCjFMfvk7j
UWJAbkyt8SIv7gVQGWTkaVPtOszgtAk61Yn4GgVY8UQJwxXzC2L0tnZkXqFRU+WeErM4YGvdp3BV
/NIhWV9EjNmWLCEitb0ayBF+h8ks5W0SwW8MxJ6+xIcU+mPSHoyR3DNGzsNbf/zobyOhPDjbJBo1
okWZGV8hwEPk7LU5uz2xaKeoLG4ROnPOkvMuk0757kbcNdP+gf5YStzYiic6dLk9tLecsIhjsBYB
9tvwzWWdFbOH9+kxC7K29OPDYY5VJT1EwilmSsBhyoOS66+roktEivMu7g3LRNXWrLyZBjp1GyY/
GFzhz3rSVc1MHow9hK2LTB0e99dWkPy1J9eKqDu+GhaSU8WeDrzzqown4JA9b1SdJFAXszOg7sHC
i2yU7i5Tc51HVpgemojHV6QdYeaAuqbop7uvaW8nSJq9jsMsGRgqviIsYvHH9+RGKuaHNvjH9hXI
4MQ7TBgGJctOoU3meTY2CZDw1wt2XZkYN3if5vF3yEwJRnrVMhMKjIwinEfNFSIfih67oy6McFYb
4rdFeQDLdh9ky65kHFlhjXmEKtpVDmrLE0ShRBZOJSM8Xrkl/p2Ez/3lNZT/tLOGSG06jCdhS4yJ
HN6xjxI5XP/+GIDOwDZLkVjBHKUaSzfqMlyNkGWHeAMTSbPKP6jaRjxMc8qC6leUPC1bCqyhPGYN
VftsgcxxEtZAZ1sOn+4kZyfDDwIHuK21QLdtHbBGneecjO60bLl1Qo632N8fo3bqpYtndonJVDIw
MCxEGC9IJJqPJLg0ByiFtU+lQXmi8tVlRfU8UCGzUMjjUI1aCA63Wb4BV5JRaBm2ao753TwAN2WK
R4RVHIBcAwZAY/Q/D7PM9+UmnIMXNmHPUPe0glB3Qmsw3MIO8w0mKbrcDi/nSX97wGMJmGoM58uV
ghPT21CIyXP/pCVcvKi8KFz9P07zbIxygu8yodq95RgYrKcTf68Qfq/htfhY1Ld+1wjf5e47A42Y
u9+rhN9zLQkt2Btt4c6Xl/Hzda6aHyfbNMrtM6uEe6nYvaCFlBkTCb6shZ0qt1OGoQVfVcK9qIy1
2uAfnduncL6WAQthNMXUVcJ3Rfw7axhRiwc2Nrl7aXPhHVh3HAcUxN/rhN/joEXYhuXePW+E9yvj
9Fm3Ap05usbMdsX22dTC+TIGPYQ7KNy9ZMJ3bp8tyIXWNGvDd0qizyx+vkI4X+bos8Yav9bRSyW8
g2L7hLdsGZ21wu8xrJwOYg4d56NOoE8mJwh1mdFnI5zP7bMDPWErNPF8ghzMWsbvoB747wlcm7nz
1Ug7OZNnwr0U7rsWYkZtw+SnwH+F2yeojs69ghKkUqcYtVBjb82kknCfufuya90IZNym8FnJf9Ag
VbgDlpKA4RheWEnOGFf4TrVc8AJDuJ1mQqNey+CXqAjRPWAlPKBi7V5d7dBBcJ+CoMg54yqH3gHf
dYIAZehtCrxlVbHvBAHDEOSeGLARCDvvmMJlvR7IEIJCyvj5anwM951gUHQMW67GuI5TgK0gmBh8
Vgc00OVMYAv3mddMoIHRXjk66wRBwTDrOmD4Lnf7LIR3z5hBgVMiG0Yvwj4Ve3dQ9harBX8vE+6T
4SLwsSV4LwLnFkzBo+uQu9+rhXfIizi9dAK9MMw+AxbE6FPg97zdgrAxfq8FfmcGBfV0s3sR+Chn
Db0c7xblhCSXWC80Kgt2vkp498zxQ1PjH8ywE7pEW/Z+POeDBlMr0AtrBC6wSssZMLVkgHL8DXg/
5fhBSQ4E43eqSXX0UklmMlO4qAxLx7dKMgjZd5hXrpmBJvBt6eRZB95wV7l36IR3ZxCgWJae1+58
jSBf8iquH5T07gxyFHmjYO8uGFrdk3xx91IIv9cx/muxSI/JCeF8ijec43A9xn+CfCkKhhUKBmhr
aqjtlAsDaH11KNfCmAs20ICMBeXDmy/3jzPmvu7zeBT6kxj4tBnlVO+E2x6vx/PjhFlFqvmJpz0I
2jtj6O5Y2ebNTrDTQ4XoR8lwztHssUvQDbppQDQoDENyCdzzlm3KNfx7cyporm8cRpxBbheNG1NB
oUoKW8oA4CvYbmgTdCIGGiG0rJVshkqD97UdvrDi50vtlDR6gQ1B6SCvp//cBLyEd2Lg+y1mWqrn
WBeVj17xnk/jSTxay45Gf7QhKv19miT6KdiAgVLhUMt6e0MX/cF4E8dtsZkuFf7RSlN+zrHUCo34
YYsRFJsKL2bHxM3SPeVs6gGOKCsavpw3/8YEhbGg5iwOiHAEzqbhbkbzIFjDQQBrIKlV+RPbutAj
0vClx50aI4mN3jWJSPMHCjZzj021pfkH0/X8QfFILbNg5vwClYWxRDbh6LM5HdTLHKS3PUJr9evw
7PDPbSY/sfC8bPwMDgJRtl/Km62Goye8eRSC0GCzUaBgqjKjG7zdLTAeSwhur/BjlZcmSeuQJTFs
RTGGzXGycrcJupsZw8mxdF0Tmn8VOmVKWjd87JJDHLFrUA9vYj6SzWCSEIEim4oLV0qnpgYklVyh
Vq5olc3f+hwt1GxBKqHmYpvkNaCyYTUBwooIm3O3BEGJzhsNRlPB8JCEBCLkb1jLsoHs9GZRmRGL
gBEkdU2X2+RNERkxGiuSICnDkkkFqdmQMIwCFpEQ5MmTNXm94ZXXx/m8HOdhuKbGe65xHNTUmbNj
7QgovSVIdKUYhLMwppvr7Flny0O/2iZsgHiiHYbupMaH5cyUUTiBrfYm6RlBIghKRskZNsQpYbJO
Jlh3NZ+9imn5uLIX9sMN13rLqnxY2AoJILwUM9nBOS8UF2YGl0ye08WtuxKL1SvX1UgVntKUmdob
iOTNQLOT1PrlNhzvBzyLwJfKHxtUbMZ77ZruxUax1jgLutkadVfSFTvmEDY8L1m7LhJa7OXx+gom
k0AvbAAaB3LxJrqhdyKtwsmFox5+cgaSsE02bhFs69LzxZz3lBgbtSaNwjNa141+HZcRitydPSaI
M+bZEsupPH+WRCBjD4g6Joh9lrOHdFpXb3h3vCKsAflCq+ZGgZnSvnnNXzpvqSqGSgu+vsHYUBzS
zUeJYmZcouSuiM/o3Dt+l826K1AdFFYf0OVDMQ70oAGMpPYE36I178TpDL0EZ9aFH0J4gSIcp7Dz
ZH+XnD7meLRYuLkdCAfFDtBKsxyUwEzcaEY826Lu4o4xQlEKAqJh1jyuTJLT2qH01I/5nDIjq4zT
OTZoMepcDRt6NdlbaYrtnNgu7fVdtdsSqYojt4/NXqRwqqD5BHQeYpZWCk0w+0sgbGYxN4jYlkem
zaYsytafEMtHSr718wsOgoajSWEzthvVIfRR14ScHuE87NHaykGBb0QnqK7jPN7u8tg8Pnm42VLA
aph+G14k75yFoaq1JYj2A5EVYbAy876x2rTcummSWV0ypQlVOW0ZsCeuac+sYEMMY9IKL0QQOS0r
r4KU2obEkhGYgg2lryBIW9XqWYonpoQyiwY969z45IB9tPxxni5/BdOKBnv+pAlFjnAySkU15Y3V
hLcR2hFJhjMXDCo0c69E02g1aFb5NmqnRcsX8Dql4Zw5G4PKmg7cjgRsJyIY9j38s23UNvVjznei
DmdBcjKhgljCnqG1y4Zd8wjVWh1dB4ZFf/6Wipo7imAPmMT+jkHkzIZycCBuQP3cv6WHybPx3hXI
lKrYak1RJPHIOrhjuRc+vkwgql+1lpMktVsCYyRlFH/twGZlCqzAXirrXNexee3bDQyAlN3HAkmm
UdHMuT1NtzvBkyU0PwsIKggmqYYbenQSE8nDkyYHZTNLAmdbNwwb0/VpCWZeyefHYnGixSD1/Z7D
fZoOr8O3Qz+/PS6ymmU8SnGbSAZAoKBq68TzqbYA3wd2lqCj2fcc1tKNMZeSGAUL0Rmwcu4+wDDt
WRa8igW77aSOQAwZRo7Lyt1tpAOrrPOctfM03YQwXMelf0F16Fu7aWckjps8QLZdEbIxaCp3ovyX
DbFmU0kjXiP0K4J/5uS6oDqZQ9oACeo/q412iZf8k7pjYheEWNHm4UHW6TAW242CpVQrhB2F+c6M
khGAx9Z0cm4SDsRHYbNCr+cgekLvFt2TAFUbjkrPLy8YV0IYKjfpkJd5+gLRTplwWCDXg2nbGrr9
18SU4rzi7L2xdlMPW7Bx1yYfaXoc9Fsaj/Q6aPkgGUHsWdiQPNrAK6Cpw7RnCAYOqGwFHmeR2xpn
6ppgHs7BNu6fVvUYtgcfSZzjzt5HYd7X6O0nv+9xjc9oIKfPyR6vMt9QP+7u9HI+foF/AFicUy9m
mdbSX1S9pZu5ZXqFvmtDeIGcIcZcREAFMv7qTSeEbxkPaPkZQ0M+atFyqx+amIyJzMoxEmUY+TZj
bocZa0GjPVL8SLtvy9/p+3dtYVhgVjzu9/ewJm2Q50wrGZa6ZCSNzEiLBwDbGINyia9g0W0ak1/N
LDjhFRXxS7+gDDOqBMLZsTBrw9B1czO+w1Qk2dw75VWh3ygW5KdTdW5PasVQ8PcE3bCHvz+mCNRv
w+om8mYLX2H3sF7QYVymcw8dMt+mOQJ737AYAywJosLCIn8fjg9g57+fwYKSjla4+8nWdDb0c3t3
c5gfV2gSA7Y02iQSWm2YMYBkAEajytzwG+xf/jaPd//2tVCHRvLHFeyU4f4+CFRWukPjAF07yGr8
Cmyk5fs3kDwQeBqwSgd/TViucc+LceqnO4QV/1VbpseYN92w3F/uz3JZoJYGXYflcTwOgCP76Ucu
/UcuAvS3lx/ceyOoBJ0VzkhZV2hOE8jFQsM0G/CU43laHArCHfDXD/eYUmpYQB8Jr8BuTBPT3lyS
sBfG2mwwBYkqcxFY9QNOEqQqbjCWa3x7vx9e+/EcS1A3LLiN1wR/EZJC2kDsPaYVbj13lNGsXJpY
bjd5lMrnYdOCqq8frCRsTJa4qWIye53C5hGuIY1Pk607NVYR5r7stSdftsFQkYALx6xYg/QsQ3+Y
zWp3j22zotgBb6ALGM/8NyyGgFLEtYr7b/ztffSVjjaID+LAAnrg2n9gI+SpdsO+knBl7h0YGuWG
UajwSRvmMfOjYbFx/B+1Yp0H1Slw3GlEd36tq5IUEVNkLkEb1I1rdlWIfzTMkUQudkjJ62tApCxd
RdOw9DGsxPJ7RkWglj3CnhYqAYMI8p53YQLM66tej/yjjNf5jFeI/Cys45SFopBNFyAdgVrcPlif
ZvyAAms65rIAk/iU04Wbreaftf9+PdoS5ztaZmAB3Adhq5k7KtaVmXlc00WT9ffDl+EjTrorXlfj
oV9qwQa3w/dnwILM3Mn4ZlTnM6xR0jANDCqsYkDLdOfOVmABD/AKyHpLP5qjSgYLOlwf4HCCPUQH
EhZwb2UhlDFtedIXqS07tP9iWZqGFc/m/jizJ/OuR4Ns2bEhRsYcH9eeCN0aQhPHzenXFhZT3vWY
zX3Tx5u+HUDaC586MW6RUjiR4aBQicy4Uc0Gqmgx1p9/iMzYQ+XrQ+0jM+XOwiZnfOKRFTNEs5VO
P0FmipmiDt79E4SunHbwJuv+KJkpxzisqOIHyUzlzChzWPBoZo+gqPmrM1MqBVXRsKIc1OJuYgmM
e8ADiyF32h0TMg6mehcTqNZzyO08TZOB0H7aRdg3M3Tr1aA0P+vSD0LFKC1T+vLFyGtzl8aVWf36
K963sBqTVrwrj02e0wuNx8PLdPpIgNk1LPhEEpwBZNEqmqn2rFGzNRBpq3JrCJ8xgwn89sL47UeK
ulwBLOar9LMtcw/xDyvjzkM/C6Jt44GT9k1EU7LsyZX935S1NAMiXrWxvazDkyEz+nLol49r+AIg
zNdYClPQNbWqclgI0THjPm2Jg6my9WsW6cXfXc7jkYJEr7EeCFzCAq8pw/e0BFT5mArrU4I/6RiV
24hTwXiMmUDZ+5dplk7i7oGVnvMFKOcHlzJcI94lrVS6Azkxze5EvlI7XEl5jRzQo6TFO8Uq8Z9x
WwfcYPyJ0QBgXqlXwcLXoe3JyzD1Q/BiVXiZ1HYcFXtAzk/HSizDbByMuxqQErMMjDv9oP0ALd0n
KYyrOha/Q0ulNdodETPNkl+pJOMlmhqllVggBcBH69Vwh31QwdGB/Ch06KDIRMR2I6roVqrACtZu
5ZLoqGniC0aMXZAvVv2Z5BBHmKyyRN8qYFfetN0/4O0Ie3GcjiGmwlTeQHUgDPrbwed15+6B0NtM
lPXr9GWQH4e2ULjPnaHNr+MEriz8MxoGiRthqznP45nyxsub8LJuERy9Uz1vSQtBSIp+pIjEAhYr
L4bHl1q0GfYyfT+MmAUTVmrdShnNAwqeLMZTdLLSE6l2rDJE/dxbJQnf7QRh9punM+E/S69ed47w
mLLF/Mw0j2/j9UBGtEA3Ts9hPqRwMp1lrYVTOPWEaJbPj/z6+noSTlD5dMuSCwkNQNt3hGFkZWs9
senLaEwGtK9pOUj2QsrJ/J9jjddafLPh6crNjTqexxv+9zE0AsUGAK41hSRzY8g/imF7U44aLsZ8
Ugqf8BKeVR3HEHEUQ+B/2lgunCVY4JmpWviVPPgrSjgL7/N2cU1rY2l7e8Y6ZC28HtBxN96EpWrv
Woy7FUPDUWzQwaYG9KqtmeH0K4S4sGzn+PGT/MMsN5+tEjxThfCEwR+OIUgoBib89EkjbIxVDTtJ
E8MLUQxfkxL6jLaU8EmQ6GNPOF1exmsvdmQpXsTEetxjSHSKQdjaja+vL1wPa8YnfAbzSSt8Un7u
rIjNGa/eVbzfF2uIc2nB1/H7cJLRzhWblPPEuplwsNonFcOHjzuai3Y/CT6ofD4Qz7KjG1p5BVom
wETxmOME1owpbrhqJh1B/b4V+eH1mMPFxxWPykPeGdhs7/f77QAe2leyYa+CoVQwKxQVOZmOlzPU
WcygaR7314isxAXqxvOp7HDB4Q5Necaojn+dB3/+rPnqqg7ftJEP/yR87pQ/kyW2sOu/f/3joRUu
sA7ZL7dleJy0+aRvoIh/W7HLd9ruBjc2oxe5HCKoRPh5qdixMZnR2GSG9mYNVUQ/r5g1qfDtzeNf
sG3gqHkLtn8ajudeaKukG2z9BzCBwu/3Yb72q1NkaOFfvkfXybqQa61p56Bp+Tze71DSeNXezDU6
epjIqQy9aHCd6wQrfY8tVIXYQzPw3A/fb1gUMD8E4mCUla+Eqa90wojFGQQBlRHB1cTXyYIEbnnL
UKrw0mXoeVbWvI7HGHQ+fc5IPFs/NyR+798W4NFErTTRe+bTe7U+i6oPL+ObeRPhXdkC1PhlijUg
OW6Oc5IIg0XDeBCaM8zh0h+Fu3ALYNp0ZRnE5se+wBPcicArjS8wTMH5cuxv0OQA7aiDIOuyJvSW
5jN4COnHK+5tFStj/K9/+z/xv357ic5k7Ao2xBabuc3Fv73kRcRQw89K/zPa7r//90+Hn/4z/lHm
TztVLFWg92hyIbFeTlwh9wfP0jN9P0gnLN24T6b0YeDCsAzxX1KhEbepW2GzdN0jjst0GOdDBHgS
v2PzdJ08+X4YHsfD8Ro/WeZ/VntvF0Goxd+rQq/39vIbfHeQPmxCGz1e9QPEvyn8byoybzQ9I1nD
LDtBtDQhSWskvhMtCbWR+8E09SRchq8jfbr9y/jdO0rEyIIx2kDJGssVprsNkbQASYzOZ9pyzSUM
y56rqUJS17MyKsHKKNivE95B7amPL9PYHh6CxKwSAith3VUsYM72b2wK/T3M7xNOX3tf57mv+0Sz
tGIh0W6Ved7N5dLNcb3JakZR3aARINtnGUsUYCeMccj7y0AIHDLZFFno4j2z9pALtksVMsmNsvZs
KIGhWPKpXKcZ8AsUrFt2940DH9YMDI+eckkqnnZyPVQQkHyflvsBLhEaYw/9chxHgXw6/xKJ+D5g
GpiU5GlUyAD9W3/rQZkwW2P8LrxAl3QPSon8mK7noMjjCYJ/x8c8Rlp56MedzcgqnZhfI5BOFTy9
t/FO8msKtnEGb25BCpOuTV2yLILL5ptXEzbeZCGaR1nfo3UnqY+K5y5cinFFN4CSwsPLx91U1kNc
+XG5yY6VCqq1F+j3GPUKh7/doNBvgEIJgRXKkNHrPUch0VGYEd/Ht3etWe8H8rOFMxQhOQQkBMKk
XWdLR30wR8egTE2vgrd9vSeBGMowHzwbBwlfsAixo41RJJRwXoVMC0sb+ieF+3Pnb4u1sZ5xYilw
YhFKp0EJuVGAUNL6oYUh1GGQRo2WjRIxBEMWdrXjDWatChxShPjrNBCgxrhoDsPRj6fDKipTnrET
8xDPMGLqo3+fJu3IjcK11p1fUZCbvRBWDMYonKQRQhZB8wapwsY74kSRhxxramCzGxmEvE+tWFGD
GwXjecOWueIHyEJSy7NRZJeYpa5Z7uw67bXQiiIUYzlp2fivy6/Dd6p8MXaHptwIi6Kt7TwIW69G
oqY/ztNFM/iqd2XtXdch/fU+vMzDN/ygbavuEHfTSufeMfVD38c/akM+If3SYYx/VgU9reVPv/wX
fNv+Kf5lE3LuztNbdFg82gHMl3TWuHFdVSFcStB3NeeL+9dl+fR7vvgThF/pR1p8gQ3FawJrBpUW
cNZ5vH5JszYrRGBhYZBI9+nQn7/1HwupP2ELKrSEb/+mHJi2CpqQw3zEqnkIOsmGVBtSW+CSowF9
Gt9G4RKq1rdeAp6nUpLmrsIO1PA4fplxB8IDtCHLaWM1CEKJ/3TpJln071o6H6ZZ2wxSmK0I/bhz
3O7TGXqdj8L+CxUiQG//tXR13PlDlsu3ukG4uzz5bq302/zzwk2RtzrpO0Kqas00Xgcpat2GFLT/
gpL7XbKqEIdrbNkfFaKgFvP6iXPs/b1BfSB2rRgupJJY13wTr6fgg1VcgoPG2GM1tVaaE7SOgH8w
X6WlWj5Ui+Vrc6Gao/J/3XQPAaTNEsVHxy/Z5CGmo9/RkRGAgvDbsmOg/2v6msoKDnh0A1xtgGio
f8kKuHj5EC5esQkUrnCGhdaeHuvwuGLi9YGtaonlazbKqF1p0ITeomPT6VM20g1ch850z0J51jSP
seAFXbebV4FQLkXrpRUxWzw6jG9hE25wSVWucKNm/+A74Bm+R79vsu2gDiXWZuBHbFwYq3hDg9oc
AFqj3uZJvwQBygrv6x6gIJuOjV01BEPsoxdKvWbLx+KslOgoRNNEJE9MhPw0vrASKzGI59goEGde
4wvoy/8ASF+EckpSYuPxrq3oUJnwDrnPGwbY/WWZztAGbpkEQC0B+jTFx2xGIZPHwjwaVbKBbLw2
Kz77TZVsZA71nRhcCcSzMYht/zGetM/4lziIEL1269euVbzk12LjxVtgifzYFbrWsddxXrSjPNzv
KP4ORpYROQr0w8Zm8joD3JDezni/r8O4SQi+amc8LQILNhRnbdKnXlor8wjWY89qbOQNa6EiFvMF
9Pt4PsHU6fhaTRm6PcrjEQeso7RPw+0u7IpNKsVOdjsYTpjupqmvDrE7HUWbEdp+sAfSciihuJsm
JNNeHm+dqspG2HjhC2Dagw25UMGteesprUrZQFPEuSjMPpi+Y6L1faT2jiQBddupXyZHQ7ezamJC
/TUt/e+9JCrzKsj4qhYYv/UJr+J7IPplbCf8dOObG2VYcwqStgrJDWPeXSEG/H292lGyANhYUAJI
EasH6RIKf/OVrTfpUTRsXoT676CL59JjB0OKt+ugFWfJ5MlUElZqfc6uxfpC4sbON6WUO5r3sgeQ
9DiS3aT5scI+ZWO6N4MgkIFkN4bBcD5vbk7g85pNIly7c6C45WC6CQXKK73rNSe8Ttg/yKSewInM
zHbBFWGWryoz3y7IbeU4lXcTneAFIrS9cPA85E7QDc7TtwPIlBu30wXFm/uGgkGmRymHVY/CFaqQ
OU+f4m8bbcllkbAaq16HelILR3fpz1RrGW0roNdg6ov3omBf52n8SvBWr+fhO2LtgVxwetahou/0
ZBp3dExz1BES3q99K1+g1kyO7TT52DxI7PUubEsxSdPhbNAX4vCHJFGLPbS1g835fMNyNaZjNcok
UbOQB6flJbSFeEaSQAhMI2RYfdtu6dKTYLsMLTZsmpUla4vioLK6aAWWZ2Oj8UimT/ymiURT3a/T
dP51vB36ZRlmSdIVvkVTin0TdJeN/47F5h0/TaFd6AqYd33ANl1NrGKjLtFYGx4dLNrq5DoKakWF
JJkwm1vfUf3UMeMYpr+Ol4TMqpnrX62wHWbXZDRfcOfvANjYj7PkvbC9ZOgBZixuA2MOBwnBmtbw
/QEDr/XtZfZiNkkW4hM/MwcUt5LOPsVShH1gwQfgEyedDHe/S7RqMbUEUt0YPM2KUQgC8DZrFT+D
KEncZsFehDoCS2bm/usrEan+06IzC/Kj9U9WP5M7Ux6g77RMIumfMhOdfKH4kcDmwmNlIY+J7vv0
0N7uEU1N+gv0foWzZiFVRjv6Mde0LUOklLKvoc4ZioZ2XSMbMs1sGe+BrhDFMvZu8lUY8bNGA+f5
gUXyD9gftbtjhit5Gu79CCCcj4u+g4+db180IQ3FwtxJTq9CoRISf4R+1xVNJcS+6s3lG1COu80n
X8bTN22LHl7mof9iT7U85nl6g+5VEKyRCidcsWWAG43/tmDBmN7IaMtb3pSZDzMvB9Pwk6L1eyOT
XYv6Ew5hTddoIv7f/m08jZBdj5+RYzZVq7H1t4f2el8/DgD0+jb3t/eDQfuJL8RQ6BBBrzBhaHwA
SoghUWgOu8YcLAydMvQzHF2cm/J7Ewy+f4O5Bfdvk35VLIwFnMz+JmNU4FpbfCb7nFeKp3zr59MS
P1/OL4oNeVgGg/0H5HQFYbcA8rkIZZN3DH2FtWa7uxKup/VRoXL3JZH5Mr3eD+8ft/c4nE3OkRJw
LJXp6n7Xvs74uED6+/H9YOcoyHh1ecsOw7ZEgAjY+2hDOwCV+iqejmFNIWRiYXxzRN89g0jQDsSH
JoBlfFuLmqLLNW3lI5JVbmcW/tg36mlOT+LAXR6EYHKU8K5JCe5wwBcRqICBcfDheagoDwxR4nt0
CQZpBBq9WuGkpi8ilzG+R9xCM6PhvjzGw23ShHyfptdXjC9oKlgOxzfhljmmCKqtzMhyqC2itrJ0
9yOJo5LBq66RVK1TdgqPnEshIGyzwmW6TlYInfRCWOkpSP7GR6MzyLV4IX+c5r/YpIrFQHtNIAHm
bRcGs+xv470/j78PgPKqXbmvw+H6stzid83R1KrVpAFLHS39k8DyDGrFheboxZdLjzDXt+VwAxBC
E/+NTtWiZy98HLbKUx03bZmBeXIaF+oZE0DNtPaoQ7BqJMUEoczgY9g7OVxPtLxwDJAwpZxenN2r
M7wwDEVitTdmO/6VUA2LqzUqhGZ4gxg36CrNCiNag5qwBZJxd4LX020lPRqWKGam7wgZeRrRPUHT
6RIL3RMxND5aYsPu+3AZCXR4mAG3CRkmvksG8prDJeadrXq9Pe4YLvPFrdUICbwcet4q9ChMwR0q
QcKpEGQ00ft8P6PBMEN8bJXbAqlvNJwpFHs7fF0OuKKgHJVvRJqABXlqBv5euN3Sfyfj/4EiBeY8
/D7Mk/A1szLq9QrwaylUTN9mno4zFgK+2rmf31hWz0b0tXhdM5sT/MtdMIA4UrVj+Cd+o9id4Tqh
tpK4LgsZVcv79NCOIoxTkp+qYzByLFJFUXbcyF8fAksxXDdMKCsPipWsjLezJlsb48YH0A7s12iN
GBFQucXEs0EAREYY78d3S0dY9NUf9cUJMpNNBWBZOxId5qLhlYFzE+zJMBGZA+je0M76Xr2I8Qjs
f+kP04zDagCc8ia8Z+dzcBPxTQj6U1AuhQ/7WG117wtkUvt5jMOYasXbhCYWnIYFiywBpoXa3HqY
G3oTEDf1vXG4wtpFmsNG7vCQDFwGgo4iUlnMMzfIEnlWSzxBzpYh00CT/Hu/jAtKynMvPFS+QaYs
mDYBc/o8XkbSVJIuVyHUa6SmlVeugJSEYAPf9DVJqzGJTf0sRYQ4v73DSAfZ6WrbLGjwM0VUCooo
88mPw3At936+G5vUBMm+jLebebX4uzdVCBvYeSAzzuUDshbNZQYfjXC4xtkaT6MF7QYEdCPTr8ND
Gy5ngUU4Ni6CjtmBdG96T/rVtKsNAUHN/cvHZXo5C+/H2A131jzvbLi8DGRjynKqYbY364zmr/cZ
i6djGLeej4GUhISEn10nMvYoTglBxcfd/pUW19o8i+NP5oqBSiAsVZGtMOtkOpI3Y2JaBlP/1l8P
Kr4ma08yc9FNOiiPFpfnWRfsK8vyRviE4ZwxLJ4sj3/SbCBIu9VgJmsArF7hslgDHY+zdcIPNsF2
OWuhrwg+snFI16p8SMVOzOfTr+c+EpwS03L4Cas25xUvdsNnmM8M6l+4pc7fp1eZ5ogX14OGgYMS
aIlV3ptarWyzITIk4h04ueKQPE7tZLlwcRwc0VVuCGdohSMwJEvQnYURDEkWy4UjsTVBuBZmjFSW
t8KhfPDctW0weqhCOJRih/JqeQVm4Gi1DhU9U4JY4LCQ6aQpfZKH0H1j0XD8hLXvMTUHEZLDBQaJ
gkEAtwQ3swiX0oX7MqMX3AhrcSEKcW5VpVarhNU4bij6QUZ25cJzdU2IbyRGFtbqGMFiJLhxohcT
YNS2udbkYHBBEAyqCjV0QARvdU4OCOctvBeD+kLfsxDLQEmiqpDOWaURXog1+TS9RCtQ6PeZlOnW
mTjCBdfCC5eMt7AEo0ytVgqrsZ0pTGLYupAeOx1YtuUIE/mWJHZ3rngXHNOeSpBYDHeBpX1jOXr6
RIUFhmAUtFkI3SHLhU86v7d//UTYWBfeWLxZXn/SBiWZEmwi1qPHIpUxXEoi6TIEc2zSXU+RkpQf
Q8y5MSIaviRbAUdaaZEqLcXoOmtc2YkRF7bkAlfGfQotiHo1FUaDyAQbJGs2ABCVWJ9Kn2xM06QN
JOh61lNtOkVKsVOENlCExGOWC8dkrdf7xH0n7JlpelT1xrHKcmHPm4b+tcFDEBBNHTOvjfA1kWHJ
PGSQCFT/YnYqMCZDPmM92ZkSPmnaECC6IVyc/0ClFsI+85CYkhWoQFYMa9L2U/hxfyE3nIXSDqaW
FULFdo7LLAQyWzYXipHocu/PwwGKCX42DU1YF0vJ05g2JX+Z5XaqwlUG+NUZJDDwn6mg6T0+eSNv
We4J8fkLP2LVf51gWvPj5UMIWil/7o1VywhneceABbV8Qszh5z/82yE//Mevf/45XodRORzhDpED
XcgCyos0wce/rR3ILtsMhTuuV4DB+34Xfrl9woxN1ZmUbPi6M/nxB//1P81jCGflY9MdzZuzmrz3
QdxAnYWQiJ9WEOpeancE3kvC7lsI+NMKhX9vxXPhwniB4Tp3YVB13jIgYTCMWgOiRYibB9zQ7YzF
IcIjtgxJPAdXKW8ZEfycYy/rPGBpvTCfWhNDFkJCNtJn3cdBc4mdyxdfq2WEBWxcrHjawruwUc3M
RydZiDEV1t0dX6VRoenfL/ouTByS9J20+5LvPkN/jR74HXCVHvMCI+oTyNL6dbsQxDO+ymW4Ps6j
dIqa4UOzURVUCGOqa+4TZkUmESRPsYw7Hoh7i1hFvZZPY53NEl+lqxjVU6DCpqo0yRMSzPxlSV9N
wwaEswK5dwjzMsNEOE/jf0+3o73El/F4MHke4XkrNmPejXMYGYnE9By9TReelo4jFIZP3Ce7hRb/
aIw2eoEadNgPVWFr/8zGruMRa8UqavBo+drpBFlrbqRb71ag3TwkIrVmfX15/P774eUBc04pEy7d
VMu0k3P3kI1e+vf7QX7mlsH4s2cmQU22BED3EOqKUDJF0s09GhS+V8mJB5pOHNfg2I6aAfUk4ruK
FZERv7CY3lotZ3O8KFevOLFZC9lo0wGxTrGVrMZEnm6Hh/aYHve7XghX7M/j2xVrJyDcRXNkxA2z
EQ9YQ2eKfAFP7pDiyCxEeE/KYx7Mw5nhgDRox3CdwCot2xkPuYZ1JSKu6f/tNUkIelOFTBE033/6
P/5P0Qhp2RgL6LQtGWXqO58gGQQdu2Tl2kRO1NolAmUyjQ1TgyV5lh7q4QaqjV8O////+UVYsPSN
FFPV8HG9vw9QA6K3BGnsI8y1vUdRnYgRI5Ifd2frYQSaZaMJ2vW2vrxfIG2Z5qPOkTxkX9osqrsQ
8el7fKEyTEUgH0F1CRegQgNF8PjDA9o7eqC4+QLjOqZZIOSqCk3rOP7tiz4K1jn1Cc3JhmrQSLfM
KxfxYqVAhVKBIa3o6A66pBr1rA1HSHR+H5gMQaMyoYvq1h9Xwwh6+A4dHuPdpWKFG6t9S4jtj5wr
KonCloZEGQut56gJgn5dki0O8QERitXZbMaSPIk+lHj7mqiJWPk8D8SsU8zagpokHstLvEVThWTd
3yD4a2fSwSwPbb5cJSnfMQudY5wYy0sT77dhOB/+Ngn31ZTsQSlDbVA87H3jdV2G+zwel4QHxab2
sNleniO2x2lo2VweFsvVj3cdBIela6PON5HmT79I8lmFvD9wVDSbrQiPAAj3uE/CdTZsExi8MbJ5
OkMj4/VNE7NAGLlvFrUrYJ+AYkiH33jR5bPcWMWF3sIdKnvn3hReQfWKIDka34UrvHY6EPwPHHuO
1Yxp/dHwKAcrm0I79Lk223Q/r7JEoL4segU8FCGYmHUe8hGNifl1+jaIRlHt/3wTviZCDnu8wCwO
4ZK4hVW49CTWRKOgASNyevkbFAjZBvF9Tgmf9OaAJUDpHrWFJnFl5ov+3KasICVn+BsrZDzRIaxX
eG1VilUtXcZ51gbbuz7mLDxX7Vm5xiMw0g/hDoUbLtnoMz7nmPrBtTU3Xc8fxlicXnd7fI6CIPLR
GCQ605Ch2Qzq3/ZUKmdedae5G6Zh1g4qclZO8AR/ExoXGhZpheOW1vvR7jkEgIF5Yep0sljUVU1h
4K5g5dhrKbGtIX7VpvFjlsoxWW0oOv+MZ11dGDhTQO63x6JZB7Asc+HmOr/UuvMMMlcdZrBTqUpM
qGBjs6xRp3WRAkRTgmbKTK4PvXsh8N003ohbg3doa2LF3pG2rvzKX/XUo4Myhqtd4T3dYkAijdfC
7tXpJQijy/yq62ZTPErOF2YK/ArJRM0mH+HL03Os7pdqepwxJwwQbZihsCmd5oWEhVBr2YXSKk95
3L8/AHFI66+oJ0N0wGoaUQhui3bfh/HtPdlhkRd+lb/a9myKFMXHN+dt6UJffmrnvRcutWUlzKwz
arz12ma62u4CqW44WLVPPQqWlG8TOFFySqlmj4v2hbK6MyzqhMZh1nqCwtxOBNNnGag50Fj7om1C
S9WhJisXqnWO4qJNfzD797dtFqHyeiaghDcL9tY4nt1xMNaBZGG8AzXjyU50IoHM77FhvSqm+0v/
4zxo+a9do4eQqiyyMFdtWlxWfZVqc2nroFJZ7Zz5jK1IO1pFeTtO8dRs53ohbCxOu+YAgib23LE6
ZocNg/3Qe3qI26IJ0Q/c+p/uIFCn+T/H81+pC2EW7tw1D+C8a+XsVWqX2dPU0m7aiYiaqJv3P4dv
f5yud2EHXaiYnsL3/R2HvWlDzqtsFSTqpto/2jp61m8H8wHviSauToX0I3R83maBlFnvF6saAQ13
+8/H+fzHebqIyAAd61IBR66pWLQvIVnqDW9XoYZw1vKQwqihjrGKNbNhbrF97gmAlkjns7324/kh
XJKNJK7dtLxHcL8tynAiEJeONBgRbyJjS6Kw8rtLDPoOuGZYtEF3lcAF4Iu4fCkw8n8ksABU4ZnS
VSYF+LQvsiBLCJeqQioLT7I2LsZ3U2chG4uehEfRBdeAGd7tep61qptn0HJBKNS+WMrSjpRgrTHa
BWqxUM8RcAzJjGQ9sV5jCNbUGkiSKu5n5mzosRt1Jcwrz5ui9FFMVGrWt/6kCEV+hFnf+pPcD20W
6UKDfDPMmiE9az/+tb+MZwvWJPjzRR2KqQoTw/UPN6HJ0cIUbf1JF57VLdx7XnmfrMiiwusWlV/7
0YmNMPRJ5qdEutAlYg+ssEYTCqAKE9T1J8HiHTHIlpehMJ0w7lx/0obicmJdUr4J5XUUiEHJlYKf
aEsm+sAksc3w1isTzAbH1ljNpTwcjwNz0gVB7owgqElQ1uHl6emkxZq5RapqzSP50luSmxVr2qVs
ucktQBb7AM2ygMuvjd7lNp4lKR7sSfVsiNMI5QuI4RKt0CDTofDBTlqHsgI2kMFNkPtTO7VpuTSo
vWsVj9Yvd5xX/5A6ZVu/U5bdrgEmSRu7XZ2H7FUviWsNIkFLV9t3aiIBKgC1Rc3vkEEkVVcHbb+A
9hV0bxMqzaRoDSRWUkGNOggbQZ4gwtCcH0eC/hEosMt819t4lWtnYLTyhqx25tVwNFEtR/8AIYRd
JMda/1mFE/ORsVJJ8Is3iFfP8SqBkbM2RGXQyIO9hmi6uDbzWa5GIjZk+AzUCkOK04V5HEhQMmrI
0GycPjVvDAPEtOEvnK0K+VQ43S+F/VRsIKWap1iD/nWb9YvPvaC1VMhXRA/c1NckbqHY+C/Nrii4
IBTcC4F8MMhriRbchhXBbWLLQUQDwZEKhvKs/qLc/l1bJZgTZXBOgjZrvLhAyW54fixLbK4tXS47
EgSQrT79LMCFBDHYtD4FtG5/7zj/QsYBaIvcAx2pKuYtWWeCmiTfkhmVJsRRFA7CVJ2wi9b3+Hy7
Yz/SCVdJ+Ee39ZJWHC/BAMm3gER5ICYdBIMU4kuV329Q+sH2NYkpvxZHIHSOPgXxRkQOtPgNEHY6
SRgiVTCb8JIanNuwqu5o9NZlXARLl+XfmtXJJqwcnDUFGYwJQHe0SJSaTTqfgOtIXFMsbqOgE5OF
cLtqM5o3qSzrEBHHPHTJAuaqP8Ps0xqyI5yJlI5hbgQLS7Gt2NgDVScJFkSlwuBBnh3tmniSwIdl
KAptqze/9vNogOOQkEXVx6yLrHHzelHefOmvAlRbwUHf8A8OWgoAI4TGeTLDt08JUmaImhi47Nb6
C8TooPpbPphASvp2IUgkPNRp7I/zSHF/ObfHzIIKq3lMlTP6X3jJUBeSlOhtybNzxG1xd2OtYhaa
EMj7UFuUlyImxgRmzULKhqwo8HkdTuOo93qaBBJnKlBVOMiQhZudPXmdrmukLomqyUiM2b6kVld0
QWv5SjqVeeQ4Y33NuJuUpA2AaztpYCQiPKoKbg3rE8nD35XAY94fyj3l6BTR+F+1hSVGOlimDKUl
M6wI2l/4tPIgS0s5FCoAK1UcNLJ0oQa6Bi9lJ4g0psi6FXH0mz6INuXhPIKYDvqZxzeXgX1JXSMD
jWNRDlv7pV9Be5pwC6YM1aY58IZsj/Yp1WvTsCK33B9Rp3WScL4ymHlyRhS2pCVBpso26OX0msmp
RFcwmJqQVyFXMyWxOZl67hD0ygBmU4UpfqMvHyodIfM30qTuex+dCZTXbG4Y6yHG9Q6xG845dLev
T7UVRxuIzmzMazZDh4kBGmiOHaP4T1fwQV4+rE0XX28tzm+8YbZ2QIF27CFsM17dkKFDanhBXrOJ
KtxH1zKZrhYqGc0gvDthxOrnyzKlJcg4f1ni18ambrIJSuB5DQhtaR4tvrMiOJPkBRQPgvradWCm
+aEU1in8jZiHJyTA6TYIL8/A82vMITTr1OV3cJiBu8dFmCLi2gEbLw2xIq0SPcc/z9wQEix4V7xb
3E4QgtD/eHpA8SFkaeOrsXkSzGY1jMSuFIMsAivVoTOt/XNHbJqhqvvvd9jWetzo/Pmct0f4gVe9
BnR7nw+4T8B//B7ZFx/E6/gDhqtCjOd6MAwb56/gxBh2L4LZhRtgU2rwYkxsBNEEoC/9L1QfTxf0
H9Jd1HxCnHuqOxD/+LsJ+Gq/7TFj5sETAQIxNqGBemh6IZ64XldgJCZ+PMyBlKgQHjzzBWQeYg44
HQwHFZhEhWYcesdSwrGy0Pild21lW4IziAzCBoKTDq+T6ym9Tqb3g4ZuxCbe5zynuCl1eeJSmdlr
NvOTcelGfubx73NfM1gMWl/bTNfzpMXvVZ7AmNd8nh4DZ0Yi1pYRtPLeJ0RGEQR5cC7lZkPL17fD
EQoA4+vUwVm4GHqAwfBoXAuvo4LTE6d5wNzZnhEvWlJ1IYJZ6Q20GgxFj78tYxz4Z9WUDNDb9mPa
3gHy9eyQuPjRVBOa0OaT7t/6r73599O4QP+sINDz4IuF+EJYIyjUcUymjWkwBxkgPK3wOVwl+6Jp
q9AMTtqZOSGaFtFuppz3cvizWS494mtTwbZMC00eHNKIP224VBA8RWgYFlmY/ZlQUoak4mwYOfpI
ta9rYnFD4ILdV4beK2K2FQK3B2c0G8sHAwTokcc3wualsY2YBY6PGZPSuNAN51cfvgumN1fHhOHs
IPjgo8oqq5RZzEdP8wgo+kvUWGCKoVGaUaOqXPZOvLsxt5vQtdeCtO9EO3Ur3y7jQm0Egl7tQvwF
0W+wyDDjJGwnCykf+HDA5qH+pLlL/3qMorc/3vmmpJVg++ymmtlNzBiTTJtalSHTBsBQIHyDjUcU
OYBOjI/dO1EbaViFnlnYFpuMy5yq9ddJIRt3GjS7YKC2oblt60owaRfY/HGVl+FTDR2osNmBsS42
20M9tH3KQmCNXNwp2Q22fcuYWSb1JO+9ViEiffJX4Bq+L+d73G+pnkakGWI3XZ1fUVeepovguwQN
LBYj+X65yQESNiyYscz3g3kKo8xgDN3xfeCPIqu3tg1dElb8YeJTa2vyFBImE3fGlXPu9L0SQaDB
FLnhtbvRZ+CIUhLYp8hCBk1cpwh6oAkxsllpla6WFY2GGm0LmkiXK/BX8wTsx7JI8V6GnGOPYVmt
693zb6wSBE0biroYsD3yFmCWkbAAG7/qRg1sRIF/SwmBtbHUGua+Qru0wFxsgDMvVoKuef0olzdE
bRAO0zS+N58rwZdCPENBYG7GjNulHjjSERdC1D+8oFMyylazicquhBplz3A891TPaCeugyCx2FOC
KGp8h9oUEFE789q9iA6KCJmR85JjP+gQCFlJGDTkMwUnWRr1cZlONBDrTb/D4y6F5NhcYBalIpub
VlukGG4VOs/rhH0mhs2tcRM3rYL0OA/0/CIlVmG+9PlaMMu5O9by8h8/RnYA3vjyIXBjlozZCLGJ
Tvn+cxHiJxMcS9gfecidjxtEG0NBOGDQZoTQsbFfNHddTBocDixo0HDUFistDdLTMj3mo8TlrT/0
OZdMIItSYuwYYdU8pNqvy+OWDLUyRcqyA8lYYk7+lSBoi9C6Lth/IKEtbIzRd5O7yMrmrrCTQ6Aq
FbL+Z3TFoVoBfADZbGJDhtmYbjehDehyQb/scoCKrSVWyUH80oS8O5JZPAgHTiy4mYL8cg/HevqZ
nbnKdtnY3Jj9LRfGlHBHnoNSpX7RjrXwZFUXMqXQAdkdLV0baPwozA6C7M9SdCgSxODpmnjrdc4x
mey0zcqWKP86XgYoP4WDCtqqClms0Ryk9PJlyJ83FquJfnATWDiSCgk0qzishHQjPsRQwQoQG8qy
Oq61LoKBVZHOqUKJYndXuBRATSBMlwmqSipf1SEVg2sRA26IlPJ6QtCvCxEV9zYdiQrZ6TpoD9/7
l/F6AjANIwriasndE5ZbunTQ9W2wSRuMZfV3HASSC2/Yhihiy8JJG2/trfpkNlvYWVPu8ByFpFke
HMDO5SUWtMvCUoUCGBspQmLcgHReiYaEOCSzezxPNr4mcfopRZ1VMN2uyWpx1qGwr1YK+z75xXsd
4jYkIoJGt2R0lpEKEox3vVq7yYSO5FQ3z2U5uCXsAjjbwQwGbV3MFZbBwIZo2An2XBFyK7YSQeJj
ptah7MK4fixn9JjPRiTgcCAhaNeGLPxPOXxlkMQjQR8hlFGUIfvi0yFK4ayFb0crz50DE09gtyYk
8TYE8AowM+i/T6+C0VqEXDK8Hfv0qqsiA1RIM9UhAjJZDRyUSYGSRGau2OTz8731JYIYZ+TUrU47
UeKfQTlBjJZCiHF6CiqXaIrE7E+QJ23IV3kObaRCOM0mRGKrD16niRSeSQOvmIBCLrIJaZp9VnAy
9dWokBOyUTlikJsVq2GPaPkcNBBCF12+v6BBBIQgbulCZSOeThG2UoevIp6b1FJXyE4yykTSNA8H
M3cRGgKZWJOS8x9l71NVIZISbDuhyKcWfE/J/hUs9Dxtky0w9tuKLVHV1EWwEMDwod98tAhGWhli
nXftJ6RKf0l0Bi1gUwVAAsVA0cFfIaUIoZkmK0NWGH5rPBYEzf7o37WQuJ37D7EIMXhBW8a53aVC
yLrOdnBfshykZu4wL7Uiq3BbOZaqvGAGXYPlE3Qy5EITPUy6QTkrwWg4JOHOYsqyCFkX/eU2zAvE
iYbl2N8GUsHD//Pnn/9odV1cUalg5daR8nafTH0XQZW+rTlGHHYs68bRffdv0/wF4wkCw1RhhkEX
ewfDqCxkQftVXMloX54F9Z0JQ521oXEy85+Bus79mydEd4mXhhO+KwqNVlUN11RRVScU8YKSJiEq
F8OHC35oByCHv75B44BU3u3HcAyNRYxrwanith6kdYunYEbKLONmRYfzvZ5y3y60JFxJG4pIPkUR
d2U3mmLD1EZiPkAd48BuoHLw7FZp/Kc/CKxS1yGGDjrroG/0P12l8Fvp+0VembOwi7IMe9HiRyz9
z5AjKaQLuQ9KY6zWpFD50oYSZ8YLW4b7Yk2l+3TwHU5BhpSh8jlm2iIGHFxrSi3x8isnSBDeE7GK
34fvqYRR3YS07OcrYQT3XAVrV5cLzLenjjBUWAKbNGFSNNWmh9P4VbijJqRKAnXN+zKITTBaEXPH
BOsmC62DzLm8T4+zVsHfx8WaXyQQ4PaFmF8RivlRoI/K1+Sa0jZY5GUuCnUtTt9jWjIuHdvnniEU
RR9aSRosMu0eama0cSuciYMhI/S19e2N10d8UkYBaPrmYTsv6kPoKYS4DSudYXBHFJcR1rEZ+s7P
Czxe7vOwekILjO04Hj5iq1ggIVzF1X3GivXgd214sPN0EO4c1LsWKHbMVkQv4yVk+xeJ8CgsY0tx
O98cvE7XD2jVNz0/03x772GheKszLGaZtfNEiikCot7L07iA+S8hO+LTsCty8s0mHnFywssynWMS
HDfD3sWFO2K4Z/BFVflXWooQbvhFGfoN78DExjARDstYIn4PnrkJ/3wZ/3lGA87VJf7619PfegA0
+nehCh/pqPWP0IiIcnixyn3hpDqjNvBnXBaM/R+wDnUeopzdqTJ0IOJprDIi9S1ydZuF3oSaoviM
lsf1Lj1G8Gq1R3P8AkMkHSpH3OfDu2riBzLhl/4F/pSPVIdEjKtMpzEQYoc93G4WXMa0NWstOEFx
1CzMZUFx14UWQY8eUI60KfiGAak3mJcUl18Wx4rKFdZoubvXd23LnBGuvD8BjECcZmr/iht2xWBd
eChj1ExueLL3ahMlIal8kqrXjmyrq0ydaooautBWYxCYyOGOOxmKdSyDiMol+BvG7DUyk2XiEQyB
wGHiQDXIEDXbCfWpe+ryuk6snKdpj9rMQ2yq9Q61tb/0J61pljj5NCEFQWSoHxppWH6NLit8bdV5
53mBHvZ+/jjchvlIvaRAjfHzZCFFStfw/0PRb8I7GCychzf9/SJxq2qC26MF41/5itPYglhiCB2h
YNHHL6QNsTZxEoiY09x/03a/wCdNyCbZil60/ON0lockpiaJLwcMbsqGg0VxC5lFB8onA/bQt34+
LRiRNIJKMjdbRyd5lznwKJMXWsHuYDkmZHDki8xSYRFoCJAM4+NwPidJrwyR3vbd4udrQ/r8HUAN
4bpQsMXNh6ANvX1ynJgcvwcVMhtxA9ZLsEZEAB08To5dUMTEQIpR3Hah09BNOuUGGzP9BPFLLUN0
GINhxt9WoS8c546XtzjVdyFZEZtxj79Wh4xNYwvMOC1vv0nQhj2gOv7reejX3SNbPaXtfCp7kiW5
yv1na0SsYdxAEyI5Iqv+qL0MCi4ToS3vw3CP1/XiDtgDdAwPO26711noi8+bLXEKDF6K7xxEh9cj
UWWhR4rYrpJWqHz5kpk6lgf0CwxfQbeCV9jfj8ILO+ZgLUt8RGycOuuQdHy+B6iEwfY4o6PjYsW9
NesUMaO+dj1N04UE09bpJmPmPMU5z05v2pwtBn+NhO+UGWuWWDmPRKpBGo2/RhHe//F9gg0f4yev
S8+etbNPxuHbwYLoxh8y6EtV2mKomzin13n4+fGZ7pO5a9lu72qfV7MACf0qaPouY7I9W2W71fTM
bo4fXoWOMQ8wsh769VIvVgXdWcKzAzFjrkGOytRBS8Ee43GFEwguXx7chNNwWsMOcrSiU1lI1ZCp
QNJbX0l/PqYetIwvk7Y44ssGQ4FbY0i2CYvQO//t/3oM2hXpr6Np4Uh4NnnIX9U7+ImC038YAFDv
46dEOMaOmeEPttYmw4uZcO7VWijxwiEM3dv5fJWnCNz3y204YquLrXGOrmR0W155GFluJTOdK5ZZ
oN20bjfOZnJr4JSz7/EtZO7zgs17UPFfrN35PRTamFVI2yz8bbbbo8bQQ+jr2r+oNlAgKVxz6b52
TQoAokmTXy0EXbzXgTZRuWVc2ou9u6vEF0AYaUfK3QaLoERMTfp1dogWu3OfqMU2B6/prhvM/Z4J
wyK+cOMWzte7jcVm6BNHNHmD7WxKnHFBHyl2AEwVt2tkWNhdgkUe84iNXNrOjjm/dOOFf0qT0AFr
2ADjmZTofLTWw3WCoN0JRN10eB8hYh/Pq5WsYwQqaMsqVMOrLWLTSBFdh3e1YwVvY7WT7VejhjoY
ADWk+qGqIgtlRwldQC6RrVgJC6v9tJDDAB4DXUbTmnjEnUA1C15p/IAc+oXhYY0APtpfBzAcqTB9
SbUwVazZWUG5sSq2dTYQUV5zm/AC8Yq7kpUUsR6tda0TaJsHRXVh3TRKQ8lKqdElz20TP14dlibF
Py58zInCVi9QO+V0Ho8fB5i7+NYL+f+KddFgo3LOCWBnwr/imIKu9MEs8v6hZQwGtu4wmFLqwK0Y
GgGD1jZZesA4WY7vMMsQYlBy+W6V5TKs1dPLF8I7VX79Pa1lWB42A4E2W5YjUHaw6ZrkCkbZgHRS
NYhlHezgf1zhak4PNA3NBAUy6RJEWDEiZJAEDFU3iXZZsQIINhhCiyQ6G3nRy2G8A/aRwK51sOaP
4o9rZ8of/uvPxr77GSSJcN9FsD2XwLxsgRC2pmMNX0JUlqySiY26w8o4KqYihj3BHOxEcVXZBbHS
DH4NHlQrFtupAmi6hsaEs7Ia7myt4YZSx5cJIku38+NtvKbUgQoWsAH9/On6l3nCYL6gmpoQfRvu
/Taez78M19NfBxzzS72Re/g4WExkInjOgAElr7kRq1W1SeyeNb4y65dE5dy5ELx20f77rz8LJ63D
rSU3Tao0bXsVNNf+K8CVS0W8FS/Cci1Ql+HeQ+GZ/q/foexa7EgtWdtDBW5w5eo8iKLMRtYS3EtP
RZcphI+KIRYy0GpsD9CLI4bFdOXQPtoJFAwYBpUA8F+lV5BFTiSDxqCQepyTWLkSmlXlmj4ayJJa
8LPbdMO/s8HFiWDgbjiWGIuS5Fo5sLTy1o3LY0V3MFuG1gadAnJXsgVxoc5NxEPKa22bGq3zOkLV
L1UVyHRMq7kxdmAcdpm7gkN/Gw9r2nawwiUuBdCizNi0OUeOZsEVBnDdLsY2hdXcIDomhf1bg9kQ
djltXJ/OUFESN+7o2G1o0CKtAfocixeBm5fD1xFg307CHt2DMFvW7fEOA6M0e59hGMy9l4ikq/zL
s52W7ltabV1c2FXu01u12RVC2iyr/ZEmOzd4kE172L6rQZSBVpRF2JvjBTBE1wCrwGbgKwGpQJEQ
RIkERgveoU8ynvG2IPYDgEcLoSu6AzevkQypzdJyYxgt4WZvogGWP79wepUiY8MnMQSmts9LI5wX
nN4S1R+0o9ofU1qkH8Mo0D1Sr/UXL4NUY43hNywHE47NntbVg6fFswnB7NlvEyKeJyqHtDVMX9Nu
2zCP2mf9Xb7kImt8ORYU2ljRQzdxn/uv0GxyFrbqxA4breQoYBcr5l3pb6x+JmlA7kWheBquoyAI
886JHFZz6tH2brIsMjaktmDBfJ9RpqvgodA6Tm6hj1oFHO/pQ2u31cRBm9mXEpTlFd7CbRZLKutd
PyKs517FTncyZpPlPcoJGvM41cFfhtsLnMgzy7GQXtxmykJ45SzoA1mBO2Q9tTHzcu6vXwSPvQyN
cXhF1Jt5uk/HaUcfcclhE7jnR9MAbh+YutHXbVQdaBDBFXLGOY412cCfk4jRngKCQILAWohe9P9R
DOCpEEDZug5SG5axrxZ3Llj87toqsDiqImdW9Z0KbtChWcn4Ij0pnzcBbKeyOviowkNWfjgvt71L
mmtclmj1ssDilxDmKgboTdlQ2s9ik0xUbfAKWf5bL6DAVwxlAjW2CbuZAmv0Dw6PKwTMjv3VDm/A
v0U8qP5qwoU4gOwsNb+VDJ0R6xasSTndgJi/4kwK7e1j8FE4eRnCmEJ/dzbOL9HgxiUWfOAsxPuS
Bya+dcmarNGjq59CyCFvXaAdFWrh57S3T5YUXq9YoTbHRJE035dk92hZZyHoVyN30WyWPq84eq5z
gAwZ4QgxHCxDMRWByVk8BCzF3NZQgHT877/+bAvH57uBqBZeTIVejIJP/0f/tf+ForQY+8C/FWIX
XagJPRWlSXRqVVkVgmYzq5poNPWz7gr6+N2/5v30s2mjjYxD6JEQDsmEBpoMBpgCv6IVbCMy3D4J
jft4kZ6AUSdOpuvYE/z0yy/77n4T6OnMLXFWMaROyk9QIQwVhNH4dGUmgTN3rc8liK1MhTp/3yZo
QqGSl/H6ChOQxCoMYr/GD1Eblx9kspbbIK9gEOB0glFK2vSe3qRtOXLFyFEWtHsEY4dxTgthsZTa
FvjZ0XgFIeDKY8Pjsqy1VYi5gDC2YhNzyWD/OHiuNSDWUQHCphi2SIH3/f+yRjQL6DR8196IF0k+
6He8CPzThKyBJ2uzXz6uR4EOgjO+tjlPniQAu8Ia2AIblSH68pIVOI9bHHxSFZsMUc0Dka7kCI74
Pk9XSDzK6bymDDXlrr6XnU4rDyEpWTIN4qOVceYRZwi6HAX6zHwcFy6hoPXc5Sf0v/2L/v9hmoyN
1vKz35/IfLtrgUBFt8alQcyhyPNQMiWZl2/QYYIE9T4Ocz8f33Hc6PBdP6QYfS8ZNhoGEj13KIGB
VjGkMD7hb2OamUwOGmhm4ZQGYwhUpRvfjaAJB2vOplJ7rGMWZScDcziMf6QXJXtvj/JiCI6Y/zYe
BkQVesxUoHV9WAefC5dWhMYlpHwNmGNKsXDpyJmP62ka4535SSPmvgw3yYPMQ/b226wdCtMua4JT
OPAXnmRZHUqBD5gjU6/hV5xs+woXh81LAkEUQeT2J+kCvB2X6+56MMph5+rgHAQjOWE1sNHgut/v
91vC3ym7DaXmqUx7KeyvDsFFYDhf69ObtooOWiXe+xeBuDbuv8Wt7bVFCwDDg1zLwBCDQDC0pRN/
Jidj6xooT4G9/TvSjSVr8UfeNvUy4KkuFp7kn+XINnWICzZycqWYXJCNQSBEsk2J4QkL3Eye3jPf
oyw24/JMCN6vWDn0tj/SNLn9Pk0XifHZOBI22X2L4gBelxi4JFbLQuGo9ZRWA+50Rjk2vauOeFiH
C33S5J4qFpvwu6giWlTFk6YVmyIBYUUz+PdJSAq5FHpI5XtplaPovUzBpwfUhZsFKkgPgVoZlApL
SsFHNJBWCddb+m5CJnGMwC/K34FFJYIU7Ks23wAp6vGy3Mc7emUin7BhS0jRvMV1uLzAUtocS2O8
lGVw5Gvc6xSEYxPyy20Rgc8enyyPLEJKxFnhRrJY4ylRxlKEai0pKQyN1yBoIRCpJS/MkReoogqN
UYoGSW5Ja9F3iArlCxYIRgj0wPFLgIVVXmRi1BhUCEALc79Pjp0zHDhW62EsRmTsXZYik8X16pO6
2O+Bgr9+werRDC0RYgFbr1QJ/mSimqv1ozm1LdJ/H2ZgA1OCqSmX+E2ODJR8xK5zJbcFkIIr2j6N
yHVWB37hKrns7CIMPoYvC0JLmcnMgFeiKky/eQ4uFWPGPledreJXhtW3BWVmGVYPYhRPpDUA92Qq
GjA3UEGlGjOuhrvX2hLfmZ09r0zWtOHHMhN7Fr3EYEGKlvhaJq6KazmH8umUwGDLwQRV4sdT7s5Y
gYW/M31hsUZj2lHmno1hyG13RASP910KNNCui6HLVjB5bSsgo6DBuB3FqCjDP0o/RkWFwgtBUEd5
DndjpOn6cErsJEBQv8YdAHVgxw5gU0BXSOO/aoNBeGejETYv83SrIlAm3WjOuApyHVW79pjp2/wf
NOd+++MsXaptOMJncSVwLsQi63Q8EONuVpK8hz0rgT0dZ7ESV+oXw+i4/MKaNRt3OyU2r9QbPDmq
jtSHFCQPe/NslTwbKQ/qFnyFuy1qi6/HaIgFtvdcVSNcFeOsfH1Cz8RIcYMTFpC9NdLZulYE4jC+
JgiJcVS9ctR3iEQ/TiNASJGXuhww5wSVUvENVZ0vLJjna9CVUvvpSie8mL3EHl+LZYxRfBm+CbTN
hLIbnva8yhHH/kScQlwpZ6+UbeTfPmLMHUswTxq+Je2+1lSKHhw9OJNBLiOOs2ZeXfTFUKN2wA6s
Hjy+wc4JJNZDsoO6I/gQpMiYdHGO1Kp6QLf2t9t5BOP+23gUtle77fEqzR3bE8wI5Ra15lJoUVuJ
JRQ94XK5ozcoKlUZJxMaUg+vcKRuQEHJOGrD+DuH5FptHEgVWuhpU6zzITC4oxmWILKXRggOWioO
wxWJiASiwJ9uh5VyU4+e1OBas64t4JugDB27s9za03KEqglVFNcpns2il2UKpMHOx9Y0Y063uxtP
ou1yoZkEb67NggqS+qqwIEwrWpbbOX8InKtCwt506ljXlAy7lIbsnDxBT6FJvwAa6lH/gSiY8atC
HcdlJvqCCCUNcCcYXBwM+IltMtH3gsbkdfor/VcASdKfF8kCaUPWHP0id9NzYQmnvlidBVj/D4Ql
wXEBwhNXzBYDvAFT6kWV45A2IOyC4fQnTTF/kNqYaL3cNzxyDvBtSFnA06M1GMN2Feb4qyYUPozf
Sqt8JrUpJW3gouSALIk1xQ7JJDguya0VVxJnezWtbBJMKGZnoEdvdLLnix5Mwoxw3tNzjMndYW4m
AmvpP7nVQMd+OT/mBUPCXwcRPIHksNstkEUVMGQSSrVgu3Lpb8jwm3EabIjruExnUfMrCz65mkXt
HrEL88v1cy/33jhpucD/jBOwady1Hawjji1Pku45JbhBW7iZbzs1TBDTKFxszDsdTknGarrQ+QEO
xQaAoOkKov0AfaaJ8iGoiKr02aP00/YE2INCjdqQRV6rgwYr29n3y1nYShuKHhiegHa5/nJBfEAr
fAU708ke0HuNaQGD+bkjyQ0a9LWCkEQDjSRDGqYQwHE2aXx2sg1EePLa3QZZa+4ajNAyyc4dT3iu
ecEiCtD4kFUbq5xjQbmRe3FmZQs6zHwf4dvQBRbUAIRjQig1vluVbe/ugZVQC+gFmN0j3JpbCfzh
snty8izzm3o0U/KfGL9GUoWFZgr8g5dqJPoO6SmcpoFwX1O4Oi0odn0Zz4ghnrBoipCs1JdM+3hB
JS48X8v84NxJay1TtZzSV0LoK0YbrH97MH4TYiqZygFIk9rm52isNWNdxizT8/wDhMj2bTzBWCbo
LkJ0Qir/jPJyzvyJtRaySP+CsFhwEMrqTrDlWL+1vD+OGJ/hH11kh/ySe5r4MAmFwBlrFUXHr4qs
uwdXmBZsQkUPxD9Q0pTsTc9Y0R7LyP3DHJgzN5kyMhAMzNvPEZPmklV2CpeQhdKae39EWDfYdfG8
buKNWPcyq8b7oTswY1uwp/EIOOwJXmb96qz48fmnaZCRcBOll2o1At9tK43LkrHStBLiE6UqY8QP
88Mk8bFJBhVxjk+sxMA90FQyPUjPyYT7NPdvgvJncT0oWTWATl6DejKhSsK+ZiESiF7qP5tgiDgV
T9O2G9PSne+A4j3BP5D20UpowjkJaOMIuoiF6FSH4jsSwRSskWBsimUR0/Zyx+LwLM0uxi6+x98u
943Ugvt+gsvn9qAglqLaIum1UDFLFKeAYkY844Z/1Lvj8bXgrTR+oqj1fe613nsnmXo2aol/NnHy
ggTJPJ6GxVg7AoE5Rw2cIoOLpZ9TEwXlefEfMUiTrIPOWG07y4eT1kJr/GCWW71xwk2CTpq3Xmhd
yeoqVLltVqNFUhNgsiY4QdxGmsxaFsoprcjrYO0JW06voV/gOgGcgKBN6zo0RsZs50W7tEs0I5Az
eLvttB9z0cNrD/81xM/Acz8hArfYBJDxafbNdkPRlE3OQN82haqMhl6wEuvvj/lLchfhVoTNtYiD
RLO6fWoC2hvtF5LYLJzDSoOMLKWxjW+iolDKqzowyV8uksUUEBMtUBPjQKk+fqLpSn+6/umPiSSN
8pxn4wbe+y82wIUBFTm7piW5E8lw002sJONxn2jVVOJD1X5mNAsvaB+JXHKojemPd8Gn00KeyU/6
o9yEdtEYFMKoJdOAtZshaV99uBmb7pAKrLBckSJDPTgic0VssBEDIWzNqlhQEgmGhykoglp/QSmw
w0LnW26ad82wDc87kescLGgzOtOuSW3V1BeqJZb0fsXceSf5NwAyycRVx6KHoD9tBBVH3gMYy0FL
aekcfgSG130srCPa3DL65H5eQ7jt3I8O5xvKnGEihkCZPPEPdn5eBwpAxlQFyMZKrAIR0SGOrk2x
pcKTS2WTrBQSIshFHRKyo00gYZFyosamUV6NTZMlsoGCXNokUuVZYxRibvxsFBmroo2rb5ARKf3B
Q5G2GHDNnKGQTidLmFTF6h6PB22l1HlEYomFfogV81B6zAP3Y6CTwsMwodCsQmEZ+st5WEx5ofmX
3fXoWRiGcF0nMbU8q6rQwOH1c0i1HHvtbEkmC8OeQCHR+muknH7WUMO1n/0ci2rfAMLUWPfxlVhX
DQch81YSO/IzXn5erhnmdQWEwLn0s9RunrFy/MAzG9dEK/OTWMKeFUFQUrdMv4yCdVwEY1Xr1zum
DOUsybPxbNyNwhQCYROb7u/NyxrYbOy8us2PPTEujo4h0IrwwCqEercukK4RzljxM0q4LETtqXMw
oBWW4t5yv4g0mLF+TlZdv65hxCZLDArA2XSyNtRD+Xw3ezix9htEy9hSYAsJsoEjvrrAYkxK2t5H
4c4yHzy0id77jkOyXglmHK2LGY1rPGyBFpoQTo5bJvV5K4qs7RVBaldYrAsB/zqOJeNqOI00Lgp6
S1Y6E7g2iNgc3aK5OOHiVSgy+3TxMNFcOGotSkit0ce3659FX72oRfl20c7MpRfOwdBEvNqorb7a
w3BFKJsWEAbTPIrai7fGBISA764JV9OIdsWq1BP8v23CfzpWdJBlzgzL2Bu7C06JodwXG5VFpb8v
kJczCKdCHJMVWClEm4D/8RITvIpecJo6v5qu9t0D3x8TLNHcqys1XgZzexjsdCKxXoc6Gz5bUiNU
1NS+g1ZskxQ4YiAO5UAZitr30HZHuiMTzcg5Un5tbrMrnFEIrnoRCmfsuMorxWISxbWN78S4wqTR
TMRaezhShQadX55XhYq502kjViuFza/tZpl5uve29VhYxcVsGFygZcxRwGsjxuTNWU2J7dVNpSKF
7rglqVwti5e57yj+tIWs0+uOQqWi2dV4EqYWgUzaUHkRxWiPEwC8piuLsiokE9bQ1fLeYxRDDtVm
KpS/sxXb060/Qk2MEIlg9SyqzF0PjCk28KJ5yJqJ2k0WCmPdu2O08mqdMCYUa5B0KkPRX1O1I+Ek
0D11fq9Ql4w+CQX9rBAYI9sZn15mCjLG66ItkT3FqkWoKWb8gVK12m0LNGnbPj8kzaR2EyRTMqz1
c9asNPVToSFWJ8+CmBIXGmgqgQNzP8dfbHqTH3dfXAjCbZNxLr2yNCpQkh4wZy2QFbWvRmrLBTFV
h5ptOMj8Hnx1umu2nSJzU2SuAFQBBcn6Qsx4OdMsktgbCyGjBqr3aHCBE8tQAd6efLrQAcQWZfLY
tykglXCaLjCb3RbaC8HM2t+l12MzXiRdy9pqVUHT3mJtsYFDCkFvZvmwFgZJhgnNk0UX0j5rYynV
bOCA1ZSFUlV+z1kTWIla8smpIt4W1itDFZaGCwCLnhrNXK/zEeCdKcxsFNXDvfgyvqD8dH1q2oUZ
AV1nlhqZ3PMzWJ0979cJpnDmNQoW3e5FhXQztyIqDwLBR7eglkrqwRJ4PfPfsoqYeLKx2YXolKWs
hjNKIsEoYX1VBSK72fG0o+s5BPSFNzn91XVliI2pK2BV1Hvas5TfB7W/f7kVni7Ywfq8aAKMltZi
G6wVpl/MGD7EkpmhAXK4nlzVLbYGCRdX+XbzUw9E0h5Z4zZUnoZ/lBFyKqSm2CbkQLLmzrUQM2lB
FqHuCaskbqzA93tcOLWhxON97q+LLXaz1pVQGdH4Setmt6MtaAeGGbAFT7BtRFjMKuQyKHaiQubQ
1qMQQBC6bFvon+4apLsTrD12OCx5LZoArgPpiEusVKxkqSuUcO2Ka5ZyCJNhgy7UtL8BAegX4w7M
x5TNxfLD2F/TbNkPOrkI4GY8SyxYhdzDtfuIrp005giAczK6Rh0EggjDjwh3xekDxxy2HH3Zr3JP
OSiZLxw8bxPjcmlQlSbzZXvrA2patuZ2hEBerBagWh9OstEEq7bYVAlkwT5IRHcEKTGcpN6xhjfd
lthotdHLJtsplFZrRVhvm1gLCvK+9/PVpucBJv8CVt4RUJ7G5T4el1RFulLBiPp24B2OhzIgkvF8
vWJdM3Du1hTBmfwAIF+9DvpZwXLMhVU2uN6tAe6FIgaMp6bOxOeVunHE5r8SftdlBRrwDBtL11eC
B0xfJuvpYdAo6/l///13waulFSof+7s1NfSXaf4Yr69Tegt5qM/isQx7kPYUqw6AAIkBJ8Ac+Ddq
xHiZzifh1/nQEKR2NtGBnn/Gjo3r26N/kzaSh1CSl/fpmwcJLuyE0XWDparW7oduCJgcd+nvR+ju
eb1LYxUUa7Soy8aVomu2xS+J9zRlYt2Ctq+06EPgbOr8jQ7udjG7yivN2q4UO2XNI0UQdwKnqVi3
djC8YqWUEwnCam5AtkVRj/GvcF/Ps15WWw1VFJUSfRm+WaDU8Y75LqjPiwplxV0Bh7/sVqXFAP8z
vgbvhXRF2ZqSLlPcm8kVAzljpdfrT69YxBAqh7u5T7NwjsZfTK12nrafAEFpXVZGBlIMAInP0TRh
XbqOdbH4Mrxp39mdbhd2QeFEdTB3g9mIEztP//oKeUgWXFXCturQndOngNPwf0Oz4bq2YCOqLbCT
ChKOMbAF2inEZRwE7et51D6fsCHeNsJaCzDvsAifZb4FXWw2EEN0po/ZJTRYnmQmJNhdnwE/hEB7
hKvMQphbrk3zBaIC2IHOXgb7QoU1O8+4NUFcLZvn8bsUllNN4UPgmVrUE1jWd6iDgxWEz1UIQY/R
/VXK39OlVr4FW+4mfOlYTD64KTn2PiSOyUP3wR9ijR0nsDFyxToR2PQXs4kdgrYJClrt0V2gnOFF
K7YLtkHd7xP+jZkdI7S40oXn/raqpyNi8TFcPvggOMNZOKR/YcVWrFMR0SyKvi5EAW4Jk41ahbIc
KtHrlSEcLH7Ao3aLpDNloawW8iWmiCHyJj8d65e0eX6LaqLt4BlOdNTGl6YfmFlAytz9Hyhh/Hoe
vuPokLj75+3UteKZbl/bOSDDTSiuelgFDewVH0/4+TYcPd8c5DidH5frrvO0m0xnFVywf1n0kndx
Z00ILoQaovfeyzYbTKeDiq9vYsaQW0g47rZQVh5/Nz3ZjyvWxsxgrZyEhVjSJMca0jx4IQhgL91G
G6yw2axiKit33S+TbYrmqjbshvuvE/j4UDksrVFv21MLt4bwGYvQU/FptrndfXfLMqeQMCsq2ykm
03wXrHygH17eZxyCvPP87VN5hxtTgF+8wEAvoYA8r1SoKZHw+w/j5U1GzyiYe4ep7coN97Ex09Rs
rCKv/Pns9Bhv46u+DRj41d9uMBOJJB2OlpAOxDs+nf49TetOqMYGUMDhJxKzGnNWOMtY+HZ6hXjm
fTwbxG4hE5PzmdX+aAZqVOnHs4RrXuSbUS6GXoaXtzMoWHztXPhtFk/BbF7Fj0Aj2+P7bkO3qSnq
Ny0Af9NK+bf+fHvvfzsNCbD9gsNvOJyVj+PLcaYnOV4+voCkR2j2KRrYpSO1G1AUpezGzPisGWYH
iuX1BRtCgckMIn0sOMcWDkvAeEV/sKr2J0wppmr3czZnhdV8uMG0FL5OlBQRBXK48hJJnI1u0Eq2
WHcKocH4Qrz/2FXb0jKX/mYHx2F+eRZ6CvLwnBGaciDTU16rED3hR7CF23T+eNNMTh2xMqN3ZWQu
ESQcDPTfD71dwaJnLOgF0uI8TTchd0hHZKX28Hlp7OP57QVE8eeJnYWGVYko1opduO2jR6Okx2ks
ziyEznaT6BVDIrTxMHKNmRBCUfcEhbX+tMrCf133qoBVhOVidAVehwB17un/XiDAoFR6eWBTDVZH
rreiCfkkDIrMWV8ZiwL0V71pWAwefR1thRt7eZVjtzmrjcfwiUVFXa/hOM7H87CLxtsqNGFJy/xX
qCaBbIXY95ez7h+w0Q1Y41b2QKQgOfY5b4JQCkDVf7sNhqz70/QCwmT+AumB6/lDoOrWNzza54un
iNDr6zLcJQ2d+f0RJthPVL9O3DpCjSQUPl0hSPh1FIZ3FRnvuCgRRdP4b7NMS3ko7TAD6sENRidD
BcL0enh5vL4KyxQMBItVW1BaEF9OM/V1+JZG4SjYKGLW3PpsnQmisPbgLlTnTw0SuZTN2WAT5Vc2
sFMvtSfd2zn1AicwILhqTb5SRQzOQj5K98DYoFgtIOxvf+1Pg6niNPKCwNwT6p2PXnFF3AFJJ+iv
IiTEXvuv4xEqQJekKq1DDbXrFhLobzkbdMUE36VfwPr5bigtZeR0Iepw4mCfgsvZrBwseavsNDBt
x62kRv+QpPmcgeFwgLOUDhIorwuNi3mb+w8Dru6U+r7jciAgZ4fZJgtDzIe3eRRsehWcJxw6ZTTM
RFef+1O8uU1I9fwJjV+F4HCM+0iiO+FB8iQxlAgqIydOWiEddjkpOetHLDqsFHAuJAXUtcI+apX0
MvXzSSAdJrAw6KvsLLmefGF8ZboWCXUo7zZ2UBVU2/tJmkkKhfGS8ln6JQiGDenGEmHnL32CdAs2
qwtsPZO9IJhlA3BvalDxbHvt7U2u3A6tudG873n6MqyXZSYOCouV/t3n4bs/LoKyYXAJEKayPXgg
lzO8KeHbJpwxT10R/Qev8zCI4ZYiFK25jd8HnOezzqB0IYnDt+HlC2SXXIIqmlyiJ3bSqcaoxVZv
b2RLol8879S2FKH2LT22111Kh0+L50E/I7Rg6rIxa0Gfv46yFmbDN7cuCzrFF/1fjxJuY84nEru8
6w0xXrU/g99ESxtqPlyGKvuAARQL5OE2ZCnO5qNxK+2IkwwTgZm8CSJroIP6aU3OkCCwNUhxWzwV
agoiqzE9++ndMJQ01tGZdkeH77fzeBzv54/PeaVNsISLqTAouDnpw9yka2iCs+6eCPKAVbrxuaE5
m26J8ZHO6IzzcIfzfFb0Z1Uo3EIff55OfMQGkx/z8UZS9MIGqDMDdvVHtbM19tcDysZFWKUJ+WxB
YQe4VZZQZBzovMsEUtgVL67FOBl4swIhlk9YjmtegsQRplQpq7aY3A+MdJQKcwtsRzc01Xl3fhxg
EjhMA6AkhgkWxWMTBZschjlfV9lOKLm/oWkT34cN3XYGsIz2keVN/OdsFK3zLF1KCfTX6fpxmR4m
XykhGResU3+9htwWcWANB66Bd4IsYTDVTZo9XqZacHQVAHhXK8i7gdDWUun+Ez5afGs2Ktp5URpT
VoLJpcO3GbohJCzzgqN8dF7KzyDXbFgVjxxfqtksVbs82WHRlwSTeAY+TR7SVvIjrGUf+KAdFg4o
1oZsFn+fHmeA/f9CvVi3GO5LwXoIqAoBkqVmtpQW2GZg9v0bDG8yjBN/BHZ1GKvU8oCdGFITZgwR
9XKR7UchkPh5a7c7hcOWNktSv6fpDrsmnkTZrELn1ebGxjsWbIQBfuLydEaWwPPZ2Uq0ERNg6sm0
S2ynYAxdrR0EWd7GLzlX3ifG7rqfDMORJpL7dApWPEKPtVaUEX4XVoBC59AIReJ0KNM9ilIzTkvs
tZgbYqjS1GkhQ8c31rTefRurzqSQDk7A7MHnL9iQGFywWhc0D4jzYQ53Ai+zNgb+q6AOSv8JyCbI
iuZfvkcerVChM2VFKbyzo1QWLsmK9vB1mO9jbLZxwfC9Nz9nmsHgBpc4vVv45w2BWWGgXdP36Q1m
zGEPMJAEYPZCtCNmbhesi2Q9jo17+xpICyvo6kdbQ+vSN0Hil4zSIKaYd5W5oWrHDeVtSJVleSVo
0tqJyWIjzam12EoCGKXuTiZzjKrK0Ds/i5e9Eq5g67m4nUHUs4oLemTXumqhNwz5p2X6wXWw2n5O
p72klAUu1CnvBo35ax+LHty9PyQQ/vZYBEnRVb4wtwQgEHdeebLAWs9mntx66cIZGBVka/hZKyKt
ZKGjDUJTBGKYIsJcZe6psArMyBEl7J99wgxkrTD20DyTg26UhlYYYJXfwJI9DjArFACIiNvjazWb
fShGtY70iX4fb/Er4HtykoqmcGgf+GrUz1mgKlWGlnAGgmmGNpRPZTDDcFp+0pv7K47xtppJMEJK
3wip2Tat5LrScTWHxoo2Cz6JxH/BvxoCwso6LVFnAB8GfP3H5QVyiq+w6AJvtAxXwUQvnFZHVFqL
+wuWGz2zKQplfyUY/CokJZ/M8ghwU8EmL9klvNdJGAJM7uDDGvbIlSCjc4/EreIzZXnmqfq7cUoE
5ZL5j1Q8vTchcxh3wPp/eLOn8Wv89Zn1xkSWGQYJoOi4usE1uPTfz9MbMLXos6wjra1faJSrYYH7
ebW8zvdZsLu4QsWhkI1XFGvOir5eUrZl5UatFSY10V/vhtZz4WN3/VhFVBgrvRKs9MZXeza7xPkb
oqJQAI5VTnLXMCk+x0w4eqzyLKHhiijRCypSkDHYKBoFfS3YKD/SHmDwZ405Wikcrfavsvq0AyJK
JMWMU4RLaFx0w5WOQ3xifB2HUzJKULuXKAhW3ZyxqAW5lYUYFwQ/SMX3B6BZoCgUVFLjy+jOrzpG
GDzTVJFy3OuOLdW6oa37BACwceoXtnrPuhCdcEVliAxMob/xYAwlXMbFBCyo6IGmsC6CEi0Y8zvb
IItg/BVswsAmKBbx9fUOE3ZwHXSRbLWEdv/0RZ8AE9E1LCct16wKCSHYnBFqJB8Ea6/zFyBK9k52
na4H37/VprY1JSXHdMW82ZgCz4a1cb8vgubXW818AWgM08d5IFw6KDwhUygXLNLWIwMjCrTNIqjc
ze9y6WSRE+8ft2HBEuajoO9LZlq7iZafknMJGmNSJnfI0uwXNsGkxHJ5G2Li5/db7v3xi+Ad68dj
caDCsV+mBK1QhGjbSMw/j9f/kU2GNosb8J/0OPPCd+u8iCl1BZC01JaRcRIFnZuFTBnjX3MqiPaV
Fhy6v/Oyao8rtmf5UdxFcDCDrkWWCVI6U34AzDSwTL+P53MPvpDK8q4+bJxeJQSRM9/hNGPtbKjK
WCMG1K8Q1mGvhHFH/We5dZWmCxEtNmuRM5tIjdTuolmBWmR7eThvV/AJU74FkOWC0aA2Zm8th4ZT
gZg6FIjhFqtgsLpXR7j5OpDYE7RvW/pil34a7QjPzJD1nVYoKhR9ZW7pjxoIK8zkxiPaOvz4E6K/
r0LLZIXg0+WlH7IpJAorBQYomZiqccqgmf1qpkzDdZuWO0x6anEVgxUn62Ij/q2ZKyhLbma5ogmm
gBIuccGSh647L25zJSR3nYdyK0jyEB2BvJGotli0gUFaBaL9pkyaK27BEW1CNJJIM85ozyWyjCw4
4vCVsqwQtGzlS981xizQa+fni9TmjSjtBUU6lPo6CTeR+5kL6yUI8Za89gMMdMahn88fu7K8mqzr
kFVKIsIUAa7u9PfVH8Q8+r/Oc/8h2BxdaG+rB8Ntj5CAEpRHkYdSPOMVFNp5WCM/rOD/AKawYD+o
4CUM0CJ+Gr4LXqgK2S9v+uGBo/44zX+CYob/CyYPCYS6yXm2Yb9FiKB0QUFhrzqhCaSL9i1oh5RO
DbD7FJXeXunfUvcZRRXd3gpmbwWSKZBwMQDozUYzIBkBYEyAyOclH7KLQ9wfsW7Xgs94QGcGXsCg
r2OACOwrqQaB5f64LaSEOo+sCxVAWE7dw15igEAxN4+hX+PXr+NwPq15G8GazuPKa5MuO6zpXtn6
VF3IA9tmFe0tmCYHIY5ahmpzMiVYJ1kRsvfJmbRhZ1THgmkVXCKQUhL89soL4ZXKy02aa/CDVdrS
Ofc3BJg0U7doHFp8BCtZyVlIJQVUvhBlaGovZOC5IT9QIZKXoSwFKSdhvlrB5rZu6kGobihRKFRn
IVsOXv5PoCIgZ+PMlNP4ithVdjq2YGkzh49VF/DQo9G49+ntjerZEjtlfhLjkqdg5gLofT6VCCKq
DKko7QgJxq/bBmseEgyjz1mNWYiL6CUtLyUKRSqmNF0PzZN1HYw/pZzL1mebho+OAFNbsMdYFVnr
dnVic0mgtE2Qu1koebnmfUVgZqLIKqRbmNdiUqxn6PabLfrXp5OsRe3TB4kFlWUrTRp+EgNbzEXi
cTHScGdtCP/i6oZIBA62dkpgyrYJvd9zDZEQ3ax8H9+7xAnwWB/UomFrbXeFX8o8VJx2nGbsjXG1
NEiyxGD0WMJReaCociCK7L3XqQLLvZ/vZuijCWXBQ0mqihtGtHzLXuiZqFIxj04gTi/+LFxi6zt5
pRe9QXrD6PVwPwrSow3WB4VX2ZFAZXWeTFpCCLWHWXMQKpAiUpkKXctz6l6oNeFBaTfMXnSqBI+k
ykJlZVpaoEMFoccLNa+cpKfKgjbkCrlkbBsWGRBniRYMxHI1+rxJOJ6YFYzbjIXjccacGXCBHRyb
4uHV/pLOyYR+iTZSsy2cEAysbXC/tCqDfvp1fNVqx25nHt7094somnnlVqZcibC5Y2JVqTK48iud
Kl8FASljdSn+6yL7Vlof1SELyZauGgRE8mxO45xQO1m9yb3Un0j10n9Ff5XK+BahAgXeknB4G64A
2woJO9+DEaQpoxMOdJWV2Z460WqPR2bNejmw60dgzC1mSgjf8/ipCwdFygEF2qzjxS+hpF4qm9XF
9cn5Pjtn8i5U9lXcH8tdcepGUAlCiZWeZCvc5jdTuSWKfsVLYbJNqN5Fy/E6vo6AcD6krIxtLbK1
rRdjkpnyNDCxoWJEG1U3nFdsyjfkisqayxagwqz06mzmIVlxkoc8sc/EPuIRL6WUz7fNJ5yCHQWl
ijVNcIisOygO6G1OhkBqX321m/2xVq5Ed1EdTICRyUCn/DcS91qouiiwYEjWId+aiVTSHlicAA3z
gO/xkK4qbITbEhFLL1B+YbQ3DyYIQc2sCB08UPcmRGyrUADalk/9x3g6DVKhmSNgNs78EzQmPGq2
/xESt1+HFNg3V0wqSKQ2VHXtzue5PMJZdjphh+E7YI1DkDXhkxXx2pXPaQ3VhOoNokaEMR9W2pJN
BxUUEVnWCHmrLkTSa9J008c2x6CfKXEa9Kh5N4kQUa3jsbmUcUVIKBTBkYtq83gROYWQ1kx6Snlm
LH+GxZBc/b9jI91OP7fswikp3ijibCwLUyY8Q7XpOrIFEoIHp/zODVNRZc3MU6rMP894MMUVFIQk
7l5RGza2IS9FkPHk30SxFQo+Wtxn2yxvdpi8qg05tVkmJO1Z/5gdKYCmrZADzppQmbfXZvIyEihy
ot2k8tp3zaMDCf8XGVp/HVI9w0XIntX+geAWbHpcWE7jOGm7ZDnKrV5+WeNTkUIkzmspKBnoDaZm
cfk/oeD4KUHVFtV3I6yv08ssqGgpnmLL66lY30rVo8E42QRCBaM/C/1GqnZMiLk0KqSyn1MJ+PFt
HlCijzaxH9dKOKeIQXVzdDEXVqaBzfIciYxNl2JVxKlmZq/0QFicD8KqWayR/O3xunreuGUAAKM+
xsPzHQm/wlGrWVE/VSv+4JoMnxz79nNv5//Yfhk4doYykCtMW85BP2RduG/zdBVAkUuWM1/h40u+
4x/dKwObzjCjX20N2HTCilZqnyaNIKWdtHWR7FzMgs24ppmApixgC4+gvfNQvW2wLmRPd00ekmC8
uQGx4+jfKaOO3vq+5lq9W2Y4YCGFUdTElzLIcMGmnm4qy47nUe/kOvTz3giX6lgNFJscDFvY0/Ug
OPaZCtag0MCin0mU/4+L7JEY/4VEfUqSt0EzR8rHCwGCwn9rg0XtpPXeYGHG/WcIMCuVp+sE9lUF
5CEz/6Vn2PiG+dkULqMtKTMixI5zH0VjW7ScCobXQeczy4Xee1WFTAyfeWzES9h4MOL7XLhqEgxS
bXQTitOiV8PTo6kuwTZElKHCPiDufxNLTtYB4ZsCAJafsG5cwnPmhpXLThs/iQU/EvX+dSg0kCnh
kVmdI/NtJK9xh2DOq1AflU2TrCU3+O3w90d/tm3X2v8DxGUoGIIXEH8JO5FsJ3jlDR9FkOaTzZ2u
xpjZQJxAcDqudTYqz6+yS2IoHZ3++ApWwlRe6a6/KSOz1yuJgJDSITO3I0ey5+H1bhdYjeHzfNgf
pMfFbWS32tgWsWZMOqHbEZvc0p/+1lMyTRMsJbGEJXL3u6An7ZQT+Vi8j1c+VsGOheZdK4Lc4J5s
Sq3ytCzf0f5uYnq5ji2InmsbogVyhfdRp1uRRTKfWEt7Xz1MYpruwgs43sFk7Tog6un65/Onqapj
1486y0xB0u5bmTcSaTH2c3mbWBMYPZs7CPMYBcEiPFjF9r2qWc0LaVlUN+7MZLDbwvo93zb+EbKw
HNtLJIV/hyaZfz8fngklLWNVyTjVBUL8vZGXt2tzTnawkKDmyz3XxJ7HgbBsK5hWdXXwcuvCqztZ
xJqKBSaVBXZtI/3VBl+rEE7W+k+Wp5lxtxTK3Y2bXvQ6cEC0Mva9YBPiN4IVQELgEvMdsz6flR+Z
k8QFGnuGE1229Z/wGw2zHTBn7l1L3WmRLcip2qeZ8slMoPSbsELrM4KfyONPIVWr0VGKHeKDsWiC
ftsutJy7XkRhuaCNKJeWkPxomPwoWfwpbhDJBNhkSrr7J3JOcat7STYNdr8dIvKeYmYOgds1cWEs
LMMEHysW3yseRD7IuQVYsshdTPuk7nMjTesdVpRsTDD5BYLB2nIB+l52b9IdmmXLnje5X5owAU7F
LmXKNNuh8NrCN7TrHf5N6uSlr2msiaP26N/CZ5UsZvcTiqBwLkZzoCILLyUPlAFr7RcxLaMQVpkH
C5l3fFIXwmp1gCGEdttKyD0wT7hEX7g0ybZYX/OO7F0VBLnAbt212Egul2GJcfaOWS609G/Ty6ZC
B2McK2yh5RRKaSWLdio/plW5hIEZBKnvSMiwdaHGdzfHcbzehzeADZOmZxcsd/GMkCK2OeaKlcyw
4fHPPbr70H9dJAbYrKlTEIgpmI8iBJP8uL7MQ/+FYp04KpJimwKtFMFrDrOCFL6rQxXGXkHeziE8
VI1XJzEMRQQ6Xh/oKrGf325XS7VbC5zANlp9vwMOka2FM3mtLr5+pYr3QMpOkBTsknIILT7lFff2
qnLQ7XoDGgONoLd+vi+2hElg+davxVACxrLJ78HqxwTwNWss8pQviSfWVjl9h7piDxRsH8KHCkI9
7sadkpqJy2BdkxLa23mjo4uRmID8CvCo94VaD/8e9ehXISye+5TCE4zIUrulqWq6ONIwPYjFBIIx
QTQeInH7bRCiYW/6S+7pzTYtc1UIQmiHVmbHZus4GDSWU95bG0Av08UxR9bMj5D46YIYv4VQ+bIp
0i9C8NXQoQIYkrdpB/M0VRzdd48XULB59gyZcVs25UDIrNDlyZfDcB4uUtOpZsUqVPKTZbVQYtiG
KDPQp2pmUe2yzzJVh9JKrG/psH0NG3JI1NYE63d8ZICd4IAcZxA5PVBgf9inyYN5xg1k4T68Av4Y
ucMrcA0HYB0me+lqv9VU+eV++p4T3VR5lgnAwHs70YU8c3AQx05YCxkBMe9C6cAsF5QR04xosLSB
lh6Udz/Q2MMgUAt4i0I2GJypkDSMmPXXYEND5QFT/Ar7+gsYBv8mD2yhW/Nrg211RgB1UAl6yDdI
i9ID/6RcLOtMT5Qc83LliiHIrb0u6FHsOFu1KfpxuQRcgvcFpsp/FEs2QxSrzIUxLIESFCENH3Tg
fLZP9Ro1PtfzmOcnwIraIFjeBcelWsfUVX9ES8kKVri3HX6QC6pbqfickOd+4h9tUa98z1KZKNDp
uaI7AfpRqtC7/f0xQRMDiCxjqo+IOCPU9LShcTW7MZUSqLBBcbupFUnocxWKt0BIlSgCWXz4rv8U
Lqt5hk0zQ9JOMNpwwY8wCjRTBHy4DYSyY/+TONxTzp0zO1SrNQU/64i+IzWVRlfI2ERQ1t6PY+rB
qMCKtzds6TJ7ji/FBqphI3lrwhfAPFSiSQvOZpTDvmXXluLG62xgy7pbg8W0eb5jUTaQlaFTmu+p
RUK4NZX5QwRdO3fxtIc8fmF87JhDrV2fXhPpbRkep8mYwYlJi1nnT77lT0nTdZb7dJPezx8ZZycL
hg4lbCL3xxPm29f6h8idTXx1opoEgr4tdft+SAz9zhqfY2wWYVzuh/E+XNadCG+f+RNDmyd63E+F
hU/aeYRj9vNKG5pFboLoNJQwecCs8W85Z3TkXgxqOF9HYWJ1xgZms5DH+tLUp4ZzTglaKPl03UbY
lSH6ttPsBDJn+wJqqLI6TuiFsB0+KXW1/gQ6KARCyEPDEVfCvgu3wuZGMgeRbWMP76usCk2qDQpZ
Q5NpRlGVpw/KoDw6PK6jqFRK/5Zr/2aMNDmND2mNPCg2fIL+hIirQ0O4g0x2gGDGYryc+ToIk4gz
NtqWjxLwd7m5fGmXlTfTslB7lpOUFZtSWflSYT2tZuRFGl67Ys1AIBmg0rsna+NzxsFqRjZeysR1
Cu65KH8O7Jp1CZB+UuitQWd/WDzcy7ClsIQ6X+v8Gy/K7CmH/UqLT191EV622GeuTLFxpwwyaGXK
02BX26Nt2DR4VyNOc0V37cWJc4jLl6W/F6GkJ+e47TvEZ0JUrWOxGi8Wye94L58oPlXYDZIJaaiU
Udh2CSrab68qNmvc5hWppQPHB8/4zbHHoOabpk0tDc9DH81TqqrawP3YOP51uc+P432ahU+D4TqI
QPTgMa794rS1RVgoOEBkXQAkt8NAXI4TIPQ4Z/n1cV07D4TYTlVnoZYK49VulhOgKao6OBjEnNKG
1A/38S50JlVNFvKOCRINzou0Tmvi3Httf7wPhwUAZO15hcVdwAhcAYMfYyLUNOdd2/in8yA9bhvK
X5vbCu5TWo3Bg7BmciNg9G2d9a7OKXS5iuUywM9tTYPEYzzfsfPUI4TDYwG4Ec1hkDBLX1oZjOFe
+uuHWY+/ARKhcHldqPNan3P4Phwf61yW4ftduLImxF0QL/zMIsGBcTHe0bQhpOoqjkLoGCiymB3/
7hjXbFbg0LIITmB7+oF1JIgJouoXkVatQ/z6dIlIznABoLHwkaWcvH7jJi4GsFMVTt9b/LbzdOwT
TOuStRCTMKn4/nY7fwhna0JiJEj55omfuEW4uTYIu2cl3coV4/V4fsDwx+gAe6LFYEpVlvK7ZbsK
hdvZ2s8kxIn0E7KV40U5JogIRDYVeBRptNmAqZW7iEk/5n2rKabHnZK374QdKKEtVKzHn9HcXg0R
hHw6TccHBspO0x2n/EosVIWi/vAwwjdBWAL4hoDR3RvCEMw7qSoIW78P7lnoOq+T/ss5Kct5eyoi
DRSyEP0Mh5VlcArNt4CmkKinC1o2mqBPPygz6+CUaijsm77hy8qaIgx4sTIDpiWkXy+8YV6mX8VY
C0SdMpE0wflWxKTAM6fpumUcYbHGH3aeiVbHShbCo7dhEaK3owlys6Kwrza0L0eWO9mYlTDZu8Is
ELSMXKYXkPTLcZ6Qv3ABclnWAWUmMB4DT1C2aHlF6VDWGAovtAgrOUAHi4xDGePreDUwJBPikR70
X2G5n1gj1LCMHGjzKj05rWFFPswqwx0cnkHo4+tUm3nKhTHRb4DNDtYILilsPdj5HGvTpK2XYdwH
DipF9yb8bHBuo7ltE0KGjGbi9EXQLF3DH4VwiCayAf37gG+87/bL8NQE7xhUOkNlw3CkHgETtFMc
xzLQB+tCkNrwoHrRPvWoVRCZgw5nazYw4HTp5y/DjFvah3ykj6wiayMKBOYBko9fh6dEXserh0K+
pPiuzONMpK8Yp2eRusLCkuRrVkF4FEtNpUBNbdAAwbjVNxDFUOZK9uj4ImqJJq9CvgudaV0ldS/B
qjjzRlpr6zfaXeqtn6vxndDWvxZJUgQBEUT2EA4VnNK+IJB+kiFUiJ3spSJMpxn2gbaBsIkmBBdM
C7mo625eKkOoKrgdc0nTPL6NV2ikXuewJh5rg7RW+o8lfBicqUInA2J5m4il5OHSTVmHlmFofwY4
NHGMMAAy7cawkKmUFLYSRKzUZg2RXEoxPg90oQ5YzT1U62GdKPybQxkNtZYsws7jm+cRipCP94US
p1Auo5eLh2wLlrXJuwoLceuntagILOZ60jouys50/gSD9qAxwW4mHh0vWa6bZZVNYJCQeX+ncUGo
ZxZhL62fgK8tV78SEKtxRaMvjdvJq1CmHKpyoWIGl7AzxE2vspY0EKx1aesosgu9oAvhl1AuUhqU
DpKlWNSnjX8oSHq84N8JS2U+MRQeSK8xkQn2ZdGq6/guvELpH3vLa7Q7WvGlnxPZhaIL5ix/p9EI
76OAPkyPsHnJlncE0VZOWlgnhBgdrPOKV9YBbygZpytMEXwfF7OoMJmJFmv8RAdfTIvqD3vlkoND
C7V+qlglqey9n0/fIIfRH4/66HMv8mXJiqNKKCIoTcMQWI10VlMwaGPn8YHO9KDKJzU7DgKPS0in
lvQPCarNi1CJFS31bx8/a+5c3OkhDp9YbpNZrfgD/8BRS1WHuMpW27IVzcuQ8SFssAm+tSfxC+El
Kz9R1zBpYTUgkxpCvoIesgtxZvgh7fhku0/hjK6SAlNRVj/OF21vGDJOMT1LRbPYHYysTdMAKx8o
1nHF/hUr4YqL0J1sBbLwvWMOKGTofCW4g+JyvyLKYy7NAWult3luCBfZvzsNy3G4nnqRAjOWlkcc
DpPFQP1++Kv+fph/ZhJwNRElbZv7z1VwET9e34d5lLbU+Uz2A2p2TEhAJ2KRPsrcI3WcJ3Vf71bY
qXtcyGG2tpJkugz3+UO7vTfGMfqtod4Z/v1M4fDLuFx6SfUWrM6ERRYt9SQNFpZ895EpAxahsInK
q5YwNbo+B+XCZZeejDNXzZoDTfvWDFgJKGXMdBvhXJWva+2O7KQuesY0oZa8JteZhYZQ5/E0Xb88
zpNQJ1YWmV8Aq0yMb3iDX8ZPwMhaZ9m+ueGc+v2vQpcSmlplFzI5zffIAvf3GZAmRFOnWEFOGy9+
9214+aJlr4m8w2omWi0vxgx7RpXmbLbw2HZS9Xct4zAy8i2+IlfU2XZ7uDGKrDyuGLPUvHl7SDtk
FbuFUg527rkl1TgTx5eEsdhxD8IJYtPzvwok6AGcXg+EkkQ3En9cVmNoIHMq256O+hCmquodu9UT
C66NFr6/9HTotfsPRJJ+ovFKWBxEs/FbZe5JAbq0KF33q0/g4xVmVCzS6B8i78Kv/Fbb9S79d/NP
a/EFIhvEl2SkhNLKFWubKKQdZ6UvlHgnfp8VIyMfPVo/r/Yx7p9armX2lUEcqSP3dx2+uaML11eF
2hz49Y3Xz99gkYc8GWorMJRNPGNMjmsMLheJhrebuECuYW0rDx9xLVvwmmCeOCIDxZOBxiaVDKqW
GXRQstK4O6Mmnet0XXF8if/ia7FGmCJD+s24KFz5Ft3sjdESv7GCF4njDZQRaQ3dpEIbFwnrLKTi
KGY8D7iMlYHmPbU4+NrPI5sxmJAMmrI3gsdEGxBq/GdAJ6B//BVr7e2rk0j/iti38fLYFQCm8fBj
3uE6D1AReTaKEJPk0cGFxM9ZmJ/NhlwD4PK43SbMw9/m6QaBrkGQiyXXh6Wbfx4QvOv0v6SwZbab
B4fFleJpemCLcQ/B27u704RyrMPKcUZb39ko8G9xz6pYe0axDQnWaQp+m8/BWD7aSbAFmpAtEFRi
O9VWFT4vkZCjxzdtDJ8SHvs6Nt2PGTGRa3R2Svfz5gngnryTTTIIzlBYXDCjeHtJ7sayUuXwwaNy
SeTmHXPgmNcb25s1R4EBExvkwTv0DKOva7oQP8ExvKqb5KapC/+4vExneGguOtHaW76+BZeqg4EV
GNyGsx3wBh3hJMzlWoXM5bfhzgThN2pvWzylGhe4XZ4/lVVDMdMAtja7LNNQ7pBxICUhyfEi1NLz
/O7XWJ8uXjvvvnSm8uOqfbN56QEIBLTWZCaOzYDpObmaNplztPgqQ9X3sspNePJa57L77NDIyJ41
AyV0eKcs1PnnwqqsJB9uorIFrU5cvE/z+Lt+c30tL4Klx6LLBfZ9Ft7+OH7oOkTyIOysZJZti3gO
DV+Pei21tEZ6T9B3UfrxmuzZCj1ByDshEXMeZkBU5sKCNXzjSgRuHodJnUcSPkdBXKtgjxoTN1/n
M8sSOxIXFDNzpd28KyQzhCjSq8G38T0xN4rFy5+k8xq/EF6x3FCFCa7EPABCWkyZ/5lvbhf7nMit
nI7C/JCsZvTHwYq5HQ4BYrxWfYaEH9nwfm/8o3NAHwuMgiE395N2bedpaYY4ZonR0CZmrO25ASAR
A1CC49+G1MuzEWGiC/EBNmRKMCpoV7yN4E2CsT1LG+PRYOxHyiMaANSXVHhAisBdH1Q0lP6kUMAN
QiCcYQ3wLD/ySG1QF0re0kGLECo3j1No24Wy6RFXfUcgb5MefGJUcmU2agy1GPLroklgkvAF2jrb
RheqgKu9jq9P9JMVvC0RYS9NyvzrG0VqV4ABulXpKusylA5gZ8eggtkgAVeev/Ufgp2ieIcv/tGl
Hz2hxto2ZPOaRYzuQTkigsSR2OhCzcPBsFZSK7IYYamcVnTsHa+UIdHIU6ps8sezDtyl/IKZHU93
rbCVkseskpHEmOI6vEt2EnMe2WQHz84eTEQ6QQ4sb8gTb1QHttv2ZxFENu0Yjon1Cqv5hoXqVMQg
cHgXDl+sAhVx882aGFc5xxOjHdeZNcrNeuOYLFC2sOaRU3Gawq2HTSfVujf0m/Dt0B2RahNJoO8U
vWuUeY/8zX3XuPH0uA2qWA822W3bsrAaSsf2x6wkwULaPrZ6sqtNCi4ZnStqHzPmaSGgm39A87A6
mgJj7sVTXNtmgxJVNK3iPnzlEMOthDE1eQTmKmJ/FBk/tjeWRzDezD778/mDssqCrcRtw8otH3Hs
obcItg7D5RbA759fRPZkHinWLVRePZHVvp8MRVSVH4wnLrCLMRIAlqWENRs5IHBDk0hEMBs0pfGK
ZhNUz8SACTrQku/cMUkO56+aPVmSlJOkQhBY2myH2UPouuETuZcRzHeeBawlW8ZEAoEzZXFXeJBK
mHW3w72xV8MwE0KMpqyZYp2s6+eDgkon/RheZrZ0DM5IgzhyvGN1ZiIry+EFXOPXSRu5riBxgYxs
wlfRJFyGA7LBzBBFghxRC+ZXvbXKGylbThG8VLZ8w8Vbh88LQR/f+1GgvoZ5+x0i4j6FqIyr5E16
vk53vVXR7tfCnFE2HxZszk52GEwgxIG7LCwbNz+7UEFLnKgFoaU3k4Vgx+JBbkOb+i+H7xAWs3JS
LqsrPOwfxIvIwwUTptVRf36fx0RWjxdKOjjW54IJyAQNmDlgbCpcCZe9uctQ77+U67T/XnhsrnUy
aq9+NrpQ0NDNNirUJuxlyb7lsREKtrVbTtmlK1luoQC8g6LJPqWFD2udk6lAgCnhsq1a+yngbk92
dtVli/7hLx/U/ShkaZlc71bgLs8Rp1elcv1cWIkHNdkspeP0AIhFqqnSHD/3R7OawTVa3O4XgNk8
j8cR4hP02SE26hJHt3nzGOBRavMo5ndW3CRYJw4UXrN+v4IwSovoOiret1mzxsWiRgyz0lvnU+eu
hHMzSNUOy2Xq+LkL4dwMHpoHDn9ov8K9sFamos6f78XbbyfcL4OcBmCAwjTTBtdphXN3bNwJAru1
3jrXx+UFDw6O3zr+mJoLlikOdqtPynbInf3gDoUbYxN9ihKxGv4BSsqF/fIxP4gLocI3oV3r/m3u
b+9wHV8Tq7LOW384e2r3MhUpRq2NK3q2qz6usXWFNbvNmmW29/ySHOB41ZnL0wXlicCfBecbVDoq
Tk2NQE3sPcrqmd69/Qhyh/XmFuCUFVX8XBJ9sP52M4FWkLeZsB9GERAxLRrhXBK9sllRECAt83+A
24T3LPn9FSjE4vcn6D3WBlyUaExme/lL2h17FUrl5ileEK60k1WqsEVJXHGxqFwEOniBAiGz3mMz
4i6+jjChveZDSUiBGmCLmOmtjeLrI55kLDzMYYzVG1Jcrd8R8mAj9iYkc2xNvXUTlRSU4YEQITCj
QnHJ8fKi3R8sHGPFnUsqElCVoay66TxnRTWpdXi1jjNkn18Ba1UoyCvk0Ipg8eWyOIdmXCDXKVUN
536kuYknk3bl99mtIxBnlcpziV5R1oaSr5IvI5y0DUGE2tCSyYzjpKXpkMzfsj5RNsnwyUNe1vYT
m/KA+hIhLs+xR6nmV0lpk3REjIWpGW6nqakDl3q8vk7S0A2K7OZ+kVn7nH0Ryv2yUFaPcl0IUwUB
Fs2H0+PtnYGeMcYXLoznpSPZAaJbk86AKu4ztN8k0xpF6Mhrbs1Ewfrr8R3SF8zNF8LubV2HGm44
2aQS5xx+usRH3bEvYUNNKMK5oyhqR56apdFZyjsSGDhj962L+EhASqQzlN+JUUcEjbC/LMTDscDF
iteV1GbsTikaQ/T+3t8GIw7wM/4XhAtM7L2plydp6Vrr8StAx6LdRSfQrvAGGOSoXUQp9rsGw8QG
UtYyGntu/G4Rfo+N4yVnopB+T1iIDeKlUUiluPHNhd2m88fbZKcdnf72WO5RSlK87bparfz8+fc0
zT80Z361s9jiy/FR2DT6Lrx9mP8FYdj+nL4SPso+uiYe2Na5oN0qrJizmeKUF2o+ccnCZbJB7ZgK
L8pPUN0PE3vWsQtiFazbn10G/VMnJ2f2HSpnw8MpchhenTfm7V6cDf0uKsQbL9OLe9cmrN1srsW2
Iu9jpR8QAmzGPCTjijb7EaFjShNZwcP+HWT7rjO8g88LD8ZHYEBbT++zN/yPnLhkJy5ctEOm/Z0U
pBhj8QBfVPJIcw0VR+FACVGb8Fgs1SEaUyynCuV12l1wZbk2N8Vr1wU/I77UN+1FDTdoV7oeP9ZM
agLEv1NtKKstWvH3F8GKZyaFXq7JheWE7qLM73Ur9jYhCFUwbTid8uzRkviiiWerhIxNRqcQA7PA
m7WzJWbYpw36MjTWgS0HQLM37Qm5IbvkKsRCqESEeQg7xPcqLfi0diyj0+jJqwz245Pu+4sdSURN
ACx4IdjIeRAcgaY/wlQYg4VgbvIMUyany3jtV/dLMHM5ABeDZF91N3gjpmfkR8quq5DTGAkIJasR
WdcB6IQqXmdvGpGT1MSnAEW6rU3SWqhg4A2+WbA6gmQ2L142kNbxVbmvTg2Jpd+Q6OkBQVrU4a6H
APlAo+RnH7irQrhfa8nqCncpt0wWGeu6hUhr+QzuYJ3LYChmR4XSM5BCI5bXU405tKFSofmeXvuq
DBcuCdUKAm3yIBIOEAoVUuNYqP2SnikPBDuvqna7KBYgDqex//tjmD+EpfiwHpbM4pU2VBwqxH02
BdQ2zkh1IjtLFrWaLz4lIYHQPyEhy539jlCn831EeHq5OEuFYxaxviZNeKnWpkjBXCAvsG+DW8yb
ZncniqBjVbjS69Lf3y/nZOi+84uZGkmTcPtEyi0EXxa6V2xsGvr89zSvFOGj8W6t8znJ8RmvRcpw
h58O5ImBeN6W2K6B+EBBumYdMJbH4+PczxS8TSW4qfYuCzeSPBOiGaeY6hJuQuFBvyx3b5NMHQZg
YFCB939at1nQqLKyjCmDK9cFgkWZhTt7eW2amROYmFnYVZGCd65qLayDMcoFncoWaxFos/XBieS+
o441XLB8XGgrwh6a8IESXXiHr5JTWtahjQVLt9MdUZqxVahPSOzLLgTFy0Qh1SE0wY4hILRe20xz
ummI+38Yqy0iRbPLBSfPr2AigkzcNPiXHCGIYPh2ggNVvtDKP2W2CcaaCPnxhBqDg1UEvlKbbkPW
4s4rrgUlrsLNPAEnHMELpM6TQnmxkFA/T9xPzgVC2QwWLpLdYKI/xyAWWy8JJr8sWXPCy9Zhy9lh
pN3PPyTWyxBMlSFpH2g9RdN1CJ8iYs2s821E3KI8OPN5D7ySEHnIQhXkQnGIjawJS1YhseB3AMpq
R79DG5LO6+iVz4jmLlOhCcnPyuM07ESry0LoxBJaXaoUowiNg17Dz1rAM9yelBHd+ASsIheXCipw
9wCShHqXniW5aWT7AVbjoKZkSHrA22dN0CimAbbGBsETbW0biNFWFDY2bC87sFrUdFLrDmDrnMB2
hqkm03zTOl4wnpkKAYVsSv5DjQgCa6gIyIXAHEKdPUeId700+AQbwCAbl3mCT4on2LMQwEUEwyvZ
CcsDeZ2ruDHwt2Ze9g7Sbspwx+azKWQGzIimlTaDGq9+zY7NjPU8FMJ9cXslcwnuaPGf1pKD1P7H
DDTIeeXlFl6FQm74vILZUm6V7ZPI+5FQWhZBa3mGwFluw3F8hbpYKVjFgYNYDf4eMAHRU2AlZGng
rnR/vGNfsPIrIuKXOVSd+D0eOdxUFFbp3qHP9wtt9HgtnTs60JUsly5VTiXGfgXXkKtOVne7KVqD
OiUWMBIEdBcKUov2KlmFSVeEx+865zxsAj8OJ/yTAFe1P0HAW3xbqPS5lZuQNReVbkqQbpGm/i0A
o51d9WV09WbyfEKKNFQ+/pF6zsntTscVwdrYh/aLF20jDtrYwZkD6DWm1I0X2VkXi4n065TWhCxc
DbZoGVWrpLY/jznBQTJYEVOkUzXV4Mmwa5CnGukCBHdXhcAFUqdOWxZa7TxZeELATJwzob98ShWW
nxMhe1BMOOQqV8i7MCfuL9A9KjrtQTjuPSHqfTCGHYcPyj1D/Tk5ks6MNOGehL39wzRKUmwgrsPN
8eGgiGBrF5XPuHUS0WYH+LcKBQVIpoK7iIPmjEjd1mxL0rQLGbWM2zDzC5BRt1W27kKOKkMuweez
wGJLf6u2WBoiJsvqOQlCvArFEGCwJmzziEUU6dKWjgUkw7DBGK2Zd2U7VB2GgRIMtHS8Lg9OnXqi
UAoomkkw1pGODwsnocVLO6C2w1iB4f0KTOQoCNzpqgxXG0FP2fk8nHfUG1WhVp9dboPU4J93obam
XVMYkgq6DuPeYQHuZgbFriISTUBBmQ8glugJ4w6lGpmuDgKlbV1EE0JFqI+UZFNZyMcxpHKG+//b
gl0xWllQSApmn9pOqkOPczqBKIWquGyH8NwRUig3sAeiOjbvDc3fAiM2ofT8mnVLbqiIlR94fLzg
TF6BZ1Vocpo/A4K8yZ1B8SbUCLcW0J7GmUAaezao7IeCi7zar/PAUAP1WsL5i8gAmee6k0+HP300
jiIZld5hFxZBxO1nS9sEBoTqFeVlBUzZD7Q8QY0g5ZHuw565HfqgKjT/83lT2jodX8eUAaGy9kcx
6U/TRfCpgkG8kEkq2IkqWSOymfy0w7xrw/MkiTbscCWMU5JsFfwwFSxaZamez9Jw0wThzzYyX570
kLccBFq1LjTynKVFGz6VpS3CAF6R1RKTQpgYafD663CoWFCseawC6TQdHQ7v3jKkfBvv8tiJVwnC
eDcpKqe39gRrXe32qXdN3MjECTaetZ/IKmqbPkvW8bJg9meQBlW7TSzIZsAug6BJTLR6ku5pUcBz
6S42uQHdJUNtf7Eoo6em8gtNhFlUsuXLh6M4w+05vbIrWqDfuQ1N/gnWrxOwrJmmSTaJFJb2Cova
eGJjX4iXK02evWFa0u+BkAdeZdwvIRS2Ml5yaOd5SbWHdTilu52ZIWar9ba4p4BjF+sfij8mJgPw
GTY4fyCGwGCxUBP1uBsxXO8EvxX8O97Qjl061bYcyCAbmkLIlBximoJNkA9j7qdkr8rq8HxsPtvp
+FiglY1Eh+QIaGuGeZzgyBdV/kkulJ5bM18dLm8WC+iUINdYhBTyWEXXuLZzl9e2k2eE9HgdSo97
QjfVedWFRexTyxpCicilLHxUufGfMNTZawojRLz89C8o805z/+1fXsfz+V+00P4fjKDqp/r4GTLG
MfiZisFMQTygIYKm1akP4ZfLpO0v/az/fo3jlYCAyBjSVLkWc8Nk8mU5/D7MkwmZ0eLRHXH4s27V
ectxHm93GyE0+3vtAeY1kseG0zCQKObMmq+BkM8TAMzAzf0JzvpH7TT8NZYbg7U4apKr24FLx2D4
GxTqgm1Hx71Pt+g5G3ZdkNI0RbZmb7deEz8y1Xh91ZIAghzaaFwkJDIOQQWWqyE6s+I6tvsAu9Uc
hUja0Veo3UGx2U+ZUKNZ7fcp4lnBFlqH28TH3Ly99CKEBj6YA2fyoOnNz56BlvdchXLrgMZvzeZh
BABMzYP4hb7SaVjICo/WtMBanbsKrG4p+I60ZEbK+UN/712+fZke8zHOdB3jFFdO9kSW2l//5b0/
RaQDkqMDZWP2YWBr8a04FCtMhKvwVoBmfo0ZVriTWjjS8Tz0s8RXVeVIhjcBPt3IfZ6+DOJGGL4j
w/Y1Ky3H/kwMALuB7m3pdhk0qAJJovK0dLTEFSfNzAHOgTNtkDjMZ5Y3hz56wkYxka3Xar0nOz5m
yM38pb9HCbpqyi1ve0y2FiQsu2+qdZIHWlw679LpTDG7FzfEyLha08Xmc7KGftZOzh8kLm0dAYKJ
aizUVSDDFEUTF9dmynw/DPhP0y0un92mQIc3XfrtE0K1zpxUwiE7SkVEdEJF1kx+gBdfmOFUVh+K
7eZ4NkeDbGKHMbYkHwrlIZPRDpfomXhOj5kmNtyFV8tDGyFqM7XNhyjobsOwGxWEv1XpETJV8cH/
DPHTMMTCqlhnBGxPAyo4ukTDhFe2FV4vb3Gh50iWhcb1ZtF4+yts+18hjvbHSSuT01/RkI9rTkcT
WGeaMnXikpwtBPfrneacYkNVM9mi4I/ySYHDHgTV7X6fhWWtAMe6Ns1jgLBIMdDbI63m6qpi6Jxr
U4Jd9MvYH4bvYKei8o6VfuJCZci2edUsI004QZ6rPUvbgK/AACDgkuH6uMDQ3Ji7CCsw6E9W8WUl
0vKXSd/Ln65/IdPxehLsrFpl3iX7S5GWRbkPduwv+j7+l5Gj0QWZSMI6B88SWYmOZRLiyoDjYa6x
H29rv1KBH/Uars5OdGu1v6CJ505AMP/9158P/fn23sdljPsaF/LVAFRtQDC3P6eFf+2ZpF32ZO9r
wavP94ABqYKRr4TrQb9Um1v95Sa8flU7qYsFqTk3QcjtWCVf3AypQ3aM2Ug/H+E4V1ORCWIj7vA5
ewZiVCZEpb3aVR/+y9t5eunP/4oPBeaEaN4wNwinvrQBnWBEBw4TgvNCbEEAD0NF4VgGOmga77wo
AIbv0DlzX2R/omLuEeG92sklCcHcMTVTgrn+zBj7+bVqfAFQBhRvFWeKjCne/EnxWtaEp8KASZwp
3DbQ42y3RISONJBPJC6HBOQsNehPbAImPx3s386POf6+LTPOQHOpImwKmNz1R9wecCvhNXsGujYU
teU5Si9dscepoIC0Mlzu5CjyKOeKKNEwqQPOQhl6J/3nYxA8FubPg+JRRif//dGfQGUdf3rMX4df
p3/5HpEU7nswldp8DZpYssXMFdppornYMAOahV+4TZ7yVDJHueCFdw2n+/cHwG4IRNKw+A8TAlpW
vVDo8xctu4e/jN+H819Bl8dlFPMEXNOhjSP99pZg3yarfIfL9Y/1s+V9CB2NV3An5PdtVBXS3bBK
f/70Yrm7YGz/LOKxDXz7n6KhVDRGHemwah0X4PjJRJoNJcfDHFlonTUoaWNi8QhFw7QUapVu6+Ki
UbJX/lYtg9N3ELZPsmY86UViPTCk53z3pd5YFajRk8qco/KzxmLkqBNEtkxT4nJ4aI3ZooGh/w/z
3H/EqYrFXl1lCruwTxmYVcvMwnzL+jvjFFXLYq75Vhp6oTyKNMqKnDnCrMzlyZmXZT23TvlQoNVe
wfRNvAQdX48J2HYVsE9R7d9Aa/xq7d5/XX4Ro5QNE5WsCcruC6WDC3gvN+iv+POgTal4hoDN9GCj
M9cgIegAKUxUM9FSbMNEu9xAlu1Q0J6jfN38bBzGrQVnhrMB1xsvOSWWaiZ5IX7l5wBQsL30yyBZ
z3Wj/DBVG3GX9ntykmSyFgMtnLDtWj+1VIc4Ns6qtc/vVZC54rTCrDlgMeXb68TeaJ/GH6dgoYwW
rcKAkVzGNSEzm4DyVZmFneKE0GIiXoHhr/wYlYUoWOLxwopF2cqtlb2ysPWDJAus6lo/O2f4B+Qk
6HR0hOLGaMloFbONHk1Qvut8Ht60ZNEPFH+aton7Yr9pt+E3fN8eCr/ii3TK96fawOs2cReICf8C
U8XqmfMwFpOwSGsWxMScs/JkyWrYvo+n2xj3gboQu2jDdM3cpGzKquBpgeop5XefEmHpusl90y/k
h+2+FnYgllK4uRhX3PBwJNphdiMW3HLKK/FCbKgNAam2z2R7PU4z5oBlwmUyMV+jtBu/bpNGPJwG
QHcTY4N1t/GBVZDF+9PpF+gYGOY5bnRXXRM1Bk2dD456F4mhUXyukkvje9yl4rKzFrnLGVeraQvm
Q1wbNMzDARcnK3wR+vsIlaJQjaHtLSSyuDAt/HBV8RyAW4ZZG0fj7+KTVYyswJLsNhru9oF+pJAF
6kJuW6Ia5BeAeoqLgDYUinv2SsgXFLySxk+Ze3Z2gtuYsmJNn2LebfXj4raI5IywnGnC4m8KOZS8
PG63CToLf/24CT4ys9dNHrAOcEcR5w5m3EDJoDJGGpQY3yWztWEyHqyiJovoLIyJJ1+qZZcKmUCV
hbxPrPKP00qxifc/Oda4oZ2yumoVq/jBBI2hn/eB6hK1EtrlKnSFn0/zKAavxzmLL8N7/3UUJCob
kQh+rLHzNauOdo3/+EOcKStfHDfbiApWuGnz4DRcD/11vMiagtVElXCy0icCei3CTpDUbJ0rX5XZ
hnF0ob69j6Dte4CUOYIui9Oy8sug6HSP6/E8LWux2CGPx2WYlV48OeFY8JOugmmyUAYXBd4ZEo5S
PrxhriCYlCYWJ8hhq9/jL/6k/fKnZJEwgAy5Kg/Zg05SQdkTvnFcVDDuzre1c+CS/o+Bk2G5WGdc
xb2qxr8tT31ehn55zHKBDwswBvQvUA2Zl9T2IevyelMH0T4VjWB4Em0mY+aR/3uUopZN1oXUBC+H
2R32YrUFz8UWgfRjnFNqFjPGc5t66PlY1Flccimv2Mj3ogF5LhlarJQf9IkUWCxfhm9CcSmT6yyH
EIrcJUPBzO2r10DuVuDETVM2P5L1eQRKTg63ZB7AG0b5FOVYU/oUKY+zlBLqPh3L/+02vCVKHVnu
XdWYm8hDvmjcNlahMPsfrHvzC/IkmrX6SMP9KCRxu+2Y2DZiqhz72+Fv0xhXeFUnkM7Lm1jLWrHC
ETQci6cInSa2t+tFiqgx7eLlz7Y0Fzf42PBrNsmCS3NJvTUs7Mk6i82vOm9TMqBZYS6mP8JqOh4M
YxYQw8Z0j8BGuF2mr33cReEFOGAwqDZQIGKgn1DtRsnCr6bxJStaLvqDO7aug+QXy9jY+zwXMDJa
3R1xYKF3DscTLIlMRplZ6gRqmbs2Kjtng/ASF55ViMH1Gn9hNvVf+nH+Vd9dXD8y9xAZ3bdvHF0n
pFUpOHUszrPLmam5JMYK5jzoiKT8j2IbRPNogeiSQinGP4qr/saP2q5tz29nO6QQUkOnAcqpTgBH
Q70WEcMEcUxMEVLuY7/afh00l6HLBZAtIeoExUgxXwK7sU0wJMe4JaTU9J+l2ydKSG3QHV5MmdsN
NOP8NaLocYul26Iq8Q92cCzTu92jtf+0gtsUWvMGdOSMWCjDd2jSmseX+KFMUao5FMhrxXbgYk8I
riRsQ63LlLCP0pgaeg24DrONw3k60qXfYyyDm2rcagroUxn6fDsvsCfCxLhG0nl0rNK9PaJgFhYG
E43kuPwnysnWryHWaKOq+jCa+xcAxXkTNs/elKdSLOFpJSIcvXJf5wrjDO0aNrXQZIsFPxHgA3Gx
2t2CgpIjVXsMmp8OHuXGFzIajR4kR9VORRxzfxleHgC7ZMl+OTyuvf4LaPSmgXPiXTcmXEksgHXN
lQEfOmnyRWFPJHOcbiOiZZzGo0CKTcvun/7o1gZdxp6wz2H/Pu30BVqxdFew9v/px4FO58cNF4PK
D+GV3aE7uM/OeJwWjBqrDQ7n4foG3q8Je8T3Vrh3puBU5ohGH9U8kMxztXviHIgwN0YoEf0BwMSE
S28YpYHVpowSf+lPkCR4ENnKOyidKDKj3Avv4Si4gu8nPBOjVPBHVdEFJSLFUcdleYi0xAQRZlbr
FUvXKDaaEIUYPahJ7h83gYhMugbFEsiJotnsjjaHMmqYhX0V2wdvDNOQy/7fv/7xoOr49527ajaV
xJ0KTrI8Xsy/5QYOzfp9by+99hWUcMyMPUKOgdtP/kBVV4J4btnypQsJp5anf9uxfUbMmFXrzP3o
tz0RbyJqz7dp/hIbbkt8ySwGCD8qE34k9ga3eacgL5y8YBgBbhn77iurCUs5OcaKOYLqXizzJrWf
MXrGMatqfQl3/8fHCzRg34SbypkZUqFHbhqwDbQb8P97f341w9ggorfmHwQyZ+zGe9ivAHVqsnsm
nv0QuK1jMqVFuCnebo4Y7ifNv9fThFFBUC4C8TI56wZQPGs7rDJAsjXiG+7zFPN8SSo0/tLGkkMq
xU8PX8fhmyyFW5OLRtXkHCj9Bujy/Cp+mzvGgVrcjpkuhmv2Gi7FVu52PsXfJb6zOScEGcvXlBx9
bG4z7m3hCnnr+w7850Efz9CZHWu1oj24d2ZNopiMBr7SlCtakTUzNyriCsaoJ+0XvCfNtpZrVAic
5Qahxr5m/ofVj008LHd9sF68tHoLmnmQpCTrgH8OAlVVnxTYpf5/gsBm6zcYLLHQH9r8wMgkJBKO
XxLxK+LPImaP2qIHa/HtFyAtowUcNOgn/uSULtlGjqIxAWVDUpCaxvQ7jHUVn5CpEIQdqCxoHNI0
9HKkXpEJ+xxUZO7QTTUdPK7a3yWoUXtBo+T5Nj57FPsJQqADJluhfN6aRaC4YVeAC5f0PtsiZxoS
EZ2J2HdK0KZmxhWBfayWNNEiBNpGgVu4edM4E/YT5pnMLlnHZAuQeGURwK8YAgHFrwULotmk9FlT
s8XA7lOKx0SIuqx5ImCf0s0zuY2qBFeCKwd5qUmMunZP1smSPbai3YQ2VMfUttEDKwP1YvCnzcrw
nWEfWy9aXJVzIjoMleU8moCBLQFDgUjCETZUVXUmorDY8KhUoESv5HiXj2VwnnvKN3NSEdHns6eQ
ho0gS14vt6NylAKe1wLDvAy07UU4S1ds7lM5XYTwfqtKEi40D64BlUiHOJ8JR2O0Bplaq4GI/i/D
slAUdFlErc8d+QpBijPGTCsj4A0NYAPtCjK6vTHYm7BlLdw64026vXJFgTWeeeLKmfqAxEZuCmJt
zGONDZqwx3m8jHdJWFThONvbatrviVs0zFLEPzqPsskff9wHUwdjLK/lPlyPoxZvVxQeEudVTJuA
VVmaEkOnTRKmaK1836/c+H4o+6mMSiAsZs+6jhJNPLbBj04nK8bM7SRv8Y/u2bB2RyLAYsD/W7TV
JQmGnOkQN22UBVmA/AW1z0KIcEUq5lThVZHaOJn9CkYb2xR19xdcaOL78ZMLwrP0XzCyO22dAEIs
5IQm7S5fP3bEOpnYAfPMGqu+/51L8TIVDtxtVziYSJ7kw7OoDyK8bZJU5K8vIuYG3RdjSle4Z5ga
U0A4WmKH484cYgjl5W3pRRSvt0lyeriZxHoRkC6vN+3JuscTiJPbRwwHBWMQW9knHIWHnxk+jz0K
FpeYWQXG42G+gSBFs+26dZA6hZ2xFUrs28jD1kkynNRUHVMROE09/5yfKIYNFY8vYw51NcTMO1xg
OMH38vWrwHHZNjVVBGpiEiKdpf3AmDHV0DyZkvAwHNuzEksjjGiQhIiLQEK3CROmpSgRvIIYhEkf
nv+N6ANBO2WhwBVsQP+XC7q23xO+X1OxUCSDRN/kHffZFg1LZ3p9Ku5uoPT9Nk+v41m6IHbF4EBY
8Cky5+zYN8Fyq8JBoH2eoMAJPK2hXF6QHu7tE3Fplodw+DX+9qyMs2nxl4ekRFS9lSZEDOMiVYGS
IHJqFmuf/LQrpvinDwhPyMRYuWUQZ467s9iaKoHf0LOVHnt2dpoKOIrHQV+rzN0d8xehbd/Vy0On
5qyJBoMYlHQSrLUmHHTTVPumJU3K1mMBeUK9KDYkgqSn//eCfbBiLRPRChO/DgHqf4aX//Wz6Wz/
969SZK5hGVg2GWUtTxPd14h7tlv/tixtUsH27XgXug+GZiNcgAoxi9M+JkYuOCvMlAAas0gkWsRh
+5+we7UpaMgJWXXTjMXSSEIr4aZUpw7WSscLOP2ONb8TaK08sv0UqQok1pgI2QrV+XlQ26UpF1c1
aoMnpoJ72lNaVbWs/pHnDs1i7zjFNYXlWjH4GzYFItq7/5/TFRLGmq3Pf0jihVas2wOHp3ShRhbZ
usaq+zLU3uchvyyTVJzMWmrKBgf9FZvqlLVjxDQ3wDgDQuaI13AXfqNYrNiux1EfC9wVxi4u+t6i
uXtcsxCwsc6T5r/xq4t9x8mf1bg3nUMpZzBARZ2lMM2qsg73a3sNqHu7rmtesEpOoN9osCDM0+8f
8fI95RfdMkj8HcA9DW+LKrc9BKZjTcROqVg7Lqt79moPD/N0lzDr1AZvp4qAI+KEBJzT9iIAAjA5
8Axg5Zy14wfq0WSPf83QPODtfTiJtW/6ExhtVZX5eLp+36KZt8D6XUSy5v2ZbjEGyXAZMfQpqpaG
oZmxQMlTkWt8F5VwSQ4Pd1dLNmMwDGb48KVP/XAPoSGuTON+xnu+cgbjAUbItveeAdPTOyWg3VhL
73Or04rtsxdwsGLoBLxImuMsHKR25YahMyJMDef9P1D92p+u9+mX4fwaN0kyAdfUw2H6oz5gAoUp
2BC+XoxMNg3rvTUxoxhGiUEVSZZqN1LlPjTezNMNhNFgmvN9+XQ43oVupSyEyIJwhmJnMGvkwf77
ynUQgoh0LRIiGm3DQAYxPWVsUoxIawcbP7ENG/rNHperSIqq5DAqLEmllfNgZnXYgQh2koyWStqH
OiZaobWxXYZMJjYSJD4lCXOFrAkAmc6MWYCRKff38Qj1OXfNw4e3/hZfRFXhRgkYnDaPOF9J31EC
s0yVDGKFceyr5lGobsN7Ajv1HnepqCqiDl3JOsFPn0SLxvs3mCZ969/EDamQ1IePfp7eYBjqf5GM
tLNR4yt13I6AqgILzUo3Q2M2oNpCOFYW6t2JH+tgLk44XuZDYJZ8S0ACwtUwnEZsriS6gU1ccWaR
3Fur/cMN3bZPo2wedxwyMb0a8lkEIuYoRQXig1BCxE1BO5ghzy/THUav0PBA4XhZSBdd7Lxa3CQV
IZhhKziEXRAADCu8QhvOlJVgWniGznE7SovmUsUPy4cz8Dlraw/644o8j0sLFMnadvh8O1M4yF4C
ct9zwlHVMiDYHGdFplG3OM+LfuNnDFhpqUwZC+HqGOu0GEPNtvPzABQHaUSSUiXzLvOWbo8Rnfa0
zkMvuTaazroQSMJ2NjOFXLSFq/9CGC1GK7Y+hFJtJYxBmjl8dYOXz7OwzqYJq7WTbnrIyeNqNm7+
XWDKLNSUi/kgmNL0R1xutFMU8V/1ff0XDZ36t+Ectxb0M7YhQPFVfPUvMJdxgmGK4jLMkGZkSzq0
/z4uu66rZK2YCItjip/X8URmfhYOS0soYBZsAB1R2pAqZrh2a74m5GbS8/Vfp/EU7Ski1cAB9VZh
ehwA2vV9Hq9fpJCOFnbMv6QJfy1zUs2wHzNAzWhhKv9NCD2vj3ndFhdP69w8WFUQeVWw/Z7uFsab
2VnoEOMYrw9WqCycugsNSmKUxKbk3V8EAqi9zVmzfK0Gt2PSEtth/dEMDXxj/NCNC3M9aakqBGvL
GAO/8oVDdPRVxcbIMo77hGihVdzQtrJxZV50nlt/or7EVe7FF2oLbwytOdwuw4M2UoRG9RpaOk4P
6xrG7R/aBpubxsAlaBmyO4hH+rPm3ZhWoaXYuEGH8ElrOB9K+L4MzfndIzzoczbXl82JguNzNk9M
uc0rPldZrT36tI37/LgeEw/bsSl8zr41YkcyAelrdon5RoJaI0S4AzfeDfE16n9U/tGeSp/Uih+Q
f7RQ4y/U7DPU6WjuWwsHuPNeSW03vudqvI4HTqhxPCMogSI4SMRMLTdWL9aZpwRk7vs/mW9AQFR/
9RXoffBqExZYycIYOHG7eLbA9imCikdY2vW5zcRpMn3JokCrNWVOF75KN6U5wzcvCEHSZQj30yET
Wte88nBkzXe58J1av2PRHZoTbw7D9W8Mzg7Xytke0II31XlmF4Wwi3z9ksmEXdEN/N4aZxV2WMEf
3vndXF0l7D5zN+EiJGYF4TvFvnPcb77rhO9a913lmH2HMUfbzdmRc9dZZjhdrzHNENE5iVMAaSl3
eyVEL0tTF/t0ewId5YyOHPvvUU70ec3IF4KetUc6jXCNdeiHzXel8F3hP3fpHRlVwiJ83bkra9YJ
RxtjieAncPy2cPKOvSMGn0zmghC1omjURPfs2igqogIbEb7P2LWjeUNUiFUmixFj/XGelkVUIbRY
vnlDWzY53zQdLphm+jaeYCiruWZhrYLdikPhY5rwQJ0+gtin62ULgeddNMVei4G+b9xDg4Vc2lK5
/XYxreO4vaT8lEdwrUBqbgfcE6bvKuE7x9VsGqt5We3cp89eqK2IKf+RQAityXTEGiB7DnCu3plg
cASnkzCF/r5j/jkFjNrQlLFwcGY+C4ZB5QcT2/2WMZkohe/+0ktr6WvNJyvbZTe6bDe58E68Gcnn
7bqQzwuWAGHioEkAqd/LcBqRD9BieBuuMF3NFiNc4xPiV1hdIPJireWxC/vWK60eX6thvgGbZexs
MRf4+Tb32t+WmnBpxY3PpLzdbY9tnLgPsRKN1nVeMqYLiVJIX3w2OkXXqEJOlUk8EWQ9hcetQZ5Y
r2r8gzscjJfp+85wB7klynPjbakPbuxVS0y9nLALdv0usITXT4F9oIxzf1tEv7thnlG9Vu2dpgc4
ZpdhxipR/85Tt535nni7CSvSk+1aqip8b7raSlgirU/ceO28UcRjKmI0y5lqB8nmHska+4y8W1Ql
q5+YIIgs9KZ2rALuhY2PN3EW2W2uqpD/bU4EzuKancBbSN1fcCA9z1hRHPxTb8J22HhyNCRHjDFB
ZHQXabtuPdo2WBqS+DycPq79JVLzTS9dhsToDK3eewOvtLcmyr1xQhS25TilcR2oxGomvPJtniC6
CL2gu5iv6XypmZm5Xsv9UyRdF/5Bu604MKVMmCSXg3RV6UdxTCgJy703EtxjmRTTOeZlve4bMuEx
quRjsCAgG46KYn15XLR0/hAOya7dxTzo460kpmIS3Niuk1Z1SBGyVfmt2WxCYkl3eWi5G4A7Z+Ps
D/kQueQ/wBc72NZpWjtgJZYyE4zYkgNRuyL5zwa8KfMSnC27Gvrxdl+yhjtvI6ZKxCgcT/tLSXTl
Dw1r/ZTyDteW7GAVqsz8pLtPp1IhX2PveUpW1Mmy76lYAUUagwMsdkQKaN+5P8FUieHTFykVnodK
Lhb9EuczVlhIYHN0kjo0gI2KNqZbfxwRjPa7BEhCl8k9yMrBZHie0r60fOZ7bt3eGANFvNsQHr59
k5Pp+UmEzVlTBBmTZuA1xlsg9GLCMAKv1MGh0p/ImBHX117m3qgGnkkADz9xGgY2y7J/4aSt5NoX
GwTdwjMaDoA0nygRqnI+zBJT58oLa82DXO+q6WwzLar+gZwonSY4n9Mn/ATJs+aEgmJR62xOqnD8
SUzzVHkY3JoH5mytlEAim2STyc2esWAXMg8SeRX+SLTCT3rP588kvdcx4b5h/smk94r1b6025Yor
40P78EsVTLr/QLq8c44Ak0C70+Xr+EB/I59Nl9eZCm1jb456HRzk56j3p8i7jUGf/3C2fh1d7HtW
n06X1yoPOQe70+XrzG7fdN+ZLq9V5pcvNJ9Jl9eZ80bYvPB/MF2+DrhuvMzL59Pl68jIxm8k2JMu
r7Pcs5Zt6Te2pg4LtrfOA6B1SRaVCg0eWe1bpq2SJbp8Lq0b9LjaqVIYlbQ/M2V4NjBi6R40Jx1d
Xl5YN/ML6PIfyDGSjaO8OadmIUp0Hta6ThvohnLRHQqxYq2cCl7UtreHLTgxdq+Cs84/UWfG2lqA
51X1Q5k0sn42prpnlloPfR5u5/4oEVVXh2bLhispBNJsQz0Nu2QyKWwVymoEGG2P5c8r2YHlzHtb
1D+kIUvbZ6rdtzQFpDq9TVf9N9/mEcJqiDErPGh4DAgKqJWmEM9RMJcKfwpQyTuv8A7FQmQVNJT4
aECqnSfbT9gGOwqIityOsN+XDSSibP02KQtld3xo1oeBJvtrXnK/iLki2fv9cn6/32/z8PeHJk/8
0v8r6Oa5TdcF22QPp+n4iAJpItROyyosXE9oZM3/588/H2CldV3/1wCF8Cj8VtOF6mh+7Lf+/hjn
L4vwWy2rlkFTpwv9Gijj4zzgTPv+vIa+NMde42t3pV/NkodWXj6ux8NpXHAepLCWy72D6WOcuM1a
ts9PKJ2mQ+denUcRXAwgosQ+alyqdhn1IsPoZfD+TsNrr79jCGzCku5JMDkkkho+crSZla5O+aRb
7yKn6+T9hsAZru6D2dnC8vaV9H8irKpCJTWbVd+Owi2yqhq1ijvpFnfRdNvsOK12kwZtqmFoPYqp
Q5ToShjabp2ptz3mcP+X7/ElMlYNshaBSweF9rMe7DUE6wQneRi/SszXdqHyMuzxWKXO5gflW6xZ
rZFzvKU9I5qIAE1H+3S3iSW5QaKBnZn0x4ggVYfpCh21Jv+mbyfSm0u37XYO0YMyIptXRQbSbfgq
qpbGkVRNiA9VGeR55Et7K9rkOk4nqRavbVjNTRO7ZdvKDnTqZvQIixahEiLx6bQTJ2nWchdH0QZp
TpKwu9JjhjIp677HNKew4dzfsNrzG2aqyq71i1ABq8jQQGXm/yLogc8I6q1E3Pkbbe2L7eD9g/zZ
dxVd7tedlWTd3acvw3X8faCmFH2zwwym+HKcx9vdPSeY5uHFEe/bIoArL2ObZSr+iYVAU8ZwMFVV
hoUoNwuu0L1/i4Ag4DLV5peV+eUy/knhPsGmP4u6ibENc3D8/eV9GNJHr905yvWZaJnf9H3O/W84
HlA4QhO6vAcMermYVMPfH9Mdwi+aeWllYbXO7ceRTZYJd2jh+pRXDGRugsQ7SvdYzz79bu0tYk6B
ig0i+jGzir4t3bcuGIcX72Yi0n6W+Cp2NoTy2vAoLEZJwLgDRE9ZrQtAT54pBbUxvf74DhXvqV1Y
WF/leRwos27nPpLRoC9bnyOUKYg6Gkujn4/vAnIC0Xbh0ZJ3k1vmjtoVdJvK7cZVQNFKgJcYG2NF
H5chpgjeJMHFrewmXA/bkIthhwWGIHfKLkSnWVYI/MFYql1jveC/IbqG9GnRhEjKF6uHuYeYtxa2
F0kp03qMU8r1fd1WhIMXjroZ3IB2zVISpchDNxaTl8LNNz6Xm+pKUeX8Joit0hEEMx7cXQifFk5Y
YWrXdns+FuiS7/WD3E0AZrcGLHzqbDabkfRR68utZudmtDE8noUduWfDlGLGeXC/VK2KECvTBnwa
SMgTth21Rj37y02fDUTAeCXcUyh97t+E21L+OiZiprkGgVJWpbnAMiRdIFIgnLBsQ09HJ7z1MzaS
40N+CKerPNlthFOUtuWrKjrfICidKv0uCYeKbcIVXNJBjP2ZENuZfxNGg75d4VO8Tv1K5OkJ11l6
dFdwFbSOSk7JnJpZVYWLRfIEFH63v0IYI13W1Kq8uiOb9etHrHT59q63utz6SEYUF7LUXHkWC9Qc
IJQFK0ud7+fUrmq2q2JNUUCLfLuu9Mdp/mma5hPRtnDCel2LtQHHLHH6JHOfOA73yg79uHrEHqez
FP4Nd5uMWQzxiz52m2cSPcsqYfOl/3uNaO7SJ8p94uxtIgKDQbKPBty9MXuT1nmZ7u+7FrHmeuV1
rcb8F/qEXbFaySXLauGTKvQqFiRh32mVT6Qrwuzxy8fhpV+GaJkbfd76RNaKZhdtOg/dr8m5DqeR
Uj7pn67YT9erbBboWzhFGWL7VZnihZp0+647rbzlgN7xiO+D3hOVLx1oMJx+pES8u8aBtoV/y41f
xEfdQfhveHf9PPQHl4t+3KfD13EZX7Qc1N7S+3g6DfEkWsMykCwnsV3eFMims4gNy9SywXi03ks/
H/QLfbn0M4GQifVUDYcyK7hT7m0trsgKNiR5W6QWWsRNakODI4HM0vCOMkeR4ZXX50k9B4MdKbH/
dXN9oCWH0/TtSv/0uAnXV3r7s30RMcJBmhHArpomCCwsE+JpXLS//IEJADA7qChcuFMf7SbPhDt1
Va3XAMULRfYFG+m0AkGqHad5/pE9R2p8BivTPyS8gfLT5sXndp1+4yyE9Lv/jYVr8AEFcyW8rOnm
0HbXJwQZryhoog+6JZ0P7WLsPEAWKrWIXg3OsB0k6ZaHqnBDghLdcoGUmyYEcxEXRPOIDSk/cse1
jwNc72XPf/Bng0hj6Z8VVtxUDZeCmAX48KSsrUIALeEdflpU1Xmo1WMHZQtLBnsudssROyNX+IHO
l3qmEd3M1CYT5l3/yMmM2ZZnNJQ408dFnlB4e/OPASsu/ikLfrEKQH8Dkdw5/bQLn4A9axCIzYd2
BIm0QF748Y4qsAHMih7OmCaP2B20mSwUpbCbEbMUec7Cr1nZkuPoJl3SjAuoPIsoIXTru8q/zZxv
gHr7brEMJz2HiwtgzthGpalt/NLfxLtkuZqiw9hEF7jNZYS68vgqygU4sAywDKyx42VV58I8DHjM
LGDKCA1KfnKOCF1OF0o9uOe9DvLl5iyX1iFIdefT6xpcg0pQqA4Urrrwgr25x3Jm7GXiqVk2htmz
+gb0p/iFQTe3w3uh4hXQXActcc07xNOhJcsMA1vY4aurL4fVfD2NvY0vU7ll2FQJzPLCHEBwTjFH
S/knu1NIAAtrNj7ISh1YE0Fbl9RCrMAiX5ll+D4cwYv8+xmzDZCCma5nLZkhkguDEDBCKa9curoq
1hqFU7URTgaDffwGDycYtjI/oLfnbbi/S09TZ6yIY21p98+vvWv/jdCeNsWrwo246hvw7hqbytCE
PT8gQGvWF07uVqhK/MMORwMU1ccdG6BAiIj3VzPqAw2jgo8sHjL19uyFQO9UceqGdN5phHIgLD1H
Lkour3zSKhlSxm4iqhiGz9pULTF1Yr08RDdA5ziSE7KoqWPVyqfrjUywL7Mc3vr5pafWufNwlMt8
KkfPCOvbrvtaa4T0Oqf05tj5irWY0ScZHIeDC5pJQql3LP0CyYKLiAPKiPkttbHSyRkIQtiRJv5D
JpZglUt85uB+ghXO6O4N5xGV4TMmNYYTy1CnuU4M9fheeD12Qsj42blpG/bm/5oghyrE4T45fErt
VE+q7Mk406w93yPeDCltluOlubM5kwxmreuUKMTo3CroY4VsXnJazuPrcPw4SuZaljMLHJnaszol
e5HnGqs1Z3kaTuMRy3KsA5LchOpYPiuDHek/S74NJwpOjxl90P7r+Jbwa1jhTl5gpjALeQdiJSLd
ETuoA2PeuFk7rtqZbHDgoHW9x5JVHa9IIrc7ZKjjvwmGurNBG+RaO3sI1OfflgOJAPFilDuRyko0
FssmYsrKpMQKN8CqU8E7vkqZ1Txjt1J0buLPxufY40flZdqtTed684wt48IroKov/fF9JIsy0itI
99syTkfwYM8LMnlzzIEIvgYrBOHjZu0iSG4wndU8lrBS7rt2ecgli1Y10xLMx3Yjaz/pqLPiSOZi
2neOob3SjTonkA/c2pAZyhbpTrPOL1wqgn6gcA2M3rMCH6VofbmbC9ziLhEnehaBQ+x7DqVCXqQ9
wDr7HfnXkMcirNb4crLe8F/aR89ZMVWOo7s8GruPlyEGWkD36gQS9E+0wQDGLq5RbCcVxtY9Uk1H
1VitIcvXmc9P0+UxC2Sa1/7H0gt/JgaiMiHChGaHP9E0fcx8U1WTh3QjND0k7jurfcYsnihx6Ofz
h3C0eiv+PbEA8y+X90SNa553oVrf/XKBFatZD4n6Rge4A1NGHkdXwPIWPt3H1Smdx6swg4Ijhrj0
1Y7qPPqaDW/KFA26tWXW0Lhz72E0OprMseIz2rkKZV42ZXlijTb1fXZ+wim4TC587/VX4/xwk297
HWfst6ODwGjDK+HBSggzhQp11G6WSiyRh2aNpO6BAaewShzY9OFlOn1oG3+6YG/VIblSEB4r/RJF
Hc5aPu9gvEQtKlqpCa0kD1eqiiCeTnygPX1UPLHCNjK6DPOoxdvva6Ud9XFG12wZkhaolS7jwdbD
abhTzfYol0y0DO/AZjrZ1GX8RCxF61So5CfLOuGTzv+kSRdQdcEqnkzFy8xUVoUKB23x+eluK8/j
K6g6+KNSoVrnCqBYOeb9tPaXx+fe40/m7pwsr203bXf8Pb5lV5fImQoriN+LRfjhzCtCND+cqU64
4C5Ux7cOhz2d0GlL33IZqlLLVC38cvhhVCl8UoZoDkNBOD/6DlMbD/qhlvfpYWBiMb12OJ3R+heu
jhGa089rZyFE0dOX0IbWEGvtWOEYr7xUrXAJbajSdKWOw9zfxtO3oY+liWirnbdV242hCuF3i/AT
58InefiTRvikCYsVociyCxKSRc5BjgU89o8D/ZUEHkOkkPvFfJYwlbDrYJFmljXCrpugyM2zf/ke
e7Ms/CNClW5X+T9ijpILR1EqJHH1fzWeHlBRHzUx6e7c10WHyVV6wL89rl8wPBo/HSuhzFj/XCuc
rg1VXZrZkt6GE5XgKg/StlGfv/zf/+uPk0QwihFM1zhIvExlAslkIQ5cNdt5h7ipnmQH2o/TfKFy
DdteHQfBwx82LeegqhhSjzZAxyM4+VH8OfzYPnjjlXiYprnjeTx+weQZ+JPv0zlWnQlLFbZUufHy
UksPgNKY29LqaLrd/3M6Se9JS+XrUiyVq438B6IZm/KmaFksImiZPuDcgK8ZZwHqal61w7BAL8nc
H2IGD16OpWkf2hZtU5gicx6ub+ASXyym3j0SVUUAS9Nknjd+NRs+0IG61NFgBoA7aIe4RpeyoLa5
jxBO+zILfhtevoz3w2OBuAb9VbTYruFB0saEaFpvzTvawWalmNvf8ECCP6jOEJRfLx6Fu0EaMBA0
SE7ViliHOWfI83wdDsjdFAIAprlO5i8GobwL91i2IfKCIDD+5xgNNjBLb3OExlC21rwUpcZBMaxt
1eAd2kpuSuzFF2tYCKbCqTOZ6TXXq2F12PoOEIqBInc79zZ6VAuVhM/hbNGVk5bHy2W8r+vteN+O
LeiKZZ7JGJen6Qo7lrWjTfMN1OFjXiY31TfOqbXbFf6jKZM0rTORSDr+cOW+ZCr2dRzOJ33dhL5p
/kXGCCpZhToFB1EYU1CAkaoWp3ZBYZ1NN7oJLaDgYgvs2VEbXMkuoF8G2HARFihD8bd1ATFutlZS
UjwbtLP/dRR7oWSF3JtO1fVjKeuzlj9vIqXrxwg45soQtNl90v8DuinqaJSsXh6vo6TAOMkl7eyL
4f2Gd4U2nqFy65fl2zSfuJ4luI4FYFxiHZQNm3lFSSA2xP7lcb8bagODIlVxgVxUMN52CJRajBkO
RlxeeYmMaW43e96IB7tKnBvzxr+fKqK0c0Fpq5ACCj73QX7vhntasLF2LX2Cb0C4Af2SvMNMfVxs
Nq0v3zKuFm1RMqDJng/0coJidDTEc5Akye/T4eXca2PdVYBo+yRuAJaNu66iwlmucvcgmlNVGxKa
ZCwgaldCLalO+dfByQRLLqBgAk1oKI6DOrv4CUpn6GFta732u80TghUh1l1yrGbD+1P9abB0MM6c
psns6zh8Ew7p2KnIkCEythy2Pq0AoZq4BXsl96+79Whwh9Ju3BVBj1Jja16o5IkKjgzqfpJH7SS2
jfX5f4OG05LqF7T00Uz5s3GGBHZVXcvMvHJFs6IrgurkfsYJht/G0z3uMCjmezDJZVYB6TGez5Jx
Xnch88Pa0gZfk8aIwpVpIf+YI+OFiCYdfTPweWfIYdl/ihorVfnUSKdaNRWaWN/eIT6G4s3ochd2
xij8abrc5yGukwpmAbHkfSze3NgiZ/uJmyFC12301vmVRCJcnGyC5XlQ7VjyftFkJfSX4kd1HRKJ
eClatU7HEcuO7P1Iw6EaHlRtvM5un8JnYJr/BjknuaGavpl8Zd2ZRFl2xoaggMos7FA93t4IkiKe
oSD5XoXO8qy/jh+z5pHIRBYSIk43gwoyQsQAt2p/+Az/CBgZ/fwlUuvWcFyUxgvPW2HEmiJ2iKLK
8/Fti9tw/+mx3KeLfbGDgUI8CvdUsWt29Sfn4Q2UEMHLHL4MgoavupBYNA893ofLAepKtT/50AtG
+/npyVnogjWq0VKrYremOyXmsWHqcJojESdcl0luRcDO+cYdpGDbdJ5mwQMs/Et33jOV1wtgg7iL
tvApsn3mCEMMCflYZkFt/Was+wWMof4F9DSaRHGKZBYE1is2YR2UVrSKCSIcnZCFV1qDR8JKhe+4
V9xg1LJfexum0N0zG0nWSjzDVB3YexW33Qj0i0xJIZLlRBoEaVoeMzRpVAofmtFej/ksD5FSXZf5
M7RaftrlHXGl42BotASb8wY63A4PHrUdCGmEo4UCQ1OCmOY0HKeZ3HJ/SEX8Z1o2WQJclNz4cGZx
MDasdiernv0GXAjMlZ1T19G6mQJo0nYbb2H4oVU7FZzUZS55uKNKS1xywcY3IOBw4y3yD5+8y70B
mzYoHgn7GaEhR5NzZq3g/29ZgNyaZFKInHEiKiyzQMAe+K+vSXMg822d0jcMuY9hJ/GACQNxU0Hu
VNxiqV0rtlE+2koBN+F+F1yyMmPKwWWSTbB7vGqRJUiE1re/tmpluGnBh32OmgiiIyBJu+Qh3UdW
Bkono4tfPuLxn4YDXlmztuJuMpmGMjII3goT6KyikoIRJEJMK3t8uEfDM4yNhwprZDbqzhUGP06J
ZeHHXi16EiCsDyd3HjFAUnBDxVVRCYkQaGcMPQrRBtqf/XJ9XF400T6uy+MGFT+CClpbFBsXQzNM
gOE5m/XVeu1dMEQqtgyabHbQ2IIQa1r5W7YSomcqFB53cYjV5RNcPeYLQSqubNutNwS4O4JBpTaW
Y8k2gR9ocwjsxpsJrEiDfjI2vIk5U2RQLSQKhtOe6UMZG9XDytus50C5QZDBtoVfEOpuLBXr2F1P
JQaxTc+HP5Eq8+ULSzu86hMK6xShWT3OQtByzpgH2lg7j3Y2Es3jiIcg6JBsXDfB8D+lRoynJc7T
zNiEJYY/CNIbbaDJHzEgrMPO2m0dTxPzwYvD9Fks/kTX1npjxSzWggnqkvoboOhN2o4zPoBL2saj
JvBbCKf3ujo4wlV3/tEK7kEa5hV5xNEjCnWfsv8Z5KB/QzGaB3O0UT7RWqqXQuo5C6kTQYDNVbWb
/XrjfYWFstATbB0v5EnhHdkILvjnQvkRhfVYxhaEXP1VSH3SgzoCY0N5zM52iAdmLjvl+rQjAANb
zXNhM2zAeo6NumuOB5Ph9+GmhRb8D8CVCGJ94+c2YlBKtmEVS88jQqky9sxKTob6AdJBqInofOuz
5nH7HoI3poXSwo0s9i9W20IId2d+7ibiRcux7hU/2Y/D/Mevf/75v/CE/0739du5fxnOkQIttFlY
YgPt2XpjZJiE0kOIvxZFyFhfU4gkGq4TdMbdtfczviISq/6/x22frOPxQKYmVhdADnWWbeNbb56l
H0e5puxaFco+lnXelpFSYbzJugyXdOBPssHRQmEeeRiFb0Xmm4NfAV/3bno6vmJoC+jmehKdf7qV
1rfjPNV7mh5QUiaKIfyw23hR2ZPLYEz+GZiF2dv410DdoATh/76DX8q68YPoG1fQFd3I4ZiK+6fd
liJkairaIhR6N1icBH0rFis0vAjWX2StQZbt5yILBl7RZCYjczGhLcFF50zRgrcHnfFbc1WQi3Xr
ywov3rLqj2QqsmjcWXBEgtp6AraibolBOTW8e9YfO0rLnBEndxkeJ1tXM82COGUPDEnApuN+Z9p0
o7KALuQDjwvFFUQvPK82KazSqy/0IpfE8kLgsgyVFsQ0g+DN1ptcPH8l6t45y7ESxWrT2BwT0ijO
eYw3sTS8/BU1QevSw76JvmZqpsNtAsMDEwhauNwEru5CcXFTAkFp8Z1mR86Ys8B+BmbF2DXehuky
3OcPYRlHBRB+bhq/KgRCVFcpNpW3odjUqvQQMS5RmVLmeXiNRNiTkkPuWwRsbJoiQMfQ+H01gI9y
YRXRc8PeHyVfvok+fJun61u0RIqiD24RqkyiGAgLI4JatbPf5FxhUTRb26R7Wo4md6WUW8GiIlgy
mHexxKNgjpPNmvkJVEbMkOmBh4sPCGn4HIpNcHSnWtcuKU69supdUOiMoZs1zCEa/IVg8Tch49NQ
3BoslDI9rOYI6s6qVS/TpNXDeHmj48/D2wgtFonKzy5UhWKUGwQSjMTSbDBdSRZ+GT5epn4WQoH5
xnBrAqF1cLX+PC6XXhvZQmS9iBX1ojklF5BUnEZaZoXQEJk0wWes3JzFNP04M5vKdzQ1G6NQlLJ1
IOuAeiCdoJWDZawd6qHLQ2UlW89olsL0VREsAqKqOsThxr2QZXHYVxxZMCmLnF75L5hOmlbMlsTB
SspkNym4sa50n96g1EkMLNCjlqH6AiJ5aw0ahS9U1jPlV6y1yYxvCH3ExpqEsLmKF6fRGskbyplC
x343ZWL5wQwUyHpZZVSs3L+A0E3Bam9ALedC1j3zL7fxc1YjDhBJln6XmW8sF/nWjbLa9Abe8fxV
lnIVuyBWj6Zf53/gcf5Cw5gFIdn6h/KKcZlTI1jbavtCnOqs5T7+LmStVLMJouRPavyTtkrJnTTg
dzMm1KMWkDo3SSGxOgvm6gVJj0Hf5gL15b5mz9eC5f562mcYrtHkjTFP1439M5fpNL4KlT+soImX
qUt6X2ALVvyDyKS5V83GVMmdjzYStEgZsiP4XSd5rGAFqKxAxtrvZoxRKrxS5nWoA+rJO54e94R7
vCmPUl74P45cgEfxPJptpaiLUiZKjxQvFHb2wnOhMCa8D/G5Bg1HOfP5Ah58f/S1qENBGESvNWVZ
1sgFZDtRqGdVsFjduLdYImaicgIVZ6G3dsmPwRDP43aSbIKcWXXMV9ckQioYvRFbHnF47UdJnRes
u4AFMp+7CyqhuyDYT7V6I5S76meBcrjF65L4VDLD4XnJNJhsMQ3Nk8Trgqha/AXRt2WA0SzSa5ZK
+ry0RHiUlHm3Fag84b6V3OB4Kivxeii1fobpNEIsqwqV0rrnM49IoLxCrWeW1fFqcZk1cmb3Inpk
LQahhBYKXnHuXsiGZ8RwZVarkEscfhmH/y/UhW48u8bXy/APKcuby3YnVrddN+dpEkuDVRuS7CQj
NjU7Vp/Gt1RWoRp8qlPBD0zJynnCOLVtWjnYIsp4pyafXevy4Wa53al1XIrhQrGnNEtNQNqz3DXK
pvBhbUXLF1hu49XWhYp9ei2bgYdN5GVsGdsSLkMcqrYKIiWaBZmine9n4XaKECifWeSrre7GGxIb
wqlZly0GRSTejoj56e3i9ct04w4aD7F/88hVaQG7sCz/LOcP6NJ4z2JL2UGPuF7Oj/lw/zYehZtn
WLJseMXzzbOt7ktx0OqljzEbIxTMLQgnbYVluAGFVsvjSpDrCA0hq7625FNnMRfoXcBZZVJknpYo
PQDUxuepPdqz5fO1nVNhl9Dem/Apg+XEnlmVx8n+IXagEN2XIVTg7WovMMBPvBXWyosKqHhah1K3
CbRQ1dZB1FyRQM/9Rxz3UxNl5YOH+kTpF2xQV5TYokjPwBD/OoTc2wiMYEWyLcYUiIthpXYrVrql
zn6GoJ5QhE5rVKHRq+HzCu/gaBRzEb4a21W8T7vJQtiIjjBceaiwlybUZe409AKTahF18jz+LiJP
qpYNTGYFruu5LhD2pxK6hKhjFIBjPYy19yzs9pRgEVGxjnYQgar2NvftfRjOh4T+YR39aIKGlSLY
HxcpaE5r1f6wYxVcC0hpx1pVCAQ4YEL0t/tjFumbD4N3LUKihHABI+FBmd3W5lglENsjGXE0YHnt
aRLsODbuGazD0tvxl+EDXcsE2RZP90dggo/XV7AkL4nyPMpBbZqzim2m1Thc6ZV4RqTaltRAW8L0
eniBZIOpKhbci2D2dusbrO1siWAJi/4gdna+Iysi5EKKeFKLEZpNoL58kZvjFA+dODAzE5uieh7t
wFwOmFLEMadC1DX3IYwsHkOyGXGtYcSENdRGNQaZMuaoCr2+dRWCZNi0MsMEt2Q3cx2q3zBXA0lD
V+Uu9+cWPADoCGpNOyUjkVnVhANc8+UOCphluA37w0pCJsNdEU4q6fz+fPLDKYBjC/EpNi0kRhsB
icDUhfWQI/k9kbVlNYy8/5hX/kjTAKn8ofETyasaHObxeHDlo0KRVx3qr38uBnibh0HoFGd1N2iN
OlpcC1tcvkcubSlbFapMMiHFNGRAUWderMLWjHkXC8PVxJaekskLrIzJI3HkXfkQxVIZBRBQ0bL2
qaf6BiFGWfp303pxGLCfV6wBmroBgTvs9EekcCFjw+pVsNLbw5sjmP8T9L0JVQ0s21KXaEN5bbYG
ewuagPbkQxmbZThDY5OUmqdvCJ6zCIKNZYmhxlVlFR+5bfqztWAZsQMHe5sSIC8Zb9ICgy9vPMQY
YUApXVITDcd5YWqBlnhEz9lgxj6iPggoExW61VhitsHajoaxCOACggmxglUYBhZMm9yvly0+R5RK
IEqmmeqVKJ+MgISJSXmhoGYxtUbGOnmd+zcxdFnWVahF7xnXQNPUQ87clmW3L+dRCDmPjSqqvXwb
ZH1TU9vJmslDJSOm82dPt17GqBotCJ5LuPVQsilUgXXBapqNHaPpUKy3q1ionM0l3YGnTwcow2Xq
wNNUe0NGlGATMrXF0Y7A9lnJQnzNKgvjVAQqcinXByMbpFxfUdchmueF7NZ+JsOFLKFEYQkDJkXc
aLUVzP08w9BnedwTPjZruYCYaisiSZqiAUQGG+0cPaF5kxUt4WCHDdIPpgESdn7FU4LNahkbddbH
xoc3fKiq9YZK3xRm0ssIn5cPqs+Syp68hnnIUZoI6Gm6ALtjsoRGjMg2VsbAZxhlbAY2yMhpWeOD
sOYbMvBKW7V322O3yHX4BnhfAk1sLBziY6XKvBBcoSAsLTfTrqabG5lZqKdQ8eoBw4k3Am5fjr0m
IBF4Jtu0qPNsJrUoGZQx1+/+BCCK5SQ4ieR0iI9RaPioOr/K9Vmh1IJCqUIYomzHEhYay33mz0WC
/DE0udpG5w+hZrAOZfSfyloLwYbc2LR5xNW2eEYChTFiZ4a3u1yTplpsHUbK0c1aAUnoOsleW6nq
kMpcizjknpo2D9kwJvEvtfhSrj9YbPxswAoF1LzawzGZqQIc/qiX+gPaiX81UOO/RKHRqTpVhYi2
1QQkCAzlGZYFO8U7dlfK0l1xcE/XOG+0s9zalYWLXQK+MiYVZ6k+gJXg41Cz2o1bMbg5QmykCxmP
rtgYK5SEOmN3g+hwb5olj3NkiBkJ+SJMgkHFT6aPIHhqoRrbooBcaRr0ByHYT+evUrdhMFS4ZhSu
mO6djl9oiK9QMFqFAhFP3kuye01tvA5T1vAc6ROsYxZ2bFZkqKBwti1sItNVTH6xQlYbN0oG+nJW
CMsGExvMOtb1nPSjVBFscnR0vJbdvJjyulRpW8Xrn937n/SBzjSzhLVYJews/nJCUWM6et2EAO+d
+tF2yNsgof8GgRO90pE//NefBZnVhep/NvX2CbBUjmPEPHAvLnef0FKDg1nk/kScjkX7WNGH5wM/
riOMo05H9XljumITjQk405qyqfBlsKzXPyabKy5EIGvfoCr3dJmMpl0z6R8VHOnXSScwzpGDLdeM
V9eeIaW/qV23CvJi/7JiIZ6gC3+WYI9bP5jUJHvRhafoQnITm9KoLQOoQgneQOtPOmiCLr0Aec11
LKsftqPMbRwSo1DLIuJ3s0Z6NnSdmeaCgsxCpbpOQrpIT7Lxpio2rUDlEwCeiVSkFXfBgi4MHcS0
U/Sa0CVHUTVBKY0ySHiRjulk/Ex1n8LwpH+3ySKsfbhrVotXDpG9XnjQjvU2LM656yC207lBo1s4
RZIpbxIeAAcVyNjwAl6+KeR3WTKtWinQkRE0Qlu8fLG+kpRs0GU3Gsk0ewMw+K6+74xD1wLX2zYY
umJC5RRIqQh5EKs79Smk8rzz008WSBDTlwj9DKmeHRxf8jkr9VpO8mQ7GEr94zxd/jKNUsNJHeQY
NLhxCBD0I9t6w1Tn0QoNtCmX164fdOaw9hrTyJrIHOdtqFVnK2qVIGrbUFUEGz2zozeadayhxvU8
iaREKtqg9vuuRUT/0AcAAJJpWKzRCDxym9ZRL3FO4ekVV8Fi6z3I0KHSA20FpqwT5giw8ke/rVdE
GOew1c55F0HmhbAKYxZWcWjzQ4lumGajXSuODL1c+jW3Tyk+i5tiAGXfp3n8HdBPz2gHCEYNh7dA
0hDdVdf1Qg4HUV+8NLjh08WtNOzSXUtiupkRMiGTNdtpN6YYFOuXjKCLk2BVhLT+c4pGXzzKyKP+
a6ngpPXTRVzxy8ETVdUh6/qTMdWd8dRgXOFJ/t5mNEP/QOFuQfqG3R8bpoDuLy08wRzUK76mwq1F
F2yV4Y6T4A2WQQhrz0VZvow38lDAyBG8lM63CrrwCAyBWvOmCjUx2oQ2JDAPcgYzKzc+l2fT2b2Q
p2wCQuLMtZK5y0igHsZ3rDGCbNo6dB3hDhkhqMEyuyyZaFKpe/FkizLUPYRQAPTfIyiAgfq0qZ/T
QDD/AvKh6oouhDvJ1ot/WjrQRBb4wU9/k/Jf9HHrgVCvETWGYkADhISt5z6gObuUHWgstETr468W
29Nj/+866yMWvqATBfHVvev4zcypExbpQtCyJjrjkB8gh96/COcqfIjvLKXaU1ftkDaxblaZQi7M
49K+bMQcdWZ8pYoBpLtSR37jFtDEBkbipdp0Y25BtGIytqDZ4MqzwioMiDdbjVZa5bxFRI/GU2kp
ht/uajBpqTRMZ1n7APKcH+EIQukuvVQVenmfCqMZKXohRsdwF8q7DFzDxBnRzYhNw6DdND5P1AH1
tEvWVHkIvdROGNOO+3AZ0oMFSnY5rgPPo9/rtJPuiton5JrviMbGYN3vImzHQS4z+MxE10uSVUsf
uNeg+/PBrqv1pBnj8LgO3280eA5Hes5C8DlvmxC46bn//cPEKs+IvAOF/seJ8roCalTOKjP54By4
Nvzv6QLtg8Ayf5xSuI9Y55+5On+0agq3sF4OC7zktDWtUoYaR80qa3wJ8D1AhAqvTau5zoiyWQdO
mNUgJv2J8ynXvIF3mPG1AJvDroV/JezJtYmhjdPwdYz03LmUch1KUNtS1XwpYw6DwNh9XW2o24Md
0ayZOmHud5KyN+yTuCy0AmvhcnNP/Tvatxel/FdTwm3vIXLXO8XiyGa56dsVS05OZiS01C6XsWYu
FzQzC+FYpXj3CS1QBXEMVq8yVSpU8SlDZQSijNj23+c5nl1THStfZHeyekKrD0PRBBr+IVTdBSdK
MHDidIUun7XhSqtG7deNx3FXvkCxasIWTJzWCiIzOIsHRtbpz3agXiIgwkGMaDb7BtJVO0pJ9NKc
VeTmHTaIlitKkIcQZNJGR5b0EXxbFaqi9BKK0+urnTLES9QgOIflVrh/4RcKv6ook1w8sryEUI2H
0+XKpvqXF3gIM/0p3tJPkeImhM/mM8J9mn6eDFyzVMyrOhbGZIWT4dVEJFW9VBnqT/GjuoksUVbl
QaBaf8yeoWcLzSxcVRlqUgsWQgBi+03E2mNpHYQvKizeLHC3xcam5IidGSTwvF/4aFySp457iwnl
YvRC/pKXZWcOyPQZUfcgA7ywpKzXus8GpqZykBwLGz2uLDJ1Ye9E45wRFys4XD8nEOQEOZRFqP0J
edkJ2cNRk8bdJv6/xytRqjhe2Xq8RKEHz4m6JnQaiZVE21ZdKFMgxuYFNGYOiF8Gi2rTMIQF7zXp
GvfuXiG7fCcZx7grQ/BkBkc+Mc1UNaF0gXg7AkwQx+rMt1VnSNGgCpFlk9MS21A3qemUAocBY+pu
jqMQ8dsM+d7E6S12I4bndyA4dnUIA5aVVpnABCVYRfTGIpgtRDDK4f4+8RlZ90Ea+10E8WAdmqwW
2jtSfVURpKl4abBgPJahgtig5zxdsZBAnk7SBhOZ61UzFCMhkdn6fVOZb4IaG9AWHDyuUDB8g1il
/S8SxaMZy9t5wy5o1OLLAsS1d2w664xnZfKxLnTBkmpCQL/WKKXkUKossVXh8hAxiVlJU2Hpd1+n
6z3142WZhSeLmvTzOqNWzF0U7WZcoJcu/joujx7mW7/MwoD0svAhBvzJFViZ+Sft4AlZZqHydS0X
TIz8oZpB9h5gHqt1onUw3GVycVL7diV0eHBcgVQllKoihfD+qIF07xyfbQIZ7bxVvir5zFiJUil/
0EXNYu4nO6hxSXdfFFUQ0480h5QBy8o6pIPWmU+DAycVX74OVqxSv3R/7w/D9TjJSJe5X9Vj/N9M
Gk20aR3fNszd53487+liqnK/29RnoCMkhuAmPrRQn6drCiqgaJu4YUnFqYRkcB5eAe4V+waEAjJ3
L+jJ80rCRIlsrlSoQobNE7V0Lw88ynnxqatnjoFg1IL2zUIDYpz2pWbEhHPCPF4Mt/DyPFvorW2K
Hvow5bEcTR0rtUQCAqJBC0VK6ZHptRncWm0KvncA32dVHEwzgmCghJKSNtSyEcpICwW1rFYfUyl1
HN7DOAgJfI8yNNU7Rka5wPh1SGmuECgSik7B/Yr6uTsDo6lWAGM3/Jprl4mpygSQ+zUWaGCDzqM8
GZwHUdDRVbGCoETfDytpRq+QqT0BdHgDymzGEGtpeqdSBJyYsZ3pkIJ4ofB4EwLUxcI6ApyAam8z
BwyhCsEMm2PCidCoVAgiEJeksWeHvz+GWUgB5bWP2UmcB/QNZfXUXJtagsF+4tHWJdYUEsTYl4O2
bL99o2T1Yz6jVpSi9opDp62Ejmf7xxbOGbqjqy3uT1/BnDpF65JpUy5lxgoq4LDYDLIcx5E9prCH
wqeFxt+DCKKo2IXzcvIQXaZkEy1Y+zfdRG9619Have+2dmAeVmNJWLYJbdK/+f78rf9YDo/766EV
VmJM4yJp3krCx6X/cFWM2vdclWpDi20kgsD9uQeaGDoIlyxniPRGFCedLd93NmGFLMQegbcXDpV5
1A0WDp9FaKuHBROUZaRIrpWfHFJLoS61B3R8z6xy1dahWXwU2qA6AIpyROuviFiKJ8DOPaMvBMwa
biI7/yegaJ23KWjbNtRAJMYsBWN5i6kXLQoer5iwQPf6ZToJTfrVJo7mjzEEbwIQ6FKTVVgAFOMF
Rvrqy6wk1IcihMQWrnGexdBLVQUHO4aXSkEXVlUeaiexjsTLh9zcn7XBMJClSPzEtcOtDoHpsIB6
2bOZ5SsieTYMydMVUruS7uQESlql9ktmhHRaauAGrVeGcMU5Ys0OiOemYrjKkFPdQgp9rqKe1iwY
ajpEF7MNnkzqJcgEjVcB0q8wAOaG4rYUvjFVXDvdrKqNOw6ouoxjk+iLyllDLJt4P16PM5KyPuMu
JA/FYm6s12vFwtk3BDHjYVZnAhkpz/v8haBSEZLN9GwWewHb2CToDgbhiTRfPSOJQslSvKyHGp6q
0ByWNU2IVZt4QxbsV2gyD06FYc+NLXnyAHK+nYzloJ7d+0Jw76vQZO+1KZDSdFQFukaKhBvqQscS
dV8r6L5gmuYJf1eIiZdx3E+M7Kc7llSThzrwXFGgn/peCGwCwhlCqicPoYmYgTImhHVNhLJZnQC7
G5Y2XIGWhYBVE6qKeY42mTTmSRyNxRfrsB+K6JEEliFqkKduVNqLkK2qm+D4cHGcr9B5k8WxEEwn
LOzvPj+ux140YZsm1I/LtR0SgBgDq/Lg0MjPdUQJTVBtiLw2BrtgpLOHrLA0KfeQJ/orFFy9DKb4
WQCgCI6G9pEA9HGO/fko8EoRSvoGEfYwUStRAYM6qJq10YdVseCiiUnTLHqNRpgXdkQF8glQatZV
t7c1Tnj3LjSiNj2aVwDqYCuWa9XwdXhDN+Pn8Tr8h1wnUWSb2i0TgqbJj+vhtB22Jl3dXG3h3lif
H+tB3SQrT+NFGumbMzEcyhxRMUe6orUKwUqJPl21GVfVSPlR1w4tJEizEIwcRcCwyM5YuQ9EoJzH
65fUCN8y+G6maEeOHGcsoYIIVyE0lZd5+jJck3AqlQ9RXabTIQK0HBujx2YqrPWqWngkwEkKteGH
OgwlKxxIhfBhfp+miwPtFQAYuC1crYF8jCoRqsx1cuGlb1pjT9+E0zCqwaRi5QEn2qxgAs88532X
rs+YNQYnenZVVYU06jr36QqzHsztiFXEHJy9e5plcB71x0beED6IvadovxhZDlVc0sAoD8jME1sI
Gdg8BEn6PEfC7OvOwVMF45YrIgwJ5Fw3evxBIEhoNUlA12zIGwimUj3XD+6CGivKIjxv3RLVq7az
0FwWKmuqTRlJUUXAMVuhulJCkNZKBwbypBGkmQsAgsMMO8uk5GRVxRKM/6p1yw7NWfIZ6GrNJq8o
g4Bl5+qLhCBwcLyDdt/tAMwBUEj+PVGWnNWbqaqGyxeq2GUEIigpprOpyyoXInbJIpyKwwo8Af06
rFGchnElikEhLzjUXSjlaWGG+u9Jf1Nxi6LFWDWPVtB+9OG+DB8ISfv/8fanTZIcR5og/IuC4vfx
kQTJaazwWoA93bsiKxDPCM9MZ0WGJ8Mjqiohsv/9NVU1c1PzUFPzxMy+MtMgUIBb2Knno48qAQt2
bHCB8pKVHUJ6GqEShA3ScYV1KRFqhS65jRn8VWtLRNAN1jOiWbtcMazEp4BPDEbFyqToQ1zfGxD8
ayRNLNbOLKkVeEk9whNkLSUn2mNVUQEdglFlCvCpFav2ZWdVXVDZiRyz64JcsYQxk6GbtmKpZFLD
ASv4LtPZqgTyfZVSbpJ/WfguMhE3TYRbum1YZaL7bFVWQPy5E4nahtmprRH/NgINlGJS8dojCg0E
RBT69ePBMx+EIeS/m8JygEDwF+Wts2gApVKcp2wkl6Ob2+cXFTwI4yuTOOwe+NB0MHMegpnLoFcG
marK/WU2JbRKqoI8SgKhzJG8XURUOVROosNF3ncirt4SCWH1wo4CHx5i7XFKwe0goxtCz0aiK7ee
s1TCC8ptUlAq7EMj8LfSHnGCNsRP6iA9LVHXSuWMK0hvHzQ7YO7DvgPOfMbyCOMczJAigcAJ7oTi
JFRSmBqutKWenbE4igYjsT9dEqGcmlupvlZiBdQnOKEZUyU59Kym8OJI41anHg362wBda1D0asir
OlCybc4dImrbiua3IlKqDRdNG/WFqEmmrpR6sWprdaC2pVfv1/lm7Xzd4CqZ8AU53vlSLnjkCh05
5/xnJyeVpuwCJXIe/noNoMB4n2Kjy9mNYuyjdCf01EmelRK8Nu0kUkW6oqMKSXmLeVWShoevk1Jn
UDMNjpViZRWFJICJQoXAGhqhldz2GCIgxohBQ1VSPmON766FPKl6ZN5O/iEX6z0LJRKbRcuNAyC8
xgfHE7ntysSzJmBd73BGo6SkYUVKa9ev2qZyb9PtrDGji9VXa830dFnfCRKJBpXV67/U6XILCTiz
fdCKthHp1Zzd/Qoe/2hUV8KEKVqxoCASnQ1FhFJL20sF2o+xDIUtk5n07Fb6yr7zsNysm/DNWJ3w
+NQK4brc8J61u1hp3A1UHP0yjP/2Ii9opVzXPNZREvhARqStTTR72OKwHTeT2R387x3RFhJyX+cX
bBBjXhMwFswK61LdMBIqrKq2MWCzLiPssKwalKmCEy9Ylf2GFY3ms6fnNA7SekYsDOBWfJAU7AZH
aBgtWr1pHhM0m1bAWLQvfiAsyMnj69nRM7xgZSK5d4uySDMG/JVYgRNNj3MlgWzJLOrp1azOnl3q
xBgNVLdRCtvJKBNhxFQep25ngLPBFmGQjdTJxzp/9iwVYAdysk7lyGrFBV1tcfAuVr0me6CgYqsx
Qy0IxlbYATvPocawiDQJClFgfFNfCDtcUN1F0PhzHWtjTyhn1MpcgRRMRGYAKgUymi7uYdAGVfGh
dEK1pgiJ+Ar2JY9uponmWrbFvicTjbQqReKpSNGqNWV43nw5dj4QtHgbviu7y4gPO+L+DsVWQtUX
zDvdcAHai5dcRrchcOQToDdonSObp1ZvS1uENzjQB9bRTYiWtpOJBFGsRYvyClYE9UCK6C7Y4dvr
aJzG+eUFLGC1QrZgTZby0IHhYvIyOxIs+gNlm1uJJzOUdUbIDUob0IJFchxVpiMNoXF4U77ELtfq
QVFCECJD9zdN5/pF4d5LfB2g6VwsPakQSonv0M7KB7J1isJ2QybKn/iX8QONS50dtvGbw5pBO6sm
bjEXjH0oD7Fa9kFDQxK8icZoG0/aVjT9gw0RGsm+DD1dSZlvAumFhBDRuyUWHHvkK4LjhBNKPlBG
EYqNdMBo34MGqJpcaqPzdB4uX5K0M7wpNesfGxL6+AyaVkyZtbnkXZqfp0GSmbwy3zQjrkSCe213
xRJezI6RtY95sl1I9LbvwqIoGovinRDXs6qBd1uOGwE0Yh/WJrLZHUZgubNQONtpZ7H6PSrNaNBW
hJ3HCO6pEnrluVccVbFvWazNGzZFePqwnEBQKXmdtAB11UrBKNfKmTfp2llwm/ERw07ENrnlUmbJ
HlCFlG//Np3PSe++lukDbbaNAvrDojGcic1MfJ2C13EqIrxiMFeYhwUqMHI+vsXQ9hLdXpW8J2Oo
qYYkNI06m70FHKECMGKhQhb08F3+LGw+XVNV9q3kzovx3kQBMoV7O4kr3lVA6enijMWeWbKXMSzd
bzpisOwl4AIPxNK7ouoT1yjQKITrRUv5ctivf1tyjYPDAsHb/ZfWXk3sOiAHZ5OBobresJPZii3O
b3PwL1d5bptqK4lS3kdrlUxLXUjp0kTMXQm1hy03qo0ipP/RgARlnkuod96y9rCYQ1xpysxgxrwy
d2R6V3CLGc+6+8KVMCJnm89ZUBCA2t6UCJ2YOUsnK/QEcFXKRKBY6gqGLPJYQ4+YHa2OHlpuBd2l
GPscwzq+DO+Hp7vCT7PtwV2m61t6ZY61pLtsHUiqZDGvOolhBiU8IkITDAAkCCsJUPrYiFPJoebS
LD7dObosxbZ7rsALyM7Sk8maTYjc8hhhihPK6xXkBO/W6aP+ASIFgWTWVnG9CxSrWKwotU8EvfrD
pogIy4eqA9wb/mcKrKCSUoYb1lcjAVdf1FwJBTDRSkYMQpZejb/0LW3eZbzPnS8aJONwV7Vf1Ygl
X04zT79qSW+WxEULrnS0vGkoQMU8CCZ5NsSkKZxUVUicRC6drbxksRzoeTqT9wJ/c2BFa1o4AH0D
VpGLhGLlOp6LX05X5W7RGKwgN2foSmNmXQDe9IZQFXCK3LVYlJoCcll8pSx23Cv6wk+M2bhr4Bhi
TePzs5nqokyUFUV3hee5xVHpnQGOKh4kxVG6jNUfV77+2JWI4Vg2aaGM0kmsD2wMnTe+7ZoHenV+
C2GIhdInrxPEDLR+tLTljCrBt3xmN8EFgJX9ZXQjHnnDhkAkKyYs1Km0ol+N45CAmC6v43W6RR0B
2qFC2iG2wwAEMrrmstbLAeX0/aoN6RdYw9HX1poJ6jFhbGUIRovfVZs7uC/s0LHH4f3u4M0qsVva
4Sak8ylYTAebYMNgT/fl43Ce53dlnJB4xPU3Go/w0g9sSuZd3S9ga4wJyo62Z80Z+lUiBdr1/g4t
3jS8J01OJHrCSa2U+I4k9UlnLmg7RhCAkeXH6xRPgNEIfXgdrcKznS8gRuS8XL9tyi5V0mhsw+PJ
ANqbnrUxAf2bPQgxIrJCQaLMgwvD1S3C79eIT3B2yUMrY2RROCgdvbLLVRDrAr8xLLqlQEuCmo1h
ORFoVEqdpZXWbBzCAb52XRUpe2sEujTF4moC+FvLW5fvINmuulpi9A0Cr7onXTI2fMQJ1lsePEdT
mWKorFmsnDW9WUfa9A/QQ3F9IYZnEFaNd1kLbMssx2TB3q6jMZ6+G5F1v2plh6VUSCuBdRkyd2cf
DoYMQ3S1VTZkWVD0Q9+dktfR+NaLx/t1wW4ymD9AkKjDjj9BBn24amwUZRioKyLopFbJtzQSBbaP
FP1VybpTcKiTrHdejYhBJp0vngU6MGseY6A1N/v6ZuZGLK5kwt4VcCaD6LNC6LWkY43RcZ6VqEwj
lFkp+c2b9perg2geIp7EVWPPrfJNaboDZl4xUAv34fkMPbEnC9CjtIMN/Cgn00vdPNan/Qot/FaW
VD2lVrGQB2t3ENqiKSbznBUZINFixSOd9ITOk8IDwNh0YcssUaOD0n6Sc7nVYLtqlWTFu9WGBPvR
rjQKlXoeCi1eqEql7EYKzAp/h7/iKA7qMF6BEZ1Uf4+qENnK1GKzPcxxK0RicwfVwJvSEJtVWbGi
Xh/2usx4oZ/M9f6ixPE5aByitXUQrfBdX5SQRSPtF6bLwXcxBmSajLzdxP1Lso7OZu4LfhDbCiyq
dZ0S+0AOxbKt9EmzfuJuCklDYwm+XCfL5Of+6eA668QHdK1C+yBu4keAiMNptNCMRRmnWMdh+Xo/
TuJEaIzWj+HfJBtjuC76YvzuMOYEP4DCmkLfswPx3JP4PZXTXzH/DFAKZStce9k+MBL4lt5mOhlt
Pyu/Fz4othkkfSqln4rnH2cLQgr01HrYsZSsRnMdJHkurg9xH+DpcYTlMrzvOFg2QBmuA3cDzC1f
36OMkwU3DGIyGG5w/73ROZjvAGPzZgQB5DymC1A66gintfv52hK2srXeZlq+7+ByfzPG68ehxmxg
3J4qUCn0EkwZ6aZ1YNPa9CWXuLc4gDGxpiIPAbN0bCtkO1ViQvviMVuMosLtC6TH3ab08fUwQCYD
pUc2t1K2tJP6/mLrRgesi7eOK1jSJg+zlvPTv5AZQG0bbPaC4c18uc1l+Kq2JqNPc+l33Q4k/R8c
I2OrB4x+nrmiuxfjkqXnkJfaHOAosbdthOy1YLVjm8bJb5A73nmdsvBmO0bCGZuyJVfgHymWaHbR
y0grKZQrKbaQHlBZpuaRM2HBOIOIFNhRYhyMWHuZodpifldWlGsvw7ZIVg6k3XSyzqM7UuyRWbzD
t48ADBAbPO/ZFz8bdHzo8y/jx8t4UcRUISEwpTV0e9ZQ99IddcO59s2Ht/GalKA5x0r7XL0XXGTZ
B5dOeb91eNYBo/TJeEtY4WFU4YL9oYMeSPFoFg7N+7v76Cfqvfn5GfI41hubxkU5vlbbOcgM1PGP
OZA1F08xOALtbW5bfveW+AxrGWz97us43pI6vZZKLNbHNbuDUzQOh7uzDA60t3qGo6c3v7zOd3R9
klPKK6khunTXNSnchHq9ZJZF4rE5+NbmhZtf/Pd9HLUuRfRUQwW8uSF8+qXyQMUSAvG9Ky8zk+4q
hdgpAMz7fSp7uTlgi8ZBVBBBhKBmDqBQh7Oxue7Di/KCCma4MUyIeLy7xHEtLfI2PFFO3TIvK2Jh
c9vqyAPQFAyTCb63xxJ2qVNmkIUmUykKUK3QzsjNRhJu0qa2u/QDk+nZ6g4ZI+o4vO9bVF5IhSNu
QsTlkpgEq7tiiFkuag//Gr4OdA8V8dRKVgzANhKmbFWyNwj3vu4jd0N5yKx0Qrhe1qxPSvt+85KL
LQo5BUcsGPY6D2OJERcjNaciqyQJy49H2RZWlxffFjeVZseVdW0BN2LXJtmROjuGOKT72mv3leqs
lFNmrktOrZ+jD3CXY8zKdjCNUyaseEU6sdKbgKFNuIHKKF0fGmY8+e8QFkmhkPVhIZoaQFAm0xfh
7Wkfrp62klyS1qF2H4yA0hZS+IUAPsjSEL2Ow2mXi9ZKrlFkG5RH1DehlC4izqpmRhaS7bZaoYhf
VSuF6Ip5k4eleWML2hUY2u2zKeY2r8r2ZGCv2I9mxymxqknf61q043bZKfIDksyeTNnpKrALN2JG
bd9Ml78LihQ35n68zxv9uOg1QjJRKYc1j6WSBNBw+tdAJM1AZI255O+3He7zpto4bhg3u+RsHV4R
OuT75csF/MzboCyLeRgM+ybORPn9RnMnt1G/XS9nE56gt0gsCyOUl+2TUSWrD+/WUp/IxDTLZXNh
Y/6lMgQrX2YC+wws09fxzHxd5QqW4TGH6tTVhFmQxJ6iajOrTHqJTo0k97fwx8Rql8SY8Z5TbzZh
bFWzNoqGLqSaamlauy5jnYcmfLU1ypQNykLqkFDHmyl8AepNjcTCnFEpRVJjCQtlVzLNhAq8K2Uv
NnGB4sFoUd5AJ1o836kJwHidAGuihMVZzDKxgDzbdd3UjXXFCxDz+QYE39oRFVLA/Q3a6KXfUC1p
aEu6M0MPp8l2+cIk12l6fh6vvPhTi1J0mqkKp6VFxCrN0XJb7UtQEzHRVhoNXsCOLWrCuPHjMhTl
xClpHo3DrQ7YpZzKTyS5doV/+lxToIHAUp5mIVHVAEziJUoDRTZiFt7eJu1R58pBl6EQ73nijTBD
NtvxPAAeTHOHt0k8FpT9RhXmT1BhC+/iCfd5MTa+ZsXl9d6wpuZudKEedpEyxx6r1o2QJPNHBadW
V1IySDMmGinjHA/BayHm8kFXYooLmzzM9+uRymvYP2Pi4na9H2McYPjKZDQzH8ajt86YBhmvizJc
2Lw0t+jmt2H5Ysx2ggQQNuEAfxYFFjimxxwB9ub/bPda+y2W0L0PUFL8OryPyjAejUPeTGSY6Top
g3iQgxPPnn6XYEmW3BY4He9YO7Ty3Ua44UC21q7nbx3I/evtvH5cxD92lQ21dQlay7P8HSqh6XOy
Vu2slKFcyb+bR8Pphe2alvfzdNNiU7QiNilP1W1HGi43sB2GKDQFhqjYutBhyfkQlvzCiOnxMFuO
1vhQvR+KWSLBUMEilUmVfiSPLAt3yLj6IIEjADXcnsxvNEv2hGs7DrHCGJyJw9nXARtuMIQyg7X9
Q20BO6WwEA09RMto/X3xaX8a5Ccc46fp9DJqO1Gzo+kiGxo8I2Ws3K+J+RHWswIxg5hoKPCId2+h
d5CFeyu9g+P89n4ev1NrPOXqdX6fvROYvX+3C1LumisbxVBs5Ymv+f7+cb4Z3aPJltLfWIZhVzZY
kQ85G8tb4NuxgBnEF9iqB+bvD7OjNvs8XY/nUdngNvm2UUwoG92z1+jtVWpH8nhtAMQaq1iic/NH
juxXxYM0V46LvUvWv2izJVHTnZbjJQOL9KqnpBxRFz8idwWBdkC9gn382tgxhuXVXGPlqhRVOEb5
MMaPxMf7QxSQgeNUXVwxBevplDFK9jA3ajJYT6msp1EUCYJHCRK7QJHDk3nl8xvzJY/qIqvebxYL
XvEbqMyszSXNQNU3KZlVt96SYQa7ZY85DOf314H6/CjCt2F6H6xta6wxmemw7Ja3SnmKTGD11O/g
UTzQe95n2FRtHyww71PiVNnpnN1pDg7iY1ntFaWIID1chwKsTk2qVibViAucThPwfgzKXjOx4wss
N3c2fYNqtpZua5g40+g6vD3p1lEbbm0fPXZgn3mdrzeoGFKOvQ3VePM43nWmWklX6K9MrpSsv2/j
05fpttMQrdtGsnUEOaao87INZWH/MMbPs5Go2hWuS0k9cEmjyPTGvyW0b7qYHG0UOcrGyLYdUezB
jO/joAiJLpdMUNcQ1C0kzgNBa6lCL6yIrUV5esVGNwmmjDFHFpgUegfKda2DnbX1GjGLRnnTfncr
Rv4UiPOUK9gwAw0r0/Iqcs+Uq1oz076MXHe0hJXrVmahys1jYyj3vSxS5tCPFyNVtGlUraQiQ2H9
esdSvSgzC0n9Kv58t76osrVZoVgiFEbAg1bMDX/besTAC+7seb68JERsFc7j0cL7/fn8M0YyzN/8
gMRxioAs/LJg5LaNnbbyIMtKct42TrKW/qYN3jyiIiaqe+XSVOEY1S4zxrNHnBVrsRVN4qjb7H5o
HTvCv0TvNmlu/x1HUx/MxuSSPFhLaq0cQhf3H5yrSpxaKc2b94rTag0UsLWu4+l+VG9G1XWhldIF
vZr+wHZJ2WEvTnCzg+dLZEbJzSny0GN9lGr/A+WIJkaqJvV8rQJUHMWiTb83b1DS4jI1zpaFAc06
9vRaZWFFeEhtoAMtih+Yo1LymsUFWC5WmIymw5qUDiNVqkXc8jBgEvWIlHu7CTmXsZVomrSLOz/B
ndMkw8ZXEKQiJS8U3VWExl++S/gpu9uLW0PuU6FYWpulCCp0Bj4YGxWAiJYi0Rsp4GL5IfPVj07e
2Jq7dPiX/rHhoKW4UmaTi94pbkmubQkzlODDPDSI1zgsZLeA70aL8G0iUHXMGFA8jTJ9QsTM9vSx
5l3SjmW3iVnHwpd+narb20vqFmnhkdLIaQVkMdX9mTr0UTMxNgHLTb2IrAkD0P2Di6hYYCzfgvyN
0eSWshI/BERG+z6mmBTlVtSBzg+jPja7hoaXMgTLKbQrti046Nv1/va+JHNQfRn6QpafC/NFBz6g
sq1VOqqL70GLHuShKqpiSkB5U1UYaxQiEL+/Hhc1LrwjIYdxYbczkOt9V7NaeS654fGEqnL1irjV
HmyR8gKqLL5FPFW4K/BUhWN1EetBMdFqLWbJM5fG9TQjambnSvVVWzhioziwiiWRlQ/n5bELBDXA
lrYY/oB0/216M65jnAxkrdrsLQ7V1rDdF4jCE8HQ/TJdphtB4OLEF1nmeSJYdoqGcDCKw9v8Faal
A8RwOEZewcy/lcDXdSeJtrApse2YJ/NgDM1YHWV2CZk4ie0lvkM557/wVBxG0QDdIbGJeaTZeV5G
Qt0+mXHiBhmO3DFSDJ+vRKo16OCF1F20f1aZYS8gYxa9INTYKN9UnZf5mZ79CsOIWo7NCziDuA/D
Zb69Aj9klLwA7ws7ZfTBbL+b2/yOhFnEKYl/txKSI+7E/tQSq0RHao2MoU463zOT6iOoWMLsrbkD
2oLzjA3DHq6dAb0Vc+xPRhopLDlFJl0dqgNbm1xs6KUB0XYeh68auBln2Hl6F2akmf8KWg+au5M4
hMY/WowEkyYw18NMDO8LRPqx0AYf2/Q1vsyc3UEKCef+jTiedXPn3j3dui80tnXjF8CWXYB+EeBu
yMHg/k2s3gHvf+l/m9E4waYisdRttndI4UvG3cyZqKijkmd4N0brK9TmJg6HPXgWhEHA63h190cR
qYWfDpKlFq6cF4gYzaIGI8PQmVgZ0Q+E2I4P2TImH+9XnOY32HWwTYF9C+h8VknkdnE8EZs8Ye81
gpysyCUBPl/oPSsioZAoqKyAtMx15iZGcUt4F/pMOkMk0EP/FMsRhuvVbNZl+Dq9xFs5kNDe8Cdx
WrflNlyRjFBv6IBr6xqJToopWQCLgvh8Hr6MxPGnXIw+lEu1Rea9jAjkhr8BMDeSdQ5QGEbtidCH
QYmgjJ17diP0Z7oHPa7Iy0q68FDBSzqILqwithtJj9EmufJ13CTL5XwgewKQpPrMVni1GRkuSB88
JXrgp3lcUBiRRFfeELthCNZk++8MOaZPD1NKE/YhztLaFrahChDirVVXpxHQvx+K9ZQXtaSl1zJ7
OgigcD1o99W14iLNQJlC116FGtrPF1xjlNCe1FMR6pfSvmjqdoUbrUmSFZ/fB7UlZLsjFpoOkDSy
oubaEITarrSmdgCjXmw9KWgpu8JV9+EfKsqvZ+PnEOfIHdfMA/zXnOB59C2z4iP6jUOe0cbfsK9G
AFKnRDdRHHOM07fTu2Zo3g54hrkt405k/H4ciTdgUsp+iEYtCy0Ph+/+ivDSK3gxQ3qhRmZ0oczo
hXl18WkwkDKD7ZgLAhajbRiDIiPU4nEj1+tsdD9LZsRYal1jOaav/kofhOuCv7TFg+oA+uxY81fS
Gmw2xRrKQVpIuP7AswPUILbFJ/wFLAFFM2+I/B7svRXYD63a0Rig3aNzVcSFXy0jS7JOGhFZk7Vn
Z2vmTQsYkEuZbCFFC3chdWAtbaXtl0JCl3pmvU7PypNg0gWlU83O+jqeCcqg5ipxcpV/qyzehuyt
alNePBFmkOHKbLjDOG3X0TlAricpdoixNn10s3o2InitbRd1WhSfJQ8fN70CaP95OD2dda+prKpQ
A9VbU8eWD4BqvCS1Y8m0Iyjxntnkq3xdrP+8yq/4hnOeU8bTO5kdRkMCukvFO1jglHpmlyOu0S6R
1rTH1Ol7f2dYy04uZhTJ0jCRV/sYv6BtzMODbo2rbQlbfQaRaMx7Z1TEdRCz5nwA19klcLEv4/nw
clRskVyKeDC9y11A8PyN3DH7j41E4tNiCgPRBpDhCywTqsOadW8j6/zkILLR9YJ3phiUdRhhcNHg
F0i3GvH2J2xXY7vW/J5s17jSYbEzj53/TPzG2Hfx0Td8pXUYAHN9MZXgl3+CyCGWd13QrhN3XXVZ
1s7AoVfhXEJq1mKclfn0odjJWWgTtWtQh8IGYB2jRoi/Ov9yYB2dZGmf1UhDUUpunGtrbB1KRdyz
t8sM4tDaidBKkLkjhhTWfURv7zajB0hen+Ioizy4KIKAcvo0Dqd0BClnJLZMM9NlBdmj7AVzrRly
gW4T8roOb29GBx8T3nDWssiTZ8YDOW61nev6ddDEXZ5neWj6uT56Rww8/ifu8Hj6s7ofGXMOGabR
FpjeACyDQTUbOY5fdmbxMGhIxAGgwXXzn9UEAhFO82hJKmYjjy9jmLFye4w0j66prH5VmJ8Lz6By
fKunaVgDoSTrFGmW58zUxDLV3LbleFRMEUoeGqUPA2HVg0V5ukOU6+C1lWJIsikVpY8I0OlYXYeB
HdLwutPcdsx+go0q8mC3odKBIA3mTxSjOWvD8GHOryIVzTq3V7mHhZQ9AWX9D3NlBgqfaa1yKbBT
SH68YLCg+JWsld99j9oDeRjw63gIPKXGG/ZcM0SWun5bV1AI79SYPRH2algqA95ZbdG6YgqtUlJo
nCAd21BVuwJ7yqvvQyL87OGWG1sLZfWeEGYriXrSfaCB0eU6nsdBcUCZV1yU64Te5uU+UrODi1nT
5euwhKYhzFTvg0mWcRHmAZx+v9wP7vGYH7CsJholA4kIFtVp0dBsy3atg7cqzij9u7ZpfR5mf6zB
MH1NabW8lXJPgpCrFGslk9I7D9dJsXL97LGBZGGJSUd4FWFn9oPvLp+KEjNh4GEy25V5kTBdj8Y3
ux7M8Zn38zq9KwsuJJfFkg1wFzg+RFOHT6YIckl/+qq3oqejqyWZKRkkSr80EuE8AUkN0LnlvaZ9
ZpYC0iMOPUtEsMkFCcj5YvVwap2NlIb4jFRP+6CZ9BPGJxrMf2Vll4olYKv1UEWQneY8j+NqsS+H
KEsHxlRYyB+GNN6jt5bJ7be2HRhTLmSkhra5sPeeAM2K5yUU0SJ2bHFUgPeL4gcxoYTxHcezZVT6
r3ADsqxUIihFGJSsPGCOUEMY3qP9AG6V4whxNGzwp5qZOVsQS/+wSRXKpETj3WVIXQmc2VVzD78f
ol5mz7quoLPccaPJYt5fIQ+qv42Co04YkZMNngF/CYqSvyTi0eYG16GX5Aqt71f7SB0ggvQl+xcJ
Bdd3/lKjDbX2Qbxh7PK3oAAKJoALe70kD1fpQ1RW0otfjvP7SA2FoK0dRhBn4x5eTnEoWc8g+lj7
V3cZwZz+xaivRivRRz0RnPW9JDetnEx1MCEzsZNcDhaHQaQDGo1KLEZsPiNamo1iaTLRkWHGKoun
rJLSO45h6Hn63LOjoNhEc8x2dALbz1p5jH1+wGiouqk5CzYz9O5qK9q9TQWZucvVruA1dAKCHHHK
Zsx4zBQtEJfPCh4T6xbJWwYerjctI8u0bYtIxOwxif3+OizaOgtxt6htKiGxrbGUyhAw+BYL3hhz
9Pk6jsbxQmdgL/0RxWN5JAn7IdmiKhDeALq5zJb3MYWJKiWnhyAf4DGnIo0969zF1rYaWCmfkqMY
ik3z7jVZ5aejOFwsZVus1jcKZxv4sUaHTRdhCDCxOW0pTW59KMRUDr8QbxhLmXl/WljxWrWuCmRy
vpGFNFrLWTmvWko2BVFZynCfVpdD8QAaKRH5gBiw+6cHnJkrwPKDoSprlCRaHzZwa3iLlHXHE3YE
C26ivHddYilZReevWCF5KsoVXMU1GmANbOVqZjKwI45lpYTsLjRrF+oMKUbeKwZEEVpeDZ+azRET
b6wxINS7xJJ0wQHeBMF22CApEsfa9ZLtjiEQezpKOQJFUrymqes1G0LLxBj1D7riZElM9urCNDE0
kYg1SKYrXoTuVbECvpzUVjRIHwLGcymxqxj8TNPyBmKMuW9xbfSoRZy19BLMfmg5MlYsBmbf2ox7
RmJ0X1W/WSWfqjJCFRCG2TzNffrUetqQfad27BkvjNH7E8N1IYGEPfYrhCQ/M8yGwo/lOLAwY6IO
Jp8YMAtrYdd5/ZaxGFecb0NNsuwz58+qaX2bvaAsYt84hVRDYvlPftsKWXUVY6KzQw6X6W349J71
Ircds072D9ax+kN2O3gyfN/G1RKzl7MuPjNQx7xJsC5swGYcj68Q5ZhfLvYISAHs2rBSYlELLc2d
sxN3Cwj35s/fDEa1yM7RXNnrJ/eMsTUxOUrYeTJ/PjMrkSzJuL4HlqXZOa88rDimeVkM5Cdm5I8P
OW5rVkWFSDdnC2nNrUibdSGMsYrBw+8XMyv00HaU7ORFyZ1GLPRqEikguCqzay6cGL3rpJiIkKNQ
qqIY3ryqfbUqwhC+YqEXARIUCII3QsCVsECeiajtDlrT64wbQQ2LOBozDOoEFOtrUzhDs77MFH+D
pt9I4AIlPEqqoZWwAuZQLqcB+99R3NKhSyDwNajI9J5VaG2NjdVQNZPT18YbT3tIrd9PJTTMADbM
ptsE/5RaKQ6a9bnc8PtaMUc7qfbDelyp2E3R8lwBLLwLq/ygaBuDVUkntA4D2WVQbYDBVCwSwDuC
ftH++p2N+97wkS1iAWGaCdxp0fRSWHlzUqVyUk2QaXOkhdb7ucxJAUquXiOBv7eArEUDZPGAW+0D
btaqxdzvGvj3G67GA3sGjWIx6Pv7yaiZvwwf5iL8eb7+x3T7pwa5KXk1WUMM3wzxQoYMXAb/3unf
pO8XCwWWZYuMf122qbXBOqfJpdMVN6yToBnhRWiVe5BJsbKNyMHuFxdIvdsWQs93tYgrY3EL1kUD
znS63GfgLvpfyFL0Pcf+oOnFQcWUmcX7c7n9KSVzMwaAQ3zyBpFnN9J2rNXQjblUybl5kEq0ieGk
kSmnCmsgaW1PI+2NK+lT0k4iOE/MM+RKnoFHCUEnyNG4RBiukmIlDtBxub+9D6cUFMpfcrBZ+kzY
3ErRK62UzMOUoAOuET8IXEZc2G2+r5uejn3ndVgduIFEoBycLsMRCxJ2xED9aoFHpvVAnRdqzO4w
aEo0vmwlJIUHvkB90L5Cb1aQCbmVqt+CwM1QIKqH6zjEcQC1JKUicMh3hkxLoCLFknz79q0OPTm9
qiWve5a7ZmUKGAlbSCJjFZnCHkQ6YwMfLcV0FlZGr7WPirXAZAL4wS5GBtOCjcE0G+7fedwRsWMl
ZAGQnBx8K/BwrWbTEim3nKWiWP8GrAKY3lAR3oKTVC5YJxU1LfcFmmxbGaXoP1at0qLdWsZ8r3TV
V1Fu0pHMmxmxrgD/1pb2J6Kra2vs0AzZk/9RgBKtiJELC47M3z8RSC5dIt23HP24Nkiz8XZH0EvD
m386ztqK+1JSguHkXCIhVQbl7z4kBLuaA0Ko07leslCLxczML05VaTcbW/2RleD5fiGHG9e0k6Og
lFykcIt8t+VdB9hItRnrPJ0WMtY8SsHhNiizYzCcivh7bMgzVuqOsszWcyvvitV+2EiLlf+Ih/3+
esUeWYqk5xB2SFWsmUHUQRSmoWMFrQFyG+qlldPdlE9kjkkB1AYWXV1xr8yLP03PEyTrrJJLwup6
CWfr6qIOHHKiuAh5iGgohGtiUU1gr1BbKL3Yo2e5SHxSNuWEbI7/bVkd/y9F4ucSKQtGNxAcltgW
nk6tGJvGw7VyZp16H7h940NXdAH2UAL1fSVlQMPpQCUOYMWezsNFC9J1EseEuUpo8YEeXABJdwfw
w/nDV0/aXNliJYdizTMgcIPwiK5V8+LJgnqRzcLntHF68PfKbagkkxehg+Shw5WA/lKakdpLsnDj
fMLfHN7utwS+i0URWSg+MMGxCFcxu/1skGC2Ukt/DsS2osFO86IWwbpUZbhZpo3P6aKe8THwfoce
YanESnnBPx66o961HAQ3IhlxKwTnTLFCmqAWyF55LB7AOCcFPdU63L7PJJzAJ2vOtdB0LRJerYKY
TvaEhEWKIC4lR8rafqRrNAxHzykwfHXbhs/DvLvpohjuHGuMSdtW5CJ4JGnS0EmFdIR74ZTMtmXg
Ux9krpUgcyftqOV6wPLt8fxMVCl3pRiUVzaBrZ6v7CIOkWf3I5EEaTmWMre1GzHdNK0lYcY4UzRC
IctXiq5Oby/WYNGKrzmsyl8cTkyTYl1gxaasQtThBSwBDAZhVJu171vJqifKCl53kERXFiJXiGUY
Qztixagqq+pD+LottnY1LKgpxj0+f55tK0bLCCZYccc4NU2Qak3Q4K3oqm/XSeUq6CUzdRs4gRom
88+jovJZNJvVxRgf+zgN58Onq20LlirCylujzSWYJa6PolZaoRJHyVfR+BDDSSTiQrWUF7TQWBJx
Vq8jW10Co9yIkPa9HGR93YpsX0IEHA2n03g2Xsev43VOgdC2xews+2kOMUEUlpVh4LvNVDePKp1S
srQQQzmbIDZU+qdioBkLpLEGxqH/M5zmd9q06bInolCExXBlSshfj4qELyX6pPlC1slN4yLtQrFs
ES0hlxlJL/NmzNs8mQc6KyRDzC9jwfEIm5nyZjIpsESiYH8BjlHveej+PpI0KLKdE46AoVP3aSAF
d6agiFEnqSt4jpo1JoZX8z5c6YKeNOCmCE9f7/jycbm9jkB7QFHDRDSoSF9zK6mmG9hF8dvdSRwk
EAgh1YiyxTVU0mCdDDTtAW/esKuUk2+lRE+YpVFS0oVY64cC2nrKFPyLttIjvzTbkRhXMAhlaKPY
WdRZ3Zg/i8t4kT15QsrLDYRr0d20LsQFW15d5/+urAbvGByPd8UkxZWFB8LJPRaqxfDJJCX8wDQY
Gsi1iKtIFcPWVcQdQxN0jaUmMoGVdM0tE7CNFQzXL6r8LcIhAsoTqnpUtqILip9Xy57i7sZRXQ63
b5MKj+8lHcnOIaDjSNZP5TIxj5UcB7Oo64cSsM8lGIidwD7KvbzgPLn+ejAwFaVOUveDB6XyFRuD
zr/3VL69YlwJHHifC02MnDE2RoZRI8ICe3kTEbMsQk2weZYUE7LpEmWlm7KOzm2YFVMq8VXeiHUp
rHAn7Q1kXaNUD1AeKlk7UMoswbYaLU0O2rfS3QuYg4hCC9BIDG2qwBU2+DEOC1nly23++abzH1e9
zPu8g8YWLfoEm0rB4AiY3y/D6Ov7sCzf5uspUcHVhlQcVhI5cfrJdEO2YU0o1zvliibGPcwJXSdV
gIcYn7WH2idKJzngB9xD6x96q0Tx0Pta4m9nZbvD9fia2us2TH2wwAWlYKhiCgUKgF7XpSmCW8Rt
zReUmdcEOSmHEfo1hVVlNpOvv5haBPjQVUeWOgu+TMERWTiQjRNaXRrHvmiTk3C3QLsUuiGvQpxK
7cxHlxqZeVxjDxsNJyosUNgWPsfhojlbBsQdFHJiGfnGQFXATDzz5YVcNE2hWyNF3UqQWxEnVivH
z4u56pzI8+PBPUis7cEe5WyvkPS42JB9ktVnfK/hScufFRyX4KtvtixYqG2e5u+Kc5RL9XJryOuT
TGFFxhMUEMvMU0zwRoklKKM4Z5APSAYEyJgHw503f6BsfhXyvUVxAK8TlJZ8AOeu2h+Ae/fVGvj4
jbSnCmlBU4ogno2tdh3fz0DWQkxqShqJWY8MSskAcOhaAzyW0Y1TKCE+RW7DoQWV+3DLP5EPcwRF
QkUo5BWhXj8aJ3hUClHYTcey0o5FcUiSQvjt/m4ezlpzo7g7fSZyXrgLD0Ymplapst/xo2v3MxNN
BF9yQxSpinHWSjkEB6d6SpJNMlMCpFZRSYBpjOIM320pWJpLXRQLz+fhBbL+2DDucvAGuuKohGa5
NcNC2W6ZsZHJxraaUcR7L2E2oGAIGuQCxBy1vAX9KYCBQjo1vySNF6INWzfUAk+pnoJl9jgjHNtq
geNsbo6S72TV4IjYKDhj6hbcp0xGZCs1j348J+5enlfS1Z2JsF/jzCyyUBSXEVvfVoL9MVH9nzOG
Cw6bxez9jsR9J7ISrroKrAWt4Kvg5Q+Eks0FXnwX0EcU1j+x0ZtKjS9aoOvWWM9cZyYtpNhO1LI6
jaNGACvWED3CplXPo2cCIbeE4XZSR5CTp1UvpDzjXgqbbTZ8tLANhL2Z5aY6szGrnVXU2rDVDoRl
xl1Y/7A3prDiNVSSYl5jRb9Ml1/2OGK1TFF3Hj7M/mLXwxV+dNjlBWeiiuLs8raTWTzjXkrEj/Tj
oHN3BDF47NdPwlwX64jTMTkMTCLKmItG5ffl7Fjav8d1o2h6iw5GqdzfYhsBaITQws31H1NCCZuS
1zAInSsyk68Dq/hdqJUiCIdE1o/lyxnhvGqUKiZpKSU5HviulNtRb3sgldEE6yqIwWujcGk8CyWS
8lu/e61t+5wJWkhh4TAs5ePDiYuciYQna7UXqkAgmOIlEcqZ9tLdDqUq116H28c7NqlKQWVLUSR5
mJ+ShKs26cmcs6BrajljZ8ciUnRiLiVh/mFcUpi5rOn1PmKJKtkyE/sBAsbZ4yTQdkzACPq6lELM
xpiHAgIX2xqcC/ftOlPSHfDeceRwLaKYAgquFPmW2LbxNEO2ZQaCkvOwJH2FQsSCPhbeawDJnNMI
4u2xMXgLQ9jbF6HgVjFLakkcYImQDwuOo5SjN4UFAjbJpz+eshLd9WAqkGm5QgpVi37wLnGsE/sG
tmscMV0PMwgwQ3us8C+LmfvzdX77B7QuUaACnVRw9dBpKF0FUEuPC+HaJKctvza0pbzo+Dmex7Jy
Ci2dhZibqFXj2ajFC4LgsYG0Udi3gxxKzLHVlt2vOshMnUZzJ4+UYjmP3w9P83eCSGFLdzNXsIYW
AF0Yrz3e5j1n7efzOjDzLcTFTO7dqABK5mF2IT7VUhzobbrYWZGn/g4sGka1jBAZhIba0QFbZ1DX
AXPDM8iFZ7AKQMMRDQ9YxtFxahfURTOl966ux8/9sryahwBB7F/scqOjrfVFrnG69XjhcF3kNR4f
oTP182HyDqdgdhnJ3PByREfoXJ66DpKNEBJ9uc53xtlsxnsdr5HsGwxVNmw5HmZCkFgX1+Lxsnhz
Hdydxs+sbPEvLaeIwsP7/jpC2Vn8SrZ+g8B5dc23bR3r2eiVOzKJfFyGN8idnT+g4ke5SpUTX3WA
/XVX27zQNZNp68LWqqclfj9btlZvw/qXY/7vpl2lxoWUN8RjNl9ltA3KxLco3yTuOHt2rGrkfpnM
6S3D+fCK6u/f9+n6RbnUvX8iXks8dI0DJlVwUix8iu6qhYnZ03A+VPzyOoMhbEEf3jgjHab3ZVrw
OI7xq7KWNTpCMnuwy3g/zQc9HYqTKTfytYq+pMW8I+z1rrylNrhlVrnhJtGVXxcYvxOd3x0e0AVJ
+SDd6Z/H78fz/WQM6dW7j9/ZuvIyldnDyHY+P6NBfrCbdzRWl3L5nS1ZB3rz+mKMWiOT4yfWtXUo
uzrGIvLv+3gF5LWRMcNNpZ0kBZFJypG/6uVuVMML1l4Pk/qWu0Dk2HjZEzUooydtbIJzYkYlk1y8
odX13eiW8fSLeZW35ZfEquomPCKSChfoRoK5GUiuTpbS6m1e4lvdVkzx9aiSe3/cNNjOwy7Cw6Zh
SLK4mgcSDCQT4tebH1np+VnMPoNpcAxFL6IFwb6JYu/h1Nc2oHB2BYb0iu0rXvW7M2MO9+tZecj+
NqBxaSFcgKeGjgZkz/l/PIzLcTCu7O++y8xqTedZ+1j7qyxr4l/kIQFeZb8oo1+0XUgCV23m7Ahi
lVky+j5f2ALiM/qbrbyuPP6FZ71jmRMokIrOyvM6MqeVbz5Uv8c/95x9TJ5mWRv/gnFT+nwp+0F3
hYyUi47RhIfhtrKKb0z/sDFOmGEOAV7GCtpKSJDGa3MGiYPHZFS14wJK2JhVUYbWTc4lIhXZjZe4
mi87L8YYo2+sFC7nxDR1EACnXMVP97NllIoLFyam2MnBuu/gKpEYZ86I8XiPsBMpe5Q5Ioh5KG1g
wF0EkMjk3Uxv2NUWIymQNx2NRrscFXnYZKE3YeFYIAqB0kFVpS0zfsB2z529sRgFcRvfnHDXAmzk
kDDrj+KA9pHNjs/relrhIIdFs4HaqpD8CXPr0W4/TC/Ae4+uOQyhCPVWshKfjRI3HoAxrOESjjdV
M+R1WUu2sd0WYs3gJXtxoyUXXVEke8CokPr1WvSKYhKF0BoCNLflam72kuCIxmEKdkwg7V3LBKbn
3BU3d/FpMMtUlVwlqeIzeB9AQ/Wk+T5N6z/GuFT9aC9Rrug8Xl5umsXEZJWvCY/VBOQcalsHTCRH
4zFQysNTEsZo0/BVZ8xa9zwFYDWaV2zMhVgxNX7cbOyYYP3X4TRhXP9yuIwv6EIpcjKTfPnjfEbW
3evVk5huzzk+uzyXvJqIizWYeX5AeJRMuPih95U/KzyEck2/Die0KelloTEJhBXXQXe+qjJcepOK
GCmuQBM6sMUaK8I+p2oHZBQVgQwMt+wE2WXMS2GzDSuDwKsDgxLU6TBBdyzaP2X7WBAC1ltaMRI5
l2fArd+ugHEz/ksMEUxeMNPVPf6l5SWeJGeooSEgst4hZ0F3VTH62XSRlKrMMt83fYZCXmqQF/f1
i5XSog4KusCDvZ/QogEFtyTsmYYvz3cJgtimdavhHNKhzjZvQ1lTBP4ioZsASmCO4iM+Cn+w3sfz
/pnZF+PEvl9H47Qru9uHAqR58F3XERWvVbz1lqXqbVhsdoC6n4C6PI8vitFWZEzPsQFJU9pwDw9n
+KcAQ4rvKitDAydbCSOIKQre+UOcKTZauX2l5SYkjFhOMMHgn5TX3rBZ1Wh/Zw7nMN5IJScuZdXl
km2BnepG26vB/oMZDnqawyvHjGrkweA0miLk/C/5qFDxDVG90b7oqEikoTY+yGYomA5GwKFIQxml
CtwvVx86ju9aXQ992kkk/8hkMX8c3ETi20yD9KE31qyCLRZaJXeq1PaRekPFjAwcoPaTZ6lxN8B0
OV6JKRMq7xfpvtIobPcq/EsnTGS5P92u4+hQWakdyaWlvYy3H2jQ/xmN0NPO5NK1WPl2bKP103o+
0dw2jcbua7vGEx+3Sd9r1ujC84NsD6tQBujDxgO1OECmDCAGMoK3sgA8fIpw3tLBbOInbTDI6rxT
NkVZTdWGEQ8yRRw1qyXft7fke/xk1E0NZ6PMpZNiQrZzGV7a6zhfX1J3tuXvgBm5/sL+eb7+iVb4
h48fNQHpNwd8IOsCFdaNizeeacpWkwj+pqoh+oaZI5uQ0uNILPcmj7N5O+GMqIiKnKjE7lal1BTE
DWRz4mtQIjVYHd6+wp64TfNYzQN2iflnZ1SS0kvegjq8kp0DsoDJA3JGO75O+lYSNJqcYLLPZz8G
YyRfp+XLKvKIGt2ewBkZ0pO7xqKUJZoqlay556d/YQVZQsZvAsZ1dLWKUKv6UNKHKsyYmP+MBU/o
c9agpFrTm6tawAhBSnzUtRRLDQWzfSaHp/vLoa+aSjm/hvX4ARBmmZdBajgrFC1TFbqSkC944qDq
JpSPvlEN4jISFlK1uY+Z9HDd4ijvY09esyGrSnxmxAlKpPNxih56bP2D1CeYqs2FuqjGAWr83obr
S4SuDb38rJByywFVlsP//EmhzCKjmyVmaoTf0qX+4eef/3Gd3iaYFKoTyIqO6GPEvYCyzFniaC2E
p23/2YrLv19+MIIpNbGy9U5hDVyadb8njrMoIRy2a6x22Ll213/fx5GFbhLETeTcya7YFlaBkZxv
r9ON8h0KqKKTwu0UPDtQrg3tWfSmLrMVqwocgjl3vpZkLZA29unLBcOa6IJe528QGjIisIu5iyur
KYZEMHHZ8AjwdQRYBIA+XqNeGaEE2GGA+190uXc8IR6ejvPVfSHtvktB2NT+2wvwLGn1xej39134
pFrXaufswq6htj/Eo6muO9YmnEEuv0LsR859LSeaNjfKdhPYcaN6KdAjhskP8ILel1T/EwqclxJk
K45usWGzOMhFAbfk4bNtWdqCwkNO8Llezhe0C+J7HAlabW4wlU2ZVxJDQ+Psii6YnWvMgAL88DTf
CKJ1fVv7QOiwoTZrpLuDh7xqr1fIYCp4kF5MVkpjQCEsgCfPymAieoZH1bQ2qRRTE6WkMQHxHlyQ
5+4vGsahZcEllvyld3nbsETGL22ehfGlXpSGeF/taSmR+54/LBCE9mlpt6VkMXXmFEN4/jR+nY7Q
/uEdbFmMjSuheZb9yqleIww5rF0GtYxLw4CKyLCcb3NfkFh8H4dbCqPTiEnBNRR2mK8TPIc0ELQI
cTq25cOEPC+rAF6Uy8rSyp4ZneUsdkYzG25h+dyFUy2ewH1IwTfbvpQeoy3DOa1iAdLc03G66bng
jsFoWHsvH60FVZfa5ppZVojwK3daBX3cKmD7TrR6a+qvxKj7bf4yXpaU9qs4UMvbK38l24waa0Vb
auW8t3No/pNRsQKWsOb/PF9e4J+UkHbH0pm+sW6QMGeZK8RuxQfj0GufxQ8G26QNE6+uLjLp1e1D
mEKR/3JTIN4dg3hz03ZZzN7ZYh2/o2r3KgIgV6FjUK0VO+qFdx1jSUZhGWcuW0RvUG6BjPrWojdr
HjQ0DkMyIFtcvbU/h8vvlq8vsuWZSzBjpxQxuEkBPe0dtp2IiSN8UpD3t1IYabdSQKVWSjetqdDk
QbUMw8AqMdPCIY8KB/aMkBO86OoHG0LP87Zt6LqVQbMKcsN3wS5LhuMq6S+dP3a3OeZvpjkamCbR
0EimBCtAGS9oYi+juagnVqMCzTWhwCLaYTNnvaU3wsJalS7hzEIFlAWDR+1QU3FqNMrbskx0i1CV
bSkI5iwggqRUgTD/y5Yx7bssueI88VIO6pvhCEIxpjWuwmYCoOJ30ppxRV6J6VfPDKY/p66rpGx7
BF6Af0xrvqrwt54B9lkg8Ho7g/xynCfKrLLQprCBEXSGbHjbbDNM8Ap8CUBwfXOl5gp6R7TiAiAx
HOPTdRy+KCgzjrWGLbN0wdYDHCh4oYAkyjKUihaCbsQp1kyBQEzBG9o+C2W767SBgj0ZLyZQfSE5
YumrXShXm506ZhVcWgFwgOOKHHd2rnJSG3eoYEXQtlj8nXIAysPopWiYf//Yo801p75NWjCn5hh9
BPM5fwQDV4MZ8l/Leh2VKZVSWNNeHAx52ZgBiljlBvUijgDQbIC00balyrrQNi4CX/V4v8IEMASp
qNAshMG1G3foRPQpsJrhbbwpVmPP7H1MUldK+MbHbZQ7WITuvBVoj4qLDFOvtxL6qpDE5BEZY1Zh
fTSPBQOYWCKoBPYq2YjZvD2CQRpt+P6hqakiyzK5EguFwXG+XiiZZIki3CnpHQrJGetDcLWtsl6J
B1Z7AmpL7pro3UQy837XMStatGilqI0NQRpBpQQgG9lCehlv/7DroXTAU5xHi1zoRhJSCHVjIQZr
2n5XAG9MHxC8otjeWaPtToS0wJSnlsin65oHYfYy4lKctdh6VYoejVnLK3T0IkcpETepNqVy9U4d
kyk6ppF1jL8/Po5NMMu1zPAyr2Ev1VAo60wK/jJ/c8NXqCSyqvBpktoYnpb5DFMli0YoLAAxApaN
d3bjbHg57xtfW+7Okj2wEGJMSG8A5SMDmvLEMhk7rkJ3cwW6K8L8RSDe23SeVCxeJSHAg1gDteNS
gguV9HrD2AcgTa2JoJdV1EUjaeQ157kDl1nmErDZ7w6EJJTXWjNFyhn0zPd/HaEgdm1ESpcBuO8p
gbTD6a57MWhviU2wGc+ow3rzmosCX6gT7LcN3dDDMjpmTazrk2OF2oyZK6jnvV+GdzOglq/j0GVf
Qrk2RXqB18M6zFwnJH1S7aSqEtX8ZyLhFffPsGCHe2goP5Uy71Z8JRgAeptnaPqiOL8srstj1UlD
ygUAdBu2zytJGqwvxrj7qnnflpl8JVemB6Bgu1+nJAlFzaDigL2sXVHLb02/NZzuoVifsiuDm+FC
QlwIOt2eXiBUeYMq8UGJ6vBb4LFwweNxPGQ6q0HNlXq98nBb5/Pn9XD/bPbxZ7Voi1t0PZM3q0hA
cY4P2jawgv5VK3e5Iiha6d7Z7kmJsruy31QdN6udvloFgEM2you8LsVE9/IUc6BdmcXsDJfh/R4z
J3KpLu2BLkVBObAbmq2tbOOB8ITnX3H3kZ4AWc9GJ8zPxtd4fh5TgaM62/igHLuip4ArFvJmLhqz
mdGTxbSTFukUSSysADAGxMeBAs1fxg8I8SihTk5LABACq0G2lZnYYjJ5WF2/SYH2Xpx8ii6h6USu
kN9CsKEkQdSSElesSuPvKHOppdHSofUqnndjkQZM4RZd2gYtlatfSTP0WgNaJsMRKXZWK7FhsPLd
2466zK4Tk2UWh0OEWAGvT0KZZr1kaOwJpysRdCa1emyPYXmHB7O675AY3ltbvq2ErTbhonUcoNO5
YhTFHOeoBIh7nuYoViXBC1EPJEqglauiqcVqQlsRCsFGgiEFljO5UUrJXitWlC9LcVg+Fqixhuum
wPi26qLf2iPBNVHkRyYVINtVGN/4+TwdV/o0B4KWkYrVtgqxeTRAjsP7dEO2mxM1MHaNLxJJ3kJa
7UMwBlSCEoppJefnAUjJUJQINlQrwSueQmLnEKVky5Vq+TBrb4eCCnf2vWNB+h6PFOWS4ozPqFRm
VO2IQAqiuo2LaqZGoWDI3BolDqnkJfIwPdJICIdvlhvJqABFsfdSjBADdNMaXk2LiSJjqFXWm45l
w1aM7Q0zE6h70fpQnLNahB+cjUL/GxjKtiEOFhf+tKO2kKkARnAOc/xhfZh/Mu7GD+ZMFenF1Zsv
lBeM3vH7cLz9htBaFcSprP8Rnq7ik2bSIj2H3v0G7Q3pBSg+9aYEto5iy5QH1ITOdekzAsbgJLbf
RMyu4has9+pO09df3s/35ZfL8PWXp/tL1fZtrkTWMykzgaV9xGGCTp2tLbWsJqRAkphCbAluMx8Y
vs25fA7GP2yq3uPjuXoaTPas7KSbqWHrVczD2kCoMr/Wz8+XaMjzU+u0aHZ+tSzyu5kdL2VQJtaE
Q8kH46wKm4COD2cddwLrrQ8zNpyN9epPqmKN1mFcWHxdSStGMwgEZ3wcGy3GcSAhVWeFPENwYD5i
NMoVo9rHnePFcsGUjtcZerMN6t3wdw0jg5E9o/i7ZXhRqjYq1pUAm4t0WDmXSdPj8CZlgnzTVsd+
MxRzaZWRwutRRm6bNf933IuqDveukQe0afhdI3bhYsvIDX4kUlRunZ8lI6R5fP1q0XrFWnBSmio+
kkuUz8/PMYh6xdq5rWKz1Ifbs31e0LFCh5gAsNGlc6x1Gb19f/3AMY6d8a8/Xk7jd9Cus7J/bMFZ
UNXGrrJ1CdJyOPcigGVnHmaGvFXOHUrvIBMH2QoLdsCbhJ9Ni/RXWFG2Ox9/6afDsNyPayQ7FXgg
laX5k+x7T0P+eJRg/IIBzYkOY3HeirW3K6glHbYjikhRsoGN03V/u+xSPbWXWQhiKh8ieM8DgNgw
9qS+tqLa9zb2LrrYGBVNTClCma/r3KUMx2weaMKXMAX23ueSCb8uLvNp2J/iYQsajIkXz4obUyA2
W63e74odSrstBv5xrUd222j/hbKLpWQWxHYx1oWQhurCnYuIF7rLcWgLbZwfC2lge3XjdCFaFcGW
lfoS91wRv2eQQ+p1s0AhXqPpleG25er04sxKNDWvMMDgqwt1MIrl7Fhx0Yd2Syc8XeVrfwAQG2wj
sk5JQ9Ha+lAedQEL1j7Hq+5DXZOyDQ9v82WOF0uSWi1DtZrHTPRlPkMyUcnBVKz5bUFRQt+EUZW8
O86QuU6Assoz0QXw0Dtlxf518kZtj7uoDOHFLHrstrL9E1j4VCq8lZIBFq1lPXdXz6/dmCyTtZb7
9voWybvS115JsYSu+/rf9/mmwpIr1poSx+BJwWCMCEaIBihCe74RB6iVATZmqLiKSIaoYo0CEzMo
lAHYG2sfsHdugEYZoA1dh1ocoFIGqB/2IBLEQ/v58zG8RqYx28eZS9nh5W0+aUzClZT7PGI39suN
AFE7gqK1hgGnHPFkNuLlOrwrKQqGvkBNVXGA0drV8DRBmsFVpiRaCFRhlDXkBsaV6VWXDa9I9YW2
8VSAUiXLgT6c9WmTPLmDuffizlejoRBrewiay8oJE0fXi/gCuMPJFHxZdSEirPa1mlQkbmwdgOSB
IwRgWOUCiag64SVh68dPP6QNG4YrnX1Dbw+ZQ6/zrNTJNBtckOv6fpqePw73wUKrsRz0X8PXIVGd
2nLsfL4mat215KgFrbRYnhT1RiVIZap6qwow2oWnPfWMmfPptB9v37ILwS6TLbzYiCfYdFu8rKDP
RKrpHSZBosxgAwsoZdy2uWD2zxT0tsgBsd5XjIdTDwIFpdBIVUaUZf9KadllUZOoTVtLGMTH9G7C
06IsbyfVPtN0UJPNz/bGJ8hhWelTC+V4XZbzxP/JdtJ2kkoT5X3FU7t4FbZIxLXyHQt248YmIbH6
EOrVBU8QSoBtGaQxfl+wLy8U+elFNg1LurHbenq+rJU6lIDTy+c4ZoWF5XnGy2VvIO/1k1oQ0tQS
kzhj0lY+zaXUNV0DX92cugK5hNLYNAFSwOxlLZF5r6JyDY+kC5KbbRqw58IJBSb1Nd3gvtiPaMWG
4jy3WDubLkpC7jKJfUJInCqL7SQ23rVLPKJcTuNRwYcyXBLLq8XpcpSROgkg43FJuxqr9a1IhhQl
29kBRWcwD2Yd8mpy1zwmXk++aRNWRZnFiKhULwWp8krKmFtenE9T7lRFLhWsRTr6KJW4tVxJ/RmI
pGJbcfxbhiA4EjQgxX8BQfNLClrecibrDG4Z1+d/1DoNcOL3LCB62RTLUF3IYZnvV52+uglqNm2w
HU0oPTtGBhnjqoNXs+1bR9YA0A2m+2ETpLmRWsX8Bn4tBdtaRlwkMETXeo5dFa8N755YelER8GCk
WRX6Lc1Tads4Yo3ffD7bZ6kaiR2HNflaSqd6LJce+pBEphdLoOaMs3qjhxWqMEUnFnVcMuOJbUAi
B095gC5K4kDrKpfA/eyqQBnqg5q0tyWBiecV5z79GzUIlcpUPkv6SyPbvJ6YkaN040eVZ1LfQuqo
Njw/m7uzJIrMmryXizYk+qhEDV6TldJYNJ3l/pQs8m8KkeTTcjNGqhyz8P00DDY9Xu5v45WVJWuz
7zORiIl1zHMYn4Gq2BXfUqyNw2DDUUnbUniBbwG6R9EAwxW4xBeYkaUaxv6St98nseZl0MuW9Z15
uS8uraIVTJccJO2dZ0CmdU12WGtZbekJWWAzNmn3RL0Ik9TpUPuN1cNErMqjToK1Dpne9jJ+FXFS
H85dlHveYGOenAol9ORvKNr1Nnxsjm5OB64qVjnG8I1e63+bn58Vlgox2snrDA+ewWlRXKySlUmw
nKa5y0eApj5Np+mwhnsT3X1bsV6C0XDYQa+6rc4MWmB3a0vVoFUs2Tq0qyx16Xd8qGReXObD91Sh
WZ2XItcumLCEW8RGXzYS5xoF6/6VMWgjhGchGZlisrZh8KB8vAD2QaqlH6XMUyJ4+m/3G7Z/0EO5
PCDI8gVmm27jLzZS+gvVsn6PG8S9RAwo9a15uV9HhdG4kQJSnBUDBlPucxleINqb1/H7D3gXp+WP
0wsIPL2ApckbMbwNwuXwPn0flSZsjP0FTEHnlqwt/HaUBrfMnsddWPMr/yR3MHXVKrYNyDeQCz16
qAPxaogRZM6BZmUd0EihkBDTugOBRzWzuZhVBb1snqXRBIdCadZWlxJxg9pPnMINWkfxPKQqrqMt
cVWa16bIpRgKFbneDmGIN/E0W1HicB/iOmKYEQ4wBwC+wm6UScHrEFfLEiYrQ5nOK9nx2AMPsHpb
DQOsmMwf3xU7rZI7fQpk62lyjIrL/we/abh8KJ5GE1Zgd1LkUSFkLjfmnK3Lx/mu9rviPXaSF7G/
rD+RwBBtxU3xztv0nTc6iSRdN9yR1U5iOgiJaoRTtcigS5EMimKo9Z9NKZaaOe+bp5aNU8fYBhPt
6hqJRFdjMVd4WzizSe9bz6o1s8qFq2qp6syWIrrnvCY5bk/zSaFJzcTMt8ucbpmQlfRwJVH0YL9Y
X6KEKWdfjfs9ng3IFAROsoq6YmRUrNc5/Tw0XFs9D2U97TbaGJC2uzyNGn/JugRLy07VWdeZxNWi
BIUaRVyJXU89BA7kwrfDq8abV3GCVWoraQ9opLZH+PBXR3Qb+dGpV6uMU92CWs66aKwVFDxAUK57
3Rbml8IiOo6tWICWR2shnYkZ3HjHBiVLmRVSofOOJo0btI5MBSEyMWxBquZ3JiQ6+XXcwU1ddqKD
xZMg366Dou5bMUoKTKFP0xkaZb9O1IlP4dVrxVbQyCpBRzhB86/riiBIUReL+SZ6VnSgniBb9WK7
KpeAI0LU6PXj/XX8LQxotSQBEi04d1n4nQQ2SgdqynighreAgc2wDVvQAecceurh9Dy7jRdmbY3+
FWEOCVJX/gY8x8Gmwht70UN48ggW9eVFK/XOJHdXiSEDgbzibuYSu9X1DkJybVylGI2FlPpHHgN4
zhg7uY5vSeAF1/7+UYf+3UoqqQeWSjYnpljWtrVOw1wVK77ONzxydYRESlGVLC5Vrb0FMR7xNi3L
yuib5MioJMNZ5IS+DtdRlw8Nj0l74RckWJ/G27dxdEpSC0pxehzk2ghhYS626Y4tZenWkgBY3gZg
oRveU1eoY4YSZmhdU5JSaUrCuBGr1eM6mZ95mocrUHS+YKNuBBemHOZOynEt/77DoViSKo/SURRy
Jr0oq4qds0zmi0ZHvXb+3BjURmDlvxg75ZtZ3y8QqjWS2vgSvyQj0Nz08+1+0lyyCp+DaMZgLcSK
1lGoF1opK7DSFZMhNZ6fD+/DdCGgDD148ZVxPDDP6etUDgqJQyPRCYmRGOVKedlcg3CubUxRIl0w
ZtTndbmYqAPTB2aJe3YczGNeEnSGfcnRDBXWZvyGjhw7SKkaKRerxt4cd0o89ua1BYWjA79zFyFX
1Yth8TAkEW9uSXmqIkxj8D5P5lIj5+ur8dMVwdFKpBHuQUB5mfV7IaClGCx1Ky3GteNYIQ1JarqQ
fNNSo/zf43X+Oyia28dfho/xuigZs7IUSTJ5r0cOxHIsjKlW673cv00JgdSKvd1I3ZJWqzUdlfrX
fblNzx+Kr1FK0UlviSDqCINK4ACeNYpHdscwwNjGwgDxAj0ybXLdOLpfxu+QWQK+J420hWdMYCPL
Kgjr7zGPynYjEvottMQR51tmE2AwVLEkpcgNhM8HupWpPXvKupd0Lj27l/GCKIRTEqJdZ2KXi9Vh
hkDD/ZoCZXa92M+GbY2rcVu7w/q2rjrcJtsGRmI5t9tJybf1UlDK2I0QtsD355pNez8pERlpChF9
77xwoLlbVZLlADfrtaGN+wXSodOzhsBs+1qSHi49hp1jFH0utlaj27FL0dRZFeNyCtFT5p8Ws+TT
oDby4z1XKXqWCaCEwwrmU1a2iZ03D/tOEXRU+w9WgbLdjfQYbUrjZAzF5TirdQoi0TGVBJCsUxx3
mXc7pNY1svd4Pw/qKupStLOcsH2dTidwt4zsfjEqI9FUr9mAYXoOdHId9TjuOhHdYDeK4RcZ3EnJ
m9WSwUGhDNemd0ej1rYQo4SWUS7iuPVS+4AoM7OC9m+lwiYloK3U7hUigAD9Gd9fSzebiqzKFHff
RUpZ7DShBBqW3GTQSOu2WbLp4fukqBGmpVlSmRCkyD+3Kn7Ft88l1PmzufPGav9Icwrnm0xT4SUn
lpH/c1D4yuXsh9VyP0apWAhcUoRowN75NZDxvADSDn7eN7NMxCgakRv7wYHBhSkuSyl12aHc/C8g
Yn+BOOn9elauRSGF/STHErVTIuJWiw0cNgn+HTGLTu6m8zLe/gzVLhjZ/PN8/U8NOtmwZl6sxnPT
7Nyo+vFE4UmjLdOFx8ZcqaRn8DZ8d90SNGRGm4uNmSLuQcLbZrsdUB/TUUGWVU1fGHdVzCnzDPXt
OkyYb32CiI4xvF7uSnK/5vTOvknxpwipv4zj+5KoqOkaMfa9tlpNNASvxYZ4rpyK63VqNIQVqYno
LKvXZoz+2/IHMoYh7W8kHkqcnxVrqinrBBgb/seczkkFAzEnAiX/Nnn5q3HFD68wsS+jxpUqKiSe
EzxBjaHxjeB4sYOkeWQfejVjw24MqODW5w1+cbryF4WXgjg/ve6G4Gsnc1tneWkU+el+1C1NXkIK
NlbR0AMH1f9GIc6LeRUApVM1RsthJOQc1ex1PrhIitpqpaJW8IDMu0Syh8PTdBkU2vU+K6UhBCn/
NL78lnZIDHqJV6x9bKqgRzgZWzcGZqo+T3WRT7iALQ+D+XwbXdUzlMWueEglKVarDi4dpS8HfAcS
suvXsUwUNxklkom04ojmYUGhxBp7TvdcsHJ81gXRNsih6ulU5iUTDXk0oaFTt63fUyz4VnIiPIFy
MlTBzHC0aLrH2CXEufQnzCkZfFnXmoNeYSB6x6YuEwuAoWEMtvJO93Ln7Rm8eRZvjndYm0UqKjuP
deyxKsE4xBc0SrFiVhGanSQ0N+loD+7blZIueilizFUEXgWdk15k9eCoDmNgDctxmhRkh0gpIGPl
MHzsGwoqoDne1bX1XV3JYPhU446awecZ7az91qVN9Uo6ETT1msNdWixQ1cluRb55qwUrAyygYX7B
oPV6P5Ht657Qm5UEOHHnZgXmzs5SLUdsdA8NcANGfMzqKYGjDRLaIj+uZzpzBG4Za+Xmy0wSlBc9
gx3laCGYvxarD/CZ1l0th/ijwHWVU6z4fk/xacmrRgshEE9Ouo7MrVlECZtA1WWr9nBQOjbsSIM5
J0dxb3oRYfRYY5IqLimlaKt7ZVCDtpfemZSkWEO1RYkruPA23ujUGasnS2qoYXh5QAL/whJCtvlB
roh/5q+AyZvb4rVHzIO5heMzGvWWZ5YKV9Q1tqKXu8q3BCayy3tJuLGo3r72SHwWGNTLq011/X+Z
g/8hhW2qKjHU+hsq0VfDOpWM7mqxs8jbcPkg53bZUCoocrmWCQaQSjX1dKpKqqbFSN3//Xe4oD/o
BmVXKMwXLAGV5AOlayGyIJ7Gdwi/ExXK+B1KM/Yl6apOrNCAFvQ4Hb0HSS8JFeuuQJ7DuiwpKEOb
l5LF6zImFFKa3l5cu1d01t2/hbgvlVCtSSxFE3KIdOsh0qHeg9fZPU3kXmnGbdttmz91khFzmW0K
YkzYM4UYXAYX+5/TebRQASVU0knbiHWorus6LM3DZ3XMd8lSdJyaOIC3PuDJ45jWWpL515enwSj4
Be6JjuZtxQpyDVVfFp0SivXFAkontDyTwmRA8079bkHRfB2uk+av1LmY6nSOMtXArulWIh8/j1/H
M5GsgSOjOGi1ZCX6lEiSbaPrY2Ws5Y6GvBUnzerWaCfmfi2jK1jONxTTOnihL6U0Vho0ch6flegA
B/DU6/yCjs9aUxEyM/IwofvIwP50n4wNfVG8nS4XscFR1g/FbxJvE9VHEumBAglgdntJ2YrARSEg
PDHwvU00MwUd1W2uTsUDQ85AXRJsV0WW83akmBHTjGWj9Y3jZDm/NNM52xZ4FQ/QHIwcngg2pEBz
WHlKhvDl/n8B0bfD8KkVPlZscv0+oq7Xslo1b/4HV660d87JPeInMJ6Ejtmvug1XQ/1ZVJdea1hk
mdjbTssul5z4ttagH5ZZkh76PhwId7tBp3d1kMDDcKc7Sj032cnl60pCXQHXFb1oqFHu2mZWAMF8
VVHGIseABzgkLbWqlDbeX83l6wueAMYoEtE3hujFfnF5pLe84mO3kiiUCdeUCrJC7NGLaSraUlzM
v+8aWRvHfzxUd5GphNyLSqVGK1dqXD/n8dV5L6W67LfQQgL4P3Xfkz8vX4Jvh7hoVLu8DKLYkfyM
u4lrOaF/tfTNsgMaXUjQ6Pvly2X+dtkEOQjDrsewmQREYZU5yAa4HWRLULcuqmO13Z6ilYAchoJG
SQy7DTd5MDIMuJVQT01aJptLiCZEQ5EhRjuLGJGfE1z7nWT2YsX/9Cumwtf2IassdD2u7L9KmCJl
n0nhOgk1Ga/YNKZDJ1EuulwJ9qC/7QjWtE0h8e/EicIrhQSvlrw4V0SmQ2J4XNXXzaw+lrMoHE3U
QQOMM5KkCnEIlYRdV7xJscGuWB1F71IpjuIgjQJv/SOdQ/JVc83so+syEak1shTXnSHyoctVSFCA
1atXfI/fb3Z+tkO6PUKj6GTm1jzUAxbEjSllqEuxQYpPYoraXFJRuHTK50Fe3hyI6xGtrFuEUzy4
xAqyLxNLhhnS0Rykkh3NJVATFByTgDMP7nXQMIEMm4AY/toapBCy8oZMGK/XH10rRgmCEUhNKaBW
kXPxUZ6HVOyaW16x2AVY8rYGhlVmr6AOvPxUVKe8wSy0RYtsX3sGjdy5FNszECsOvcKUP1ptMrlV
rFboQIUZmIN/nc8njbuE8y+TO1kETi62TVU51NtO7N0R1P7PWNSuTaThHXS9UomyZdYKWybHYFQe
gxFCnW1+OolyFk1VRpqOBaZonsGFOA4axUjJwhGsCGBteGlu1k0tfGkZ5S5rRWUNQwyzL2Qf6gxI
bckTiQ12eLHGp6OEPEFPVUcMScxKSjFTmKLiBZmIKtS/LzKGW2sR2EWRw/f70x7mzToXGxZf7m9P
oy9GSBFatDwGkjNSS7TQEuR9Ja9jyBlOmclF/UhqJsOYhHhdzkMC1tkUIm7VCVSXucnyLGZkVwWn
TkYOw5LzBJLtTu5zUkOwK4oQo3YnHUMdbwPPYTHYdasTKwup5FTZpz70oYvHMyJHC5UEwvbmc0pC
1EUuQeUSgf9dvBYiH9HGIZtBQJ++p2rku1zUPywW8WHsgdEckXmwwH8GKfujEo5gggx819xl+saX
4fgBs4LsS6ptesNNeP9wBb8G3EbFsREL1rd4TnMIZvuBhpf+TbSkO+M4ApiWpWDgKs2R+SprayWs
dIxug0hpzYX7olFuFFKsE+3I1URWG+GS38RZ6AufiAseAs7n+Tq87ChOqMtWuqme847aw3JKDiWy
04W+Rrnlz2DtRZRC01pnveX5CIiZQBMjLfzGEIKsrywpOI+9oVjzQanJZajvEraqtFceR7JlyLfr
9PJCEk1pa07DNSL9o/nPLfME2NB7LOiGaQAEY1QW3/eJ0PVV05DGpq6lCssAnbOz/Ldqmigl4EqU
h+VOSoqpkGgWmGNm7oTx1v84vt9e/zFeofXkfNFgPm1RijCdSFpmOk1KNmajUgRjYvkyvbsApfrc
67JRCHJccMJ1zF2PO8WUU0vF05Y4/ojhy9NVKa1qmMhmnLfMSSd81J7S2p4F6hH31YQEgESDteI3
/30fFeR7xSNSXpegr72LTaFhOFmG1H6gL1CCUZUUddgYUASt0lzYXIJmPwDGsYBJSfCIZK4MWDVd
LuMVPldQVWJ/npUNn7t4006GvZZxb5Rg/Zd5oXUB03oOiOi8RyIy18AN5ki7uFaK6pZXJbYYC5gK
LvfzeSdpgbiXz5DivcA+oguoOEqNlIMOsNLkNAE0WesF1Ep22xoQvI4OAZjwXBjSEr2m2lNuvoGP
fTIGsrOQMO+sMW7yHG62oucDqfkOIb97qug6bCJhIxEboPttup13gtzLQq7/Q+t0h88fZPxX8SaQ
b+ibXVebkHAnY8i1OuVcUnHBDtvni9rOPI8paTsWveQ4hy1IHCpAUSedqE4SAH4iUk0CZ3lPKDgA
ewIq4YRiaXWhtsp5CAftSHw3QIulNWHr5L5plBX0zG7pCpGm2oR0q9+C10D4VIBZVTKOcsZUhtUo
ccdKRIrZvC+Aqg7IbKpE51sZ9RKQmGZZuYuxNJdInFnXPus4ItQUAiknCo3R0AoKU4Q2R7NcilnB
LK4OK9ILiSa8VWLYnZQpZrENx5F7gPxCguisLEPazpLzVmFK6bSXvkrUidHIcaVEjiO5Zub4K3af
WO5KYBPHGwLW+hM88WTcuROtdigYcQEIvWq8k+qdFTCNAuvcAkcS+1sq+1uGJQjuvZGcpypgJ/lv
jmo1xcRRVpuKnVbpQAVA+J0Fbw0v5+tXzfQC8NX9JLANp6+H0KoxCLf8gClnteceAcsD7nfNNdin
cRWqMOQSWoUctmvO2Fjt96uKcyykzDMP4CBEBYbeyXjNyfuCuh4C3WJxZYoBoGLYVlQ6NC0g4iBp
rzasavkda31+nyxTclWHEzCyKbvcSzWGp/vb+++RAwo/2liZ75NteQUq/TwbK/Nx8AqzNzQ43H+n
Un2R0XkcvqhcJXkn4ZIXc7u+fOAH9LcuWv0wSMNYj4jiE/uf5WwYvIKsv2x0HNc7nuQv2HIOFOIc
MBpQGYBNhLCcHZ+IsQmIatQiFpSBOj8QYZkrPpB7cTFgCI3RyLuy5ledf5laVecnwyBA04Us7dTH
rZ8FEe7yI7b9AhdlFbW6pd+uE3J+goFkBPh1+hWAG8a0vinXpWCbi1Z1Gx1ylXTnqzIguzdZ7Un3
bQ5rBbzg8HGh3bCa4iL0k9WpRdDFDSt1LbasAHbAYVmvgbuX8dIcOg+2eRlmyzM+IJQTpc+0ZweA
UcYs6A22a6Os0VOE9RDsySufsk0BgVgWgbxAwy+9CHaxbVB9uxFqQqRhnausxQd/6a34xOQTBCOp
5sbS230D/nvLpKKAXMUgNYcFGjkEZMoLAWcBkjA+T9+VoKtY3xp2jFWQHpVEw7wucbrALIwXP6qg
1arqpNoMnIRHl1E2SplLExZL5TIEKNl6qGLBbZBrVcWvMKMrSbAD1ZJ2f8B5KQ1tchGp9bqck7n7
SooGBCEVD2NSYladiKje9GRXa8bKRmSfWDGMI3Thvg4KcJFX7bTohUhVvGuoSU8xdLno1g03COf8
At0+xuX2C+KRFdegTfecCFvKxbPxrYRVZMFApWhM7ohmt+F1/J66JLWYLHFFnVC36ss+l+sx5TG1
fSVhrXg3rQU31qKok/z5hYRO9n1BvyPxzeugFe+3XSt172bxkwsKqdv4onV221JXtQHA6jJbQalB
o5padBSGNxfOVhbBgpkAq6838fW9Jf9tu2nVXjzQMxx8qlKpasrk7q3I7eAI7cDBwIROisig5MA6
3+ct4n0OruoMiWARlvg63VR6uZ7pFpTmtR5paJSRmIKB9JfrmP1QbpeiXRLZc4x+WZH8izH+1MJv
luMIGp2s4XvUciqjbM1zSNWqoGx5FaM1V9KanRQslSByCkAuF5ux+1bCFJlK1ojUHEQMb8yhh6Jk
QubhkoxVqIQ6SQjp7byUDl48v9h7JzQNY2viMDY2Jvx92VcrtwxYTcPN8oLqdlxXSMSBYDtNF0pt
/ZDgaCgD4+sBG3O/3CH4usz3K7LEDycNzc1p1H24h4LSz2tZGtyu0/RVQUuJbMLuYo7f368UrgPm
ZBA2H4omycN2LnvbPCYI9fOexaEYZQBs3F9H4F0LIU6U1U1kv/r6QbOTl3D6wCzO8IInit8yaw5z
xfiHxiqFGsIzFD0BHO17zMtxGM8ixCXEQOsNaxfnYg42/BEzhBuGxC/CNEiWtQecmTK/ks3P94TM
sj7+Y5WP9DCkBCRsUj9WeOeTibJY8rNhlY9FmPzMsnrv/vfyTzY7vy+LYH/W3+/SO9uF2+SOsUhv
k99gxmhn7kzyy5xFULy3GcsO0I/5IBNJ8fU0d25wKW9Qnd6gLHgaVstneZb8svKHwgqNY6YJ/djm
6uUqaTl90oYHuH6y9+qwnS3Z06+Vn8zl296kNzNyDH16M7NQdrg7U6Xv6WaDSvc2lAX24gLzTBE3
fmWO+hoLKK1SsfJY2dQ6FHErK8teEV7nwQvJ2/TVadgFzdnO7JU6dStfHUVrVCxY7L1VVWvUpayb
9j79qpPvXPrm1EW4pd1uoVHXsvJJa7oml69BWqpWVSBuyv0Kr+qlQK0qqOpePhRFR1atvDJF6teZ
LA7TgqbuwqP7rEKuK1lopNViFXnHe+Vxkz284224DkIFaYGSh4qL3ft9E8nq8Pt29+bnRSir80/K
lTyXraG0NZO38rGn3wDLEDFQxJ4DzzJZG6blS9b8VvmSbZ5fl35+LAUbfKKowbyTP0nKorKPyVxl
fq38Y4oQysvQKMw/qRlYmjG44YpEYtk6dETqtJbNG/k27xVFWWQv07okr2P+1s53WMm/HNfvJUsc
uuJoFF/f34fbK37BsZanEfHASGAtjmmG6G2MrCiD/ZvegPh6utEow/VliQ5g69FwAK+rcEaH5TK8
L68zcqtBIsf8/f18gvjnl8N0W3D0GOcNkmBmfnAWjaXBT+ON6NtsKTcFV6PzdEnPMhAkNBSEmImr
M/557z9n/dvvT5bcH+JHFNwi4GY0yIWDZX4wr8WGt6fp5Q6Eh9jE8BaLd+Ox+REYMhkpISK0nHhW
WfysHCcDopoWZR/bdQyge2htoP0DW3v5iwh/s8QP1nmc4fzhPsCPax/6Y2TBRmjtrHyTh99UFj35
dB2/ThjlUX4w9wfPigjWh6VNtfFf+kInt8/ah/5Ngr1jS82H7+qPsQuRr6Y/RO8AJa//HHtkNioZ
3m2MJkYvhIPHlIEc275RKjNDdvKvaiUz3jFRKKmxY5xJFW54vX2jw+WQHoQ9dG9eYbASxVV80nn4
YWZp7OwOmGncruPoG72N0NDiGmUtwFdeSzLrsqzbOD/9C7L936OLKaSNtNsRzwLjp/6d89ohJykP
XxemXaITaOtgU+wKqv/+h5MTf5iv1/nbeCKw2/UX4NnLi7xVdEInCc/rAp/mWVfmyqettJ/HX+HT
MtN/tZR+9cuJfrUqSuVTpnl87MDvpHqtcle9uZn0jL9sDLiIiUmfMgnUU7YZvv1hvlIIG2TtL0/z
fB6Hyy8gK5Sh/LMIqAzNAFaLJwbIK2kDcQCiMVI+9ctgTVHx0+U2visfdqHSLtlvurv7S5StjIZg
z4Ajf8wQZ3y/59S6c0nT0QC2PcovmtLOHe8oTiELWn7/crm/jdfpmJqCv0EAbu+68Ox+0fS9+bqU
tCd+fTQX6ZcdCi33ygmxUI21W43+Ha/AD6CoNofH3/w+E4Lj9+OIsBJFDjLDp/CEkqCSMFe0Psa4
6VSFptPa+XYBW1n5LpckMGnH+fYKpE30fH67jZyFlzzf7s/KthXfHnGSIygI0FO3b5OyM00v/b6F
dpOmWVVwfJBWskwJF/f9MJ3iH7JzYb1Qg0MF0Ea0UBbXX0qqe2PCJLR/Ldkep/l4J7KQKAUTLoJd
8WYVMvT79lqYl3K5gaiCjtS6+ZS7CmSaCDrS1oRca8Zi3UNxNuw2+P6q6Anii9lFbYB3n8lOn6A2
H96vD+8uejebTpJ+9wtVql9Wwyw+Qi/KTwcCS4qvvi2l792zXXtEKQN04R1t2fHydxK/XI10yWkA
Z0T+RvnR953k3zDx8TScknZm24fP15k40F/hYA2M+PY0oXCu1o53O+Ryw5wXnyiHNhMjAs/wpscF
X/3w8EkvvYzf8b83N8yczf0Ys9LRmnGQlT4A9ano55KTyvQBpdj78TqiCx5h7yx5t7senjtYhSvX
N/KgIBDo8G04n0ZzEZRh2nUYBtqDWAYgNe9XB5a+XalyQxkp83vg/XJbZvSDkRg/rnyCY3wUB2SF
USD/VdS0rH/fh8uN+g6sLKmLMpkmPJBsXZZ5MoBsQrbl4XiLFfrSKH4yDM3yNpwBMgREKdiFQxnA
1R31Ibh5Pd9c+e2K/TbIH9el1Eoth+dVWJZpCv6AOfXLdV4WaqJmDvp8jnI80RildL3H49twwIdi
DLAB9LQ2DfFAxuF6/jgMx+lUHrpG+dpfdhZIOc03KOFXPvN7CE69bVN5m3+OC1u6hP4qM5QWFdW+
GlmqXRm/VWByWiYfndi35BWP9jcrWqKD4UFM0XZ0epuWVP/6kneSDd8joE1/vJzG78qHnZ+Jx6ID
SdnwXWuRQOv3N54FTxZdCvofzEtMdruk3Mpihd8RS4f/wyi0q+DNHCv0u5q1//mNjbAoQ3ikHiY7
S4vqXwB3mvqYUbRBWrZutqRcuzrFFYzYEJmvKnERKVqvgqEWWWOExahIo9jXAt1E496CU+L5KB+b
xlqCokAWC9aKCTUeOxdlAY3EKMZ+2mEVrXBUfr6VRnILoO7Zg3mpz4NSQlP0uUwrs84HaRqw+1Py
bBjaHCtIQ+pLC2d8ml6UNZUhKFU+3sQW86Y2nlSKBlG+qiXiBbsJT/fnZwI4qxXWxbZ/pHVfjdl4
vrMCcmJt1LaylWjF3BtJ9J4sZJp3/mTPE7LiLMbYH7W3799JDwZEb81ZuKBArzB9H89JAdaLvdh8
kdczKDANqlz0It0QW8/8tBgpBIX/K/RBWxXH32J3uZwJIzskNo6wB6WcUyUyj++XZwzCztp90Uzw
5WGxlHlA2Ggbh5sYDaIyM7EVLahbZAzZoXcemWEsQNz5EAvBic/zExR2Yejreh0+vFF7eB4mc+8V
zoVCLAVgvwFFrc6pTZFa8VZu1kK1YQukocJv7D+oPZQLXujQIjgdVTv5qciKiEeDf/v2nucHO6rs
mqEccxZMG7DZutkQwt32UFHmVK+DBOCrXPnE/y5LfAiLKPYsIveL6JXB9gxV+KE8XGvdjziVFa2q
YYfDAZDKJ6X/xIc83Q9OF7VsiUZopRFiQJqCN81uA8EVQ43QJ5uNKdeKlh2bullju8JHMMplm9/p
177yQ3j0PJ6w+/34t/3DqWCOmJpj4icQRoCiQiQEwV5iWDdmu3MpD7xi/dWLPIgcZUUT/8ShiPPN
luTxT1xeLadAX+mUAzhaYDH7Osnh/f0M5FjUxRvrP+OdRGkFbDpN8uLiJy7dkG+uXa98UvtPPLyD
SrSpZwFUrr1EWs/iEBUbogupeKH3lS2g1IviaaBMPICiiH9S9OInea18kgf7mqjDoGPuwk9aXtT4
AoFpbP9zGb+59q7KLavDGXsfiTT3+QBGybsygJ8ME9N0Yqx1qDaHyl8tLmty5Z4UftocyJgr78nB
K/KwUCFXLnCRSXfeGrGW0v8pEvrAARo/AIs8WSKOo+2inJQdhXRENMR5MDqL+g6hIlZbhNNoTbjZ
trDW3BMkUnTlYbQ4iGq/KQfXh6dgKw6ppQqNqHzsLz5335BgL5oXoSvnxRzvSLG9/49djpUhq3BX
SvYMJuwOh8JHGYDRD3WrNRzTlxUjWV93z9VfdMqFrELZxsWj6+RsXDbXXSzai5UOINQW64NQppxH
5JsirHIvH3hbCEgnRjv30PSYlPN2Frv2TvXaOuThfP5Qrj1bbI1R2EwtAaK555I2ogDYyj2wEtIp
P+7HQVBzZTvHZ4Xy42UhKQbOLWQOGy2RpADJJBGdFYrkK8WV0736j3UKfzAzSP02u7E+qZTlihWT
+6MC2F2dqejjinUE3xonhXKVyyy4Xg6DdB4HbxuspKYkDJX2RHRji9DIs0qpUNZadOGDtmvNlbUW
TFuy/qdFvjIxKd+24QxbFR5PW1uJM8wUTZuL+xAYcUSHAEygSAOg7GkVnmy/lQKp+1fLNyNTNqmR
hJxg/2udeenHe+mOIf+p5bAk+/s8aqqpYcR2RFWlFurRETSSbF9r91F08BYvignD1HTNMlfsMIEo
N9qlgU6xCWW5ze++Tqf3yX0AxjmR/h7wz2Pw+yJjtQYsX/sEnUMulkR8MgvTh8l7huIHQyZoeIix
/W1bi/iMWPUCHJel7XiBmBfoCDxlG8BSmZwbRkZZuLRF9bg8GhB2LLFVrGyHwPvbNXISdtu9donY
OQ3jcCwcWXUT3zSNBblhPeYKR3bSbsaaLLIkwajcsKbgmzLk0/h1gtY+sPVA7QBhuXgEumHtpdea
uHozKcthG49h0nQYFV+5moOe8mRRJlCKNIfrBFyjirUthOK501x8gUxVr8/FD6gg5+h7dh9BJ/eb
74eFnbqyLj8NMArqLvXc/ErNRVfGbYPl1eoVT67V14+x3jtfp9M4+3ZY0yUpodpQHuTanNJ3O3zE
1tld+cx2zIeVxTl32Qbr36ln0nJ/h+Id/Ph+OQ53UE6n+a1kqM7o6IwrEqaaO3p/5M+Kt4unb5vw
Wwcr81PId02hC4t7C0eQ+58//eX/vM83dQq1VKDIp9DtmQIjguRpiyjvHv12+1Dwj0HThf5z878Q
T75BJ7HxcpTIb3Hj6kzCpruCrCBEHxuiLELgpKU3hQFc34nYl02IXMtDyKWHvcbqXrqg7sXKSp9l
+/56hQhuFD2WZ9Wm6MYiJZ+W9wM2mFBbEtAaaqk2gG1/fOtzsZ4NvmQkcrfhBeUG/Hl8qDqA5jv4
Kwxl22zMCrq89tvIMC/49TIa2XU6nMev49mW6UUnwVCnzHLEYcwhHC6zdg+rWoJo0jZCNnDV5zZN
Et0JGWrvrsQ/5z+7vmz//de/+DrPeDmRmVoebm7uipIIfuVqAJQr0kkIR39NwajHStXY972En7/f
nrvD8fV++bLEd3WDrazZyRKwGzq+v41RGB0dbKFc8WPe3Oa8iU+hDStYKv/x/Rpf86Zwit9o2+7D
P874+msZv4wX6vyspdxo43OxMM6+0IUq0hhEXX+jTfR5qA+DHb4Hdoy0E4Dohlx99OZkUs0rfrv2
J5wciztIyriMKMXCUzPSLxYiGj/KJjxKNgmrZ07QKS6+cVW4A63XL6mfLltJwawiSd33Kqyes9jR
+dfpfB4OVOMa/Vn/LWC3bNeC0w0bYFluOKfl4sqtD9Uqezi+v8yg7FsTP3xAhNu9v18nRfSVYfV2
0Hkb0LirrlYB/GZHylCE9Hwx2DZZUfN1/1AE5z6OsvLSDpRB6VfRbwRX/PCbUIuwDwOxvaPJJ00k
LF0v8mAih+PHNT6VLixfszaSJVbWimLMFWpFcDwUoRAy5Dy5Fn/n99fh8Ho3TgV1XYkvqOSdRvsg
nTCfD7YgbK2q+h4bomJIW0Su2xTQcD7aTDOFKqK1AzQPBpLtV6wrEGapIU38tq1CUHLreot9gZoJ
it/ybkbxkXoPjmZqFul/aXuxbVZiS/tKGsRsqetQDsM55lQAS0WoEkpGTrMBXMdyw0QjymogPE8q
P1I2kfgvM8w9u6+x1H3J+3/31sAqNiuHVOKirLUKkdeZ+5z6w13nt+GizLcJfzxX0Qm0U3Vw+R0F
NIb6RyrcGbVoUckoEXEQb+DMZ5y0Mt2w3qMqOGk7nIz99WezbMyis75jnOc0cRsrXsfh05qR20g/
r5xQE14ty45eHrAPjX8nC8mhJ+ilrUyNQfTBNuhsQGg9cS0sUjLiFtz7ikGUmh1So2GSr+f9sr+s
YZl4b6SSs6H3VqnW0d1YPt6e5rO6F35nUd2XD482uRmsxoV1MIqhhWgPmNTN10CjICoSL5eXHHEG
yHLPOfhbgLZpEd4BDetYMvIfPIVmfUjfggNQ9p2VSVCGknYeFuzaDuFAmG/6dh3e37XZlF0TSIOV
SqjYsxN5WCjSqAAC+qQKNq92rdpI+S/KPP26GcE7a3N4nO+qOVQybtzN/VlfwPwNaKevxrCaNMld
+HcETqaNLkvvyBbZK0P5y4BwtdbuCJlFOBScoaLCNm96fYeOYTzeFLZk7GOUN1izLR4FpT+ktbVt
H4Tg3Fbc39/3bagfBdNaeUyYaMHwknFyrWZZ4Q0ifCGppoAkJ7NQQ0oqSJlCK91U1yGZrLs1poRx
TpweCXLlAVThpKxrZ/wAwAfO6e+92sc+AIWaFKfHymQN6yPtrUtE87qjUfpX0K7WoWJvHZk9vBA7
/WXtHpnY40wyGZ39cx2fjSYkgyjaiahkdHgbeUBn9Yf5+3+B+Byvf7ufzz+8jpHW1iVvre4GsoDn
8WgU8xl6uWFFMRT2KGPk4VO2igXSLs7uQWvqMh/MXbwNmo7pQpPe4e8OT9oNaUNx3qloI7ohbbjs
RsW9kMTYKI2WlUgeCAxG/5sQ5bxekEMM16dEm7XvwZfh2yqCXvR2uJRjWsruR7vHIcxC0070Q/Yb
vaXsguU7ZlL3knsdQ9vQ5Jk73a35x6fpZZ9cazfn6Lk2dxggoXlfZrFgQPwWsTp6n8+XVPnzAMBZ
49HE02MlI6mnpwdvr3i8mdZrSvnlfm6O+sayre64UWxd9WpnxW5U0qkvAiOh6B5WtNFrN7UsvOzz
UHx3THxjzolakWlVyo7Q0pWnW2lJdhN264UKrpRV2TYPjxZG+RcFqSCDuiwQ7oRM5HC4L0oPzKLm
Wf0OyfcsQO86YmPs+bYADOPbjMuMjlMUvPEgRUALB+N+Gb+/IwMBdTBXG/0VTctgEATiLHzJ14pV
sJ1sp18VdEjBwSrVAyMhz2eBH3SLV/fgVjHufqbq7PJCDgnE8sd3izcOZTQFNsmEwQjYrsPRtgEX
B2lZTwomvMG8MQdGBezxj1lCnAV7v5ofteXewIKaOKqWN+v0tfN2R54n6MuEXZQIMj7GQStNt9mQ
fi3f/+t8QvRN/Fz6DVk+yfLT88vhbozMDisOo19zQvcS7dWydMwJ5i0ekVgksQ0du2YgdYqs2lw0
Yx2Y7cTY/6JcMIb58kQMjlNqvsbvZssYxll3QtiD93F8f53PDnU2wrkY644YbjAqz/95vlqWLuw8
+WT+HlLiX83f8/8svpsMaoaucr3OwxxFWcDvneb7ExQ4Xw5fLvO3y4E6Q0WHdM4iQjcQ5przQdFU
CjYaAOraeE3HJN7qt8FoRhtg78HJ7Ass35asQk5/slSxKISgPTW0zMGwxRzvVFyUjL4drU4LTMUa
WNA9wzF+rXLWg4FRbNHHQDFxeL/HTyJv/LaBtdL5ZZoz4IyYf382itBcjhHgZSflofi1gAPdrUVv
WOZ1mqB5pDmCy/hS3OAOmdN++oB/zOM3vvMiFbvhta0rhwd2Bs9a47hnCGaCc7dshIqQZT2FMJts
eVwcwmgxh3yFCwjwR2snKY+T3WyGfQGBydTIQjQIOlCw7TfIQ0sAdTrpLafwWJmM4JqDFVfHf5f1
LmFhF/uGVvl0uCE0//k5vhdtI0lruFsnYGHAFu72jcNrir8P3g6nxJpUT11kJZJ5aLc5fsi8+48P
lh8/jmd0Op4PKv8NWgmsjQyLjKG8O3+gDn4Z9UJ1uiBhHyI7k38tB14Pb8yx0fVlPLyc56fhrLyO
LgRJFus2H83/oZcwPX8cxvP0NmHzOoA8IoiMghxHcP9JlD1dh8vxFd1UIKKLbwZT6XmLf2m52IFM
9nU01wTGi29G3hbSFWci21+3ebmSzAXOAjKh4gOXvBcKFrrkG10LFbfxN1AzocC4QWFifkbGrBzM
X814XwcVi1g0vCk1oRMtAxDA9mGhRkjh4czU+1Ax59jMGHGqfQVW2qXMuoa1fGLUsevLhMLkmXY/
vsWsOxYEFXt/7cg0oLuk2ABsDj1LuiG/HttmtHOX4/yubArDRMNr6DPOSwSd8G7YHD1+EZlhmReZ
Tz2w+7zoB5O3lQQLxmeIvGL0jJ28svcbioLpN4ijg6gD4vql5FBm36ha1teT2ruRtDVT/y2YAN6H
AvMFEw+K41RJssyuMGl7NKwNHKNgwltIxh9IQeOkQN8AJ8cmwgW6/4L4itXXV7JmY6CRWtft+DRC
nf1CPa3NkMEBKVqtljQ8zPptWux8vG57ut/IND5oZQ4l0/VoNVn9tt4Ou1y8JGCmK/YMuyGYzmtk
dWAmCoEEKOaAJ//idIIi8xmou0XKOv5GONXKKxwYGEvx18J6cmEVQxlevOf5fFK1cdB0p8Lewv4l
WMuECRHQaDskddDTsMaC5trrZ1LHq2UIBbMnzYeoGQadxZa8DrLTO1hKYfgzB5FJAtzrQmzadb8Y
p9pME7OG7hUn/FJmkXgkmIOyXqHrBsB1kFBVm1HLhAkOxK/HqNurzL0GjKBlQDPTB8vkOig2RMuM
Q4x1tPYuTS/GPRhPjgAWjDx9I+qmCyMlK4XSDawYI4j++69/+Y/b7f2n8d/3GDc4iYhOdLNJUEHs
7jKb52HsrvhFZC3ZQDBbN4rsd3RB0HSwt8XIiSiWCmUCa2TI3AHU1WBWXSCG8TpPGD49GjH4hGkZ
es/ASnyMZohIlbOeSMgDByRooRt1gJ9wxjJqcwXRQYayVy7Yury2WNFTKjLIPmTHCALOOJrvyNU8
X84f5DIQhxNd8kkRqzXry8d6jU9v2Pb8NvrXBvcFJKq5L8dREYF100tBkNv8I4RA/hP/Gr/1DSvU
KchiYdazI5NGIYNMWmTHGOEMWJoZeGcuMdIuCkkwrxixNVnBXjNuHcZTvIB4IUVKJ64EHIqY+nww
+UH9E+TqfAb/5PB+hmZEB6q9VEI3TDJm+JfWUmzfMASxPkO0AbDjOWC+Ubk+nYfLF/8vojxFeO+3
pkD5cNOU+8T6XJXUxmorbly/I0XQ9GIp2lo4mmiZhJqU90DL8PFmfcPcHdgVCDqsVfjkLzp3Et82
gkvMjInrjkJ1yk+yfYNQatdsZIVrNG2P31q357NmQjnCqaIOCkJslPk8z18Ow+s4aMHlRqoYY9fF
CwwQ3qpdvb3lZZgEgPIboH2O0TXTfHrJSaPNTccrGuafPcRYNw/tipTtBHJQb3xZB5cF/GoWFz3f
jUpKG5Ils/3AaWo3+Ras/ojfedZyFDEocdccXFhEaiqeeS2FP7+NT9PJRkfeFJQZqtKMh/UzjO0z
SUlbS+9iilIMk2RsJG/KcxaCFMSFaVkOlmBjZWdo/XPb+gD1lBhDYXG42+tg1NdiZosVivbfx8+R
ldmzhlxoVTx9nQBh5U3Q50ExHwopOGfnDPlgMzMzLeikllJbQT08cq7ZyKcR7kewl14HmNlVUax5
eCPKAMpDE1o0M7hhfdUZ5pxZQhRPRtFmLDfFAhIbVxv7DJU7cMidRlvIh1k41eHqxds1XiBwefjP
n36Mt7cjVVeGObz+MXVlqbiRYRcMLOUJZ1LYz4VQbyOUwphLOWpaS3SYwZHCRP0wAW6S03PHl8ay
C5xql4qB8Fsv+RWrc3PqDZsQxn8SV7fiuU0P7+Oc9OlZFEUj5QbJ+R9sIAKoXox9sjbpoSQe2IZo
8cxEZYBJc98HRAkL+JMAi7YN3MfriDbbQbFkWSNoTLRlPie5TtTcbCgIHZ0FG9/FnCesEYpX8hoz
6qeGEUFqDLosxk+ERWM+kFq5xIgpi7Uypg1c5bz+Hfy/PP5dy/hWfRo9z3+Xl78r4p81nvWT3ak8
+10T/6b21J1IL0HvPC9+Zz5TZtj4z5iHaGaoTrD29KmMNA7W9bta+cpTg4LLzW7M0Yr6iSI2xv+8
vX4ox9GJk85+V/2uVH6+CHe1drYZ9IQ81H2f173ym568lYFFzP4W6vb632TS12xUpX1Vt9K16X7X
amdS+U1B05PkyB9+l6sXVNxJlF6reTBevk7X+aJx2xYrFLe1eqILN7csjPRXvm7CBXePliF6JNqd
8BcZzcPaPVFzLVplA1rx2cABaTe5D+//Kg9K/bumCXepdd9V5v8pl6/dCARSnEaIaFfPy54em/v4
Oaoyq2nFK0tzzJUL2LIr4DNUHXyjHECdRV+IcmFqdtkz7me565ZVyhK7OuS0rvwSdXHuBRjvajZB
fBgriK/zeX65j4dM+/E8oktgwZ3y41m45MJLak2U1NJG4aEo97Ty95tVAd4vkNs7oaiOf8sJw332
H4WzplHy4Cs7T1BfqqRsqvDV23aSoEueZ9/r7+A7/7IS6fgRicu3R6To4KYP77LtYHWd3qgRNs7r
Mh++GVE2QjRXmUIVqpuWv17NdOjCKfTB61W0Y1uG6qNc1Yf25HvxTpJdpH3XSKTyZBdpp509mB1O
XVlw6+twX3CrbVKPjAvCfB3oobo/i+WF6QFU0sLY+OZm2SYxnx+8FHXlvsnb39QnX3528sZF2T98
mRreTl/+hV27X0j2T+IXPrOCXrLlNhsU7P7nNqiVTBFt+M9cniY0BdpP7M2uvc8Sex+/PLumX4Wi
tdxz9z+1+1UtKem9v7Bri5j08mGMHcJh1+XxihD5+T5xN3ftfydp5/uFUIpQbAy29nTxxEDonYGI
VTakDVpO5P3eC79rQ5gF47tU7RU3u26M33KHSfh/H0OwxriEROnVBSX0JD3LEHVr1jBEoaWDujlH
+DW+1gGCJDbthkFFJeTugywQCOyDmgvqmoiFJYfnZwXR2fRiOQDLi7wOCJPF7Agl1Ka3d4hWQloA
op5runA5o4M/aPUPDDeHzLI1I8HDiHoKyZpLKSFMFZxOFuWoosqLmkGUsrUgnsA+F0zEfxuup2XN
WKlAJFbOAcZxnhXRdN3hPC5a9JOBrMFibi0rLW6NZaOF2PDzM3gklxfGJbso29VIIAzaaW84K6mZ
nqFnOvwLoy2EZHQqM7iyaVugQpnvCAYe3ufzx9t8fX9VWDsrxlKMbc2KvuRhJ4haIyoAKnymozJF
BifbXKr7Wrxgk3RrsQ/LssRnWJfhXSsdL9R5Ok6Ep6KztYKOALZKmL3NpJC/8TuW8W2yhXEohZCx
DfK3y/E6Kcn7hgki5lVYMfI2XD4A9Xn8Mt60tGYrcYP+c/6b/hTzkt15vPLxfV++ABcrRLVVXHnF
c/BgAOacBs1chKfpHIs10W2tw8xBtsWM2rTRD1RTo2BHc2kgl+PdgQZr2Vkzt82PcKayCyNwqZ8j
Vv0pWbA+KvfuZ+i86Br3KFBVpiyQONsH9plwOlAEnrrBW4h3/MAKjtBCcpOGVw7lja4QSlaRUGKk
0PyVRNT/8fPf/2bRstOzVljBVBJIXvNqfYrFGCLzm9XICnC6CtPfthZhQGZSfOX3i69bPO0oCcs5
VKBfM7Hr6QP2ajxrqHKGWEPLzaZyQcq66qY3V/ahpAmLymsARtJnCaTtEr++JUVXy6skGqxgLUL4
AiWXXkgZKAfO9hr8jNZaYO9QRX25/WkHDIPXzPnIsOWQBxzby1EBB9ThG9gUFyH23wgJIrGG3mi5
AnDJxHKaO+gHe1DDWwIcV7Ubk6gNEoRGWjk6e0QFAwJrgJLnScMFF6FgbsPLB5QV03cEceP/Uu84
nO6oWSMMJBTi/wC9fMEA3vNohjhqYGi2/6yTO15p6Gvw8mpsitvoK8gUCOUGHcTBrQ4uphTp1RLE
gb5Gyxlyrlr3alITnYIqWvFZt3mO9sYlK15EsK+lzUQNsLo5CfQwQ0xvirz+/1FJWjLsCOtGjz8P
kvRtvL3OJ3PSxiyGGt33WcOQFeyJYYpmk3/iGHfbuZZanyj9NskNDO2mMmOYJcRTzu+OIhI63qjI
d475q5HYxQJHgXv+eRrPCHnWOPpbhk5Dc6OWUvalUkacRVEGnz/zzx03s5Gr9YAwTwkZCZBciuxr
ww4jtjEz8jEY14sqMy1/hSLUW24F+8iSUuVj//DroHiaDDXE2kKIcD2qw6VSaQWq57cKUk2dExYo
fU9A1WD8VvJ+lKXm4az8SRMEeLndn9jLgkJ+DZzBQDvmClmdfjaS5ja9GekDdZTOX3LLVbxNXn3U
oWvh8Ld//3b5hw00/HEkp0aD0QbVgoC0ygOmhcVoWKiFugBDrVrQ2LKREH5X/vZaTGJoUGRVs5UD
XCWdjNK9jGwflNqLjdvfhaU4CBHTa3FqSQXItAaFwmvQSAUthKACyzFp2nQSjUco1cjPgD5Xb+ad
axYow/v3SJxu/trGBYbyhPqgvrzuw34MiG2/Ti/gSxkXevn3fbwOJ+gFm9ZXFatYKYmPvk6KDSol
U+RGIckNK8LWQ7V1mkp1Qx6+BKuYx/HdZ14TzgRjNsAmZm1exbC+CsJ3EzYoQwn2/0HYsmJlkTny
PlkCL+xThiYxykpjSVzQcL8ur9OzIugYPw3rVszqPB6qOxJlny4zRRYg5O7y8n9b0Tgq4tN4vOo8
OUXPCyCQISvn5izVfqltgclTzEIQcs9iquPz5bAzllPwcuQ6gJXb9Z3nF2zWButc2VIG6pCUjFwU
rLgAA/D92rsWKVUxJHecz9iLz8bllDV3ElSUOASAjHg0cx6HL/BIUb/rUVsWPMAoe8NjPbfpQGXU
RHnMSsKoTEwJ/3RhfXj1qFJtVSvygSuSuJEq3jE2cRo+FsBR532bpe9KUYmdm+j1AInQj+DH/f1Z
ceP6gBrDAkIUd75Q3HkxOSH6Gra+z1JqPqn1kDWj79hwKtjCJFSoqdPjheEQAWyb/1WuIAX/L5ZL
umKZ8YWQ2BaV7H11LcasOcrmbEBEWWIdquJVK2kYcRMDOjDvDepekuXuBQN4A0TOxklW2OsVXPeP
ZF1kWzZh/Yut+QIiMKUnYs6c/rpezRBf16BHqJtCrI2NVxMp9kUX2heVZFQNp5NiUW04i4rNK1yg
PvdyBDnzNF1mTVVzIQVQq96Gg6flH846UORB3dVS6QCdJVUurrkAxRuvwsgSHejvKbK0/F6NaOeF
eBscRZxRB3okoBLZRBgFw9cZqvDuv/6qGBMNq+bDE60D9DAyHyl1D2IShdc9mHcKVcPQX8X4iVr1
QydVzFmWH50hqCjzMPTTswr0NbRmjhN6vyHdm5IWYkljtAXzTTx+r23DAhaI4g290vuT+TtFbcq0
QKA2//jzPyEOewC1qezIptCuFnKxeDQ7SzM40RYYGnX1SLRoxNBEUdAdpat1WUVJJKzmpJok5cZk
kuqxlAUoHCkd7+ao5GCYxqwhN1XbmqQAva7URJXSM7AqC8tFT5AeWpVfkh+zC1NCmdsbLKi7DFj0
8jTPSmCfJeMxXlbuKNVOJb8aVtOWYbFx5e+l1/Xj7c3ILuXgGKslXk56rk8zULpY0WXWpznPOTPJ
OYp7k095OSbjDkXggdTZI7ZmV5fahhOs+CKMDbWTxTPpxDplzJdZqVE+STpZsSEDn9ZVuZ7ux/Gn
KBM11bfWkp+x4Q9Y0DYjUh4tKdeKbAyXI9nNjgJJwUZUEpLJlSCuFi56vBoQJ5cMALUYeYezyKvH
fd3XemSrHgmvhlYz3UkMrDamExDPDTcz9NP9Ni5GHJ/wIZwsra8SP21lwgVbh7EW3QEQ4d/3IeqI
55jfsKBfxA8ha3brKCR95sBICuJQxAiEd2ziwzq8LHVO83OcANCAY8dKVvFzR8leB4TVdlFHpIkE
EgRlWfk6ACatykxY1vC0fHJZrl8Hvsvc056uohSHw38a46NUfnOYKLSFuGfv9cdHcJWRYEj3KNsf
eD9P2gT85225gnuCvTH2zidO228LSx4/MrXGR3AVJeGTIXF3AT4IytutyLPDcDzGMHs5OmClPylP
hO8pvp7uz8+wUzGOCtondg09LmextikxszxP6JqDon8ZY9mKnMmZ3Elku8bT8H5jFLyJs8tdFaZl
r20ddxnihleh5QJdUDk0vykrZBcaW41CD1y29xSdRcDXfHVTXO5vysb7PWNEGGw0OwgIgpjfmbMS
+jyEo7qwRyyUjaty5VdhEsBxeeif+nvDnBrqoedIus7QzeaiDJLn0h74aB6SP6FHQr0Yp7ixS9LM
nxKzVm2kFAgm4p9mRfiwAivHkRtEuQxoS/zbZNh4sveAT9hYtWOkJ0/OIjEorMDpp+//w1h5fx3e
1001NhuIGiI+0+5/xYRnhaijR+kFvFX7pZc/csY97WSpGep+npUXlEtn8yPA435vJc0TPppYVCJn
1jGOAlZOkZWCYknKdbY33qT1Qg9CZ8o5+6vCqAy90jXWCXQEvGqwARJ0/royGD7bkvMMzVvNgRkh
oOwJG8ZTlj6I8MSivKrDdGvEDNhvAfiDgqFr1ywCawqYGWrGevrQRnIowtxFjtfCeAICIQAcHic6
esaKVfbbrzGHDEXu2PYta+d8Pt9RKyQnVWS9qMmZ4UXoQkVWbWyLRtjw0ydeZ+H1XVv7OC5xaXiS
SaPJ35RX2uRsiwoEIAdSaCN+Dl/GD8W46Ar2WvEvbcBy6hnuIPxNz0UR70Ue6hybrYJY/8rDDOmO
KM8T3XR/dIyjJRSL9/MnxCIT+77xi/1yOtk0Lt5OQLzGqZ9yxiCahy4kRFqukL3wD8ecROKO5kxF
54+pHHSxo3zTOYNQbJQi2nX7LDk2Ax/HPb69j/+G0wZrDv4nnojJWVnJKkpshQQERDCcokAdcsam
hXca7ncuSuyksPazkBJjurWUM7Xlq+p5TltZPjsEn+cJ7qvRd5+4r6Kk/zOgAMqC9M7bYLbmOyZa
lcedS84R0nilQ105I2rOHUdPJ7zE4fsnVpaHBkoRMamniwYDyFleKg9TdeiVry1A1JfDpLHHlIFj
ZsFt478VCcVvCzbbi5oYSrcturXMC+pWLwjJSoAY+g07xDjourIduXT5w/kkp9KHp13Y2ChaxYn3
k+WiIHFgsMTHreSqPNIxK7q6Dw21zHbP+mLZ87ASNZ5nyFkNQh7yr231vaL8mMWRg4ex3ijn6u+I
h9R+K7AQoo5pl7QFlIsOk0BynboXbReK91a2yVDfmZFjWVyaVCYdlL2n+i1pmRvtcy7209dBs51b
5hj1qzH4kI0gnBI1g1HO2Q/GuO8Z57oaiamZD2n+ti/lGAVYlsv9SXnw/lBY9iD0spIe30Zx2bm4
zByUayWUbt6z8/SQbnw0LvmZsPbKXnHWbAUQsskqx+vVFLZTyNczEWNJyoZ0LIiE8UgXkIRnjKWY
4OvNl9k96dWKVE68C590tZbMPyPboH7rmYWOD6bRrH3FFiiZj1bgwPwNwBhYlXSKos1z1odvE2E4
DtBL+MKCf4qs9xMBWedgrZSd+ox4yzop9vxoS+gxPqZ5fK7a1imqTn2RZZLGBepuHYOeM9TgGolq
2WGcWJ7cB9WUM2ExQtiTTIyBKw+wk+Tqj5db52McysWqQ61Xb7AGyqvl0gfUftZ5G+5t+j5qupal
DXwTmcfD1+Oy7DLXLKKy0QqJAD0+p8eL+JB22m8k16H5L8QdgERg/3hFGEO2nUWpwmlWO+SRUCy5
UMTGSGy3aXcOnzNz8r54yJKwa/Om42QYDzTzwG29YKqFUb1h2A4KgbtUHTCv4a8RQtvsQTdAYS49
bbXnZskgXcw4QDDxDP2tXaT6Ot6VqtyCQaNQIuS+VDnRjIjD9ajXJGuuY3xY334vh3uHzZ4uNgZm
bqdtT0dWzAgw4p31tgwmgGj7iutvG+NXSqsaxtLAIvO8eWq6UrMX27l6uOZJY4EveNM6UI2Ftcie
zPFDdAmSa9cRCIZ9SxjFWG5YhuCBpt/jlHzaXSmzYYUkPuthu0Q6fJLv+aBAldjb4br7ea3qRxzm
2/RrgtCErauFfEHbZ48gb+rDcjC2hVY31Uo9aMTHqHg5DePkRDhiu1EpWAyQZlPIGf0BesH953p5
WUCG0sWrkXqfLdia5Dq9QOOu+xOBH4cnAA9hWwoFEVuHvBxNBJeuAGFLCTG9d8XKSvtYG9WALcHi
n610VbgTWClMxjh0ED52vx0RIHo8T+8KcqyT0Nwsbq8DRfNSLDPbuChafy6xJJ2JuJfrOJ4+qD7e
CORFq2/nPUJ7D8tG+JortH+bzudpGQH1oEgX1laBtUcOqXcn6qyq9uKrGQUEAsWaZNMrpZahkBjw
XU8PC3s64EatvQa0sgCxXx31rpiHW1MlLnPQeqLEFlfV2uAVUM4Bu4HZMRXE1vY9o59ZdwoJUhxO
WAlgEiyP1RSU+JdOKvewj+yoiOCy4rh88G8tkuhfRoY/U8zairfLoBwZQ1WyOOjL2zABY9FBa43a
hMxKD9U1jLw1oXErRjLEalo/0cysYfBpxg2cQPZ9Ha/I6apA+5hl2HmcFJDUmqeFjdX155WLmvLb
+HQELbsGih3dl0JNkkvd2sJOkvOFkJTKBRSNEkv4dfgX1k2fUqW7bRHtA8sawBKGFmnqtN5CjI0E
ltjaXqsnFwkz9+Y0aEfEiyNLT5Eyns1zppI4SPRahYgHr0ynriTkpXvfmFgbnmwfa9xqRV6win7m
51Kd+NqAONXsrw7reJj6hApP4NBSXnfBO5WXQctOI1t8J8lECIpUObt/EI4u6kK4gSvWlTUfJ8+E
KlB1H5V6nDJrN1+zmjIA+jCdzP9ohaJ1RP8PX6cX7N9rLLWXu1YI0eRZwti9X+6A3YjyazeMqJmK
XSDs0nShJaHgIsh2EBspWQsvWWzTlBz63CGr3h5U8fKK9KJJSDEjpMqKsNGUvx04y1QnrIqVibAy
GiJJcf3xkIVMMbDLmOVg6UuWf19vn+SDrJgliAWBQd3j02zZ/lDi6O0dmbvCaLRPxoV/BXd1rS1W
iARECoen6fZtWig0YF7KGupWPN1SGgeMx5NEwq4QN7WS3HQ12OaZ/UtlyKw5Uykr7oADezVGonE8
njSHtGIEZAzk83d6HFEsDjkIYp3DdDHifSKCN/LsTne8w/cLdAZSDKpSaiKLxXXkNF1HI/+Us+0q
KcyGA4DBcp1Udo+K/T7a85ZC647KAjbRqUIUyMrlaFhZAyvXsnt6vI6aVs6ZuOE9VSlmcYVmWMff
zCtY8tZ/DTot3W/o3q2WWpaMNQizr+wczX0COp7D1yXdb6nqRFvpwQGxf6DYf5nkW3k+Td0Xqmpe
a5mj/ilc5ROQ+2HXNyIzVO93wwg6kJ2ualkZnxINK6Xmcys1qmMYMf//GUgpsORScT2Yo9njX7ot
v9us8QI0gbSqskjBzmdYHmrGsrWxtUIFmKp1qsoNk14VVqOe5svtT5dIdo0qlLvQgmo37NNKMM6v
gcpCGP3KjMnG4x6iVk5D5aNIGANHOJVC21dJ3cXUKiQq6uPsSqSRYk3qPu0TMM46VrO9YeYalpV0
RjFLWO9rkAtt12jGLehxIkZXzNtW4jlkxuk4XM8fKaXjugdtnChn1F8n5baxAC7+bS4JJg9LSHhN
FS8VbDBo01QK10aiK3XRSNr4fkEKH7oJSsAnV2p8AT5ABDoJ9p6Wee6MZt8Ya/P7QhQSt0HhouwK
0b91/jHbDMVHbsLMVBZanCxSk4gfNJW0n1at+0OeAGw8vysanFOPg3WROxoC8ZSxA48+tbrY9N/t
ef07ghqQMzVFpVKxMmpWHxUG51NE9FXXS7XBvhKUDDktetCKxfKhOrHJ6SXlUHF1h3CLZlv/43Jj
F81KzzkXeP3Y742aUQwJ/iKWc0RCcdvwcVDKx2sWemW4g6BHPHbDhb7RizmhL8YJOrxDOhtb4SXS
9aS+S+n6YKXBfFh7QSl8Alnwyq1xZVtHOQx/IlnRsnJ7Dm6h5hhJ/ZLzEEGYB/O8pczo1sJyGzao
UojwIVYkyee2oY9hDY7Rg3A5JB7TuRx801zVky4ZdVuHCUTBy9gVnWEMREh7WTH7miJXXi5h3+0d
kayC3VpWhLxFx+kB5Iaz03XrvXrsEP08XRdH+YY9fS37FEa6kShaoWmtRfwDhVATyI6CcWgy3Mwq
6hKSsm05wwQ4NhaOBBV45s0CtEEJO5RSJAXD2VS4etbaAYRxpjZjFDLkBalqnXm4G30D9WCfiy0V
zOoBIdsx5bWVYpM72j2Mk+xkN3SK27SIAr9tWAHUZiQLZ5jOmluRVyGnZpPF2hNYx/wNHFH7Rwpj
XSPt2fN5MD6OUUZEpDdcPxgLHqKCjM1jtB78BCuz+jZeISAON17r7JNLlMQ2HkAGu/MLfsE/UlRa
Lnl5u6w5uU8Oeu8Y4EGyz7sOmeCom34dw1U4z3/6/j5fILSuqMyGPSBWP+CY45OIsDzWjt56LinO
0pKR4+eWTSGvoyaJYpHkErnIOkaClKiuRDdhjQM7unFHC6hIs0YyGqPazLGlo35SVBvLrcLNqYoA
wQ8moMpf18Ys/m/AWUkslqSHFuNLIKm00ti+Yk2iWsjNuBYPq8KAR2RjJKudrFhMfHrYY6R2rWZ8
N4xEEwymgeAAc5vhgWwoJNmIowGnRqBL9Nmw+xDkgb1YXsazRj7Xho3XXTepgAJ0jU2ch6dRY7Ip
CqlDgQsrUkjjAG1JFPe2lTJjt3nZdLEBg2xNxSuoXFLnvQRMAgtda/vQSR0O3G/+uPyJqL00HuSG
hSHYajgv3Q5CumivKK8taUTMkhP2S1GZbehJsjDYjxctCFYHctWGJzHWgLyRU5IxuClyiXKWXgOG
TA5rbRPxrcOgo+YgNVUYxijySNB0DxCqZhaBLYDuN013NzfuMJ5eCJWo0Uw1UvTQClBqObUWKTKG
ZJA4esKB99sBDFduCYEV2kMyZX75BT2+X35RLp2YOkvx9u3sosbhHliBFaBQIRZrjR4lWJ6J2Uq3
qZ8L75UdZ7AEyWv+2rM5JR9pzpFv1BmuSHHvmX1SJAebUtAXdDxid7nx8DZcv2ivrc66LczRWcfJ
VlBM+TBHezUDw0SWkl7pJH69Ry/xbVrer6O1jRWHsJU6OTpyUBfjAXDAaf6meknMzsSQRP2boLn0
mFxPPuV6sRw93vd8I1WsyaQGA5pt9x/Ro8VYPQROFV1YSPYcCWENttNUUfiC3SB3qEpAv46BVqCe
wEiVy/iSPxYRfLZ+IA9YipvVhb5BehfbbSVubsvDgUxvgzND7VZ1hFTOg/TlplWTbxngPT0FRV5K
glhs9/mCsSvFReN+NyiPlgW+Yl0AIOKgNYUtuZWESr3k8GHo7/IyXpAferp8TfW6LZiVwSpZyQz9
/c8/KlHgTXcke7WgnwBYReiCpkH7FW+B6OukrRQ3lxSTfgph6ibxlYcOrJFyx0nHrBQiKeV1hJrm
JMKI+WqsjwGTjmBQxSlNGkYttHmjvmx2vb2nHU1xuNHI27s7Ix7BJ5ZuRd/aOsti4sfKDhQV/8uy
o5ByUpAHoPJL6N6jxU86xniPPEHN9uVjjNW67w5TTRuiCIE8ysW6pl1YCF2BMbLuwWZ6fR32Xtba
KG+y57wiZvXObJnOAh0pBu1i5O2mwUBtU6DH4f7yysprdiW2Wvb4MeJSKtdsvcmovc/Drx+Mb0m5
fiw3WK8IJjgC6ryy3kDf7QStztust9iqeKsFqhXLA5AApCwX1jhEy88V7JGw/rZn40fAx5CIumPv
AimfqdzqDRitCzM40OPFdmHDhphk7eodMQte9lWvvE64nxRhc0YYLyaFnJUPoSp7ylIHEDzpN111
NUu+6aSaUCvCsaJbL7hsWBCEheDNA/k6seZHSrSC9XiAPEtRiYbWmoQ23pKZz7KDgLnkfYyalcJH
rJBLNYZjJQi19y3WRtP28ED77200nccaFCHhA5JgrA4dZb/cUyO9hA6EcbGe7jfqr0OgWrVXI8tn
o7gPnDYb1lhGrLpXYr4Nt6lDbzSdSkCVBbgLLalQSSguqzyI51qriK15CCJfcY8YLlqMaYY9gilE
opi0bUwHbVtnKzCaWjZu3uavoD5+eN7TmKXlsF5PxHgyst3a+GuUxlbEpCt1KoZ+Bqxq16TagWhN
eVpWf4xdi7iy/NcMNtj95ZDndVEpEY5ORNg87+nkXTI9j1StgRk7nDHIBldaU/iiIborut9wW61p
fFdFtNYgDQxc75cTBAAgUG29aj2jUTJFiUhLqZUEb8emzbDi7Tdbigk8VPgkugdwz8ez3XAue0XJ
VCEQ+aHj3pYPVIkCZuG20NvGLgHYLuB9TIFfmrKXQruWKMy4Di+uJsw2jCgUA6STFjZYnrp3ZUcy
0b4iKhhUHQdrO1u75aQBwspQl7QP7FurClXiHX0s8bUSKzFkr5LtzqTejV60oErABlIjqhu047+6
8NLp4zK8ubiFYp7WsR4CG3MKO2A9mwF32VEco4WoxyKwTckfBbPMQVmhCsb85HflpPtOio1EfELY
B7snFn6j7EEuFQ3fL8gggpkyVzZ8nO8XLQeVSSdPT+AX2wRUSf5lYq3Fuj5QSmbHEiGoqhNLxD4J
jeyyUuoCsbc8LoQrUCN2K2AVH1Nsrzx8PaeCZjwK7/mX8OVfHViY2sJBkpP+V7Giq1g5KG/C+Lku
c2UnmgmJDBbI8j+nSjKaSgR0PzpZZ1uXv9/TKsM5y2Fz5TVUUktdj9+zoYwEI0qQEfdQeNaZ19Z7
kpOqROh6KaTkyvkHiPRo4rjhpVC+CZ21FHEmGtSmCn+83MZPMXP+cp/vy64WqkzF9IjS2DTYwpzd
8b4o7eeKso5R1fy2Houf76heMYuccQxhPgU8nVVrvxrPcAdArODPLFvxmbbLIQwJQDY9X9LyzmOe
XNImn7B/FcJVuFHgNsbVkuw5wqCoE5EeG7ZTzHBhX1utJjoP+0iVAWcRxpXsM9tlvLesES1j+1V6
jJaKO1OEwbUqhOmDooCy+j0Foo2UrPez2pEPqVgs6qHKf+2jmQZV8PRqg3RKjUQXkOyyxKIW4EZ0
uR6ZdUD/ZUfFMcduQ1QhL4IOpPfLhA58svVoy0KXrG9HhD5H8b+YHqlW3ZdISeRMXKNhWnBxC+ns
hCtbb2mJnCvrivMgBnRLJA+ahpev4l9omFeg3mCtuZXivk0D4cCjtl2/lQBRLsloG8w7398c8Z6W
WmCxO880q+ELVOK8hh/MNp2bgKVAABWe15ICqPCScmxXVARlzATGRIM4WbJa8wpkD4Nyet8YDYfh
FUILeiPophO1peO1Xj2EHXiEnA2FEbE+wth/sC6DXi1eMz3OcodWhpirolB3VWXMBMBoCzJEfpth
dUpwmDl7WH6el0G9uhESf/92+Yd9KH9TsXM5Z0vI16AE2snXw/c37B29rCBUxSgWebbWLX5Si96L
sLqXUYPgrtwv2LsZUewoSS0jCPR/mJ/df2ML0hOJl7Lo5VLPaMVhEixRsaAthKnbNhiwM6b7m7GX
7bCc18bFw8C01gthqqrf6hirT8en+4uGcy94dMQn8DyDyfv5/oL0hnqHUYZdz6Hwyik5TNuaRwh6
6TLvytDxmnYPmLb1ImjTqZ21N+XX9jXzCqm9mI2Gl7blqyO7lscZ92RH395K5CaVItKKscQIKCDf
2/YBURx1yh2TXWDrWOtykeSUYnbgol+R7nIX12km5aXXwMSq7RVYUyMxUUk8MngjVNhu3WQhIRWH
74BDpdFilhE+2tsNAACa29Pwb8sNHe1mo/cRWZVchtSYEKb3/eU04n//P3B//p7gdWf9UDB9VK9E
3/FvGDk4ygd7fb9O50OcvjpnLRfZV65WIVd+rpZ4l99O9aGIf8Qa6rE786+1NqJSPmXNqboH3HH8
u0psivRHS531f40K33rOGrAwZM6forXm9BFbY8XOQevhxdqcssxGnC2YdmTTY4su2hmU0Cq0lOZT
9abhBhe/v6zi9xcHNVEG2nQVzFfAnHn26tkUrdSOQkEi02aVUu8FvfF4zhJ8rHlXs15a5aazvoXM
Dt6zxay5Ar6Rymrap/t0vv3i7u6OLWbtNRFGYPs8qFlW+rALLyPJ1T8kWi3mrDUWq2VCHFWUniZn
5c95GCxgNMDRpApdCEbmXq+/6y+jkrHMWU7roRGN9g3r1In8fN0KXh31tjc5b99VMKToqvqS82W9
plDRt4FQ+yWFFcoZdHwjiNHC0ERxybcaifzsvb6A4fCLOWb4n/t1Uobwkq7B9K71NtXO1rTnedhg
ku4z2R4p3ci63LF+cutz/CVVaJszOuA8xG3+Q8210MtgT9ozMW6lprLyRmpz9De9CUDOut5hfCfv
8gTbEm0Vm6xHyTzInzgbAV2wRuqWsX6duuOV2PbVaXzlhhab9taWpFSXIKw5Mp5PaCb8km5mlfNG
VD4pFg9y5Mz9zsPYjjdsSuX3eqnDNL1fRSuxZm7MzPCiMnGojfgCX4brE8DQNY1ShxeYByUTO8ta
NzGAze+jjGV09Qvp9u1pBp6zlp9Fs2qTn8aXP0Wy5fSVl8mMyMj6krm2NU0lSWL7ZaF+uWmn17A4
kLI1Xdj8pXR5RpDe51+iZZ/0k03YA6SnHiAPHD6ERllpuiGIPBx0Oo6AexBCDAEohdzxybyL0wRW
uA6Dzmuxutwnxwl3hjaj6q4yDlypP+V1RJbMSY94VK3UEmKDyYaALWDOlBB9mHsqfJnWbyEkZZEw
AMLZmkQb8L/Nh9v4/aZE+zf7Un+GMXsHBLZoRHLR8XLyBawp1omqFfmmCPyOXAvmvyYWLlanowdZ
6qaN5bWCdCVlaIMMZSI5W7IQG+tlETLFKexwRcg4uafDDeR8zRQPGPXW4Mic5R8QO1s2alfCn+Ay
Y8yb8MCr4relehPYj5wXtyObOzsj1ht2JYd9WZMmEK7DYm+8r2syRSHpaRknX5BWDG/Db1hFJmXx
GIoSHPbFJQTTXaXozXPsNpAVsCOAYHXepIhAWYELUpSXbeOynZDAmE+wsXopuFwpF4Y6lSBnIwl2
AB4dseuqgyH5f3JIJAtMon+RhiWVEi/HCpInrB5kYu8vr/qC60YuUiTYJiXnXwcEVg87MuLsYmwl
L1V52ww9Ni9CEMcBURyJBDljQGC1r9jF6uM2rkl7DQzCgHAADHGl1TLX+U7+kZZXAEMwjWWHNvBO
lZG34h0QwjSqxzhD0zyI1hqtAoQ/p7Vm2KFs0skgxmrDjCsJfQ967G06nSBxCzL0/WOf3q45zANp
ayrfRXRMJywaLh+z1XNYG6OkyIDLike/AcBi/trzQgrgIFG+7zleF//izwIaU3/OjikZCBS7iG1h
nEawTIuRkvgelterlqCtWPKepVDg2AGedVlxRimmgoIpc95RBE5oH+em2EqJNQ56entX2P4zKUUd
YBRZTY7ypAu55s13pTPb+9U8QaWCkJUDoCJj9aBru8eJMmVOMSsdzgmOx+w6sK1d2zYrB7CFvWJG
h10xioD8mVqy+juoeBishLjGv9jsE0IJjORQs/h5FdJGleW2cxkVHy20y4x4nDyrRBFG3m5IAHoO
ESBm/3/sqGovC6nIeIr1WKUCsSLkJqt5fpcgTIu1XLReKqXUNe2B+TztSbR9p7uC+xPGLYM5cCZc
EYvm2Zgsn9LT+AxFt7oaZvVNzKDU22wo9WTcxwOfoivi4ARF5XDalQ4J33qJ3eh+MdJpxOK+FCEg
J25EtDKDKwMM5k0hfyv7TZOXht8w3jiaunIpl6yQvHuLCN9V0Zw3opu6ap99nXoq3pPAl0Rwcv0E
cC3o6YF9ueB/rFqejwSWQo6/8fZtBMDwVUUGVczPzbHyKi+6KmgABHzIp8ls1vg+XI6Kwi+ysCVL
uyFHBcjTyrKouKHMhINiKksiuZI2PEe7D1O5byMxjVox8DxfbgCK1ajs+ljSP6BUVoiU27BZmpWl
l+Ph6WrUzejaWEA7SLqCiowtJc4zNC9u87TMCU+8qFqpbckGsZrGvmSlVM3kBQJ4MzrMP68KCeZv
m+3cZkfgZR2IJNC3YtYtXuF+64O8DZePFGt/ycSwsRewE0odUmv5rlersXBQN6ti9eYgwCx25gG4
dJv/AjGHMQE7bsoNAV+MtIlX0RBnt/LC2BtBrWuJw4lc5rC6l6/X8Zm6496vCs9gl23oh23ifDL3
HDsefkCNFDCBDC+Hf2kUf3lQdMjsWbTDfY9l25plB8NGzRF1GA/JNh2ZlBhEFuufur93YskuPpOK
bm9u023v3hQSp8YKyYKArqshUlBZoneMZj6JEjDLLTxWs/U3Bao5I0X2iEq9UThHaILHX9S5wGS6
o81PHbBLsb7HwJo0cmOFLpEZfPbAYmyDlZQ2ZSaBvXnnqZdkELHijT3qle3BYv65zae4i5nURsMG
84ev83Q6nO7gFw2qvZiXEjTTedA/kBHye+Re+wOKkn+CM6IZ35lIihlw74M3u6t8qa554Sg0w7AJ
+PfpiP89VYUd4AHh46FY4IC0EFpav/UZOLS+XJ+PROltzoohtzAmmknA/KD8PsNzVN60sB5TksMv
Z15t7vrL1nweXrskp+LzpnmzSlo7TFBHqHC5UqawlTA9DxPC2PWa1lMmVoZnZPfIF77uQFG0PnlJ
eXM+Jepbt6YGX1IbxTLhPopm+b/ewQYDikOV5j9ndTebu2fnZCnFU75pzvhw8rD8Ext0Eg3x94/0
JeoktGR4mdmWg4xMAQY2WBL//hEacUhB2No2vI+ZzzenXW7F/cwkV+KhHy7QCCnCvwv5C4uVfBDL
HkMCKyIOOGA5sFJzX0o9OKxNcoXWEcQTT+716fD68W7ej9YzvJeqK9d2XNbjWDOzGq9lJiVEfKtv
DHuhca0Gvuqck/dCGjtzKRwnqG2dMbtoqT63mWQKY39l5BhFzqXDyzE1zjb6W0Uo9ZRMfyMRDFkR
DhPCKjglVcQMZjB+cguvM/rxRKxt2PGZePpfgFvg0PdtXSrbnUkdQJAS25hRdI8WllNXUXjkeGSK
7wg33zgH43W8HFXWmi686MEg6RwGO6kcune6JAjmq6gxEbIGDJOSvOUNiUBnFk5pRglVFD6VPiyZ
tUxCazmMSwH7vgDT86hTFZdRaudNN+SAX8uyVuiiq+T8c13A6vY6nz94ihkLfOA8F5Jj+3mAmLXG
astcQExv6Zr3vUQTysLjlGomWoxEtCPn0r6Hk2r7XO0/neZIrxhjJnPfLuO/LaAkUU5Vip3UbUP3
4X26AdeXnp1pmf5hOaIJnf8jZhVXu0qRx4zxAW5clX+WE+1kTJTjLf1oS14SDu+/aBs5BLInQ9aU
0WonrAgE/pz7OZE7LDgfZeHFyOLKmagelIVzdQXCrjzmIm2m/+N4JrazFHtnURZSRVpIl664vAyd
gSGssuw40hjKj68DoksHZWML6W5SYOkT9BSK8GE58nYlCLNxXMh34SPQH1BRRtmxr65eOUF+VnEO
YDC9eyZhGQJghwtf9HnanpToexT5UkkSmjEeYvU4FY+7KjMkE1PCVqWUFZZygkqXOMa4DUq47+Nd
/FCMGqFhJrjWRShl1RtuRltaiF2viRA2BdlhORBmUzhRBXd/1FIeNefz7NAXC1KFeAXGH+gNKDnC
SsLnWB8KaXQUBsicZe5dWSJO4X2AbkoHW7drdhe/Xsw/HybXQQJrL7+C4H9Glw9baYg/1XJhBYEU
qIDJrQODgyKVyZuxgCZEvdzUkdzFagPCf5rc2/Ayvg1k052Nk4BhhDFS60zzqtfRsLtO4VI1MB5w
SK+RxOV4nc+H1+l0ihBi4niOnwPXCX+xmRccz8aKFuNoH5UVumxYuxIltn6M1etMjsJmkkHu0fyV
jTNdYvgq2hc+Byy6rNi3dAkuM23K2VbLJw6u9hMiJE/GpgOttD8AxPsCdcEAZoQ8QuQBtpzeANYH
YVzXC2k9OTY3YH91lDTP8/G+7Jtx5S8tclU5Pkj8CaNm8YK5C4LlzIkBS7ar5I6y24vWkzGvlZIu
2sduHaQD067L2ZWFKQxGtl6p69O3V0BAmwcdwai03LRrSUXWbJGAy4YXpFyz3p9qjVZEFb2stPdR
U7flPZpbKivmo9Hbs7dPObUmEBAWrvP4AI1XtGjvp2EvAIH09cMLQCMVJODximnu9WrZU1SWWfht
Q+OJywm70E8M5/RAG9jVwWPFXp7KCB07R2R1ZGNch9M0K1vlfz3UZbTnUGTr3oZuubdcs7aWLbQS
BDzcSXK63R4pW+0FBaBz8oxdCH92ybfbeGHAyvE28vAzwsVf9KLDOBcTh4BScJIAixqi1Swtz6jB
AUAuLC/ZAeQLgOUjLa5JAPirTolYtkEgRbaibsdmsevtI4H+Lh1ervNdmVFTMl2BWLBaknH7xBvb
aAhFFBkzPW7T5eOAxA+QvDHrWyKWN+1zxmQCegN9TIW9ztfpV5iorsT8PmG36bpsH66VbRNKpGHw
lpThvH6xtRNN7PE4dYh/qjwe/7R5pdmDOCYbLoqKptmxhw1hBLbUXxXkRssbFKGIqTciZvf5NV7I
YR+qosiE/Untcs00A3WE68hwPkKXqOt0OpyHD7O3+DH+s33KDmxmNv8UD2blnCmbNVTHkRzz7/0d
8DfAqku/FR2sZkydcD2sOgymZftEXyF4DQArBVmU824mLGm3mMtkKQ2PYHW9A470Ml8+3oD1Us+Q
5JwbBwKaNlcWzPGJyKvxz8yjf1MmWEu89vgh0aottFKXrXJGijJiLgUpzGHCWSISbAW+vI4TtCoB
sRlfLm952HhaGre0A3LfA0/THRq6Q1QIt4DOPD4sg4Gj+c5OGkcKVp/uvJvXDCjIsqqRAe12KqPV
UnbIrxqNqffxeoS12n0EQAH8kv1H/I93zLzhzdU84/jaiAInjAPvGawQk1H2+I3yuVwofudGcvui
jNiG0Wp2ASyfKd72ZGjKLLSV2DPt6ZDFxSYG644fEGsdyZCukqRYDz4pLNpw60qXtTzyae141F0m
5Sf85Vlx/TeAN2KLWiNik0+GRQcLbKviMtl80e8w+OXFRiiUwQqp9MrPcS0hQl03KveD5dEYTnG9
vu+zzV06bUDHoozXi73Vp8UIlw/afpCEL+rzFanH8Nt3TMJdmRhEBactsJEIsSSB7zZ/j+BvJJwq
qc0JrfITJJpO4/NgvlPGKUN8dLc5R68ukw+AN8pmGVErO+D/PvtKg1bmntzAyc3wrn7ukTVlGOcu
txJ6deft/B/nrmxELzVAsqY8BqqxDBZ+TBFRPOlAf+lSwjixmyGswvZEceID7NntHirys5dORj/r
tKoopYIShH5iVToCW1K7xovosKKiCC6NP2Hon83/EKWpcmFyCUHyaMh8TigzVHVfr4kt9v6IHBfe
X8roaBgJOdgf1mugTBv27XpKtOrIee6PkRVHrKDE2nhrdRZrc3v+yedaSWVXfmLoqqfNsk5qsOBu
rY/Ir9v+mcu7SZK00gx3WaJ9SDhQSAOl9r7PJMDpqlXdOe62C3m7IJ8WjNleqc3iuXHeCH2/YE8+
rHJTjLv1OwABPjxj37DkuxL7HO0UKNs/VS5QL1U8+eEFga+cVykh6Xfd9IQS2fCTRAyGddiUzVCH
Nr3gsZPYv2IoDgZVLr1IyRv1hpWBCqnYPCIGP/m6q7Baqo3712hYptxrkfNX8BU+6V+zAiRMrpVx
V2GH9OYcAX2oVuhq3wbg2aE6zuR75D1IWg+93Pkek4LjsXsRAj1sPBi/QZPkgKLp7ByUSMIBwYqM
05BZxqtrQ8e+ttelGLSG3nW1+Rs88RqztiEEmibEqdA4gaxd1MPGYTn22qt/Si5invEVKoCW10hK
g6bG1goeQW5hqPZ0Seb6mVJg1UeQDwCXReEPlXK3p/gPceYzMKPKtbgTrzkwYEzn0yHPsodACxYy
0a6zADsmuNzE4L0oiyxCDH4d7v/1dl7zugeztJgrTZtehoRzm7EwzXJQwdwlg6izhpDqjq/TC/b7
elb2m/H/dZjJ6cOZkohxl3p4QmE4KrOuw6qBjt22p+EK4hQKipR31XcBu2AhTSjOdJ2zjrB5iN1Z
VwEx52jrU5qDfzOs1Z716CEBZE4v/aCrkBvP2ldZFudjLBlnJivk99u3rkGReLSCViolgDkD9uW2
2JcC2MdFoz4tGY0oXkNLPzpDXu/ZOJhPZ8KAYrno0/xdqbooGZlrjTfF/JU2Zb5YgXQePrAG6Ay9
CpRmhjReFdCUNi7MBPSKlCOn/kwvr2cQEsoie0lGrneOqCSQ9Aog25D7A0vzdhuOr9G8Ng7MCp4Y
vQO1SAE2AWVthURiulMblIpkyiSxYoc73a9rmm56nkaXCVJ2rpbuuBd0OD+sadSFXRu/9zb1f/BK
2d6S6aJn43PWZXgjC9YJAkAEO3jdRmiypkyx3Uwx3xwlwns1J4kWmkvy8d3c2NPhO6pjathBpvbL
oNyQrgpY1+2E/j9UkIxFlaVTZKmokM6WjGm7h5hzn1WPqtZKlFX0KQfjXwpY3/VaR3u9oUf4v8Eu
ce1Oc9/TLmcH9wEHpxxUqNFsWDLs1EKOG1xCZRJVWEVXJhb6aXPA8X4Reyxm9lr2EH8av47D+Q/3
202pDy37JhQw4dn+ogAQc0Zs6kr8rFm9Lo30nrerlWvByvNa377cZhxS02DM/YyF1B03etSzJvdZ
3wBPMCnaksoKqpC53JUDXpB26eTdfd0BYNz6rAf9OpcP+8aUxRQiDbKXWcqnddB0wbp15vQmNBtI
PcBDN5aDci1LqXyU76ayiX4GSKNZBpPfL2xb6Sz4Gw4O9+n+oiynlu7W+v3XCawqdMkAkkAMrMlD
YqWxZY6s6bTXTNpZdUq+w1MsME53hnG3g3dfWXBqltWKXM+lRghWGAUuQAxmk7P2LnnYNDvLWuWX
y1AVZvaT8nffY4a23y70Fnr7RaX8SBaa1K3Xt38Gf+4nc6N/MOpPWVkmKf8s65Qf3cj8yu4p6YoQ
0WY2WLE8eAsR/4qzrFF+PNSsNq610wZVDABW54ytIXJrF9/Ch4QDK8+oCNi1HUZvvKGuo/v2z/nd
3vc9UY5e0q9OVKRl/kbxbWT+98OH8m2uxh7SBjSr1ueAkQvybY8/qa2mctasatM2KMtyxVltw/2q
udG+Gh9wMbwQUna/DvuS2GIOLKM6EhYNHrT0fYEk6PY6tIG+jy2APsnWT9iuxxx0+iT3v2KDdBif
uj990H9v/sZBhq+yKIAL70rNwSVBAgIf5YBYO989VwxSxAdzPl0fOGE4FWdGI3sQHAUZULYVehBN
0kCx+DPOju0fApQ4Z6Zpds3a+Xx9kG7GWaNXZidHDg3wVMan5ri1cGq+wQOM9ce//xV8H2SXNqPm
8TFyv4sMfkG7eD6PL8gp+PY0xaLCtEdtuEcWL0FUz8yD9cuMW2+0S5Uf0GtD/JzELWx2tAcn3TU2
RLnOCYew3N3b26FctS6cThdstJ0RxP1x4FLZ7TZ4APYyBbudK9ucSdMgTbReSCyEWzda2eLcP58s
eD6by1Moy2FjeFFC0uDrS+KQ24x97RmlNruaur5d7AmsG9oqG9oEdyRv1HPVNoIN1G4uGzAxvI1A
FEDD4NO+qoSPdOnqcGm5r19VhayLDPQWCGWJ+OHVQe8lqryEMNJpXI4j0loveGHiyytyJrQKRPH4
BdqspnLV2j4UD/XjIdXKIVWxx+fkfDwwTpIgk+6Ija+pC3ecmfiZp27C38ZfJmNQ+ekiKl25tN+n
ilz373UhzeM+Nso+1jGZunlu2j3vpXsuKENlS/2LReRKJ9sAym3Kwz0lI4K28DSPyyWpXepGelm4
j+s8EkP0ZfxS2qOolKMoJZtC002/xXJp21DClyEIbY+O8BeOxfDsLGimO3e8lXZcN6IURdj4A0Rc
sbD7ignW5aGA7PmqyBvbuao+3OBiE6pyttx8v+y/nE0pDfqgk7RHWsVGIKEDyDlVzFShlS5aBnu0
YtZKmohZccr7CoWVXYNkSir3v4oq5es9kq6gH/ciCkNVrbwBysLZxchjls1VtWtK6e3aEtiEss7C
2TNt60KQysxrSa7Zi7zzVXSx64PbjugvbfPbwKYsC/X2KVuYNZq+2w6kGO1Zt0Nx7plRXsfMTdgZ
RNp+UTamCY3thlv/lqFjn4TZOM49s9rjRXS0FVn0bOmOoGpSnmQjKZRAcJeK4N5Ytk0yfKDpEP9G
WYgcBaSxaF+HZVqUNxYqRr6FsdiDsqw+aksoBFp0J/Lw0z7mxGk+aSE5cR79kjjR8sHCRXPsMr15
EpIrNLhfgDHX/ilxy9sq1CIKYSs4DhKsxWJtBSUPuDIrKvDUgtVWsk6rsSHB8AKUqR05OmyZ8RZ+
FCpUBz6NgKRwIERtE9qw61umDavMjwGfIfRUOG8kMj/HM53sn5GXcuek+CFdjuNZWzDD7hdEnvSJ
nVTG9TvAml3r01RGa7az7NTxbvN8uA7vys3k5Oq5baugDjmljpwhQEs0I/S7DmyDy214e18Ow+kr
rF8Zm8F/fV24NjJ0DbgpA5ZS94X0VJUR2T0qkStIfTpYETd9V8YrHsqOLEwToOH4Ccp+D59C7bwc
4km8mvX3ZSmMNQcy3284pAY/x3G26L/CA3WScKG62nQLD4BIBJ4xW3MmKnSEIcXH4qhZH+MnRBWR
fNksFXFQxQcqfKIFguZtxkxgnBCBY6MDNFkhdc1FDQ8sU8BLOAGPM2xSPIXYMEAj29kQmslAWfQH
tERldjXPTPp8uIdOO9QpxQvj06tFQmYgZMcGN+bSYEHy/IYafTypYhJnxjAktktf5s4Q4Ld0I5Vz
y2XA1HdLtevqX+M5TgaVYjtO5rW9SNbKWmOpZAbvQLBXpYgRtQgxzLrMzx5pM0LHyq8u5JKAI1Qs
H8nGpn2zY6d2L99ci5ZZ+ZfxG9w03Ij4JDj2zz9A16/U4UNfhnfs4ktIrFFbFUM4MIJ+lrAmnpkA
b6XPseaAQF+sG87OjcuORnnrvVSXQJ+upiyeKnLeHT9CDGB88QzLinfRpiytWAYLW3lJDIRU+J1j
aFqz+ZcT7RgBeLHDUPqFlExggwAom2wjPmzttH0vKHfju9dk0r3FwmEzobTykR8s3Xsg2EmPkIe4
NXtpHcB67Q2tq7GskiQPXYLPvOLNXWoYTMPRpJxspXt8T8s67EnPawJWML59fxamuuMx1v0G4CeL
++nydThPp0FtalHzxhQ+g06zeIXtPiAL9eWLsspW0j723NZV7pDLjoV8Rep01oAxdtrbcP1iJlMo
F7CQ8M4srPzEUENLzGamSyQOJdt1vWLXMWiKJx6b34fjZEwOW1s4X/bifupahCNKUt28dbhFwCaq
yPRSevH2duISuQokntCk5ddLvTOM2fgdkX1gAaTlbZ9LcCQL9EKgdfzbppWgeDsUFRXAwRNaFJ2V
yVfdiBRLoe2ME3fdlcteha/Y2rbAHnt4x0KOeBdaerqdBMuzYnataNAFXc1wqhgIybfq6c0oEWJG
U1QRr5IDjthsj32g1zLVrA6EhcRch7e0IujD7ZXMi5AiNr5LjqBpc+5V25o/jONCq4IX9a1AHxKu
RLL9NN+w/dNVWUrD5AhTjH4pV23mGyi14/G5jjcwRFHnJIxJXiPUMKksSUNFPhd+GGwdXjLNjHX7
G0VB4+50gSoGU2bW5AZX6YjvLg9/lPTVGg6C9Rk1wVeDQl2fo1oLThTvrZcu13J/ul3HEaGXh+UL
vp/4GEUrzc7ap+vqVj7IhGnOMMI8OS5JFjqlX+f5TZExVWgGtcoF2iOFWa0g44lDqCh0Q5qGI4iZ
o+LPc/80daVz5Up3YeCmZVcaBblyX4twT3p2Xxf7rpNCrqlKyei2FY77DF1RyoZicm8YIpMbZ22Z
gtYHrpBfkS4XNaSVGOHL/jVOBUPbXUtocrrPJAwBDOWK0AK+LzVMUkiWuCtPwVaBaXOHVQ6z5MvT
/eXXyTgah9KoMkU452GsgMs9rm2Xw1flGrXSMjbxkM/7UHUoklsuku9YipHynzZxra3MXYvjbQMn
xbutpDpXFpB6VezkLiykqZVAxe6n0qnFmXhzNHAPWUi19D5slBaDHcz9Vy5xK8VNjtfRmrNQ45jw
3atG9N2la/iqXMNGWs/6ENqiVGwtVjzjmC4SprnuSbgul5vZwKFMl/vg86LJeF7F4/L+GvsLRMMo
cBi6MmFBjL3CPl7wEJdIWrWFWPYhOmt7ChmqPpOELHPfFeddVGTOBmIBrB0FkI55bXMZfcUQcAGE
Qys+dyfVZB2Hy9dhgQZYP0LI7o/DbVBuZheWRFaP9p16Ex1L0UaQbgTQrghpK8VXImFhli7Qnf6K
mcZo2W+yI9ZQfJpPH5h0UUqa62YTmS8fs1AkkVBPe1GnRCRyKcrxv8MlqJtSetc2rpO+p1WTKwGY
z8QDW1H4QpKLOYkADuLLLBSPpJBygb7IIBG+8dcVootd+Zj9Q3L6PRHBohR9I7dFQYQqFZpq4tYk
GTmfsW0q0SWP3NPfEEcLzXI72fEKhQTpE2jFcIXn8HFXQOn9Q1ZTH5bGPagcXWOVuZyWfPZ3kixw
tfq/bkVSG5d+oaNLJhcYaRVr/ukKg53V9knZ0m3a1m6LF7Wiy5rxkbA6INkH7RRnuA6DzF1oNDVF
2ymqqZQe+mW2PpE7H/PQsFmk9WuMOXVLdjehXc+kiHUkJq8rrzrLJGuFlNcF0u9+kKtCcFCVm3BW
z+QAxG4w9Ko7720rGTrrLdo4uErUioVtmMdsxq/KulI+Y6ZgjRDOMoBBeoYBC4tKPg8uMVjC2IeB
zV2+3qA7se3vCawncBfgT2w5NK12UXaeO7rwJxucIQRv5uOdeBKTCIVK8prRtiPWItI3p/Gs2WYs
yMy8Bgt3wVXZCO3Om7EtZ7ZdPM4T2OO31/vbUyLJ4zjrNwbnytEH+X+6859YZV88tMdOxcI184Cn
6TyoBjT7dDww1jQ1YCmm2ALorRaxqDMprB1EBihW6evbFDVXRgZjXB0LGeqO7GtHbK4W06J0kGhp
2DhqwgOp+lL00pBID/WV8uL6NooIe4xzZoqS8eMg0K8PKGVIGazmBaaLWNMBRY6KIt0WqEipY4v5
UTZdNqkpxrOyoO9wZl0jig02a9WrddNrUbnioaSfGwbmuY43pTUU6c4+atWvL0QLpvQigIpJdHNW
GrNCxWCJzLpx9Hks1rXqu6TLVLUiMnB7PkmGoIZhRZgI4i6cllncoKO6gM7LSo6XM7QkVZzeRjIo
jeVhBoFCL8vhB9uCFQEWjDH+vEpdnb2o7krJyPCGndlL5QLWISVHxoSGyr5Z9ZuYaxlY2zt3p+bs
eFWoVxXl2Ut0YQ+BkkOpqJVa8pu298u2atklBhoJT/R1AjXs3xIW3GOAQ1GbPFmwjYejN5XWKWUh
2YuyPG8UcV5K9DaPACIeA4IlK9YYI2GCYyz7nK1OzW5X4ppYaP6rcs0ziaPTXVYCUGi3veZRY1bd
6k8WL1y0xpDkZB4GFhy+/vyouHYiDmuWHWQheas2MDlgS9cTqXvmwDNkucsCJ+lgq0YMy3Iza6Oi
FSOrkNwuW804U990vu8AglQimbmUsVrG4Wq8nedpPJ+02g0aIpOO3p7TasycrzuOK88lqRNgpfcI
m7rIJJtDSngqQrSR/KJ/De+DuTJAghjEBFf/Ppl0Z4LQMmH3m8uwK9vUNI0U4Q1QngmetJrRyFGF
68M26WDmrpK+ty/KdkVcQ4wXNW3RSe8rdKx48G9XlF5OPEWrJ0rlPvm9BklgO9WyE4O/O+uw4FYy
0Y05Y7n6qOpUuzdiFtjdPKCIsRFXLJZMeAw1h/mg7eYqJe14dHVOe0Rso0eWnZBMBWorUXvpmEzF
SqiqQoogbL1zHsi3f7QjX9FL2EjjiyKch5QtGgA3xbLjdi8DDGOywabSd5hVHBXvtYFj7n2bLjam
lBIFLXfdWWvyRPJDmZiY00HTjmmneO9VOkORr1ZJ1SoWXybFSR5D+SqguWnFUfxdYhkL5apvXrIE
WUoFGpuq0vn+bHcGtHSUm9xJvpErCML6iZQkyZr9oZFKMaVzERzCA36n6wBtbs5jjKuMpH4vWjSR
jNJlXtlSkzARnpYvNn48aADSTYq67OKJMyd74pwBNESpPIiZk8srL0G8OWFSkmK2inPrrzCato1o
813Pe2w+0W15G76wirQLkmzpYR7+ILY2H0tIfhk/nubhekpnJkVw5KPASBgh/IV5NeTP6Wcjln9K
oYJ4AUS7EpRH0j+JZGTNTX7/YIcTN40T8yl66QoFllXSJ6oLEVHtdc3xrCEcmq3x2j0mRY3A0Fzt
OoZdXT6RE6irXAqC2Ybc32ZzHMvihkpvbVPVUiKFJBYy0H57hQcxjqclibnJeykFEgni7IgVboLg
1VYbPzwORQiVn8n8HbbYV+VqNtJ786a6PYmkfmWYkqCVKqXrlgP2p5rflzSkrxcfi1qBm6zHrkqx
UpkFe7CaMj25aoNMaHUfSStLqCUfyZWZ7C29Z3hOCn1ugrVlp2Xhq4DPOcCC/6/WmDelmEZ4MPrT
dQp1VUusx8wqXlnPlPPf5FstNO9pOd6hCzEb7DLvAHVw3nW6F4nwbK7YyLlo+WPTh8Pyfr9O832V
iK/q7azFYpQwspC+Ul7UgPnU1WKQ9us0JOVpl8cF4P8Ox7Kp8gjfgxH+aKZO5+n2obxBEUbPwowz
vmhIOqVQsk0t4uG9e6q4frUogs2nxjIZsM+260atDCJjfb++rBIc63kw2DHcbtdUP6umiEhM3nsm
LS43S+simRUle8HMnigIlYe69iLhczHULfthteKHFWG/jSKimJGnX1HD4m7Ls1ECb8xrZ0a4GGHE
SghF6PZh5j2ogpQtaUWktJLNR1ivEKioV41XrA6WtQfeItoTXnzDu5v0VB4Pw/B6Afzu6Tp/AYzu
aZyNIfP+eljeBgiiDBHiH2ivZG1IkAF5hzKJUb+YbTPG0GBzDkuEZQG7WJd+GFSfDol5eTlPyyu4
itHkEHzver6XwC63ZtpQdVM/4OUwmHtgTO0n0FSDmVh0TZ0jASuDy2mDZgBOsk1Mo7OxYgAHYD24
/AA26gZQr/llvmw6KC2Hf9+n65f4pls9QKQl25TKabra2+EeozbV0m8cUwlMpzNvPTpIxuaTbRSf
izVSX1pcWPwWFH4chpsHgyKoaH6/zu/Di71XYChHRA3OrQ0XmKXHjI/VSefKU6g7Niv3g4AzUuYR
SOF5fAHCkjh6AW9Ctg4WIMhZ+elyeGzmogQ38DWxKXar681zdb4ibNTQu3iobNMaddPO1/im+VNE
d6vbZNuAwDGQ0vEL36wjYaq0VncMpjmeXuLCoi/8eBCyr0P23D/P13/MMZMBD9B/ztJ0mFk1hpDy
s17EsN40sWWgYEisow1lSu4l6DL9CteSSSu4RIr87MLDInFgbDpzZz4Ob/eb/soKJk16iSph10F3
fS/NwmqD+PVgXzXo8QaGIDEH7XrmfhVgeuXNrpcZ3xQ/L0S6ZQ/pZtS4RF1Oevx5Vu5dyVUU2inB
OtFwXvYt1GsQ1vZ8/TLIOJv1RmsQUFa0sqxge7/vlWebw9+2fnHd0s/js/I22SAQUCmrQrkLmvTK
Qr3Rf9IeiM/QK0xm/9IdX5Nf8TvAJHO/5ikl3a+sLctC/VoEdptRFbrd5u0+1oSW7cxqvTkPQ419
4Z6UofJykJXzs9sRPUyI9zCTFD0hk68JU7ZiytMnGtyGPN0SG8JMoIJx0gViw76pN+MKUtNgW8Uc
DyzhcTNboUcq5pyFGskbsQSGF3WOWRnaxxl7FYqnwDRWhgezArhCbBNMwd8A5fK3obXY8sDp+HU8
0wuND5BVUXOTGdF77EKvxJFsvJcODeXOZ48sl+4y3j/2OGN5L9f+1k3NJ5N5Cu4zplwvyTEnS60Q
sx0zotkZXBcz5ypUzhutAbrr8PXt9h2JbBe4D4fxLT4xdgBgEudVkTjLtN9Qh/q7fWAy2KWI8iaw
08rN/iOG3ybWoHuRepa1v68MbGw55CalvA8/zqWPw8jGJ65CyQR3uQ4XadW8S0cW0t2KmCPaOH5i
WAXe+/T1sjJ6aqFcXF0RWFtOMmziI+YRqjZWwbQI7Lm7lYp6iws7dvbVatD490LlLjha/ApwCYxG
pI0EneY3/O+X8TqZG/krkOmD2fE91qWwcxCnNshRuCJvCrxd5gMC4aO9DteeZm2QYv3+dn693d4d
c7SRkgTxn6/USQsq7VgJW3R458bC8Ai/djE9YOofTz9ebvMfXRlcPHiKE3XR7jZApwPs4GK+v4I0
Hs5mtus/vg+wBbeYPsQ9dMgYZE3DW2b7Mz3963h4moztNxpz8HS4xCBHOEruF8k7ZmCKD/qvRzU5
fl2zBpVeBbqtvV8nIxOMtLucP6JjrKTNbdhp8mKu5Okwv0dqRPHnXdl5a1m+bUNf858P5zNYay7X
PzgGLOQfQnQfWnGRLsgFbwDYhhFvY/EfGAHM4Xy7xsdo2cF3q9t1PM8XeiOHXw9xRiQYYS2CaQO/
Gnb1wyZQXQ47GujBrSobqZWoebnumpz8XY4isvC8atbH1IPU1s+nt3fjh/wNFqe3I8DBys3167Yb
hLfAWGNqrxTaqSK8i3QZjH3QNvGPMr+9JbhZZe6wwbd/XKe3CSzL/wlvM76z3UYK0f19OR7yeGfX
tZFIG1Zcm/8c003TE/gqt4/3URN/dXgQpe1pdfsTFeUuf/j45/DyN5ClaDPi3xkjHe9+fFi2JUyq
/sc///qXvyP8346O37I3Bn2Njbx4wf8RRwf70SECqOrPV96Oa3EBvdCo2MFBXKA3D2ry7QCJT3P/
+z5gZj81Bt5thl1Xvs/8T9v8WqBJfRtxRNIY4zH1oJyNx1v28gdlRpze1TfUS2/IOnn0dNY7tZir
MH+5v6+tsKPUJ3gXKj800t81TsMAUPf9fIc4AcCGFrSNYQ+UC9vlfrQaq8zNX92Dn4xVZSWROQh8
CFptOT7e2t9UDB3ZspllcZWbZg/j25Yx2Uw54GKVidS6c7VnFGFYh++4Xx+Lsw3wM7tjqIIWbAdC
tZlR3QxXq+z9Ncfdr8OLMURC8Phtl4Xf0slBWGg8k0KM3/EsC56X1cgw19PBfP/mwV0oTZRJdOFj
J5F8N16jERMxOnZaehNOgb6kJJDnMlC+b/33+FSdbHTWpbUGbuOLEVr6MVhSQlyFDyjjVvqdgB1d
lPkwseeVxHqUYOaYJ2kspguZgspsvAADnW59An84ypd+DtTIl/y/6Wam/6IeRuU/9Dmw4QjK8U/K
I8WPW/+rmFpd9StZ9/DaseZWfe40jdLvoW9d5OXk+3g0zzUliWgr/FDY6bzNCrYZ+s2sw120KTO4
VMbHXFDVUoTAosryrCtbZSp+c4GvxHY6cg915/1ybd+JrmO9X6/D8mfcZD+9uBFFs2Hvzusiuuuq
0Ch7/9aZFnIzUH7Rv1TOWeBOlZSM9n0hKXS6nO5O0fqVQVo2+QxL5zqu6Z4+UEQc7pcvl/nbxZIZ
pS8sOxTv5W7GBLf0pIzhZbFrteSUFPNsFeuAuWiwVZ31PaHVgzFMrqfhNqR8B+Zns2Z+oOT+gLC7
wCK0tGqaEVW2/g1hNQa9IRR8+N+ntEPbhLfdbOz/SzaPcVlhXofL0/Ku+OO56HXAqaLTgUqOApHw
t6oHXbMNZv4QWiHQ3t14ahG8FlkhjeQhWtDRCocyVhpSyoA3pBhYjfeHOUPK8ERG9Wl8HuC/jw/Q
e3OG5VOwL7p3S8A4Ag8iGt5ZQeuhS7SY6+ZLrC22DjcZNx0t0ghAnBwtvzoWVTMG7vXjhu485Jpv
V825Wesl2iAifkLmIONOX47j/Ky8pTzcntWqsKJgefq4DS9wXS7L4Q1rQ+AflvfhqDlyWRu+r3Z9
X78314e/LkQ4Tgs0+rDqEx/y++2aEuxtEYjnwjZ/hB/5s3EB+I9gOYsr9R5v30bwY6w8VlRQzqzG
kmKWrggV9TtCRBGZoKgxZqLADuf2BsIHCFi08hzv83hKepuZl+ustcewLPNxGliHrcW9dnwn5t+D
AQHvbpgi3Q9p+I0tQLdpHRNaik4XPdJI43gdyJ7dqgNPI6qzYY1lYd9M/cCrrAnHbH7D0nNl+Cpc
uq2wOJl74wdRPi8frAWMa92cBw2PGWJtb/Nys4jiRfPEOvY2sYFTxsHctvjuv8wioaZKVXdt6d1K
Zu7Cf87CHRAqgIpqTLvExyq8eMcMe7k+7R8v7/cbf3awPC9lo60NW9ZolQmhCYY77B7DN3AMqvtx
DCqKVADPNITv2MgIaIQhSNKflJF8e0pmUdNImPU0H4w35XvW3dN7mbQVGFJ/iogI+rqL/7pNSMQ9
Mhohj+8EgTyGs5K2pzGK8ECsBLi/n6cj7KETfJeoHYvDdKwJr4/dHV9HbLnwvoz302yzc7OyJ53f
USwIZGFr0N+wMDdmvF0ZjcQ72a7hPorvBgMpQ/ieuggZz9j2ulmkbkgWbkvPhrCBANJRSpk3DcTm
AlGSEvzG1fK0t/UWt2FaFi9iFH9MrpiH8/ZuREusoSuFur3BwJOxoYQ6jSCgBqWoo+D9sdug8Mhb
e96AAW0b9Y1xXmUrWVdgCiO3+/VuLL7n+wXnp7gseSWly8w0FkRPz9ebDfCdwIsajmZuy6xkYbqN
/9IxXx+PzIYMPkBzTS+IIDGncPtImZMOmYUjA27AUca7POjxFKMcJ3s9TH35DlqrX0dEFPHU4sq0
EfoPRHfuUzKwb7hlMaVMyRB2rTzkkV0pjDL9CM4R1DNFo004WJuFUW3HWUvu1XWAfOx1fB6hxePI
PABlsV0m+hXSQcY9Loftw4khWmBVyf9hfDWukWHIHy/wp6Vi9tZhpNJXMtGnig2VMyOoXP3qV/AY
0cInF+nV7BIJOmUkFgTxiH4/iVr5tJWCvf5TxfzNmQ1YhPNPzTdnX+LDKTY/WykfN2IKZlrIhM2y
XEnIZuHh05T/5kpYjLX4gk9GRRnjLFgIkWs2wmQtNpehfJ6H8XkyWqblT/++D2eYj/JpLcWSp8t0
g/AnIQmUr/2hYRiktu/y+kYiC/VhXG7RGK0U17fhBa8xrBB1aWBlvEJa0Ton5cNOOoQ//v2vsIM/
kTj501f9tzMpfujO//B0viv+JQuXOub1KEYEaEDUxCuPTbBI5qqJjwPmpC4QE/pqdHqhRGDKPEyN
Oc3yRlakcUydd/mnVJaNYRh4sCxQ6qSOf4K/VfwGUu6lBPcww/3T3JMxleVvuLlSYGTDep7X6/Cx
5gCcTbAAIfb9bIzWF3ObKLAXNzzWPuZOOrTMqb1QlQ/mUzWFXORhONB2mzC/bq7lasf7U/0XxXCU
s+xzyRz61/B1oNQwllAvZ9WnbQsJ/kHNg5I3oO+lIwON+U8AD/40f+Naky7/DzFqN9SRRR+6TNZQ
HGM5Dvqoe3B8LacYoA5tUN6+MiXGWVWSYeJI833iQcUC0L5kEgBjLRz/OiJO912vziBD0L8xxsBi
s9h2aorBzO9tu4rB0/x2m4wovg1v74dJ9YQputmFUCPXpwrjgQSFJSpsMrjw8mj2ZFdlUjj6v//6
l5+dgXw9fH87e4UR32qOdSlWo+2fxlxYLTX31EG4vQ5fWRwkrg1dj8I1RVP+P+xK/dfrfB7/qcFJ
nMezZiIqtmfKV83DrwoOnNnf42u0+So5b+zg4XnkDh9G9SAMpqZ5pR2DebAEz89gfv78Oo60xy/H
MHRvRLZiazQM5lmEbDNmIBwBRj58u0Kvoass/nCQ1seqGHR1xXEStpfGMqYL1O67MePz8m48B8MF
Qx7eJ2VSTR3GNbYj4Hzmbxeb3FCm4gM/CPBu2QUKFsf07NqdJq4raeeaQMrmKzLtNB7Pw5UMHDsU
DK/MkonefJ2lGQlntRLL2I1XbkTrl9tC9VFbtfLeHwpt91nE0INWX477FtNmLIjj3Vxn0GAjtKhv
iyPULATbrK3Coqcfb8xOq/HxQ9BNdSbtSKF8X4qxw+B75WsWPfUBBL+X/goqO+pXAGA0m8/FcJG/
wE8f0TwqDVKpT4od7SceehYurgheFx73b3pYm9h3Zs1+hL4y2y769CnPsDGrOuv1WKvONq+DSjw0
006Eikvi1jse4PDA5fH7caScHiTNMMSF0EBoFnPWzAKG1ecN0InDeS1mWVKWu7tom+CgYF7g31sV
rK+U7SBDBHkE7B8+fsTWzot50uPlqERBMxE8fBzebzQn2qszjqOh8muOZvcFU8b0/xGoF98cnwVh
JfBcVwcRPe/7QrUJKoCiYE4r9qWtmo4Z9OuIzBO/xr3YgkG0AAjTZcJY/zTz0UfhEQ3PJTAFy4bw
9uUWi0fTMLUEEKbJcFylzVCDiQ3mqDJgIZlovA4ksdfVg48vTyg1j1IMW61VfH/ThEXd9VKdBiZS
EGv/NIKhR80bV/nzNkJBz4uSSKgl6DGuavoaAA+g0GwfNqeNYHMoE0uJEkzOaZ1NSEB6icEsv/N4
eQEUqF/lgGViivPbSg506KcFdR2KEKvCCEH//3jBD+cAW6fAqcXEhnWnrAO6YJNrs0ngeCAu83s8
lB36fVaDCFj0hAPQM/cKW4PmTmr9A4DQV5sXOXwdjN+mOSQ1gzMxT+L35qxshdhWPRLpG12O+Ntp
GukNUpTH4hdcZIV1dFHGyyRQqlX+Pt6jDFBLUXMKQWDx28FeU8zfKOM8CgXfm3Q6YZ4F+cdwr3Ro
cNF4CYwLLDn+ZrAbjuYtbRkObI4kNWwVBlnrh7WmFvmYnUDv/TqO/zWcv4x0N25X47RfF6gqHgEh
GXefKz8hRmsFsTng/oNn+Jdhuf0AE/wpNRSbmjdKnqfzDXmhYx1RKoZyW6PW3Xop36n+iYZRBsgk
2I/fh+VLpN0wfb0B+LTC1weAzyhD1KHKroKN/JlCaete/qxPx99kxuzmz/hwvF/heam5jbr0pgiW
3xYO7ko69hdEIv+C5ZFKPKxiVRk+LbDG9MmYs5ani9UnjPVuU6RT+oItH7JZKEOqwdKocssPhg+1
UCt2EnClqpV0+P8YZ4dEx69O02I0zMXME4p+UBUPZywjjKMdcgaNyeB8zV9d0cDbCA4YlukfvkWr
QHCYKhf97Xm+nqbLACvE9u/PYKcmYnY0rVJCpxjJNnyABzde3yajrhABcZmoxMnj6G1ZsDY8i5rw
3ORyR3WjrDMLgyQuFmiO8zpAr8zrVQPdlCyk5MOvvmlbHIrQMNTausuNqxXf7AbRCuORaZtcFmHU
rd0sJrkbpY+xIbFVzjdx38UpRTSTvXvKOZRSRONt+D693d8OsY4Q+GlRSVijFXJ5m1FquJi8BujK
8yBEZIkbhEtqxp6/afinnAUbMIxnPfDHo7UPet/mshRMsFQKtrhbpxhmDYMuFyGDZuKmF6UUlXmU
UMoIGQsA9lgESYUqCUlUS5caEgbjZb6/vCYqlhsWct9AJ/kVcbGk5B3J/BFg6Ytt9LJfVBV1KHHs
XPzxr8C26ZSIabU5QyB6EzsqVZWBWll+rlu0RqKUnekkWThe4qy+tB/+0aH1YC+FRf2e52VM7ULl
J99iRVbkan5qQ1iys8W/tKsgw+ScMp2NUC/dhTWfXq0Vf0emBGVTmBYvCZyfkB9p2Z5LEtYZBb+O
11lZknjPLjP1bY57Eg2DUxdIsmL+z4La7atVCubpVvmvgfGn7rzM+IcTePfL9G8N7Fs1YUqrTcj1
T1sfLLVRUkBFPi3ldMpwh9uEEiuU2TCTxlcRW8s5HAViDCj391Qo0Dz9xSQXM3EtU/ZTFsID6o3F
8pkdbCSIvV3dLuVaPMCebdXr752B+7efLTwqnf3uWACLQXCw9GfFK6x1pyseIlHUV0uIkBUAxypO
sNDIWOk3BOjEvS4+S86iZeUvMnnok+oZQwA26quEhdrhsGQ6tcZGzA8cI5zgxMxRhNREpa/vXTU7
K+rRGWqatpfcRgxRTAuFVtegjJ7vh94CrhCzt/qNFd1gwMEmGyEXE5WjJdQY9+s4iB+nceoWejZ2
tKkHaMg+XKc5knnEYdp1GEb+HBmmjA/T+WE86moTtsJlLUSq4QoQY9vkkjl9kIlY99lnRdbfiBkj
uOlZuEpbfwAoaOgYfVo7famZOZxX6UfqA0j0mnMmqqJhWWHy8cHqdTAWS8ao3N8wKAeBbWCxILS1
OpS/Vpzvwc2LkqVGbTjhEB/I3ysWzQwX6GmY4sM0fmn+2cbnE7+iXdYFh2eXFrmiefyKbmbUP242
hLbVV9dl/iIxySLsTjRPjqO04bnXwigUrtePqnq4Pg4FQRExS+QUx1IQmrMQNZPFSj5P3x0vEEtF
quY/ZbBrCYlm5LZRRDegZ0li85q+DMnbfM36X6bLF57aQqj9fIlbF4j05ZCtoJ0XfIuq7Wl8Bogp
mrFRi5zG6qSyUdivEXw2l5pUSJQ2WYNmOxkFtM8Ra/4Wuo4pieJBGqEMw+/Br5ORtAFlYYe98Ttm
z93FUsavHzKIuD3AmvgGLS9ARn4coKUc/ig167a/rMEZaO+qcP3FvtHxiNOD1yGYvGJBFfPfzvfr
UaP1ouUX0gGp27tuLXIKfWqvN8nt6uFab38rOWIfbkG9HVHZvSzgmQmZAKHHPRUwxYlKaZRczA6N
lxO20vLLOc53rTCAp4ZqBodd5rNxfoDECNnKkqXOLE9TVD77BRUWWjFdU7CcbLeGudHzWsELlISD
7K5KMdYyo5bFERDBbVy3LcsAKTPXUSm+srZ/uO103QG49IN1Lk8K5j2OomklzBEgeWboXT7DOYKH
mUzY15ydr0L1vT54UiEKUrzcsDcWUhrJYYLodZwmqD4LcbJ6+qarpXoB62LTCCkitK4qJXQ06HJX
6/tPjcazYSSgzOAKgNoKNLuR4GZwt/5qrmlALGH+OZXhAWur3tjJubdNfvoff9DpGNduRW0QX/r8
HWwYn2Re0X2PE8AqcXKq7WnCjGTt2BiQv3l2Ti1UU9+1ApVOehfWUltdUtVOL1iqalMG5zfHzOVy
HMAnjdKsUZlRFV68ZsNQt3+32UiMZM2YfDvRlE3vjwscyjzLwiqVgKRoPJ9tE6aEwQPXsfMWNxBP
WprBcbiCmXCcTuWhqdGqvb7f4h6EN/55bS2iyH4Y3jX/zFX141toPIvsfP75fVC+8q4Px1vGOq/g
JP3DQzA6Zzw+xLAQ+KH3uNFgLx63qElvkXdD8Qrw7tN7q/RxnPpBfMA4f5hPkyJ0+urB6Yy+duPs
J6R600pV9WH18/pMyKFNjNhvqDjbDfLM+lvKmy8lnipkXr3fkkzPbS3VgJn3qXBbcd3LLFkXqCTp
p8D2OkkzIhEtUqjxFw3kQLYSaLkpJddVF/LbZbzjHzIUpVjdqqp9cCAYrdtn6CRcQIjC6/gXxkQG
BRUEBDspI+QS5gDNNwDsGs1CTG86nj1jSQffhIUcWnICrD1oB4pXZmQZq2WA0KI1W+3uDEsis+ti
d4Vr/U7C9iuFDl7pf9KsLi6CsHLCOKZ6KlH+n9P4TTG8G0nJWoNmvG4sGgY9jO8yWjUsOOZxOjQC
b9cTHaBhUVtK95ZsCIBDv93f4gKu8WIRiUP572uXHr+tpMhluPookzAOkEmRQRrAtfiL8jvhAI0U
yKMBEAUd33emB8uAcdr+vM4XCkO0fvasuyd9bntLHF33PSLZia+DxczrzTqgmGW4AgkdQCrNVY8B
5XFZVXxOAPmFBcaBnThCw8Lkve+ow9cVX4ffVfROS+FGEJUAuqj602i83cFYlMPBbPNccLotr5S+
usabJHjzO2HMt+H65f4eHyIPXkwZbDH1Af3Q+BZwk/15Y0arjpw3hOjN7THydvw6xEpVcMA6PPfe
phYnSDIPl3G+L+ePn8aXBeyM8fRPQAr8ebqOf4+qIiJXrELzwrOi/GV4Gs9BwBT+ANO+1/kcn6ff
f8Z8RqSFOEL8y1wSlEQRnviSRdjxItkw7V7roMwfSzQcsgFA9GCuL+PhbboQZPErUA1cLP0UpKVu
KvEMcygzpAvK8o1J9KoX8fdhRIie66/z/OZI8zD4HA2P4SxK7/ph94M6W739/7jd3n/ibVMGreq8
5u1XWHOL+e19uP0VLNKfjWd11Jgl+hivLHpsP8znTVQKqkbIH7gv1GnsTI1hFdKAx1Jf13uFeOlW
YTClTPBO5keCTg+ZYgSzLjLlmojAKoX5w8ZngMFsOE3zwbaxT3FgdGHq3rlpKwWZSoFTl+FL77aO
hOqoO/yOOzRH3BO+kBv2PhiF96I8j4Y/j5w9D7hS99taCotvzRI9KYG/TCJVhcNSzioLN7ZhMsvW
54yn6aaWwDRtE3o9TeD6Kc0W+k6qBw3pEmy1WqG8ylJimHs6D5cvh5UfWePuLSTsPKItQNQRiu7p
4/DHv/9VaczDOjOU2O4h21KbYdTaNaFQg2c1100eQL5hS3BlYStrs8KaUEqOpQ80nceX4fgB0kVj
1q5ZeRpap7bL1/l+3X1ZauaUMxk6HUE8gbRL3vN2KwzqB/ppJVbaSkWFeDd8ct2iLXzeVmns1Re1
dIc3R3WxHT6URTEe6nb1VWxhtL/F8TK9TIom+hLoy3xw5YgUqbcl17rcbfPwHhZ8VsRpeR2vdyWx
XYtRlIDwD1Ia1+mklm12IlMUnDekLakwNpU0aDjph38FRkC2ioBsQuLJctuu6QRF/tNRIR0gzvRe
ykeBcFbCSYxuh4ERAw4j63LM5/ubwnPYi3zbQt+Xg206rXDmlJJJYPQgWkETmCrwgAed8dKhSjc9
l7BJBl7T5Xo8fDOOFLQqvyA/5foWEsKz45fW9wt5vLRgijwrN1em7XL1x0qJcSNdM4bmg5Yutven
sdOPo9ZckS5uGSrYwvHABxmH4eswnVPspw2P01bokzs8BJRcYj21YoeJvFiX4ev0ggHe4zx/mcY/
EWp9R9C466V4qScBnk4Lwx2q/lxTi6wNmBJ8NYbefxhdrhFKZdLK/n6dBP4Cmwed/b9UGl4Ra17/
QLnHCrKdPY445aO5o6BIrxotaCNSrnlpD207p4sqUhtGDMnMHqqQRavzNs/mZv6qWJxFLwXY0SBH
2QjuvrGgsOOGze8mHA4mqIp2jYswPjoCsGnWYB92LGg2xv5/a7Zgy+oomXTjDaisA6Pk9QqZPcRJ
WJ9+U7qFttJt9M0+VjiE03nxFW2ehWu1/GmS+IYlJzhl5fr21zmlnz3Ta0WNaBObHbYVBC4boNy8
IrQHKp7z/vN1fvvHPGEIzbbKNk/r6zR+iwJ5SDSy5prFCja2lDtG/8wK/K5nDgALnb2c56fhvK9x
Tcu4ldnlZx2Ht/QGRjaOCwSip6vRuhf618r4IuVLnDxGwYyz3BzP7htBaG6CmXCsqy4dnthvcZXU
r+h1zW9vs0ZET1Jb5LnewbBTKBiYTqIaD9k/iTfhJx0o2kjNW57m+TwOF6a2r+Oz1ju6YGXrMBbj
q4mfXK3w/oiM0oSCZRgeEpiDZk7nmeT5oCcHWLG0I1eKROyB9lceaxZ4cq4j5vOzDUyiI2drnEbq
PUgLVHx4PyQ2aSq54eiU9MtRMRk3vS+qNbwXMMuAigVza7gbsYTaEvOwNr6stFbGSpu6CmqErQON
g2K1DyA8IMAOMvl5OC9KaRfjYePaFoZKssHTXLowjZqtVjw+XCTwBTwBMfhqXRNKqZQpWJTjKnFr
s3+urI5VhXnj8ngeoGfdtChlqowvD7IZdb/58vDv+3T9otS0MRpIqBHq/L5QzJLwB5jAnH4d9MrQ
zk8GMzwNG4uS7oluHV0u94JwxsTauz5VvsZI71j1y/I+ns9x9nOagr+zeOcqf7zrQ3B91NQC4jqX
Op9I98SoW+3mb7LltKlPJ6WMk1FobmJofA2K4UILKGLwhcRbbdvoW3U/r/zqhvIwt9zrm6gdUAlB
GYUxk6mec7q8GrsVuA+eEvXpnLPUF2bj9Nw1TQkTTl3I4nr+1UVEb8OoxNdC927XCq0sUZbl7wlT
CeLFtdUQq/ejVNR2YUUtO0q4temNasJy15xJBDqvXW+g7aX9FoZJ3Uyx4424R55CSdmdXhpu911V
5llJj0CSHSm1WUlMFwm1rjzOWjoHfcHKKpuQn6LWRe3eOWYhPUHOcJK/P/1rgJAFKhMs11A0I6PD
xelJl8Xa7xDZ3SFQy+AxcXMIBrR2SDw+Q4NscqaVY5a6LGe925M/O1hZ69+Q/vY6kRMAZ42XL215
9aE2yhUrMKEKHxtx8ZiHizPrYOZq00Fum2CyN26+UJ8RJXpallKo+m/AMgXhm78O75AO/dval0cP
NdRZF7oJmSNfcM0AlShFJcH8SR9BIOjb63RLsbjXheQjBZ3Sw3C+U5YXtX1vwdqAgOZraW4/GPF1
+wl2eg2B0E88/jlEEBBHAY6REjhAQgbWvIZVS7iy+2RXYNb1hwnep2GZjspHWUChZ91ns+UA9tgf
2KGxfGETeE91G15xm+K1fJ1qxVbBW3L3rJ2qG+kV8ik35fsi5LDbBBgtZZxNdijDNGGTZBf4GE4f
8f50uBesjSVCatYJEL8A5Vy0enP6/Q1uKGx8eprfhumyqhkgFVwSVbA0t0KqgzwFdLNq4/aC9eSW
OqaH23sYlo/LURmMNW32SDZ77X8gUwawxvP59EPUZ6eFNWIJanj/LCZ73zWswidVCJnBfYKkD69D
tklWYR/062g2btGPzj9XuBs9J3pde5QhBNUxwyAZkDJgJ1WtUoGFj8fHaXtoEHZNa6RbDEXXMXFs
jC3SV4esv34do1QYdEitROy82RM6s8Ve7qQsZY1zee9tfvB/+3kvDTZrtZ7D28uzWjr+JGF07y8R
M4hJnkB62pWiqne6ZB1yH7YLh1mvjmoV0lhsRownDLeJE9Ls3CjW/gubS1kb6XiethldxRQQ08LC
EFp0iUaqJVLl9dBeVQQM71iZMW9jbcNmAUVkhP9erRUrWKxrk4oRWjoebK5Iwz0xgBH8Xx+YS8DI
bj9Tu82UvE1f58sp1wpY0ExKgqIrNxiHctP1nBo7pMlUKOAudhMDuqiXK0CqedJjWdSapLrspbE2
YCMY+ttwPS0QtrldxxQhSsH4Bbds6wEjvoIvqeR8JbiHf6C4yHV8/iEBjC+Yc70yYRQa8xN2isS2
uAlapDJMClvqJ7O4+1Wph25alhEsgUONQT+JFmtFRU+XZGOJPsuCplfWamP44R/wbxX8sOjNnMcX
TLMTdCeV5mgZXJNdIlvzaIQhQldns8nQ+ApCBE/3l0PRFZWSVWoKCUdKBXpg02A/1tvwouS8WQM/
lg3aIuAO35Uh6g2cxAZX38/TzTZ4/B4rBmgkJEOUV/5zidc+F/uru+t8v07Ywmt4fiZk9NMH9ljH
/Yp73K0EnaE8Xgot2DAgO1YxV5tc/ldzn+brz/cnxTsupNQrh7uiuFVkfS1t+X/+9JdP5kZzDu9f
awQecbKsWdrT6ECHJw1kwDUby1PblpL7i8/rthS3G148RrqgaHH85kckkMubqqOyKkTZu/6G82Ir
Dl3/xiRxUFZIIE+G4rkBsEMrhCToTidRMtyGJ3wzaNhgTw2d2KEXUXc+07384eMHiMBAAAgHyLI6
SvlUNiHNFx1gllfRL6paIlLL8kySHPhBLlXpxcoRcFJFSIpV25+IU3pVpbiMrIv/Rh/Oyn3Rx38j
C37DWqdZ1sR/Y1PX19ov4ptb1mFJZGNXHj/Aih1gvj6c0/3t3REKxj9tw23O7fTi21yWUhV9lpXx
L1iRqCeDyLI2/sWG+a/2rVztbY433q6bLmjBYdVIbMcrJsI2nSxi17Ni8NU1hNKpG0efMKe09o1+
sjyPPptCfpnxva4YW0HOy5pO1h8kWrrpNL69zwCCUSygXuyWgHX295sxJzlaAwaZ8U99XSbEMUa9
yXJdS3G+x8H0TiRV3T5ELmPDTCety1RVbxrKlJGR1kp8rTc9jSjGoABUDgx4mLK6zV/MSFGwBQ3j
3X5mYz9MTBmge9jqR8QWmbf7+jXXIpAYgeOuM+0hO4DJTXAjxVPfsNdYkBKBdBNl2ARJqiXkt4Mk
qr3FCJXo1SnYW12zNY7UuqGaNehm7LSWyOuAtkDcImgYzg8wKJ2vsP1x+RH4MPk72+OcQ8Vr1TFO
AML3JgpWFX+s4gV4GACzKkasQVNs0EoSKLwACPzX8/RlTBDuk7koEvJuY3x7uZSbTHTtCVPNMnRo
3i1fX+QFdiF0lOT13RzizayQ0tMMJK24QoVkJQp1SmvDlQQquZA6prHaTvNin6l2FqIG57+ppFVV
LqX8qLkNJC8dEzNyexRKzEcsUVt3CPPDGNdcqdUSy2QTY4XQTg5gTlIRIz3HyXZo3+Q8mQlZY5us
Oc33Jz4v8HAV+SbWFRINmy9Z3UGA2jDYPsurYbMtyFn+ZPZ75Y5e/wTF8XS5p7awYq9qDQoWj79g
3tTTaHxC1/LASntlTJYhataATjgmEEEumGa9qY21WzF1FY5lnmd8ANaOkiHENhtm5NDokLAUVYe/
ezKy5YsytTIsX5G2DnobKm2ueP9OxnMeDEHYSPdKlB7mrOMiM642K8Vg495zzMMsWJ7aOm1yldR9
MxzL6DotSVsznsnovdLz53XrNxz2vpPOLF6qS2fmXwyC3wrxzPAmYYBPmUwjJuA3dbcMUKHU2zbR
tqC2vSLjtFKULCuhYgJHLLZACnYAEykwooK1sthEQcHg+fN8CbyKJawEitq2LCPuOF2Clsl61WnH
Ifo9JxbBqp/T7fX3kOtx8f0fl58Um58EfhvaAX6FP+OEgjXSFKEdiDcz7pfx+zuFOcfv4/GuYp87
3lXC/5yjCkVy4fjHrAtNkHTHBMJwMlP5cpm/XQ5R045GqR46XyOP5cflGNZSK9RcbYCbDiPbp/E4
Y3KUiI4p+bbYhtXL9ahsTi51E3EXA1qRq1+zJltE9tlwZrgdh8PbHoHBk1vyCtqb+eLZ1JSt6aQD
Po3PaMzv2l3WsYWXhuMQ+ybBOpexESj3bdkVXi5mlBPlw5U9bcK7krOpJD5lLf6YWJuW//zpL3oO
tmGtTegw13CK7fZ42LUHYgMYe5nwuWDAY1EWLzah40gbFAPKAFkI4W7YbSJQpHHiJwhIsz9KXK9G
As3TgayZJcLJ3K9nZXcKCW259tPct8OsVsaHvOwsruMeaVhJGHfajcT1yvqHQh2hezq6lEqWt5Rw
B2vACA0DRXVsyvIzqboKLFLw+qzdpmd1eXTFi2YbXcH8xU73qitEsmLHNW4JzyF1ND1/pBCnjGWC
Q7PS7FKMshxXtuENAAMkWVPXMIoW5nn+7Ep8CA5q7JrhfRn/Of+3q/MatTQb9oQppA4lLxZW+vt4
HD4vww+dBbPmGu9me3//opI397kEMbHVpjpigtOzMFIk2aNXHPpeoo9+OR4ahTqkFnmweC35bXhR
0AcMhsKagrhCev/szK2cLCBC50joqlzaDar/dr3u/4qNUk8//PwzREv/f6z9a3MkuXUnDn8iduB+
eSnJslexY1mPRv5732wwqsnq7tIUWXQVOTPtiP3uT+KSiQMk8EON7PW6Pc3mSQAHB+d+ueUMrtjj
cVOr82yCfu9dS7rnirq73ubUWQemjYuqk6uifIVwnEUSn65b69no+Rt/Yk3dqjvHbBO6mhFi6xCi
2/CDnpcPxpiUrNqt151tVvoCeGIFTyTVKJWNhwy6hUzhZCRLxqXFPcUBlPSQb5fb+8vxdgspGDHS
BA63zkgNhcYs1DSs9Qx/yzeX6hI2Lya4OlHwXuyrvKWUxlkc4A+/fhtfoWdlU0SzoFPRXi8lOTD9
HJ2RF5SXVjz0c7kMKI5ovKJTekFOWVIEVsRvea/fDsvfA96Gg47i19aRO3XwO39tpYIsGzMLe1se
wvF5GO6yJP0kfjb4ArirjpzbDAYPVaq7gR7q+EVFqLY0O/jl+Pmn0/sfLq8hbyZWGfx7DLX8MG5v
k0il3C/RfSnRHd//tOZZgXGV6WO8fu+qmojaTFMCsjxRXvetd95V8j/EmwFok2VvsVm99dWruC2G
8elwngWG0g0UUtHxj86rGPY3ssSRImo9ZXQ2cChJOFjMt1X7B5UTgEdKtiUdNIStppxXRArwUXZB
I1Wn21sQZ3/8GfIqQ1BRzISVV6VmPylf6Ii7m6TnVm6ZCNnfH65/ev1yyQZlesMoxBo3pllvYxGl
M7slCT9yN2qTwpvwu/z08XYfB3GEg/DCQTrqwqT7ehJXZVskwrq+0SqF7HjDO2MKsEwiYL4eL6uw
B6RcPkZSH2o2uUaAASmKektuHWsf+m/nJ4Xx44jaU6K+P+T9p5bEq+ayEeb75cckm1No+f2SW8Yu
1u7p9fgvUVyMPbRkTEDTj61ML/iSW4/fgKfXFLdzzAmtKC7JwfLFtMG/3x7oKIH1HGCNEo6IabS+
bim8x0haJ3x9/FEtqlFc6xSv3Udjwsa/fQEf8lWWTn7+ww+11zXZpa4zbaZH/01fV743jmz8dbBP
2Zs6sVWkpg5BIIhCR04UT/rdSLyP5kkCC2FD40V+07dtTQVu/g5uM7JXvaDQHCdgk92ytDuoCXyS
1fVJ9i6cToieJPiwVoptX8x//y2XZMR9VNYwkjspgPfigDUFVHtu+OC2jS+nIyhS00aDdbYjNLR2
J37qI6yD/G7nsOdqQGRcKPgg30OobBTbTAo6EbLF1xZ1mjjEMfZhuLw9LKrJ52XXP43eRJKURdbG
Cj1bIm5Bw/pxyxt+oNrcD+sEu8lotqSDlSViqW1aYrFBrt9/zLPmfheqwTtuErBvU2lAmdMeb1o8
JNsfwNrGfhVdxX9RMRdL5/L+bdU2geKte0hczc7YCxybElz0DLixFXx5jbMNgCJW7C5Sr7PqralZ
dT2MEGyuNqozl0/5YlFZXV3QqwM+qXi/IoPV9N1SKZl/mriUKMDVVoJZ49i3j+sxF7ZmlSv7SmO6
Hr7KtQ30ZgatPXRCqVLeGKB0X2O9snZTL89Feb2lyidgtnjGe86/9UP9o4GvsR7DqBy3D7TuITgX
kf/O9xxTqzkVxdvTBdhU1tUOBrFaQjTnCdnuzpLnwmJqe26X8Xp5/f5yCc/tfNmGyQT/OmJP5fEG
svS+dMZOiI58YKWrmTvSFOREDSb30n+/HB7eXr+ej4h6XGWr1myp9THdPj7PuJIiRGS3eNFqJAYr
5HnqvhE9329yAi3beSa86eP68+nnYCc+AeTo2jkqkWsJ7Mr16Hkd9fp+PTyhB05M5xKJ3HveAPMq
ywce5BmtiB8mBCWe5Xs8axQz2J7UvULRqu51ZcTMXfPOiBo5pLkQ8SoAErbV+UTjgYqUe6/YkQ2u
3Ngl/xU5q8ttxW6kfOAqAeRG5F8xxV4u/3U6nw9ZvIcRDuBe6FFiuQ+/S1hNmQ1xh6rQKZGe7dfv
9/lBy5VFBsSwh/Z6jLPOn4/HtxQLARdI9L7SGSM/82lD33RABQIXbQwESCwi1H1J/m3CAq+/NSqg
iQd5awRDvO6vlztCAc6zWvdLdP6X88fXhxN6q5owsmDOclWbyE/X4/H1PhJoDArTfCe0WL8npqHr
+xaDsBB4qxK4D+MX3i9vANx2WfveK7qW14A3r+u4Rc5BPW4WZ4osAk7PiR4Q/8B6xVQvtXWYs3TG
/f3l+ft/30YjnMSE4Er1QmJUJhlF15D6E4pmDiAQwWXPgb92r3h+2HmXAR774d37ouyAI9c8PZuP
yaYJv/sSW60RVhyC7eAN0zBXrMzgmI3exT8pY4h1fhybheBTRQiSyY+Hc2hYEGpQgi8DRVFU7U6X
K6dLvoYSJAi2X1IsZ6LLk8CK38Ty4f3y+SEoy2AvJG4XxGodfH795yCOAYtg9xja0T7DCNVV/LbR
rXel8/OYFyOsT5G+W8gKSTQPFe5GVc3lc9e3xSjaijRADyhL5jzSYEpKrTyFErSHUWGrIB2P9zXt
CfbpfHh5A7XsqtdqHfTzB5nlpIFJ6UQV20j/DU6xFt2q/N4wnOsT6qyheqlIyxP6Xcnsjo7F0+sp
MNfl/4a2LLh9v7PdtLtxW3s0Ksn1Zidcj18D6HUz66c9WlzbHylpE3+MdZZ/TdLjae1CtDCu1/N3
Oids2GWTjGdepwpEKnwmufHxPZSOVJNGOTQ7rDfN4fb77387fP1z6iWXK98eXoLYWe5JgIkhrNv9
KOb4R39nleMff7INdYxVnbFfTGhRNyy1X3uaN70DcgnalskTo7/X4C2YpSduD9VXDsNmd/8GLinu
qjtguHvE18vvYvZh+hue9etEr6/ANgczsZL1rM+p2oQmsSIXUPx+aZIQHdSGTI+NXpf/Ol4vmIdH
FJIMT7P5xYKh+/nyaz5+qn0ff0Ltcj23hNwblSuxOiGFVJKIGX/S9S52tcXXQdxBuITXE4aDRYN2
DUtMjuzrngJ+fOErUY5vgVCg3Tj0JkDfZx1n4n66jT4yLcR2yPg4hRCiRadrQht3tY77J51PytiT
Hi7Gnyjbj7Z4rqILrXozQYOB47ou69Yj0lnHDI2/1DT+yPI+JTqHccOp5e2iIj2Bglujq7rijI6S
508rnHLn9xgPAzXxhoYOdJVI/PPp+Xih3xln8ntSRlB6CeUH8eUczlcVJGBXlaGhCB1d0eGPnPxw
ev3pvk2RNth0Vl5q+5eaf931HTrkgGSh7NAM0EOKkniLnoTm34oeT0pzRGwHmYtz7j8XafdNq3vi
B3IE477vqF6BUdKD7/sA65Hf7iSTHmKGugh0ZSWvNTHxi78Z06xPiCl+lW4vGKOxOOy3fZoMKSCY
WydFLZ/I1/Cb3w6lN11M5w5ryJNCwfF1XbAoqmrHbfzlb0OpqC+8kp/rRNjfeGTfq9l7O1UUOOaA
zvSqIasX+g/esacDHoLtKJzl8KXdRedNZV41YyyyyN+8T96bNpB4931s0u+2FL7wr7na6d8+R1Xy
mtvLX25liOb4m1J3B7jEbgjBG3z5AopLDGnguKvlPJ+WvXyfQtveWKvQaib2QtwqRtbvgS+RCRhi
04dLKdj6pTCUeSvbgJOP1nZVDdu8fM7mSWqzOgYnU4tCgDUT5QoeK3l+QAOpHJmJEpLlOWu/cLge
Fv3sGntcjr9SeGAcGlB9JFSopm4iz9fL2+XLF3Ac2bvoXK57R3wsbYbVg0BUdaI7TGrXziRJFBMH
Gl+3yj8ET8opS4B5ndB+H83T2S2kwDQOb3mNiQkh5/G8JsADonW9GuSNaK/Hp2Un04Bfwqyui1VV
+dRxnYc4f0WK12N4NCSWhzgr5QQ5DB19VUqMN8CHr0+zZ0jGzdEi5ZRL93x5AZCmJllXo3c7VupY
C7DSVcDyWOC7cStVfdk17U8CHmkfhFuyaL7mMtOVueGAV9qF6A1a2rU1LQWw4FO+V/ud0462C16L
e+9AkOyNeWtfQ8jeGnU/S1gyvSk7+1u/71nJ3lN/P/x0/GvcDuI0tnb+8bUGdrGMQ9X0y+Et+v1S
RQYYl90d4w5an4W6xoU00RxoT9x9i1xh8c8mEZgEDu+Y6V16jpDZh+0IZ1Cxy7p9oI/va4rN2utw
LRe4PHxZ9jfvq+ZstxtKbKGS+gIvmKMzOUJfGzoT9fn4dF5rA2dzrHmvp+7C4Q5Pp2c0V7fAxRRy
nZ0otJVcoJrQti9lUn0+vv8SIuW4bZIgXY5SLIAYsrnlx5YHCUVvKsiWvdm28XZTr/nLNd1O7pz3
cL1cQJCCdCCmuh9tl4bn0ivWaxpflVrHgASotea9RovLhSXTYdUTUQSCzOgN2SxbibgCJeKy17B8
1MwooXTYREOQ+puGxnMQ7qfjdxSpT53+Co+JZXG+PJKH27fjMao0z2HqwVq/9vDxujyJ5zCxHtsZ
gliPKw8jvcQevpzOwewDE3YtmQ9P5C/pYhg44DpvFnXG1GT4MPGax/PERhbLS60sJ/AayC3GYLCo
RhHnGcSxQ0dQD15gmwwnuoT4T//2r39c32VyPb4HKT9OFkzP29V92+T/rcdggK4HCd72BnfFYso/
Tqc5CdoIrbSMiP0i7oHWvW52/+cvh/dv90CbXTlbmr79/D1z9mi538/RNZlwR1SceJqsIf35DuFG
+0iQ2sDrJbzPFD9Nmkj0+MeU6zQ1g3BlMEJB1I8/JzrkKSAL4Z2+nI7PMwVTEL9R00ckvPTfGlH1
XPZYUsz9WV5r1Ws5jPOg3f9vl/PPa3LM8re32LTugrlMnABDOhaG/8xzGbfIYnQpwDSb9JVCwbF8
1q9jfzb+jPuvrZWKWyjV1HOgo+NpfJ1W9qeqEDu7XOUD7txmySTCoMnmFM5mdMzrOlYRDIpRPQ68
ZSI8lNGKgMc1eqyZ6rEhZJP6bi+v9f2BA3WW91oux0KPtyDJb98WLXZ5CstHn0+H8+XrdHaMrZvP
yJ3AWkNS6+i2iYLsu4OgQjj07c/LNkNrxYDJP2M54RpJuHXqyMPFYxxqTFrdhsX/519/+F/v729/
Pf7nRxiyeH+hTdIcRK9LzzibQ4F2O6zXnDG1zM0F2Hk2GWq/7enwzxIMCjbyw6HKqDws4h63WUky
wNRjhFQ7v+d355fL7T0UCz6hcSC218IyMIO/hbTOH9NjpIzxOmpokqxltpsHTQyb/6Yhw+rEo8SD
fn2J8MHRltoW1oXtgy7SXnQPvl3EcY3C3EoZBeqXRQ1XV8poTqE1UUDd2vorOGcCdqdzrKx0vdbv
AfYv18vX5bdvTcvy+LPNOng5XEf2e+qwaOppDHaV/vVngtIPPqLqEnBXf4SqmeAjZD6ejp0hTP2Z
kJSWZifXSangk6I3BHD74LiLSIKWvdGf1XYCb5uMSyAFqzLYhFIVtrh9a5K3Gz9EuueSBMndTUXF
JL0p3H1akdkd0aO1yvLQQP26iLpgTm2fR/M5FO0vUMTH8EsC7InVRfqqf8j607Nz6t7Yzj7inibz
4NIH+7NFiJ/meLgCu173eunXxQGhdTV0kRGXVFTjynTrx+fj4flx2QwwNIlFHmwRnk2HLdHvBtQZ
61zPYPh1QeU//fHPf/rjPz38/fDzIXtufj5cTwfsuVkbfG2em8SCyEc+rrl9y1weWqKgkhhB09Jx
jV+PKogF8ZA2jpBclLamkLwcQLItnYdWeOsffvzxx/A8/2mReIdraZ+S2x6mFDTYVTGZk824Y0NC
F3SWx/fZuF3ShJ6WuN1SR72P6IaL7GQ4lyN+puUmpvTdvwOaMDdi1j9VrLH2pAAfA5UkxdOZHU5h
hmDQJMm3AZbJU6etIlcfYq2HziYmyK4b+etTiBM9RHv4fPpyDDYHcOnRGWuhhaPUnbGYYSypAF1T
CwcysUKoDbTEK4uutdvajhNalUaJXt/T6IrISblBOw7jG7c10HRbLXlt5q6NpA9xEngs+jill/yE
uvILX4uT1ftwTWNOt9E5X0IH7i8lw7mjLaZtyW5LojjNMSbGhqT5YUN2RZx825Zy9kt02vSdLuh8
ujfznKDpczhn+B7BF/hcd5pXDiXmFgQfhzMeLxhFJBl6HrMTLDlltKBv4eL+jBRCLQqmSO5oNG2u
x9+Hgx2u32Nl8e0BqBRkZDoRV2krk8CCIjbkxthsRUN/WEkIjC+TtXq8JnolZNziCf70+ldMNqJL
ecTLl57pFiGdTB5hqufKTFvKGB7XbCviNtw44zYV8feZ5P4QKS5OZFh+Wv52W4jwfAgcPPjNfj4d
fwmDccBCrCtYhkS5Bo1C9Gw5ECAM02sIlXWDYJBv/WwnyBS2N56uiwpwTN5rpdSndqCKe9UbKbNS
e3DOv+N+cYnmzW7GA3m+G81FxodHyAjWk8Xz2/t4DZbrcg2hpCWIn8P1HU1+I4PtSRx690qfvh2f
fkpccUHnw1vEJ3i5umfYSm6cAlvhtUltwBVkDSIO7Y1UBkYacnC15FLC3KUrDEWso7M2la/OZQA0
2p0tVL9uAE0asMVywbq4Ibovn09fUjXs3KG+WjHNyJ3MwyKBhWTK0nA9oRrMjFVkdm9jLVacEYst
RlqDlaqFWIDkF1YB6Eb2BFWMzj/sVBbwGVFJiqxKNyx4HSMNjiF63o/n5a4CXjM1vz5PXpDyfix9
08fGbwEQMO91BbzziYHP1qrC6IXdjm/BcIvnD5zlcHpFLcu4r20bRikqekLHQw7SVdieMrwY7YwB
xLMa8R0U/WEuB2xP6+ipcZOBakkW8NpNJKstvR1eQUs5Th5HiCFzR9EY44jf53JNqNohSM+zVfTt
wuxT+W9qdqp2FzzfGSvfoDMkY5BoM5m27Ke36RRCx5tKX9ukJSR9MflTQwZV1nWA06gZjr55VoK/
avWsLBrdFU0tWPvhbIYiHSRZCnfn0/m0F70Y2B/SJPQMETQ54HOQNTny1bZ/CZnPf3xdcH494BGB
2tSJZWWC7aI/kiDmcrynb8P+GKmc2veqhbd2fn/5U4RaB0QlD/h4pnMpZiU2S5RBVoKJxlyR0sYo
V9OJTqFU7/b+dgjJPjGgFB1VT+MZG0L1avfomOx7P1SKGMnEt63FQu6XF71mCwsYf6bUVUaPfKa7
w+34t8PX/9PXByJGSD1mYd4EH+MVTT23vRrK8NdR8lmElFXZ61Y4fjt9fVgJ4rZQxMP78fY+3rog
g71VbOqmcjgqGF3n46wGIxISKSEtDDOg7U//NLs5bupSVklgx0CkVLIUotw1Xl2Iui53nXK4kNjH
W7AxA7Vspeyn18zxBwm28Yu2d4X59PeRL9f1S1wrUHJ4HoWw4g5YjxQy2Y4XJTdfYob0Ec8eHSl9
zZU3WYlcM1Q+f39NhVox9XUtY1nOBCLohVnGiYuum88IXJ+ml+60wHuQzVhc8LELzxrjCt5aOKXH
Evd/yjiizzckRERbPM0Yfc5hG5DsYkyRx6uADxVWp+vt/Zw6ZMUGSk9H2Ks+DRhuMiV8PXkXtAoV
ZEBIM0F7L7Q2Ii0D7ZGCYOlA5hLXKrh+iId9OI87/CbEl9PFaGCdOPtxPT2Efji3oGrEnKn3w1fg
lzZVrEqsxtCyp9NTlcqa7WZAfl2CIMdLvTKCAhQzT9ERTa0EldZT//v4fdkcjej/FH8ynj3e9AvI
k+bfzh9fFw5HcrGOd+gzTjZRxZWFXl/i2PEqt6tnVo/TqV1PWxvljeUxENfjLIGM9ZK0cyR10eO2
wCHIBCS5xYHwTJOPOh1vtlbONGwp5109z/M7dJ1XJKt59iDx2AhZTa/L2Q1N+txTbMB5i507voWc
nTt0a0tnc+sSByDB8mJH/D3N1wCz3l0vIttk1r3HebbHf7ReRNN6EU7qRVLsMVQnHB5qW2qaEUjD
3KVMObU/WVjswu9zUPqyahIgZcn0ai9oCTAgENsbcTgwDBcmdvo6nS1I0+I0meIWQ9sxuRcEtU2v
zmL0ktMPgrvkZTxoKs25d7V8dIOwJrAITS8NdMtsTUz6ddF8h8OyBWmF3GSErUNDnwFqSD4recpN
IsP2/B5Ot8v5MMlmUL3svqQ0BHx/Of0KWw4ndUHXB+pVxlzXNlJJ2Kd60xlPbypcNBGIv4RJzg/f
jqev35CO5Xppp+nO/1il5VzOHy+vn34d3XzTUYzkw/62hFFHKs+IK0cLaw3IoC8IDpJd+zuEG0AK
76XDBOa7S5jM6SMzAiAZ/pXwzeneD8dFiX2LI/TgWN+4O1LMk+Jdu65rf/4xl6zGDOnIpzarC7w6
15tTvsjwdbofScH/glpvJb8M0dUizde9jhONxkZU00Qr7nrsdznwX66nl5iI8v9FH9odNWqO1CHG
rrm5E8RTmIGxsIbzyLpNcoD3aha2KZFRt36a8G7dE2nVe/vzj4COeC/xK5nTizYOrQ5HRo+Scucc
USmSbKtNKgXr2QJBVYSmZ3kE2k4t0er2cO8Pu6KOYEiMay5IPlHdrLP90EL3cSL1/IvFr07msPa+
iELjkiTvkikZnc98u9zQZ2QVX9j6bO0+88u3RWCMH3IqUCGZO6UNae9oh/dvQ5Ug7YskbpaU+97x
kHte0pE6ZapgHtV775jO9KUSUwmmh5b0S6cw8zO7w0FFY/wQGR/EWcA5ZwBRaP5D2perI6Fb08rf
SE5N0pWpjncLJeE4EiLbRODhmUCvs0RFJLZbWr8MKHtCRWpH3TuuG+rawqCDy8cTam/Zzd9bZz6j
AWSChImagc2X11SucHr5CqqTRO3GYHXt2OkZlYKqXh5rLe9jBmLoIIsO4GiibgmNx0zRta1aILCH
6wdKFWSqq+inwE3cyOsovp6Yveq1jw3M/n8tIC2rz8bvOE5KorNEO37+eDuHAdbHWLR0R0+e9C23
ExRbn9KgtO0qNQ4vL4cYhz9/j80Uk2oXVd6VLlAtY6oLKOyNBEjSly5xIhZIjiNFqcTYme+NDtoC
X2+S1ny1tXg+AKy7UpecC8C6XvC7WjidJI73igp60FUvr+UHiZbBEqqXlpayBNZCpOhnPMC8Jct7
aRb0lGv/rZjPOTm23aVF5Ertf//rD6n1Vsx/CsmloQnQ5cvqJcOTTGK41Jld7XQOS10+rk9lnFuw
U7b8m/h65hX4yvVYY3g3fwo+EvpuktMk4CFwsIF/LGKDpkyWPKwEf7s+PRw+LwZ4bBN9PYOv2J4k
Sl+pZsp8HvdlSh+iIwOjt9KTT4W09EXHvXtXRKjZ7dGnT70e3j+uh/PcBk9fKtdKml6V84XuOKtH
O30SfMv3kvDKjT3c0fktfUjUmh893uH8/gBzDhXJMyFGPC2ubJzX60xm8EnWq3CKzzy2KR8CkiQ1
EtZfUfJLoMNFTxuVjKa167YDay1lTlRNvWxJuwnstKGJ+iVjPOswoU3T7Yxb4cheon9ZvpQQjavI
texWEH19etAgkqd66SeVuMdp74EtzdRyVttTWTVZMHL7jVYQ1QQs6T4VvhQVzo+34UjK+AFCcFR0
0u72sRwmCBzcWiSdrDukN1kr/wEftSQjaWMmh1iDySs+EfFKkkFLvFm/tZBDatmbKPqPFjpI3aTo
6vZM4ECqx1x+W7K3JIwyNM50vCEPAMl7ScB5emUkiTGs6g4AXi2oiZNA8m6NZ0LZ5fpSYk7gG7KX
CZm+MaqkS4CumxpbBj2EyDc+PDc9bSChHBuQVBiVt/y1eopRrbqr00/6ZFep+J8vnpBE6didOvKh
bsOu3Chry8X+z4/T9acbrt+WbZorz30nXwJCLnRuFunOBHYueypAxQDX0AAiOTJPmlgCX/9RPipM
r9QjOrnX5krjiVzpEdIs+M18zR7zW8oEmefSSuV66El7+NvlLSWTPIRsEvCNJudUl1d1Oz2nLGFQ
9i1pdjBJ+IjPuaQKoS/IbuZsimptnuA7EUvUJBpjjbuJ7h3E3JqivNLDK8cuQy5AfORoHLrkuscp
UhwqPLbT8zEObQFXwnsOtDsrLCRRNoPAzA0UBsL2Hn1I9PzL6T5+OH55fyj0FttYRT4BDldEZ2wk
6MkNZcP52xWczvYKlbu7GXaaSfsgZSxuC8OULJeJk1OJurbRkGOQuw5zKSDt+175WfpMJDqwA9Yr
f2iCcCXVEVXaSm17NLPlc18PwYMGCkUkNUVLYtsk+Voqvyuz2Z8BhAt9LzCekkpSj9ctf2RB5zp6
JTh5Vp/Mw9j9lFI2fO2m1HWsLk3AASk0vte2JXT1rx3YoLMP6yXhpIZDMZVhmprkOa+bDZXS/uCi
nTh9otVF0qNIyUZw0mbb93g9pUfz68s5hKRBTFb1EkeyxEvV9K+LIvk0S8spBmwcauOJ3+13z39f
6P31PUa116SRf56XxKbItux1AEu+wkXXynHo1OQwDM75ch5M40vpnrQvU6CfrHqlEaspOWzk4Ukf
4HW2bHa3LTDZt/011abEQUMhXWz4uaiQZUkbJVTA4Dp0ISuTv5xeAazYYMmw12AuBBdGUrwfQurp
bRGRA3kSP7Qm0+tKRG+b+Hgd9LlOu+AbcGRUudPwddHYwty6jI8x/PqedB1NPHw5XE9B10lqKlhf
FXhivLz9bMYwax61rgP+2WO4XNiiC79/ceADsmDMbtHU5+PGxb6ccu9AgPVy9bT/anT5ACiy9Rim
ru4KoKnsmMfWzVsm3iHU3D5PyLRQSJxnnvj6f36MWnMnoHKzoYbSa0oZgCB4faHrlBRMw7LghaTI
Dq2wdIvlVDxoHDxL2aHFnaBYTfBrxvgZ3bXrvbCY8g/xvlY66GrOXCSub+/vbzMKs71VXw6n8/sF
rFnokswRnz9kWc4Y4jyOVXAPH0EmLZLk4efbA0awLNvmIfGLs9UP9HoQjKFnWTgimQK68AIFYFSP
fw1LiBJMOSoZ+J33JwFcIe1Uai3Z2m3215A5dsmJY5+vx8NP8Qu9f4gyfmTwhCOIZrheLjPrfSoZ
/PBjtOYkFi5nkRe80l9j9fMtwn29Hp6jGVP+4WFR+X46fB2SKOe+YJ9oU6OuZhHEFPIgvpPbJbDu
4HXYSi1CG9D3y3W8umCF1AmiYrOm4Ds7Pif7qRwIfMoR/ro1kEzBp4eAmY9b6stwz9e4J0KxGOAE
sbdFSLwH/fnh8CUoarHx+fbPPy6a3/jjTteCJ/soFpsktMq/vN6XjJ1O3eXVgBIevp2e307g4LK+
XN2/kRi/vOtafEVf2ST7LRRqu+yQfGFziACatb5WclZOfAtNL35NlVYAKaaWbbLdwiIQzml252F5
1UCjTpshqoDp4eTpfHpLtkzgE6N2+ulbhVCDGztzwpDCmbIpEqdajL1vC5cZT3yR0uwak1Z7ChTN
7Bie63pQlunAcz2GF7I34aSGj9O7Ok8QnKpMxokjFbSVvX05sC9Tz3/p7YspgBdRj1spAdJwLfQ0
4YCx7PwGzqN7U3Wa03hwGlvPxBE9eAngeQ3PevAcYMPXIx91D5tg/9zWgwxdb30D9q9qKu9SAwPr
u3p4Znd9AdZn3eGbqVdGdMM8BRMaEIBqxy72tiDAFmQzVtL2jgAIWoj6QXSvEFwBV73hcc3+AQkJ
35vx1+wfMCpBnpDc/CS7K3j4r8vl5YhYS2FYPtZX9Q7CAGfhZv4WBaBF4SpEZPM1CCGwaXvH5QHi
4YV4YiZsD/kMXB7zvTlwDTyQElz25qU18IB/8e4g1EbKrNHDvxyvwWmWEn5GqQCGhkmiNyIQtc39
MMMsHcrkg2vy8DXq/wLoTDP9YNN4kCGSVE3iHHJbe4eeqgFUDD7RfrbtYGMmbahYiJEby7V3zhhT
AFHEeCGNQ4H2K4CSJ3of66r8McDaUM24EWg6t6mtXL1TIQ+394fUgyB2RU+mFLgV0fOAUUU96ej3
2k+8KJK0M2UsMo0Ar8evyR2Z447pnx7IiiMTVpGB66vPNgaW/ho/8YfLNQTe/rBQ4vgLste54eVw
DdXcWBEM4GR6PBn709HC0qHG21DV5HjV8q8VKXfsqLSiCEk3WhWDpI/o8Z5Y3VEmR+1+40dE3dgi
l8uTKSybr6FpfwwelO85aTqPciOhGyB3XVuBIjtAtwSMh1gDGIw5slfAOsrzITH6LlPLqSfgbcve
twKawjeCyf312zlkmz6cbmtaLEAbry3mVsY+LIzxPz9izPrtbbmFld0h5FE/ZHBEMrmOsXz6CLPA
qECInd5zo/xxMC8hkRFmzkpbJCCqEAd2hAUFNY9naynysC1nPLdFWQXE8oPQXGvUNyh9uPiGiHEa
H9t2S+BCCvZS8On/Dp8G6JWRPuV67hrspJo5J5yvXVU7yXK5ngKXjBJ25lDi1tXCPjv3fv4aBq8E
jAFqKHiKVWAqx1OW/Ydb+nr6Er5xj/fNEDQlD5kgHTGj85QQLJSTgmmC8qBnZ6f0569/WK/+D5c3
4GFxtve6t2PdgxpuCCtMw679QHLcy1yd6oUWoguqcSoAkU8Uu6Bzyuzn7ylQaXIvoGzCn5kuWfyU
jpMPKvuIP38AjmrJ6UjXv7UxVfJ3s0HTUEnnVPrKUmdKfh7DcAJTOC+THsAw211nYERFxcrWrWky
E2BKo60VdYG4x5hUYGdFVyG5W9wysIwhMH7zLy0wAETUO7N5ZwLsjPRxY+UwHODMk35fpacCs4AC
pK43lkHGXf6WVTjpDLfpwMvrBcdnNc3YFWPPAMbUvfN4w9y2avzD0zCmHD9EtOLM21jesTuMoXSh
P5KnxQZ2d0QMUQ+JbXQ+hLkFoeHZ6Wm8nCX3YGNPjATNtQGUSPo3katgChA8lzXBZ+LVGuBC6Z5d
wQRHT57XT97nzov/+bEodnFq47foQcK95Mp4VV+1/GScgXtwdWDRrdQG8G903TnQZBiNYBoSsTAq
mLiaqy9sZYQenKbPOwUHuGe7tl4JAeCOTUMX+TBGA97RfdXMCkAWUnWlh3ZjENLQklASN4DdatnD
2ULk4DaV7Z7GABYtbO8wMd9k7bS5zfQA4a5E57wvIgEjdvU1r+xeoVOSjqQEmYw7wO+bVqSisLWs
rIRqUMDabJdJcQuW1DViV14IBJmuiXHlUdYhYrQ94f90+bgFf0maYnNIDWRybuC062fpABVuxcei
vRXHgC8QLkeaMi7X8hkgyfY6pK6DrX/zvp2utJqMDMbsAWy71oSyAcIcQrpivUezvE2gCyjX5bQe
aWmqr6cqxDd9FwVKIZ1T9WC4BtqQFl1xaoDUFr7HHWpOc3u6vCE1SPQ0PW4M2Cg5m42PZNUWALvW
XcHPmAJkxHvvkDmL3m6jF2QkcgMejOrhfRHKQCxa1mXLBlARad1MGl20/BKIFWu6R1MSUCGv19Sr
+oLMGFfDyCH3Ox/W7lD38D9JnKTRctMFAT/fQqr3Q/zvWOE7bEBdmnrVZ1oMTfCATZf2NKBxIbog
SiEhqmt2lGEE0Em975K4BWQgu0rM62WbXnm6vZ+egi/kc5hkuRj84PGzWgb73Mk7OHaeH0LrgOPr
8+EV6OHUtixUvVh9SKfkPQrjBj043WgLZrXVAIjrcnoGdBrXfWJpqkEZfvt8TF09hgM2JB097au+
aAxJANEIjWzUOACi+jxSAS2Yua7ihTi+5F3Wg3Rt0TcOlQLynDR3r2QzMDZ4o6tlVYMDe9zLPsrA
m+OsexgO7DPfN+ksFF5dEcE4kJFe9N5Sre0VPg04AdEaSwrbQhRou6LWNDfVAb1j3dNOmQNCTHbf
8e3t+HT6ckpZn6hyJh2PxB7LtBumkW7F6zvPnA2BKNl1gWkkbpXp2pcSMDameyCtIAWcyXfJjAEd
iYaQyR3URgVpxJZ1zxjrv2OwdrojYlCmJL3VQ4PejCXXVFKXmUKynfW42d4HlQKkYMNuIMcA+Zuu
B8IiN5uxNSFuFhgwAqnVRvVT8MyEGxhggHb3mvOaq387/ddCEzmN9vV4vj2MxqLHNH1Xu9n0VlOY
Ss5Tzsj22fF3yGyNUl+ZN/D+y2UM6Gv2l57EpN49ANJZJmWax1vJfgKtkiJ8oUVSBnfPUU09mGRN
msqjpFNbq1QSmF5hu6X440WlJxgu5304fX0N/cHA7mN//LU5WF0ym9thkaKG+PnD+e3bYfytzKOF
rdtKrDG9tXtU6D9FT7Qe5/R6Oz0f6RkOMbk8lP0HyypUU2wj6h7OV3AoVjZSLIz04WbRNUI/yN+J
HntRPlel3/y6fiN9EiDGlw/QmIMYg6xF9nV77rVGMHWHT1j8cjifQ5wRLF/uWMQKZuEZz4rx52Am
nG4LzX0POvERIFWWHRXZuJgr6Ubffr2NYdehqjVs6r9Q8ubiiPiwm3BR4/tYq2hFXZP7FruVh3yO
uKHxbuyaB1kXcUcozthKIIsgfB+k3yWqcAWrheW9BFdAogqIEFVfr22CYGtrqgkDS8exNbX3an9i
omOeN/dwfP4K7tmUzwXb0CsYIEvEqssOynDJFqGpu+sins/grclCZWRGWaaUlTTuebXraJ3mBd3N
jf5R3mMKWcQmzo4w1NFQmvRKdY/LjKJOCe+cPOyi8w8M5ATiah6tab/wNf/p8qU0HEyM/+P9MhMl
lhMq4PtPRyMmpqktvObygT5U3rcMmQxrZsaG/zD07L+OD4S2kG6aXiv5JkkYjc9r2+L8K4SmilOp
JfSQUDwjc91jHpmt38WPLeO1UNE9FrIlFwJsF4qo4gMSEJGsiSgnMUc+vs4jeArX/b7OPYq63zhS
ljYievSzUxKW93h5/f5yWbja5/Ml9i1NbBKgytVfVt1rC6zyAq6MSGTX0wIgvycqROnvtBFerIYN
EvDl9Ov7xxUchcvqKDlD7fXy8OXytGAkilEwOyZtpqgjsZxeUOJb9Iuvrw/fUo+Yn8cNDRNiiaJV
KljZoFQu0U4RL6Sz6PSWAUZY73IJr45QGz/bUjILY0tC4BBzcr8kzn9FOj83uhuD2q/xdk8RRfoi
q3O05eCLLTuOu32/vMX/+/myqCwvYBG+8xGRm8+TyrJf9CG2g1t0zfcFF1+P19tc0bRMV+SQ5dFv
NWLKzd+h/RhbGLsoSVsb4rIlMzbFElH62grKldjfrsfVF3JLbxSIBt1TcUfhsbRqkSZkjGa+jdRh
LDdNHWNc1rqf6HK2Rah9DBtIJubGa+aWW67Fi8sD1x6ePyJ3ycL39rKQwxEZYaqnnPyDbySpVryn
G6YbDmMIgDllXaWhVjPmV2EJWIzvqpKhxX1WqWNdzPHzT6f3h7qseiL0jBU9jaLm52BuROLn5XDB
mWZl5xvR0gOfKFw5ds/gBLX5wieX4wRR2prmzOFyPn985cs1oDvytU7Ul9LjfPBEyEUakEYslMMl
mzd06xr3U0tvqxBwNHD4KvCzwJib/V0L8e05ZoJPzsFsLdVyycJHmvDVaqyIQ5gaIXr+DGc+I9O4
V0xfmQHvSdXKeCOyczOr/2GR3Q1n/bdEtrzvi/89kd330Ba3y4wIva4ZjFup+F543vNdbXf1y/X0
HhXXOCBueRvny9f0D/HzK1EAuWkrs3cdn/I/dfeJYGWPf7ecJXbyXBg32KuvpST/77oUwJZ9T7Mm
3qXpvcnarKMTCsCgjMS4eG2tqP9hyk4nFD0nLVA5gOTQPaY/txyXq/p6BHKf+R6j6/qR6QRQwI0F
r60fWUtJcCWsVmDccCtg8YLxQF6WD70XoY8LkLGqS5sbS4GGsOgZwvU5sKZhhaw9bBpGP5OmbSom
uI6u/Z+MTADq5D1Rnt0kQVFcZ3SHktlhA4xEBaanxhbv6B1ufNO1UyqjY9EcX5HCaZnouSrvM7Vc
E0bYwl7r/MZbBvtShhVPi8Ki/4tmQJRo7vvxcH2+/PI6ydPW3vayBcg21hyF0EPqeTx7e/kSqUsp
M4DeL1+/numcyumGXC/LhcA/n66gtX5CSflGSFPQsv3G60K7IEi57EL0drGIgiIFQiY8nr6Z9tL1
mcwjtGWEbw35dkyjHchpUk0rRqtrCkJU1X6MfAy7TtO3VC93qdnQ7WHR2kfTMNL5WE0wvv1M5Emh
JQv4Bmm6Z8jw5nYr6ZzgSCWOHpmmKI0VUqv1FUXhPX58XvjNEeQnapoeWa4uD6n5DW9B34NoAM97
afjlJKeXr1O6Mb2HsDq7J7Byl0seJWYYQB4BXv4zTExPA8lTm/8HFBwmlmlVVJY+ELPHtx7M4yYi
UXwTxwjpaZM+FNJHw4TqkIP+fTGJfn0AQUBN4sOxj7fMqRDpbGmyTTri+GAkMkse5/KFWKgeymjT
4UBwQpNge1XXu3wlWw6rHotCHIqqlCo2n6y/EjrnD59k+gRJrQhOasnFaCPASahoMMyW0uLlK2+X
2M4coNN1FbX/XJusvB6/zhFqiNUjfJwsIZrv5G8AipWUOGL/JEuIIyelH4/v+Q0ghFB/v4/scrvf
rWd0mup1OIXOr0gvJKpknr7m1m9t7B+fizwfHjvc8fUDa67G+nQAhmkYxUf+ZEaUAqLBSg7pbd1L
wu6XY5gFBz+mSYJCjRnCYtavxr59gDHQp+QhjtCGCC3Tat/lK5drqNfHjM7Q6LSNpdqaUGBGzOX6
S2hGnbYD7ovGHESkQ4Kc2LX+jhMRky7O1JDaj98noEGSiCJTX7/VU/n+9C1s6eMlf+Uw6H0at2Nc
z8IcviqwIT7mwO2Fg3dO4tv5nW+PIhLcwjGAnamIOzr4rSTfZMkhZB6HcO87CPdqp/pJCDVrQIyb
PuporNmRNBNgG+RyU2eJdC/n05djGGwB7tPWTlYGGS7gK8QVXTW3GCoJCvACei06t3PuyRLALYn7
QaaWbBKTKshcEmJIqm+LeX+eUImhuVchli5yMH3tovdA+CVwT7CWWPWEcwMUe7ql2Bshs4PL6+Xp
2/WCaIYGcYLOLQvNfr0uu0CU6uXwwSRYxNzJusHjLbWZIAAogN60+ooc81XwgGkoKW0qp/vIp/j7
74vt/Bi39Rg+djqODRBFar6EjF1+s99jSLQghUKogUo4epAAWcQ5lb7FWeFS51jn/nycyDEi39Oj
lJ039PB2PSF/NUn6IuHiIXqQvkoZLynU7jBe9IzYkJxbIQb4C/GUiZC2Kozr8zvAf0niUWxhKuV2
nhBwuY9PjfncS5gsddc31GAfI7IDNGN8q176Pl7Q+6R0F0gmOz2G+wHMi2SM58ac2D5ByjzNJRGx
FGZEfsCaJmG3XG1LVczQdgsnFmgSTScTkToaKlI+yCZM7Poodjrz6q5AGKEGQLIChp9BegjJdXFp
VMcIsYhb0YIHXd30XjqAly1pEnmgvqJgDUQWkp3EOPGa6IojUjbg4skzdbGwREFSRn4m1/JAtTMC
41g7hHCSoBVSsi0bKkjhdEFDeb18IM3e1wlfQ6cKOJiiEtQXqUe9VHlPIcsnTjUDfhblehn4XYoC
9E0i4bG/tpQTxwZI8ybZaNUBd/wVUTjxPAWEEZ9NpRogBlI+EVvfGnwgDw5ElbpYq7UpCKkZIfRy
kqCTzHZyx5hDMpjcTYigSVM7ik7Y+aB4f/fhKkIFbKa4A0h01CRwJ5wvrRzrMyC7iUiEOLgzpzmu
7Op8fP2K6mY0qbshAbYdM3ia5YlqUnQWrVRPdZFCEUAVobaGq8i7Vc4Q1/XtI1kTOgJ1P1+Ot4fX
S4j+Pp0/no+T6jdN601KleeQ1oFiQ5IE4swJKXJD4hRtSJWBa/j4+TseuCKYIZPeyAjDkOT7p/iV
23/EHNwflsu7gc/wqkN4Pt/na0p9KKOdxl/QpMMtqdsfT1sSjExjo1NVc9Tl8vp+ev3IA6VivRPY
Px2CUwyMLZEp5b3Hs4DMlThllnQOJVNRhBaDhozpJKoeeyTXJtwxqTEdaO1Q8XZ4TlPrQz5JrMi+
gaSIuCcyCmkfngoJBjmxIa2XFxjv1nePmIZ2rXPBXy+fr+CyaXtVojtshBuvKxcGn55PMb5+PT0f
AQW6uhetgGWUCeuiR7SlfGytpFzPdF9iZcK46nWqJmkd816/C1HWcwOzDrleW0pXDcn4K8WH8qzr
Ebwx2g/ZljTcsqvD898/bqXuNTEPgEHSvLfqJkSeXs5KBW9P694Aqryrl8N1kR7HGRsjPX/3rCDy
wYivRVW+BPlznbJFMuevJLmFMcGveapZDFOHd/i+XEJAHjyiqF9MwtP5soCn/J7nWPwGnpyuP5A7
n7+9rJe/ZhqBTSgySpWGgFb+Emkp5b5VNwjmMifcE3bg45hT1jLiRawllnU+H95uoQr32+k9j5p+
X/hGCLMfbnkLJNUXvA3Stz3GplXF1FYmmYtCb4l3j4eNp4Po3tTT/MVNUOepAZ9z7/tRTmj6ou0x
pUh7i97/S43nSKH5uQBSsr1NpnSz5d0+hLvKnHOxdsJPttSMfACYlJaoX/aUgttPqas+ubsVCb8H
SOCk+Xn4mlinMNxSg/q3JF1R7/WF/ruDFfPVlEoGcBOyx+tjjnDMD34IKX2lQHHbUkhgOr+nOeDX
93N6H+CRkaGRSaHfsdi3kJuUa2knXIiMlyEZD+WuU1uHTb/PL205xYgIwJXrWmDZu0QD2Dqrh1Jk
jheLezMHTQO4wyvNtIA0Bjp8MQXMPDXKD+dfDt9vy6YCL9nmXSw4+PJxPuea4smWORnzQqqfV4ay
nnsjWEBrpkes1VsnSsaiVcS7geSrTa3B/bc4LLg1OguYBPY7T//pfEpc5ekdPH1Xj2tyRRl+QIpZ
d8rTPkG70YDABxs+nB5SIOjTl+/hG98OtziAZKUcQIii7r9vx5rdQxTwcEbFgnLyPbOVu0RP3PMf
GzPs939FKifRxUpmKSG0/44B0XDPQTVLSJZLiAim+rJWHKAyrNBNV2N6d70JK6qNoz5gaZumN5o2
b6loAA+L3gRer6vVUTkVsJvOMWGxonfSwJguXx5i8nCyN26pYLA8tcQu76N0MkaFjI8ncjrtnDIj
cDddm2qln8/HL6GJ0KITx792KO23UBirDXBRKQnJibD2q0Ti17Qz1GxVG0fPjT7je2OIqZ1VKpSD
X3nRVp+mErFh4fpOxQ0QlKqNFD22vtJ3U0Iu4rxa9uRMudofUGZJukjdm2o8NlrvvBDWY259rpvH
xSAxp5A2ud7IKbuO7tHzRTWsuzZhF8J9v16+h5T89+8P6Tpm5izr0R+pPkzj3ZA06DKbKW0AyiBz
Z9TWWyKe6YfwlX++XP804U3a1YN51FCKbL077hUiuudueb4efvlxJ0jB/nxPd+9/JYjj//gRvE0y
fFqFoXZzggX0ZZvR43nM/fHXp/PHbSuLuX07vB1zPdLuBw9lKlc0YeB0kkgxikxEDf4V4bIdSL+6
8Kj302KrxzHfDAxI9YaRAcO85EVWn4tFKwFHh+tCD+fvXxc6ZWCItLeSjF2VMYF4/9VcyxJaGG0m
UiT6j9fle5dzqCYE9XFxIV2G81Yuy2qhKKjG1kH8kCc7DmxN5ozp6kP5ch7iD8ffIpN2c/ad7eA0
EFk0NJ7eD6+hzghi1NF7iuGozv6+nK6LMfjl9L58i28eG0BL5KM69u+R+49O+iLGD5Gh43EA+Rqs
qz6Uo5h3EZDnBIUk+aX64PF8Pi1WFXSNpwshs95NrAoV9xI5eDqW7JEG5+o9RrF6O34du6bTFsmz
DvaecOwemsl3DeiGk6PHbKbezcS/rGXgiy0NvkfGy5sYZuiQDA7vJoopD5eMEx1SMyAVJQlDDJfr
OpdLhHQofgb8kOAr6A/CqTsoGVCJIxOkaWpb9cHNuTocbJxeBR0F7ot7tT5q3tWw0iWd05EXa0vj
3x3jBLshvDcViHQ+cfv4fDv+50fszjh20qXvkaHUqRqJj1kw3pqkYoHMD63lz8d7oX4gYgjSg0K/
lhUNaDVWqP0KyJWMkw+CRvQEzdPp+nQGeyKj1KvEAqQEACahfasEyDFdrYYmVisIxy1zvybMbMrH
HfkqzZNuHufnczSEo7b6vJhFr7foGo2zYReV4/h8i273YUfDtBZhyCaOguN3MALEid0dSH66nF6f
lv9YnkviCUfwYIQnlEky8xvxHSLj4wai6UuUxkkQai/KwJujHEWWJMouEc2wbwpTJ7Hxvua8Clcs
JjRRymLrLunu1QEk0AEEuVR3h1oGvqXot0hJ2eTVnBej85ibxgLqo2xHDT7eGCNgq/6Ox1Fro98u
19N/BT0f6KOSftaV0oy7lCAkgwlmg7m7KIH30RPimUR3drH4qkNP0DmaPkO4Aq1xm7BeQEaGamh9
1lvnrqB7Jt+iSa7No/n6cS4PxoHXQthMSsmzSFUDZySqQnIo6um+BuOo0saI/UKLWSa3AMjD0Pcm
xnb1x/UWHOozfmiJQpMKD9WY2rKzbBN9N5I/MHJdJmI0d+iq2eoCr5h8Rcc2QXdbWwChlhH+TUrI
ule08QZwQdSPQlLTsXwH786z1gYeCJg7lR3j75DJPS8CMlmJjFZsYED0GCE4txZ3IHIhy8PyoYRP
wG+oHhJLKCSWK+CsilpypPoYut/u8Jm4Oz77tFzL+8LHwkd/Od02CgKPhjoTREyfuV/0gdtx1Dq2
AzGVzI05SQpLyCd27VL3kQ+4Jk0dFDGIYO4jc8Qr6D5Tc4uxJZl8kOBmiKyJPnZ5pzcPqY3+Dl15
yM4BMqkXiXQZaYjznBnv3MSQlKmtpTdrJ9Xi6MYTIBLtUDRuTS2bzxxfZ1+hbtqtJ3wo9iiTb+J/
Z58WIumYQ7VyxNhnc2umsn4kZuEOFbj0AV8+UCIw9S5SXAh8w1SbyCml1Sbevy0k9vXb+Burg5hX
3fLrfSQCAPtQ2zeCveB6Z8leE/ARu30kqqKu8xFUt5A+ostHwpUvO0ljjgJHTfe89r67vIVmg28x
RB+KESbDf7jszcmNyahrHCgpS6g/kKLzS0uQN8XKfl4vfP1SjEynZPWcz3Z9H083IgP5KkkQRWgu
JJhRFFesJmtLA/chYfY6HBQd4XW5RNKekQk7BFlTZgIIafj0dD68hByllM4XzzD+hCtvKWXXlYPf
1gzP6pJS4kj4Abj1eCBBnqmIzY6rj4eikYiWZatfrpeXh6/XkO6RYv038NnyYkhO5kjgxUOqwnFI
qujmAc5ttoBBEBde5TqvkmqYcOCCCEgZ+XJ6fb9+RHsmoiJiYu3lSTvF9qfDJmIr7IvkIb0evx7o
Y4joBRTXfGS+u3hPryG2t7r8xm827VPXFMrWcpiUfAP3tyYNb9cm2kSutMHJFsgdkJKS10vk8XEH
kYeN03LiVwy5SVlmOEgFLt/XhOq21PlrGPmx6JFjWF9eNmmKnV9O3HntV8iqT3frkoi65LPMY/KE
BptnNbHLHl+IrSzHueTpuZbVK+c7Oosan4UySVOKpJkEz5+IRzo89Nv19PpTvonZ9a8xPV4lymx6
dyLElTKR9sO1IvjYsuoYB/vXhH1JOsnr51NIAl2fYk6WQpyQEyEvg7tPZi9iUHyDs748+9x9ML74
NhNomIOS1ii4Im1ka9IJFx2H3aQ0hNknZflkVUaePxobKgeuFGptX5FIEj12NJralZDPa+TnPrqC
j0GMqbh+DsxTFKdExpw593wM2do3oBoY3ZM8r5eH/bVNmKFhFcvPr+d/gNFzXukROSzyenkLhZz5
vDGzKmWBfYzboKZ9ivrEthpENZXUose8GGfgmrsCdcjv7lOAyGOj3RFHhnTSVbpCr6QBB3yGTNBf
TkiZJDZWJPSEAbXIYy31H+BVMsd77CbRSAhyH69bJ/NhmluiCV3TRJ7/8/PlRNSLpJ4PDNC0n4b6
107WHtymro9g4ci3BNKolRlEAL5sbA9kQvOAORteC331D7JmxP+7Yj0ZKb9bywp+Pw5FJRHme/L0
9XC9Xn7Jx/4F2aucXE80tyiFRfKAltKalBwt1fC/ihSTbaWpa59vLFnWMqVEWFtH4FU5CUpq1qVv
3y4fi00ZmGTQWYCsIppiydAFFtVCGqen97s4iiQ2ZoqoejiHLnEU330MEgg94tkg5SrrU31obio2
ljkffx21TE6fLBwp5rXbeyXPWMNeKz1acc7BMyd6PEkHRsqoBddBHVHxDzmycCfiU8jek5qqDJme
wFs1qrbv2QDtk/0x3eWOHDgnTF/X4kD2aduzmI7PpyT4o4oXcHI+vL1t7BC8bdNTRNGNrmn/jba3
U7UT/rCmTS0Vt/N+VCrFb+AAgtgytMZ4LyUOz6EIafn2ojg83a28E5kWPRaUty7Quxx1ZOustYoR
B25zso4xAI5NfMahpYBklcy4r5Q07cn1nB6bdhMf/eXz8fuNpEjPXNqcq9bExoPtEq2x3gMpXLUa
9BF5LHTkiZpyXWPkxu+uOtecX3MiAmJTItt1DlFVpM4CW3BZ6ybgrVAJVZgyk0CoWdfz6qwBpo/X
bJFfj18mpv3aUaC5hh2bydrAPfMt0vsXNUe3xPuzloW9X+KcplC4faXFqzOdhdVs0k/8ARzskhCu
jX/YqUDkY+8M+VoKXa3tPp6P4YXGGYDRKX+Xq0TxnimUn+r1tPC6Q/SV5uKi8/F9Lsi46ZFaIes7
7SviFSDJlmXqXbrntNXfRjdEAlU94Aea0nLrM5bOZU3g/B8QGMhqMT1XJRPA2Kb+DLGpyGXO5Nfo
mT29hcjXw/vp6/E6dfL62qIg8ZuE/y/XQ/z24fwwFbFEyU6RYtNw5lEsKTFi1TOffxPj3ElZ8EZc
HTXqr7ZebbtQc9eIRQviONyCtohNGKA3E1uA5uViU3c/WW1Kmq4XH+s7DUdNVhJJ8OGH9lo02BBT
PQU3fSd1hYsZ089bSfGsX0P6anngwcry/F7TSoJvdkNm09hQqU2eRoYUZsS/iXDBMrJm1KtbxwDV
gvcUgrSf5Vbi8M5jrFJ//3bMTB5YYIz1QgeMA/PbdAUfE0CZNL6nDyVhtLYGiRbkJCZIuBdpEME4
cLYZ1bNdGUe7ZbWPZL0VsIpVPQczk8CcJDkexBOzNtLqqsbI6zUOyQUSTf/x7RRGA46nhSWKqP18
68zngeI/MY2Ya8S7wiYrUgZNq77dHR5APM/2OMmX0/tjEBSP8Sk9TpC/tj2C7vk2pgQ6RCQpREQa
TfBNulsbSx+V6KXtkRulxUGMAxNG+55PpSGoqI9iahK955e15Frr3NkYs7Ant91cCwl0OxJhJGk6
/z31B+klts4Fc/9dMxUwgNrs2txJQJQQnkF6QHTd7eCM2tUhY7FPongAYQpnemGFwaNOmb6LKTUa
mZVozgDLLCtxt4fr5QLUbN6NajMBXgzV58xviV5qsI2uqxsptmJs/9KAX6zwZPfuEGxQ9HTGf0hV
BppyE9LRU/upFNCeAaFw8l0bJX1OZiWdq7a+gjlyk9x4Xy7nhXGlvpK/vo+zAsnMwtKv9ulyvr0d
Xh9ChvD14fPH+/tseqIig0TJK8lILR238hTa5T++Lfx06+8T1fZbTCbJ7gnSxWOYdyhYPffR5qFF
r6vmXzcxLjNwx0cJJCxJkwFi8aevxOa0l89/T/SyXN/sWyRZvEQMk0M4CNmF0IJymfrmltSseInj
r5LKRRIaLh6AbwuJnSOZZUcc2CAtYDAlven58hGCBv/YqUlZHO2SWL61ficmda/DoKe4FPVXd1l7
v866b0jVr9LsIG62l1LetAZHaG//03Ocm3iLrsnQjjvJzNhKED4kLUi2rxzm6S4G3PV9p2QFLz7N
2h1n7JaJqbFsag2DNCOpiTl6X7ArfpvVY1DTAWYM63qMM37X3kkL77qNeY0k+cacVJ4sDPWn76S1
ZKuuTTBPZgcXbY1mbW8dUH9D8jav+aIk2MifS4N3Q1pIdn4O3344PJm2TLPBD7dTGhjFxhMGuCbT
QonncBRUjCCagBQrkI3HKCwgZPo3sTXH3egXkDIah3Zt53oMYkgD+1IHwca9+Jfju3qVde7wx+tT
blH8fh5Dk4ECJI2sP8W96TEJPip6Q+NHDoN08HoGwBru4QaA0Fnq8fQcehkSEKsnMaSHHPsJPqSG
gsF7HmTqDZzP1YNUJEy4SLfkexMgUluatndnVjDgmCJOp05W4XcHQGQ91dZBgzTRMJ30UCoQOCBI
7arbX0cWhWFZW+jtIedaAxs/YZp1X90gkJAOqWu85KDw6Xh+Dh6B2/v1+P70Lahl5+PX46DFfPoS
ubPS8izl+jUvZDKMPZ2l4SAeph4kVMreHacdAB6dlpP1NTiY15qW4z3UjfJaE47KZBNqsTFAhVrV
zDfncVK3O+RYpkLj6lpkgFNo0WPEC0VOcUhHVW2RlFx4HtW8u3kiGSpaCQNAydr02GiX/mKdzFjG
psMQFisSMVWqZlK/stZV1UnlxYb6wNrE3DdtwlKi4z4+mVQErLiwomPEEsNcxxTtwNEXs7dvpo4q
X/argmancn1zbhwZzhtC06en2LjgriB83HLRtUhcIYfccyLKlj+ymodx/1sq78KVUhhjrCppgmuS
9VK5fqLLOPv2U9PrWPQX5NsYKYaozzFF3RG17r+Lcmd7Zu2uq2XoCpYlRFjrBVEdL8V/VWV+3lJG
dYScvE3XVT7WWsk8F2kMTiZ+E9meDvTl8or4i6+ZAiOQqykBtk3Y2m4kQ3ANwDL69AnfG7309fz9
7RuQyq6rNC6c8AiQJHtsG6PHmZ70Bz78tJKooVw9qWKGVTI/Mki01V13iTbS9Ep0j5LIldzxCdfb
fqKJ6cXwnopxx5l1T8+ga96zcdY7O7WRn4+XRVCFE/w6/kqhkyj/WINBcIi9uTWo6Wo7nUYtNBa0
oClB0Zwmlm9p+r2mmG3Nv+OIpjGn9cTU32rwW79HEsetj2SksEb5Qzk4SaFoRiBFH3yJjGEpXPwe
QYnK0bCco376r+ABfz+GXBzYYikemvWE41z5GG/N9QVhvyIdu9GiOCGekmK2pKvMpLOQSiqgxkNZ
4nF1XzitVbh5FEUE5eM5XFxo1+tVPTLzIohQ3WlxA/M7gejecIBRSkQEkd023GAmHRdc9Hpcj0L8
aRVZT3nJmWRKj0FIY37CQJlSAKQ7AmPk3Eln0b3pXiPnTkIyrzGmZ1PYllVk715ux/MXqtgRHpuT
ebOyuc47mXRE54IMNcoDHQWsZE93I+pJSAnRvxw//3TanvK6h8JywSbI2Cqa5jjyAiWkit4YhsEm
bmGczGGWRJc200wMyVvRAB9kkFnth7/jssBGSG/51DJBzr7bhvhDWtt9a3WH8zAJDq14b/rJKAcn
0Y3usjQJXpt03Y0JC0B4b7wOUxKcxfTmPDENVtHd44/IL8V1bw+f38dfpMOhaC/1Uep7OqztsnyD
BIuqWYuFDQDSW/PdVSQAkb7m3ytKEf8mIKVUelTNn1ZpxoesGAOChc63JHfNwSqC9Vh+8uGmjAs8
AI0LMgk2eVTvoRZAKrxlDflGNGCY7SxZBp3XSQqp3oO9j7GBmZsLPnR91Q66d9MlmAokJ76M0o8S
daguJ+BIU/Hdkb158gbJ/UjhKT7utilpa1GiwYA+mJI2gKTp8+Nea5I2TKerCLAK6Y1Z3Nuoo5sk
jUhjxreHJX9pFVsHp3HJXwKR3Y0NVKsEorvHZwiE1Q1aPfQjJ5Bu3sOoHjzdC2nLSNTEAYUnELIx
WR4F6KosSSNgKlFBwz9JBphU6rsEICRBg0acwFmqrpTltQpwL7TntC8SY2C9pFV8fS86Wf5MAsGt
moGGHrFiEKZKfIwM76FFv5wBtqS7w904YsRkCE9w/jkc00mczHT1WAGYn2iUCdHzTyBsNHYBbpuQ
lnR9XACVkAwRosFMBVahk5AsWQXgoj9RdsQlEsZt15bWQBmhk8XIYzSIFGolegXhgOC461q5CoAo
2XclgIclZFexUgDJZML7yr1pdGDtKcnUOFRqVPH6Bn+8t9BCiCBC1G5sWY/cKpk7YbbtOOBtaFi9
CJ8tQSrPGT3exp5uK0oIgQpW5cCBZS/MDlNFvO2lioxs/ISjbgQ6l9o8n5b/CKGmNtMPTlFOB+bd
wL5UYCu+F9DuDcOsR78ewTY4r0OsvCaBeK4AnF26qdHP2AFvaIy1fK+Mx14N8y1PbNyuIO6P+R5p
jeRnQlOdMrGZBBKQkqsDWA3DX7aPHSbxI76JyzP0msA1m36ilQQPUNhe2GOf8Px8uh6f8Cks7+Yz
gHwXw2xvwyGSmXPXkLLj6uxPAXNCIgjpwF5JJGQcqBrE1L0ur+f5RsnshspqBBslsy6o7EAbtQ06
1Fz1JZO1qP8JqfGkGTfNNUPasvW7zNiZtkxGxa3vcHoY0g2fkBLJqp9fFBnuQJ4hpihbG0/qjovi
fYMDnM2qPgWBiyLzICoKQhcl+hsDF2Xl7kFNd2Z+u8FFZzGx+wwuMkOE5mPnVh1U4sFkicilnIDs
ObVLCU0OLg+TALshOYFEJ+hw+vP7FepN/fxYkKFmGKvZs59mqBluauG2G/2dBkvnupDb2/mUZ6TN
85SSiNZ1hmS612+pn902b+K8U0+AJGX9REGQ1uq7iSRMjpPijOS9PINRmCyB1Bffakvl4m/fLtf3
cP3g8m1v+ZhiNEHc7EK47inGTVO85+P74elbTGY6vIC7IAkdNOB/+vLleE1d4UtvZqAXkgyj4HhQ
yNQAOGtIOTcDjKWuPxy/vOeq179d3tL4h6fl6y9IZSPJvSZ2cVDTrETDdI+RfDu9BwvnIU592Wvk
0BWc9lLIMfYWMr1bW8yNp59iokaYofMrYne2n64PUlm96RtUHuBCdV+qAEyPN9UKHnoHEr9VPT45
0KyBmk9y7COnSijOGaQpHxEg1Pew02f6YAuilyo3Cgel0xduGNwkemu/9mUrLYE7t8x0L0kDq5fk
XZOHNiFGcOmum8m761qeW3ukxM3UBG35+TM4GrlRuzVTG4X90tH6eciodsG7LogElybZby1OMFx2
c9fez00x9qgwNvH+5nSySoAro4t+jZrOWx7LCL5neuUiI/9XOoeoVZR/QIcnw2orHR4o5GQmJwlY
YcuJGFs0dR+ovZ71SjSh2ksmFd8bZyAzP1cMltzvy5eH2j0TU4YnifyGJNrSYA+oETOsW9mwNppe
Z6aTN7zO8Uv6CVB8LSEREhUZe51Auw9Lx7S0pR6AShmhUjb10qY33c3GrXxbCye8Bb/n6xExLVun
LYtWiynZ8OgrvOcZI8SQ0BgeeUh/mTx0Q+rgiBshZSWevr5eorKXOjABpyarT0Y7lIfaoLtaFKUv
FWYY9PQ8Rui8YKe0HgHDZ5JGpWoe7Eg5ArB9/gGV25CanBiUX5N2b8fre+2YJQUzk2/ShPHSNGSU
BZP8gK4r6UERoeF9K8iAd0DLcoo4/OX0+hwyru7SpqwoLzYEcjROTkrPr1tWN0pOSjsVPaLu2guJ
0wALplUCGEyxSTtWU4YRneG4OsMy1wvTjHJc0sE5qmoNPOEcj98xVsA+6Jt0JNsGVCMarntXcLcU
ATKkCTqtiVWAcFUh3PCfytV7ubySKvMJ/fImzpGlugLUoFRPL1pT5lGJWcJ+oWXSzbFqmk44F6Bj
0atx3GRvGokWtIzX49cHE/8f4Hus+yhA9aNhsrd+UHMb4ZC8IOV44DJcXVCZC25DDXHRkMZdnRJa
dE8oj2LD6XkPCm0bZf3h9nS9nM+fQ3rcx1dgI7n6pdCCv+U6tu9m8+gOj2e5nMCJFG7zlwQI7ypS
BmCB9gUoFscoQT29BNbDdZ8EwK37nuT6TUEdr/vqPLAzPK+92HdEaLzqr4LsDLOLnczsDC+6yUnI
zvCytjN0n4DBB2xtdMkcOQAdHgxnPa1s1McxgfgBy2raUC38D9Bpv12AAq4CaXv1haiNgxnIBdCR
wTDf9dRpsDHV35gAGxOqJ4dHaeoJxPQe2MD1O6+PM6SyTRV+NM4NAE+fNLEo2fBFhv1GN5IhjQ5C
Go1aVUtwa6SfBXk7PSPuhD3sljWHmTelMK1GiMsUEi3L3v3vUgSCSXSnHWus6An/kjURDYHlw0Do
dul4EEhDjl3eNQ0kEFuiGyTJ/oak/W1DtXDukiHdUCRLY9KnLRkM60taCawZ2fcdK7CK4rUNifsJ
Jg7W2DkrOwK4VN2MlWFYDId43F10GvtPXIpqBW5H9qpytxByUrsDi5i50EhtMWmBlTWWfMASXksV
scAA3hdp39NRa1xvKUg1qCtE2O8xdl8/MVJgGnvyClr9GrpQz4aLxMYHpSiXOGbvHVE83hxpuUEH
eNYdhOL30hSEh60EfbJfjxqG3dFDTYwrdn3dlzHd0Mvx+vU47IE0x7BmqsYw+21DoBdl+WmMZlLG
S/v+v8Thz2tNcduNBZKqZuWbUQ8wvwkNAL2lg9za1CxFZkMm5vcIkf97fVS5C/jt4enjGlMdTu/H
l5G6KxidQs+3tle3Rbo/PF+ePmLXyyTtb0mExEak18PXoZ2WPluiHSrWmdMh2T+flmsMwZqRCEqf
MHUth/u/5OTZph9Di7KBEGzMG7gdfl7OEfjb2kolHu3h9fDz+FOkm2P06yVu+/Xy8PnwFHsQrM38
X0c6UdpRsUxizHP11KQExgUpB6RWJZTYeie5k/Tl+vJw+/j8ckr9pOOJwucur0/n08DJEL/HS7Qo
5jvnJOfTS5gqfvyy/Hrs/fk0y6pIaCK5ULGBndA6Pdv1vs+hZ0NA2tfr5eM11jIP0onTB8tpY8WR
zH0jvi5k8xHGoaTZCZfXoAg/ECyAOyCWbumwnF9OIovXC2youVwCQVoMJfKaMiNVLLv55XB9jlIv
SKiPz+lavsFPi2JVE2fe+uFFeV3U2Nvh/HC6PRxu31+fvl0vrwtfAXstpBsHc2n6wcdFFxyZEAm6
UGwIBtjOOU+vC0NedvTz7eHLKTQN/hiM10jnKyQSwlvWlZrD5UiZTABByLrwKJHDwlNzT8TMADGO
ZcFx8PRZsT9Ue2n4TIUcop2lAI1uW/22vC7wSXJrbOPJ6xa3bUWNCvMcSVM6o+R38+NOaLS8SqU3
SddlrFFGTHgrrwmU1fO2n86H2+14B2lIwnxK88+JGHv7uH2LWwb7K+IxOlty+X9uLX+fIFPdmsyV
Qzx/RMcDfomC1cfzNDx1eRvkYKXVCX0WzWTd+dfj6zE0T0hdzGIgBZ+FCOXS8aUipzhRKxHnSlKB
XYWwITigIUx1G/Xak2xAmhGdwwUhu+hKUWs8H97DlyLQyyF1n92srFv860/H7w8ZnUH5Td3xQ6eZ
y+vzuNZEMhJijuqTKtm8UVfNVU5Ph9efD2mlw9PTortnnMcfP5DfHnVYF5LM0QnCMGgh/29tYpW+
vJB1qN75eD19OSU+M/yaIh3sY4dIYbOxFrZ3W+j7dD69f88Ye//2ck7JhwvWTm/DBjliLdpIHeFU
7Ib2f7du03FW3fv79fQ5W9B5zPeCc2gMiDXTI3w2JF267Bu7LjrOz4fzxxF1jhdrv9Go76ttIm2E
To6040JftzVsnqUIagQktCRt6sqUrPfT+3KecsSP0KZlud+FiUViulwB6myxIELeTy4Djbs8LybP
9fh1udA4a3a73uVZnX85fF/4LtysktVms4SKX15O+THyNCTYcqGkucFLdKcvSuHTT6PuXYkciN2p
k4so8YsFQC8U8BaipR8vn8c2sTCkAVYoUMjyusHLwzrs5/n45bCAg5trDkT7qh/zoLBr9JSFhuip
D8Ta9n28SV02GZw9Nh/zeIhx0KiFxzbr4Jjl+omudXmL6kJkpufDgD1EeEm6sQc/HGdrn7Bvx2tk
9W8LSHAL5ekOYQzZbfw9Xr4XSwPWTlch9Hh+hw9u9ctHWLe1e3u9PHy8/vR6+eU1P7U8W6F9NXmf
4KilX1u0ggg3eF6UjuWPwQifSACC9jXdTIB1zkHsCpmoYCGpn2Kn0+fj+GuuuKiCaMxm5qZyBIvn
BqCLNypU0tjsl7levi6/eUMPc03bTw6SOC1JkcSk3Kn98/UQ2Cu4ZkOatMecsdwj6ragYTn8Iczm
uOUr+jitiQzgIdj6bmyNj+2WEVJII1e9hVSyFEpN9/OMEkCBhmwj3Eu2tsPF5ntdTNBFIoGNrF7W
+KjD66xaYSX9IQ6DgPkJ8UuufCmEZ71rmM7h80wCat3r2dc+naC6rELn8Gv8V3A84mJj8f5zQ5Q0
ReX27fJxfg5f/HYIk1F+jZIWSFnVk9Ex4/GWZ1asaTCACxL9wcXpxpoIq6iBRKQFIh9vRReBH+RX
Dn0lzWZR9ABvEPVEiFwYfTxcn6Iyu1w5QKjm5C1plmbJpXZCeXzM+fjzIJwblyfdeomxkV70qkGB
p2xqcs2DiLNavw5XB++ODqlhUYFLeFvJ6znmrMYMlqfzR4iPbkNI0MbWhttba0yVO/re1qd4+/jy
5YTUCF6rALk5cvAhpbkl12FiU9pAeX5Bk8wjBbZx88uLTkNdUsp/VIoesLjWZBwRifvGz6T0nKif
HD6j6yYDVFbbIejzxbafPGDiG46lvJI+FqozHp6fj88z1q2JRIn5nrz/sRwXmH5OEY+4KIlpi0Z0
2QY1ZQUydh0dn1MRwkzj5tY+w5d3qDnynk9+fYvfDotx9/YBNAVP1JhSpJKUw0UHCgOnvi9P4vgG
tk5YghVFShfyiKHp6+k5OzkCPWJrRuq65yqxE5IneTHEAc3p6pKzIyEH/JLyezlHy+WW/pqyiKdy
37D6iZJjRiznK7+FhMTXFEufSoO1xf9GQiPyvkOpIDQUwwFqU9AhBameKrLyi9gr9/ifH4fzbfOe
YEom2mJEGLFlQpbI+wVce3dYUXoC8c5C+C4Y51ARoa1/7RbKWATcy3mRjSj+kMjZEy0k1m6xVumM
1vzlHLL7EnaR8lmkfWDRLqueH29vi6UcOPtTmGt6fJ/IvXJJ8T9NrVxdowILRd9ajJeaLLsyZSop
eSHEs77NmeJJ7OV4utx1njyBh+Ovi8IYXGITjcqQlx54h9XZ9r7d3o7nc9DyWskMRCiJe6fAp6K6
TTXkLobTb5uDBqCNqEtB5xNZ6dsE6uE1XF+6SPAqiD2ntsDYZjNk4yOotUHW30PnmgS8icsn2xBz
NZRySRsTsVWf9eTIH+bYSvRC5PFbycwCHJCOP9uM1fWi3pbzAJ7nu7RYe80IP57txZS9BI9S5sZB
jQsifB2IDJBKeA9P7tlKRAAsyGplTeRA1CdCOBGB694gshWJmDg1yUFJjGZNtQmHjvMYJmaR6yl5
ce9x20GfDuwbbEGWLYSn4hr/XZLY5FkgMWgq5SGT4tPC+heecgxGztvx8BN4V4TXRlFP2H80zxaU
PJ+QUW10bQrbLRwRvlFqFaI/Js4kDFQKnTCGWC7EbsKuU4AjNRTSkdoyG8dvnkoUUg2YtLSf415S
Cdp4auiirJneqNIkpJOFkXpBAy8eUZ3D3XNlW+aTCBgVh6QDFTqOwZVEOR+vWVpTafTwfDmmE87c
+rX8zwIuvq3wsoKs/flYpyXdc4G2cSB5Sg6JW63awTY+YXZ8aepnLImSUQTnNp0zdex+e49PHLwG
wtkqf0d0m9xrSBqSg0X8rQud0TFH4a/bF8ELJ16EIJclVRPeQrbK0yhgmk5Egi1pjt46wSY4+1O8
ZRRPTySr+h7JZC2tqE7ltGXY+cIDwSddrWBYOjcWG9na0/Ns/RXWbZxu81dMpkbENiErPhbFPfnh
X39K+tem8SymKU6xSqeiA6+29iPBe37LamrYXoxkAh3T1jauadxtw6Y2iVX6ytGmeS2ZQuZZMvJD
0heWk4rwl5IwluXk6TnHk9+T9f3tdLwGggSGrmycTpYo9CHqC1R4IrHD7UsvOjd2eH36dkGf4YR5
B7NLrAGZ8AReDm8PubsK+AJRPeSmemzddLZhxCnfIrizZgxXUZevjIPrd/b/3VzH8J4+F5WR7Cq9
3y6lzqLYXFtJKsUvvyB+T/yuJGtqpKsfUHRQdV1Gz8cvMc9peVFBgCx4ur4ADkrMtpBkZPthA6DO
kFsKHIPnp/10Pr29rTHK+/wy62DFxoXy5RQ9yjEnaXX3T7zbmg448lumTh4jvcnRyMiSrhQIIA/E
AyqA64UZSZgmqIBhguSvD7Gc9ctDdvvOVAuiMy9LeE6iEUntOb1GUXZB7h/XZjOYvTk/cdISxSGc
1bEyGDOfEGSypnfma3WGkPf79QhujLhXgoZMsyZui92xOmEhIjV55SThJyWuALLTdSzC13sOHB0s
uYtJElMRJlFo4oYk9nKwb1YH3aalggcse0bOx+vx17fkUvp2PL9h/d9Yyv2D7s6I0Xo7vkffYbB2
Xpe/ANZGxLMp/rpEwZujLEl7pGYWjIbDUUoI17E+sC8xVxxcKwkxEfaY/QfRqnnNf1ld++jtE5cm
CcuU5IsY653nXlTulZhfx6idVCIpCw1cY6r1XH0wZBo6D/5Wvjlcry+rwpktp+CgxH4yMkM0R9ZW
WflL8pEG3haLPteMKPQ1VVuF1J20KsTrGNJLSF94XVXUOzzuJIskPiVFdPeJf8iQsgoedCiebcSc
v5fZTU7QmaiDa/vtTWWnFFuczU+X8+3t8Br7sCCylbUOL1el51wwjpIkiBeOh9wWvqaXpnBooths
at0eSmATHE/0Ej/OqTFzTGgKInk5GnCniV7CUMTQwqgOse9n6OT9HJJMJ++a5GmR1hpR14mQUyNn
LWeOHEbUPqoia8ANNS5Svst+Cp+aKKTETxYVUrKH5aaviO6FquUGX4fFBpGx8MWSqXiaBhNIbuCO
dC+XM0y3I7GMkA6dW8YHHhjnjEad+piYfuSOs+Q52433tDkBmYLfrpe30GkA+SJpJmaQJLktxeH0
Oo8Rkng3j5WbXFW5Vw/FJXulKVhAUvNeLlebGxg4YDC6ANtzPWOxi/b7fFCG5DxwE7PviePtegwt
52NDgqJIAiXA9EaLVoZ+cLaluNJzUsE/X56/B1qNqYcPizx4PiM6IQgIDiDX6Gs7Vxyg4Cbsrzps
6U4/HolZEdVzMZmX20wJjSlPDtgsrufKLRrGPHOL5M7yoPLwJovgblL1sutVHufWkDhf8n2szkXw
OMUu7ynqLIfbe5uFnjPPn6+HXx5+/fwCHkhMF18b9fCSBhwFYAwa3L6/vn873k7py2sgYf1hduUv
RPp5sTYXUj/GSebjtdYCE165zneffTt83MKzvH28oI/57WM8uAH52gRut8uwqTOwhtLnzPa5WDwk
+x/bTpkSKX6+nNCB1yIdvqkXtv/Z+J0b+BC5JVIE035mHONJX2FkO4Hu1xzp9jvREj9cvz8cfx5q
lQlrmnwxNpcY3OkxjzYNFYjgc66909yj5fmSajx+uYbO5zHF83X52PX09oZKKxQrFBddGzx3KTqE
PNPj6n9IDGOUFZY+VGo0oqs3HfN//e1ff/hTeF9/TEwjgj4vdPb5EnSz2/UpjSAB3yUnzhHMqB99
/vvTw3rYRTl/Xcyc7+Ar5RpCfDz7RFb4tdQqfBR8ozyA7EHMjTwDE0z1LdfD59PTw3/98vfYo/G/
fnn9O3B1UadSCEjm1Nh4c4Edfjs8/XRLkuOGeJ+lyXCla+7L98Prwpkfbt8Obyg/wlITLfBnntNI
KIP++Jx59Jfr5SXrTKP2RfF0vutNDPGtFJIpFHZbNIJj4BdrqyfwUZKTZGIBnu2gDJy0Tpex27jK
UEiUfcnvp9fvDy+X18s65gi4OiwxlWUMKueUtEVOP/30/eH9+9sx5/A8fDkeQlUk2p2uIwq5wvnw
cjp/jy8w7nKR/7Ei+fP3cf1jQpapYy8yGzZf4z7ClT6fQuwZqQDE8RkNQXYXYZxShPjL6XgGZhPJ
LuDBoOPtGJfQD2R52aHKByDN09qPwBHZ2nZmSr4cbK6bsJG4dQgXfL6cA3ddXmbwigDr0DKqwQaZ
np9nal9xXcRRLI0FVpUlmWtRCTY0JpNKWiLcvxyP/3V4+Mv1sj2lh5djaLUb0mD//rGY5kfEwdeS
Z17VIX4+PZ8evhxC5CjWdocA5LizSvqQIkJKR0mVC+zwlYDrIFkwga5V5pXv3w6nh8JUgiI67XSW
UEr8rMoXt9SvqG1MevKiVxW2Ifz2cV1U8ziS+3C6gs90HYCLGh0PErXevy1v6IfYsAgghlpvgTay
hRRue7Eztqqu4xP6iK2zm7Lu9P32fnz55wuweCypWSAhjELa21nywcCXeD/X6JpYcKHA91JK9QXt
zZDYcxoOHSZUJjr83dvb+fhjDM1lheQdGQBERyUtjK7XA1I4WA2Eh0XFKldf9PW16Uc0t16fLs9r
Me2vrwsyQt71w/Mx/RhsgXwv25CpZ0Bwu0aIFAu7LmxiUTqjsBp05Uq6J8GDir5cpUVJenz6FjOb
825jAXEMGYAPFj4Ryz4tCdDRTYEvUNvMR6SxteLuNbUcj4G+qKWDzxTOt4YtV4d3MuySFzgoi4dk
25Ag0iD9Ln6YE+2alTKHmNybPXyrQz10q4V2KCeWBK1ZoqWkD+OmJ+kbhSSIfw6cDnyq6OXRScNm
nxrnh6fvGVKVXVyHrZMAEANXlaEufLEU4u+fL69fw//+DWYekBI8EsJezKuHXM8V056iUwgmA5FQ
OJfR8Nsm8ibO82+p5vrb4fYf64/+NyjQMqRgkgezmUvX3Vr0pC+m5MfzJf8I5mrQfl4uNolbXSex
e0HiE+flHo7b3NKQ1xzmlRyvR+zNKDww5rWsTQmSzRxBohkX/74QzQncbXno0Unntke+aA+H14fQ
w+BplCiZvsBqN056PMuzeVv4wwIeoBcFYmIu88IDo4svaQ3xFMs3klGbjvO0yD/ch4AXrrN2vcwR
28ZKzr7ct8P1NnCzJX5fvrcGy3MPiI8w3zjChNSJL6EN5Orx/j5z+ygiRUqXwkXVOYdKyy8fr8kL
O0znSR8h0rC0lvx8ilbbop0GWRq4xnm6HWlqDxnvPqrjr0/HtzwX6/A87DYdv6h57bhIB/z7LV7q
7RT6CoKDEVW3tA3dDpZGSEGvgmyktKkLQZ4O18+hcCLSVOjMegabKbihnRmWPSQSWGTM6/GX5c9F
NUXiUBGppbeQwPVyeV8bRSyv/yWZkbkZ34yIqOxicUYH8xTPgYllbwzg8Iq8mJIUvEjQn9NcBnwq
vlOH6FXFbSwKx7dLamb2kD57w61EihCMmcE5hedbiJYl4jsvxAf25GpqXrNXbzE0lR8uABfVs1qb
nlZHChKPngscxhIJHBJRtF7zP1Km0y+n56+hpCUYbLf37zEyNOw2mN4Wqy8sD8IOwbdVmESNIWuj
10XGL+S16F2beyiH586H0/gapPY1wbqsSA6/F3c/1kylKfumHfSOT4Hk444BLKGJUoEdHQavSEJJ
XR4JiXX9+cffb13j/hCaxiW3Q4rPgo8VxkTGC/x0eb8cr6eH1CkytO+7vC5oeonuyoU3DFNe08nK
N0mnjzwVJTOC28vbw+37y+fLGXxH7BS1GEj9FaSDJUCCIbXdc8j4+DjnM+UD3eKJbseQLrcI5rdh
rCx9t7AGUi20iLb0sdWKfj38HLxnW1w+6OupQeD401YSzudiVhdJny+jKRbNPVbGLQYPbIVkWU/+
xQTY59PT+2Fr5JIyB87ZR/QzojvXo7v4kdU4WSyxGdlbIkZLidTz8efD6+HrYaG51fMINlIYUMzq
TjS7cCFjBj3aE5is7WZPfPvPKVcgPP+xEyTtX/XEw9pXb+2OMvZTJUIqJyBdoNcXQu8HfEPWG3F3
0MtgOFf6nu8KzYV/BDl+eglRrODkAwgmplmpQYsEkuy9TCZnoJ1ug4x51R2lbTe01gGA45gdinM8
7XxeZUrmRYs6cKliyZcr4Pme6Kg0RSM1rP243i6RY35elPHX6KQLk9s+3i85s27+fUIbUQXK9nvz
/d/0SdMyF1731yN4+E3fpQ7coNbmFuBZbkfoxGByHi/yahHLLRzbZcVvy+WP2dzxlaYATOhV8pYa
ppUtB8L/uKXGhYvF8YFNK+kLS4sp0Fmv+gfR4UggPQTLODNrUnponP1bvuT6F9ac9PBek1nEN3ji
jlh+ZitQG94W+JIn4iokTnMnexuMzr3FOlnu7gK2RcgzOdm7p01bixWUW9or+Kjt8ZHmk7HZ9H9+
XKaWiXSktSAvtTf15yJ/A+Xv6UtUOYm9XupHszX2DPdxoxcCNBPPiWwm0SPKNA4p1n8/oysbDQ/d
m7tJEDxzJ2rZnV2om9hKyQnhIyFmA75TDuxjNC+dN/QnckC4+Nry9aTKLb3S1NJpTRYLyuHh6Xq5
pVxCcAGO+LByHHtjJau4CXEJwm9BH0tNfCnhJ8wUxrQg6d//9HD7iK2aviwK7fpTIJgLsqIJlKus
4lzCtJeJF1dqUet+u/2gOXrpTKbnUiZfKANmSvtr8LnCIUlcjHwuXedlPeDD7ITUmWE3pZJifNna
OUiFkDH8hNRTVjmKRA4Zkk+9nF5PLx8v2NMtiUct1mxlf+vb4bbcV3D4RSitnZQGsGqre3pi7AK4
vbpbtvFCyivsgpW+SP1HcaD2mgt8C62NA48JyQfZ9l99y5PgirS2p1hH7XExy1L/V2SLW7d3k/6/
rPN9vL+efopQf1hMtcv1Jdxg/Dvnj3/8NZp9AQ35R5/M4++en+MYhcd/ewuNaC/X8m+fxOPfvh0f
f/z4vDL7x0v+pfg7P+Zf+p18/Jv4NBzsIiWZE0mmh27g4hN//Jscg9OJ6mzr2VCvrsDq3VmR9eoc
rN6dgkdX55/EGFx0h7TWqwNwMp+aTPXawNG+VW96EVlYQaTT+S1lflCNdA+QbnrDZDZwvLb0cOsK
3pfsTh+mwG4MTGZYxqxJ27lsQGrC9MbKE5xLTGoeXnbEuQEnJxND9X7zChIanT4r92S+AINzk4GH
sXO7aM8t8Lldb4RRTaroiZEHXgo26kvTANz2pjvRkwPWpiRcewEGF6bIwKvi96vvGxArmc9JhqLQ
tcGpyeQsUuxf4xxcmWAzriggV/T1O3OdK0Ory+rKBO+sDs4um7HJPYJBrFHDdxZXR9yN1ZtnHXB0
9v2Y6AAfwXkU2Emk96U1XxZIAm+cq+p802KdHpCDFxGAPe9Wcderj/ATP0Cyd33MYlT1FyI3kWD3
steqkYArDG57HcgI+FBgR3CSxRxX9+3xxeT4JBGut/38AQ7w53odYGr0ocsnnSbM1um4Pj8H53e9
ijdKO368ddIWjCTfU2AFEEdGeZUobUt4AiBO1H0hRRfz6AO+10CFbt+A7Vv4bobcPAF3Wzu0W0fI
43VxudutjkhW1Zj3XcwjkuW9to31kwU0RzIbB3h3YPO+10273TxAHUmiD6ad7Z8eXB7JcydhRLp9
gDouelXaLbNH7La8uVgJonerA4onkwECs7A9XoMujk+erBgrAmnzdUeNFvfAskzrs16b7BZ56AA1
r225PeKT9p6jI2bTbZhWvxnE5ru9vQi4xDen6n5EJudWLfCcP/7+9Hq4fn/84fI15IDvXQvh/2//
+rs//9P2G5umEn8DCduo8OoyCom0vSrwwzMkaDK/iG+ZXHT1IdtL8GTOlKisPQKP1pfVLChiO2y7
VwDa94abF2i8d0OmqdfmPdk7wryqh1DZBh4cmwyh4iz+4XaLc4z4Zka93B8drG/Y7OgcwitfT2QT
+9UB4gyvV++eHV17fXHEethWB9BGYmiJ8e4wwUtMMmVY3Fo2sHGMhdttzOKvXW6AXVbRhqS1s74y
61b44cVGeFKauj+eAMhJq6teVUSzewHgWe3W1T14tHtfJzi18AhU9VJaCyhemGagmpYVYPduWt3i
gw/ZYFp9cmkTknG7fLz93sGlkRrwNJZ3v3eEObEr5d2vDs5Oi59dB15hzNXlNVLu947IVdY008E7
gra7FKuNGYjHP1xekweD6A6FF8wjBoI1EYNiEPCZ81mQaENEKq9gJYaVtRPVVbAcbFiNXHl85nwV
1HuqK1ccxzSUVnYjb9QGrQG0H3nSOKKgtO+h95Ojl5Ngeb0ua/GFYHUdIOD7E6Ob0qNoEp+HcwQz
NbRt943wZab7NgCaTW4KUZjaecjzY/WPfwwzL07v3/dKvg8CK8QPQ8Xte/rF2/49h1/7nUM4VySs
0sSDIvAkPqDohevqVa5rS7C2G8Xv8tocry1Gl7auPX5dSrJRPKisDbbOh/GgCK5mW/eVo7nFuvmE
bowwwpAgJjtLA/BxQKhcODq4gRduwb41xLiDCKOBpNoii8DgommwtY6mREh0VAs3rD6h/TK4X3Q/
rI5B9B4FAuejEG3eNHqPHPICAw+sRjHO9XYVAPa1TsE7NInOvA/Hrzw0h23GDJIHmu2TTxz1tfpy
euTDI05GW0vgrAa3NbgdxPlF7IldYMkw6g0WrLo2qLI7xT1CAu4UwdfGrPuorZ+4ENLqGqIMiJQE
bgu4bR4AD08dHNyR23INIUVYsO01urLy1Wbb8hPCGJsfGd2XqY5cPby4bbS0nRMoAF/dxANwBTFG
LtrvsW0Hnv20rq5virXroiOres+uQ96ISAQkEgmPzOun4VpYdMu+fpW6RRdY15Mjm/26Fq3rRQ3r
W1gHYMmeaz+un/jz0pElfMsW3bIvsE1qmp/4r9PSGGNAz0ngDvJAA7lQgzTVntqAU9vJRVsA62ps
eyIHNbUX/ulyvD2+Xt4fj0O5qGfKu/K1uUUpQ08UDZKcs3uBeqJoKF2rzrxdF2veio31Vz0zlhTx
fbQvWEMtlOQyNSbiuiwA1nxs6GioTJL8zB0V67ky2SbzsBoc3LB0Yy1Wz80rktW6s4/03DKUEl4y
NK+UGuU/rTeFqMtBfGMtWDN4zTNTnKSFNg6y8jDQXfuRm6ysjsD12HbQ0C5UprZndWdhRCoWLgyt
NJKotyo/G8NMCdp3cEoxVuND3TCjwQvfMA0BGVYE502Zp6/BR8ZLWprEPXgjQsWYR6d1fRVzadcF
emUEp71IO+Cja0lLu15l6wYrIayC62p0ZNrhSVau7XJkDsCHUaq8bYRtvevHVW8brds0POE1LIBk
ZhTVy6uiC+Z1kEK0dGkAXfJeixaCaHRaCfeMI2LLkT1ceqRfpW2LUUTLz2OgkpH2tzuNSYx1+HRq
MwpHZVgHtj3DmIIY491ux2Rp9KLcKP6YYRGB2frIsoNtAN728pWdUwOEcwYRLtFltc2WdqdW4NS+
V2lVbxuxPw55gZqQKGmMtlkQa+xQPv7udjt9fQ0l8520o5DQ9WPsYER+r0QWJTKPJck82dKeSJxO
3pMdS+bJxXQI1sDjPEcyIbJJUF23DhK+6AD1Mr+82TqAJ/P92mC1nCYKOjIDlbQ/LtAIZyQxthQ4
NxsHSX66aV2rS95JyLL7Qyi4+3h9HlBEIkg+Lr2JBW1unFOUP6HHSaDxC2ycFyQJK3Hj/Bov66wo
1fsCH2iB8QuOZAc1EcZ8CjXOh4ydRggeyMytCpVsXEMVEUETpGpn3/oJM7kMTvLyZB1Mz18ABYvx
GNbW2W37PYBc8vgFZepT2N0XxLiCLn7BmPo696h046zqiAdpZtc5ISlPks1Ic53yBYnzM9d8/riD
WpGpzuDHZ1Alz7AxVtcdiFFFQdyBdHWyXksLOL/U6Hr/vP8oQcqcIylzpk5yKBjg4y8U00zvVIx1
DwKlK67lIBsVqN0O/OQ9kVzPiEPZuwMOtqAY5m2BL7ExDq2sEgdHzNUB5qrwF7IIAS+BqRklW0gJ
xdjUO12vugfAGelr5N0vOMjXltck8EXEU0DuLMRMTE1ogbv6QfuejIFMyRcBEZuemf6jNEBScsxa
4yE0OIO4Q9LKTwgNzM54s4bcfUHDPp22I2ohORiHiTprDACTc71HYAbpSTZ2m3tKlC+O5JzlWEbk
lwW+QFK62+Qo+roBh5FTRChMlN6VPTSFPJXWAiiC4KExyyr+ADi9miihqSCGAYHv7tCDAYNZyLpR
WkRPaYFfICrDQHEy49IaQ50gI7EfCQqSpNKzx6kgs1/IoXneoq8GA4FDuNRA8CddHCCC1pj05YWe
sBgmMSIyi9FA+vsZgxBQg1q02Kkm7SeopAUnTbVLeZuQKC27Q/JC6S8ai8IN+D1Qpu2U10pIEAu3
biSG6HJrSBGOz7Q5O9GIBcd6UBa/wL5jErOpqAAAFYTfYxdIQNWemPsDGzXdJmDWxs5MTD8RWuRh
DIiST+x9KjD6arGYfIEYF0iDQF9wd7AYZO6vySeb4PR9vwd4F4SoYwMU1hOcgEWJiQqTzwA0SkcE
ZxMYqqx9sAllZy/TTfiknIr/RNVA5JjGi8V7xia4Cclnd6knrhvf0FNfCQLMwWMeKVBJdhJ5dorG
yZtQTWmq7jE4oIxyiR0/K59HWrmeUZOYGHrE+zKWutCHZv1MkUv0CI5BC2WHxgU0mUm9a5OGT+4C
qA6cz6S2nnAn32jEZmBjgWdpBfbK8lFPmETQU+uI84mscuIu5gQ87MQL1b0H9YlP8KgmDpjIGQBB
UxWu7/swE9WHOPNIa/KdXYE89Kp2SHZ8cUAZN+6OKIUEOHSEu0Yc+v6jBli0rmILchClAILOiZmh
LCaUQEr/BwpkpCXwJFyjAOqenAMKpFSz95BYG4q06FmkxU+4gjL3vWtgk9CYU5+/cj5hsLaJEfR9
ksBrwe2Mw5rJKbibCRo50TrslL9xPtG+aNSq7x+eOEa9nsZrzERccjYzSuTkcRqP7VwxUQCZrxic
HHhWwQ68x8pTfJrAupQG06McNzBL8AKLCfkJMmkvpk/KTkSlmDyIuAOAAaHvin4CSqSNKnq8ScxM
U2c1puWkxgNJKfxd9jVyn7E7CAloflLehUYkp/wdFwmuQahp5A51G6ntmL5bHfpRZ7YUR8FfZ8XM
qsbBYz71RfuJXNCTME/EP9iBsDOGPLElvZJ3BC6hkCdB/EEIW0/24PUd7jYAzxuxpPo7QMEyeY+i
AlVvK++KAAOHnXD3WaPACjJTh3z6BDiHUVNLDvWNMjM1xUyOwKdeJj+5Ceqn0l0kmInGyO5CI+RM
2k2VLT7Rv627I7MDSFlemwDDLSCz3swCn3KiLLXPYhCnAgEBbmbXmWga6CuUKpteaPQYQGeyjcNs
IOzBHrScJRVM3AvOmmFzrvVlglB8qzcP/L9A2GiJM1TkzI6SfuawsxN6FGqWeCcniqM1d2VBAq2F
PEvJOz6WVfUEGUvUyTKMUHGUzOkEVhyyowXcJtN1d0HWt8SA0DTTDBMxyaM0aqY62AlzEP6u3C8g
dZm4K7QC1EivMJMUnzCn35pCY4cTTAegWbF+HPNEr5OZ+m0NPKjgdUo7M0xxVEHqmQKkJ/o0IeqB
qyeFJcDbJMoomfCz+wTg0yQ1I5jakvVzOhEiZS2vXJ9XA3ml/B1JLlBecTUzztxEk1NypkW5iRIl
xV15mSjqaYctKalDHGCyydCVgyxpwOU0v+sUQKtuPU5moI8itZ5NxT+fUASNlvX9Rnqi0bJJiEVO
8ipk4zBQnURh5PKZ5hK4iWFAOFTXX4I7wxp1lxcYpQlNvyAmiUZ6ahz5icjVekYGamITuCJpAkLV
IPsNKC8kIyM2MzV9xQFIijYPwO5vEqhftilC6bpgwS2QNOlulE1OkvZpOilgKUDWUrXHjYs/UB6l
u8PUh+ydNQ22B9FKlFdTK7FiEGdDTMHp2YNQkydFQlRxYt6gigWxlXtyGKGUmqch2ElkRsi7alkQ
Js1dNgnAJJtmQaqJrPWsNs4GoTpwF1ze8bTQXTjPZjqHmSjSfJ/utdYkyse/XG7vX06/dqb1ha/n
f338p+PT9ViVuW5VixL2/g3s1Eo2auYlJ3XLEZz7ujuVqsGHs0rS2nV7KkJGiTHjbnWWD5sPSdir
OgILO+oGJmGz6ARcTt3UQeWNT5BWN3tqcS7xxkm3vFqczYrAEjiv+1SZzn2jk7O6K5jrnBxdmayx
rjqrI3BXnV32Vgeb53rU6aqAg6fCDaQ3CYGFHrVik7BJdgJ2M4JBV6ZGDeRWYPBEhdk16WqA0bbl
DmErb1tQvfKvP70C/sUhTcWexEqMmjfJPIoAtK3WetRfVsIpCAlYjpr5lI0DcNq7ye7B4dQ+YRg8
NW58rc2o7eqsAUDauKuHPKr23AJfWLO63OEcdKDWajROdNYCIK3t65ZXfoc2dN8Ooo1PGqwrPeoj
JycjktLqbDSHtayOLk3WTcp6d44ubTh6V8L5OmnrfNSJTsJpIQlYjFr4SzjmJAH7UZt13KoiAdsd
c1gZmH38/en9l9Pt+Pjjt9OXTocRm3v5/nBc/vVW/c7G3ux2+HFfXcd83Ve3HN/e0dPSOjcSWmV1
0OCRFf4fnzrvgIO+qazInmAwkXlwFnKpCMxZrem49uRYUfJN41TR2TpoqcnqZqCEZgs46MTM9Kip
sYWMJp28bD1OP+xtHbRBZeXOG9PI3tER2fphe+CyOrg2xkcKqsWNoC1pDtwUrtg7+hJb0oK1Ecdl
36AFKxP1Q3MdrAFlx3m4up603ia6aTNLym78FZ3djMwZe0f/WEv6GzfcvayOwIleXs8vs5BFp5OX
a4u5fnoHDC6NF2Jrxu5lrOOOv8QSa9wx5dxAqW/7DesOOCAZ2j23QzIzU440w46lOT16B/13WVk9
5KlK1yEZtHlVU1wPdYg/7g3JVbQGvr5Izn9/DV2Yjs+Pfz19/fbeyFkiQ+V8yDRRlpt0hBUcDnPX
w7ngEXyiLkuiOjXegrJ5MFjcDHuVls2DKdFUYeaNIJJQgqfVRa269cDBYHOjRvZV2TxAndajzroF
HIz31m6k7ZfNe7B5WzWZlc3qAOlqOGgmQmqsbEsrRqp+JjhoKUjVDKjQNTg0cqQtbyVGxe0OGKxs
3Giae7kvsDa1S80ebUDvSaubUdvqAg5WNxwSm55g3cqRWbsiDnGopp/x7sYx3jWH9DbpSiyJIyPy
CNdhcIjeDORQ0EKTltcnt51LQyf38KkANT3hXY7M2nxyifHO6sFKPbwj9jacCVXwDq6N+mHW2Xmr
DE0NoX9cJOjEBBWQHSlaO8A7IkRA6atoNTnP2qHYgfNPYHVFWve6PfhkMKNvG1qLzuYNOHtZfSe8
57M8vRw2SC1nl+Dssl69t3kE7mrUNRcHJ2Ju+QN8V/ld1vYAXNVTSE3n5ApsvYAH3mh5i3cBSZaO
IhWNCBRQ51K03SHPncXsDnHgzrWpR1r2Tq7ByXX9XFhn6wBcs1HfZnvHDFZPp6i21vt89qynY1R1
I8fmg3c9bf5sG0kioDBQtNcm3/V4tNMpqFv3EN4xEuDUXE87bbM9JFCxFc3g28/rtdOZu1v9Md9N
jy/Ehnhz2Xrsxus6W3dgdTmauZuvW+LrriXDnlowh1IMckc94RGG7Ta/yk/9+K/Lr57ezqenw/vp
5+Pev6tDfP54faJNgvVEWYp2s26cXOW29cSgiuB0XFmt7+isawHg8QgsPbEF09rDSWt6YpZEcMNG
gUi9WRYAnAykGpwcxDHJEK6UStY5OQAfj2fSExM+gZvRXD09sWsSuIXXNvPUmOFoKj3RsNPqbA4O
Vrd8FL/QE/dF2rweBaA1tC3SrUtIMpMQgLUCEuwkcmOtGznCNTQI09b5bG3omTRuNAlNT/wuCdxA
elejarS0dQO3PovbmDp+IHsnB0/V+MnqOPihMZdBjH04FlFPTPi0bwGZ68wFb2yNNdY5NrhwPcww
0RMHQlqdsFdfWUmFtSNiZzPWDtZ2YhcmXKV4cETf3o/X0+0nIqT51BEl/DCzQ29xS2DXMzPyeupJ
/C6By5HbUk9iQWnzfDRzTk+CGglcwc3PEgWcHGU56EnEOK0+9OfoSQwwre5GOTV6EpVIq+uRA3K9
d+Dr5hyefOJLEs6ORrnpcdw0QQ6HRut7cmKcrlNqzO7QIDoxHmuu70lqcWY0l1FP8zMksxDh2O/I
Gie57NApODdrzq13a4MHzu94I4g7OUilE5ep8GbG3IDPkREPf22y6Uk+SQLndYBAd94nyMjxJBrl
Gt3gjsQ1p+bMBeGdQfCZr5mxURhRTxKBEriCBDvxNQvn50SDMG8hY1WTKCTTkE3AXEdJhsyvTGKT
8OLxx/Ph9o2I9+QyAZ5JMmdwJ+DucGyOB9jpe3yyZOTfjoTvcHGR+WY7RN7hXCQTt5r87RVxwNsj
/Mg7twIPym0V7ce695LpexzxdLJk59awS5aO4XONDXtHBIOOSGulFHQNbk0OB5ATf+hWDsp35aAb
xhGx0KmHen/bM8ckGfPYhE7W1YELXQw9wfoe1yCTtRNdd7YOVudu5MbW90Qf6Dy9zivDjmQyTHTn
4RPQeFC0YnBd23VIBvAXNpxWqWFFjqJ9SXnH1yOA/qtoi6oxX4XESgdOqv2VzSIPTNUvTXfQBrDO
WH1y2VkdgeuZUIBxPjLns8mb0Pd48dlwBK2+x49OBqv2mBQGFmomkGC4iptRbFnfE+djwyGn+p74
Bfc7NrGNBGSPvz+9Hq7ft0zv/RRJFnSXP//TPqye/mXCZRwRK8qneYRr+SCbGE8RnhBdTBOWDfyE
SbrxUFyyf7A+4ZJNmjJZH52/EY62gUdHJ2F5W+Wlk60LsHQjGU1v6wagjo1idmR9DdYn3Mr34ZES
6tq5wmJHOpBfOcIx2nJqNjEH0v7NaEw4Ob8E8CTA3lTvsomLLJ2fxC1lPcOUTUzotL6tJlhL3sMf
oj9b35/pwYP1CcNvx0SwiQ2f9q9r/HXpB9GfH41JXvfPMf3IOkHC7+Alxp+pWQfvrY/gy/2HXA3t
evAI/6q+f1FGwbJl6//21y5Pnwd9jBsWTCb4SXjYGD0K3JD1DVi/KVvhPXgF4Oua7N3+0dbVqHxj
PbrERy+hl/imdW/rEmydjSIoBF4DeDFKxyfwDsDrO64e7J+GcJpWIeyOQK2xTRUG260PI1DGslG8
kqwvAHwTedO98wN4EnSM6Ryd9Tk8vxyFycn5Af5puHcnU+chOGP1qLidwIOnZ4dBVwKP8K9m9Cfw
+3N33L8F9K9GAVCCf7R/juEnkV/TSZMoPF08/p8BUxdTZ7+gXmvbagtiGlLjJJzYZMASeA7g6/qV
+mWLaViL+2GlOYGXAF6M0voT/MTvzklMsO20xyb+t7S+qfHX7h+gzvHad6x3W1d4664Kju2ubhLV
4yTAFdLVahtNTGPBgsSZBvvneH1R17DIHjy4etdEHWxv/x7sX44CfAQekV5TPCV694fOb0eFFQQe
nd/X9yd6+0dPV4+CPgTeAPwxvP9JxIyTZIBoqKjd+QXGX1N9pnr7R6zPjYLLBB6xroL/YGgEQ2nj
6urxD5eXl0OHq6vQWG0oKEjhZNsdUM01dFpR39yomis5zqO10bK2rvbk+2XRkfe68YrFx79cTy/B
z9XpMxUyYf/t89+PT++Pf3o9vZ8O59N/HQmel3/+HbCylB0FjCIkdC6RzORWG0+wwLGk9MgnmWHR
nmvLkMq6AKuQV4RkcvdgEaQZ+nPSqghTbuS6zqdF6zYJ3LZdF2CKVhpkH8JKU8vL/tPz8fX99OV0
vD7+9fjleD2+Ph0J4aAWmmlnrPZpk4eSgdGx+C5utm3NxMqof7lePt5Or187zGP5jUlLEjFMwFiB
AUeXYpRfFYHRsk3ihtgtC7I+hB3VAUdgBKlH6UXrsiCjSvJRVeQKDBIuhB8KzwwMMskk25VzbjSw
cMzr9fB9Y2q3iqlFRgwMHT/sqZJhgZHih8mxGRaIANLRpG03mGCBX4j2GmhRqcYsMcGqUQp3hgVG
rR+WHGRYICtpQw+13zOC3EvZ7e5TX573b6fb4/8+fv/lcn0mV8/HvDZR5DAxlCe34xiS1YZEAylR
8o1oEvxsC4t2zMfvno/lWYJVo6wdPklJ5L7esStqm1vkwfnwvqgZh/M+pua2vkm323JJh9c9g3b5
zJPWRVKOOu65O1qiONo2rwOuUNsjJSawgzyZBOxGbpwMDDr/KFO7YG17Zo77DvlRqYe7owGPE8MU
9nJliNE4MfSA5qMDWMVHTHnFuYCdZDQfdT1yiCskUvOTgwvsunPSjayCvDhoEKaG1UH0oYBGMFJV
WCeciWAOnF6zUUUbPT1Cnx05XukJQDMZKeAHFIJVEqJeombIiWjdhM9I/Gg4vL6J09YJBrmFRNMR
0wc0pF01aqmdkOdHEpoiD3BKySH2xax/kx25jOn6gGtINor55NMDAaNIcztRudbcHQ2UnJAjTZDu
HX3Aj0J97o6GZY420xW9Z8snbeaknggqwHOUhntX6NyKjUKUDjeYc6SDb0++STSYK6HcwKUlmiCU
cGZ2TQlXtSgbpqfX2/thsZUvXx4ve83HzIW41mOGsoAb2IzNNMqHq4ExRRsOV7Zw2zT6U09uK6dG
4ltBcAvZiPFj3cEgV6Ij5YKNezZCarysHDMfAwlZi/HTM3PWowHbNLO2nGYYJi5ro603ZZJiR56I
wsyESLBOrx1Em4HAxo4FZQJGSGsaLKoOdSOkNZbwnswQ0tRYSJtZK1Jalmr2pGLhyjSjIMftNm5n
M7frcTk7z9dtM+MpQu0s/6fMJ1rzt3gNrgDkMCk+L4wSxxZwPsq1LfsG+a6knmD3ci1sUuIthES4
UqN89nJiAcDFKFWwgKPVZeXdrmhIZVfu4f14Tc6Cy/Xx+J8fxLFAqEpNlBpJeoqEnQa7RtPdKmwM
SdKPJVrSdd8iugE1/sCqIYQNmKqjqUtOLwnXFwTc7sERJC87D4dw7cLDFyVJHnhcOHxCdA4+MkQk
KcuKH9Bh9+36QzKTpN6Ex0TkKnssXxzA+WpCB9iAc9nCGgDrC9oCBmVn2wjrZekmETQvrcHS5chN
b7IMawGdsorMDOvSKfiA9PXiol0c0IoqRBq7Dpl2cTGhldXB5jsKm5p4miRp2RR3wKoRBnn3gEXo
8lCCXG5ZBGDhktT3bEvvbg2dW9WI891bA9QqySvhvcXBC1MavhJobEvSWyw+lYAE0/0A2IEsx29a
Fq+oQ5xZ3cOZwXOT5KnWOcv0Ax4gsCEcs9s+A9uXNXvcnR0srAvJBeLVqrtzxJvL4ju9W0EnlSQV
cRH1bM8jkW9Wko56I9kCVAhJ6lY3cN7lFojuysWFR6Bsl1+hpyPhBQBlV5Ly1Qju0gE2HUg24RKk
AckxZ4v5NaTEfGeQ3tF32O77kVJwyCAiDO3e0Voqd3RjtX7UqzofnXNw9mGBO908aOrg664te+RN
ej4PE8XcPR2AHatDdaoDDlppOA5XhxwifcBMSAe3srUW3jwUDWl9uws47j4AOxTQvjWtb0BOVIr0
AT3HADiANaMsi5V4AelZuHdEdWqUyUJPjfCuRp2n120z8ObMBFgDWEyxyFBL8A4+VwXywRWT9/AK
0D2GJFRHeWraD4gJ2v1wglfevQK7ZxNKMwBWjNJ56clBLw/PIMEhVSBtwE9IBiHNTTYvJjyCJPPu
4gdyrIOljWsonGYt2t1wJEBeGsB6fw9zB61nSP3ALlQkJ2ZH+gAfZTHTD4BuTbR7ja2SuVxudf4v
12NxA3V0HzGRYtFJZuXY1SUAN0seNjlq1uHuaSFg3ChplW4eFLM7Vm/edT4AOzDYYWcbugPQC8Dq
sXNTjDlL2r0fZbFmWLCuG7atcPd0nTaNh3K3NOhf4IatFzIs6CTkxag9C8U3IBmrIM4gQ0u7F5MP
8ElXHutqP/oOdRz3b/DAmy5wtvU2EnzfYcbd02HGmDm1w64blo9q6PPewVv1HD72WZMX07jkTffe
AOk5XmeqN3tHaOOjLi/51KArj2ejFi8U5YjBYHqd9YgxdkJtoKuPs/Chz+JVRtYNK/ovDaxvzaij
0frS0DNrmrSoDt4Qufl72AS4eOuhaIRqY/qAHfV5WU8Pbk6Nmn9RLokYjZyItbHOmrBvJlQ76VOv
61dDxpCqx3+PLWp2abQqa0U/X07Pe21ITdv6OEpudSZpBMaNaawY0aqa9Euzw/ComjagcoTKonvY
74BBzRClsFqHUNP+cs4OW36t2ELAsh74wXcrg0YeVADXZoWaDo9wVH9YJyBkwvqkH/9yPYb53P90
HM7nVrH+C/le1zuJrktVRfUi8PBOIrDTo0jLCiwAcOMw9zUwB3sWdQxY1JAwALvSUcdXve4ZYMuR
GMXyHdsAT2KwKxlufvb9xjVYm48CqOvGwakdCWrJPfAkJrY+gYg0UfnHM7jA4KaOaqnd1tG5TY1z
vkMaIDLrRuH2FRiRNxvFJQrS0NqEWEwK2G+vV62v90+v4PWqSa6XVWKUnqs+wXJVS1Kym+Gk6tO8
yNaS4o0muqw+zctdLU1NrX2xERwPIKDp6LWmpybBrgQ+rMFY10Yb96MMtRUYDH1QDG5cwgkpajhw
Qn2a1zVbWkRg9/eN53QoDdeWeOU6/74FxsMDSA53WLnFNx4qo8woI3AFBtsmdQdrXdb2em1W615O
rx+33sO1swpVa0azLNUkuy6BDx3cKqXHoZbubBSMWPcNKj5JHKixEFdgsLLVIx+pmuTWJXAx8qmr
cW5dghyO31x3DSpkrZ/gGjX15qOe4OvCoEDWOrjrWet+u4/8bAScgtLv399CGnuHfqPPF5BBO8mV
4kROCh6NGuMkwoK7oPNrRaPHw0CaIMNjY0M+VUPCoIagU0g7y8La0HY8tGhhQV8jOwzGZFhQxk4n
1tbe5gwLKI8MVt49VAmMywQsdnHWje784w+Xr6enw/nxz//2tx7h+ZkM1Wqs8fi5GFTDmpx1bTR7
SE7WxooHrcNTjR3pZ+JfA43Jz0SwFnDjSMEEupafKWp62DCs3BVau5l5JAghpSLk5+P5+H7s0RHu
TkucfU0dq9pq+oBDwDT+IlODS9SUY+yqU/e0FDZ61I5ZoUrzBAs8KBzk1Atn2SgAkzeNVlWTHSNE
u13P8I0CTNbB3s59FQw1r1DEruyiw0DyoYG8OrChYJ8PRVwI27K6Bp41diURod2bMnP6cXLsCEMd
OxKwhRiTeOPDnj8KdilJwMPZr2pSnqOI64SuvdGR2/qHD0SSm23O2/HJ3Iwc/LBR9AoMLmTsuI7A
0+kVbPw03ZwUPYero/vwY6eomxGSV6NQQ941fgE0qOsbz4Wb8Qyv9y2VMiWJNMf9fx1enx9/PD0f
e+26RGxs8/Uj+nt+ON3ebxudidxdBqpWUo4SRTI4HjEk/Si/poADrVDxUZfJDI71QqlrcNNZHYEP
G9VlcGx7yiZ9lHdWBwaPIt1hdG91bEDIYfJguXcEvh/5t1JdjiO9Hn/Z8y6RG/gBlZbpkX4nUuhr
DCl2/hEKiRVSpkZ12iIFoBAsH3kuBQybRWDe9BPwO2CgkDJXryx3wECB58Pu1QLGr9LKw6GpK7KB
ycSGg0/F1qFyDCwhgWC/Ied1Va1srxktzOqqWLfbNUA2s7tmMduDkY///PH6FPobPf7hcD5TFixn
ol4PB6ILOOM6abPDNCaxtW8er6wgMIIUdSt9tlsWaBjajBIDxDY4dgxcD3lqV8bxXtNMENlvG7U+
HKYtCTjaOQH70ewJMXYyJUheB7jdbs8IWI7ynQQcspuwReadsGpegogdREMR9/v3x989PS0qyZqH
8GP+50nEVJcYWjScNdkYn0VMTRPyVDtgsLIpYccd/+CzeKkRo3IwAcemSmKmx227Kui4rozOzOpq
ombbqBLJ0VKqOqS+7tqDiCOHu8bxeKNGUXWxTSwZb9tXwXwjdiuDOKspZw4nsA2+0LJ2hi1EILaO
ifsdsAOoZvWe9ysbsDJ5UaoqtFxRjbDFITCqy3Wk+j2OhYlt/yKjCAHpy9fr4SVzhmH/xsgR15iI
bvTZYV/nCLX6TXSjiCjQiMXQJvGd5YatNQztrq6bushhbDydzhUoR9wFbLHpjk8fSXW4vL4ff80G
XGyV/cfXMMn89evj7173v7f9WvjFnw/n5efPa7tdtim9sDM18XxXRvMGHmxH0J1U1xH/rVM6hQdN
VdVgekm1PAAX892DtqzK9NucUHDQ5XQUwKaoR7gjnYAqm4MuD5q7Ei96lUhOlwe716Y/uIeCA9yR
bkKVz4+Cg82TpjzVhAN6dtCcVg2mjlSoB6vLuret7YCDmT+0GZLpXZwYCdQEXgyYaowXBQdnJ0Gb
2IHOd1AHVqcBIzfYPHixTe8r2WUYDMDzCdVyiHoSaguvV/UOD9gdzb/oMgyBd08aI60dJLYPzNkV
SVohbyYuzh//5Xz5vGfhHDQ9TycatF8rwIh/sl0LzfY4YGm57wOZz8Mf/+n45RTabG9+ShZ7y+dD
pukC2zH5JM0xPhSabmErjrG294cjXUxTqsxr8NlEFTOoMt/ABd687meZbJvHq2vbTxWgq4OzWwXP
PnEUct1UUIoO5sHZadzf91bHm6eRf5qwQsHBKBKaGMJ7F4cn+ZDUpGqIET07IhvinqaNfujmETjv
e3gp0YKz2xnqMLhh/YQNijoATlLCGhFfzo7IRtZkozuroxfn+wlBFHXoybAaXHXuHaHO9VOZ6ObR
6oOeGvS9I6KV/QwfCo7Ixkw4LWbUes8qV7HwST3++HR5Oz7+4dvh9PoYolrVxJDb5RwNHCIZVJRh
QCOgmbd01lUBBsoQyfoNe1ViBww0aDlo+F6AgQIsVX9uYgEGclv4kQK6AiOxzUaK/woM1D85CO0U
YGAzyMGY0gIM1F7Ju4P+EvRUTRKi3/c4A2NzQQxmLLI8RQUDD3KsArCdArv60PL/bk/JbUHf216f
ctGHMXaEW79Pgtl25ZDn345KtjMkWlNBSBiqsG3trKiBNfKCWz8oGi4ro21LiCqNXOiWpHHsHpsD
jqYEbPp1cRkYHNg5CCnxnkU95rnZswGQvp8GUZZFl8T6+RsZGIy0J31d6ZwzyhrQG+P9/uAFGHAl
0c3ejLDy8f87XE+Hz+fj459ie+/306ERbhINUrO0Tr9VXSV+o4NC7wypcQqPHWVVUXC0Ohnz3Wov
EVzg1e2YdmfRQevkmIhmMTrr1PixSvze2K72tRURSDiZfp/oAowo0O6A49rMPf7t+9sxmd9r19wf
36MzOfxDIsPUHxamN2jRb/kfQS2Ys6BppJ7EeXP7vCEYa7KxLQHjMKVBU0lNpITDdWt6kHaSwAAc
maYQOWW7UwAq5BipHJyQTusRzVY1OKGpT+gImAOrSYBPia+in6edQBlY0lYhAUERYz6hS7RdRSuT
qQIritofaypAtGI/gWbDDnpTovvkN1BEOaw7mC2CenglXHczZ3I7zvExCRhpm55vBKzHXNfXu+4U
PSzVnQnl8AQ4zeSY5jy8DzokxDVntOiMnO2MwAC5tuj8/eVyPh5eK44rJ4MsTdsPQa+bkZP5mYbk
1NMigrUXIQAkukZ1fqiiGNpLgCh8a+NQALjPUE5oc6mz6en2XuHMTWw0rXS3GmWFBFev6kiWZDUk
uHsSP4z5MXo9RBrqkmfobsdYfh5GpIaIbpiCl/NnTsdbdIT86/H92+X5th7YpCROoB4y0+0gsYFi
LYv296+4iEFJmgmU17TCCCjcMbfdubNpTT3pmLGmK7Yp2hQandd1U90ottDaulsgkaANPjTpASRK
wGwDBavyfuOj7Y7QcVlXic53hM1O0c/gT8tyyA+IAbimglSggAN5C1bF2jcT3RKSjTLQ7TTd71QD
ilbt95UqKAawvHGitCgGnNO78TOA++V9qy4DIjI0XWuyHBTgV/BuR6GN+tF+eTdjcnux6Gpkd4x4
3rEF21U1T2XtUYGfSAjEFgEgd2Pyhe4W0a843JCL1lTdIrgf02AirH82pkRhLZO0b028mQ0/m0la
YXtzOsNBaR7q+2Ldfv54PxIhOmFXZkgnk0fYb/2UARGXU7sB5wUH2GKUrBvpd7BKLmHPD3TUVPD6
76/PIVp/fK40Lo7tSb4baZc2w5Fpr7zvhkxc9sELAFkPLizcYObfU36kGc6CBoqO7a4wzrG9xAZk
Pgs0KF8XRq8xjrXb7Z8/zufqjqC6Zdqq4O2OILs3bX2sImDYbjF2IGHEzG4xZvee0sHTwLC/Hr8c
r8fXp2N1ejuZgabbRkYbtVl4f52smAyGJ01qOXJ5WAxmB64gCxGXYEcWr8WVVlrq4aIcA4o6/UyR
Q2psovHBu7AjKZfA5EDeWOhFJNlJteZh8fHc4M1bSP8JduR9tCOlIx1QdTsK5SXREfc1WOnV6Mwu
Xj4fr9WTWTTacX9Y0/q/t41o5O1Lco3XjoAKFHoeXL+XYYLEXIMGGngJ/UdQDcCKzh8Huzi6osLH
lAMdD5oKxupuz+cIZsBGebdAPYJZACYGinO6C3A8GtvV9G1r7AVyAwNBz7xAI5sv3z3aqt3VJlWX
iHQwURWBSbpdB1aU40vEvjUzcD1opKIb68HDkPiEbOBo0UPfezqi3unDKZbkIxcJdQc/H6+3NYjp
gwJ5+cv19HJ6P/2cmYyfamS66cGyymU/1ci08jsFiUICXqn7M79XSKAO6H2PvADqg25y+ffT6zs3
68nt1s56aHgZ3e2kXWCB0UY1MxKf9LlxFwDsD/PMi2LHGdUiifj1ePKobetSRXtOtN1+1+t8TrSo
HO9V4u7qtm1kI9drdss1p7jpes1uYqoZGvgkfC1C4lBwW1bdQII1aZSGOAP81HVu2sAZJ5Aw3Gp4
P6vKw3SeBNkf5+5hLk+C7NaO+ziLfb2ox9+9vZ1Pi0H7fnl872lCPk+NH/NCa323wjlDekjAg/7M
Hs2qT4B916v/5LAnw1oxoHyHuzBZ27indQUInE9Woa0CHxtVhoi2kAERVjk6owOAptvFv1wluhHb
DVRtlIpoXA3E3CywZJjrjkv3MIkqQfqdsyM9j2Wrlz+9vkuxPgA97Wqz9kndI1zPebhqnk8Ni9fV
/XZUfpI6nda1tYYuKtjJnvuZfmXPAFbLrlveT4oM0rpmICv1XJ9QrhvxjbATyL5rvqwK2I1m6LST
dcVAA9JzDYj0Quisi29I6V2PtPQ0TNbjytvAgQndDxL43DQMAOrBPZv5e9KuG68tsEhvZAh2ov7x
bpS5rIuoxI/PC/VVbQaMx8wfhB7pccs5LzkdY73nWXMeTcpUa6th1oxIa9utbI6QBq5pTNdf7WFU
MUGKbiarhyHfBNn3sflp7yNt2EDIoXhZgtR1HhOFxNEg3fdd+mnLI02qV6l3z8PpJglSQUpAkOA+
sbVLypSpf8vDsGvCreqml/lpdyXdFic3u0XnFGNKMJj69v1g05NdEHtJuvv6YtO0SMgp5UgVnrVD
spJ146llVcB2ZH+2l4etjVMU1w60DjnLIpC61xloAYymUDZ6vlwvL4+1/SqjFQLIx+lumC5DYtKz
BsFy4Ad3fvBQEiSIRjqLICUo6GZiYIcmSKSjq4HVHCExi7e26/FfTwqCIc5B7IKH7cxAOERIAZ6n
7zdbyJAeLMnhZkESsBMIUgBIL7oxmBUSEK7X6JhYT7BiIJHSqoB0vR1wzYQjcC1ODWSZhG2Z0n5l
TQw1LEp5dxLuF+SSewZvBpCuN926wRUS1He2aQr1nQpQVsoYeqJYnlnXbbGxMhVMSazOmW4oCUB6
2cuR2SCB+PUD5U+OPTlprx5RoERuCkxFgKf4pn9IfS8CsE7v0BtFajUEFABBvl+sUeQoIgS1a1RP
YME7cwzxMWy1WN5ty1M2jGB1Nxq9qk/YOJeqjjzyWmlD6pMfGLezNHsrzMCDOUuzt0J388ZWlQ2d
04whMYaEGwRFVuwiRVHuAkdJU1TJK3j8WjRsNdOSFeumFXk4Yyttww/c4jibU9rBDSvoLpZul2Ob
Du2XQ9OKaR+HTgA/rh1oTh6lyBk+evwecWPDzYCpepQlY8QovglHcRhaEqSpyeNRipThewd1ChTb
xx+Ov8ZZLDFW/Fo6ANlP9vEvoUfuR5lZ+qPFqVGKi67kj2CwvZniBkIaANl3vq+QY86rRJ/zrpDo
nP1qwBUSZFRy3dVTVkiQ3cj7BswKqQFk/0GskBZA+m5gdMMQA8gVcLseQPLuyBf7yZDuIxtBzsdl
aK+6PlGb/MaQFWta3UzYeIaVeF3ebeZrU673ZM/9jgAZFu/Z+24CS9kzgmW16FEtrASw/ThQuSME
q8d7nkQo9GB8RsEzgiV5Sbr4zzIsTtshhVWxubBo6Qqcl6ZukbLZAgtow7lue4xCGyAPi7HunO2C
ZwVwtXfzp4cZgpU/HTfBoWN79fePa8gEvh2vPx+fH//jcn3e3qxOBULA0aM6dZppnxl2zNalc137
aAMVALTfoHQDBU446fs2Ujktkif9roBlywBTjPV6zpB1wXFHYmw9LgDl3VSSDVQDUF1vuEUycL8o
pgdSZYUFcoXE2ml6ZjmtBZfbb5+6wQJQV/esEi1dKADan3NXdmzAjg1+QMD3KL0aKAwrLAOwfcW2
3BBQjho3ww4WOBqk9113VYEFz96LCZ7BQ/DN020pA3hqFe1jQZIuCixQzZjtOlYKLFB823yV9hUB
370kblfqcijrAjZH3XvE5bXBAnKm7nASn91AAWWQOEUXU8AJKr0bqOvraYFhQnMDu7wKmENNT5XV
ORNg+VCo8gnPtnYooaDHUbq6gbLwFSCUqHYsjPlEOlm/w/2KA/H4v4/ff6lPLwCHSGpTP1y4wQLN
x/TrBzdQgTS9unJf8hYWWR9NpfQOFmxZDhTMDAoQRbIaaUOxsirSTWU3lb3AMgDLB3r8CgtuyOlu
rvUGCy5okG1daAoc18oJYWiwZTMw8TSai5S2LLoZkgXUgC3bXUlrBQtATZOsp9plwQXZpiVDS8rc
AlhXbZnqBQLIqwRruoH+AgvQTLN0dS10BJAcCdZ302YLLKDIQa5ugQWPiGTdxkKbFhZs2fTbAW6g
AMtmQsvgckmVxFavkfi8evzD5SV2zFy5vAKB3cjSpa+ni2y3rcAgmAi5JpPq9r5Qd9e0piqQ1dkV
GDCU1tRlt5V2gUaoLAs2o0kYAUMnNBuYiir+8qchoAKf0uzmoVBIASBtgawYjgJh77RjNj7oMM0t
QfIxZocJVQlS1GNmbE0H6Jwa0oEBaxYKqk14NYohJLCCWKUCv1HKbT4Z+fjD6fX4+Lfj9eX0Wrnw
JWwhH98k6XdSOwZinyjAucTIbTlvY6lJ+npNYbGnFXa1SjuQEHKi2Ymm9QjdsB1dWoTUfnxUC/1o
JOV1h1044U2TXGxJ+tNHSAMhtehmra2QALWaDzQrOc1G1lIOvLrrlSJYA/GLJAobrzqLFQg9UBfS
qgjDpvIkq5p8MemTTMbac77iGKwr9UBZkNMqCE3D+JXQS6cFAp/kt4dUyuL7ltPMfi3swKqR0xx1
LcVAe5XT+hhNEgiiUDDtughT/TnXdjrDUqt+Q7G8qsKr+vGqsyiBaEr8G0oGeNJqEF9YuwGDVZUd
vx8BGTEROaq5HD55PtwNzKF592PdlpmIFsWIoNiYNRqMYlbLK16TE5KSbMwWoZlL+l3VylREEhI6
QKZj8lUcsSZ8TlkXT1fka7B4ld2SspXwkQHEkdqDaVCoXbkSXRUJWN3t5ZkvBnEWj5QtTLrKdBtb
2ZBI8vF+eTm8n54efzy+nJ4u58tr6Igeel+u3dDjr3EO51uqMqIyuMDcpkjHxBiBxluuHc3jVM44
QJXA6hBuHE/0tGRebFC0tCOwFu6YkbGrogwSjZAeThHlvjvsNZ8VTtZd2/fHcZyVThdhOZq4askA
0jj6tDkrGALK+HjH+hOEtWRUa3AZWArLGRxOK0V3jHC5WAmWJVteCEqb+rBgQiwTiJw8PmwZ0xrc
MpaSMedwBLB0NSX69mYduNmC46AIN1ShMEUVaqRDsLb74YAupKovyNZIBiNpWYGMlUiqPa0Fp9Xj
q+UQUavfZpvwLOtHC66Hk9G/YZhQTYsYxWQcdtT7RcvcwNW65np0ez2AkmVBFI98m++ICtzu2iQh
HpnvjmzwQ1A1bPvqAWmIgumgelQnNp/gHO11Cs02kXrHMYAYIdO/6WToAgtYK53fTSZhrw8B0BWT
tRihD8FBPHFZz0mXzTNAhEGImQzaXLcLHhBz9dRu1l6OAZdDViWtuQoxAjltZQ3r2ycE1nW2lpmi
oUUg5AV5ArZZFihNktQ5bzShmmUBUQgz5nCACnWh4CAR7A5JAMGOLBnumLd8hgFykrXyZtqXg7AE
+JsO7XkQkyGz3H3zAjx8ALycdh31SiHBAxBEAdOlCTbhqIA9uaKUBP+lMjtgBp4AVBAE5E9OjvlT
fLaAMrwZPx89UVe1rafHm5q7IXkrqtOanaILOLkVY3o0n6Ahsna+2eS8ajEFFBPvanrk9WmBIsVZ
rXOKhpcjHaxcT8hl9K2kBaBC1XoJr18B0MyFrCArWvRYagEcmU9QRV57BEWJt3zGslYhQRK66ELS
Nioyx4rQGgvragZgu1rWOpCqtsvxw9E1g2oJwoLdEupfQF0LCixTVcgwcAzX2gKAL0o+1mPM5LCm
yIB4TZSnIhyVJcPL46x5b8gEV2NqMOMJ75KMsouwopFYHmsTBTIqmzscgVWtrWmfN7cKnpz0NYfY
HRbg2IlK39ONhQdQzBorbefRQXKyZkzZU7GALnB//PXw8nY+bgFKf0frajZIM1phQT/ZQdfBAgt6
tZpRmtEKi/p784GneYUFzUWNGMRG/bxZt/bdRqgFFrS0pblRuTS65h9AIxMayV2BVSNPBANvHEVm
HDWRZL5k17fFsUq2pmRs68qaASEFlNcihXJaoNloVXOQnW0MYL2udUC749BIgWTj18wh51rzFbpH
tVCSMTvWeAM5AVDJxhaUh5CC18LI1pBIidOVjap3tjHAry+6QjB1ra6RBNDLiInqGndlQBJg0cIh
Z7KAuq5zO4si8Wj3+MPp/Xg9nNcCnzAhYJ2UVv3Tj+nfJsx7MO6lwKKaK7FLI8ybXKzSvx6/fpwP
10WgvC1woe9xZ3saFrKFuLBc0xbC/1FUe3Fb0zs9hl6zJGUKMxde7bbmggBal7Vr523e+ZD1pZ27
DVq7EFlY/tT79cHZ13QP2UqLcnYLzu7L2S2NxObda7j7NbYp2/hb7r0NQG1BW507XLZtwLYdWjhM
loLQYoOuPaNu0iMxQZty4bq04qfQ4NyrgJZtcYObdLJMCPc1sen9udHOy3XVCfXlsgGhKUJoVVWu
m/QNTWRa1q4DSQVrHlALr6lF7x8ZwJosDzyGHHgDLSDWJEP3zcce1wRdqKU2XMuNgZ1rwppYjCG0
WMfUpsjqSkRJ3NwbyN9JNKPL6RktecrrY8xrXVOc31McwLwS01eOKK7wiDqIWKARWyWM0dC0Ujfp
wZp2rtHO+QRaFOjoebB7egXnFuXcteut3LcDL40h/qQ+gW1bcl1yhzI+TgNIKCsCoS5QLc8MQEuC
ssp2cZNGzGltWyNc7IkcERp5ZCLY3MufnSsDxCZ8zWLMHnOAxShVM8cOoSPth9cPXOwxhxiMq8ml
s3PEmMu5Y8qb3N850p0KvUX9tyPGwdpGVk+UKrUatl1IaxesBcLtPVH0wAu9ReeK3bMH9MAJvZlo
cBjN9sIYMFZdMFd7RcrZkUBUNbW6/dqAWrXa4X01CGQYJHC8np46VgDODIx5mqT6uk6gjNDAA5pm
w/FBDbWbdICK0FYPGgK4LRcN1FFLO2hj4CYNWSN00z+NUvKaZAsqV9upYaaC1mNxkbDG0LnlJzil
XZEGvK1hiZOh08492nlcG+yctp6Olt8ea2Bt2R+Uk6H5J9zIiAwyq/Msy30DaKsGNc5l56DKmY57
a+Tset+gn4Oz3Rlz27kxpQqDdq7Htmpa2w86JOT3PRlwqbqdaCnWAM7J+PM6W9RNUrvTueuq9IbO
1QTnpGlgh1LVZOdOoDemJpzJND04zH5twFtoMbmqDU6crZ2wNip/LzcGdk6mTNaVvmVtQGtk7mNd
jV14C3hjpCV5Z21QSJOg+fTGALSZYA1DSz3orFFeKMC5G3V7cZOasHRuMehuU2gNvRLfbclOZQk4
NxmZ1nrRJHQRJKyxuk+G30ODnUt432KycwmlP59IAymm0gBAO4dvDENbMegA47Z6A4Bz0/A12UBj
Olem7uTC99SC9JaGt7j9zsG5jRp0cylYA5zJjnruFGjEkRl632Yiv71AvCWeG+zcQB1ZTTgybWDV
46kKvjEygKOusneTIsP0SgymNYVlKB90YynvG+ycDFlubeSVpwJorZG+FncOdAcyKiWmiOv9G0P6
edODq6Ofg/umA154R9PEL1RA/VxNuCLtn7PnimJCqUohKWgm/Jy2pdvrqaAKK2HNI46sJ1yR9pfz
fWpBdijEmhx7FdLOFeIOfLJzobtTs+m5wdq0WVXPHsO0Rto01RmWbtKZO0Hv+xGv/hCeJtLvnSGz
CbBKyCEZzGbAKjFqZeWW+8/zH/dbUtPi5bXzci+MrKB+F6FJ4X/rdVLTMvF1bt+WQyQqaD6DHtWc
Rmg71g5TPk/dYknW5zaTpqVKDgp0C9ZADpPgU2iQPSX0oJw57xzPgVaqO8x7wxrOoFJ+11682rmE
eVBSoHPbyc7pjLNG11jXRjj3iFoU7oxhaEcOX3MyNW9xS0v1G7tVQdmTcM4Hpe/lxsC527pj1ayN
oSXE2qQXiZFqkCNY6BxAk/Ypnfs2uOjfKMgdJrXw65yjdgj9xlMxNJdVeo3k+xtD9123wJC2gca0
ps0gx7GsjbBmpzeGXgmreYvcvxLAW+ggMr/DGvCopbXNoKtakQaAzrXA1IIplTXd0VrOhHHOHcK5
nUhgrdB9i5n054g76Bl3IJTaZFmpaVubdQrDkCtOJBHDMnTyQiGdi9nOm+4Rfo81gHPSaqa11xX0
3iY6F+iV8Fnjcjto6pPPjXkLF+jGgP2Wdq4GWd/lvhHWHNZTJXwlkmNtbyLHbN0NUOzlN+KpYtCQ
s2g9AFo3XRs7Wi6SBk0TUreHRmsXrNW13QXnQE+VEmmacsYVJ3oqpjWtu9OKqV2C+Lnb8ZZsbYnH
//i2WFmPP74dno6rnSVgRmn4onJs0BNFTN+ssmZgJYlp/xdFh1g4+mLFfKgDGw2EENOB5IoMV6j9
32mIK2iJRThzHU8U02ZnytvBiBIx5enK6UHvOzEfM0K0xdp/K6a2gWZ20NFVTPmxcnZgCYp5Uyw2
6oAU96xxY0Mxvt2JJaXZyB4RU3+BIk2gd+tO/ByKjt2orAkx1eeVHzXgEzAPLcGymibr82oMK+r6
LNnuGcGqAQcU0/E1ijQ3juuaFhZxq5GcFtP+k8q7gdUlYFJrog0/aIcnYEJvWpcPNDIxlRWKtOre
wfLJuqRVd536LabeL2XVwN4RMPU6wfqBzSCmWrvy9fhlVfMN3C6L6TFt8MlbIE3c63wLNHI9cSsz
sO3E1KLVzIy55MSHoKyEMhDxV4XoEfM5Z5BMwOsygWQg7jTH/PhuNe47KMecWcM2llwjOTRZdeSD
XfGEzsrRm8fvp+3grlocI7rYa5FRL+Xi8cf3w/sxdPmOgDxwrd+fL08/JR01/h02/ZbM227j5QSq
AZyv2y5zCoc6Uy+gpQU3zWNKoGirTY9oQeHQembXnTyh7xNfBNO34+P7t+vll8dbhcsf0z/D+aCS
qX5j/gyLXDgLbL9hYoG1AFZ2HfIZlo8BZb+jf1lUAliPNoy8fMuGbdcLUGDBuqofqyp7Ruv2mwMX
WIQr2/W5FFgD1u37TAosICrpunK64AoRlevOjy2waM/lfmMXCNHCAlyR+NLa3GN9Yyy+sV9O798a
dvVj+lc4G1ox3s+Cy7BhBgWKvnrVnxmawSeBcG8Mguaf4Gx0L3Q3mWxbG8Z+ve4Px83QKM1lQRrH
p+Yoy1Ux1oxXr8E1yNdQrB0My/coA9clmmzsduMeRf/9YIzgBu0gwmk+dfN2EqUxSCs0mZukLW7g
MLXIM4egJwl43vJussi2NkyK8mR+MG3hsq0t8BupaW1PpwrQqegmkhWUwwtjTQpcj8rB4nSCHO8g
TWKk8W4GPIUG102HIMvSsZuyJQBtLEKb/GThzp1EHFVDzkCGGndZGszO8Yah98knRE5GMbf6B5tm
NHua6al2GJ/kv3vWTHVsuRrmS02Fyu7cHq4tLYZ2kFZIviT1qNMbA2vTyhxf69wM+r/Tjek6s5ft
+TG4b+fxfWu4c5Kbm8rkW+bAINro8ELVeaCYo1qG5K+CCg/zWIhxgWW3wyoLx3JIK7S6xtzcTbUl
gDMB9R0+ed68P4+e6lqIzPUE53Dnuj8jviI1sPV2KqhqDm6xkumQFJMTaFqR1OOKGG2Md/PfK1IF
WiqbaNfjtrBJ4RL45JjcaF5xT9uDub2eqzq/tiNNAGdjFpMb1jzMhFg1vHGrplIUnNtIrPVwgW0a
jm8cL848Mi3kzBSkU45lR13UkDFai1VVi6Uw71YVUw0AoE1O3vgE6b5b80BpFVAbfaS2Y39jKcw9
Yo0cq+jLE3cTOxadfGEwei5KkYFgJ1IcmMFcYf1hYkx6i3T0ROqIs3IsS8edcBPaGXrlcgZOy3tl
55VjcqWXpnosBhuFaiJUMHcUDFMM9l7QGlvR0TkthCZVVbT/F9WWkcLKMF93eG2D7Do+8ZzQCt3e
K8dONuIE6N4Y3rmsK1V3a2Oci35dVPVQELHxboEQXRxpvIU5BitN9tgTMhRUtxadUhugF6fx1rHK
yySiNoV9CFCH0JCjE1dVx+XDMcoWUciqUvKdQaqxl615JGJvEyIFQmDWYrExrJAhLicuBM+7JXgV
mYOtK4UVL42NYT0Ro+i+GfJER66GdHyHvGx8ct1CILcon1yYZEgEy0nowHpEanziOZH92n9KqEjH
dxPlAbMGZTFjwa+E+BA6DFlOFGUvsNaFfR9GTOI1HGubE+8mfiWCY280pnSp0I1rHCya+Bc5NmYH
jYMqZRHFbAw+NwxVLdTmkd+HYxfEsvmJDwH7N81kcWxRiqb7j9xipj6GTK/H94/raydo6kGX9thA
wZAh57UC7kGT9ghq+2PDE6gEcCQ5o85I8KC3e9qtqebOE4bhUV4HtwrAAexYW29VNFv1ALQMOKcd
GTdQBU7ZTHJ3DeigsXpaVk5gwbKq3nELCvBrdD0H3jegBoD67sD7BAqQZE2d4tPi1wFQviPc/Jpc
fE2fr8fDT53H5AAGYy9EMqWIDndJoHCukvcOgGoMyrszyRKoAXCynlBRwcGpO550xKd1XRuOJMCR
7Dbi30AVAFUARwBBdMwpGSeT4BS+UVvPaTTNjSIc2e6IgwRqAZzClICWZN1RixsouBYyHjVmkzAK
iq6zmdUmGyJCdEvmm6oyL2CjBHSjojszZ7tRtGFfg8oGFK3qdhPM1swl8fjD4fPxfD4+F75xK6lL
k377ksl94nP+tHz848vb+/cOO8Lpe5rtyijyF21kck+X1/fT68ex82EL3nCwcLbyDluXnG2gHICy
AlpbaRagP4HaalUi2uzoQUW4tQVFF87D3a41w00fnu2gaLccrIpwq+slK9xqjFtflqxtWAteRQJ1
ZdU6xGWBLEg4UmDDDuJIaEAMBsCJGq49KMIRudE6NmOB+EmghI5qTcWOxE+CUzUl+Ib+EIIIyesW
QRreqED0p/Gq5I3aihkpOvNjzzjULE+WVtHX2FeYmfGqSlUxCodTZGkblyalW6WU7muPufKwIUz4
jNeXQ4xhhWb1WtLRrUP6EdhAYOdGbCkCY57GHNr2mCzWtr+dVxcALSKptcGV6Phqwo4lBHYF0Wm6
Vg3sRvZFOq4ZPaEVV+AlMA+BHeQXTFXA1NESgIHEYmzEUldsSYAtMXr4EVgg4thKiTsOvbwyAHZs
xCBXmtYAuBFe+wfBAYl4A18Eg/s2dsfvCDCkkLVDobA7Mz8uzDG2m6vanxndc7NrvbtnsG1rZ0QC
Vrauvme2OzNifBqt7OHCRiHq9PiSC65pi4Z104B1iZH4Xi/JALpkiIF4+CJMzblaNJuRc86Svvgj
zsUxdUh0wQ5smcPX4NB5t+LPPqIBojR5/KLOWlFgqq4l3U1FJ6NuZTvgCWqIZIY5h6t33VkZLO2b
fcs9NHhI3kJOLfAL9lB1QTxeIQ2CO6jQMonIA7xBbWdXjHQPAynajByNljTeHZ3XDF25lrS+HzEe
hlmlhwyeQc5jOSIPsKomtqCpS1PyBSNlS1QCrTkvIEita+O1QRRSpKFKyzkWg1AahcMiFc9WmJKs
VaaRRHIIURbTBYO6tBnFNCxpcjvSsgI9A6ryhCRFnYSyQoOr8m53VdmO09GMO33pWHF65qS1Q4+9
RjpUgnW13921sMiVzWqXtKSwBm7ZFL8yHYuXQMF2zdDxjmebRWBtu1NWy1mBx9U2HtcdLLofWw9a
rQ7LEaABp4UD77ekBr/juxo67skw9lg+U+1VAzjTHdab4AANGRLWUDv6wzTEu8PJV1rAdG8Y2K/H
pEBoMHxFNFtGq4pRJAbP3krkW640mE1e7M6LaN/XY+sVBQaHNao77j4vyjDdK4AoB+BY/V5Euybi
Zxq8Uxy9tGJHEpk5m8c/hZ7T75XD8Lb2oIhdlBfm/eVy7XBvE0McuM+N5KzfvWWFxw1NJfNi1DIg
L48aDnDa6LFW4iO0gt5QZ7v901ZgB1du23PpGhgU79OGU7Wv3+Q++WDLsoZ1DbagL5ZzPWpXEKH9
Jw7Oy0ftKLZ7QtCu2/RmQzXsY1panwyuGUA6PeqEURZG1Gm6zdAKviePg9cNe4itRh4XwlvTJNl0
HhegcNI3q4d2i8+uaqS7/Y0jtuBHbTU2SkXv2kBqU3DjzkEy5+LThKlIeGkWo1zixcG2+S5S0rAj
tKzrdlfbEPYJLUyIvLaxCZEiVti8zoYVcoRqC/kZaJ/i/KhdzIotRNp+zo4QsjVkRx6gSmBUiwk/
oE2xetKSgaUVPPMCivhQv4lekVmIvETNQ82eE6AT91t3lpXH6yossRRYFIsrrgGo39HGqooFPTf0
1/l2Oh87PaxM7DAGs0WFHeVRRmCQLCqbpE9ZQxqYXihJpqlqGKIAjUPSns0ohzMCc9iBjCuSFOmr
sMG6b5CuKnmFrooCEjDAtZSj9Nq0b3BiVueANrcETis4PC1Id5UW7tbAHFBZZ57KBk8cYEnp2bqA
NKQYJctGYJBCKglRtdqFmHS146LORt7dLLha6euX4PbEDKCVrDvxyd2uEVXJOsfX7jCNgMu+m8SP
tG+JHyGv992QJXiBAt8wYnVu1O1wxRVaVkM+iRK4pYNoHgf/E6YEXlhi+mj4rCGyQ22G+um1a6sP
gzDx01qPL0JNCUD78YtB7vIEbMbUoyA7VHbUuTJtGj9zI8ZvNc0UAHtWY6GVJkgA2LJu46/ado2q
ADi8KIlWVg5iekK7htWU3yERdGoHSQS8dC1HTUbNJwVrEDQfvzYF+ZLyEBLh2MBzIllpZF3rszso
Qi/QKVD2VwLeF7RsfIVHvvJ8yWppj7NwwG5Tjh8wpzii+Aht3VjD5zMfnraj9qppaQbWFWMrjgOB
GoENMPM5NEvo5IuW3DnQmNKywB/FcQonafspQ8RstyzYs1Gj5rlm3Hw4QQpIGqBxrvHdnv6ELNCy
fOza5SPNMlEFq8dbNNTIcZdha+BxDd60HRusfKiXpnXl2BvCo19hDKogKHr2Br4BhSmZQUo2kOEY
Xc/76TAcdGLf7eq/QSOvE4OPl+PWuxY4ozkw0tKZ+1PI6NIAY9aOozQcuayY5ZDDYlST4UirnbaK
HvH4/x2up8PnrtAR0YMHRD/nI5cE9oOwoZ2clgQqNJejulkBvLOGhj/26ga26rnZGQTVkkDmMz/S
BbELghXExqelKRy4ECZHGvPE4OJ2VICazgi8AFyDy8QGMSugsW6uXRWocVyM9NUECqiPq5FxiY1h
1njB2t0CTZczgF6EoALXZH5gi5+JyjMjazoAhMc9eCPYP8kMoHXkzuFuZ2CuxSlJL779cnp/6nZD
52DggKFh3v1dcz6ps98iMnsjkPNJGfnm9t7jkc9HTKhR0XyAFXhdN/Iwcz6pX9+itP3zSrwucW3V
0acMq8B5RQ2rWlhwR56PrLl8XrCusyNrLq+Lxnk05rJbRap+/PPh/fTz8fHfPv/9+LQmeehP7vFf
D+/ftr994uQ/P5nHv/wpE/X6g4F0iJXba5/81o+4wXIAqzbYKnFug1UA1m6wlW9ig5UA1mywa65f
wleEdY8//v/++jdR4cAhzijpPBX6sDfY8cUrwh07OHBIMivCkSuf9wYrASzfPWyCA/n4w59rDAyT
KuKBVzEmG1tyg1UAVm+w0XZnLSwHsGKDrUyVDVYAWFlgTZLaBAP88Y/V+Ye2dCjrN6S1atWoe4OV
AFb327FtsALAqgmsArBkcoDfvQIbXwF/rKnAYipwNUZFtRuLqcAXCgrv0rawiArMBlvlDGywiArs
Bhu1GlZhQSzvgLMKBQKzJVnY4f5JCsyWRGGH1IbdYBEb5oUdUk/BBovYMCuwhlQXJ1j1+MO//Yuo
H4PCRNmMw6ivUuHH4OsWYq6FRY+w9MKKTEi3sOAx2Lq54FaUnGB1wAFnNRI0cupJNRhAtMEqAEuG
+XiSi77BcgBbXDDxHbkWVgLY/QCiggVRlIRQ5H14P7wSdAgcbVLEzgkxLUVZg8CueUUs+8qQ3GCB
eKWmmWnoSeBgkyKGUtW8ZYPVAFb2w6sbLAeieR+aLbewXGFAvahwr0e4jyxOypo9mmovelj5HIEV
key0l1EBBgJhDV/KJmGwAINtq1o+8x2wACJBFVFUFZeWlcewosBWZQMbLDixLCcOuSYVDwep4glW
T/bsASwRgb6354EPMyGraFE7HTRhGgjuNeQm87xyvVsZbFuVbce2VXtgILqlr8+8wxcga6nqe1K7
hRkALjpD1TuhAINbVnpyUwIcWZEjt6IVlBslsvb1Y9zhWgC61oSuo8K4OzIgEcUnRwawkk8eowAX
pWxtluzJC7ABSdiAbXR6UEGUYIld4hqVajHp9eP18vH6XPFwjr8odE1z9c1zTO3C1m/U7IARO+QI
DxzLHmHqd7bfNqJYUdON3AEDwhFEcLFGiUrAgNxFkT0qVt/U92ceb6da++EGi/SiDlSt5wowchEU
X1hsNe53wEDxIuGNzsMNwBYAD6a9FmDkYSAqX2vRJWCgP7F9Oh+5APd4/PWtwj92shCvbrLUq61g
RwmJRgR20ihA0DGkSDiio306rEH6vtt8g0Waq5msCwiG5KquZUyU9NXj9fD6fHmpqV9hDsIqDtJc
Jn88fL7Vn4OWFU2XoGHPDRZYRyTnoaOWw+C2JMHtWN1p61PIx7fLL/UxJKqIlYIUUAZXua9F23gY
cATWBThGZjiTe3AJFi/1jKHMxKkdtADQpBoyRBec2a/twNq+hnY7aAsOTipHlx84vQMG+9Zl3yEx
w/r9qRk4dSnS9b6PcgGujNRkxtgWF/sbFwLAy5pe2B7pYPOkwjjcnt1fGbgxUnEbIlGdG+MGLF1q
xmPlAJd7xGmwuGlJXeyXB3gjdfbBLNR7rCuweKnBDQ5Tu0c6ODgp0g91g76DNg/um82IlYONk2L0
2CDA7qEBzkkJ/OjCwRulBfshwMHZ/pWCC9OkDzInHWELMMAaKYYP79XuaUUArJGS6xBG9Lxi8v7x
y/lyuVZc3kPfqiohro4k9tCXrEqIq2pnscECX7IqIa6qH/QGqwGsq/3QooW1Y1jN6pCebGGBD1uV
UGLHSvGjl5Zg/Qa7NiMg9yYfD63CLjH6yDH2bhyJt0JCAG5nL0lILrKgvuMmlfjaSvig4xuQEPWy
oK9joUtMpiX0EF+rqvUi9ni+fK31IgbDB2TWTlR8G82EjZCfgE1/FHcBBgEEO5i8VoA1AB7MbSnA
IOxhm/njZgeMYhdqN92QXoB7bF313OELcPUFNCdx8ALcYCp4AUYXYMdh1AQMLoCMYIus1u6A0QWQ
cV5q76dw8AIc60/NKcAWAMt62666PfP4dDydq9szGAvl8mJL9PogBl48GSsWGb9qYREObH861waL
aMajazeQZMhsrQ6nNvDSyeC8XbA2woJr8/tpZOTa7OPTpbZpLUptl20qb415C+1hUngQMSBaWA1g
iU27d5JZaA+TEoCqs80GC+xwUgQQK6JMC2sArK1hd7gCkVWj+7XY+aXax9t/Xt9rXmmhoiBJCpPd
exktlvYk4C920Q9uodiVepxpkICRvK/TFFpGa6GiIQ1ScLiF2pG0NcIazzh/fDn8Wl8Ax4kPvs7l
arQFjjMfirpVZVMXYHQBTcqF3AEjuikKZvSsNs4k8fjSOpgFdk6Jfv1DAUYetZLQHx+m2gGDJ0Xa
uVeNsQow8seV6olIDbWfXTweWjYqMDvj/WYaGyxCQmHBHcGJcUBLV/ZW3gQFFrkkJ7dOEkXyENIt
YyOlK//L+fL5cM4JoBsmUfqtIl6PXVeRFZQD0G5XkQD5Sa4pJMt/Lh96Pj5dno///teSbpp+/jv+
CZbaCdJtpeqzRz7gUe2LJK2rVpOl/QA+JGko1JjX2wdgWZggTc6qdpPbB2AVjRSuzhASnQNoVFom
SUOTmNzSwSGHNZ6SdLKKMTLefgHWH0kxaOjUHAEggTQvC0Snd5cgPsHqKynEzqNff0B/Ao9eqn4Z
VINBsD7pVRcdfJ07EJgMSUUkD1bI8qfYHwJsQfJ+p6bmEOgWyheCw9L2SBGeQpKWZlyyOG6A+c57
QHfB+t2I6CYwLZB+dLH7Ce+9aY/ZUtOASvcxAXBJOifyKBuXP2X/K4i7kapR6dKfHeLU+DCqFqVu
T1aAu5DpWY2OvkEDa0gOmvuRh83xwybkYGPDNtehJ8Sc/ORtTxgLQV6tIW/YVxj7RakK+tWetelP
wEKSxKoLzT87y+NefZK0BuPRHb/82Zdx6BC8Nkzl/hDgCqTs16fSG0RXYPt1uY14QdxZjTJpqy8g
CWmm/N3ja2C1kFZ9toa+UAg5xgxFh5CRnqH71evkJWLeLoimRfsaN0gErJ00BOyrOlBXlNLVKrLf
b8BhTa0uWO69ZYE/QJiRkLHXuuq9SIblE+kbKpOAknZ/G5NHQVxFNnYkFl10oEdtJ486zlZHHzD1
B/SeKwCClGL+IjSqmpfcTwmCY2WDdAONlcKiz17RZZLmDFGXXy6zOELCV+Tj8bVnHclZd+yta2gM
gNqQ3VFtT0K+LUlL4Ri9tbGU3rSfUKCX/tZ6dGvuzVpw8UnjHXjS8D1uo3MIDj9Betz39zBSiyVp
B7omS+xxKCfLk8GvIZ5l1R4Fk1skeQfhyfn9DlCT/60qNO5A74TP+gF0BNKS3lV1eYUIBAA3o+ym
DQMYhWS4cHRx6y4JgB2QkQ4x48V2DoDOT7r5s6qmcTsA/gAZVRxbBHC+owI0WGKrYo8Y0DvTSuLB
uluP7Ghd10FdegCEQDc9gJzwEjI7uaNESWijS1L4Hi8xsE3L9P4lK4BDMXkGI01akjYL29AKtYcW
AJr1Z3TUTxC9IdLFf+/hkLPJEFun3S3LT+73b8H+yfwB2Vt+ZANK0v8j4i4m4+yhJYDmdQKSr8Sj
KuLxD5eXt8tr6cSw/gLib0GPs1r0hwxuH1Bo6JbVvj+paAPnk/UVmX9XO5y3A0h8gDJlqUkW2XYA
p8ptdRk2P07fwYAE67v+xLMaA2j9Mr2o40VVkMOmD5QddFQdBTlc+kC5xGih2Q4G0A2YCQ0ANSF9
gNcY0O0HRlpKhDZssryYLK/InK69hFBQy0ofKDsIyrTi+/1rsH81eYF88gIUHV8XpJQW+w1YsIHB
KNoNGk4btMb258GRxQ2A1vXpO1sH7IeOOd2bpQrq2In0CPGEu+PS7TcAno7hk8MDBTVtQPVnWpIT
TG6/oF/HWWGm8wAmPLgQQDQnTef9Axxo25/7RjAIEEAGoFYDdmsMouX3U0GJjBQlwNaXkQKHKGJr
E1uqQZqs8fIFjTrbSFvqZ6ISoTtfgL2AtkQTPYwPiPFjSQ1aVN3CTPVPAfZgSXcwRUZsbV8AlBY/
4EgXNT7YAmxhLW0pZQ+WTeO6EdDzYmgBi94l+2wfEBAJtOWsiIEF4XrnYHAbtAtz9JQvf3bIymOa
IFVKbie5Zg3fJWlN1fFiCai8GdqiIRwiWoqcViUUVOCvGNLlSgZtaPmz8z4kvlY+KvaqtgEoy5Dm
UzJ6fGSjCQnoJzU0f2LfvaQicPTGykHCg/WdLWiMCTVqurB9wOAPlPuI9cK2zycQv1R1F0Gx51MW
8Clbl0z2uC0mS9dvX7Z9AJ/fF/AgGZvAkRgrNAna9HsSNoSIXjXpchf5xPKn2+9Bgz3oag+KdxkL
IgFf92rX3XeAPkAKbvdGjYDJKYYmMelsF7oOa0OyjlV3qFyfhpGgMfUr2KEAtsGTpFWhHFwB1jlo
+/cuESP/uqEpsZGOdNQY9hIb+fkTHspXqrGaFA9I4hNWEN4V36sMGA9OkoabgRb3wnakXyZKkP2B
GQQavEXSCbFq90mgESfhk1cgsXxuGPFA7QTMyPq6ec9A5QOsxM51BDwBYcvqjvpS/MN2hTuSqmLy
FiYkZGuhzPtnQCy54DFo8raj+OK36IjSGBWlvVzHei9p59m/BzFRkJyoPyBKWyte2lrxmG35drje
jn+qDKWUODpqOxxoi5PynahZ0xPm3NEhkuIHSCVCtORE+wGLPyBYXYJSZdOlfrmfhg1I4w58qd/Y
mfM5DXWoRKYj6LqIY3cEMZpknlBIiphUlc6+YUBiDJD125eSD8BHHCMdgI/a1uUP4CvUvi4C2oH7
T+OyHcFlDe32xxf4+KLqBFl5U1b0a4B+Nrl+fPmk5d/OE1nID2DPq/oB9LYPwEkvyxHyFUC+GNX9
UdIB2CMFYE35Dl9z1oeKbzo+KQJr82wKAwEfIOVX/QsQozbk6foLBnbSMq+PD+Cavo22iwFEAKIm
QNe9A3AEUni4E3WFBMElejd5ggIyUNK5cucLLAcAb4iUXfYPEBDIAHzDAE2XgwrAQmaPSE1EAKmJ
60sxNSECUrzYP4IDu6fXFyhI+w4DByRs2OQC/SeAPD5joBH7EuzfTpgQll5GjepuKfkB+iUVsLuU
13V9RP5i/noQ8mv1Y8//8dsxfCL95ET+tHXjvit/0eORtf5iu+wHPR5Tf8B0jwBQSIunu0cYTXNP
+/d1Pavo7h8QoPe1BLJdBRKJEFXzv54CCdYnxfs7MyEf34DnqybKn8W8TzA1Kv+nGjwiID55//6T
BfvXE/aDhSftQd59vWZCfH6mfftPAHmcT2XnRHDIyePBop+0b++zDz1TX/lOfS0W5gJ7/PlwrkxK
NDxDkfY93fR3kTq7S1AYJEc90vja50yg8jBhmw+I7gfADmwzl1ztPyDxB3xdYqe7OzDgA6AIo3zA
gg/ocQlB+YACHxD9QWr1Bxz4AMmVVk2KkNjqFEHuuZHTHUw+4IaFoCsZAmg66F32MYjrLEmtf/Jh
7ZdH5XG87sHeeUPg+p3dTSrr3B7avJ8iX0L6cWz6inEFjp0dAVcuGDO9fLR7Na4dydCAATk9eb0K
VEAJZ+oKMtN9OOjuxIT9ykmBL5lhuovKintqO+mETT/kwGgHbEd+RCapx9Ptz4c/V0IpZQ2NHanN
jPXGQk0ZOwBajZrJbtDAiSvFFBoEVqXrj4TaoHEGimyiGXq/OAhFSNufoUWgQRRK6nFUNUOjnTdz
CEzn4AjrTZpFTUMyucv/+Xw51A5zCeI7MXOJ+3HmX+qRBlPHmBzn7aVWZyOxmlYnaY97Z1XITIar
SzZOXIvgFiXuyZJy1rGzJXAzpb3zydFxzq6Q46y9FfEgX47xOmVNd8BBwifT46TFdfMgY1KYccLx
em8I87wmOtnZPEgWZXaCeYtyXaWtiUZ2rh2A8yZZnXfAwd65qomud3SAOaYmR+fw3piZUI2A4Jyk
iaumYm+9dkCzwtVJzqJDdODsoklT7WF+4JZNuy8X31FF5CzFXPD6yex2L/F7Z/XFi87uAZ9mvmYX
rgMOVucgQX0F9wC8ee+mQ3Zo82K+ecTr3Di5d7048OSEHad3C1g+l8DL5juWT+Q2YO+SZIebHjR4
bpKyGhFrQPdrI/GoJ+JRQU4nmpqEzuIA63JGsDilnLsKfP/YLUqJl4RV+N6VW1QPIF11Z8J12Bwi
GL8jV6Kq6UXd/+fT6+n9WClqeqI+qkbrrt+Anii+ylSDZxt86InOruw47yNDA7VZ1UNvGyrUU8XX
j2aObYujNMzGXrB7aGAoKaiz64mRpnRtbbjOwdGNs928kEJHvCTLhMSlj9fn45fT6/GZ0BSfChXj
3fiN5kGjHEATOheNTAHjQhNsI1BECwslgvGNKFf7jSNx1AhDSx5ocAb86fVLeKDfK2SKmZ+YtK3b
EWoeOImcDKxuxqBaaOxi0KBNDsd97wTpe7d7oHnjyDXFd8cmyOSPtWsjj2BFVws0XDD8NcHyCezk
OcixdsxhoCCBi3p114IjojS+EdZrblxu9TehvcY/WJrl68cf36+n168rv9CZdfyY/ht2EYxcx7Dd
vvKuCrgB4Hqku5HVx2qEt8PCQAIPtm+HajeBlwB+qLoWeABOK8vqWGIB9wDcjazFAq4BuBpRJDk8
WN42incXXgH45kHt4OGD8taP9FeyPDi+JbZ2rTMReAHg+UgHLfDg9EbOSResTso6mzIesnsG4P1O
yu3gwcOjFbl2cHgHwO18dQ74htUjq4vAg/WtHVVk6tz9NH0Lp8DHDDwrRjFxvXYZGsLScH77/iUe
C65oKqdr153kYSqrRylkeqyaJUg16gGfsQW2TNKv4627Fhahyo8ST/WaXT5el4HT4sntyphRwomG
GnRa2IyyPfSkMiWBc3RmOK1e0UStzNw3CheEwgWWcjoW65OJpK2cweHJCE7m5e6ELBjmlmDNaJAq
2TpYm8wI3sk4AdWbCE6mzve3PtYv0vIFfvfABeSyCVzuxpPulwfwZChr4+go8AD5vNz7jskLqNyl
3Ysa97ZDNgB3ZPRvk6xNDg+WJyOeG68kgWdg+2Z+dw6Aq9FY7AIOCJe7Oe41WJ3P6V4BcDYnHDAv
Wst7CBcgj8zlbbJkCzxYng7h1VXX/uV/CPPTEwZuhBklnEVNA05aEXyU6auhXysBy1GWpoa+oQSs
Rjn665HRys18JNUeGSzMPdh16hk5XrcpjOEtLBgQI4aDfTIsOC93u4TQjVZUsYtVGJiRjOVPb9fL
++X9+9vx0/vlh8vT4Xz84fLL8fqHw+1IiEulsSJAi1eMtIaK8oXSyAavAbyrjQi/g/djYGK8NllH
ZHEJFje1m627eQ5OT61/0909MkIWeDY2n8sGwAmMGRvQ6QMOoI+PciO21TmAViNv0gbNALScQQO0
EadH09BsBTYAZcVubIrOCc4BPGnH1kwUIvCAaInLpMnfJ/AKrG9rmpFdmgGop3Z7y+PSB5DbYoF3
dxA9ohwzDHTTDwAUEOM7NS/ofQAQvuFjv1HZALgCVaf15Dl46wdm8WI/9uMGcDEDd7KHv3X3fM/k
r8e38+GpYe0cBMWjDmIaFaYh9Knur4AKleAVVN4NMdpUFV8i+wfqs/Zj/XWDByqkBqbPdn5kdap6
Ax0EIMvL2hpa9LYPVtemRr/swQMFXLsa/aYHD67fsNn1T8wXZcbW17YBoIIbPrv/iemt3IwAAfVZ
Ua/ue7sH169Vbbh3Xx/yWbgZ+rHPQ+v68P39g+sz5fk36UgU/ej9inoHevcBDTFo+ewGsP2rVI1B
3uNfAIPG3fMAEANitQXd/QBg4ErPDgCArR4bsNviyO/l6+vfv15EPNaMHXYb7sHdG3sP7sHube16
kV14wP20nAkPiQ+g7iBe8HiUmDE/QPlWjZ0n2+aR5Db13XdphyPZ07j9+ugH6FPk/jvmBRrzlDBw
j/AC8IrAq67sArRj5UzwYdeZ4jN4iRmX3tEuUTDNXr98urw+kcT89FvY9OUMGgFmpoKPU3sKuAar
Nx1RzQ58vDbndhy3jcAo4XIB5/OtO7B1XduPpgPuAbiZnRxZv5wWRISkKNUBlwB8mKebwcHSNDO9
i3aAc5piu3+PZmJzcwYNNjNzktFMsi7OwTvhEjnIDM7qXsDZBBxdVp3iukc48DLwNqVat8CAxGkR
QRcWezg4s5ONg/dBS3ZM0nsr7jnLJ3Ks9g1Udw1oVHrfOHZUZdb7se/239/eer5bPxFShgbnOjqG
R/qhIfbFLrCYgC0AxgqCR9qJobqZ3muWfqZXGymhbuSRXWdILLjppU1WlwDpolLqO0jHVqkhIdGe
/9BPVFtDImMDeGiYGhLV7LDwdX30AXbHBwDlCWxXeehWMUQz68UM/ESxNkJDxd5PlDNDoqo9t4qf
2PWGxEWbKk0CD54eCQqP1mfg7opVF3t1su7lgw/QTIy6Rop+ALwfElgdUw/gHiShYXVL7J2vIOvN
6Z4Gsy6v91z69vH5VlJUfyy/OTFBLWGwZu990lGLB4TGLOSxeup/c9j/qWf+X6egDZYOACiV+QoB
ku3gsQPTW2jF6pkHzkv4UvTMA2c9NMP0zIZ0IANigwcuACehhNYT/6lhDDrw9Mz95Azk03rmwPZ6
Sn+Az5PUn+DH1axHfYDPMgXlhMZ8kiS/RDYne2cHMo4RLu/2XD7tHsBzDrUMPYt9eANjP3rm/XPY
/6GhgscNdH3rmevZMAG9d3oWOfKuxv6ecwG2xbHXVU88f4bJmu/7HuqB885pqN1qqN1yBUNWeuq5
8wX1zRg+gnrANL2Cjt+EPUQ7bHb1EmunXEK/t4ZGEcm23OW0F/Shd8er7UvV+wBAvxM1+ngP/UBm
e6Lf8eEBgNB07g78A/WO6RnjkfjtczHjPBLq98zdsQFgXDJTk4DoYhC8AOdnGJyEnT3byf3KBQHK
ebwbVzOpadmip7Vte91czIqJnOollmTojv/jHL0fYeTU4Vr7PpAVFS5GCF+NLrb1QYeejwgry7jJ
jmbhHyVY1o7mXOZlHVi2TNhspnVkWANgy3zQwGG8bGHhgFwhynjWZjJ6Brdg6TJeM2qRO0xzsLAk
k3FtNTdyBWYAmEyE5WkKVUOOCnvyuhX+6ztUHUvv7XyqoyA8D3YcdxM2TI0rLNIHgsAc97PXpCNt
HAngdh+A/XQ1d+PaknKCcTto7UGK8XaCce7rWl2xphnLPjzAAKky6Rk6ChgqEZ6mKssuBsRQ6Ykf
UHbU0ZiiEKCAtrTt6GzpA+AEXt8BP04h1m1T9y4GlABXoEZt5ekdAhR2qn06H3BgB2xcarQRAQfv
QLjZQ1TDfJX0ksW4Fq6QkQVk5KvWtp2HoFDWvHZuRgWwMfRaK4ThOdgALTYYkhEgY8Xr3r62uwFA
RcLfQ8eAFdW1crJLRAasz+5g5hxgQDe9pfdXICEGnRp1N6fSBHACLcfVgukDFlQiyNkbDKsDCtR6
1NefvkGwA3bPDiS4wXa+SJ8PARIy5h4cAEZGpgP03I4ZB+AK6YCdfbQ5EzHYAKljGfByWLyjuan5
4P4SPSAhfccLBotLVQ9I6WozAhQ9cTYjQY7RT8uPbJcHcFTMY+9RpoA2RsYjSLHT1TMHAdu3ZibF
YN2X5sP+7JQFggekmg30pSCo4aLzOfoohPMxtHWzC5Tw/dAW8W4kRIBJsNYO8n1DN4oBUInG+WhE
AH1E4A60qV9RlwUgVUaC0sFCBeAdKzW7BAXJyJA5ZQOjAE+5WTMoeT8JZcUBoCNhZ0cItwB2oEUt
izv6GANE0Chj3eUBFSo2M2pgWwltp9qkxBfg9IyGgDJOJ20NxTBi40qOJm3RD4DrV/oeNgDOL5pB
O6YrCsAOSHOOgS4noTbrpna1gsqkIZOGelEsNZm0stYwbKpQ16wFbIyOifIjHiABETTjOvqiANgj
js3eAPAMtZNiuqqoAOjTbiaKFUQ/nZSmuopksKaQJNUz11L4AFJG7sE/esVk3GUvipspAAiytmsL
774BUNnN/LjLzfYBwIa9use1AzRqpmePgEO/xtqGAssxcAdS3qHQIV3Au5lNoNDMIe3vYeUCfIBO
3PRDIgCymE2VagkZGR2ZNrYJgUZIZz6NzSrAyfTULlFQqXZ+xgrg3Cgt+MwolRDeiTtYEXoFyt1h
10hAxUbNqBCOjtLczzQaBeH9PSSAVHp/h3sTrC/tHRqZAvoQ6VPWy6nJVwhYqZ56VgS0LNeaTDp6
j4aERCckdDxcn77VMSExCbdt8/VClNCEkfD1PgXyw8YPuBKvCw5FrXYfGEZkIryX9QbcfgMg7sZK
3C2IX+e72wfLOxKcXb5lXe8DFsCX7UdvSBcenGAbkr3GO3nvAwrAs3oDXfxrgP8S9oyih/fgAQJ8
IaBgRyvT2z+4AFsuIOg/tnt+A85fQtXRHep7+wfwvuA/cc0ePMC/LxQYvaliv/9PkydIKMDu85zR
nL+EgRL1Dp/qkLBA+QnbkOJAAar/AkdxgLR+oaAYH95TIAq7swLdy/IWyAeali8EGFR4q3sfAMe3
riZA0UMfWN/zmoPsHwDI72CFfQRO4vabl3jxsvlegxkBMzVYYR2xVI+zPvtE1M/qvAfV+4ADl0de
T0BF9/yIdn3N/fbIB1kuTMxYD8g1YeTal0twrJbPbC+fXw7vrXhmE6+E8jjKySbpBso1AQK3g5/E
iZmFuiybBGgUcXD3vLsMBWh061jj+8VRdEDVSqTsnh1YQgybw2wSnlATrySbNUQdT49f4YENwTx0
qLCZS1m1VlR396B/rZ+iH2YIKIttEDax4hQNjXSMKDbr+ktsmF5NDJskGCjvx232ygWADTh7D/kx
8AEzez7AgJnEddjUiCV+iJ5Hl01Cw4qmF/RZH4wpKO9Gs8sp+sDzczg2xyZGqPJ69oCgEa6IS7yX
KsYmRrTyFiaIsEmCiXLijgtANjBzd7xgwEEcmx1gElajcTk+lADACGdiRsNAdPJ7tg8YIHUl2n1Q
h82yzJS/C3/AjcL0uMto3gHAPs3Q0cPlgQAnjsReUIJNw2Js3xd2n2OOquR13RugqpLvNDg9vT4f
f/23L5WOZ2eV8aZp/VTTmJ1UrhmrJ+C4xJi0z+kwOTvpO2Vo3eD+iVtYwELKb4LbXu1gce0S6VnX
iXnaSdcm42DDKzsrraZ9a/ZPw076DRpSO9ORrhYX/Hk9Qfqkqp+0i+vEai2YFJv2bickg5sSGFhz
llYHBOvZuNH5SjXo7G6CeI2pRqM6WwvG2SXwptTRteDo4BwV+1jgkk9LqzuIBtwar2lmt3NQpejF
5MpwFwFjUZ2gxaW5pLi0IwPttIGE5XM2AS7cNE/Nd6gVMXc/uTQNRYuriX1/eFDc6OVkaYHfmaoL
unt3jnicbZ657iwPTm4Nque2s8YNpmk4ozpvDeEdNn2xs64nFpaF2lnPEuMnq2vMKHy3I1vdcBg0
rfDdJlKr0iY7cavzqe0XPBvZ7b0fT1Ta4EEvc9Jkq6fYy1ljbQbbsnEJW4oL2CCMy1lTbN7ULu7h
JezqTSaODzYv4fp03LrtIw9AS4Fa0mXUg4bazKC6US5nffCZhp3oJZwCINns6sDOhb/j5GB+Ae2H
50dEz8EHSH+3XpsWOW3nzhxsZi5xH346qr7jkpyYY8v2pzeHu+mzfSv1Pd2D9enQ9CHloQkKHLb2
45PR4csGxGwDAhJQOwia9eDR/g0coCHhLAQxZZmTTvy0J2OffCTcvdBwGIKcDUNg92AfsX02e/4C
ki/3cP6GBDpRgrdwDIaczlJg/g4EIP7H4TAHOR2BwtkdJATgSUfQtcsT0U06VdZP3w7X39Vl1mrS
BZM5OGVGzZiUg0wStVRYYC3iLyhvLrUOZYi/KszcyRTqjmRUs6uxkDuomT5nHdLn1Eydcwo1TVWz
BsF0sO7+ZSuoDPpGqO92Dvi5n9EKoDMyYbnjPlMzLczVWn6jiyioRHk92TagE2cmJI55uPWTpScK
EO3Ix3c8VE3aMTPS5qETkFBQe/QNje5PjlpY2znaAKE5Nnten9Dz6LrR68XBC3FiN6CeWpSu16x2
0KbWTXKZBCf5KMursI2EcTCfRpSUkFAa2o6KcjATSJSVe8LVzTIZBXcwEdDNcnkEJ7k0ep8J52ad
W5iBuTxuksknOJ8eAPWNIavbfR6gm+RRCkYSQVlIJeueHrT54RYmArpJKpTgEiZiOpwIK0oaXRBm
zuygwdJC1rlM+6VBIpQQdQIf7yIO3Byvb67z5nB/JWZhDp2bZKAKVh4OD0+Yi/7dA+xzXZN+9+lo
AM9gEqqbZCELXu4gSDi3pz2Bmy6V9UNbCukrFqv7ivEfLs/HRjmedKokU7I6QYRJk03DkEt31q3O
KIO8onqkdKR9iwksjp2oGTjwRGuL4g96NFM1wcK5LnostdOuOfLgzzrCGjoVZW8PaDTH2tCBNt1D
46CLqsG71wX852QUUic8OmtFbMgkr05Xj2krZKP55NbA2tqgcBNux6n1BOkIZbBN+qyNqFGwDeGs
ebFRGgWkZ/1jDZ29pfdZIgK7w6VvDf7dhEXcyBBbNGKWo0Js/l6a43S+I0fmp5y1USRW5J4pjyYJ
J8iuv2DdtulPoOjODYbzPZhmMFJkZsEW1Tgm5A4e2Yta1C5nu4fGLi+loM/fTJ12SkKv42yGD1O8
Mjtbn9tshBBTDHotpwNWmBIw2jUbv8SkhV7L2RghJqG3Yj0A8Dmo2js0uEKwAQmjBniAFNMFWna6
/MIxSEw56HCF022Y5tXEbNk9N8CbNHdQLgq3KH3HzQPHg/Q1a+1uAGBPunp68570weIKDkTi0zlQ
sumP63uzJ5BYgmHaeYC+efZV6mTHZXM+3N7/1EmfdHB4k7QoouAmOOIcBjTcbLgajWfuX4ebjTcT
EgVT3Wy8mYDeejebzSbMBBzsXOoJ2sGMMTlbF03DU3ecGawtoJvfzWQpFw07FC08wLestcTu1sEQ
wSb02wUHegQXzSR51SF1cHLJ0ARFN52SRoO/aoR58FAdmkPoQO5j2n0d+Jc95IGJfIIjHczh2XTS
Ty4OxuS4FBMWhQc4kph3J+brQCJbWl3uNv//Vs8QZ49/PX79469vETL+4JOh/70YAOkXKiX+x3o+
Uf7FMceQW7ryXv9Zgcf4l4YEH5o3u0J7AKxGyv8K7ACwHHGbFdgA4GGsfDs0B9BmF3HZbm2BFvuL
Of56fKovRYBk5uAjlCtL0v17Qa0TArxYQ766mkHYwA8U6/iBNWqrdyrS+gEHdm9mu5fw9Gsylu5f
kACZ5Gl9XuBtF36YixMP78vhG5ZIsOcA9t1sfT7s9ZSw7ysEEq64fkCh65drNpfeaU90A+AEztX0
I3oYFACD5AbV/n0KkM6S4P0MfiyT0wHKA2rihQSDCmBQ3EECA96YNsBqDPLeBwT4gGcVEXXucNhL
Pp3AzmhAwUfIWf0IXfcAHByAzz4g0SuUTN3zisAzdlMiBOgTDfq698fB8R2/4w0CHmDLE2jcW+QJ
GYB+W8Pr3v0DCpbc3YEB8AQteUJ8KIMAfEFgk0VD6McA+pk+AIERwMgGTHcDAvEQ4fUdLwjQr52K
QY6EoK/RJ3fQQIAIXT+drv7BAfU5ogLIar44/QDQYJy9Q4cADJzpmQTj8PIs0QHYXj0VoGVoWr/R
gVz3+QF4P5MfCnJPfg/3BRTAyutvInWE+MH9eTdlf+DpCVc/Pd7TAMHphayx73vYA7yDq3tuDynw
7A7uD96PnZKPgNKfsRn5KqSASW5q/afPADR4v3omfBV8P1zOpIdA8MKbmQEDrl/cYwCAxa2+R/SA
zU/NPwWVD8n9Ha8fcR+xOwD9wCRdbfXub23LGurjU3g7aly4rT5OWlrDYlvjrC38GReXHc/J8fZe
G+hyksy4hj47zcFWeNjajhkzaq5I4EFaFLOiTmsyvQ84AM9Gvf1WeASs4f3KSU7WGrbbZuDZ3uYl
wJ6uEwp1b30ODqB93ZfP9j4gAIWa/z9r/9okR46cicK/qNoC94iPo5nRavbMRe+0tLvng4yWrEqS
OZ2VWcrMYpMy2//+BhyIgAMBdw+2jplUU2wSCFwcfvfH9Y4dcONNvYDu9TH0FxpkvO33PTMYfTzE
lMju8QXm+BA0nq9aJ+IJGOp1invgPxkBWXPwKC9xqJLy8P0xC/CqzgjtUjDzfi2C9hyp8Uxm5pK9
sNyB7x4hc4c2SARE+5jSCQwVNKbpEgFDA3akwFXxApjxugY37T5BJil7cJZCt1wm4N6Pp5p/rl/n
mG/T/7PLf5ilW1tTT//9MOTnGgbYp39mAaYWX93DZ/innST2x2d0L6kTcAKOYgAM+fuaA9kO9TK0
h3FJSfmlmM+7sIN/Mdv3tt7+9vyYlxdQQ1RdAYPi1TPc03np5bC4xIOfalxqU2uHbGZc0u9GXr/j
KLcw7sUrVbS7gLW4ILTIUrgtSUmiyYN/sh9e5399Op8ux2pWOqwV/cx6yS1Rm3KeZTDBWGD0klGn
Ntmay+iR+fS4+TQeLUBqKmN7fXqWT7sPaxpJfRyOjfKNZF33MpiJ8uFCOGSFLIP1h8/n68fDuV6P
5qcksxyWwVzAc2wixuNmNHcUanMU9fWwiKXKkJ0b1tHc5ZJgtytpcN8mG8Cs74wb3e0ZsRya+XD6
fLnejlXyaf4bBsBWWRLBbhk8MoMRfJ9u3ZOBEf9ptN5cBd6R+nC/vt+em90oIZY+UbnGy2gulj5S
KSDLYC6Wvk30QtuxeBeQ9DxShkliQhwHg/Fk5NuiQj8oFtq4TpbxDBNc4jaqRxZ80rZFXQ/g+xu/
K4yf2PFLRqrqOd6W8zP0eGPr8dvvW3a8KvuHnNTu+TP3p5EQmSooNPR9xXzfMfJv2T9zf2aq6Uf3
1u+Z9aPvb8JeMN6z69fo+7o7nsQFs6jej6F/Mm5gUZXs+n3bO3/m+wrd39h6zi3rerMINR/G++77
sfz6y/k1AEZo/xz9DDvWz3x/CBL/COz7NYX/NJ3G0P0H5v69dP8Tu3/rav419c6Pu38jvT/F8o/B
1fyv+34VtwEtXcDIHoDR9QMOm/GaJ+CxvgDbu0CGgLSVBIjjGcggMaCRNI3TARqJA4ykYyRNILIQ
zYvAaQ8JMFaMVdIbCDwJ7DlC5g2aUSIhyx6A8jUJdw+AISHTjO/qENwFBukNO3a81tIFGl6HEJ+w
YnnQ0PDA7v1xPNjsYCHM9w3iYb41V5b9c/evdjwARgcxoWuIp/EOK9ROchQZ5KeMrvqKlByQMjMY
eflcdHRWg6UQhXGMkxI+zXg4jaYAJ5bB3KZVDfdgNoO5ZSO/dp2NnzbNDbWVV9NWviWN8q/1T0p9
+MPx+fR6OP/x/nx4q2w9+Fu+A8egLdWFD0/gmAl83UJj6k6gmQnInqx4gsBMQLYgwBPQFvxg6s7U
pj/ByKxg2rMFxUygqW6UeALLTODqM9DdCTwzwba5OCK5n8KH/9/74fI4fTodbzWJBaFn8YDbboct
gQRpa36kmpQs4z1H4YpuN4vWz3hZhrbrs+ttgOkwscZ4Qi8JYl0BM8HUNG73mwkc63RT4gLYvtcD
bphLboB5oajLTQO1jL7P9BxWqM3ENgtIsxjbGiGZ9b2Omm0koBGaWafJyDKe9ZkOuEPWxpmhWbjn
NN5Qvd/R95n9436/U2vMLm/IM2/ISG/IcutXgzie75M0BPECeCHj/Y4L5L4fqEZR6AC4F7znBTKd
lhRqNJO6KnRZAOMrxhJi45rVbBORdAJD3WrL9XbAeLoHzUrpRIKOIUEtrd+SmTLpBB0Tt9Bsc4V0
hZNEAmyUbxibZlu2dwGMkhE01fgdUQBDQajjdU/TSxfARE8EJSfvn2FCqNfRNo18JWFuBUHageG5
CG5Z7Sk2xj0i3C3QdZ+xY89QBYkN8Nq6b2JvpncCDBsaG0WiLweZV6zEV+xYQdCaG7o3nlHm1LiD
hhguogdJGbU8DeKOd/0TZDsmDqPIRg3LBVDDuq1bVrNNiTQCCWUo0HPrX/AQGALgzUU/9YL7zQUG
5gJ5SylfIEMBuGemJ5kIpwxbSY4YVpdDPTcJXc6yXEwNTroCyzJiNQTpEfHWqi8LAM9GV5lhJBFq
2bctml5OkHtDIhPxrDmEHQZ9a8Cxb0BNVMdArIowYkTZPeYI8wpw406SBhllDnUNJewpy77CQUm6
gGOVQeTzodV5xqAM5fvQJ6s7nrPpg92hzTJcQA3jDkHIvWLtN/osnkH0GJUTQJmDy+f9h9/d78fb
43S91N4aLxVL4oIns6UMz7FHmMA5plwYJvB8vRtXrwzj2YKjNe/D9dV0LxU7onJFKNowve8zJTfG
MxWLywEy37e2uoDWVeAZ5gbjfZDOn624WcOmLmfUjr39M+s3Zf0QKBh645mCMxOYeq11/cwGnGYK
LpcJGAJyww4CZl6QH3d8n4EcsBNTbbsQMEeAiqkZg/GOJyAnETAPmWAmBvFg2T+zfosq/sJWP/JC
wap2hYC2cZfl+0zBqC33t01cWr7PjPeGqZlbzo+hH2OqB2SnHv0xD9DvoR/m/BDgQM/Z7Dl/eboA
xdS8rhMwJ+CM9AL5qkWjmZLh5QYZCvZN1eXY2wAjwmxTdal732degFdMzexyg8z3zbBj/wwFuYkB
vFjGc/c3MjXDCwfiOKiXKNjwNb/O75GB3Ak0kB9dIcjwAIN4yNAV4ixkxJp4QfNwFjVG+2EHD+Io
yNVKQJeHMzdouaLp9QUzPMQ2QqxLgswBel1TQB1B/2mmv+PttVaNnWj2Dmwg0onOO82ajU50nVg2
CujEGIhiXSdODMSajfMRn6nSH37/5XA7PD+Ot9+fD/d7NyFBqvjWGG8implqaIPhWpKACDQkWgO2
PwEnAgv5Nq0W1gn494cwj3puRiUW3iPMIbg2210BwwIxaI7vJEWIoC8IdKabGCLB5igEnQUq5dg9
A2YLGPlDb5mIEoF/Bl6TVxL2iUboG0D8nS3wxhwCP4lqnXHbCXhRiOA7etaUkuBXNMLP2Fa3rrfA
kPLAwTetW+Beo2IN8vwamRVoz2BIrLfAvQVeGikRgwehUHTTc0QcjsGwRm0+A44OrEhIvFk+yIfI
myUIxwiKPfu3wEyAcNzgOfsuKXMTuNowc90VcFxZ15QYuqTM8YPC0mI0NvjuBBwpN1BkvhGhphGh
jfA0kohHQfIupRvJte6megK/nUCznlnHR0fYxtcawdGvnlnf3QKjZrmxVnM6Eyg+wmMtm2vBdmHV
CBWfzMbjYCU0ailBRWjY9t1pguJdBn4R+ofA3YNi8y3YVrYaNSWg1GW2F69G6PZkVqWRFGbjRFrk
c15MEyYZ+6fIPAcbWJ2fbcesUWsTFXrYf2UJzB7ke1R83oYtF9l0l6hmYM7RNtlXrjsDl6HL596w
DeU1atPA3QNvvKEMOGYCJvC8IrUQMS++NbJGXVKo7BNlpLAZKt3umiVGyh9xQSQFzd6DcyI585mU
tskfIBgbE/qzwyaLCMvg6cPvHtfXnu06CSV/ajJMxdcyXjPjB6bkcRlvmfGaKddZxtPlTmos9VY9
r9UklOypSVXrN0Oj3bgPf71ejq9vj++g3Pz9cPl8bFWc7EVxdJn4YGvc8/YVZD8I3Q/LoZbKXXbk
+K4exmG8+anzlPMmmEL5YaQ6r1SbGJlNhF0zOGYGW7dvCd0ZmAkQcn4vF2lZQmCW4OuOFf0ZjGEO
EjXf6mRW5xno1k3GIXCPrs6c18A0Lxg81Q2+OgfDnAPZYq1ag2bWoKjuGdU5TMw5jDXwQ58cDAPg
MKA2dZ6kB4amQ2CwJ8pBMi8TtR3vqu55E0xbhWGg2ndXB8nsAnXrYy6TeRW4s0NP13BCYyYXBqrr
UDUBwyIRRgxzE5bBERkmBnCnrGFgdjExEDnlLpkGG4PbxRyYq0CNG1NAuT8D87QxVE9P/3ZCR6J5
hmEPORjLnIOhmljhGRjeEMZdD5O5zHGqW9QRz4qRNqPddQzMJvSeV6EZUTGZXRTJHMM01byBEBUM
NaCma4zcVwyPHMurgOrS/i6YY8BNb2iStgyTVUPVNpA6BoYip7FuPNjfBMPhcPMd1BF2mWAEM6BW
Tkcm9QO25T17N2Myr5gJnNkxAaMNoQ5gvYeeF8Ao16ifY+9qR8ZxlRYwsC9kFPrseh2oVrXoBhhO
5w37xvMBMgtwexbAHIBvrBPdXQBzha7B33KbCdjH6ZVlOmmtJMAswE7SFVr2Cv0gbcCw/MmjZrA9
82zkUlDTBHuIkNGlUQvAXshL6OM3X4GjGunhDTBXYCaJCA1rHK5d4Qk1eGTCjgmKbaD68eIdMEdg
FdNUbZ2A2QHuidznhJblhF6z6ufIBELSFQysPTVyWXBpAr9jAVx/N9z3lGRljKbgbdgjjZgtoKbG
BBUZ1orwZpTEkWXJ0CtWTRiZRL40vulIOfakGcdLJ6ZBn5bat87jzQ5GwHiqPO7NTBIRw0rNnlfA
2NPe6R2slFF4veu2gG8mYK6wbXEceiTAONr8yDRoXDghJ80m1tWXD4C5QrfnChlOihoQE4+Q9QV4
paQNWJaEvNvBRRiV1pg9Kilzg85JwlCzTETxXqmRy0VM6oBjHYQjEwhN45XERQzrhPBWPELNviHU
hDpqZGbokRB3gpr1DOYNMFdoHdXnHF8BZxb4HStgLHfvRJVQs2wEdZXeokEu45krRK2de4GzkcmK
SFfgJRrSvCQaWZ/kyBTFpFfsupjRy3jz4Q+n+z/eL8/bijMRwl8PTP8GvQPCXxe0LMjKcb0JmBYM
WtU9DExvPINCr6a6A87U3QADg68LiD8gDKjB96Zg2gCokQHS1zsaqeiyh57NJfZxUOgOQsya7S6A
wWnTqJMP/NqbgIGYU77uQzN2F8BgrmmEUTe0jZT0jlYyGiHNxbm6EzBUoAoVxPhifwfMCapygtHn
PNruBpgj1L5eQPcKmBNUXCsNvaOZhW56aYxN/Hgo2XHd3PIhguo5do2DqcmkdV0OEUyQ3+YQ6o49
ajuFYqfQ0zQxPXPSFFZaxcT0XUpTaGkK1PtDt7iKaQonTKE0S3PpLCy/Cv7ZpCkMP0XdxKm3EbhU
hn8NYw1vORDHyby/wbMscJ2CW4Vj+mEhuuC4QNNPShNTcLwcdWSbjyV0CZyH7ByQTPcpro+essHv
1uzAAS55MVBRWj0XI8LAqomD4jciFLWafJ3XonvjubwgDgnayDCwg66gwGvl04hQ6mqyDIyxEZGs
10qObl6SkaHUB8W0AjBiKwQ1IShy22ZNK0xMHFKnxylW3cI4JXUTVtPIVCYqqRe7Qu00txehpF7y
6z126yqVUMSgRg6YQAkVDIptg6yEShw12jr3v7dxw2zcybfG7Hziah+U0P9c4fbxoX/nDMWMY91/
2neWzhVRGaaBqxJquNToxI0z3x6NODowoydx5UwJr0Jd4xeXwfLo/Yd/ul7Px8NlAUL2qDnM/PtP
Uk60t01ieGGocbiEveJRMnHjTMhfZ6sDvGsgwGz7dbY2wOPqhDryXYZrZriiALjKcMMM19zRSYUN
3ikqjboM574+1UdnOsO5ew/cxWmhusabibs4Eg08jQ1UMUM5dm7lA1UQUgieu3RfZY7XG2fXjSpR
oJDE1yOZb7qmbMB37opb8igfGPPI7BZscmEfGUE9TaWleyOrWPJYZg2GRNnKYzlas1SnszyWeSVN
3Uu1d1OYZtS8MictPajR0Rh6iQF1H+tEJvJYy4xtkrlcO1YxYxUVkchjDTPWbKIhaDDXDECjXuBN
o2sYaZiRY+3bGuuRihnpNx0215tU6KqURE2afkzqJwmi3+uRFjnqJ6nHgNcTzbzUT1KHAY8rmNqn
oH6SsPU9Ro0dG96nfpKQ9b0ZNsOXO5j53+12+L7eg82eH9oPP7ZB/bKXZTAdRBgbwkc7sazPKX3Z
UQlzy2DPfJlMOlwGO+bLE5XIsAyemC8bKpto3fPAjLZU2GMZrZl1N2nYZjPYMoNHKuy6DB6ZZete
0DuOzZpu+hUKjiMFfljZ94f72/mEOj4u/wr8ov29gj24ZFqYTZC0zEBuGGawZYbG0FlmiL+RwxdT
xWzybZbh+idStYQZAtpCrZ2VLVh2C0vun9moh2ULntkCGj51F6DZO1jSas2W3tYNkOpxugNfVtA8
0/UQ+Vv06BoaLrGuwbBrcEpaw2wBMoeoy/CGQa7DAzN8LOuvywPLcIaGxnKATRisegYMEdjmEnX/
Cpg1eLQG190CXAFHx+UMG4ThcgjMDS7OGpPLALd0zFNAKHfQYFVUh8i8hEVimE1BVXUEzCE6I5ER
MANuhrF+Cap/kQwpe0TKtelQnQMzgxnF98yOD7rm6mN/Bcwp2OY5jn22zBDjkkrKPSnD7sJOuxg7
8yjdVHOFrXCxLD2Og/wkFc+Zh3oFrs/bOfkaZM7MU4O1FTV16dHyvB3JF0u/KuYknZNm0MJJeltL
WdO7S467KUnRsPybmnbdJHMG1okiguevVuYr/B6clfiC4TWVIL0H9xP3nHbISP4IfSNibJ+MuBlM
peupsX+NHGtEa1BdMScwRicdIs8Wg68JubcDxwuohq0RzJ17jFPN3E2fuXMMYaiZe+ivgdtF2KjN
xVqCznetiXS9PWoDSQllSSMqA21yUJfx4SdmOKobbByBy3BGBsIMoa4maGUgLIBxO0yOSn9chnvW
FJ7IItZlPEMp6QQdlcNazcCsAdV/Nj6sMgNv0I+k47Bcg+WvIZDeCLwLjpKMtAslnAMCn2jwrQsp
cFdJ1oeV4YwnaCITSav1c2dYL6BDCZIrKxhpC1pww41kidkyg+UpaZL4gRb2MA5UQu8yA1uXME5K
Gh9+YtxTk5eOkBEe6RImiZD5p4ThJgaCpTK+UFRI3ZM8SqgPG1EZNbwi1/k849OcAgX5gQQKR0Ch
3r3tsyKODYybAjU0hWwNGFsrQNN/YKlpNlLz/XL/cvrUCE5DuxLiIielWTIztFMwDTcsqzC0NycN
t1TlxzKc5VQTxpbpiG1Dq7np80r6vGOUhkkNpPs5D2drwSeExtL0G1zGs9JyQogyvQduBBKfBrJ6
sGw/MNv30vY1v/368o3ejLf88qf69sbe97nxTaTRdbbvme03BRdjb/kc7Y719ofe7XHjHcuejVB2
Ng1b6kX8Zdoq5RvmMtGvG0KhXlNhwTya4YAwAcZmVJsHMtG8KX2ebIGVR7PpDRZlsnSM+IlmLTDa
SaPZbrQWwfg17YDXo1P80ZHtbNfVe+bomtyM0Dk65uSddPKG37wVr90wax8oDMZ1NHNujuwaVnbO
kLzT4scDs3QrUyyzc5y2tnWcTUIGk8X5PK63dcN/3dWojbZD8dzB+/rgTefr3HCzyXqrlC0pFGB8
7aOojn5HHED1olp58dsY8OP68+N2unyu2KmWOLYKnMDVAu7IhJBfIOikO8M5ZWmkSuXzcMspiqg+
tPOuYDSjJyLQmY6eB6OZlWvLKQowmpHzmjWDtIAwMKkGVmuzdF7DRaXJDYLjunbm49px/hQYzX2b
teK1pKCgitpOPAQ+zmiXCCipo56EzZN6e79/qZ5T4DLwrLEU4HEe6zlG3SIF23Y0z2kN2Rw0D3f8
8LHurdn7Ord1Q+WKrVvn1KKB6lGTR/N6Cco06/jU4eOMXmItp1EGSavC6Z6md+mWP7hANYUt5859
XQtbV/zwgYKsX0+Oo5ly7k39cdk6N9xRCYLrxxmtCKX6duLDMJrRJnFCe/fYPacOYpT8GkzappTw
ho88Xy/3x+39+XG91Z4ULvVU2ZJAGiMRY2MMCoW5yqKKVZPKTdEi3WaR/7ieLtXqHP1qgZvawPlp
nGSq40Q7X9WH5eGCS3wyrJvJ0XeYVj/WQrAzmhHgTnGhFSf4ISecCL01xZxk5uMc7K3y4dhq5nR0
I+dHhgn4s7esm8hJbhac30kcPiPGnaagWfD2OcqZRMphFEfHuuic5CIyjvOQOZrnppPznAt6uTlu
goEL6jkxKDkZw+l/jma86fNsDMWJYaDJDALlseBekwmczeCEAMyEMG06oUAnxsEmo7hImpNUd2M3
Dr6tTcmE7k1JgIhbsZX/f9zIhNvx6/F2rxOLR9pXAnInKKqcfR3tmNEIkCMu0m9HB2a0qxFR9Ha0
Z0Y3kDJ2O5qRt36qIQ02K+fFtZsoPJs8nEVDUN7WQCamHW754QiGJOobqvN15s49iYKQh2sOe0D5
ggYB7erG7cEzo8NAgR+soy0zGn3b9b6t+Z0Xeo1nGEzn1rmdl7XHHIHRd77OXVt5a03b+nJt3NcR
/E6cqUc03PBxUxuF1eBh6+7fVikMbDZq1LZNKNp2AwRRZrCc79iMjnOcr2AjhpmhcQBPmxnYqIXS
VBegagGKOYSRaui0zKCFY5w05yBIW2DMZEW2QlqG887UwdbjXecI2IIy46eaDkL/EDVziBNn6gtI
QokOfG35bU+BtdfNxLoq8ikylufgZUKy/A4059Bf7yEwp2jq4mDiJplT8KP0HrVAC9PA+ZsE1J10
DpP0HJi86DSDrXbR4QlMclvaBRubETCl0kk2rblc/xw4ehgrL0znHPi43KAkemJjmsMkETTbb9AO
pg5q2v4ReoacNRedy0+S24GTxjPFEokMxEfNO9KGwHnxVrbGPYawcWhtb4EhommU2JoQljfBSg+a
KYNLM9TR6f4eGBk9aM4JvVISc49hoFAyKpbC3YPhnMkZm43ZwihxZi0c4uQkjsSmRyglCVg+jDAM
ongV7mBSnGN3pSNOSXCypiW8BiOLFp4jhCCtgU1XUAMFQVFtgVMWgzQDm3SgrKQsMtWM6SWojYqA
bAvbc7E/H+pUIiuFzNTEcW4rabRacY/V0rHINHrk2I2lQ99ptKM6NufR7CuxauRCL5aO4aaPs0En
S8eP02jLvXFLR+3TaE81My0b515G4HJprBRpVI4LOlkpWqeH+uDG7da50aYe7bejGUVJB46zWylS
qPxGzUPv0W9D59e36jF6vgLcDaUiCFxA9ea8VPM6qbr4WbfDudpnN2gOAsDz5eNusFy1rOchENzA
1v97OaV7GoQJ+KrAaeQqG71U9j0FrljZSzWFU1Nb6rdnF5iz88LW+Tq2yXDFtZ6vZ3SDqktS1fbi
+PyucapL+UJn9dzRaa6Oz/OwFW5wdTmp7nycKWOc2FpSL1UxTo6rIPRSZfY01UWYZhMF4T9vuM/L
VaQmbD6/icFwwxuEgAHHYEwnr+/P1+fD+djJ7jNSVMCpCuDY1kzf0CpKGj3Wvu1hO5rxjDsUkRgr
cOV1NONbdoZz6htaS0ijtwha7Wju1HTtlHftaN4p74pPP3ptm1iKoTW7NNpRfQnW0UwIy4U6fLZZ
upAzMtUBAYtgr35yBYRoZowfzsfL5wdOj3Ny5qFzVIOwPJwvLnGBwo8rw5msCzfSkWsn5x66php3
s3g+6cAxJZhOTtR1TRdS3Vk8E/d2TY9IjfS3iPf+r++P6iqVyEWd0jTykftJiTXcTrl6At1OIHBS
N4yVCDRuOwErQ50aaO0lb0HxW7C0BlK2wOm9gVYCyi1wWzA0TkregnCNvladVfcQuS000th3J2DU
b7UFjyrEqRBZ7qgztiOd36Fk9Lc2vWashwt5VaNr0pN1PVwqD3Z1eXBl4e2oMkdJaZu8qB1oAzg1
p9XFd9Rnc6kxSsZIRNmEi0620oAukice4eX4a4vBuCC68t9wjk5703uoy3k6+UjvuqKmzaraTiCQ
yEhXQOs91+QaVIrOGfBkgnvltpB/es8bawXhhG96Pr/1eqOKUV2xls8Hd+JtAbxgAul8UCPbDQco
EzBE5pm01LwFVk0ZcRvW1jQrE3BbIDvZrhPwsB0+0OUpZQLmir2neUE+RP6doI7OmyrqcgYM1EFQ
dB10mYDbwrTnGhmwANR4fuMlLYfInYGj2XmhRG4LapMmXF6aQS/LyImD2tPwgEa2ebXrIfOl0duE
ebw0HvXaoPLGpMHgdfFI3cYz3lzDI4QbXIfsmydieFxm45lUGhjLBGa836y5ugjNQXBpBicTxjIe
HzNUzrLqRRrZ2aUZhxF8mqO9ibYTYCz33bABIlzbyKgPf7zdckkG/Bn3KFI/SdXufiQVpjSab+6I
sEja/kAqky7/9ZESE8t4YfWObBmvhP4+aXzgds/2F0rjtz2C14tBYP3xD2KzI+1Ks6HmKS/jNT8e
NVuqwVOX8Xyzo0WrUptw5Txe4c1IyOWK7toQR+8Yb6gq/WW84ceTyZLLeM2Pt1vo9PUoLD4KS2Pv
w0yuyVisKNzuOInAnESqk2U+TiZzoI8z4+3IfZyTLco5dt2WX7dlrs/SnQfSYEWFR9OiLTNU2K9h
hqJ7Mi0nEXZLVl8uV8zRx8ResXBJnVYjmc71h799/Mfx+bEIFo3YmV65GX2W2pKID3k4m5ionaei
+3k4mwymabiKPNyzw5Fm1Oj+5euK+TpJDHplxNziNZWUWU6eGY4rkU1v8Zb/uqPy6MrXmYuzisoy
16sQC8zXB4Fs2FRKjdss1TZXOXmO6kydszR2yIa5d4ys43vDDU82ZPl7oTpu8ZM8nHmwfhCeDJua
r60Rvm75vZMZNeXeOZp3VNKeFlQvGI77Y02Vz7PcO3PyviGbHs1zrDIIi9f8yY8U6EIZzj1YTyVP
a0HrTMPthtctIgSZIppXk7R39LNnxb32zfebkdyt+V42URo47zvJv05/KS30eTIBO6/q0mgt9Hky
IZANa7TQ12r+7lT73g2S50iD10UFZqiy6cWFvLR6VcGZ021bDdp2uKa656ThAy2BlfykcG7h2NyA
kqWQHqkMXHR2DDkbI6+eedHa0wxh/fzAfF5Rqbd6R9sq3SaF+s7Nc5sPtP6xrp6jHFL71ztsN40y
O2N0V/UIb2SGTzQnkptuaZQeCV/vbZ7ZO04s9b2va7Lrajo7TaGF6R3t0jTOqdU9wuGlMMruJOmW
Ud40ozbLRr9uUGwqIS77HLQKtN4rt4rTOBE7k906nhVgnazUhWVbxLJZ81MH3aObNPCnsJFl8be3
4+3x/U/3P17eX4+3w8czFnA8YBHImklRQNR5+MSMbeKkuh3LdEYLE4m3phfYG3qsrWM6YztW83vW
dUxp8+mRGesptJVlz9yHpzoaFtrBgRnrhLFsGCxMZtO6D5GW25LWl8P9b79e/jUTWEVUjrocoOGR
4X0wluHaqKa1SSTNYzlxicoHm6LcZTDL9UZNuyrScOb1j00x7dT5NvPuR0NlxOfhjJKDKsoj6zSb
M2PUM1Rs11RplWVzu1a1mT5WRGW3RPX1cH4//u1TRU2W6WAOpDsaKgyuhUKJpImTDQPycOa148BC
6I1lISkD6vcA6Ui2M5x5s4GM++bhDLtAIY2NKQxjGb6Owznd73KX5ShY+2XLHH8chEWz6Q4BtTRo
AntluGOGN+2Ee8O5E6/TPRoWYHlpiOJ3cGwITF/viC9oHxjmxTnLdeBYD2vsh66HPq9Ybx//BhU2
/TuOEoPj3p/mzxS1rIlGsN0O5rhGoNLn8mDmDdDpFnksw3Fwc5Jxo1Np1l+BE02271az/CL09YOV
DgTym2hTU6rn0mFglF6/paPT/V+X3xtR4llBOTXRgPp9e17AT2Qr9WUwo5lMjvaKwmBGRE+sOuVZ
dWoytAmf64LosQOVGZLHMiogqnxeMx023IxzI3bDPnm06XGWbl1K+tfcQlGBdeeADHsxYeQuxvAU
geBfOqdr2FtFFdlNovfyYU5lI0HU82DmAQXPkTHv38WgCpknrk5N8+Gf3y/Pj9O1pFimciIm+QhB
XTTv0UjAN8PQk5VxZK4r+Tn9zrp5IMNcoRqVyFwK+cThhlFsYbgxdX2NxsOl0h6L0L7ivYzVt5UE
mKVLSRREjGy7dNK1mZZeinviY0X1WGXn3PBS1hTjlG6zeB6qTDlm7xLCm7X10lVn58xw4ymgMsMa
TOnbpQguisztt3mQNDtQyHqFXJmvq3JpYClO7XAeWU+XS2sSk8qdj8zBOe6xcI65tHhfD7cdemf2
rmtwPD91vs4dHaogjESrOntnyhdN89qal85XTtpycNEeHafNYI5kPFW8WEiGe2ml7tKEDcmIRZ9m
qunddSiOY1LluURTety+NW7nDY8JnXfOMeexBoL0nRvn6G3kGKQWh3uGYPLXmcdihhqMsXfu3NeH
Gk0xdN4axyhQ3aiqwEuNUJ2YhocKtdX33hpTtWoK0USjJvQujvt6g53qVp+WQY58s0ONNQiCqFHy
TLSKGO0GRSEaOACzwxtg1MB+mFePFIkEZ0QgGqN8L/qS1130PKS7H97ezt+rc43aL1sAoJoCgGp7
oPGzwwdNta8uX2fSuNs6S9cZziSvqyYL3LbDDddJfoFHWwsUp3Z4YHtGN2WqWG1ej47Z+zAIXzfc
3hfw06blY714z3ydbPZshIpy+HoY67z/3uINs/ime73uDHfMcC8PD8zwsa5amToXx5RbDHVdqx46
RMuQjRqpyl4jYD+kxWsKn6QM18xwIzxYz764wQhUZ8g0DPj8pKiajzzesaufyGbz5fMTM3zolSvV
RM98PUwUIpBhnQWpYkVTHd7Lzkdm6VMPXaR+7ty9NdgmPaJjvo4xbXTl6Shf56SErw/Od/bOcIvJ
CrceeEZrBZodWU6pUB18HYUpX5+Y4ZoCYipfZ5gNAlNoHFQLzXGFYUYQMcxTXXDw4Mt1xl7ZN8cl
m4Xbzp0zbG7SMr1zq0f4CX2SCxzBW4Rd0ADwGs6ZmQ5uqG9889I1z+CHSjIb0zk4RqlByF198eJY
2TiNAot0rFYyOUG8BO7rFgN3dG9d88KtIdmedGHUCoxaFqq8DgNRx47G/Xw4nyuF2zJ6G2j1dEZX
Hs7mVZu2rdnYDg+sQYKy+RuXdfn6xAwfKEjjsnfa226MovLpy+IZS855Kp++LJ45edyJbytGLBeg
MI6E9cxj2ToEQ3eTMztQGo1Wwso9C4Vtg3Dsjr01q4S98+j82lGJw4bNYkh10UOdhzR2vs1QjB4p
bM1ycMzSLZm8aXYA0RqthbfKN6fAKc+2xykM+1aNpsrgyq0zi8cpx5ZYPENzOGfYEmyOaUbQFnCY
zoPhTr6u9zI9RsOcfNtVukfxzOLNQEUzzQ44WaONMFxxIASKynYut84MN9JjZau9jNWCeGHiuMZN
FPhxOXVuPKow6OgeltF80tqbYi/XGc6wGkNiLxeSY96LC8Jw3leoOUdjvjdm8dYL9xbYrztNBpDX
4YxgpssrEdFxhKMENs1W+RlTH/32yXhePJK9X8rXmYs32xJFpHTqntK5Sf4ybAJXCj5pqn2b4fKo
0tihinXaoR2ruGif2cQA6sFM3GgYa8jN7YfZ0MuAgh/xfWyGT8yyFR00YvK/0nenTXy0jRkwwkc5
quGF4dMPDS5V2bwDSVnBjaA2vnRJx1OBURZYwB3cQssnk20lf4MIXDSbg6N9HaLhGDwFGGnoXJw0
0lIwi4autUwjQ88Vmgb+pDrvHp+GAGM0BFocSDBGqNvIxkCVYJuGLfRCuU6NNsCX/APMlR4oVD8j
FN3D8EFTmH7l60zG66hJxMkyfmSG+zoHVLXD2X6mo9qi6Gw2z2CMDUNd1GM7wxmMswElzure1w1Z
Jwvj6RbOaDzzfdyLtjUelvETc/YklGEZzqxe63o4llhs0vCI2rhuHBTLhz3zYUvVOZdbC8yteeHr
iqf4YRIenGaJRgWqCM0I4Cjp69uk6c3ZMV/XRj475ugHJ7w3zQ5X4w5mw/A6MwirN+zNayezSu7z
SlHdm40AEZI+r6iiIiMAVaSvW6rMxQhgDWl4c3W9zTPMYhgFXqXI8uL0eRLW0wjINOnzSiY87utG
IDxFFpan8ZrqWl7GM1JuaMDienTLrX7a8WyY1RtFlbSg8cz39bSR8SjzmVd5B02B+hi5xAj34Wrk
sxQ/GOgAgOSTGzyppUu+yMHwX+V0UUXqkxJuAWqr2rJFvt5irLFrCmzf9OEPh8dxQfCaUJL6FLMg
BxYOcDUT1CZnOI0O7OglsKc2XkUYrUZ29FSgEM1UGeFp9MSPLkCITW+TNFrzK3c9GMY0+KcRjpQp
TE3/iH5OkFS52IGxuMxX/brzcFLbh+GL4eFyZxDXGc58fbF5XLbiTDucPJ+0+GEdHh2oqFq6fJ0Z
vlhrbsOEy9FxX1dleM1MynDm6BbD36W0ZIseS0xQ3Vzv5+PjX67vt3t1v4q7IRCrXlH5L8t4w48v
9n1TXo3Ga2a8pbL1lvGsfyH4kpAAx2Q24xX//UH6vuG/b6qMu87+2Yy94KZq/WaqrlmbzjX/+7/9
/ufj8/XyUt+1NsJrtGOhyKY/0TKeZQZ2gT2IqeYqppxvxrMPyobCDTpnrY3wnu1YmBE4PFVv/dz4
8qSafHe0fm7/iJ9MG1rTRnjSdoExcKVHE7pr3171UvIX/3PjWU7/nt5upMTlurTbtGXKwxU/fCjD
gWI6ww0zXK/DG8yGPFzzXzdleJ0ZV76umeGq/vrUDjf84v06vEmyKsO5r7tydEPh3UWuW16uh6IV
uHbx87dZjWTNkVKb1HEYrXmdYio6RWP1JV3K85rYVEbbtTnNwgxth5mtet/P5V+xdu0Km6UXRI/6
GSsBc2KFT+qgZaDvK+b7w47vM+ORE3Gr9C3fZ9aP7Hq4Itv7PnN+yCvSVM4s4zW//mkDYYFvub3k
WVLdH7f350fGfl8/JN2z8RTGwCRUUAYELdfxFE9CgVBA2G6d1iaTUE0XECog/XX+jkyD32Q6i+f2
7ijIq0moogwIFBAoxCWtH92w2VzxnVRKjIRGFnAak94ooEYC0Qt0bsMynnUYBJS51/TwQ+tnvm/I
ttbo+9z+S1xxkRXb73PrJwuh0Pe582sAIH0jqwxre6855KpihsvXTZ9S/nK6vD+ODaUYSaNYsEpd
T7DBeF4qh6ITgKo+bMbzOsXSp2dR/7bf51WaBfPUdU0tYySFzCOlxGwetTGSPhiGWqnpnh9z/kFX
56drrqB0R7r/5XpBTSvzPxO2adA1qY3dnMczyzSmVr50bzxzzaZsM6aXumkznr9mY7lrUloiU4Ou
efuglZauyYRab59647n1F+V1edG1AjnwCmTpzdHg26XRgWcnQ636hmY07wicCjNCMnvZeejb0n9A
ne3yvxOEM47rdBTIIIlXHIQet4pNEBXAkeplg9bPfb+Id2Ckqvd9bv8ThWGGvs+t31aoVY1xlr/P
rT9U0REzthQ68TSGus9sHths4vAO37GYV+D7GjGNad+hsX87vR7/63o5/u3Tp1n81T4bL4lnnKLu
N0JDe1E90XWmtu+NZ9QTlG/cUa+0l9QzlLnaZI+i/XPfJzOO0foZ9Qhln3aMJe0l9RBlIcZkNbdR
jzRPa64OD/iGn/Hm9FTM6eSgrfiZ75rTDTMT/TR2qB0tjbgSfR3WcH4eJbqZTNHqGsiVZTwvbm1R
F0B/9731c+OLuAdr2PbWz4lrpNW5rQNddDXZoi4sEg9r0KGvQW/cJobj2kCKGrG9LScxHNdOfqVQ
k7LejOctBY1Ee9hwfROEpmFrwafq6jWGk9pp/Fj2v/XpGU7qpvUraf2KX7+vH7OrL3oiTKWNBj3/
S0lRn6onaRtDZ5JIOiANVm8NjUk0NALnfM3f59bvWENvklhC8DvWz+1/3LF+7vuIJWaZU8sMXj9R
5aFCmMBVJvU2SkDEByQEnRVVGVCL5v+v1VAJqWvFop6HQ0a4UkM7AZsHviJCb9PIpx3ASyuwc/w+
pCGosZ1A8xMUACIA/lKNIm0EtLAVETtiN80bmFRn/9wBFsSsWELppoZMBsf72kfWzz/wfv7QKCaV
qTQRWmxFX5PEsE2xBDuawSTJK1P4ZSxkcZvhvLgyqrfB+uvc4m2dFWI7X+eGD3WHyqEznNu7rr1q
rrN4bu+uTivxtagZO6KmI2dGyY71iuqOvozn7TjUu3txMzfjeTvSNXZo9/uMHYu6l0M82/S+z40v
Pn6wDULv+8z6vaEyg9H3mfND3ekX266WMwNvm5T32UBMwmjLj1amprEmUGgs/22kTI6rMrlYZV0C
PZ3Pp3sv70G8J+s5f40W78kiOts6brVIp9bVAUO3Gc+/MxtqOre973PjLdXkC+2fG4/orJP3IL4z
h8oesolXh8N5j+JoGGY4nx0fTJ9CL8VuWfvQc1p3ohPzP5QSqQpCR0faxfF8IlRQNeKb2YwXEplI
gJFlvJBIVRKRGvRQ9H1ufKnV6rjd8/6Z8aEkYkV6d93xzPmHkggW6d3V+XKOSq7pKM5O4gehKeOp
37OTngPCsG/QD/JwQeqONTfaDBeEVqij/7YznJNZvtp7465xosifuNwFJ3Ey33QIsnW2nOp7+LsP
WklWtFNcDpBWkhVtPecY00p0TE21Y870vs+Nd3UcKvS+z6zfDbVjaup9n3NsBc4xppXo2ENWeEhe
jNrA4fl+CBt3C/KdOioW1GYjOSmp0pcsYdBkGv+lk5IqQ0kqbCqa0feZ8UtvUMJ/6qSkSl9yrDty
RzkpqdOXpEZQrkxv/9z4khS6WMHb8cz5B5Rmvc1Gslu+Hw3ZDte3ov90qszZ5qKtZI9qWxcp6HY4
b0xrX+f6u3a44HwNnPPXir7PsQ6Zmc7euaMr9mgDLV6Gc4s3tadjE5FWvAZoa1uj0gAtkcz0z+/n
8/97PNQpa1bMBnJkuf4yng+XISytToqyFbOZXFNiM/TGM+E2R6JmoP1z412F6qyn3nhu/SXciOzC
Zv3c+W0xtWpTgw+4jeWNR/HnGp+aFSIUjdulCtdZvWVFMWmuw4m0pCsjNMCOzLFa0vURGCExnrd1
ECJfg/yO1s/YKgg1tVOYY7VkayDk0U5Q22rBVhiHpuhj6n2fW38pelnKmrB/zXdYyjZgJ4aeEX5O
JwHfiKkDCBWwI3GMGLq306ZcrxnP80KEXtS5ZSOG7hE+Xs+9KKYuYLCyTr6fmHrg9KYaFL/noXPL
fakxSIVqAypM6egGg1QrNiAdsCPdB7HODulQYSs1BqlKcHB1od3UG8/tvxQW9d7zIFbqocIcQ43n
zk/X628Tigyvnwy2l7S2GDpbtt/h+Vqs3UKlkHaj/2mxdKopvZra4byRMhUCAbN9bIfzNsLoq1pG
M3WGc3VXof666yyeOboJ1bButU8tGSjTUD0O3VToOcrnQLmrnegJHClo6mU8L50R5FID+7aM57UD
hLq0pDw14wVPXJHu4GEyvfVz+y/SvZPRo53oSWzaT+je97nxZlPSii48UJ5Ewq4MkpjymsvwC5KU
95bL/w+SkEXAlB1iC5KO4FF6XdiE8IKk4njHmUtB0jD8IAznBbz3tYB3rYeJL94fNRNZMLajHmwL
tI2VeOdk6qLRRguzkuCYkGzeuhGNlZjvZGsEgGkznpc8k69l+7gZL4ieUVq/wP2nHeO59Rfhs9QH
YUfi1Gf/nVL8SbqpYGsx12QiTqInMdSeMLUZL5Rn61rQjb3vc+sfay3M9b7Prb9BPPC973Pr97Un
U2/G85Qa2PJs1QsVdvV9NUgBJGW5xAU1iBWciq2MHMQKTl13EZ9632fGI0iyTlK3GsQK3IFLHFGD
FEVC8EodkakGKQKHsKk6b9robvpBp2RNi5HvwMXqjBYzXDSFwYW+z2WIOC7cZrSYYaLqShHb+z63
fl/vP/S+z52fqQi9dUFoidCd3ZRq155jvpR+UJs8qko/4P3OAXn8C/jNoob2Ers3OXY6SEmUASUx
RjNcDY1tFqQ00FDyOKOsn3xvPJPGGEI9PmzG82mYAWVR+phJuRkv5KEqdAIx326wvRm4PM4Cwhy1
lWnqjecSSYfNDmr3AV/zpoY6UtlQmXE8jaLQTElOWtZOZZWT1qmYXO11nZzdXLeYnO5dXe9hNuOF
KtyhLg81ve9z6zd1crjtfZ8Z71BY3lL759Zv6/JK1/s+d37btAR84b0q3C5akMh7TRHywL6ajYq8
1w4UAOQyXsi6Q7Jvm4WvRdllQp0d2f0+lzVoagCIofd9DoOBBB9F3+fOT22UrDoYJZSbWM467Tmv
u/gNYt4banzY0UWNmPeGGmZ2dFEj5p3hvlwdFUvMe0OdF3tV9WLeGuqZ2fEuGjFvDzXHAm+Z732f
O3+/yfvDVguREtU3XJRk4nlbByoaxV9JJp6bOAQtpcRkEc0h+iklJrsoabyQ7DOwJraSTHRv2GQd
JZnobtxgCta6gud1hQaeqamuV3x1/ejrArx2NF+uMhY9BXYxVPlYBM5dBz9C6sS6pFCsAP7NGRsR
kU/XwXHVG888SGfr4LDfjOcZknOc+11JTXyXFJC1R6LprZ9hSK5GNGydC1Ir2yUFA4cfsORxfY20
4xoVHf2oa23PtSg6+lGj6U6GohEDLaj9aidQYcRAC+p7C0Q7bMbzNz0ZVnSKgRbUcLkXoBcDVagZ
6FICUnME3j4ebQ01V6XLaNvNzKfMFitm8441eE2jjVnJ7HCmVvv9Zjxvdjhfg/9sx/Nml3ObmtLt
+rn9IzDIThDUitnATTZv6H2fWz8qs0fO1eKJ4aXHVKSH3cSZ5m/zEM8TqsbLQPorqVlESJbqwJL8
OUOvZmkdaZmR3dL7NHBNEDjc7tj5Y+WcAGdqgGKsulo5rO70JrBdD+d1KWfrxGfdDudVOefqhIbQ
Gc4t3tMpK1bOSHCKVuSsnFLgwgaYGt1oVmZmqVbdpwjQpUcaoMv+JOKDaVsjWZjOcIZDaL/BfaqH
8wxKFwaxAQfmm7h7nCLccwvZn0RsMjMIR8dzNz1tMMeqt22Yt61qrqBqrsBwJT/1MsLzklu7raIk
sfZCM+i59iexdEUXZt00USjDOVJQG+Dh6kwcc5oIPQyVCsJIg87AsPwJ3FWo1elGD4ZeEGzvxYAa
Qm9y8swKH8rkNqC2DpvCCsNyqPR9BvjIsN1b0tdRh962WmHZPfd1lNdhGgJahltmuKdRo2C4ZRMz
1FR/3XfPnln+4KjeyPnspctDLbEBfGCzAvby/GTqu3edDRh2A1N9farzfct839e07zrDNTPc1svX
nevjbh8lHrfA48twZu+oa+FGVV9oj7k63HN1ahKizE9SBYZHzU3AxRI6V2e5q1OqLqEYO2fvmO8H
Oh3MsO2+EuE0CVlDZ/maZVsS37Hs6eNml22tvVl7rXET+BqwzXefDjfBQDUXxxfITaCpLkDlAj1z
geUEwNLpyR2G92lH5/MV1sUh7kmc3/JyTwkExLZJDait0EYvN2u/OO75mLoCSHW+z/Ae1P+pL/XZ
ZEw/ITTmVocuy+eIx9b5lKFL/9z+XQXY2D1/z+zf1kUbvefLDNeI9sce5wf2wQmuUE+AFTiNFDjN
t0r1U6EjcPrjR6j5Vql+0puO48siwoe/vr9+PN6WVlMha5Xp19lQSH/901/+9NcP/+t3f/73P65L
DrlhLekO86gqq+EbQepX66dAOa3zWEu74VA1U9MqL0jdbj2qxFqA4peTgh7B+Tj+evhrdRCW6bdp
Fco6anBt8ljDjK2xXZFPI4/VzFhPZQsFrklzGjtuMpXQYGooOAOUq90w1flTB5VG6jpj0dcjHTOy
uD+arp4wMjAjSwgpvrHJ1iM9MxJlwmpo6LZmNAUQTcvb+d3/6bwdzV+7ofod5LHc1VmqVWQQWsPO
YxVHqponN71pMYmOQy3HsTXhg6CDQ1KRHaou6a7eFWf/peFkf/cgGDAw3KBe6b6q8AyCGE1fR23a
4+34djg3FsHiOWLjzMptSeaCaHN9K27laH/8H7/7tz/9rz9++NNf//lPf/3Tv/2/1e04jlkvOg48
9lrG5rEcs7ZUzCWPZeItA5lqkccysaLBdEtW13fPuFpRJ7qmjW2gpUsaWVzETQoMjByZkVONKqEw
p/HLJf7r337+E32JnuU4vu6O27x8z3IcBFzXgDHksRzHmaq0ImTf5bEMx0GAc2sHhvVcNNo8o13B
RAhRrOngmccyB4fQ0BrnYOA0szR2pBLP81iOzQ+b7657V2jvSlqDr0WNRmtQ0rltkf/XNTi0hhR6
HZhgkh0o9M51dGBGuxrLuDOacbJaQ/VLXUczDm+r6mCa2o5mQmG2hMJSMtF2NOMyNxOF4byO9sy3
7QaUc709W8wAW/Reuntq+mdRFhEnDTxPKZpj2wx8MnCSxtVmgW7Ha/Ku0vhGvbe98dz3G1C5sbd+
TmL5upQy9L7PjR+pDAc0npG2aqhB6QyWepY1QDESSQ3fFZIJw/jwcF1i7f7OYxn3ESrI3DwvGMt4
LxD6C6Tcbr7LuIwx8ovprZkxuBHqSpOqG2iTLY10wm4Dc1K6V7qaaWOrfncb0YUcz2L0yYKSHQN2
AbN8W/RJXA/8z6dvx5fqE6BP0m8lfSjUem/91mAGI8yAKilmKhpNOwP92mG8UzUgt9quQPEz2FKN
MkE9hu5vgptirIsppu0MVtjGUMNyV2y+mKkMIkNY8x8I5g7KAIKBbMIcZbxixo8DBUtbxmtPj58U
rcjAePqcUhWfrRPMdW/9gVm/pqrwynjDKJLTWBeXmc74gdPgR+H7lhQOaf+BamOEvs/sP2zt/+3+
GWVy8rQyvN7/xIy3Naxuj37UyNyfqcd3729gvo+KC0PL9ZfxjCI+ISTSOsKO1s/cfxh30B9jUEyT
8H7i+TPfH0fh/VuSXSf6a4ozfW//DP0ET1XRovUz9z/VBS5b+jPC+zF1H9se/2P4j2qgZLvrVwz9
j7b+vuutn+N/A+1zXFLIBs4aZ/yO6/0zBUaDF+hXCfzP0a7y9fyY9xscVZyMxjP7D4GCFUf3z51f
7YTYyj8l0I+hCqzQ/XPvT8n0q5nzG8v5AVhgl/6Z9xcan7fq0Y9j1j/K/Fcx/C9Mdbhk6O2f0V8m
ssUxGs/c/xhk/j0w7z/Y+vx69K8Z+hn9Bkx6+33OCzjJ8lcz+sOkBf6lSXdG2r+qnXhd+uf4j5bv
XzHfH9Wm/cR2/8z5jVPXmYaMP8489xtTN/tCzYd/fr88P07Xy4c/HD+dLqf4a1btTSpKIInSONet
WlUxFvT72/HwmM2EMv/fPv7j+PxYShGiiRy5Fu07W52/qmFZy1A2CX51WaumBsAk3ylb+6UQAnAV
6cqDp5/YYg2FWspUjx2tnNm3N/VoVY8OHPjwGqNTGRM3bD9tmU/bOqNUl9FMDA2Gjt0S2vLhif1w
8P02o3m0Zz9tp7qq3zef5o5rrBvwhvqiR/a7uO0RzmFYvssveqhJrLnliVmzY89K8YflCWzsvGPL
XhPC5a78XvhdcAfm+32iEI04hkYCuXIBEFyhrii9m+Kv2Rn2NfOcxI71YL3dcmC2PLEHxnNAS78p
AURcob69lbehEAnHPBV7XvzgNuygGgrj6WukyVNLhU+ri0Q1Jl4hEmaw033EenTPzMIR+k2VBlvO
mxmMepVWqk0ZzAgbBBdf+dXKZXE8zNHcM3MiTs6FPk4+OjLmwHHxg2q5AfPV0dHCQoF0ZfgfajVX
eRHyYP5RoZ6uVbI02i+z7iCcNc/DcFGdbbh+/vbInNlQl8KPW6WCkziaF5PcqwosdRqelTDfVZIe
ZbZVkA3n5d5FEG/aM3dV6ySm5ducEqb7Id+yZY4+J/qwlaSDtU0v9IZvc/py4PVl/qr81Gtes36a
vyrNK56Gv2fDqkO8eEZ9Pqq0kmXTnJo+9BuUFAuBe1ND9V18zRK/H5vnGPBQRnMbG7kctvfLcb6B
PSjufhSrTPCfRT1Re4csWICC7corjd7VTfzGjVXCfdqwYnVkN+0sLeCylOFksupn2iyjB+bDnmTW
kso4+s2a81jyk+C9wPlV1UFx6hqM9E0wxJaRloHJMs4QqWTxk5p3tdja1RLQSMsMG/tuR8Nkbhmn
x76zzDCmUjpS3/fyGx6/bD4YUycYqmogs1Sj+35tw4mNdImevgvFfhMn9WmUOWI4EyN9k4giGEa8
pk8S3YNNAiJiSM7RJMefD4J025yPYz+Js0VbonPs+aB8z/Y2J2aloX4b6FQ1/xzphfKv0Qz0Dsli
07RDXb+Q+jqYtVpLbtKyX8TQelP9tCz/tFz1xeZNcsdq6dPxDNnYfog5k41jRiJSNTXb8fxLHshD
5R8ywluszYPEyDkSJ/pYkyUs6Ujph0FnLcwHE2q2Yesj5bhjQ+GuZjjcBh1Jb0rxrErRHIcXH7iY
qXLdMMpSukdXU46vdQCOlY816TTskXmQKCG+85I5ruM5PsfJ82lzsKAi/en17Xx8PV4ehxQBOh0+
X673x+m5AEbZmPOnP/xB/eQ4eKvRqjr5daEXOw/lcL1Go6isXWgHxA+2ul9FaMSvojLArX7+Bz1Q
/AZGa9vNFB5jB039k2V6qXmqb3U86Yg/qX5S/Dl7qpvbmvE3r3/gZpi6W8+LZwaiahysvIw/jXHZ
zEDlatRQW18xt9bmkw6tlf0krv5Bxtv4k4cjZtY61J3JQzWQaZOn8Bcjx1zLwOa1ep4YXZcq8o14
ZpdEa8N5XGA+FyoCWCRQ3iJ3j+WpRod1KLQ3m1n+J/HRIbDIJgeion7m/dixPwN6tsxxaXTOOIfM
AKPhdq6nuoitZC+o9GV2tJlqKu4wG2bPuhSjVVJRJfAsnppDTVl6+2WGULTvd36cycuyTMoY8bPM
ovVA8BmgT+akFDqpIQC6fWjTuuNNsWUcoxuoyvRFIHEMy9QkZiuGxXy1LZNUFQ/g2nO6LoJpHsgI
sSH0y23QJY3MJaHRyHmSP8sQFaqyqZDG0We5h9gAQLvtaOastKZ1DcSAOIXD1ZLf1CyEo2rEugyo
m1MlP7lXjEByMxxkzQE4nt30xwvVG+aEkqagwiuVkDuroa6itdWnmWsyVuS23MLHGuFh7F8y831b
aBuhLy8XxekAjXIWqkfBvX4ETovtlyj9gXPQn5xqkraV0sHxaLTWts3kfED8V90WTDiO/vfL6fn6
kmr38+8f3DAkYyKkWl82wmBxGN0X6NIgRlctiiGh1h7LV/l28zheN4K6iEe7n/h+78jrnYoY558W
jY8ky+65+K+T56wm2JELcVgcFkYhqJCgHHiEcxQgxeRaFs2MRUlIENhW2myWzQzH7X5Q6/Z83pqL
UViUH4f5Srkr7rsolqRU+mnabzPjUVahTmlbEzpwKx2464ZnQ0pZEMbabnS2rHpiVj3WdcRT9TbY
BBGLsp+wLlfeFbfmQtmQzam8blc9MqsO9buo35RlljxucDFXJiI9RhQyhLH4o1RZp8WtduBBADvW
i7ladhuY8eisokGoynOEIKdAHeiWEBBZ3rLAOZt8g6G9YYY6UHpbTKxp+CZdU5G2PHWznvJZc8wH
RVehzF0Zq9pVe2b80K3pz5TFPYZCksC1FbaAddSKfsd/GeW54jSxcl4cheF8FqgDmlrC5iikyRmY
2i8zq/YU31rOmnmMKDk3HpkbW8pkdoyi6I2OAiLG85LRVFjDaPB6V/yuUb4pdssUrslRaGEjuD65
jOXYlyXY13JTzFiUwJ1qitXmyDjpqOu7CpVa98GqnaocWGZ66vap51U5GImQcMDIs/tUufRVhKIT
a0b1oPapcjDajgiDJ76Y+afap8rBeFPQf0AemJ2nnz4+dZsHS7whfRi1rDfwI+wTeunAm7bBdp8S
mcbW11xxNIYnpVUXSLda5olKJAzHuPQW6768EpkOuzQnwigMkhKZxhZsNwWp5fNPt0+JTNvGjYng
R9inRCYK112cKEmJTGNVtwmCpESmXRfkPtxqR1Ii046HupWV3adEpjVjRC3IAdujCKbPuroDl/kB
EZAorOkybXZog+nLiEQ0cGIzqH3aYDpstOmUZzLt0wbTkQ3dfg+SNpjes6u37HZqdGnZvtungtXo
0nkhiEY3pZ9hh1aWBiN5gWqeJAU2HRVD1YyBknZbvtvArsraYCIvQ7Vb5y3/NFjXLUV2KsBp1wid
EjW4kZTBtGtN8xBGGUzf9V35KCmDiTB91fHcjDuVwXRYQ91u3e7T5dKiC7sGeHu3T5dLpKnq1+T3
6XLpoMvYaDaMwz5tPx1WqA9rqjU5rcZ9mlwUjW4oHS5S/e0eTQ6aW4yhbsTk9mlyMHYqY6FoQ007
NTlYs0KdZ6cARxDGfZpc2jNq8NIxPcinCYNRR5HayuN5d9q2qXu7DPt0sTS2aTds9+liacOlp0ws
5Rz3amJpw+XDwAnNPk0s3VTTAMXs495pw6UJEDh99D4tLG24UAhUciqr9j2w9OWhPmq9T4NLY123
vZmkwaWxtqJLO+zT4NJJ+7rr0E7HaRqL2i25WIyu3aT2aYDptE3dEm3apwGmPZd1Q7GHCmqflE4r
d/VNuR9QAhNxN9cV9ulx6ePluqKhUMwEJbIgO5WHAei34z4tLjHefgc/UYtLi0bt6yoJz0vp9OGJ
GMsocYlAQs0G3A8oU+maylHjiLRkPqcdDy2FTfu0qbT0of6y3qdNpS+bbqtCSZtKBNLvrs7aRWnB
hToaIG9elUrnrLo95SVVKn1Y1Y0N1T5VKo21NWXtVKXSKetNH/hdfpm04XK9SxwC61Jur1cMcD0H
V4N9hz26FGSTTAWpb+MtZ3Sp9FU01geUnCbpUjBaF5BxBXHW+ee0T5dKXy9Qi3ET006nN4xV5bx0
5KB63OmcSmdWRkffZnD7FKK06oKtCCWsCsHC8ypROrRQQTNOdp9KlDaNkCHjGx2GHVw0jURwjlHe
+H0KURpbrhmwKXWJvvNKTTrqclxR3Q473VJpLDqreQOj3qfUpHMuOJxQtKuM3qfWpNEF+V9BDatS
Zqdak4gE3VS85Z1qTdp1eRYahLQe96k1aeXlpqPaP9l9Nkb6cll1tNCmYYdbK5EIOq4h8q/557hP
HUrjJ/SmoJZhp0KUlm27jRIkhSiNVQKJEQpROmvUJmEsYT9W0Kb9qrozhN6nVSTSKmcd38eWtDiy
ROC0ps3UFZSptONyUU2qL2/+psFjze/3RkHSYIdIDB7ksE+dSgdePg2G6E7nVDq0cssxqybsCUen
j2q05Ljj+afepzMn2sTj4VGFnQpZOjHEg1R13LKBAxMYipXwGl06NKQbDJB4uzPUmUYHQmjwOl06
dTRWRTLdZ72nEy9vawm1YZVuZq77VDro4jUWaO0YGXLTHpUORvpQd9+b9ql0MDagsalkNuxT6eLo
EXeeUwoAFVXYp9KlPRdEuaVxzK4nnj5eDqzvc2c+jNuVRRcySiniBV86NNNDQRd1yTS26XRo9umS
6bgKcnul0ImqZDovW7fp26lKpvMqO65lJq8cpe8WZH4FzYbnnzvjnOnbiMiigaqN36dQpvN2m+Z4
exTKNLZp7LdToUyrLn0BwtSo0Iw6mO65nPYmrZFRB9OaEUjjCIgVbp86mFYdqEaashBIlx26rUxZ
nTB9GVEJ+Lvmn36fTpjGo30PULRh9umE6dRUfdNqn06Y2O9Yd+9U+zSs9N0yFueIi/pk2vJUta01
ww59MtHX2O22ytqFaWCo+fWPJK4l8vBUxwteIUyD+21aJTU4rRz1Rza9TGFmLGpQuvHcMtpguuCp
Zj9qhzaYFowGDjHfWK9VSJI2mKiS7KnM64LppE23n7OkyqWFq24nakmRS2Ntt4mLpMilW7IE51Gy
YA2of2/2kYMm9/fj5/mf3guYbawdiVf+d4qXwa4xyi4GDJpHxgqfv+ufDANEYDVCma8a1lXjJ+b7
Q4UyrMfeeAalGKM8e2o8g/Ie9J7xA7MB1S/+rybwzAJC3ebC98YzF4hgwqtymHT9MAGzfQQyXUFj
VV9nQP4xSLyrmgSsX2fWPjUtJnQ72rBrtxRAfyZ89tsj2Ul2/Ta38qaHrarKl/7OrBq31cBVZtWJ
B+bER6otzPrcua+PfTCWdTQ31vWhNdB5c6N9Tee6+9C4CXT/4PKRc1dtuSPT7KYnAjCnWvbIXFfh
r6Afbw6ceVwIQX9TFQjr5sb6zWmBmPj1+PFwe/5y+ppq1l6uz9DjiPIbLDnl4O0Ab3FexeN4fzyd
Xj8/3W/PzGjk/YxKunJo9Mv72/n0fHgcn+Zh1/fb8/HOzFR8HwBhrbL+CTOdT5dfnr7cjp/o8SPy
S5bSmnwUT8fXt8f3p0+3w+vxKS2FWQmKLMUr1VlBg5U83+/zqbxdbw9mAt8LDsHwb6/np/vj+/l4
/3I8Pn76Rm2mHAYklaUZDi/Xt/lOLvNpHNMsL0+X68vxqdw5vShf3IgGQqsG7ep0eXt/8Dc9Dr1N
na+Hl6VzVrqp9B+euPXERI1hdJt0rvW26zme7u8fFwJ6uryfz0+vp9cjSdVpdltnEqbVvp5m/Wme
+OXwODBjUaJqQXx7PZwu/VU8Pd8O9y/MfCi7sLDVr6eX43U+eOny0hQol1QPUZWN/5OO7B+Hr4f7
8+00k8b77fx0SkQurakk4sUk6Jxf+nx4/jK/lW9vp9tMWujYmYlKFuIS/o4znT5frrf5nK55ZadP
T+m3ePzHy+HjTLvMAyoeWMitVoj8D4/H7fTx/bG+gI/Xl+/7XkB5lpCjsNj0hcPcjvP5PV8vTx+P
n+blRzpkHgRyccepVQ58w3RX6AxBE1qaAYeehtIuD2Z4zDs7PP/y+XZ9v3CrKJtKJU1lBiCE+5Fj
VCMK10ENluVOej+vKewLYs5GKZIbv1xfmYmKeIE6taGa5tfT48vT++V4iR7ul0j9zFaLeECiNnLz
t8PnWUC9n7k3Y1Ap0doJEl9WJOh99+Vqzm7KJEDIe+YIrh9cgVnyg+N5ue12SJxPw8C/f09Bg6eP
p5fTzKLu13MU4m+H2528dIWikQjTpZ4pT3T4crhdL/RM5ZyhZa/J8vd+PB9j8868yEV2xlU/vV5f
5r9+MronUiO7RO1cUX4QHqv09JEYbZB7HxWoVKPtkfq0drUzwG0HG0V/uml0EzoL98RgjbxF1LqN
IT+tkBu0XGl13iO1adQCF6nk9YlZ6sNG9frY1st25KqNdGDWPVPLRiEoZPZVXx7tJ+rTyGONNAc8
OnjqtLWyPY9i9WlHXbRx6MQAJWQzeKSehtamXvX2mq0hr3nqOedq6rQkdSrpuObDJqlzMvLDCOSn
g0hhoz2Qn9biaQfynvUordtP1FjsCx375DmQzAA/Seq4DbllJVKnHqgvo9AqwUiUpdmQGeRNU9xA
45bY/auy9oXkBlY8MTWQF43fBkFjSlGDkRcYAJlthwVqUmYEke0Hct3GdzuB16OpEzODzA/IPY9B
YkQv1JbtIBK3JnUDq2oB3TlrSx+XljWLkVQODA4V9u/ZTAeS+8pqiZ5IIlESH6IVIoXkDSoHqt8k
yXzxsolnNUz0swrieTtSFfM1K9mOdaSow0yM+O5AylgnbpmU7QpF30itglQqjPyWNUnaQSTtQO4Y
BUipo6ZIU001XXe4iFXkmxC/O40kbVknCqqgSbUgGOnTs6Aiv+3Ea56ZNvltFPinFFfyWWgU+SeU
dUee92glHkQSNtbUPWWdkOxrEnnfYOjDFi/akNTpVS9job4oUv0zo6hTWEUzfJkHOdIwso2o2apC
jpTrOCOGOG2SRIzV0mEHUlYoVx92x3i2tPGM+T3xptxI2lROUkdmGUeLKbPjOT+TrGQQVRJHmpIG
SxtK8xxJLUx80MqTZ4Z2jXoyV0oFeWRLj7GFTjrUbclHiTJWyQMjP6xFleLFkoqnlpgYqYItfatA
iyqoQDUXIl0V3vaSahp9hGaAO8iTvGWU+4laDNSMmxysJpHrK3rdWMb2r2qiLTKzY9O0HRpkK1bR
7p1RdHZMpKPEBOnLI/mctahWeEtyfdEgU3qkPZeDxIUMKejUIH+ZVGcmI6okpJaP7DGEM1NdE33H
VvRbkvqMco2g2+54InVtg96j6jsLvKdVx0F8kJa2EZA7K7WZ7dgI5IENXv40yQB1o26b7Zct7W0d
6kTZofeYybcse9KUITmYLF+Do9XH5lH1nLWknAuNd6ajTGly3eMkqsykpo+9cL5rYEzkazaT5MGj
ebYeyoejbec6z5lUPa3o5Z1IR62VFXVFE2fY4b+jHeNhlEaTwZOlOy3nVFf0aQfZqhrIL+sqgVz3
pCt5VaPoCCOVGa1CL8+3+jDtBzO+XnVPWQ4k41Ui9/OBZtui4kna7Mg/jJqs1GdNkvYoxhTJKILW
ouJoSBPUyQY/6RUy2kkcmxTMgxziMrQppkSP4yz5yTu24nMkj0tZySAyNFm3Zpzu2YA0ZVpZw6f9
YGGSWOeo6OCaFvmXoX0zapT5LumNN6MY/Z1or7YNsmlChq3NqETTxNML9yITo7V8Zac6ErDVwgzJ
h5ARSnnS3EC+DSUHP2gqQxUaVH4CKaoQmVCvI9BvOoj6jDJkZoRSEgMlzSJlrZiHMtIOZlSnRVlk
zpME6sRgvSYlnbJe+rRWpJVgd0SPSd3Ai87akZSTRsn3TBL3jkA/SZ/ajxI3sJp2MY/SmyRNBIU0
ZuphjKQ9ZyZRbJD5HMqK8t3S7r/gpXDTTCK0o9fJqSRkpH4SfSSKTlbSoxxspx3Uk5gZ4UkO2HhY
OuRpSTbUGgkd/ZHU87WcthOGF5LzNjkspqeLkcqBFRmgo13bk5JIjEyTUrYpgOwtmyQwa3YkodC6
mJKyEyyZVSHH6T3tSRtEN4cKtGmEataJSJciIwnGTKKHxdOsZBL59kgaKeMkutUH2mngxLcx0YPN
KJIJ6dzRTXVvZ6wlowFmlPb8Qp7XNMoZgKTPdBSFpDK013MQR4+011PLaWWkzmwGtyNpkmSBkzya
NguNFuOKnmQH+MuEsBpIvwHO3iZom9SGjBwM1TQjmsSgT6BVAyUK6IlMhjO29ul3vNskF1Jy2vdA
Bpucl86LlDZqdBL7I6WcUmIWMh0K2JN5Q560k735hk7/Gxp3fo+P0DEyPchJZbR4dnICNRl7NqIa
pkgPj0JvikorI40EvSOVhBTOTsxhsZYWzrLHNNBJ30H20NCf1roHCFG9ZpKBDaLdPpKRKpwAQ+iO
ZLa58XXhirE9lzwd8DaygCU/rdWO7Bly3UF0K5GhKqNkCUnqvEYHOdGdzDbXVjRPyERPM+5I+SFZ
7ySm/5FsGzs9Cc5LuvSNCpK4mEjKtrLlrEgZtyOVw9O1NpNsj5EOPDnDlMyPV2aUCIQsx1IyHyAz
nw1yHJJ2CZ10Y+UyCE064KZpR8Ij6VGycuiYDDsrJXpLNR0JnUSdwpMOkh1mTTC0mJL5lyKNoiCm
qXuSOicrZWpa0oQMYn6AsnTYxsgRXEs7C3AIty8tyBiEGmXviqUjAdgyIXgn6YIzjbnfybshX5VC
riyEWV9nzpDaSHlTUJtveiVotLNUDlSRq0YOdUjZ2X6ZrEBTRpQ0JL9X047AM+02NEYSrhPJ/awV
w7+0/tWy/I4tRh71KMfWyJpQo8XzeqEztqdJ2jLJN1XNvDobDmSwRk1idIvkfMaNcv0Y7VTBigwR
J9K0424SA95kmbUKSk4rpT2Gg/yS6bQZMfBL2q2qcXP2jDjypoIWNRnytLTMusj6CeOsRF+kW1jj
D/fFxIshs9PVjlI7kll7iWmSgWrl6pht1y6gU9iUXCE4ks4gU4f2Oym8ytLZsEbMm5lIN6URy00C
ObbNyerICZrXWzmxnQ5aGOOksK0lA6+jzAYsqcNocdlkpYkeGuWpl5ZFS2UlxprJtD09KNlnRzpz
7CibJLRIFxXGkfywHsR6TFKy7sj9IEWrGUWXHelORlEWKjFJ0TJmEisinSMDJR2ncBz+bQWtkWFn
4EG7HvrqHtiZEDt6IOhPQzzrI/Vp62sEy2EnzkQECde2RpEMO+FE4lhrxUUTmDNxy6aLtroHuiCO
RoCKJDey1GCHoFL7EZe+1R0PGy+bKF3ruyni4GmUBlOgMxF8X6HRfRuUAJ2Jl2VcDZIa9oLOxAND
0LqUM96Qe5ZvisiLjV/2aM9D96r6EitueVA1cOZewzmu2hewTwQruAc2Bm7K9KCQd8DGwLOa6mve
KyvhORuJRCgDBQ5b1Q/a7cWNgT3X+MPdLM2B+vIQ5HXTrMTJ6+7jxsQjQ7CuP4YbA8Ttak5id+PG
QIeGQWK+hH4RB/tJPDLqZXh8YFQ+hSLvapQOzJHiRon0qUkJ63Ul5rquClpgWCfSiNXk4FEU7sqQ
t+wkaTORl+xEvYC8J++mHt7xDtgXeIvlsAFPf68ZCwxM14v2O/2swLMbfWTaG3sFRchIH6bgZuKn
W0DtsBNuBr4cRAJxpDriff0oxp1YNXBeQeS6E0kgXjprUiMIahA3PJI6FKJqELB6J84N6DENArjZ
jXMDaqOT7jiQ6q72tRJk99a/wuAgkSYBVgOs3ksvmQKrgT3bHlD8HrAaeBWDyDcJsJr47XESSZtk
I4OTFMdAqn7GS+RpSb45elGwGkNaNaJIDyTv004iMAroBvQYL+noE20dYNlK1LOTbASh+ZMvktR2
p6HZ9LgXzghE6ySzbEey3SDqboYcjNnQD8HkwJeN+KZMIL88ikLOjaQh52USoy0T1H2ByG2yNIkN
ssRw5OgxyEemyF0PTjoyQxqCo6wqE/npQN223vRulBxQeJubnnajpoI91nza7MTYgbsydT8WvRdj
B3Qh0T54oVShCduv4QcwduApq7o/R9idWgA2pKziD7R4R72LfiirHrShQVThFP3lycoPgxSxk2w4
B9rsnoLIfRX9ogctsaLJkmaRSGIj6SLBx92Xk578rhpFj6ceaSevkoibCJfDy5D1ME1KKyWSpyct
DCW6ZiZSDfNGUv9ITcojUUUIm4lU1bFlQzmySH/61O543JmsCDtWktI6kvqflUWNIT1ourniaS9G
DqjLiHWaPuskfY4j7slE6RTkaxydZJzQfj8/KdnlSGrqapCWbUiWHSZp1ROps3rxIdMsN+ipdsv4
nUg18OEgM3tLM/tJ0pYn2tHpxCgTqWn7MIqvYiCZF47K/VgZKewZ9SnrJ6+Q79EHIwXlFOmfHZH+
RVmR5IsyoxhXo91+LtSD9e4iUlAntOhKV6RTaJTJ0wfa0WAkqU7a+3qUbpkMegQr+hlIQ86PO0KY
pAlpvfiiyAjmIAYhB1K+YXOIYPaKZl+TKJcNTZujFb1gfqQJRHau0DbNOIhMe6SfBXZLU+jHtGFi
Jil8QEHVgAEqc89AxqunQYz7UmgzcOTii6aVZR/KiQNiatiJNgNjba+95R7gPdi0EjetaUpRO5x4
5MucRNdOcPRVDyKhGDIGYUQHIGldeO9EUTcO9LLlOCYBNwN+ISttWpNCw/sgPQ4CbgYGK3HXVtHh
SNF2HklFzmnJPlFkws84yqYRSaBhFP2tVtMCXgy0k8q690aUlQTeDBh0opGhSSntxWiApV1hk2hJ
UngzcNpe5N1kctakVJ3vM+3FKANTQcw0UrTfclSTxAI9SWFKtBQsyYcmUScaSU+F7LSkUonBeehE
ndvRIsPLEl6RLqkpSJ/WlqRtOdjuyJwIPLifmUUAYgIXkhPKyDyQfuPrHXAzYECL/hlFnteotPgg
SZ/62Nr9fnebADBFVa9D+g64GeAFQ6+x/A4IeJDPXoxc044lN8nPinQsuUlUxAbSBRgag9DshJuB
85IfJJmmNA6THFakExT0JOfj0oaGrHuSSvOoxXum4GbgyHwtbvYjGsFljeKrpA3D0RoxYZIkE+VF
j74juVhwsqVAB0CUyLkDrRsgU4EqXiGjPq52ivWKC0gLJcjOOFJUhSCRJyltwtDkuO/Em4E1a4m4
rKUztq2cokkeNIpI/iDeDDxIJ4cD6GCTVXIuHO2yCKIn74XUPLWS5DNtfAfTZE6HnXgzEHgWLTIy
dmx2BPbI7Hjl5Qxi2kQQLRuiMwyoQk4U7GTceRzE4O9IugFtkM4rkAEQ/B6Jei5FGxeD/CDJVKUR
Z6b+ENgM6KyjqC2TEaPReDEJj0zUHDHz+yGwGXgVTnT3ktmW02BEjYLMTR29mPhM5sSGHX5LQ4tW
E6QDc3SWkxLTl81EOzlMXXPi9+LNAIWJIUkKtgpMhFHWWkkS06KQpPOUZNomvStmR9UcqX7hbAzK
1UrHJJGDmayBIE0TLSaRUGg1oDfKow3tOtSiGkXh1cChKck88STnVpMoJYOh6VPmYorU/yYx/8+T
aphy0rItGenHYW8iIEpWu4yywkvB1YD5G8R410D6s0Y5X9LSVXdOjD8r0oU3hqZkT+/uMgUiWvQY
BFJooMhmlHp23I1YA0fW8H27r78psDE5xZ40qZA3H4oh1E6wGxgr1pOSwiboHeFn2mcpZ3RMZIaC
F5My6HzxgEV7+AGwG1AqtHhNZB3riPMGyZYhpB4lv2UyBXm0YvCZdIkb0TWiSL45hkn0atPFWGGS
NThNpxspceFkebefRC1/pB0rO0oj6aC1k1MUAnncWMQR+hu5ZSva6yRtBisS9gtZ9Kv1joo7kuGK
+QFkvNqHIHsMaeoysnwbSaPbyeFuMjPBirneE5lr5MR6lUCORTlOIBmn3X0jwS5RcgowHUuU3wRd
NTLiTF6CB1lSE2kBKvxu5BggErH+jIxvBS07GkgokVGL0VfSJR2UEiPOtLPTikKdrKYKg5gSq2hc
DKz0ERlSZMnw6MVYIhlK1GLCjVZ0ec4ghw4cmVsaajssPos4vIs6M/qf1v+Opoka32JKOtq7Ew1R
aviSk+HIA/D0t5e4i2P7fpCjbf1p13V8UqOX4Iljco4sOXxpFw/DySZsB3L44iJytPtzpHfuy2ii
umqWe9TgAd1Y/4HPUoAavCg3LuIeRZS8PhYLSS3Noat+qhY1fEL00jcMx5EmdFMReq8yTFGDl6Y8
DLVEKATyyAulxrTbjvAkr0stto7jhAj5RFxFpb1l01+evPTlaGWRNDpIV63puxrKcUOVgusnnZKv
y9YkHrrxFOrjuhwagU4c3bckX3ESmUVJRD4QxBd0X54E+sLGerDtZpqR255qjjb2kq6owaZ+2J1d
W0d/eZQIbaS/7K00GFJ1SVIxkhAhqVQ1orP36YkcPI7ShwFoiSQUVd+16yZSkieuJKmtDU1miML7
LvdAi3xXCIXKrPbkiS+9Dpl1K/quFTozQmy+kNxwAWdmPj0y3DBo6XEpmiMtXQfXEx868RFSfoyy
nqNoNUeLJO5oNo4pRfUfl2YkyCjRGeREki9klDS0wHzcyW87DDSdIiof+/g0mhbaIiPWA/04h1r0
+R58CPnlsRrcA/6k9Ur8QBwZYyZJvLmtqZ/cSLLxsm0qasosfXSyDURzlUHcdwT6I1+YlS4sxofI
F+ZFoU0/T+tF1kBbQCoE6X1pet2IkYMdQXShJt+Xl1hDrBMkVTTxgY30yoOrBW/oOUpJliZqG4ZW
5rHNSMDk0EI7iGqSoZeN9el+S1JGxVq6xDHrtjQz1IOsytODrfiuvaLflqiW0kzBe0k98/Rx2yB9
OJYkkRJgkmiM2bMZq7vqAaLHcmeSDSuRRCdGPysrJ1KAPe2ZsIPIzALDUTCdEZolbWebQYnKvGM8
WZOu/RodOGH6hSBdg2kNQ346SAYnoLORGxffSGD27cbaGOhWh9LfFj0jsTSA5OOTuHKasThTO3S6
4XqSzAtXMtCDrgsATb5QkSEqWjsMWqLyQMsfN4k2Pq3gLf24uXWPDGsQLSBDc0TZRTDSz8sHWTek
z2yy4oHTJOqV6GP2gXmbWjaWaafMKEqwiM9J3perTW3TLXcnN+6lldN+laBE/xt95EaNkl8+FvSS
oteIujxNpFp2jNDHrUVDm5acfpJvmn7YBj/s/mVZ+ttaSw7qiIJI0qgReQrjojYqSP7SiEhDCpAg
mumMQ2gYaoameyBipK6jpH0bWuIPonvb09zQiFJzor8cRENA0Z5Do5zIDUfah2aQV58yvWgyHUYp
Zqbph23qXdteUTF5ZErUkAJNowbH+ggXmh8ZCWIlLv5Cuw7NIH47tqog72sSeak90lJAHG1p14bW
olfF0EwJ+SbgyqYuaAk5ujBEAkjNMgq10eIboeN9wYmOLCaWP02SIWHowUqJShYtOYORHqei3eM7
RMhIC/xR9oHRao6a9A6OdqRfyLhD+jEpCF52PNKCABkxlHed3jjWOPqJaIzL04iPMwL+kU/bSDEg
R5OpEV+IpxVqK4aA6DiMxlkABI2PjJmuZaU4ZhqRb1t2wtFLV6OoJ9HCc7LSwg194jgoMHQlb6AH
Oyc5owwTnlWNqqO7GI3kt3Wd/uC7bXTIy5aDpLSL2ihZZbD048TBkP7L1rTTdAqyyKeV4iC6oiBD
ldR1mpV3nI80PxN9BJZhKkp6H4yVbqx0Wy+a1tC0pN4FJk3GITdWvwvlyOg5wYrKBsOIJyWZ6S+0
3DVGzJ0wtFNGbbWN/5uHP3093E6Hj+fj08vx0+lyepyul+48pnhIgDsEaKieKO7r6fjr2/X2eHo7
3p6Pl8fh8/HpfLx8fny5wzS9v/96vD1Oz4fz0+F8+nwh942ywSDkqcd0bl+/PM3/8vRftKqBEjXB
KDADeh7Mip++vh6+PR0+3q/n9wc9PcoegnxUHczO6X+VJ0fGMvCImUftXfvpsmPtKGgxgb5vyHs8
vcaf/EkjkyuRhd1/0vQikaM9QJ3YtHPWL/ScyM7x0HZz75y/0rtHHClAk0G3b87Px8fPj+9n5prK
uUbWE/x+GqBXi/QLD1kHe2f9soOu0GON+hfQ1U6TyhTDJvIXpLN9Op0fx1viJMdPn47Pj6ePt9Pn
L4/L8X6n1oIkK+qLkKaaOcfb4XR5kLIRve3ozMjknL/9+Xb4fp8Z1/HpC0kUyBEdf50G/PXnL4fL
fLDSInB0z8OPsd7DZ4pVw+jQ81vlLdyOn4634+U5Mv3z8XF8er4d7uSrQSpO9I/kxKA81fXt8Hx6
fGfOAlmMEDtTnZuYz+R0fnk6H77PF03vqbCtyMGs7u/p+G2e+XI4kwtC09g1HzxP83x9/Xi6HEm7
olIWQRgPePj9+HY6MIehkHcLKMPg0zhcZm4bJTA3A/YpgiqQdYE0x/Hl6XQ5zzsgxyPZYsKqA315
B5JkaQpJ1HgVuWh3eZLn9xv5GAsji/mMo98cGb3bct5RFXBD987p4y4PMZpl09Q/7k+36+vT5cqc
msJuRShdqW7u7Xadeeb8Dmb6eZtZ5MvTnWPtCtk7AIwwBt1dGb0ebKFC+dHUfw1xQdf7iebaKB0r
5tLVJ3w/PN5vhwdzwIjPRsTiLPkjP3mq+B1JG0NNjrZ+jZfHPBXJJFEMCde+L1t+eXp5v50un+Xz
RHmb4LfQLbNNbOr+5fBy/TXxqcSzaBmCTI24sVnydhlfWeunw/n88fD8C8+NFfZRe7D6bPuC0az0
Y8aRViicG/pv43UedaLpEGdyKJDhfTqcxx0f6VXskjoKx3xKO+HOvK/Xr/Pp/TrfxnFWXC4v8cLn
ua7vsw5DCxOczRdjSkZjNvr0erjPF3E+vT1dby/HG/2QEQVGB74d+xyKlQnoRqODVGURG1nq8oje
QAt/vl3P55ljnskYBIrcBFCDaM1jD5Vgz0rkDspV13u6RDOOE/5la+AOXE3mVXH49fT48vQys8/8
uEg+gdTsCdK8qpXsmAHH96dVj8lHc3x9mxcz0+XrMZ4MS5nIMxkNipwImgjxaX3fl5lsZlIkZ3F9
3yrNuxLbedyOJC/FPh24LTvRXIxmML725E0cMZJLsS1DnRj2wuo7OI0G6qnTTDDw7byc+D0S4+F8
euHlJrJVo7GWbbVG2rGPNfQmkLk6fdyFmqLRQvFPYEORHri1ISdR5G8quzzup9dyUHtIs5t8VL15
8sE3xZYT8Ug54wkXPQ4Qjc4PbDmLvJH3t5d4WTMRHR6P2+nje5QprLKhUIkE5KHrrBEmheXLr0/3
+H+nxzP5+kP38W+u6/DpQUsNFCGAYmQ9JVX6+unT/KqOx8tK068zU7l9f3q/H5hN4RKIEfx7nlFe
btfHgWP5yIgH88hTN3g5fp7f2szyboeX0zspaXHqYPTpmMXr+n5/XF9T2Tf8uuqLy+OZ1fLDc3zN
h1nmgTh/Opzfvhwo/8FSlAdZwCNET8apywHzB7mjMKXwKwnBiLGCFv7Uav5vh9s9vs/MhshJs/MN
nBwBHMGOXiK9tLLVmPM9P/1KbxYGIz+uAdC+YTv6ada8L/dP19tr3Nrh9figbHNTPOtxSht9TNaa
zmG9zwQ9v7OP12/kRLaszTqoozWdtS1m+tPr6X6nWJkpxd9wToDNNXSWlV5/spv3WHCmhEBgnag+
upp3FnF/pSdAJxZv03rVPbHH8dsslRgXrCnp90D5UecyE3P8/EweXWTM5lgKmauZXo6Pw/OXeP5x
QtDhlpt9enx/Y46tuPhstGGt7u26sIDl3T+ub/ScQ3lRUZdWQ2/zz+fD69tTVD2fr+crXM7tRNOh
RguNuTU2GyDE699LNeXZKjOBn3PQPco5fXuaCTzaMvSbM+WqoGxEa88wu2jMvHHMrswGvke1xJ6J
U4xLTCe5CAL6LBGpR0eKXSKVLalHE46nzhHNFP0NqscdXk73GNJi9qpRIKuUjFTLOdxuh1nyXk7A
AuNd3JL683KkqUah9UUOYU2PFOGpzGf3/nqZZdCvjIlpSgZH4jSRtfoexUShHO8nPkv6+NC+oVpS
9djW5boaQgvzOTw/U852U0rpQVCCEjok2smy8Km3VHIyX56z8VBsYHfIXXrPZTpIG9bZ1dZf23Lf
kYnR+/WF+bvog3XKURREk8qESBncZ6FDyntEL4qaTNAyO/QWE+9yJrqZ1mbbO2lV9NoKybloKzvT
Izneq2ZKSklaGtRADCy3j1c6s3pmsxqdWvT+2bHHliN/+uX4/de42cO9HOLTZf5fmorL60DO4nrm
ma1cXmIoi6EOXckjDU/Y127NyDbnh0qYhaYUc8MkkC+QySMrPD/4pNC7NyUlt8PvYH/cc1LlqSsH
JlX3AuIO6QMK6BLjj6mr+lwOXw+nMyQnfD3cvrOPvJAFZAOZvlqxFV70GhHXjfJLqe6pZZdaIQt6
wsIzTDw40z24Vem+73hetsjVeIz5FPuMrZjIPGtz5SRd1FbcYq6tLo2OySa9CoVUH3BOgIIx6/c5
PLylHVE9Q5wl6pTK9FSK2/F8PdBqgFXIFIOM0JGWrLfj+52RrIgJR1tIubBbB92hQGlEjFNWK/hI
FutSU3ViQS84zgb0FMrjjYAZ09SGApnP49xnAyow7+6eufesipD+BVSEZGO0sFEJO5Ewzl9dnB/R
gTBWQT4wcxa/9WEmeIgAzZPTvpRyTFEbNI737dGOPRRDn0/PVZpCSYbgDr24LaOOMPnW2zyv5jzP
RjuGUAI0HE3ay+HlZbdf0ateimjexZf3Y/bHkI6kJvxvenF77ghwHRCk+/tuCHePIwfeAPKSQgl0
Y4vk2CXn6VRVMkB2bM83CY7j5AKkvX7dnPJqMD0WhUIK/HbrL2QD8ygR04Ks4M6SPkPXZtFViia8
uMP8VN6jYfj98jh8g1mWK1r+ir4ohdSN+HoiDSTKXeb4fLzOuuHte1k0P9vi+ImzRdXfV7NFxWLv
RKYIxBT2U9VURfXfPaMrMxpXYrrdxXHkrZA2XMOdLFMtcu39Ah5a6QamsjBninRs71Fa0yL16xp2
+ibFPQ7rfCg8yV2AOKNFVwB6Sb3T++15920GpDDZEs2hrkA8PKSARV6oRkUvTdxnuQlg61kf2TBz
jvuNPS0kZTDcn47f3g60JQKGh6ojcYGNEkFAJmcL0HyxiAjk8Mfif9XPacbYIIJkvvw+azKLZCAN
P1gDTrfTgBnRY600S/W9+A14/+Itz9u/fTpff120K9jV2+nb8Tzr71/jv1gy+y5Z8yLFOQoUxUe9
GLlrItqiXcRJZ8vgedYPDkzCI0pNjZb96KiED9KI9/mlrOGmAUDwutmbJFWGOh9pIFQtUOX5eCwq
ToQUfK2cMBk5k6+PZhTS2HZE1TF8C8AxD7vmpCc07WYDE4TknNE+s06MjRZ+MxGT1IueSVyvyZdz
/3J9P7/MO5652OHrsSJiSMCg+ZHplRfWebKk3dGkVrLpuuQkKIktRl11jAODRyDm8KcE6vm8Znr7
NFu0TzEr4fPt+j4bMlx6v0JVZTEg6paI+TpRdNvTV4m1/rDmF+J1cC4nn91MnbK2MsOuzI8KxVOB
A7ydJ+VJ0DNMXRQCPP6/uH34oVt/WsavZJ0ojtvMuCmDAuJ9f4v5+3cmgckUwMXkrCh59rPB8vTp
eEjRxuMjkvxdcq8vKDfgmgB3eK2jxMT/y+MLnStpCq7sup7E3n6J/7yl0qfh2/D08fWNniv09hbT
+eb1pCcQs/reDjPHeD7dnte8mO6McTLUlQXljZVZ3q7n759nTjkzyf863q7kPLrf0aadhx6vu10O
mt3Q2wj85+d//rje6PGoAxtgAq6VI2iG58fh8plZg246K3riKI9fj5frywu9l6nblRKtZHWtfJqf
1i9HEDj/Ov8VvbR+x46WVtYn+uX08nKkL0vZbkedzgrf78fbz7N0OP7t8u935ugcokINME3E4ZXi
HXoy1Fh9hB/kCdJzoObXOImpzME7sOGUCkmj3HPy0Ol5+l1L1nmO5/lX5nBxU8VAX/7teE4ZT/KC
tn3FwVv2/rg+n6/3Wejd5hu/gxcxadlfjnfaK79gg6RQfxE9h/Nz/tfgvFtSv4VEBFUQ+FStYH0E
TySX0KVQmZbLiSc6J7+cj99SYdL87+9xLS64UREwM6rAPqoFdiRpPZ/j5yELF3zkM1d6o9cyId9O
1BNcjqqAMAOBUZLI6EnQhkqqecxlyQdLH0XxuABggVmq5g+P5y9PL6evp6jgfH8a6BnKBlB11Y7q
WIUSK4qtmJgCiiLBr2fKrapQRA8snrgHXMAY72JexnInzEUUV4qNdqc1SKt4vV6u98jj6OHF2wR1
JAbRI312yNlSePbn4+P3+RFAfeXT6+H2+STyRVXaR6ga5vABIcj42OjolrK1PwTdwym9y6iRaXr8
2CODnLiL3PRRkaEnUchlhyzyNVPz7fBCatqq4Gyl/YMdkskZXuKXO/2ExrHmJ/jkUm7988yEmfMr
X7Yxg8Rmr8fr6RLLsY+3G5UVoEqzErVglyuOHxl6mqGexjDT0JOUSwBgBd2lBPpJo+EFUKIMv89G
YKxyoRwzCoULF2JK+/iv6+JRP77SQxEF+DV/u129pccPvSeZ6Of2+SNNP1OP/hEfo502CiWaVJXH
6AHFt/v0NnPz07cj7dQcyiJCdOOFHPtGdz9r4QTemyqYa6pOnP94vj7/kiqKouJwPnzPVfXX98ds
Z9Fngq4RuyjiboQXsZpl8TrjleQQazGmFhOTNfBU6UCRmEoMFvmhJUmaGkwdQ1h84QIXQl5+vZYE
5qtMDIEmBHxm5QnHxN4vx+hvo7+qa97vVvFFiwtXD1lhD66v9JhynEmXR4wyq19RUnLno0yP27Vv
lGZzauqxmFVjopeOZJyJUeBsWkfpSh9rWSwq/8bvkl5n4SUhln+FXIh/ev0sLBQJUws/QtK/3y+n
52vUyE4vp6fT/Rr1oqePh/vpmfaVlMQOyI3R3u3FczLoDdfuiI/z53OKJT1yQPmBUKidoxGzPJpV
UxgSf08q4qwm345U2YoqaFxANH6lu8Ute3ucc0IqNcECGqJ63qvDt9M9+2I/Hkh9bS0SSFcS31gi
oY/vj8eVJiE79ugd3NHwsNMBxHg7IxQNoibEEeEEWS1TY3OnlL3DwH+83x+nT9+lby8QU7Bxs+qV
+SaLTyGah+QcSEM2karMuOTYwiHEyci9D11FGVEPx1K9oRa/L86vCjIzcIEhBs5T8gh8e4EVYQqq
FaqbybG5oKoznB/xkYQ9UKW1jlpAKl3ZBWnJqwKZq9piTxq8QxWYFVXjjs8fOsQM8nu0CuOnZ5We
VsUwFwPxkuVLIfzbcaac+/Hp19vhTTwBg1TsClDncLlevr9e3+9PWVE53j4fBS3Vqp66tp5mNrnu
QNEsr166TMHipvVaEQBNHE3KCIOC2imJZF1IPNvF5suyn6sOVAX5vGFxLYktm6NJLdQiPpFMku1A
NsxLMUh3ByTdJSMGzhb2lLBSWBeUKthyzWYet/f5bucjoTO1VIHdUk0gfL3f6y16Aw689hfKcQKM
jq6NUZgNlFFIAbnfqbJSVSD+Vhkw1HNJp2GQXYL8XUCe0nWis6iAxN7ARxoD3b+eXiJE0vX2+HL9
zHmajDG9bWTZnXMU7qePZ8jHiN4rnmKNbazFmmJn7nq9xfjG7f748/HxYITc1LXb2mf49J/vp9sv
zGsM1SwF+nKRFCcmQdiVc54gmpk57WwvzYZSNpnIfF5V4L1UjSy46Di5nj7BxsUiF1Zk4nTlcrLz
HgBi4vn9fLjNfDfFhSHxGfP1J46xG5wNhQBCQf26L6wqomV8PR2eHteZtV8fD9qkWGscXZXdXxhG
uv/IuficnjD1jk+WU+jSbapHxqmIgmJqsMMj1LoJFiX0qlEanRlL0hs8yiU/P/rZV0pi03bhVSE6
KqGy8rzTHaeCMI4DGmT/optZhJKwM4N8Mcib8HK6v0UXwvLII6F8pr0Ia11fLSGR1ii4Js2ge0b8
qoXQLBu9IJOyof9jzUZ4KofwTbDMDfKoZQe1wfrr51kYPb5k15ZELW7s+beQYBPFalcyIkaZNsPc
KiKuaX1lhFInyjXs+Cp+1/9iyhSBwLFFBT/GzonSh1gYBVDXkEkqSnAoGeS1R4McPIiwEUluhBdH
Z8hpjaJIyT5pr2U+lyfwtdDKG5L2Ck44V3Du07rshPzYsRph0K2tVeuktNnVtdlapYOWXxaX20Bi
XD7lxy1KqufoSUuTPB3e3s6zZE4vCFyk6S/oIw89qtvwFHo8MikHVcB8VqdkbROmhWUj+/hyYm/Q
GOzF9yW43ToMSBglVbrCqQ3eW7nHWQ+gL6/wTMhtHRs2s0vx9NjjMkICUdFaMz2/fL8cXgn3lUIl
YjWeeDmKSAQNTdFnYvuOkOsBSg7Su6XVhCbY64pnNrK6N84cQX51yLm3ldoMzsTTp9MRECRnCU/z
vUYe+1rFTPcalR3mXbn6EJYAGdDmcitAr6s/jJFGuh8+/lEeqCfV46iFWGkaKy8ZGI5vqZz3Cq6V
0It24Rv62ukhM8inPdP6AD8R5zxfL5+/5GQJ3tGkagPL91wc9GvB9xFAVa/9CZfl1cZzOR/e2LWg
tAIEqF+YAMBt08bi0kinMx7WspA/6FP0Ilwvt6Esgg+x64Dswvh6VEbSTcQhet2QH8xEGl1xSQBx
BbLxIZ93fnwxUysuiPcCOvSCdW3rCBadRuE03Aswm12yp8qVvUABnG1OUgprBaT1AGRnZuflsdy/
zKL5l9nkm18881SQ8E3JWyMnPDlDB9X4ZNyGdD2VYUtz04B0nRWPdyXLy9s76FtCXAG9uZK1nNNv
UkItCKloJ7CuQI2stsYniVhp5EOH+axvu7wi48Q5FBYEj6Sw04ccetZkQsKU3Du25gBDnwPceK8m
MhFwoh5i8mu6Eb54muej+GxJ+V2jGL8cj29Z+M0kSdtBjbN12mgTrBMF5WqAemDUwOhYkTkUNAE2
FUn7sY6UtbJU5noeMc0ESGS5kNXTl9ne+q9ImGIQbsBKVIoFNzNnouRCSUZ1Q91YrcyzgB6To9JJ
+vIsDulXYOcazbIm+skgyQf5aUqj6Cdj1s1PYl7n4fZy50l4xAlDUKXlGqZD7zH06iIbX0TmWLQs
CZtCxsIUYqJOxPEm5bpBCTNTZfXu6A1oUE7HRLZgIXq6G5R1N9W9ekqdDAxCqSYFHWLNI1x/oePu
pSYgCu7Ms4RZWUiPNVd0yqkINmfnrPOwtXUGZSRMlR3SmUFEJRoQzMbErWU3ruCAEAFdQbrrn1ic
caa0BGQ980YR9mXwVR5DpphcLPUDhVIG5UpOVUFRf6HJWchDtQwYb2cqhfgCsfDvayoXFHXgGiiW
ONTH/J9Z7Jzy7KLiljP4+5Ot8Lbor5n+CAal2kyp6cLkxHO9f2VuvGSuQO4Id0viwxkKmg6kDin5
NOmqMoPyvKaE3R64G593KVFQ4Qyg2gdmtpfjp8M8NsZS3hnyKRtOqUvcjKdPUGyxxLhiwuPhQRcD
TKjkaljz47h7Zkl9zViN79GmWm7hcuhrMfWrsTuIRuaVthIF0fBa81kB0Oz+0zfyrGzFFaewNqRR
8M+jt/pDCU6W/8YXejsEfW8qTxAMfjk+X2906YtDbTxM1ThhUcQ/0F4bh7o/mAXVNL2niHf2gcse
dAjSvbNs4aN2HYhTdOPAE52P7BCEt6ngFs9ge8nr1etgSB0qGZ0fGA+6QyXJJlcXqYyZBM8ryqkP
kQ7T0DTVh+unD3HmO1XYo3RTDJg1p8MsnJlBqNwKRyhmUyeuImcCMuNR5d8Ash1HTHaMR7VjJYFu
pbVyIPQMpfgPUnLdYgifZ0vqZccKSj0UNMNIwqTYPbvWUErqcM3r8/lwv58+zTuJ7w0Gnk/3xwe6
/ikgRKVQ9REsAz+wJbgBAQ2EqisrmoFmugH1nwjZkWXb4SSMbkDNMUIWAQaHhulRhQ5RXcCvX2ZD
+wNtEwfURyeU7NE1r//DbHF9KCy+0f4/zERyPDzImVEJYFfNkC9CoV2pNQsbzcBfhBqqrZlWbf4w
k+Xh+QuZqxtQF5yQkwt9OwetfgTUFCpUZUf8GFSVDCZcu2v6Y2FTzpwt31YOAoNa3/bM5D/cj7cT
U6WIQMBRrnfyH3wAtIsPEGH6wLSoMqU3TWo9j+rxYJ6UDPOBDlWZ0iQnIcHHnK0xFJ5Lrx/neve/
S47VGPl35ZB57OP6tnPnI7OC8/HTzgNEMNMozpWnYRGqFQIyRL4htAL6o0XlRdylun1p9+jWClxe
cuHBGQrjfejBOucV8L4BhP2K5MFHFplZ6cDQu3RFtnbB4GIK/pwRmCvid9k1l4hE+HYw9fsKDa3S
F4Su2JRUoLRo4YEgYFGkAizLzq9aWjjCci666zLHDgoJgaHRJM2kezM9v1tilUwpjClAKsAiwuo3
T0OvM4FHTZrVpEwBQ1kdR3rzyuilN0Xkfnt74gsbeoxluQDp8BVC4l5LUMrzpr/qmVvjBQECBkYM
9fl8PNDPGvWMQDliiMroHfqKAdU7lI5W9Z415tki+7QM18diU6TxZinpvGcz7WUm0jtNYAiUF5lq
rQyk1x8q+qjZdxF+9LJDj63l0+efhre11KvpepfwCo3404TyQ2+fex572Lo39QSI1j8Iio+ulZew
3T69b1vzZCPWeMJax3qU7dCqsF0EBY/OqxYo9PennprDX1AYe2MwfYk35HrcCItu+uOaYQ97qAN3
C1GNhrNHdKLGMJvXRRPWWAn9pdnskaUo1HYJZSxjdi+t1W3FFBz0/fj+coUBi3v9Q/pvvNxVCIGl
roI7XJ6/XGmACpTyYaNqbxeZH3MPzmzugWoLzyY0kgk+K1T3g3Fb620mYy5Cm7BF5CjGnjslJ2/X
/fnwcoQRp9cIOHbgbOOh5+jIc3ygFexQOjUjv1Uycu+nhHsTTd03xmc0IRiekmv9fH1lvVUTcs1E
hUf7kuR3OF04T8BUnEK4K1R0UX043NcjJ4cXZ0gpXAZH35fZ8p6PmXbRTGPPIwQZBt8e74ezcN2h
YJ+HKp1nlvl7Fh66vrn3y+mRfAklZP8B/iNJLmboudWSas6P1OgEikc99a+Xhk49x9j77cyss+tL
iwBwsdAoYWfG9ImY2ibsuMF184tv7QJO0fnOkzfmevv1cIuupNe3efqPkXcxgZOAPPYhgZ+PenGA
XzYxD/hvXw+3E/eUEewaMpJh6K80Sw+omX2NoQcjPx1eT2faZ4mQtJBOScIyBBRaye9xKvgGglMY
wYAh9T0NpDIDA4oEhYKFDgf95fF4yxGle34Hz9frL8uZ/+MeC3cgsSYW8cR//XS9nGOybPxH3c8N
5VpTVxhXWsPABHHGNB4mPV2e/nGnZzLrTDYyZ5u5871Mco0JbqnUiZ7Gr9MEoLW6QWveMz3crcNz
gWXaz8v1Pab0/Of7NWaEQbw1Z1YfX08Q0b3Qc+p1zgScqHPU8Nfjx/v1+Zfjo7mYL98/nlLw4FqS
LZ6+HMm+OtDBZJGQdUzsfoRI5/XjfHqvx/sdsF5mBfFEr9dO6BBKnTnM9PhyIypOIE96QGtwq2ay
7OB4AcSLxAbpz4fyeYhXZ/yq6xVSr5/eDt/Jysu0iFAWMa6wyRnr7vgppl7O/IbZvykTICj21MCF
qSZJtzCVxUPj66Qw3q6/HC9P749PI/NZU302eLTumfTfL/D9gtZ4YlGxYUpbSA9abWQc4FlRTNQb
26t9exwv9xNDv9ahhZk1MT/mwN+/REBLwP+hh/tCFPCrWiQaG22Hq0TsBdE0AJg/fzlEND32RSA6
xvDj8UDfL/NBPq0vkDnCMgl4NZRtt//pcDpHYL31JO/iW10cLDGQ7NbGDRkShqHssfDIgkyXNgRP
K9WWHu7cbZoyCSAAqZwHv93Q6+n+CuCBs4B+XGcmJ+8LUYpd21vEq05lUzP7numVKjRIV17OGwRY
TqW9HT6/QsVVamYyr+XTjcJeT0RbBIF1qx8hnVXEdGWu3JQ3DEbjkG/n7XCKlUn395nePx8eUGf9
lJkqsyHV44nATaHP2cf3mHLDcGPTY2cw/vrxHzEv5nG9P6CenEbzTzONXb5OI00nonPV9w3G3JYk
iR2R6It5OAuYKWRIxrtgbqFc4NLWAcvMdIlPj9noZ56vU+UukQG/pfWZEz5zhD3VL0/T07y/xbS+
o/hWwoAUntVGeDl+AiQooO7S9oOh80JekNyx9Ertb/F6uWRwVvEpj71rj9rYwg0YkkG6nCmoaYsq
wlCoryk01Nrb/f3j8vE7w/aL0ANTY6DYW9QEfoRpu95D/HiISafL3IJ2oMeapm3mLBGQL1YaxNu+
M+daqBDiVmPhacwb9IhAklmbtIB15wxxFfkLScZLrs3zMSKd7GJfI9LGptXtlkHXYtXIndtw+b6N
6rwNSBcFLE+GlkJ9WBNFBodvkkbqC0VFFSAH1N+ujOpiR1+z/ew5hNM6vvzu9fo+c6+EspKE0ixL
Pr7fmQ0ZZGtFGle5UGB+1+hhMCsyvRUtyjmaouhWDGmEcrxq0KkzXLqciCI+S8QLWHxR0z6lgkk4
doZTj/XyxiWP8Jd5HTBingAqg+E/PUlyyziSCSHC/Xo6MvaMaRjZj9O/M4jNlz5R65UXq4xnHU6b
ngSa777MME93/355fiKigmmacsp6iMQ8/3Q72bNDFBjFjtP1Xqr7YZZge4eab5Vpk5mWENBTjBxh
9WvmRYhf75LFXprqKuA7H6DTSK8cmuPbq747rZHHRZUKA14KOF3YESTk2x/TQp3RtSQwv0EyO40u
b1xd0vnskRD9cjhHlnyM1YQv19cLKyOQnohOdXmjAkGrakHR2OgLibdbQjp+eYrGJ8MVFek6+QH/
y9SzWw/nCGlyumTFN67xzAle3XgxArpxJHZWzwKzHt2z6sAZs9MYC1NPmUw6bhK+nBKCDNZhghrG
Sa+FXlGB2G8V2lAZJHkryLoUVDDrQm25U/bEr7d4PLFX/dtDNgV0j2paz0/kDp+ut+fj0+dnZofI
HohJtkvBZzTCZ0b1uB1OCdLtzIob5I5FS1r7OV8jcuA7XVaQtmV7CsdusrNmD8tiBbidbM/4Ru7g
xR7i7AnkrBnA9z+tmv/M94p3ZKHBqD4x8yExgPybv5H9WYeESqlgW10uCfD+P9+Pt+/MZftav81Q
/dfnw/MX5jGNtmetxU+vHb6Zb+raMMfOuSQDnxaXL0MiZQVQeqU4U2+/F8v3PS63rwvXZCwW3TPR
5n8VR8/6FRV9S9RadMXg10qt2iUQLfCPn04XxodmHWLYfnVgdz0COzmUD72nvG7r+vZMwjOknWEv
hS5einpvkZ/HI5q5w/XTJ+baC81HoybbQR1LhrNfkCJcAmwQNE0SCdDDGF2mcetlnjBfzO37E1kw
kQw5XWssbr/GYsexdmsWbyJDk6r2oqsFfet4Ox8PX5PU+0znIaTzMl07HvE/ZgHoQWlUFtHwT8Gg
x5bUuOasruLkcvh6il7Zp8vx15ltPAvCyZbZIOdM5QpqpAvkyxRVAleFHMehv7tLxBy4P59OzA5V
zc6GxuX5dswAtbPI+npizsrpoef9XqWCJA9C777qt7q8tj0uSnTUgMWaMykIjzqWAcwahx6TXlZV
OdRS49DEvxkC9z0Cpx02zDW6OurmOKm0lwHbjT6WAvuvp3tKQIqXe4IYo/K0DYspA7nVZ1YXPT4p
8L9ggZwPl8/v0WBZ9KWf3r68debEOicOtM1qUIr5JsyA3KcuqUczNX86Hc8vSw0ztV6L7hmlAv3j
8HV+S7fTfHJx37ExF+DxMi4r7L+Nfs2lRTBQc7yF+33B5eX0UmxCQF3xmqCznv5H+vRROALVxUdU
4kwHhwsvPSwy5KMsmFRpNX2jCQirFqjlQFLBE1oJnCa9cOSdKzmHp3R6s5J6iLAnVEJ2XAAKIgNH
ypbx188ITTmCb51nGXifLZw1Ywn8YkyUGAeJERIG6K4veVs0UaCQ6mQLVEW5TqO5x6Tr68zSGCC4
lnyBmDVFykYcKoGi8DHb1kl8Ca6CKkhTHl7qnnpIKQLFRXNcbdzY74+mb9eLS12X7IPYtPwp33uC
TtPkVCgSA9XKS+gh0vvtCLHLhd7BfzgbDc8PuqofyB8Z8GEVkVBzT3An7HaDDaVDiu3wrrH1UGTo
/10S1E3cO2QDKqV8ZOb+BM3CCRYauuGC5+vb94gSfj3HFZFJgHAwSMOGhqa5p/DpDvi7a74HiSMA
9FSe0gQQJlqWDqRQ0D0+uVJ2ZBZP3+7n1Bzy6f7leHz89K2/LBQqxbrnyjteImrmMXflvRw/Xx8n
VvvD3g1tfPrpECI0QDPGCW/PEDalodGAtSFToiDp7xN/cC3/dPrsaAGo6mwE9aOz/+nnvz3pQeun
//mv9EdMHaXI1sz7xygaXmaVOHkdGT5a3mWM+GWc24zts8aTnt5O6b7zdZNccaj97Fk1n0kXXiyY
Zm/nA8MZUdQTHH1Zhb2k1msAVZfdNeQU2N7QUI6icx/AO6AgYcKl5gimF9TKeRvH149HKLcAWBiK
iBN/7U5ezlxDYdr8M5073FhEwVs49WobX9+jA5GNNWH7FBHDb5kJmUboZbxfQDgjteMpVeYfX+gX
i8KNfgAE4oyy9/k1qtOpZ0e0A1nlDWVLQHre4p5JWaUR7vLwMXL8jzN3+4WWa75m91iTXDB55reJ
0HSShkRTa+Eg4M8bNsuK0fpbxPufhQC9LqSajiu00YZVJFj0LaOgYYSARYy118IWXSceOUA1Uh1B
4U0jZcAmOwnhr65qSsrBfoo6zCcKBmLIOcJbfdIO6ulwhqOCZiwL1m9fRhmU6VrlN3ya/928puPj
kOXm8Vey0AW0a90L8v46S975dF6uDzBQaO3B9cz++/vH1xP0U9ijiSL+C72HRzwH8MwdtuEw9VS/
/PCj8f+AYP6TOc/S4PwUu2rEPyZoxigyc1MTYA30G0R5DMOYkNJWBO5fYgT46TTfW87VZZ8zckuC
VZMW/Ie//eX36d7/HE3CFz7fz6C0OBtj0zYniWXW9BJNq6UfTqR2JMBIevCVlrp0ZrieT8/fI6M/
gqPqOfr5X54ev56Y0xqr04Kg72Z19DpCzz8+a10RTCvCOsaKKZIcTFfzSORgB0tfcHkNIwDAIc0q
QfGCxv9bNG2cTLzUN4jui8PnmffOL+D4n++nr5S6arq0fz7cwSBJkO5CvnIVOEgQ0/ZHlbU//vvv
WT1N9wgrYT7F/vCR8yV31+nyfIMCu1lm0KgzoLqhFMkhpJ++qBGXmX2d0zvi50HkosHcm39mqEII
QrHmC8rrAEt2wopSIh02zbwqf0CR9w0DZLko0rURttSGE/NM1NWvJvcXhMwc3sli0VA1OAjeZjEb
wZCP6WJfoi+Td9ZorBgOUG2YucZMEzPn+WMqvfxrdI5GrCVNauIWJeug+vuaoNfHi8mZJuGpdujl
Fxx14f+uHY5LKJxZXXyZVc5WBc0oTZ3ZlBY1m6OPWLgxa+S3+dzhKSSF963PMBENAgSAWTpA/QAH
+PnL6dPjw//808/0CdqaB6olC6niVrRNguIVZq0zwak8ryfGoumGXPMRx0yoxyy06XMee6oOKFqL
1nWfWfn3BRUWCq7oteha/JsFPPpLrDLIjoZVizYwRfO3d0giv5Z/dY+6TnK7pftYPRaleuFOi0yc
bwCF+bn8lFqU/tFF0Z9GPo1sEvKfVrs+vSfRH2eHQaG5ChmVLeuOEaY+2kFA/C/QsOLE1Rzh6g3A
Z1CZUsB0yZRCc3HERmO4Y4k3ZSJNrBiYzPHb8TlCgMdEzNsLp0hVWtiYMpFYarM/TG2MZYeTWQHt
Tw35cv/pb38BQ/92ejn2uZJBSiCwi+1h0NvGn53ST09ZJ0zYAwWAIYFKIbWArzDFwbSl8H8VpzEj
KqnnkmA1yDkKMPgqt5dYC0oJtbCt5wuVhZgcu3dqMMp6AJSlYUGgf2Qu+8S0m4avu/rr04+7j2jR
jjMgoOx8ZhuaULsSK7yyGVs4yw8KL5pYRqqXBWxHygmuepGcrUtW8seGfsleordPp3PCNX45PA40
2fk6z2/caHE5FkIfx4CLF6HH+JApoHKaLHbRor7Tjwh5+IFBxtLKxBVPr/Mb+Hpf5qQ5Y9kVtOPS
+WSSevnrl3g0vx5ODzbWgTPIY4Rn/llKtbPPI6b9z0uaWR2XL4szXQEMUi0+vTj6sFT7pVIC6GhK
t1uDix/Q0iboM5ZLXjGbFJiFQcY7BC507YzLCRSzXkK+e5SkA4C3avEodKwRLlg89FxcP6BKXmML
PF4ZD73oOnCW30dFlxGJSNWBlsrmR1cXZces+X25Msvzdcg+rN+Ic90v4F+N3e/S75xpgPIeZqsK
6lXyoxZyHw7nyCzmd07FuYY6Mo7jSLzJilI3IaxlsNcwvqCnqDxAIxwmBI01JcDs8JTRyglo2/Mr
/Ho6n58g4fZ2/M/3GLC7HR/vt9jDJpZg78BjwMUe4AtSOZXofFwzidZmyIeX7/fH/OoF9o7iudNY
gpQ/QHk51yL/DU19blMdkLHn9NPb6Rsd1bcofhX9dwvi6+ErODYPd8GTgjKfowYwdpwhv91GRunM
GBeo6xgw9CW4rhnY8TdzVDf2DFmce8EMRgHvqGdNVBDmXjJU6AOfemZp/0wUFaXGFVqFl/78v/7H
P8d8jEU/4zQog+QhUoAWuolDc2dUIIL708vpHgUik6xke4kJe55f5tHP2fOd0iVA5aEzj3F9a9Um
FPhgdBm/9UVJUxbrN8T0y/H75yMTz0fJ5DpAZzEdMq9ZetzeoaHmBVS/zAwuTK0ILpdEzoUlnUJU
IFHNKIr89rIxoInX05fZpqAnM3VC94RkzG/nBL7LCYC/0ZxN9fB14hiaV6DIn4ZO4tqYkiS78OfD
+XRg8gtQiUL00lrV5JPkBgDJXyE8d1TNH48zZDC3+SGkTMqYszNr41wht+7piM8z6/r+9PEW86ue
jvfnwxuHboI9oUszEbAxgFLj99erPB+TrcAX7WBtDhmrsJAYBbs8uJxhrCEhmJecfVQka2xRG2Or
zESq54WNSV9A5H09SuEAM6qLaY9j91n4zeGubybjwEUwodv1c6wgi7FijjPrKocesuiH7Av/x9sx
ghLdomOQnUMh5yfEfN2CE3qpJ4C6jPPblwM9E5ITkcW77LBuZ6K3M6ArgnpOl8+nhI1SzXU0VVMS
G6TY9WdzdRpkWsz97XyKic3fEuVF2C1iODJCDPxwSJZ/uj7HZrkJuInflMaqMIifxdm17gKKOohl
eJwUplJqWEZFfc8Vzsnyz9CV1DymTuZQzRKe6XIuPWA/4wS90qdMuclBP19uArvMaTg5AY6RRLhA
VhvgvhhWY57wicuexGBYkOedawkg5ZrN/nHYMhosgBHn+yifXth2zJWM8wgZG7gC28PvdsCx9aW1
agrSEFNMm+oGmOH8HttzJmg80Pyevo7LjSfdm7w3jyIRerLQkDufUxRQ52iGRbUWAnhRiaINOo/c
cqjCNLnh04vIhkDKWafnMXWYJ4NFvM1CKeZovF0v9+PqwCQnmWpW7rJ7Ju7mcoV22rCny9vbrOHe
H7fr94jpcXilZ/Rt3Y0rXlE4oxPt4fEoygtNdrUdSzHT7f0tuoyiycv40j1OmxuhA6dZdgULSKwm
F90um3pK5EFPansamrgUt8kbSmiDv8LXYQiyZa6cc0/h4GdxWQJCrVB41Cb8VUivx5cdn3Z9aJF2
gqTvgmJ/vyet7c4UfyhjKwd61lBnsXK8xVS4x6cnGk8PsT0wx9Qi4O5vgB+7jEl5jDPRHrf/JTlw
7gIqhR4xLk/UDYJZdacy1yzVv32h35pGwRbtAbZf1bMsTpjFR5Uss8WPHIMhALAOSGBc5a5G+Ys6
Chmd81TILyXPsOBd1hjqR0Nf5d4x5IKbF/o4J4yOp4p2U8/zMusFUQpzD0yPODXblwbl9VSvp9cj
V3SjcRk5ePIzJdbTCFSC4nABvAxh6EyyVrDNa0p5UlFxXqQiOTfKM462idG2Mzefw60nnL4Qc2jU
SN7fUm1JT4aKXOPxucl330TEATjN1MZeI8YFc9ALo37Nq0ZGTYCzRaEOzDa1lQmCdT5z6FzdoMyR
/hrkdwjRWxgy/O08/ilPwAJSGAyzEL3owDl6M/CuZI1zr6LMXmTaetpQoLWg3/YVI61xbfEIyXYL
cvdsAx4j95p5wOfPwG24uLFGGSo6Ou71osXkmZ5foNb7fGShFzSu8bSgqjW7WotP6Tn01H+6C+Us
2a2QWrUzX1trLGpjZDefFLTdfYD9n/TI+1ss2P+3ma6iGf/r4Qb5sxm9/f5U/j1JITg7L74jnSNa
eeo/RcVn5hi/bW7EHaMupp1b5z5dopKJInC/6QMeJ0QVjpI+kJ7ab5kWaXBR3uqwZtm8LCjvCDc6
l1/BX4LT7XCeVd/UzI/2Y2hUCOchZ9llGxlhBq5YZzSp4FIWDdlbNQ3HsIWghmuNcRGhKUyOuK6p
yE/rO3/jnE4apahpA836EuVejo+IwwRD8u/zDZ1iEgHDdlBJrU1Zs8vmkv5wSSCWtCdN47TNxAAd
Xg/wHJ7X4Mq56KUxObNjmWEXKpnGlZQB/LUD8rEe7qloYtG1or3NCiyHEX0GuLVqUSkVYd4cvSBc
U60K71tmeLsdI/TN0z+YKnntMTYWRFhUdT+Ffz7FPsG8dqdaR4Dt39RTAkunL8y19pddHYQ1FbNH
jGI2JroOjR7qe4+JMDzlYKEJP1wzw8vx4yHmvrwwFIycySHaK2HB64KziKcSr6joc/SGiEe+Pkcg
RSbxXqMwgR6hW6WvZkg10QvnyaEkiI9xudna4Wl1ubB12iwhsi8HlHJIIaBnRPo09DUxunkgKbK1
ghpHtv16fL3evkf/7y/0xDikDhE1javBV6abzfpYfXG9Pn08fY4ffD7cXphFW4yIG+ce6yWXGPlX
SG4UlXYMqgNdxkxNwVk1WcG/UtiOng5DD42FhdVHekxUkE+TPkiMHhd5dJs2WDFEmmnYVnvxzDQZ
JXzm1/ShobAcpA+5HP5npR5yY4G80PloFkcLfQxIXLrE2OsrWkRkUiCzfktfEYIqiGTvNmKBezW4
9iW6WWz2syyjZ/OFPQSUVaDhR80dBAmJ0dyiw98MC6zUTaR0VHYJ3GRRNAkyAGhB1qxH5hw088r1
Ipj30xvBshm6gamanX2/nc7n0zMrnlGCctIXQhB5Ijufa6WZ2UjXhVPH8wJ7Tiq109jVaaGHmdrK
yOcv75dfGLJD1fcwoQ6TwFMhLzIm/8ViACbRRVsMKwY/Ekl+Wzzdb2AgzlNfaFZVtXlAFl6f77Eu
OIfx6uPa9LS9BValQDJiAFNFry2UwPJdTyt5FmnTF8NtQUHU0kslm2X56XyaWQ+fnK9ROFZbaHuG
jYdkLMGvazZXtProyIJRGEsmPqbBLXWFEV/ycs8Jc9+I4WU94wBlyhl2NSeeZLF3v9HHPFSQoA5+
hq1Z9RZjvfS54OLRyNyGrLi9vQGppAT+/Ien+6+HN5qOEV+PapzLYYl1dN7T6+Fy+hT7/NAzYeg+
WOBQz7RMsaSQXJ6O306pDpeLnGiL8aOhxlzVlIkLPYrqAd4emkoRK41nYKxv/Dz0UNX3QUe/0LyP
JaVfNGiRf8TDcpRt7aRP59gQbGEmND1gYxZQJ5YWSofb85fsVIi/Jqyaw+P0THsokO9ggowyheaK
E1Q3JzFyg9IPPDCpxeG0zrdq9fQcGNI18kk/NnPM1/Z8mMXWoTAYerbCBKYoRacm5jHbcmne1EIG
0p5o/y7yPEIqrG2PS1oNSjONonR0gTgfegpEy1G/MEtWe0KQWrZzf75ygYKp83wbn1GxF/jcWY3y
g6Ay1SlD+WPpOTBRQ9vPXHIXqwS/50ef8btu7wz/QIm8HrzNGRVw00CDkWkoIucBZ9a3UyzxezZ8
pbCfGsp0N0vJ/OvIJCtqjHLo4Ydffe8RfmJtRpiA5UqgTQS3xSBtCOL+0+F8/niYjVkA6NoVU1M4
0VYNI9QEj9kP+en9fJ6p83i8pKWuf8zREOTPFiDHkd6DYOm2E+6oQ1TIBI/LHc3SqTXWqKfEq3nn
p7Yb4f34/H6L+WlLGUzKwSA/g1zLUH6w8OrNLFcGPRk5kido8lpPEvFtmVaDQ69N1GYFKdU7qsa/
HH8mez4mWPMebuR2S3CSP83S/izMZzY3ged7uR1+/RMsLs9IzoMKj6IlreiZ2Lx2hVgs4NOwJ7Zj
f2Mvy546L946VkhiYwArYrJd19kUyNjcinNmL5/TgKxsxag9CN+lySpNcqptAbNMmvlImjalrnyN
ZQazHn6KqUxLzWy/RBTnbcffVcYITkhB2ZSFYHTCeknAuGLrQIMywFKczCHo9JnFv0K5uRAidT3k
ybocK9a+lzJtJifNGNd7tBnW8HlmTLPdOt/K5+gSj3AftEPE4AQTBFJ2ui01k6lRQ3L128FKOow2
PYjOzXyl1B5fDD2rrYCB8oYXdMrT62cWttMYRRYxxlqBJRdteSczTcTSGo4mUPodtLlEcMkJYV2m
iAauPiDUzYTQIs9hxm6iJRgO91n9/TAv6MOS9UegR+F2JkXKL0eLizypGXDd/GDAjl2AxFPa1vtM
3FEKXV5yR4kdIAQGY6VhKMhlZbNFBSVzMy8jF4aq5SCKNP8cURGteL4o4QJBNlY25v/5l78/xQqz
CNL09+Q7p6cbesAssBsEBZwSol4jpijn5jFIp0KLWznIlwhItsC3fn8+M7v0NbJ6ThfOSeWzQX45
3aOP7DlrfjQ5ohAL+KerLmkiMXcJMZEQIpgEPzDT1KzuR0iC8/k7TUPofcRnqnLp0Ptl3RScD+iz
j2sOLYHHZd0tfQEIMBoqxXFV4MvTl1w+tvpyciYmgs1iDxNDoUb2p7KjGw6E3vHUY+dmCJmsZvs5
/xZTVelpbK2UpE+/vXyKGS+xnimjAktHhPJWaGyTtJ6CJhGxV+5bTtGDotg5lL5C3ZRuDxnyY50y
1fbSMxicJKQgMpBm+PZ6jrW4OZ6WHZSHx/s9L/rwkUEtUwGpq4BCtfS/OSUk3fcErPx2vB1Ske0w
TPRkuGK+TFbxseJh4jqRejX0ujDkOXKKSjUvNGTnvM3zw1S9Diz397eI6za/pG8loR60hDtzarh4
wkEhcQ7S1EvEiCUJyYJf4djvCP7p+rfLv2Y++Ue2Ha83uncFC0TPl9PjeM5utAPTmsvj0LBZmxp0
cW7YF65w1jbk0+gMm5FB5Jc2QPNqogYwrw2Smm4FKzFyArq4x+Gum0VHTZ5/qVGAR5Ik6gFq6i3t
fri8fLx+i4hbS8HsJQLcLfVms1h+idFwxshXNRqoEh+ZZR4ZjlBERpDWHJ/5031e0HmBUefrqxzO
utGrOKZbSGYOJbyygPJiwQ2mszwRGJwKOM8ah992fhcFtvJ3Q+8yk5yP3AIaS0THstDHMKAgeohm
ahgCOvJVh8+ousw8iGkY6C2bzebqmPl2GWHE+INQ1DHY3jT/H2x7rEFSQ+cr0akKEDER7O3T9Z1p
rBNw1rVdoR/q+aAzA/Ngw6RbtCq1o6FjwJkVYJitpyZ+EeXpV1+s5e7+U7A9/tx9acwkmAW4XNhD
EntirUXw5iBbSp1P+k3sr8KCiyjnVa/S6v0tVVSDEwX6DH8txRaQ05UPiBOmoT6SDIO5vCt6pEdO
AMQKsyFQyajMslNOvyCFJwwSEt1GFRuazzK+0gNDbt7gdr/JKbhWOL3EsO3t+i5GAObtjT04yesl
Mx5eEUAqp4byzP8QCITnr85NvVY4zXyFyJZ3kRUhODX20Nyoe2RAfiCfnrRsnDJbVKqKbIWTDMg1
CSep+YUB1SdqyWTHrK4LGNqwlj//XOl+T/WfssiHwCG9B5zWAOEcSZ/eo63ano64T3lidCXdM88T
z1qx+8g14UDrWDrUlD6YT0LvXj+OPcujr/nuSOBVuIZT65Xjdx/iqp83z4dp6It7JkAVGcz+f/7y
53+ZKSg7iv4ouRnn140bvKWWYVvbLRrF86//xTeL8yjYFKXdhG9wfbXZoOZVVBQghnw+ncvDY73P
4e0taamDGhnpjWHg4pQwfhi0qP6gHHcwDcY80tFDQtf2GobADDG1rElSdVCGGYKNxOhVNS6nwg5K
M8OQTAIXVV4cY2ng/syFtubDY05t6p8ac0UoVRJfkRqYIa4n9wfF3A2uhUZ3oxTzFd8/Me5uhp5N
NSjukKcuBQzMwnzYbL/DUtay9RSFur58fxJEZaibzOIOxAlnjXnzui59x56fe4RLzArYuihgnZpx
AOEOTROpdqc0f4S6fv/6+af5/7vnhv305UKh3LpU8caUUW5diCVFs2gp1ut5WAQAKOVRhjN4UTU5
1ektFgFD++6lEuH9Y8pEYRRIr3utKR+pwA5GNMf5WGrvshH5ETxjDCUiUCTohGMXOBJi4njt1wtX
LqiCwyYuVGYMOVrNr3bRDu7Hb2+zsGYsjqr0I9V+ZNcz/wVRZuAKfGi0Gaz6kZUzU6OrhBCGMfzU
4t05vNgBQoND2DGjeH3YEQPdgnWWT8S8++/NYTCKMZWsm11TM3N6fLA2HS9LwgIRICeuDS5hyO8h
X7azyUwAHtMWAE9k/5FAs/Di+HKFeXa3pVz20qTVDni+CebLyd19XwEfpvAoZzhyYD3QWjmjiSPG
AhDO5kc8jB5DA02paj+vYh8Wp8LAN0g76poCkpnku12Hm8t6v9wPn45i7uRMs33zEG4KvPGit2Hs
qVcxGy7muD+Exp4KQ9Ugn0sutliBx5YkkW9vkHf/Z2g9ziglqme4y+6hHbbv1KXH1id4vX1MsKoL
hYkJH7Ol3tUHWT+bFOJDSZHjGuSo9h8x1HYad2NfL3s5PmYDDxLrwcznVCjXs/Cbs3u+nT9Ff/Xv
zue/Z53xX/hgTsB5WcWQ6M3B+dymutP9uEaS18ORokpuatySnncYHX7EY9Rvfbqc2gIdxJw+imao
6EdWmYuhHBqhy7RyGOElrHCd7Q2mUCokwvHN6oPu2qbNfNc1BJqCZNnx9V/H2/XpzHOCYDYg9+nc
0ODVNGG4pKG55G/zfXtU0zVCOn4B6IK+9UeoneBczcg5GR+A1tMPcDmGwWEtDphnV9FK9cbRr12k
IJRZxRS+JUAabU/m8rvsqfud+PA6H2Lm9j2WsD9Kwshf0+uA9jEmul4gk0CEAXPT2HN498mJ9ZN5
XAxfHDU94ubFWnC6JzEjxuXrx3kVMe/w7XC/z9oks5pR95LN/9sBSYdRJ8a16xkXRWf8QRUI8hoe
aaguBVqA4H4Ggks856/Xxx9O97foceezMQIKUCH62/eVvZ/QvU+ACvPxfP1YJyTzSg3SKVGTgh+I
KWbjgLlCjcuiU4JsFh5fZjP48s4WmM+3hlOvYwQdO0yO32JjAgiEcO/OY1931MgVt1Hskt8HAznL
aNuLOd1/LPiHlYhp7QYsKBE5kiMqEa7nppSiQVJ6lakDJ7k7BjCxeIDQ4+QzM4HuomVD6AYgZCKC
C8N1pl7chjyvkrUnRRAxxGhxbe6ZWJh36jVMyCIuGWysJo6TzQs7vF5Q+jsjMUwv8Lh1hTK3NfRz
XqFByA6ssXkG25NaLXN8eQEG+OeFgooayPBEZJ0BX9zzdqITeU0GZK4t9FbNSCEukKEal/uCMQEN
lFNW73IVJ+Yyh9qg6voCFvb1f/7y5z1mKCIQdISiVsnwM7RVUHfyZpMml7ScFdmDg++bDdoGe717
vXX44/jt7bqHdeP0qqhNt/UFjDbncREAlAaJ+olnKMP07ND78TYzlohDsQB6Mgeue7R1vn7mJLRH
JT/QRqlriqFymqxf7nmVuC1f8X4lAfE43Nh8YN3NZqGXxVX5qGC6kT2QNDGPj3dFogRH5PqpnkSG
0hMAPZRHmU+ge43bVM6ME7KS879FSHY6jG8qmWCVpMFF5x6jru2x82e9Jv+aNYf5GrheITNvsT0t
rp028eTG98eQFzaCosN56Lq5kHieZ359Yy566LqCetE5pHky2vVQsZa+QpfuplhD6ZoYaTTscAO7
4TWWrf+aQbqzXcGIT9z9C5x8g1a7siU9zrdIP9yumCZzbI0erMpbfb+8HD/NgjIBfnG98+ZXq3rU
EW3POJzj7B53byriRkrS9KhoDlCUFsA86cYjfE+uEGLuXfW7bQnJckICgOqZBbucGQHHxUtKRj9t
6nE7vb3O98YESlAMTUNkfMXLSEIdTFsOuGomxW4xyv11flEJxeledIQHx1U9biAy+PTTC9Uee+pR
XC9/bkGwr+z2l8P9y8crV2PgVd1qOmPqZ+RpaKebBIog3XC/B7varvNiLskeydW1/M5QLT2y5Fp/
btSBUoGkkHscTOPZ92Iua/1X9TVJeKTKoThzpKJx3M+qJWvST3XvdN3XXd+OACuT+RO2Lrk+Pg7R
PLiT6eqfXekj3TQrMc2IWV7X47nOIHIZj1KUkC1eBcf2hCsDxnK2K29oCHQBup9/+QZlqVxswHRD
u2skMOIdvl3f3t+YvbmeukGXXAlvMNie+s9nLe90H42NbTJ1Y1DMTm3PtdXfKRPJQrmT2oAPtyGH
WnVkqGHakeCN2Avzul2d0GX2pMExPF13I7cZmJ5mv017lTHDd+YWEBnA6M7WX449YmyCvMxw3yu1
bFNJILDzPltJr6JhHhCAMR0lWmwGaPHMTRYahNMwtjHQy/X9zsZ4Xc+BNp/xnwH/6J+F8wl1JFEv
oeqdsW5v9hgTzeve6eBq+dAkJan8QNDM95SL7tTA4ZrQ0D7r3lWQpavVmqxqQX6iPBho06My5XJO
HCa7G3d20FQNzuFSHL6MZwrlqUGb264tvuS7raKr0iKFvIVgpl4SDpt6wodrBqYevMcOmQeD3JE6
dQrftf89ott204K5K2ey2VFyCy1LNkUxgliZhl6wmaMjsZrL1TUa2QP2FeAMQPX8+D2B1MeVxYVe
dhghASn+iEvTxTOMcA89jA9oasjn+HWL/JdxkkmG3ClQqE0nZEeq41Rn1WPw6bJzs7Q9DMnr0ONl
OzxwXw/nd47mu2QKTDfr8e+XlwMNeT7vcKrbp/o96fkM71G9RyigKUgGdugZ2LzNLszod/vw9lXd
SqlkyGkYDzwMXHRfOA4kfaP2MnVvDKbmiTJYtSOrAVSOr5kR5dr4uOko099vHGmOvQTI6N1Lfjqi
I663qhci6IstPsDkLYaRhB/2v+NxYNjw2Os4vrFD7/cFsXhP6A6DWpQARS90t9e37jHkbPQS2tGS
Gj24Zj+dD4yzEGdgbNI4KHQX4WXqXvZBouY9WqP3zVV0X0dqxXo+giLA3EA3/kwEZGNEZ1dEVvey
DzO64DdorvSU/eGMJhF6k2QVb3eoRQ093wIoR+m5Rz1MSFmbalg6L5Sb5jBubPnAGkaD6/r5S2+Q
lIkOXn/eE4rhykzCq0h+/5fTAQZ8nRXNq5hcb7BXHcP2ZxjFXci2JuCQDHSCHTLgUFpFqmqOqjSg
wq/9wZ7fbxHSNvZUo+fGYEaRdUZghf9Y9yqGmg2uRYiWrVn1vqToAMudZ5pVMHoO5BeFxstu6byc
NggzsUUnBtdrpsxmgyYAvMSXpXsGfVvlMKZIS1OuiYqYZGWK+U/0TlCa4hQVBjPlsuW0kORAZ4nP
4JrYcQDs0iyC0hwzB5kfPePDNrigIs6mwuY07+/3CG1ILwJJwWgvKIenEJu5GezmswlVH43fgVFk
cHW0HSFvO9fppTkeX27Xx+O8wOvNNt+Ba+5tkONyjNrQmKMkgNy6k0BwHyzoraeNwtf7dj58Xzkp
PQsCIRwgUq/xHHxhvMGFTAkqybYruD9inCs3go8Hw7Y9N7ioHKY0K8AcRoTKNWXpf34GHMm/Xh//
9uXIKHQO9x4rJQt5qqWDKxuPwf66EgNeMYOE6iaHe1EVt1MevnWLZhBjejrLTDdrWfPDTkfDeHMq
DTOhPXfhkMStqW6FL6gUYgI6yvFCxkVvI3+7/JHVmB1KvkDoQDPffz3FBglPL+/QaTkpB9GVwsNR
YLxEyOaLqfydA9p52sixFV0pU++s9xHiNvdnxbZIPUwTV8vbzbYOb09VvH5V13M5e2qUBaYjhswA
bWjtPELNPGKLKFLK/DODkb9/XPFC5yk+wwM4QWLMpxOtXqG6n6iQ5Lzptv+QoSsyJgympQFxNIOD
wLGt6jXo7RwqLQZVsShxEuUPLpdwOxaTmzwpLGgmwEDBXZt29Y9Cwgpik27HPZLr0Zt27OWUOvua
Zflsfx4ZDwsS5oAtnhxJbxFoMU4ATtLSe4dcV51koJcOVF9ubOQXmY/Qy1th9bA+3L51P049tG9M
xVA7ns6CDBniLts2XvPMhnM60eP69gaOaJlWkDMWwn3pCL6cYrbf9+gmX7J3nvD6IDRNXg52vI/g
SE3hpNMdhHlyo71fYgkBuBvuyyfS33CkhDQNhMZTPH3btVIQ3rhj/biaVniT6/udTY9HJFZyx7i8
bIIf00pJX6NBy3tOJhwNjKpp7kAA21rdzTGjlNhKV1wtkN+xxUCUDBnAOKOkp9eXPOP/IDeGUxxS
mrPdFGMxre3UUOXeQd8GjtZJlBic7wbg+/PPNFNEEY8+muKHeLzfYqed6GGLFXW5dWjiBxxp4ZTn
GHNWuSdYJV1mERi9ARH2OrNncjoUz88ya//TmtnIt6f4FljHPFJzofWKWuBikwSbJRcvq5FVxXFR
crirUbb00pwmZwpnFSKjXT8dbgm/O4Vfnq+3FESJ7iwmXc3i0rZpAKCCIevy0YV4eDul70CgJ7mR
I+hNauou50YhCR4TXXR5uMnzd73laeLHoKf18f58eGM1Ud901KAnXSN7l9j+4yzVq6MQQJTPOUqx
7jnq+wJevMIAwzZioeYeVeAjAwqEUejPS4Vt4h88NCnOhU6Vyf4/munnF5rz7xbRn7P6BMVSWfw+
Q2rhkwt9vkE5Tc6Typ/JsOFJecovQoiXo+aEsauZ2ix9JtqMV7QDJl0htR86K/nOfCje8fwl9hyh
XwJKG0TRPGzPVtsXyk/NRmSQ90RvELfwjGkjSzMuTDzXT/R40yNnPBo6noo9t9xA1urhi2N7AChk
VUGpSOhPcsm+N1rmIasKxXrxRNBcZmnp8pgZ1ys9GYpsQ+q6oZZ1AVnB8NEq9GpV510+btHXc3w+
cY19FPI/uLhBl3e4djX8/+Al6l4DBDxnrN0W26orE3rJP521QaEg1G4xzxlpadFvA42SMn5jbA94
+polXpUWAN1VvxyPUhjSouLqqO1Mi+8jRjGzJif2eZxnwbEan1G5lw4nZ9TwFZZ0uKzNZFNWzC3G
qjg6MjjYBYjdamkKdD5dfsH7fYPyihttxBkcGx1AgRmWzkezOIwCMreHwzKT9lS72v9TBYP4GJDx
TXQklLKMIqwTUN359BwtYKbfqkGFRlnrNb35Yi/Hx+0deu6CuhL/ip50qFP0LLnERVOhpzK9qZpZ
3i+/XK6/XpY4rdTuy029Srve8lKSPCgt8kpVD8SRnhUWK8+qN9mOPQJGT0JyYVvswPHgx/6PVkOF
tZ0PMe4aG3CeVpMs9b6hT7Zr3aVC8lnN/ixRI4rKo5YS29XQE4QNuawzRAGdWgvdJbh7g2RZPKN8
RJEQyjPPzwvuNf4NvSiM6DIURJdSYM8PR85iEI0WDf/y/ePt9CJMgHxHcPtuWIyf77F6IiVQ5IhF
Q1QcS5xwxVn6mfNKP0L2Xj7yWHSUUrjubwcmimhNL41EFAEpVPo2q+d06Ahnlw4jwFNPw67p6Slx
YyELnYUylURKhzg8wJA+VtWZ3ritdUv3H/wTpyfCqXvxCH2m/+f7fW0T+/Tp8Axty8WmrhjgBLI0
YpLff+T5cgSgdGPne5ApVNoI5TembDLO9nK6Hz5GexvS5xb5VVrTPaVDOF2EDCLcndCteT054IBO
8/X9wduvCNNMO1s8rjGtLBdkvR7uvyA/IHuUvnJfZMb2NWZmPUcgjPPp8yUq/UeAH0i8VvYwKoxE
EVLcNjGq9DT2rQ2lxCfdAl3xrvFTD0nrRw7H1a0WlXBnoPgvCgk9K4YsdYBYijJdPh0AboM9XYx5
E4PPC1zN3mtjSmgQ2J2NjiKbo5C7p6ahsFGBgol+Z5ONefxmk9cpRZ/oNara5Tb9lhdLz96UymTd
/35f/jUI6NjOjrEThzao5ZZTjF3D57meZu0qLpLKXbQI7TpyTzfgauv564qxnZH8M8mISU7JtYHW
XhRQi6riwKDKWl60Gpe+cjEp+CUqQBGB4nhfU3vxA4GPQgj67cwgBRsU1EGbrj+SfLvdyePtR2G5
BG7Zxq64+VBYjfnftiH4avy6rOPjZhJhDZm8v72lZiiyQW5QyBVFFf/z/RptoMUBRvQlxQGb0nBz
zwELnjWDowtlX3tmTlbHrma8OFw3rT6NH1j+D1wUrrBwSdNOQIz3CDV7jfbM9XF9vqbBWVfNfztf
ROp9S82uccJ06jHr2vkzh4DRa0rKr7cTbeZo7KspWDWp891xVSJnBsk1p9PI+QZ5nSFnIkXRdo0J
wzEY9nS4fYYl3SNASnJIpfxFenUIIHFae96Js5aCdXpmXbstdC69e10AV9jsXI1xGaJE0VkNevk+
m8Cn53xud3o8ylSM8SCXIcijCRUlpfB1ZNLFV2Sz22o5mPP182ID7T8QlJA0Ak5LNgFmjv8MxTzZ
5w04bPQ0yCSPwhCaGCc/ZUwLSa1Qsd+cmgljdkCGVE7hR9OswFZvMUXozr3NTZeEzAe+0BVTuNQB
tadtsOhY9yKu4IkZOtnVHrvqPn/PrzT2/Xni19Ekrml56RjZY1h3Kx140zi0qj6nPzUwowAsR2ge
jIuAokm/WPTSh5HjEcEU5ahZrDQ7gWnD1B9VrS1CQr/LOfYRJvB4S1f0/vr2u3tMsF+aXaS//Olb
XwMacauv4v7+FrVNeozqJcN/ez/TI3wvCR8iAVFpe9yOx6fj+QgiIBHpN6oRoO9FTr7FQ3t6HD7T
Kxh6gBrr+awC9P3xaaQn6daZvB4eX17P9IrHLib718/0iKm31ijWi9inB3cxx4Czcv0VQy/96tv9
vOOTI6pAwPSwOdvnt9lQUPQ023KP/5uPKqcJoASg++m/ONPWovJZaEbrcmr8TGqfng4v15jG+yKG
k1Fta6wZCFlyQdODp1NKSnyKKeUpPU0MvaDy6EjI09LE8u2tJFRGSRht0E8CK8IQ4jFKsjQwq7LL
1lkgz6XOFmT3jqS2Tn1HEt1CwpO4NtvV4ddqm+fre8T7pkbjBiWhwB6/vaT27ky6icfo1xoSDFDi
Hfm90PN+89Fxr3plqhm7DoI1LCBcL586IwMdLqdPjCjRrpf/nEtrU8/AC2CHM8/D9vjLSjKS2dxG
mXIb5RU2WOoOjfvMQbej+afP2X9Q0zMLgRwaFQ9jaM0Mm02CWHz5BFJhkSvwVqUJcVEuZGFnz8bj
+pa1U9IxgeRz9FE7U2OQgGVTr0jTimkvjWNZu3hBOI6Pm6rPT+72/ha14/SWyEPALnYI34alsjT6
xNabJr+Pcld1gY9rl0/vH1loKaNBLdFH4Iw5P4BryoQ7Y+CkrXKPpHsLKd8xS3VU9eqbSCK5hS4k
R0zZ4zDcUCgGpRelxI2oYlDDGqSM0OEJUoHO2AsTJPibFbWB5Gdjr+GnKMBw9RrUASwAlitgJZeX
p3uGxq+3a/SAzlRyeDA110F1+5VUB7bAR2LRzvVe8L0Eo8THckLYIuZJOeR6xQaxr4SUiY8efFR0
zVDVF7/fGUxWFKSsWGj8rMQtMQpz1I+sGQf+JMkL6YFH5HpR/sxwrCDyirGnBX3hNB2cM5hClBWQ
4Hz9h18P33PZaq5oeDwiC3hCFeXkk8Z1TwARskCLQu0abaoiz3RUFVXLwEjuiXwRcDpKEkS0pwyR
RhSGWVOIcDNvV3Bn8oIERVuQGigKZ3pruJ9l6sWU6O366VMK14CbkrwKTGXww3VoRSxvDn3pyEKq
lnVHd1X2VvWVtl3MxnSbh32/nc7n0zOLnW76Ja6FrmgGVyg5evmzQQVJY3KoHSm8DiLmC/QnpH8t
+cMpzSU/tdvhBGUIgG1G21Q1z9S9eemS954zYQmwkVSta+CWsVYQcvUE7XivURcqjOUY5YCkr5nt
vMcclwXCeK0zWT5D7glnKJeocNGsoVpg0a9LHQvX4BJVs3rQJ8OeNZML1L3wZhLce6IkyAOHSmM3
z5dmIq4bN88Rjq+nQ+EA/ShTo906rBuv5vb58P1440ywsZd7sjYY4LK9UHolMlfBmp9fzvHy1Equ
R/yPnCaGWw9HvVNlxbNQzX3mTrT+p1W3E0mfva0PhWFvutsd7cvtaTEBxNJEvXG0NBRLni5ikOBA
y4IXniGkYC5q3BNwmbiUdylbGYWGkB+pUVZpikVua6RfrweZsS8AYfxxP55ppIaxV5e+hwnTadg9
vHxakd5z+W6TjpZ9kcmlfT/P/OF2uNwhuxMUh38cvh5K8I9l3mocwgboMyF/3Gc1eV4jStDOBfLp
r5ZsfAlN3oyu577qznjn0ChQyR4Udiibk8mXgv1tKnkSxkIXBtzpJLrack3X/fY864izSvtlZlyP
nKrJ5GqOSLtDUckWxegv8ayOL7//+ee/v5+Pd5rGcXFFCQOlyCA8vmz2p9IK2UuFKoqRGnw/Pv4A
d/D34/nwDSJz/7w0LZ1/+fe///lnltWNuIePb253Seg/QnhvDc4+vpxusY3cLeU0P//CFS2jINy4
eh++zZP/4Y9//dMf/xCP9OfjkgkH/Oh0yY0TZ+Liu9aPoetYSlTzP+dHlHAF0rQpiZIusm16Gfl2
oYd75GxAkrDWy/WyZDL86y0iItCIE6PvrvP5cPkKOcSQ3Rnbx63Ve08RyBEiAzQ9jLXY9+vec27b
9XHl9I6ACArpDenE4/C4pdPxDv0C6XrIsc7UxuSTkTEzrtrMfl9i4eus0J8WrA5aQJi+Fb/B3QT6
uy8fSSjdhxujuo/IYohRoqVsuVx07uMKnDh/BQ6TpsJxU1/YP4OCVMI+dYy6GhEgRluSyWI22dt1
PsPvRTOE4CZZ74qdn7qYd5k9zjS4rE44N10jQtuhu6ikjh/Os57GFMv72vJS1IGlrJwdtNx2+PDd
xUnLQqmEak1XaifJD4TLEcERxIhzkcGpEY1lw+B/p7kiZgHNO8YaOrZ6prHm40UgT9ekMo94gqwj
pWwe/lGOrpt6jXaVr0tww4wI1SSGS7J7t8czDnRDGNxDDEmWrDbBZKsSETPMcvH1mWbSyC6EZxwY
AhcaLOP4M1KQk2A6AbT4PqHUTbPo7HFpGni6RC2SR0pB1g1Krdlw1pVZJbR6+thsrTZlxPz56qKC
PKs29/cVxY4WZqbOFNyoCejVYfU4isqUMRxLQhhMh7GnjC2JRFkRvz/9n7/8+V/m+/070bqQtje9
awsly+NY9ZlYR84Bpyq/ccUVxrEcwOV5JsNffmRpYwu8XVSb//nzv0HbNsgdWKa+f5mtnWemxZzC
xX64U15nnTsm29SYan59P7B102ZWu3Xq5qp3rNO3vlqdzRcEQLyoyIJaPKKcb8QCY7O02GIk8Yb8
Ip8e1zdahzMiCOfb+Z3B28adFEYLyoYt1Ucvsxb41EaxaUQn28PCrY4ksoTz9TrbiTG/FcN30cBO
pob+MgxbvhyZKnWcuQRqlVkRZ/6S7NeUcnY8z481opVwNVIzCbiq9V8G/FlCVJfDfGjPGYYdkkof
B670ZezZnt3JGrg7Zs6pDuDbNcl1KWF8yZgx/L3OM3Wd0kva/tIT7MstwhrJOLhq6hYxpQaS0lo0
EvsoNoxEwhs4Ih6n87JFcXcBl6cBgFN62Gu0uMhGrJ7Q70D3MB7od/Dr8eP9P2kFEAUbRsAzzdG2
469P2Uc8841aJtLoX009Ksqm++uapgwDV6n16f2SjHPAbI/cqYCXRJuOjhFNY5t8svYig1qMmMK1
2qtf5hfNTGX7QEXdqZKlzkxmapASt4Ifc+8dZ1wCfq+zmyXssA3mz1egLiVA29sLM4vrheBi8Yuw
kWHCXTFj2udYdJXf/fnPf/vfs7qVHmOCaWqz2J9SviBzUroFX++IJXGV+FVqAAhvdcJ1kVBLJqfZ
KzVgxWXIMrzZejKDf2i/qmfOooUmEbxvhbhNyuATy/Orz7irDwuGe9t7xGHnU4H3efx6ffpyZSJx
uB9jSmPSlOG21NrQzlFVR9JJl8kf/vaXP8W8xSjx2KPDPR4ho8+t4u7fwLseW0XM8mUFtuL4ZMDp
kBk6vCXgBUmXZd7BhV6bFubIdrvIzNCLOxJWNMTwmpkTxdP2teoB0uTWZRh/TGxkPeB4z7RmWGI3
cu63vMhGZipfG9YmIzvcUqS6TJWaOsToCpWgPeCg2rDCz+QdPqVoVj6q2zHXZKU5qDLQAZdx6JVu
sut41dy4NLABl96UxCtQIQ8fr++xbciB9vfN4+uC2NCky/CyCSWSIe2KuSnhhJEfLP1w8hnTh9so
tHiuGBT+9NiGz67PzEmFvpO5bvPAHBZ62/G1TBnhnQfdGpAhiXwd3BlDZ4jDM68QhEpFSurWWGiH
Mz8GjCNUWmdwS4Ib45MoBxSdWQIMC0v+97//eXW6LNL8iqIf7x+XrLCn82zTMc8F1SDHgMa41RLQ
vHHNOeKeiW6Xxoa8R9NY8nd3f0REKBxQoS/sYuMwBo/AxvG1Z+2296Klc2f0MlWHssxvO4qirQva
1YC0jsidgukezfpJ9Hlmzi4KHznnjmMZm1Jnzc/4GwkxTLRDq3P8+8wR3Qs2yWex42kOvQLMHTP/
IEmieALyxIisZS3iZ85m6IUEiJn3wa8OKJ0C6VU/QCkyN8EguclazliXHe3weJn1Ah7NP6AUE+Sw
Ob1meIrc4xpMCUiLgv9yj4fD41rrOm9jWqqqkiL8fH19SwC6d8CjjgAA0SNB+/d0rfmYfmBjaU70
QrtnVWiDpj4nkatY3z1rYTCq/JFEPcet0AzyLW28QREUM2JLg0eI99mOKMU76sOjEhxMu9JoRjP0
wti5I8lsGLYtvSBDTNOuJl33cVrCTOUGNo078gZyx0raeR76WIP16iDy8vSNrGQN6BQRvgF6iNC3
9sthZqExBQtSIh4xzeMHUgMwC4ysaVps7+iogYyPeZ23mEi0IwEIVdGPK9oKWm8sb13PdJ3uG+EV
0HUw1+LQ4n/nWY/a9EBLOskuawLD47r8dyHlZdpx8ckgl4gooDqRcViDAR0GuYCXf6bRVAJKvLam
uFg6Vn5MJNxr4aOKWJSPwKQk3Y8RlJXOJGiKojc6SssqabKWwrUrLM682eNzhPCb7x5qvsgkGuSV
hKZMw9IQILqcczwtY4YefjnyHeHD1NR0hqaJHISmUWc0HqglIMsTpd8WdRybM4sfsaexVyoO9Xe0
c9CpPapDM+9vUzUVqooFKDCVK3OrTefbBTU+e6+XrMbbc3S3/W4Bsv7rz/SnULkfYpLSh8p3PqPv
CG1zMTwyQsz9gU39yMdsN9Xst57g9YX7VKgzjqatS//6W+xHhRL8kANz/+XEiWe6Y25krD16P/qB
9oxYSkORCcjEV2HHOS2vSo6vKdxdASHXSnwhfXPX/I3lGv47JMUcVDe6VBs+Ip8RDRWF3OzoM7/x
7rl7b3LFhv/GdxhKnupqZ72DtvZw/VBrKva3cX35Nlwt5RY3175jKoFc8cH7XuznB2lrnwxDzz0y
fmWmH7kS0cOB257glsPCa9/Hdy3lotqnYMhrb7pgTf9Nvsu8PtWLs/w3xCD71Mce5ED9sRiLPf4q
gQDg7gfIRPiBdYtPAeHKLHidP3LJzOXqTUkMWCTn09vH6+GWUArXP6V4KJ/VMmlsfMXwr1ILuFwn
a43OWLO9TEzG7np7Z+yusQYglRwhb7fTV2iZFFOV4t9IjpZuiQRdovT06y+KzrTTdH1RtfMfqOHQ
NexsRg7f1nDsy+/2veSgtMHKDbQrdXnT4Vbv8SfR7iSc6RgBPu1Ind99qSeiY+fdlHjeJ7fTieZ6
OfJttiKbp4ix3UDlHilDeIcgCRjotTS+oLDlBZ4YUOwyQtLkylhMIpHv7aEP5LRHJRJcSZTgGwo9
FwzSKhBfPpxPBzpXfNs1m0ytgOZos0XIgH8FDH7UVgctWcN7EmEDVv3DqsSiHd6On9/Ph9tvc1Tq
ugrci2xZ5E0YFaxU5/YSVN7nKV/p6IPthQk6Oc5b9v64fv4cfZiSM9Bi5HhIHhJ9bTFViva0dXNz
0gvOa4mpvEuGN1S5S2tEzk9kw/SOQdwtkUzJ7FZodovRWscCFcyJNkaqa90DBKiYzNL4eAefGfqg
Lx1OI9dcTpsCDeFmT/fiVKWXONYRbscK8ehCpkV46MUIsu4Y8WA7NUP3L9f387zqY1zq6XH6Lyb0
gq4GYia6dCt/3GKOGfoALcpVr+0XZtU5szzbenyGwBhawCPFRkbIgEgXObYbtiihilUe12dLE5Du
ISF30wFrVkY/lqmL0i0seyHVvY0dPXKox4SMbYIKKkhcEl3p9irjGHpWAK+ASWnyUx39HTbxxhwZ
kmpzELgRgjKhBbYcatK9s9vFM0AvuzGJtGNTaOh+5Prp21ZdnNikI/6c4Rr+FXTZ1Fci9/E9Fbyg
p8HTCQoYo8xEfWv+mcE7ICIY6w6WeVaooNRQmjZQkQtcjfCjdSWDGilc/4Rb/EKLp1xwgdTHkoZZ
3R8LtDAhRzoCWjglnJ3cQWsNLCwIieQidcWszIBTHVb+ybfgVgPS0KB6LOS8jh0kMqGUQQRx9/Ie
Q5uQFbxcJH1f3QO5HSFGuvDVrP2f6D7iY89ozZXI8bb23PnUBIN1dTeJdqQDQfmXqNVb72VcrpeZ
IE80ptmANbREyo6cbdDMO0PiBm7Y1u2TY9Ptx/OXJw5kZ8KNgAq672xsnMCG//g9AkQAt+YfAKp7
QTCu+XTjTc3nwiQ1IVcH+POV1T2CmWmlciswfdqHHjzlWu60doa63uTHgJ4joIbjlUHXc1BV83uk
8psH3RPleZa4r8YZyGwt1HAIgaSet8Pjy/2JaU80VD2oDdR92BWVLhbBw93ltyI9NNvUVfgOE1xU
k4RPeb4CEFR60DTzbzE4RtQpGvAVpKWpAdnXyIOA6DO+kpXOuCPDQJMutZ5urpK5urFnOm7FIv3s
J+QqU5ErqSxb82msFL7+Ih+N7WWOIPpm9mN7IRK4EelVuaGHjFfrXktf9Xg/4jYQJ0OtVdd+Oz0y
pAlO9/xq0dCoy3XTbHF5ii5sUL02HnBGuZdNDIH82+n1mBQP/o1huPmCqJ7xXmKLrMsjM+2nQtzM
++/2Uu0QpKIJEsXhRgAts90d/ilCeu+iDMOrP1AOntmtpELPalC3SesyWyokWlZZz83MOXT7R5a2
oLnqLibRssevCOTvrirgGNrHCBWpyV3G3YtLQGbs52feEz+hZChEXxzla5rydT3XWtW7PupotMW1
yXRvuq16UlvXOFNyUMAstF4devVbhBLHKCsWN9oYoVqvlSanixSAHBAiDWQBqCzWyp5EYwb762MU
JsdDkX48X3lUkaUnh9yP4PnX23l2yP8JI2FCJ1hqPeJMQw8ap1bZF6r+fL1++k5zclej5k5YWGJS
FI5oFpOqZ0+hO48Rl9vp5bgCCPFvX2sGqadhTHJVgOr2pWpvUKID5BqA9B2VsxDzee2RKK4+cDNg
bSJ2/DtGFKNnxpJo1Fv3H6gLtXRJKKqPmhJurQhGpVE9JyipKBrmgnF/F1P6uyxXDH0ZmBu1NbSo
pdRy6VJtV9OKLB0JB5qJdwvMsfWDbBjoFcdV+KIKeKz1ldMV26AOKOSWW9OPG63zCSpOyxJfmRSW
yU4933BylHyKCCoxGrQ2ipHNxdDD6c5xutPlfoqdnO5v9Hhbl1b0DcWEuCgwhcE1YBTZeZ6bU6Ul
cWtBLoZUGzn0HDAiVzF1leLEcPN9UCcTCgvghhqZTc36xGOfPj3zK7/XszMERgGrYkcuFSBv1J26
9ljWeaae46FiH3skg+laDKShJfJYFJTou3ruj8OS/cF7jea5sALsQAtmzDbpwILpObO6IpU5L92r
cMFehshdsJuY1/Qm14ebuL5+jDtbPeCQPXKiYe4mlNcC2cfjZmH0EnRP84Xcrujmp/XCsdd65ofu
ZGwKhlyXneUpd7m/fK/wtPE0LhOyhSQz+aH4cUR3UGHoiXtmAtzXbip97ar4Ic3qfa85WRPSEHV3
228qwzAeaUrcgxcxng5PfD2cIybl/CZejzRMfXQq9hxfXS5rGS6LkkWibHPDuC96IyB6TiiyDjJX
My4HhnN0EyVyVtjavjxZ0Ty81oQAoBCmNE5yEnwoU88x1zd1ZxJ/PT1fzxz+hMV6G9hR44bIEtps
+oQo2lzPWddbnxqYVSEz0UN3JM0618RTc70EOFL3Z2IzCLIY8oCVpW/g5Tg/TGgEzewUp4JGizhn
CMFaZrV7iSZD0xSwQX893C6MKj4Z1YtHFApb6zdFJqa6zdi2LkRHa+C+dalrykyX9Tld2yuW5jQj
w2lQ4NGmrNTVapIsJvT2UHvtcrLigQ49Yb3RiCq9mVaJVM//wQSLGKLGMfhk0SrrqNs29G1vBJZB
MvMHja2xt71umE88dtNjSfHCl0WQFz7WnqGRJjkmroQfpIH0IdMBLILUzBWtKn1iFS18g+DBdTu5
dtc5MetELpYAuBmeogFL0wBu/ByAEFh5ImostubcAx+CEPVlW6vsgUvnEBW0oecQ6LvBxX36ni3R
vULGM4UtCQ8/HG2S06wl9M6c4FNixI3IQ6gcdxnZj8kXmXrVZ8S9iZaL6vqFfiiOOPWOaE/wSQ5s
IZRppG3uMspmVjBsjNy6m+k9udAiNvSNziTDUDSuQJoXxRna88QyvFNMPj0gCAsaWwS5shH+QC+N
kkkzxp4rt5ZZSKlzIkwH0suhTmUkmnecZ34s9iRC0XOoZjOd3g18fxZdJ7nYPXntFw77wXcBwKr0
SKkxbMBVMgB4OP/MfOp4eD3PN5fSCvMf9iX06KHpKzFWM675lSkSzkyjNwECiroSVOxuPA/fK+DI
TSGSL3lPYVU3RBlvlG0jgmMmYS33JBJ4D+cjk2SOgooQehsawHjIuX2/nGZtRISMdz3Ygs5Rwx+E
xiJhwCWKSR8VOst8Pj7+dSlk+dsn+uZsF3mSrgMUSzBUDyo/TfUvwN1hVJ478/sIDM2g0CiFY3Nq
yCWaBUceTfPGVK/M85heWep2lpicSc+C0Xqg8kJT8/BhLoVCvRlP2hETQRcAZiIcfVYZwjvO9H+g
JcvfALc+sZ5vmVyu6b/NFvjlOziwOCDNCUVTwHGXs+S5uRYmUgFjzf+A/obttXxov5HiN/QkQ12S
remF5vaJS3AKkld4p+mEGDHKoG9n72wcng05rdI97Jb+6S4u8+fzieuYO7Wttkx3zjYHHRa957Kw
ooIABJvpc742vUikRMUZV6DaztbpSUKvPuKHaZO/IhS8xS2i2I/Mk368vjAL112QBZma+JsxXXko
Xfysc3+ahT1D+1O3SrOZF06R6W41IjMFd6n7AboU3tKwCbi2NVOxnfm32Rq+zHItavwzi/5GLlf1
HFrgqPlhGMcwdBtdRqvl/uU4W8CxVYSoh4/I84uatZP9wRDh0NVvQz8NtteKRlB80P3266k2ejlX
HI/8iRjiv6NGAVB6jHzTSlSdgJyP/3IVG6gGVDmTUgE6HVRXgMHcJSqVIC6XyWlMY13+qn8Y7n4+
2P+X3rXutTHvTB971KSC5aU087sgbENfCGxwSV+vL6dP39lo4ojiRyjzqb/Mv/16WRqT/uGYzp2u
yAsolyjjvRlknvz+55/3GSfd5B3BpqZNad/nBCx06o9CfITqIU6sURaLEh5HaBvHwNo2Idtcznv8
+Pn8/11B5mibHDhbw/xznRORGxvC4+GHC+rpV4oL+6bc47l4LJb3vjaJkrNgRxRxgyiU28lU6DVO
vX7WDOuNYQ/eJWJ7Lh8Iuf0+RdzyqBwvAyfe45olxZr3tQdUX+HyxGTjLsVq0Eb7uADfSuBGoYFV
t/UssTn93hXZdkWmnuvHNogcoggYpOB3p7ves0PTA45fSt92zaB6D2XdV34kOyZC5ZpoKQQ97N/h
6Nn1lXMXNzr28E1T+lg8q7JTaaJuC911RYf3l9M1YzjsJQdE71Gr0MNQz/kDx2V61vk2TWv30jC0
RCjdpMoFAGvf+4xUD2tqO5e4yy7kdEVr94XYfpT31F0q9Bo8qVnPrrNDkaEBfjhunT9wyd1OigVE
6MduuAkRZBj97Dw8z7rAjZHRAb3PGIUOXVyKjY1FWFh+J5oOhw8SUDIlKktCK5r1xp//1//4w6JG
CLIZMUi+B9UqSzkUbWReQV2Q/QHFidaTxp4ZiLsnbrEmpY5WI8pPQOYu5bamCQRXiRU3MNXonY4S
mR775ozJaEHLmZSj1zvtSgSSvha50Lt2vfybXc2e6ZjE1CvebU9SbNuNwhFuFaiV+yuHtuQOv8h2
gXKw+WcoAueforzJQa4Ep7EASNIAjLaXjtUOf/p8mw1LSB2craKEa/50Pn47PdPBoUkRnbA2k8N0
5wu9RtPThDHE/FFqUDkhHmUiNzfT/p2eL/JekTM1BtCWHjrC9OK0vq+X434SS9/UdAA7wecnFDa0
8aKsmojLkeEAJ8RjUWinf8/0JP1UXf4AWdC9CfGEaACMtdkYGQEkVu7ogDehxEptoSxK71gfvbIG
d01Rhz8b7lKntUmrXpuozWTCWdkeoiBDaDsrZjSGUIQKwdzh/HS/nmPy6f++3s4JOjZfDEqcvT9u
XFmXQulX0epegsa72hIq5XoVd7/G5czS8f3OgXK7NnZiqm67L8d55Vcm+oiiTtDdtUrBQAewZBQy
SzE9x0MuxU+o1rCj5/sbRDNnG5xpFDv1UBExdGyGjaOnQM8YAHjGPu4csyHdq0Nb71SEiFQKY0QW
PBA8g7gInFJfIHBjy8T/MV/tbJb88SsXAZx3oXohwMf1bd8ZDL10u6Sb7jgArXr1Hetw+Q6HGgE5
PatZKX76gXtEYWuc0HF6+X1EHPzfMNHfwOZhrsH0aOHz+foxojYebqfYQ4m7xqmHjHd5f/14vO06
SFvvIXNW4Eq7xk/1PY5dJz0z3tdN6NTmPYorMN209Ozt3kUMoZ9nf3+LKE9/ZAudFJYqpZ4kRmb3
LB5FjRBvOwpPT3XNUbRl8czGHtUti5YJP1SVnVmlrl9PWgI3ie/lpT7PBscvQnGZwiX5bn29XYnA
TNJFQsg+ij1n6DaeBcLKS6kgdAzN9Zx/RAxNthJ1bzY++LMLSHlElRuojRLKf3tJjX3ohLARd2fo
YjE3fpQryz3H0DRjcxiyJwY4cupibhxXpR/S0epuuy/UWDJmKf/0TCePBj/QWP3ZHo4erNVn909/
/tvv/58//oEGwpxoBPzWvpYy6JA+mXF9N76s+/fL85fb9XJ9v0d96pV2Hlihpy1SoEHPnxnq85FB
EA8iYvVMH3+JTPn48vuff/77OyMaAy5hK6x10+zw7XZ65RMrUKgTGR91JG2mK+gktzOPESWJg+7U
Cc7lCq29bfn8b84Xp4PmulcVjb06dam76NoZezAvUuJ40+2SDnrbHi9or5u+ZJwrBqBBC3491Sly
sT7/ljJWKP+zqVzhnR7Ym7BpbuRKexddT3dFM8aBs8g5JyfJbiz70IRjww8hOT92gLH7qWmAmBu/
H2OXIkiQzAtN6Yc7enuqXsV6BF/5TZlKIXSRiOq6gT1w4qrXm40PYMidR13P7EwZF9Dpfneyydjt
4kH0+42T0cxxxG7BFMxTVG9Rmnm5HpD7fFy/e385zRwVxgBeTCrKjVnYGdyAty40zquIDEJNFaZB
TKNMgimFNN5jFdvr6RKdNlyZl0HRMoiXq3zFpWj/G4gWKCiEyEFKtqan1BPGrlWldpNY6iUex/PM
f5lFInTVmP2sh83mDy8v9/Ph/iUia13fY7fe/3xnSEeZCpIwXvcCOTM/uSVL5X/80//Dr0x7XKc6
Arphjpx/jJxkXtjz9QUXlNGls1pjUKBYBOjLitZDe76+vtIp9xqX8kaDVpu2/dXTrPT9Qk+ANCGo
g9G5gmLdED0UOYNyw5/sKf06X89l5rHcdUwYRSR+N1u/+Qm37RJ/PUUiv0WW88y1HtOo7lZBTzsU
G0NUvaP41g74aAY4n8S45gOdSSbZezI1a/zkothTOUiC+EL/qTDcAZ1e9Atq1b32WXJ8YmbBLWBK
RnS7FuU/zurX++UElH1/n18KuJrfDifmCXvf9tQJ3dkft8PpHG8iEvosTxxDMhj8DH4UyJpys+UD
9EwofNqDeGn4S8wthd8Z5qL6pcsUW2CYArrZqBpr12CF/YPvdDW/ANt2oE/MM7L3QzqjiAD8/nhw
s2BszSgdtR62xJ/rUSX6R6QQM2hUNgMT6a+F6rNy8suqS9KzIe+vjsaIzsbbp8P7t3z5itmWaZOL
MiDLktl7vD8f3mYhdQVxQjuBDO6OB+BemYbai1oTPRkJimo2IQVNBVaC7jp2U+VRgQYR2K3On/n4
BHQOE3NbH/voQhSP1QyPRaG7aLXpHIeuyOzwOi84ankMjaHNxhwGlRV0Sa0ZGbUGXXDUhVXOmOyz
7aQ18pbezLdDi4ucfTSxtxsE7k+XWRf5l3/7y58ZFmH6PY3RwrpSlFmWasWJ23V6jHKD7CVIhlwQ
oFNkt6DncLoq1tCxsoWOnRVwxncdKa2QxM+J2REyPipVq31P8Jo4xcKgCBJUKHZ0exHy0iC/iY4O
aT1UWARg8j1FQkpWGucV14HQt6X7d8z9I6YfdcylNwvaY8a9jOri/EeGDlD+NmTAqlw8g1X3y7yq
3/38+z/9SbpGBMWZ+HaOQSSOM1PnHVrFJsuZ2R++wyjxc8GWdGSemRKtLE6vcuR5rZuDxMjb8dM8
8Mvet21QaWZ1eJR1dpUMKQyBESMRM9/uTvjpcHn+vuiNjJjSfUZBrA98IRkPaP6v//l+vH1n1mr7
1sBuO9xgNECs2SF1gyE2Q6isGy7IcAu1eUnjLk1aM5o05vcKEnLbKd9SJd8eRcNhVj+V/kmsIcGs
DvdWSZ2GVCMkZS0R4yxHs3apIN8c2pfb8QjlcXdkXr7Ua2UOEsH4ACCzNqwmZBlNKPTvZAnf3MFZ
zey4wcLo73c2AN4PZ8GrYBCCVvUmK61MFitjaBv4bMhsprCv1/M7h3NnsCsMc+x2b0sTrPUeufQk
E7DXynWfVS2gmAcw9B1gURA8HQRzzfh+XrwkSCwjSFyf5W+4DvMIcYJoAisMgsxdEe7Fs9eYvib4
4XaxtKd/14MemeeIrIkYFtF26PE15iZd3+taLoNXzTEeBzbkKKOQMQlN3/nUd1FE7rLDBYqdlx7J
smI45CQC1u+HcdqSUA1dvXqv8ulbD6RjeahheCieKhTVZFXR0wUwmrntN1KCl4P6SbNWi+vbjSRj
YV4h8vNVjqoiCv/975ylqFtLcewZUMwCEDwgqlFC4//p9NkJKrfBQOiYH32D+vRz6Sn3dP/H6c5c
r+mLSES/kI8bix0YhjsRbuuG+YCMZDUzXA6GxeQPWt9+aCITWX9q39MeV/Pw2wy5ibEfhtbOHBmr
pMGrYKZFpBmpXC2JjJfnL7NoiTJ8q+/tQ/DWuMVBQv1x+F6ulxSwvYiSXWNVNOacaOVl1dYyihUK
VMfwic3I++yuGfsCo68gSOieh4rh51OfyWBR/7jNKt93hokP7dO0hM6OnwXPvFxr92w1kJgXdYkh
TyFq1yKLVkjJtQdaAr1QGqlGEMPTGQWSJ9292x5whxhXFC/pCQdGK8Hq1lSc3lnYy6E+UxknKEq4
4ZkZioN5+H7qG9Qb5ZR5RrhNFnajcp49hnZxS41Iuzknu3Xsna+cPYFR/1Ojq0xji0Taw7/V0Pea
weEglFIGPWk+HdV/z2Ul+84Fg1ClvsiqmScqD0xYAyd0FuySejjD3NA+oEevkbXMvTdu+kkQPb1m
E3ve6xvADROihNOOdWzdjucDICUL7VHMiENYClzILdffHf3HEP7xuLViA0+LL4LRfnGZdwro+HZ1
2IvALM323ziaKGYV70umIaQT7nnE0OHYARGsgrt7NT3cjjSRxKapnmShoEepoS3U/DMwd8bQ0dSP
rrQPDLnFGMXTtDHeTVSWYRS480PkWDr0OA1zQ6aHt5SBovckBGAnTLTZdGYIrYTck7yEBXjMglB+
3M9cmCVO/UhpP2Hm9Xo77nDEYH8HkaWBvAw7No87ESeZMXSSD04XBqZZaSPH/US3gsGh1hgrW1pp
Ul7D5/M1AR5xdIIFB9akCH4pr3IkwguEMcoY2UHte86xEdLb+f3+xLUz1TjIE70IS+vY32yT6Y1n
ZYclxSQDIZUenP06Q+i3SltOUeUcNjhWgNMZEPcBkbyKaIYRtbscA7sqxrmADwyrgrz+s0PHrPJC
IPpspWjqj7h2Ce7XZ1O7ZAsqIqniom20agd7QrlRuVLc7nI8M9SDIIZBr9TB/UAiI6P+4sKI6CJS
uXzjsvRvb+cWIpkonRGKIsL+fGKGTHFyFzY2tskol+tSy0E1TdEoR1fHc9Xbm+ZNDuPGHlDB1tH4
cZbAjKMRcz8LHEa28BlDKvRgqFjOxzC+0Kr/rFmxLzkam8DYB9/TWRiRO7SBunE/jTGiDccRk+wY
+155Lp5lW6+8E7gew+OmPnkIrDnWGTJsmWjZJ7EmhjP5/nVQwog5PeyLi+x46eK9j8lxmY8bajY/
6AbeI/IG288OlM6WcUFt89scwWqi20gCy7DYHY6LG6OHeo8BM02iIV81cBPy5lSb0aE28X9Gd5z6
xFL0KSG3TQ/TD+UsLW4JTjv2rT67L8rOpBLj3gLJQbH02Lz+ctqVqa2w4zEuKkcDdvs1XJOEtkAl
CufEHNPYN0dazrYjI7dyBEUFPcced0SYDXaDYmPhR+xwjVA+cpxP99gfY3EbMUtqj8qpWl+j2yAd
xUuKiDIAdzr/dn5JXUHvd6Yry8w0BjHJCabfkUyq+4vcSFguT83sE2CVnsOocrj3XsfhITX18USN
B5GuyywE1zlFRVx70wkn7qgdw4mTU8lr2/ipnoryzKzKtavSzfvanyI6EbnarfdrXz4gDr/2uRIj
xxDXiN7SJRYDhJjk/ZeZ7Zxn1ixlbqLoQyX0d6QIVCkc/XqMfUeBU2Wis3apxSGIkMuhUP3MlHam
JVOK1eZ0u6qwK+WW0dBdP0mgMdwYfQoZ+RDssfzuOMeJYj0Q28IczgZX/cDxDz4Jrae++gHNOSPG
/PkItd7ZAZmO/+3A4ZxplJkMEV4zDPyZcS4wxCyjLFj7JK2IJGC439foOMCVRc2JxsRAVULQEyjs
gYrdgRIzdbEYupgz9CSmRa3XNRhxBjaJqBNQp86E7MPUjT6gmvns/2BxdYcurm5CfwHoguf7/cah
hnj0BgEZKQdgjseXlD68p8Ded+GZWlBVoWkKrjiIlpfKlSkYgjd1F4kpQzTkbgUMAvNsgQ8rxBc4
5iW3Zy+MrOuCPbagQ+fr9Z66TQjNJVQP9/3+JT7EnPWXwCekxjOuRrdNF5FfNOQVgzL/6XSMuiIL
OYwcRhvIZoTpI0L5jHVfSd3HXhA6W40Y2FH1oIBfjp9m237pY0JDiUx1YqLfAx29IH7M1IdQNmgK
nDZAg+CATWCbM8eCQbmnQ8xQ/Xx8Yttguso7jmpzV2iWlRcmrZKcCDmyIX1Qtz17ktTmq5gccqwB
VHYWuuAB2dGA0yFtDdCTJ2IzPOi0Q1FIaLaYnTOxEe4iFOFsk1JS+uMSfmRvTa/P6/0d5MKsjT7d
3z8CtXJH7B3O/XPFgIXj2QHJ4lDaFcqdjYAn82Yu5OrRQ0O47zHdcpVOPMi4w97cyEW1XYOK1/P5
/ojV+4dP0UUFuZvH/3w/fV0zOOe5PyckeOhIM3MYutdvlVfhwUTOthE4VO1gnz5fYz4YffVTPyUd
+jnNwhdum1X0ncWuL7A3llq89bxAJsyPAxjnPDxyd84145E+BFabzfPFkZn/pmNk+096nPgcfSBL
/nV1mbM9cnqm7xIRUUht2yoWhFx6MZflPXZA5Dq+O1QSh/rMvXyfhcjpeeHiyx9hp6m31qzmfqev
0dctxIbq/M2gBTrwOKMvNaPS/y2SpZV6jxMpBp+SpBc9Bwhl4Q6ChemxXwDb8xCMTPulV4EzKlOp
iqppNkb54sG/v82S/lgA90+P4ytNt8jRHZ2DKoMjvL3fv6RDXKaT0lw9KjtEkHZJNoCHk+Z7btND
A2/s+fvzmT5UTXiiijoHDkj+0SDlALVHiFV+t33PzmMQjegeUbmSpG6oELHtY37MrstxuFWOXtMh
K14gcEucLYJzg4HizGAib3u7Xmir0SPdHKVk7nlltBDAxaQO3lPW09fDykBxP3BU3cY92dOGmF9m
V4+EyE1TJFpiNOm1cxt9aR5CG4wOh7njc1W2StxPAvnp80f67pBSAg4Ovd7cevs3XiFBqrNLP1yr
2AhcFmf6a2jQ7DH96B30M9T0k+nvcLsXE+BHhQeynxEq4Eo8t+Pb+TCbjD9APa5mXVXNd7ooOCdF
b9O2Ne6NWrNHg3SosAfQI3S2LmtGJNyZo+oBlk6wcMLzWf96uL3ASTMJZw5BPtmY42VzVnWBPCgK
RT5rei6M3WKgOiYrq1sL4HU20I/Rt0OrEKa6tKxCwKWVozquj4RQnpErG0NalRcCiIqcVMcxNdzW
o3rp9Ct3dRX2tH3lkmaAMhUgLmMys1pIH+77kB1eoIm+f3w9JRTXWWNelCGaKnEznuhBy0yg1X4E
5Uc1+XdmQED2ixPmPXHs7LKnl9RVcqtT2/lwlerDytVPjr9E73A/kWj5LWK2NYyTT421ARzKwoiB
8WlxNAJTSyIXIhKn8/n4mW4343E7jdI3oLL4883RD7brwtk+1lTfLwlVDBXqV+P/09KMN7+Xm8Ai
Vb90Hsv4mCZ0e3+LWUIfv8v0jVPRU/qB2Spau/g3ToKNkmmxoxtddNdcGGJnSsn7yQ83v43Pka7S
o/sy2y6H2/OXWKos+oBwN8Ih/bQtvxN0CnSJ07BS59vx8pK8ngtFxFUehYC0w0Cg8WKXiBswcV7f
rhD5QonWkiqfplcx9NRsgsrpw9W9bMlM1Lz1gRRi6LQeNvH+jSpDSwPkIAHH0ECxRpolIpEf2aPN
uszn69PiZUnpb29MZ2bniZ6vyNhNTjHG2e5xRVmsqlkgd2steo9vDVUHoW7qixaExGBsgH68S08J
JQt4CKyb0O6OURZ9P1ceuz+kOxr7JaXoIfPvx3bbhNdSb5/XkwClTZ7zlWZ5QYNyf5CTv77lXQ5m
lBCMnFUN/xWMZlwYEVezoNCs5/IWTb/b1z1OEVQqgJ72UheQNygo9Bj9LT2CobYteO6CMyYhKuZ8
vZ2Z+GObs1kxielEs8p9f78/vR5f472x0QmPSlinqG5MubNJdMLud1l6i5srjOmn27ItfhLc4ySe
utHTVnHa7cxC9V0AsW8JtwcyOtlXgsGkB0gMGEaDTWklmtIOpWyiuNwuGnI4Noqxy7E6ON9XtJfY
1nkO5WqCr27DdgTGhYGIcSr0SsyCvYThmpNHIrTGOs13XR9XtmEPUrBkaNHGDGWzMWYHcmFErml9
053tBz2FvteVFMsT/Bzp9zz0O+FtjQ/B9HDd7o8tkci2tcVyAXp28Voe/XZ0D/ei4cM8g8GNkYuL
EZ+xwKCIDqq1Abxa03stYdQeL5oMJlSyc5epYUMbl9Cb0EI29n8suECgaCxqX7602DVqZkF8GMqj
Gk+k12aetTggYuY/G8H2GCbLwA/XdWbw7Zg8TvXFTKChKIEhYUhojDa5qKXz3ceGTs/HM33/WLDE
+WY9W2HBEnb4aHWvuVEU4j8SAUGerFl+qyTLZUuGnA85Q5F/D7+3Xfqpxn4nB+pyCRjfZ7tVVAYc
BtXSIDxzYkfqXZh3k3I78s5iH7TPmVuenp++nu6n6I6I8oUu7sUJzHGloXLjNVMusUwxV9s3HVos
N+vj9KBjbQqjG1lpgSk8IC1uqPR1FVMS0Zx5SKa/f6DUv9RI54m7ejWGHppzdzqIzu2ZEzkLqi7i
eU4AuVquZoiNk66XF/rGkQME2qcpYYVanHHEweooh+efTTzVMKm+KI6GOp1WLswlvLJce076hi7J
9D373rHBG3x5hwacWaQ/5o98Pt6S645TaRVyMEAint6c3daFI99I8Oz94hvJQcpdlOh7KTr8WuW7
xhUzA+QEDHag17tc3A6yVL2+gN1J5clwBEmYbFmhvHVcRD1AKGkwjVmbnJnpJZYJ3/onWYWk4SRX
NKbk8QIYUKIMGQVI4NFYkWZ2nJrt0eHy5oriewdLQcQgQwET1AIZL7FEhh57ngnKdBzXECxiMXS+
fWhcNGM7lE47RwkR0Jpeiwe9g2HiSgRjepRUMfUdtOk2z9J0fBGgn82UxaSdK5QviZReWj7soKux
18iZ50R7OBxKO0OSbIfgoEk29NrBd5/3ID3vroe/e4w7CAZX+RmfLpl9TrskhGLlzqzH00fvxIAh
ojWmegVHHkuK9Nv1LU2SHOOp0iTHe27H/3yfP8GotFMdhHTsQe04/AqvNCFzWVmg7NLszKZJ8v/9
vwsyxf35djxeSne+9Odl//P/RlImqvWje37Kmh6YD5ElIGyyPBcUwVMTmCEn0oCz//9P2p81yY4j
WYLwD/rEW4iNAB9zrQqR3CYiqnvmKcWuO93dKszNvMzM75Ii898/YiGhAKGH9Jye6Zs3ooMwLArV
o0cXhJ6DqUTiabzMNUXT3b0ytXJxCLsMQR7rpXMAzmZYRYJxfoSwR+sRosfLqLQwRoKYMuj+BPmr
QeJzEKfxO+8hxgWJPB0vXXq9oFAvdXl+nqb0l/EZTKvPmyNDLGM1Vgokhsm9HX0JQygI808+/na8
x7/jB7vi+t3yQ8Qfiy81T4ueBkndCsIPxY4oPLiO+9Bv7cNzmO+kBtCT0HF6Mo+V395sC71/LhPJ
vMkyPzRl/l8/nZ/G72BhWVYCy7KWt/vBdyu5gcr5OJWhNVC6PR/Xm28N+zEpyFeukixMR3Sl+K8l
97fxx5dLzKvyEwOb41R5n9dnlsTg9n6aVCNPjsXRRLk+2Tg1f1pRkiYJAFvVbU0sDeV1hbfkswd3
vx7OtyM+B5eFPxSQmJYW86xTeHmcl4t8nJGRUbnV0TItQAnHQbJ4eg+iIenFjT98n/7yNP3tdTy+
vKIblDWJV1E6SM4AR/e1/JUCWapNA6u5eWuHUjIl92uhTQB4SyCOVumTucXK5fzD5+UlpfQ2Xl/G
LcHsVWuoeOC39/HRJ98/PdyO/0LXLgt3iN0Pq8WFi+LLym6bFyXb4ZCFtj6WCezEEj4vj+N3sOmD
21K7SVWCIfJOh3qP9dK4l7zj7uYZhLi54o59+8jJZej8ephbD5YiWwCloTduxy8nrrdNHCmfd4hV
DtyqsPmYDpvoa7XQLvz2+Mh+sJRgn/TWRau1YwgUgznaUohMqhd/v/94qG+cl8jj+SOlI21cPF1K
ltuaKJjisAWNztNlvv/whvj1cIVn67KcBY57Pa3xNMZH5+8c+xfXRzSeZC7f2XfkiWYUSBsxxJnU
XqMUfJCTppdb42xiAitKeTWrIYI783o5PUGRykollEc2jSysm48LcqW70BJ136bqkX+5IW5wlvBQ
4pzFZ1ZxHpNQy4Rle5qZ3hLIw/sRiA6RQdlEOOmk9ugDomKG5iYtkPDpeNvChHJ1OUKQ83rwWTmH
+NHZtxSf/KLrwWuXCcU0x9MhFJxE26vj8AMxsDcZ24d/jdfLw/XjzH+cskUjBlw2+e3yr4cvHy/G
DEb2/Mcpf8Z/HMyJTvCsnLoFU88DkFjY/OtDZ60Av27zxxkN3/3Lbd8Op9/GjW0zZPL+GvbNyWsw
eZkHyEJR/r4Ev6/K3zeNz8Gvp2z08LlZqLh6+uDwUj5WfJ/O739zALAATURHLYd3eDw+qYe7dx3B
tyr/OI3zF4sHR2/I1uvF5JefK/A5WfrgLcvq89SrD03BLWMQUFZvH5hEygcOk+iXa/t6/H70+J0M
E772R/l9PZIXHD3HfofQmyZnS02eLP+Nyd94QRaJi/Tbzn0z1xwNiYIU6QvD/0qXf4W+STxZHf4b
lb/xhyvSzZzcQf4bTb4JxXjzaiz/jay/mecm+R2wZD2hH+M8N81/M3DrUfw3Ln+zVBut5cs3Jrzc
fzDd6qKUDVlMfQZaRGLj98cxPMU0V4hxaC5eVqJqMhqekNuP4NZ60v9yuYOrIkob45pXBWn6oaVp
vZl4+7inABm4acqV2qKt6QewiWQAwahqoGkNMVRuUTcrVX0AE8gnQLyuegQHBrDlAH0Up8P5+Bb3
L3w1gZjkKX3cL77z/eRuXw8MX+2vT7p2yftY0vbToA+vx3u0BIE08jEAbqQ5J9EWGMb3SPWpcZ4r
CsUwH2eeAfQsqy3mI2hPm+fDUyyKfLlePqYhQ0IeN9BcletBsVziNC/jebz6ClbP1dwv7K6I5eOQ
BuCqXYkRjBi48IiPncVc2RuAoifspj/l1mDedPmHHp7YYYe8tqCQ9KyRMrUXctLyjyh2hp0m5yZz
m/P87e31cr2HQ0RMsowIch6qW4QplRjNknljvyZH34Vuhd38YvTHzQeysgzmhfHLInMZbG6iFgoq
J0H8ejh9+MzWwyTb89S4wVw+xVAylHxhf0ofZx/WT53Zjvzi+jydQLGLPIQ/6C05MpacuMcaWixv
k/FyNPn4T5Np8I/2TZiO6bkUNivvlVpw5LxT6a7k3WcXabNcEn/2y/Flsi53eFxKl7c1akf/GlaU
Of+yMetqynhL5+0N9ROxNOzj/XR8DF3IF+nju7XJmCIxD5MJrbnsPTAnt9dxvM/di9hxyAWlxdhE
j8Vg1MPb4fabJ0Q3lFmfDygD/Uql3vjjzeosWK9upVQv18DAhAxn8LyQjK355rGyt4mksJ7mIpbs
fLPqDuapL8RxsXDbl87lgUhZbGOu7Ez60g7YaoBE0vimpU/XO0tm+G3LgiX8dRNL35HjeYyBim2l
Zsl0cp5kFu3j+fl49v3UI6JAMmG7lqSjY/Qhm82Tk1nu7QJVZ/Xt/1uPTLaWOQwEA4TakT65Q2ef
t+qfUnsaTwdWnbn8PQnc7jK4myvMCkJ5E6ekZI3lOVY7cgygjJdx0VrBjavNQsL2N8kaBkGMpozJ
5bWUTv9zPX5/WDbv9ng4+bqF+O/ZyWWVStwO9RT+02yJU87Q19uGHlLLHfDuuo8LKiEyZglj+dbj
7/5omPCFD0QuY5CGcmmBeSDvUG3Imd+qZazgSg+zT+Rjev5FnKfUlxhDX+/t5YX5rVJLll1MavHH
ucRd0TjZnZU2UIGaAqi8vOM5z44bK7vtWvmYkVa+VI+RVdasihZqyQrHh0Mvz1jIrSpBYXI9j77N
yeE8+qDJtOfXHR7GkNUfaVFDtPFkznwn1XD8rOYzhYpaHifeb79Y5adbC80jH57SkYWekqheSC6i
EDqdeDq+GisL55On9i8/UhCFH1BYAiFUblS8mNOVmd48jz4PSXIE8iS/jafHi2/ofng+XFnLqBQ1
jaHeStQaO+ETHwrxiTfsUC3z2JC0E5dgJGOx5CwfXsukB3UjgP6MBzJkCxuSjc1uuM4eYb6NpAVO
vo1e9tlbSAB25joJdJgRw4RpPvzbK6k/xwu42ERGg7GYKzx9d2sM1weqV8Jre5LhHdj7IUqeoPbQ
Q2+R8+F0Q6BMqhaWnWT2C/F2ou8y/v+C1WThXT7s0BK7ulu38TSdtX+IaLbBk6nzD1wDzN8T6iCn
9yRT5xfKnosrr2VfHXV8cfA2vh+uhzvvzPdD+fspt+TpafKmYl/zhOv4ITqiaj121XYuF5/QW+qz
GaSFHWHIMiZDZ6LpT41cKexG2ZY5A46Fz0sdpwPjPT23IYc+ozElwF0eJq0a/s7KY9+i0KYtPwaZ
aSgf3hhl5aOXdgYf5/ihT+TxvizvMJrW2a9hKWtj87ENXt0MeuX/no63e8pFwGdmWnd06ZGWd2Iv
w+jyJoem7kOL7GA/JiJtlu7dxC5H+z6d8uHOby/xb3xExbLGPQC0Hd6ccNhPzU5JyiYAEi3J7Hxp
uSzVB6t18jkFgr9GLPlxL2gZJMEUbjkd6uLGR12nf8NPhdxJ1+C0s+U9nIKVuG/yb31rcZS9g7yo
Ifc6/jFg7MW6e30eiWaGLxOpObvNYzOaOLQeQsmVhk5qnlXRFL/pEFHTm4zN7ssqy/XKer2zHthe
KJHPEAWS9VibeNdQ5987e0q0KOXn43UPp6xLksKWs2HnkG9neL5Iqfm1Q//UECs2aq/Tc/bPOZ/Y
m0WscReeJkrAjaN4kkJkZYfsqA2Ky5Ksuu0z7chmkKKVOIfQ92Wjdb+fA70Bfg4r/iRj48+5XJI4
hLGFisFBGskb5HyAxtOHJqnlRA34p58RJFSO+CLhjw0FxAqSIxKQEUobdn/idkpZGh2FN0rwG0Wc
kujzuBIwbE7FuZJr180gFgwjKAIx/CU1c9Ljomv+DXfLEFY8SFaS03jzsVXtZQvPraku9o5YctFU
1joEYQTH+nP3Q+VZkaB+7X6Fv522PTBBYJ0LXSw5pMievC3DYMt83j82IbOWLVUU6xA+gnUY30CA
hgAEs1yrFe8X4XKq4tgkIBSFmbFnZiQAj+en4/hxDJ9EpPrwcUwZ8JBTlHLItCKJJH0cD5j5nT7M
ZOvszQZF712b80v45Hj2PSjLf3r4co1PqD2x+RlBHHNaE+npGHT/vy4TEnq+eDDN1S6EUthMTkfT
Phd7HV6uh/fX2V32SRqSHyTnFgXbHKdhhOl1Jx7Y75YXgoeUhBl1e94BLi9kbqFGT6T49un4lc3e
VImtpj+s6cd58UwSY8jUJ9y3qEcIPy/YdS8vaDY/9h8BrRbyPXOOVegk11X7dvAP1H25vR/ObBqk
Slhu5spzqggzjOKFMN8NkuLkJTwyJvdxGuJxZIyXH6HLm0m6K6aJ+BKXvVMZdBkmiSsyw6C161gx
pJc7Z4Omn49wyreO8e8ZdvwihC4FMpnyH6HHMvhQS7J6t3Q3mo8hFQb7vm/gt8kF7Bc/LX0bV3A8
T9p8rl3gtyIPFEBAvxJryWsjkphJCLjedspZxf8kucg5xc4YPQxyeOC/c1051XTWfWe7fgBKx0lw
+cjd5++NJdc3p/DOB/YStC5/VK68LWK9w7zWIQmmvV3CI4XS4y+HlqXSK+Rsul34ZnXlmoe1vuPF
03Tgl+O0B37arrRQhkoVOOfBFEoyyVXLsh3nKl3+jnZDOYm1pQJqtisELhXl6qGfTETH/6bsSfat
WVIVtLNGOCTgPbnDOR5X7Lbhd1uT+OlC9F3H+8c1lb3Pb+hiTaLJqklt9eqa5VPAJo/c2qDZ7cpE
TG7EBV89omnCgyWFhvYXYALwx5fzzPS+8QF9YvJoKdWMth4eT+Phmh6oTOPzKDpYQFMqJbPWCryA
kSR6krVpXKcmVQgEzFWCUij7SZtr12tfmM/Pui9/eK0UJC9pJPGd1KqbzjjRo3tNkddK+yprXWcG
POsBDBBVGa+NSHp7LLHEUIU/tIFY/a5ATdFp8kTQNJkbvwyCdXLH0Bm1ROcW/L7oC8iQzm7efl5o
rCwdGtO+11/G+7cQ/eEKlIMhda1rNB/l0FktJTxKkTeRPFTb992g7QAWQTafMOVNr0fxNsG1vJ5Z
FF4Px/CE8uQhjpMqQMhxyAJJWr8XCps/R135EirBIDchIYHgU986x/k7oDQ00OvrCwBWLVsOnNHC
uQGIXw9EJl5e3u0jVUCEDk7uAYKMQwklBgYy8ou1pcFQJVgFuy1KkJs860kgtAabJErxNmukxwuU
q6BOT61k9ORCUnRog/hwewuJJUemI3dAAgTHFH2FCXriFa4kro1d8HKaziEWRHy5YgerJ0AqEEIF
qvlt/PEQpDVweewoRGESftQr7IAdg9u+AYpUJ0qdrQpLDQTQAQ+VgbShIj9wSPxRq3LYmgBYGCje
I1EauO4RAvD3se9bZ5s+XpSnX0yMLU0++H3cQorKtfxCPZih6y0Pmt2Kp6Onm0K4m+crS8i+1uSi
4zV5dfFEecg337j2+HSck6/5U827Snqtz1bVTV6e7rFVJQmi+a3YtbrjsR0h9ohgkfsWHz4O2UGh
SScgF4nDTOptC2XGiyelXwm1fbj64pULaAYUUEI+EJJ3SdUWL9rStBgZ+i1gc4YWvdeLTivIbNSL
NSUDxSMZMtmhCw8nrZfKUwNStHBQE0wBB7vHDvaiinjDpWTpUDAeZ+zd5l01H1sjZXWPlxPTZCTc
KtPCWQt3/3A7+UZu0z8fn2Lv+Cji2+axq9KxC50x914az76m0f9OUOv8YF3p0sWrayak7TSv/Kxp
3ZJCifNqixQJE1B1HZ8u/JUWLW9XS+v6wfEqWpcek+GM4KxVpo0LpxH6JE3/f1Lm/BF3gDiZPSpw
bU3J7DVYLv5jjSiyiLp89nt0Cy+P/Bps6ZLbtbbkJ0FhRrcokORO8WpHly5xVyv7t+PT02RDL88B
ZvFSYVoqYHks9R6a1Htj/MVf1wPzjmcYSZYaac2mCN52GSJmevGrjRHddI34K2TLW6A2LR6vjon+
J8lOxfR5bWxkaTzEFlT0QoHORRGPzwvI0K1sAx8SkLqlWWa/B3inBJmaGvBSc8BbYGVbiK7YRR43
mCoiVRxBvIX+Ux7ZVnGUYbVnvACSeFBAxYwdi2Gd+fSCMcNkS9+Cl0RCfXHGdFNDM86R6eYZxFOX
/FmDruAFQptWID1zjoNxFrN35KKZpVH4eneiup50DttcK2xKOVoZewv5uaFo5f06PnzfCsoOhYs/
P9M6oy8e4MrKhWK9MBCCVeWm7Ih1AMBd5TqsoSt/b6Qs7u3aFqzUIA8JSVAzPHHWtyn/8DcosYpG
NVWbp+aNImkEE6LkDQ+XPxjSqYW8kV7cFX4ztUK2fNmAqI7mvsYbUjqYVjRtjrYC1n0AGRNUSPmN
VKLlEsXOmNfxAECtLCnHtTkHeSLagsjKdP+NEtgbJjQv4WyW9Co//1uS6JFXmh2KWoSzDDfjPH4L
A/LnR9vriPxq6XyCgBR0u0jM5MHAsk8iDIQ+F9I5EJUkoWu3VAoBXHK4Y7FQlBu1gJXlb6eVQKgn
n6mf7i9mSrqSIUiOjJvc2R5sReVK9gX1DlhAU8LzFcZMCR9fgprHWFvx3uwKY/gkzYUJC5170g9h
vGFKv7amBWbv7Oyz755grEuT8CiT9yB4DUA6XxHXao6/A5VHItg2E4kp/g7i9n3rmIrJ8vjImJLt
UiV5Z4TYiMkS34cQsjNfvgsVaZlVRagF1Q3OPfbMgLR73nenFr8h0Vi8NylbJFb0gKM4xqITr6AO
IP1AlofXcfaKx+GKXNPcnDfoJEKuFwli/Kpcafs0n3rAJx00ucyUmebV9sv5+Hx8PJyTQcFAgDBF
JHE381UP317DewueKT3eHkKdz3zv/+vnv/AbL8pxe5RUyIMFIoJhmMLJ8KnJibwlCYb8QZL4qo+a
uy71EAukeuh9Gj6L/cL9BdF8ow/aIiuvTwy91qCOQahml7DI6kcYG7Tr43g68e1hSD8blZMP8rR5
eitO3ZXtcESqOTk83h4e79fTw28PP9hDCSOQegrvTqbnMo12nVU9v3iShh/LC+YoZm8ZXil8Rspc
SIrE0/XyHgU8FR16KzI+P4c33lAxwDR9UbT2MIIcQozvhFdjbiyvEE/Btdr06F6JwSIJILUE2erH
H88AMKa688OooiPWokmaw/CDECEm7UTi5Y9DcQ5r+JzUcJHHp3Vne9lbsAOk4ii/3GGmf2NUB2pb
BKn+I+HPp+MtVOvF1uOXiHj4WgNJzo0Aef8iTTJm90tNFXscdYTlbELKqnGCS9UT5UCeQQDCQapI
26cKz4N2Aevj04Pk+2z0zzGzLfWw/vJjT1gzrNGJVp2tURMWsg6cW9VGxeQLzIZE4kUlNz+8QJ2P
KnyduuLPz2ttXHvajJC2ADF9b+QAFBBtRZAZaSe0QdJKqtmDQCRtN4m/NUjbZfH0vLOmFuIx1E4F
HopfJilIJdzL/3wcr7/dYvXVlyuYt7K2qHGbu6Vd3n8knXD9mESGxfxhEXQOOrzCGo8u+sdL63w0
i6FV6Rsn8POvf/4jv35bbSDVEo+TvM89MLda1Edl0Rfl92kzatsDJJhUB3v0K+YOEDGOn+FjMP7k
nwH0IN1D4qsCqblBqjfzeTD8vpLmYiRximoY4YDVqSzn3EnPF1H99XD97ePdP2g4YbNWX+C4oarV
g4IAILIHwYQtz/yFWC0fnI1bMzRb4MyPZXvNcQ6HBySPdMAJXN1KB+8oQombVbVamuGOFZ3VQAGQ
Su1cDRXRXVGFwlsCaao6+WINwRBhQ0KO2VUAiVybWEzCD0OqWgm7oAfVDa5HqpM0ryX1mtPOOauQ
6rStxgclnFG+nvAY+pFtuAwR4pDWp35P005cY6VnhByeuQjkPlJnfbvVznuIt0yTu327XJ8Afx0W
SAGXWjDGXGAHNpSUzUf0tNqZ4zl5iyCrKF4Pcqg5X3smLGda4Pl0CX1jHnyP7+Sj8Q0ihLSqdXRN
SA7kliiXIig0XZpUTJrmCfoBS9K8hbhHetB2+gEgs8SrCs+zLi6vL7iKqiwh1bOvV386fuXnQLu+
5PyNAgf24Prm03Zy6X5TOHjxqTDunaRouixpYuNroCvw5ZNbIAqQpEkVefomCP30n15OXyd5mUa5
ARxhWigge7rgGEnHYRK6DT/++DFLfXId/YuhT5HpgI+fxEtYtTKmyER3yk2+D8vMRVnvy5lRRHA7
nKe78q/UJQY5gKRPDYGXiRn5iAccROVpfLykYnsveEDohlZzA9P1pmfosahbVKstW9joGeeFyUya
5fnkH+Hx2UtVulUskUEN3IQgvVBS71HNXm9kGkXpU5g8XXo/wTxEq1t08nqBRAqCBfsgRE7R1JYI
cqbrFf6SHr0iqC54bdjFUQT7hscdKLqb02Zuj9fjO7DafbNzPHG6gkLzonWYcB9wt2yJw3uqhc73
0ybJZFroodCBGuhAW/Y+pl9/ux7e3z1OruD3dO4b2dJxg/qWV5puXkCpkXvx19inY3Av48VL53hC
MPQIgxBTNBmYAs2Dr3Xfugpaajk5kQhOqBLZFj5qOhqAhWiz86y5no+nyRyk5g6hdYEXObRzXYtG
ipN4O9wfZxINIgYipMFEDbu8M+CAyJIqEOsD6cCBEBTkIZvoBXQ+wCYTrUzD1YvlNMByyvJTuRZJ
8MO0B3bGYCVs2MFNSuo8ZFcua6C4G4+e1/CB943Bho1jIaQrUCpF96mF//KPlT8d7oc40qTLJyzt
5wlEV7QIpTid1/HwNPOPQPqHytfpCL/iTX0ijLC5IFBmfkp87TCBz0lDYj8SXUaOR/nEaD+hOVJz
++34nmPLYIW6pRmzBAPTUXQqW4Dn6lYDlOCaPx6kOFwB9r3vKG55Y8JLgin9eoL1RiCesUKWskSW
g7VbyDILBckh7zvhegOACW2Gnx+dib97vkS88HD7+gIu/dBqsGa6CagNCDrKFk1RQw2fxDD9+PR/
2zijbzmkAQY+jyFYGUtQfdDRZ/r7bpAf6R3H6xg7K4e1LtcOCJZurTMJVkqGQHm0UbaaTf0K6wku
HWmuJbxwiSRd2mrNJUBFoz20WjQRXjetPta/xRZLT8nvfng8nL8egKNGuoYV2XHn8fprzFALB7IR
maS8D+k9FlmSkCXyKjz5PekU7zu+Aojimu2Dda9FpxBGJ+vowx/EnZmrMBYtC3hjsUFz5jgvcvLI
Kz6kst63FTh/vPtYF3ThBel6TeJ7TVYFSFyn256mv5uBsEKqWFfBvgECGhTw1C1A85hcEexKdLoV
VtOu6x1iYinC7CozXW0fAA2kmTAJ6AT99hzaSAPFKskTGSQBvlLN30MO+neeKqhasVP2b1G2wMzL
VtSvwLRg+aTpNOlK0dzEARiYrpTk9FzmeLs/Hm7jw2BQpJ48nEA82rD5sxR73+Pw+DgiV40o0GDV
1w4pMO6K2DrikHrc+GtocOeLqMf7Hz2OfIn/C+SZBHq7UE8d9cvTJVi1oKw+Jt3r13O4/kgvNyG8
0w2tDnxVSgkaoH4Moc8xUhDvJu2Oie2eIwTgQ/oMU06CSoHu1OgqSFfE9JuRbRJuJHm5k1SZQaNY
Td+izPQgpQXSLDTwEkFMEOHVoWV/m7fMAFXVt8J7McoRSZPr7WERK2B3sh33Qc/57Yevl+NTEM5A
AfrHzYLblclAMKIovUpH0q1QDH5gwy5n//R17swBkETelCH0cq9xU1hEbEPqk+48i4ko7aY1nUHN
dG0nPBr7hMNQp6INx7NhbYXp0y6zBaNxWrKtUlrsKvK8SsCiu7Zkxyu6h1BxfQvHLaFIP71phR+3
oD5DcgFkb5XUpWuY3oyOycdhQjfCnWOG04oWHRAsqofO2YWJeUV76k+jRyNbJtPYCa8MFmlF8maF
10ymTgxEtPjQavGegtXoN01zQwu87F/cuKROFFtJOh3rA+d+SKHHxvPhdLoF3fGQqn8AY9ts21ww
WogjVGU4zaztPtCpupkmOC8odlEDt1yUej2l0Xij9rSEV95C5gXAP8RYipD4VKexfMKzURWW7vfZ
LhCpIy8FkYBr4Q+DlBTKpXnTIOeklHXmHTAvTUq/aT4B9Umab4e0CdneGqA+XfNFnhLuA91GacVQ
btqIGwNRpW3SfYWvnCPf2lqYmEkDCTnliljH6/jka7XP982MVN1CRpkRevLs6EYmJgmKTP6njWaJ
zIjE1KK8g+nIltPJWQucvSGtbKWMh7XNdWNsBirwEAkRrGR+OL5kcZF31JGw5OKYkDqVssYSuPq2
ZX3aJDuQQsKCElfEdNJpDbKKSVyXFPgFBwTwPbJiiqPkqsH2DiZxi/IpPmpQYmrQ5Xz6Mf3xiGJF
VTrzOoomgFXS5fuUhnqj3yEdQFy1sNfAVwBJJp0t3hHqu+qmvl2ejs/+qZN38LrRdFlLx6sAjB5E
zQkRQGcSeRHh2W1ZZ3Qfzw+HL96+fTkdzr9t6Q/6bkV4c2spFl1DYZCmSSJwZGUzikNp7q6pJ6Bv
Dza4a422TicEC6kqFogDdP92ecjVM/Hhycmzm675t8sVeRtD60HnbDD8WaW0OqAo6KPXXbgTtQ+U
+oX5k0oJbhDRC+JGkx4ms/19P328HM8AKLpWylHpD0TA91mHQJXAoisqJpBDYFtoOh5+fLJijw9G
3IrY1oDQ8mEhQbEfTveNrHBHk/xkeLdLtowVYBNdpbtIVte0nglinHxuXdpe6GkIon5JPWhWYJO9
C1Hdj+sJ6IqOYo2wWYzHOwkAaYvKVjRHlWZbiRnZj/M+CziuamErELiRtK4oq+UpIdm5xikBTE4y
1FdpKU+Xj1A/TDBU3KG5anlPloVpX9P03gWAYFUCrWVNH0rTEILH+TmuAzaYZIKR5zITqXEdsZch
DR8+LPNeUJZG0+GJ2ZH42hCmtA/Yc0mQjaQtAFt1VivjH31CEEjYkYh6zJ2MdH4IXp6O78FABXYd
vo4sZCdbfEYbxaLk/2ZA1A4GhMPJyZK2kQs1mFtkkFqunZFrRSSfdOuhptJnbANt2W0FgVD4hhLe
OgB7sbJEWKmRHIXQu6V2DPHXxDIXD+REEiak3vukncnZmZZyPfBl8XEvVYsrC7uwTaAokrmzqsCp
4DdQsSRgEwyhKVbkI6pg/rKV9pPNS3xuGtwR4qXX2sMTcrEHYrgn48cjUCX0Wa0gmLJRp4JyIZqZ
ah/np0v4tkqmBTtSPMRHOgMtqfshefZ48m9gx+ZYwA3uW9jWGOlT6gFUU3zOUrpgwIknoWpfeze4
QhyC8/7a08wXb3+nfwXQ9dCCR4V3Cr4mueTC31chWxACGCiCFf2GzlHzpYpvX/WeLY+iNQewCEdN
XeUoz9KJ8lwJNvQZCKKzW5XrgHaV5ZWzXFUYCs6YZlyh74RxMN+X3HeShjKnvCOepEwGbRaYAyqI
mPdQQzwXkLnBwrwNGgz1Cq4Q3hw1Ol98UBMgLdVKviB1NAffKgGcWd9ST01nBRjeilUb2JzTsDyg
l2TLjS8uNFAwJLBHmiAXIRTgtpHS68AxpmzV49v76fkYwsExhkE11O1+Pb5vAxtSjkFkJACDmNbh
W6PNQYDNPABy5KuUn33RDFoxOCzzKX03mEhhWimGMwmPUiJsede69fkCZaXLzEa9wofv1wRPtk5E
DFV2M718wRIHk4RJOMVkhsTaBKBwmkX3ZBm+dTpgKChfEho3iVZM95PsjeBzM4AgWNNaCkFpe5gb
UgVgc/lqq9QMeZwOO4sJ6nnkfB4vH7fJPZnu7pePO4q4uZL8JvJGchaWzBCcDCEIfhM+gizSu8yo
BVu8NKKMPXZr3PS+gk3AZBA3hdze6C0uNW4IiKqSOVErZgCVBPY8MxCWcjg/vvpWvzCMM1TtgeIo
Xw77MJewchWHWbYgfBAqpJ4Pb8fT3AaULcEOZWwpFV+WW5oebo05Bc/TohLpwdQ7xZG6ZSTyzsTr
8eX1NP3fO/hwWD4k1cnxt3GRUfi8z79LqnkThdA7MfkGPq+fRZOBD0jkgJwfTE+ZAG+Xy+11TvDj
nKU4ANnHnAWpB9E7Z/nJ6/wZyTNayhPnbCX/0siFiX7GnxfLOCEJNdVEdLp3lssRjBNweQI5y+b9
4+Z7Q3w7+8yr0/HxeJ83IVWgBzs7QTV+RqlaPJxqCBPrOdQoJvlVcE59PlG9hO7qw0CnmX87MIB9
Q6J6IFH5UDyxkz5fHcrh8Xq53YqunhunJPLCQsGASErEVyUFYiFkRQV/4/UKLowtJV7R+cWWfZ96
0yDOjZyXXW5h6gF0OZ8uvnAq2aMzP7eU6SbLKM199Al8IaDmU9F5EjQ+J53XR5x1vzmk2nrubHl5
no5k8luP920QGkbX+aqQ9he8xGMpz3ojhCTl3EC5sW8fZ6a6KG5cnhaJvbTUmASCnwUsPHI21Gsj
abs3sCoipx7kiESAsWah49dlyWFmEtnfk7kDzdtDDPvewI0kEk871X89nI5PGw9wx93N50TaCpQa
gVco2gzljbOZkzxO+gCJm8qfBqAZf/nw/j4Z6PvrpE1fXme2eW7GA+bhWjfjvz8mQPX8g73z3/lt
yQcdwGyfulmN003dfFIziootdXVPlpef6pzQ0dLL2Vfag6M2WfkGt96UNH2uwXw6XgEZHCfXtZTR
dTxNKiSoyuUp0Zh3AO+W6EqkJMkFnR/LwBhB5StOQ/3MpYKYZ2hdqtVckIkcynOz5NziOP99mezZ
4+vxFJ88iOe2obq1qVS3adwzgCF7ogRzC+JNywsOzRKL6/xPdDOLHccCdqIvUUB+fjaIDNAWLisb
2l1tF6ZCxtV0mujl0IIwpcxdvGp/Ha+JiNnQ73ogOil3oErfwhhLlOO+AK3zux0Nk4dspx46opO9
dzNgK4MUdE8UY64w8eK8FKnMLNUbssJGtfA4OyMH7J4pTdZQukMPdRtwIE5kbfQBYFqB8/3ubcj1
AyGzLDye9RwSHJfSCY1Mnyh/3eEdAZfbdq29LXWDBkcsS1DvCoA0dLbje3ZHlZd1QdAzG9IGpmLz
npByrPjhoiuzOV6SpA9XDBWI6fOcrkkxamSwNNB9srzlqROIj/7HtkBffjycOZowSl7fghvTRg5G
IpHJP0xSzlfWCUxdyZalLEXFAFHJtzik65SeJ5i5Jpc298BlYS+w0JaoWMLqccIGKAKry92UhWuP
FmNLQma2fAF7b/qqZCsS6Wfaxwggk+oKHaiKZ2W3tbrRWQw8T+VWGuOGt67vWxqn+n0A2Ag7Q5K3
azgCNA6Zv11S/tdwJnj8e9AMYco8vyK6voIWUUPscVwFMb6hxckGGh2AhPalrFuqmYfBuUFuaGZX
irgCq8IAiWiemJIp8aoAC2RVa1Lp8FKC3U5/WhBCKT8WW/ePu90PdyBMKm9SKJSK5/V2+G3OnLrG
V+0Xv2ieHeZrHHFPPXE5bLEt18sFh2Xi1Wmysp7AuAbLFen6aahsHjdcCydLmnjuguK0hPila5F5
vu/egGgLPZSEqmorPwPOK8uPR7ppX7cu/w4S0REl4P8Q3RoQ+vDZYfpHwCIOlKANbynLlQ94uF/e
jgDCG1NyaambHX5mI56mKOVj7Si+Xy8v01ebLmdvypG2MRPQ+EKU7ANWigLInS1Ruxab0wKGsBta
5GCSpapekWRQsp1y4lorsDPHHuZisl2v9sbpEf1NHxWtRD3c+agrX8cRAGHZlTSma9ltgDu0Ku/8
sBLsLRqjLw+PBBr99j7ebjuLOqMmMC2uJUXqHv0O8YHmeFlUec12q37sfxN/KHqrG74dQNxWlt6u
SwkFqhskcAl1FXToUjhz3tPwUXweJyflhiVHgSKvLMTpTtrzq2+J9ng4PbAKyK915i1VEZo2Tk6n
xVVjepdsdsZV6uYVF5r872kac7hueUSYZ3T9NGbWvxwunZ5ncX1E/DQeniMTx41jZ4dJFTXYaVqZ
M2XzM/wYM7ukilqmvLSlnQPru4WuaHljQ/xfJDhopO5kb9iNnR0mVdQKPp6O8VSfp50MvYPju0kk
acD3a7puXEMTMunLH9DNQub5Bz3aYYeafSNVhJDip1/GSSQfrnfQvjnMpstDkBe4lpMKBX6oXMD4
Wvm8ZwRkBa07ndfNr+v8yJuWAEXzcYX+G4YeemoLdg8tdC7Xt9gR4Nvh+sQL9NBaF3nY7rwH8IX9
tYVIzzd0Ulu9Vvz9zEJMsvwjGzn99l5h0a41TDqUdM0XGHhc9G1e2iUkQd7YfZ+JRlVkmKcmG4fT
iVW3/twl2eSsbdMvB20p2W/7altJF/fzpDTj51cuWzbomrzFpN9XlP70liEpP2K3WOYtDpRtYkji
W2ixXCCh2BDJuu7X7SLfdAJH3o7fPUoKJxRzzQd2iZooo24JY5DSdg5++B0mgkueYI0UpeJPZqHV
VahWCVXX4cs//v2vvyx64Y/Jovz6453dADN0pSYvhMuDlsmKhoqU8QmXbfrlaDKtnJ4Tod17zHya
Wz6zbIgfp+ta+nd9KoJXVoZYy/zEGbk0uzrV+MkoVaqpodCc2dL17FzoPQr1IlKl0uikPCeF6TWl
Hy+UwExjl6988jo03wzyEMU8uTDY1+PtY1pwarT05fKdnSdBGDo+ryzIRfPvv06YYHFpebyUpcC/
Qxf+dAnHPvqkRJ++udXh3c9H5Kvlo8+plsJ0tldSAeDVi9LW9XOm9s/effodr66kLj8s2sITbMT+
tBOVsKS36KztewBoNJlwrlRJSYJh0/jFDhXAmNO5nK8XByqkN6XZmhutDYPqeJvZkxueK5BfL2/j
jAD8ic6mDcqupVo933I9OOWMY2dg8gxIa7SGbpC8biAIODtZbfTa8+g1Syd5Dn3yCbQ2Bmy8U+WB
GfJs6J8nt/ePW46AMaU/ostLCl2f6Gt81gFypZEUxIpPt+EwHfmPN59uPDeuxWhNmdYdiTprfPEO
0Zn3XkyeS/GWU2eFRhbT2NJM12dOELDkta0iDstyZ9rGck9WerCZurz7ujZUIEE/mKesO3w+TKro
SAsLhoT015wWGjLo4QHZTrbMeOBEUuDyMqPY4xlDN0MMFKFik7CePPcXnxS7ZlmEzhD1PHPWyNoa
I0emz+sLqSOyegk7dkr6+PKDByimpbDXs/hy/biHPMtHXg32eYec8RzU9Kdt++TLwPzREa0eOvf7
Hujx+ALczqXL/ImpUr0ITsHykFiU+jVOgAIuL9eRfHw9PrOH7VxezRD7IQJ4Ex0334n2gbW01lHx
8SZw+tO1oFjcrtvouc1b7BoR/gvAz9jWvo3f3w+xc/dyjDfepJQbp4q7HGfk9ey4wyt1WcZDPLEr
OZL3w1OYVHx+as63i9Jx+T7yUyRomJQDxV4ScfT8mtuGHehVAdGXbvfzNZz+nCDr4ToJG38Rdct/
Szt2Gp8n/zSk0FR+OH9/8gmQEFC+gcpqh158D1RL3vpQlS4X9mhyUG8zfj6CTdayhYxW6qBK3mSj
d2FhhLwZcl1O+1JOQ878Fn83+9LzsAm99Z0QPW+GVUFizuZgQiiHdyrXwbAABrInOoaU2KSVACfH
KYp7XX7aJcYalzcKwoYeznPclhfAoeUyLLbsegr83iyQ4X4lXox7HTRsLiEVclLLrPfCMACnWCvK
Syr2qU0fqwiPsh62OlkEVZo30vbhj35z7bN2fWdXPsiWO7OQcgG9JKV1j/Fm0EQnCEreSpLAmHy6
J3IbHxTv1dkWZDcecirAL5qSsB+aN25TlTvKU2qbo6/t8/x2vUwKIas+3ttvuhHzzGLa7AQUnkID
vQgfNU8zqtaxhRn6R6l74ZDKtLVLI0sq2PP4/AnbvqR6mpeFZ2esaQFw7QajpeOXbAjvS6pJgwJk
2ksEBahbNzsWsqZ+O8FQIYhm64iABfKQlHk0yJeNx8WDXOSjdKG+avqT4K49kkV8rYBopz8HFqdr
HhmTk+mCI1LIaIgRe2chvn0x+V9et9x4zU8cdrk47AQXs00IAixuUtkFC88rEGnbsmKNkB0vK6b8
yURH3U8PMZi/GMuIcfzJ8CosL96nGzj6TFWyAcBlcoRwJmGsYDP/MGlQ8LtdSRiJ/fYRGImudeOT
UxnO87fxh68D4ZVGVwVVVAX0NnrhB5xnStc2dbucA+uH4CXF6fhOOA/J5vC8ji1xo4JRDsLk8NEN
WcZNKDucgE58LNhXFB2fn0efdEycPIBRLSFZfTzWCUCiGd5NIRygDe2sHGuf+TCK6Fsh7UQK8der
UuCW7PfpfsVKrqeYQC46uIj78NeJmKxgBfrC5vBkL4kmk4feUnPN8X4fr5QtgCRPjWlIjPv7/WGy
EB8eb0Eupg73kM6zKWHxdODDBLYrI5NxA+2EblDgq6Juh9KtfTtcX7yPlbjoBUBwbzwHj5awXZ4+
mbsDLSaBn47VXQviUW/4yxhm8njlM6yCL5wHGrx1H5Tch9l560l55oxrjFRSmIHPrSBn6j1qMSeR
S6WVQwyrdaVCyD3ANlITCAALyedyG4gCSytbMhkDT3UCB2ZWrSRsTG5uWVh8XiXJvkUCfPm43xd7
Df3rnpCwsbYh/rp/s7HIjADhewIfcjP41+M9Ss5C2/MbYEq1mnIHLr/cr1w/4HCe5Ag8A9kzBCIP
yYliIQmRFDR4/dxyLBGEc8TYkDSRbLLCJYP8f96Q0L3QLa/A7UkUISJBEkXiz/NqWoBsrb2Md09p
z0wIzCcJ4plWtDg68rpp6MSccmXwNScqTuuIguc3v4PJTd4PeAkgXIuBT4ZKl5JfDRHoBq2St5Lo
162cB9sTfiE/iGTEYETfI3WpWsIYHyEIbThj+/pJSfj/+f7AG9J+aHmDaVN9xD7iA09mnQ4LUOCh
MYHsAZJ2NbLh+8SEW0aYuVzOtKidBCoiiRPu7usIvUlybcjbienEw1A+yvXsU+nG0+n4fjvyLiDx
2YNNjHMLuxLxNGb7LHWDslLWg7bKAZ8/K8QQvaYG7m+Xp8mDAo8MB0+jylLSJT0SPINwA6fNnTwf
XwjDw66mKtjTViB8TXxoRwDo9PmP8exz+ePbrmXz0f8+TNhnvMVUdt7eiHw9g4vnUhWU8V3ReEhI
eEizFHuGepF4ml8u3/O7HiE3dpLkDWUlXBnpTXEAH63a4MXr4GK3absWhxcbL5Is65lmkfxNo5Sa
LDXPQopW4HvJ0xxpQMF7rrwUUo2Vn2Lmz54/Z5IglAtmfJdBklXLvhMUpqJbKkq7yYEa+NQREmqP
fXvKPIbw4Hf0IHhnwbWcljns4JUtV1gdWBRNRDX8UZivqPdTLUQQYCyk2rbyMvTkO8i+ewCOb5Xe
PGwDbgB0RSsAkm1paI65kPU4IijbLotQYpIZlPBlyznIXCEU20Tin+1EKzeaZipupspSMj2nnEXR
Coypr4a7n2L649y/iZeyLCc+HjKY4mABPTCUyZxMGoHHuXygkOKZ8Ae9JlFEp8UgM9kTt7jhOTUF
DGQwN5PyaHIcD7KGkhhSNJ/RHwemeKhoZ4rk9noNZQXLdqZUgWAb/NMHyPw6EvQm/QDmnEaQeKda
ZGNIvEPug6RWIwR+VScrDB9aX/AMrtGtXBcjtRCa17WuK82O4rJIOj4o1JXelqWPoHpY8X65Hf0K
xghsYdlLT3KKKd/le8Pcxo+ny1IU52vseI6WsJ52YT0XjpaCSP6e9jRL1JCemzFD4G8oF083K2/S
1SIPE4QNuryHLRofSlKaNyhkj0KesuCOjc+wIRQlaa+SjGwqDd7Hyw1Fpt/cEzCVXYH8ymalS77z
EgZKehIoKWizbhgcD0IJICFhjhSRCGlFnoBCtElPc8qyNc9eAn9Bu+aOLzz21oKrBOI65eWAk5ac
acLCmcvmz0lXIaWZtDfTxUeOM61kGkieVWREluSKT6fSE740ZJYKJi937vI+/+Plfcub6KkKzaRF
O2mKd/NNWSvS5VoRwfO5qgpybBRtJR6NRwddq6wiDXe/zBlkG1lWhGEILVR19iTS62CBq71eTvwQ
5MLR/piLaglv027EunvbJIRmrpsHWqRux59t6gX/9PH2/nC4zS3U/Y5inEeYUtLkvG1NeFZS6NaF
yOELPlGTqFjyKtmzLxb2RBS/+apF9a+thOWthC0RoiyVNA/JZEtZzR4CgE8Dm5+SiV9Q+ji0cmVo
FR1POpKSCaKe24GdkImJ+TU70LiZ7bv4P3P8+v77w2383fnpTyFZdULZnnnYkWREa2YyJDmevfb/
uiPh1CrRkuX43e9Opz8k3oXHHkMrw2AupwBV1rIOWNFOgNMv/8w3DA1Mj2zl9Bcx8vS+7PkCZaSo
sCXgaeV+bYJ2Um8RSx/ZskQ++kdxoiZPlw96kLBo3bbiZ1TS+dgbyWQPCYEqh0di9YlvafFjAoH8
9bafvSuQriVQ0Hf4lPF/kjc9XczeAl+aL/vzjdy90ZzOwOd149s6tDJ/7q+HY1zO4Z6RBJAJZ2ke
ja+VH3SF02Y5y+XuYbLJ3Y5n56vFmT4PAcrRYo0Q7unqp5EfJotyfDqBaIRr1pUlDQ3q0Vxrv6mb
z2v3dur9sq8z+8TjMyonPo5vhqJr8GSLfw7Bj/99HL/xGrAZLm1lsoD6QdOKfG5mAfAZCq6plhvc
Fn+tCYlCH64t8yt5TVTRxvTBuCRSvKNMiL0QrNiZFMEraUJLhPyROVqn+n7gs9ZpPnV+lSx0bgxm
5nACR9o1M5pnMg/4OWV+zPL2cdhwXFlJizRkOHVJnSv+DnYlXaaaGcvvh+sNxf+JIxVAtapDtJt1
5Kq5ZZMd8bz4+D8fO3oGWGVLd86BwLnincK+rRGrLi6fLYEcuhbays2wPNYI15JXWc2UN9+phzdp
hFYmCip6Gf6h1F15Kda1+JEi743ncsn1C7Fcu+8+K/4+y8+mly619nz1xSBaUeKFUOEdMdcqE1iX
j2+EHolnGyxoShQJmXHgcEWz6iizQPy0+9YetlK1edaPODmDB7+DIKmJPy85xrxH2WyiUqR19Ly6
6FrOZFhA6DkRJZxEhHEXhL6V8rLKEuKN1lBB76GqhdAC10L0LXd+jf1BVqJsZSWmHDh4DFK2qmvT
Mbwd4yu+/Dt5wY+TrepuQlDzX4pWHkvk+x8/rrcJB3o2zz8bDOvVDcHcwuNBUSVTJsjCS7Nt8nWF
juPhkq2q5Q1pec5vPI26eXYvIdAgbHsKIYfK6BqgWTdzmgbaGUkHUMzqBF4MaciqD0kUPaiXD2FA
XjYqclyVlzI1L72/8o8nh5tZpRJVHZ92pHf0pmv1jihEg6+SIjQSeUu1EkvAQnVlxwlbtPoA4XHd
ovmMtT6kgbiApmFI3Yl4Q5SBl2fdrC0inMABlK1ZMr4/78Ra2nZPO9+MxrcQFahO+fj2slWrrFsl
7YV9AsVxrhXBrmpv+NwCsqHEIAUHyrcTg4ql7yvnzZGoxkOtXXZR7z0J+JCWUb22vGOhmni3dixi
FdwnSpBlK3G8paR4AEkONkSkzPys3VyuHbw8LByEKio6wH1NuV3TLt920cykAig2gkhMlZhAIege
1GzXMZcfhKTaw9I/AMfAZDPmyiTz8KPouq+j3ofzNw0T0UiEzVgxrHOE7uPLlgxZUgdGWsslmm/u
RJAZuidAJVvS64RU5xTq/fHHo+9M7qNc0IMnZRjEyzo8PQU2m0c+Tcf5Or6E0L9/gGpyi+6XK6DD
RUFAJQZWq8E/5MDf7zZ5n5KgQRxNtthRoVwH8j1V6xuq2TdUOUlpj380eucF0jT0yd3IiDXEWSQP
ByStNueUZFHaio065VrY8/06fj16fiFI0Zz4wnNOlQ+RYvK6k8oCRdK10P86RYa3DNTxCI8OaeJ6
fLk88SFh2bWUWKwlu3yycqcnfB0p7mxzP7xfTOr3SSbvaXyZbtJ8ArwyqDNF3XYOHChc6Fo5WOti
IBCF1CUqU2sKk0cgnULR04RbeRtLw9yZxV1K+ze7sjgSvRVeQQmh+PZdwDGXLXKd1PzG6iwUsnem
b53EkkOcOqshD7knRQSku0uDkudPc9Ct4tM5yALSlLoWs9W2yzNVElZEUu22+gfQCKKQHsf4/ykr
XHnvQTfLaltdlMDF7ZoBixWDwkusVi12tSr02kpmNk1abTULx8+iUiHDukQ3/G1Hj2LbYn4XoxIO
fulRnJRTfsmP1wu0htiPK+aBL5O1e3ubYOIj2a8YfXw43nI+4gnU6DvadzA8HCBNesBi1bd6u2cG
oWVCuE+zcf4f4M3g4DJQU+WtXHpfZe5pmnpfosQf41ptkMJkZu56fpQ7dery5vP6BMq2HMliDw+g
aGf2tY1CznRHGw2rTEYHi/7P2e7803/Om3bVcn93dCuZO2VvNSwhrc7EEJtd9CSTKSNDnn6W7arn
rNcn7LJZG1JVIdR92ss+/3/Cq3Km2dOcwty0Pan63+ck7Ow52ROqxQWyvk6R5ZVa04AYKdTQ80rd
VlFt1UiX48GcKjuXiAaJuN1lU7XbRoYm7R/v/oh3l2dYks7pDarvHxkv2vj4h8uk9c5P4avYKzNc
4kdGy+nQiS0pA1HES1MZUHjpM76AFBqUYV0fxxPLeIHlnAPH/vHhud+6H/bGVGBr336gX8Ygb15I
o5h2NZooIFGEHXqtNVcooElBhCgAFV398T6+MVgorlfm/cvPTkYwx/7sTPGLVKVq2ps+JxmlaaBT
7JYBvfNuZ6Lt+TD9Z8QBvI3+73fmjRxNOuuFffTKKIF1o5WURvNbsfiOIqUMdPTkgyBGZmQ7SO1l
YAYNovBEtZCTYe7ALLp8oukh3VSY1mvhHJfyoAmeKGWhJbmGl1yTpSGnkE3qwb+j+6/x9z/+AJuo
+iFsV2zj7LpNG/j4GmUhxKDChh7P59A+6nYHojGUlynx79N5aisZFKpJfZ+oXpj1fNnKqqPMbU1i
D+Wijk+LHEyo5355Dx7h8cYrQL9BgsgZ6TlubecUks9elN8Vms6nSx/uwHcKeynyEKTvozTS9LxY
5fOcnw4K3Q9ePNT4OIdXYjgQFH5UE83mT0LMOiaU2hQeeC465E9CtpYwWbK1mGv2CAai5N1SARsy
+SdfbawrsMcPtDyigu3ikPp0fNDpw0+iy0qUkDbpTfjqycIwjc2H4sN8unyFY6/SOK7pJ++7Q/Jl
yIXJDwPNF43/ThOdQXInwuNWf5mkg1fV+UPRhT/qvZtcncmfOgZIf+M3UhUSKuYHl6e9ULy6VLa8
0paAmj9fruMf/FNsuxSebll7MW32wH2ztAksUYsexISLWO3syPUNOy2Sv3g889pmcC01mKxCzu1g
vyd4iBQo3abj+W28v14vHy+v/jWQ20P8V5P/9gJ0eV9MJi1gyUu4fby/X65gLbqlAf2u6Y4/aEEQ
Tq7rTQaJdG+eUQo27KJTRAPZ5Q2FUH8TAQJqVRfkNWtU0vQkadTHy9t7eAoQvHUap0HUR+CJrGMN
vuANvmgJYlRC+enEz6gfUWo1TScVzNONN9qDJIvKtE8KuKZcO/jipiadikTRfsL0xg1KAcRgCGzP
7bAnd9gofgctuWCknGc2SKSM3gfp+INwXQu9zcNsOi4D0Sj+miQf3minjOSNuyZAXi/tZowQ00mw
5tORaxzocFFmgngnOrwilZDyn3InWh7oLfHoJm5sXFNwM1QLMfrSDauRIRO2tOTdygl5G9neP5p0
GRFFEoZ/URiID9FOOSg7nZvsJAC3qrVZ43naZn9HDxTcsoMMA5HcMJc+XdabL3si9dCX8+lyYNHx
YEzL1/Gv6/6yOQlL9EWsHnCF5FMiHSLDgcAJ0seCuYi8CiJySGp4fBNe4LTlb8hrtsfzZBR8Afl1
9Bl4gfSetPvHffQ5nRPG+HnyZpHtNhR6h3KQFFA2rjNsO0FNntgQRcaXGHSneEnsWzAqORbpkdJP
UCkD8Ud9eVrqu12Mt1zrxcO/oeY1YdSsbsmTtTNK5XdE9yV20uvZTH+BUIhsKgHsvTLGOl7F9rJU
CorescBKJzPN/m6vSwBjVsQEtMmDzvec9PuZCRGAkAcAHd+vWJ8PenWxhxa2AEiCGAQPmWQ3K3Jh
OwNQMvFH7AIyF6V2W7BR7PJwfX89nEeg3IYWWvNFo53j967PVzd0KjFr2J3KAsfTiYdDsgWHCqEN
i/gyuSg8VhwIAqZPUMXnh8OOhFFeAaQiyDuHwMITRP7Cst1ZNQmei6JMPIrBY2R8H74eTh/jvoew
o2wQzRiUVVLTTR6A1/VDV0r4XNDUazvwN7pA3ouinOU6nw2YPvFYXfijReYs2jHFcG7sGyWR3CFn
NIS4a5GumEptQt8CfxMCxRAe/A1WNvQy2MG/kC0jtr5qqe4PMv4gV44eHOd8UX1LgNTl3rMUSgCU
rso7kegz3Q+u54lyoo3CLU7p8dM8g6Rhn88RTpNggknvm2nbEaXStTQo4Tckb2xE68ax++y970de
Gdu+HK1h2+ssoefD6QbMcN+61C3f0/K+py2pPD3nS3p84cWSPw8Cb3JCcfKgY+RIAf8gQ4iQSO4a
d282C9nhABevbzFJpnOTJwI8R0ec3RDYm/s1ai3UgAIVqnQZUoCj0wNXkq1Jb+cSHidlQJOHo3Rt
Ze8F06iKmFW6FsVG3gEDOu0cOYn8LERFaZ93WMppKFmyl0v3u8nHBZsytAzs4fryERXuZJ++HM8H
PllNkwQrEVPd+sbl2sOdDITeIyHwQqolkOp8m2Kzm6Wji//lc8p7IQnZ31kVT9x7tYw08yc85qFu
oK0DaAjTE29W+Esh0oWeiUHefhNEHjMPzGrv+e02Le5D2+n/MyBO61okUclv8Vpdqpb1nA0J2FpR
RmlpMCu46EtCSnRxU39gQLfY5jriiMTzj4xmglU8PBSlxPS70AyMGglK4nji2Q0zjaPRjRZDi53l
7CZvMG2L9qZOREpIYXqwBfVYBWTnQF/XaYH8LuJxEE428pCSd9/JwskrOZNrqjv0a6Jr2VLfpSPC
xensHpOHGbtq87fRtvzjisiBPiMJ3pOm+4mDSskqYds3rfLSb1cseWYK8UH8lSWyTQpSk1au4nSA
lNRdSREVeiPTHzxYGkqH0paryW0LsY1xTS6hvKnzBQWXk0QwPIGpE3OYXI2IJo6+o7FvQMKrjaE0
eIrooLgzXq1tn7XrWgCsXJSPM9OuZltRHmIdQth7jjVJ14MIHcljIQVjE6STE0BBkK7J/r/6HNcR
usIDIa0D29GtFNX3txNr64e+op/7hnN+ux8A7Ur0Tqzl0pZ3xUH8o8rjWgx56DeQBOt8ebg9Xi+A
MRF9C5KG9aTssl/8ah46kBJFfJvQn66Iq21K40CiI+QsKYxDsQsCSMP7H8KQA/3PX//6lz3toMPJ
9mWw1PGnApTf0FIXPuJqHO+iC90KwPind2EqH00kkMSnzKIck4Z4ro6wbqSVERlhedzocL7cXzdy
j4ae+jfhMZZStCOkWZLTsGkjxlGH2r4lQicMivTIFm89OeuxNV00yzOiul8CFce7KgTWEPa8zhdE
iXpkS0KeohQg9ARgx0CDtC6WG5doGFBAsqUrko6IzmLM21kCxsicORI6Jf5buu+xq8tW+WfwYnQL
SBG6fIeVJ6ctPEwQZm4Dd3z/cglPaz8+jjdwwPnWh+bnBS/jn7pI8g9lVTbtaXjCPklcnZ+E6bO+
mZkYT8fL61xExZ9QaeTKSMROrpeyJvmBwKQb0g2Iznq8B3Gf/DuI048c7nMNKPQaetOmpY02TmoQ
hu9acyOpYIFpR1zMZLUIsvO0lko9eN/G68v47yeUDQRIEyIy2aPL9fgvn49x+vkDDNG7AkKniMzs
CAH61BU/3YhbfCYgubTWmr1UU7OxvPDQWBTNrSXkma99u7zHxyCXfuE4E5TosfC6slwZvAi/fAoE
PwhBK2bppjubqOv44tsT7ImfD7LFCNSJuwC60DxPH61OmVZJL5MWnocbljk3yFai2+zLgjg8gSuO
hP5SDs1kCZ5IMvnxvGdbdJXc0M+vz/au42kimjaXff+ZjZuR9bcJ4U/m+/v4+BH+fbqQ8/8z1qqE
/CJ5h7OvAcK6ZUZfulUxkxeAs6xehvDOY1e2qAWQwZSH0oi8Y8NKvE1vqoeC7d/OPyY57UKFjtf9
jDOUswOvlIfy4OeHLT0OnStd4tXHQNzKFi1SJlDDwB4FBfRilfYvizIPL6RtprHXmQS8P6BdWR0z
s+yyMyA9hv4sbXCgemvBFXLtOH6mb/wNhkBGDC1/YB0/X9rRfgGOdlVq07MYhM87J5FjkiodFORc
NzVpbD/GHtPsaD5sJin3+sqOZMGT4MecXAS0rC6zeLv5kQerev46qb6VhCAkSDS0ZIZE964CTCgs
QpP6sgh4VHePWQe3BO7Ph6/Hl8NGcZhu49AUgvXIOA4WxWKDNh8Iqy+9yZMJrhvTDxZw3LpdQZIC
jrzmp5o4l3YzjCgvxQRHBT+9xfZ/IpWjSQKeb9N/937xbcHSZvL61ZV+1/wURi+V5SE3jcQQcZzM
veHF0bZq9IwYugHk2FL74zWHSOc1feYs/1tVrrspgnAAMzdL83x3hPNTjP59hE3dCu464suQdmv0
XLbE2w4g8y05WZ6XHWl+sMdn8M64Ek3IhhqOFxLxWoRvJRWtgddCsSVVnkkU/Ji75O2ID1HsaXAQ
rTphKkPvq2Ih/qACm3PyT39eNiAGyWgg/uN/f0yuw/MP/nxoNVgox5Dr4o5fdpTM0riPvxcO1fyR
zAqA2boyNaRvU4FUeBLNwzuhohXuzbwq/6FthePWSdLb5DS5m6QwYU5MByE611KRlLUDbDbBQERb
lxcGRTGla5FBMT7I0/kkh4BkdqyQl78xoTsAlm9RUmtKFq4OTxQq2cpSop4DBN4EsqRWqF1Riwsg
Ut/adK/xQU2YabmMi/O6lW5N9IkNZdTrxAT+jKvMZpkJv3BWc8zs6/F2nO7a3M9mOk4//vct+s81
k2wInbjP4SURDQJfWggcKH5ZmkeqBX5CxbNDP7Tc7bbh4e8FSTgi5as5DHw/etII88xdGZDOWkQ7
PgFSNOE3DYz972DHPs6pCs8/9xv/H0A4oGsqh60cf55mI3vseReZcvMa8TsA+Tu7iiNFhuPpEv57
/xcEKkP/xignYigs6nWcvkyuGdfkJr76uXxN2o+E340ZZeMc0mSHSFnTQXu7pX9aGCJ++X+4d0jD
12QCLjzVYPP3vhX1u3/t+/xy4zdALSOQPJrw/e3NP2NKuqDyg/R5EEF2MfZ0/5LY//vrmEIA/Hak
nJgwklzubZhOGSPmtySPEAZT9Ybi7oJhCJOHcEuaUxgi2sNvfiXpBbJbeEVmQrhXtulk2KJ8zkQh
eZxvpWW/0uR8SUvYvBh+DflIQhtkk7/cIdi2+bsLpKvA78OXjxclHfs0azhYsYwYRrU7R+TnqPNB
F/0VlLNMgnj4yrW+CheeJ2HmhuPpw/Acn8kfpk6q4/3A8PfzM8HzgfRLtsEEyJU1YJFZFIWnIuYX
/LY3TvIz6bIo5rzoltbacVXyqkKTpPLmz7UHwc0JIbbrVy96vpnReEUV2GHsPE/yEnmYZ3pNeIy0
UPDM+GGyiifpqtE4hA6ZD5P9SuHNV3yHmxPSnRk0ltS8SYROijIXHT+/T8HTQRHScHampUaIpaO+
Er+QfBlVrnWaF8JLjs5KjGSkJwcltEC9Xt59Lm8IaKV/v3Gt8n0kTz1vi7fmR8znTTLw1hYtvPp3
G7cqaMN+kVsY4gw+DbuWxpA0GXqcjMBgk52Xi6U0yrrJEvP73pfKUzYF6Mw99xB2Rbf2uWFYd9x5
cmQ2WtgYInr8uI6xS2v6zJ+/j8TdbqGBHXy9wJC22uTVqfLj+MZZ4NAnC3h8fh49ifQAG90a8l4e
SYZhBuZHca1ul9UoUYE88RHUMFJPehBGyBXc1aAsJ0nyfa/id/fTLp4piEgWLBLFIkHvPNDT8ea1
Ay+kyrQMRGqhN+lc3/timhqekMoQgjxxR9pnwA7pYYQssoGGdflVwPTSiZevNwTvtSwUXcrTjIkE
kwSFtIJF+3uddRrPL3ewqIw5SJ7cl8Pt+JiODi6IYG23PJ68vMbsBWA+/4ditzd2Oi9SBL4p7bU/
o2KYQsK25KkrcZLa0+4ozKYnGs5bO9WtxafopcoP5VZyGL3oWcMUpGBoFhKtaBg+POt79i5q25wG
NDXX4tiinUZE+WG7xthRN7Uxm+ae6tbO4zc2RSjiNLmMTHrEL+Eon0cSdYYXu0Cbwsb+YcyZErAF
w+IN2eE0P175HD3xQFjyCjdOUecpktZp8T32u/fXQi9/P+bGSDM/YFMPgPTsZqBJ/UULwxyfi4qT
sLchj2Z+OGBPZ87wcyqfWh8SLl2ljcfH1+Cr3bxNVOD487xTP3TN78Hu6c3EhI1FqOmer3ej0e/w
/9u2qOV3Q7Gas4WA+AGy2OUWukBAhmVA0mfapxfG2/zo3yt+uH6cNkWtIyPlLs285O5es8xrJn08
Pyt521dPSSJyLrxOmLIbD4+TI3O/nh4uQM5keT9k/TJO7JodT+ZtvL9ensBU+ryX+XWl41tqKhU5
2zji5HP5LQQTy9tHsv4SWxs13dNHwA8bB6zJCrsF2N6mOTy+TtIynhLr693B/IQjWKTJuimnULQv
uATry1dRyJBpK8v0uyXFZ+6mvEMWRNabJF3h8h72/d1nCn28T7L17QyGyMvzjWicad6H0KnQs6zz
018p8hRsHgigxpuRfyIwe2LzJ/YbDiKBljxj3rRtO3i7eOKu3FVLb/LX4/jNs9U7t1flEyLNuqJZ
X7qgx3cPfeueY2ir/Xp8mjzoHecvRUs2Ky0bf2yPllXZqpMyivmgqnL9T40sXet28yN/wjLkexWY
AJ02OB9OEtUbuAOlFM1pTS3rsuNOEmiUQ1sIbm3IuBpKrLUMeF+0YRr68XB+HP3DXIUCBqpSlOfd
AdUGFkzmJ0MHYalbI/mtwyPJjo4UMleW54ib27d5k4lwJL4rjJaCEbHvd/qHjUcJYv1J8kVMUpbp
Xbl5BPqElW/3w0UqwlgzjRu6xy9kwDLW7eNL2DrMCcVZyWUkomPCSI+vo38OxN9TMJO8KqmC0huK
uYBfzmsIQRJTriGo8d2rEHmsHP+pVxGUxfH84d/BgPRBGHPm2ANR5gJplrrnJ+IXfJo3VYRqoXTY
8aWM68IcT7r6/cgPo/IOCdnniD5Z1+E++bFfPtAJ6TyK0iHCqEki4D/nDf/n9qoEWVUoUpblkS2T
8eA06D0gNyoP5ung6QhbWwQ2x+YBArEiHDcbQIjHuegsw32AQtXd/DgfJ/A3qaJJKA8bkpjXFUyi
Vqsbdbj9OD+CbTZ5BA+ztSl3JphmrB5UHsIfVIpnpAHAZwORlOzsz7sQ3yj5OD/ePyLVtOdi6g31
8j8f4wc6mixzMrgJCVAVL+PcPl5exhtf0h4XRwQuvBTaDfVcEjiNaJ8nluIp2ULj6FLrPYzfD493
nzEStmhbn+fRinKvmKq7qMR9akN35J72+SH7WYA2NLrKek+JkIukmxI8R0Z42jrORheymBobLGsK
zcuD0zI/zROSUsBWGXLvvaGeH0kN7lh4LfqBTPXy/AyWmudGeqOtzMYOWzFQWxH/dPVgt3ES9glk
nT/ewPKIPfZuVde4g+Q52z1XMG8YiSTR03w/bko70Wo5NWKZ1ethydGIMgrWl6XLJ23YSsckf5Z9
ZCiOMazuHq1MCN+kMNCh8SDjMTz6ZFjkJ4nDESoAO1qp8CU0Cw5v8Gx0egpjOVUyCmn3QwhvLrCa
5YvN74vkUwbc5AwevSP9fhupUCjjbN/xT8/HWs88sWCz1u33PL307ca+m2jD20mERIgOhlqNw72X
HAYgLCNpauj7X9AwJ/+9MwVBnc6qCJGmR87yuw2LGPDDDhVnaJZHcbgMzqCKbD4jkh5RhSZ3NdQM
szCEfc8VgkYPxkowi4EeypIdQgTE13cLIGnZpSWRs80b5XhhI1R3AFtmLSSCX5AiPnZo4S0bMmbB
54SaGJYcxPk+x7y/UHc8F99Pww38YowoiHE9v+AwdEbxki6cK++vrrQK96xm+E2bJSHk7bjGBgqw
A4RJUvXn6eFo8p4lEA5JeFuSPUGWISTQhqL1cbxW/G+KfgAC2T5AAfS7yTonPDMm18MRSQCnopsU
WpwKrdy9Xx5eRbTdT8frA9Cn1qxIhyU35W8TtElppRMC83YS6C/ZIpLqmYXI8TuppQS6Tdl8i4K/
XtRLTz/oVGewySFhSvK2hdFKuV6CXRFkNSRrAZ8/0EZ911Kr9DJFZjVdjFCCdAoJZahsI9rDSje4
bYngM4vithMDKev2IenmA/tKQgekAglvHbj9JqMGUqMQ/IDwfiibjxmNdVZDpCSNMdPzy2XExoCr
SNYZYlNijQPQVVZDpdbMSjtroJ3zrvhxhh36SYJN7lVJraq5a/z0L5HZNy3MUlpJsAPE6pMK5vl+
953TqtuAlAR3xK6te6QNHKrJKwpVInrHvoLhelNa4GHdBg6qe7rBO3GEADiiF+WGF+eVckN9xvk3
fKskCf8Tdbb1nmIEmH15nXtWE0bfnLx8EHWXTzzdUGBStjyglIKe6tnPtxgH3FeJG3VJE07tDNMp
o1uRS2bvgUiQqEMwaYVI6W7SeJ3bMIok3UHVM5l+fvr44x3fXO1aUWt6cyfzim9ulgMP0cpJMBcN
6MO+L3HRWpkCjGhpWszyfD39GJh2Yi1JE56mVwuuBUnHCM6UGAZix3PGJuiPF6WsjFwqgMJeewrD
AEIkSozUlU3KpOutgb4pMb65nnP+EKBv4nuQbvTLnvqOP5OWwRtqyjOV7V47cAwlAZIh00BsRV/a
k5Qnd/04h4BBTOgMp4NAzAAcoNmKgMtBkYZcGI+KIzhQdiml7wE5EwVhVbYymsbB6kPZlv3YSaEg
UR1cC5A0wfBGa6OIhHVLzRmfc6466D64MgiuWjv+2/gDbHAzwYg6vcBGOFlmOqWevMvxguSCTpbZ
JIV58XlhMQNs2UxgI7qSJ1MsA4BT1SRJcCGEXTzUj/OkFuMbQYFoApeo3BPVrTYUAB5HPFG3RHvn
GxgY5JsfJF5o8Dp0vI+uvM87MKsE5qvXpZvcF5bja9T2EVvs8P7MAASPoAPgAeqhRVdtsnkAuBJN
7OkYI9fqBsyHClB2ITEb1wMOpkK/XcPrMcDrcQAwqMEMutcbAE4W3KbpeSN/eHq6cv0wo3HX5d4U
t/Qjt4/YkBqtWxpn1pTA1A8k0dDWL1oyHk4H/DeSbioW2tfYyQa6DsyiL+1GISGvV3CVZUG/97rB
lQBZoI4UeZUj8VNo20QrlxWrEMBP9raVQzjf2NNpqUgM/xvTUiMhiDK2JOGmSMJnRZEA4EPCCqQM
JS5snY0MdFqF0Rs3FnDIiiSd+ort+SEm1Q9IaYmhK3O3y6DGNHdfRQY2rwqXzY1FSHvGVBo6/m2j
qEK5vqUxtjQysoiqrIFISpChHQHCatp26nqBORB+mIDryO0DcEY+W/9mSNh6CQlbWywIgeWkNJAP
cQATrpr3b0lIJHNjOzXHc7ZILVxh0ErayldpsXkDuCWy1KHFdiwdBLccYZIPT1KkTTcMCngUwlVp
rGJuvNiLvgefyVZ5xXSzYieXH1svgEftYlq/HTmmyy1FXwHiVp+3gMDZIwRbyH/aA3YAvWG6kvQq
hEK56Vu1gVZojVPOuryOL3PL6Kfjoy/hQbFxAUDK7eN6vbwc7v6xWMDeUYUVmyRR2DSZkr8//2Pb
qSGBHNJqCu8uCudVuQQJrkgrtQZwhV5zQtfLrldCINhAchdIM4Y0/bfjd59xWEdDMM1iy5NJC+jU
NBdw72xWneRpw5yZdfh6OT558/Y4PuE+n1HEZKuYadaans/YVJ2S7mlu+9sE1bt9KVuFVQRvJLn3
v+I4Q6smEksdsDYErJNXWApvCrFipqR+4td9J3ulAMTsujJFRH0yEgfWQ5I1aNKKmq6eBfiM0mqy
7RaS/QQqV1eh727Nzz1fTqfLN9+G+MfD/duFa6QbfQoL5sW7z2CDZPPIZiVurRF2i663INK3i8Xp
q1JXtRY6AMFVdcTF1yS9Cexqh0iXH7H2Ge6iK5OUTNeiYQFeHEjJpVlStSpvCJGbVWmfquTidj+E
J7O9MQNQ02xasJ1apGuFBbALCjz3XpZld3sCuWB2JNzmWdyUf6Rd33OPgEbDVAVcd1mBpYVb9YoE
UOiy9TNLZ+qnOSL4x7//1efg/Bw7ggAz7FqHGqddZuEB30EB3+HxdVr8o58SdokcGCNksPqBljdL
wV0ZWs5EqD8rQqaxHzMoZCUZAkT1GTd0vQOpc/T3s+UmAKWIlnyZwOz5jAImshNABSfnChhdsozQ
v6iVjQfyEWnQWNZ3NWi+INIf5wBo+Ian0UUzzer2LfsEGFVSL98IJ7veOLNFiXYtpolqjygpp8M1
NCV4vo0IDPYDMHf8EoFzraoIgqziKqmmHV8LRdL/or4snkQGnAe53KTutLJdQJ0SJi64QHodTg08
IXYWyDHrKlUtgOBoyKOyB+OQNJY1gx5COcDOECwdihPmxxZ6ZwYHNlDDVKfJ//RNnPAdFiQcbsML
VjtsHLg2JNjvDYoTbUiD9LVBWRghjEUTZKKg+E5pYEjdypycg/6IlqvsT4+kA6UrSOAsFaKKItSi
lf8bJ3OG8F31CuT1hS6+p/Fw/ngH6jCvIDzoslPBAg+FuOkkfsnUhHCvxUR72pWGqEUS9uAOVD6X
ZaKL4Hw1iRh5z0uk9JCtJGiAxlAeIpkUoi17Ugse2mV81r9F6XamVV2xnVqNLslQLrlbPxG4jzdR
pN6fON/NyYWUGZRV0jtgpRLK6QADrVoNISj7DZQpQf6pG9ienH9g8UkgPaTZOehooVDLUCrGfcUx
yAaShkchuWvYmSUGTq4H8sSrLLBqUudF7PSS5+iUf8sFY0Jdkvu2YEkRWCK5if7/Dsj5AKrSFL9f
imN01oMYgLulAO89WZGnPRGVrgM5yOlSAY1N+mUQN187a4QD5BrRqf4ulnlEhRVGrE9VRqVLv8BY
azZkoBta1S2VpN9QVjBwmEWLp9tUy8AONcu8WsmCiCVC+cGpmSB8oznifdGKMOhBStVbcOqu1aKF
amDAENN00dCUUcLsVaCMbCtBx+hJZ1iUBFICUHrb5oYrKTl9jrvfcqXOVvI4iaPVT5uxFD6inPtW
zhceDtgqkrFFXyD1bV86FE4SLRrr9tvx/eHr8Xp4O2ykd6iy359uEaIgr4sS5TsZSCR/2gJsSlw8
cPlIICqwPMMqL15vVKwRoxGa7u7MnUMFA4i2TogdLcmAItL0uQPmQ7TcQf+SlFQ4B9x+OsMJwQmt
QBy7zE5Avocq0706VMSBIlZDqQ3aoJlA+fiQ7weyHiQFopGOcsUJlkRxk/7oa9lH1VxqFeef33Q9
fJm29/4j9p4NXvzSQTIszy/0kX+127qhfAssvUrzcr5cN0okw8NBXfXqdKoCrGYCCnjCHGz5OJVt
jZGeFIuvovNDVS93dvMDLPRpmbCm8HUw1xsVhT2lXkzxJF1+XywIKPjc5M9zhC46g+H7mNPEDzAn
Q5qC44wD7Jn/fFCmgPzV9wIswC3fB4+LvEi763O1fG7NkpRwe7we3++hE87H+8N4jhxJ6mcHBrPL
YOSG57PY2svZBzEFJ0EOY+MwZwAXOsOEDtd9azclmMGQTzOphNyvfr7Nj9cf7/eLf8PlaVJQ6cFQ
Pz/2Msv5OYgg/mWHZ99P8+Hwcb/4foDJ4qFuY3E42XoXrBgl9HSdTi2xmfxY5AmtQK6msE+Mb483
/1bAg7+hYATbeg4+jwC+JM+AecdHJIexucWn49vxDva4H1ovw7aGAhsrVo+0hWcTw2tT4YvldNqj
+I/mRhwhta1z8c/0BnuIwoAvh+VLER6AmP5MbaZv6AfV8pnx99jY2Zg9j9crE0WNX5rly1A4rlIT
vafD/QC+0stXTgQaPj1m/pUzSvEzm38stE9T87vVj5xiiN/JvJ8q/innJoHn4ztqFxe/d8v3fSx3
lmbuTz3ZsBvb0yx+3S9f29AYJRXWTQjKvwrCqcTw7dwlLMy5C+0bu9SafjrQb6m/5ceXSbInExj/
6fUwqZL8V/+m6u34NK7/zcPz6XKYQODchPXhOj7eD2f/kCHAhQPt1O0xkJzbX+0eu+PHps4weWRs
/9gsghwoM9KHLoJg7NfL9fgv3+l/7+hFn+IAvsHot//5OFw3doLm34c/hk/PFoxOeL4hFJ98fi+A
hJhq7v6puf83msK3w/01ffX27ButPYVU4YfT4QffkUzPpFTod6cW2/4nDyX/GgiFv0/S8IfQH+07
PwjpSucWQ/M23Z8JRc6d8kJLzOt4BuOI3GgtpI7oYpznj3/9i1+IIL0SbWbAwhqmn7+upsGPRBpi
Zq42bsmfr4fHzd3I34fMH5Fai6c3O16P/+1TNx7SIYW+vmBL8taSeMv3/xwDqgff2dYi5q2coMOL
t7yxTSkYJffjI1R6dDTegng9bm0G6eJqKldlng1sv6fnfL9qCP/xw+F8Of948wUSqdF0KMDcGlB0
rb0JRNo5vmcTPksH9HZsL89DmTlRKTxvohc3x+/Mjf9qTgSKr73I7AW+PU/iFYiM++vx8bfzeLux
D3nJmV2Nj6KF1yMT5/XxBf1288m9uFa0UF2+wpPiELEUCz3PKedW++EXh/Cm6XKv3ycMfJtb1D6h
WZOnkbxrR8YIIhTEaHsUumNBfw7zE1pRSYBvRX4LiRYZhUswic7zw7fjE//qkJwzJqvHncJlDA/S
gv0TrRNryIoCvy7Ie18hBtLllaNVN18ta/y24H/bkdc8dbDgSeZ8Fl+AeEDs8u/TtuEf72jOsjVn
4h+AnyMvXKanpNOF/vZwOPkHL7ykAwGjj8yFtsxdFvWdMkqeu/L2UCV9d7/8Np7/FB93RrpFEDkj
bQfCiW1I2tw3Lb77ROtSllv2ZXsFc/fIeFcDz+pmvbRxcORtxtyUMyj6nb9M7mhs3mvyWyhoz125
Z+mpVKwQOqL683swM/Y6PD1Fm4QuBp1uF867PQYwAs7VylWtnn8BuqUjU9Ait0cPm75PN8/Nw4jE
mvJ+Z4dixx2ae5ouL4alqMOP8+Ht+Ag2gshuF5oqJNn1j8Jex/sj0s35KMMLYglhXNCis1EjTc8m
PYEkpidnFRpakGYY8E6r8j1kWdzKvcdEJCU6UolE+Rab+lI8x0OnnnQkz08URnktOjOnx7Bum+jO
lZhfpnbGl7foWH+Nvvhp/DqeVPjr9/fJ1Ql/+7//Mf3t5zDgP4/nr5N0Pf2UnsYLT4//87/+9vef
//inn//0x3/+7e9//NM/f/r1Tz//7te///zPX/+ff/zpf81DlzNa9im1xU4VNPSnzh9vX8ZreIOd
GWTR4qYopPzD5RzeW59265/H2y8zwz4NeDpx0yHtngmlWKw8LHn824TF/vnT3/737/7y0x//+cuv
v/v1T//8088/sxMkbdLzM3Rh2D95Ms7v4T/H+Lfxn3NQIdkfbq7WteZKV/16uP15DAGcfyp2xXol
EeupPV5Hv+Zfpj24nCb9skyRnVtXzs3kUckop8vlt4/3vx3eohz/188//dODu+N3bljX9M+YJcfq
W27ZprVsZiQoMX05JUX277v3cjyvls/2b3//9Z+//Nc//vH3n3+d7gkvMnPl3+I2Of5cyO/87Xd/
/dMv//jdH4I0/rOT3OjkQRRSufzZG/7L3373j1/+c1oRvOFD+VPdvp/6/d///pc//e5veGhZDh0P
8Vd/NX3xzI1dvWSnhKXz+xsrB65nNUdLDnbecSdZxVHoo8s1KKRP69/F1Wtc1PQDt/Ph/fZ6uU/H
8wYFAF0TTZgvck18i+Fp9fi0yLschJHglOf/+fnvf/uPf/7x73/4r7/+6W+/whvWbykTajWwNqnM
ar9Pxv/808+//FoeGhR3xYvYbpUg2EtheEW23ub9ekz/W5rml19//mk6R7gdlrVcLdEFgnu5er+c
k1zyM6p9Q8L7vhChiOoe7zu68+Wff/uFPS8ic7m1zT+ul0f/9fnlnz+dp4l9BKdgQx2KHehkBQEO
vE3sN1X+l8vF10KEPfvn8+F0G1kN6Fq3tNj+o6fy/QrjcL/72/9T6ymoAYmA5kbRmwL6bxjCSt/I
f+OH9mFqU0iGtPtMEXsC4t+0lgg2OQI7dTlHtBmfO9uFiOPh/F4VAW1bv6WICnGfLiUv7UN5FeX+
bYH70LWG/d1M0kX14NHNmbfCXUuPV0NwH5M3i0iFV+sc/hKek/93gKYWYgsr7Ycyj5cP9kJo4kTX
Jg0o89lZ/NP//Y+f//TLLz/9/W/IbPaVW6a2duzf2C/io+VKZ9bgUxjBGnvVkrOEcTeMUMfCD0bP
fw49aRI2JXEo+gPxg19/vPNEg2oRDXud5S1/XpRHjlkM3qG3pfZ3q2GyUPK3XZbx3bUFD9cEiIKz
RahbGShdn7scVu6AqmsgzEMpW4pta7w/HG53AJ4VayNbJne/k+K6LfTZNAh/+6+//v5PGyhBt+4q
lZOf/siKh2I14AYkON7u/3x6u90f2QWrz1BlW1JoDYseAfHGjmZXcCKmg2QeODCnImZIXq4xXen1
8Z8+7yBk3XWuTRpb8mDd0jw6rj19HpsNx+zR6/gcQhUBlfDjkWweIpV+vOlMnvygb4dJOO8f1zMe
qetNq01qmtn8YHJO2eSnRGt481WbBlr6jPicu5il6v/2Mt5PwcAdzk8hG48berADs3ljVLsxI2WZ
Y8iijToCrFvrVu+qtG6f05vS38LfwbJJPR8xPvWyD+/v4+Yymw+uTSP5lcU1pigWOwSpkiK3Nw1x
ex8fwwu0QVzBPCTYGSqr5/FbmJB/ymC5YEBmRTmuoZOLG5QifezUVM8Ia1jfeA8rA9/bjtniIOR5
Cp9bWWf7ViOJNOz8fbhPHoHwO0T7qa3GWeR754XsSP3HWhgeT5dzGAnsFrkixI6k6fjrOxnOPcqK
FGySdLQ0zuvhFscIEJIfhDSEIxgqDZIUwaKL0WRMq2gvK5NpXelvty8/Ji3lFSrYZNLFnKD5tURN
w/p/szGa1UAZhyMLjMr58nh5/+GVMxiLVDyT+FtD1v0/TqDgNhlMNDXLKOGond5PEw7Yur69Y6xW
2vEEeBbNOX5/HN9D6jM4gAFYVrLM8Mf4fVLmN7TK6qmEQkdlOQUqWCtmPrMeiJYprfjxcPPZcrfj
/fgVCQbphVRexcUEhgMI65ucqUU9vGzdh05Xz2uoer6T5B59zcXbnNSHptkz27e6XJF0B8cqwL3y
l2kSft/Od1rshvYR1UiyNvQRJoUy6lBADWx9ZcEklQ5qGTUvH6ZnFlae5HKCvo5uAiHP6Ah7sEJq
fvZYjYGzGmnjJ1T59Xj5uKXNRxuvW5I1z4e96/F+vB8BCjAAoOwxJh3pEb22bLFdQNDWWLLIPAj1
749yWt79ON4iaAuQ3EuWADMymjH9/syCbIIc46B3BrCkpocxWROvLjZAm2ERU9QGtwl27Vmh6DvO
thUuS7FjyG8RAC1HGZpF7fl6eIEIbtCG8V38YPsQymA42FwrB2A8jOaM2cqt26GvOvoEZKEYdl7C
pJLALxBMT+L081WMMeBt4NuRrgGVO0ucUIydhEYudtbzHrRuqXlOO/iZ3N5Pvpbp+913TAPSbrCa
b8HMw6MP8M3TRcZRtVo/ljZ7+uvGpgvJSEfhufqs9O+347/G8XrNznus8zuPE9JAwGVwptXzM12K
nYp2IO/ZlP7DvIPjvXCONhgPI3dwJ8fzxy3by2ntaEDOZFYb6VWA/9vb8enpBDaNvlyj602jmqQH
msS19mzvvfcw5BkYYPVZyfEpliGWHsIv23IzCKAQCoUcQ8wAhZSPEaUgMItntsCkaXWwSEcDFdRQ
G6wCtVAHao+uM603LhrGHi3FAcBQ3qcNp3VgeJ0demSnODjFzZVc2WXzrj6FF91XhJcLgmuXaywk
Z72CUOx0VIZeAvuV5Z24tAjgNl8pmKfkwwCn6SjAZBRWuRXlyhffRQeFA+yMgsy9l3kFUT5OprZV
ULpin5E6x0DM4jfIuF6Njk+3SGtfniHdK7quQxcwH/OktDcR7HQLFeObtoR6Q73IZr/Xhqq6nJ4+
4UvUfqpukyuIkZQAp39Gkw81PpObZ3sGzhd9o9Qgi62AxTaMODCBBI/xcDzBbHpIM7RGfFbP8QFE
9b4QHxApXgtcJCLxANeQbtkNLekZUp+Es4MeHVAooDbHO4wAJMsJP71x9TpkS8gWAYZJDYxoV3Ek
RNQiCxmjnQZFOw0I05BFGHDOHFvARBO3MLVDoRWyKZ/TaPVW117e4Xa7PB4PYYrb1JuEjD21tRue
HV1s4UDMrHMoclpG3KKIpUV3Ljv5W+MMXICTuK0rp/h+uR9O0aIiX1bjFb98zkVUHWAAJrf1NvpO
1N5LvzyPsJY0kgGKiV0Vwryp0F2l+7omL3H/dkFTsZ+1eyWmOVwRKEOxmOztowvFReXL6Mme29T1
zFBbwSZE0yrHDZoo351saGf+DX4oBPAPp61rRulxuzxL0pC2jVs1OAkCyC/b0XbTcVaEQIdYBHh5
3qLs+w543hRiWTChofWiSBMRActkywapcoVAPKsQhR1rGWcReToH6DcIjs65f5uMiSzeS1j4FVxr
xdlOco5U8O+v04Bbodae42sLbfZ8+UCoq9+booAglwNB9zqGsIfM7pmMoJnZDWcx/s/H4fSvSfKR
H2ZZ/v6tjMk+x3pGX8UG7LjeFZreHTaZdKxjtNgeL3yn9LWf9GsAdQTOOXtONRmKy4g9TACiyreX
WfncbsswB5IEcyR2ExStbMz58nbwNf7AvGhGEc/gMqz0PH7bBXndVjS84JkQx6RAkhEBqVv9S+IV
5nIGFkcuMWgSzahj9EAJ116vIwwk9Xvkgope5tH2ih7n7fn5+fwDLxS+VSqaJoq+lfkaiJNuPvn8
qagFyh5EDGvhHmxBLCd2x2kj4Qrp0V5Chz1rOJT5OYD0LAqPEF5TGDF/u17OL/NhbITEFIO0dp7l
choIQwsuneyzP4J+Y2B+Y7+F2xHt4riopLem+5P+hmwxSuQmBNQeBSg6yWlTBvJFYd+6N7X3yaYW
7+K8hRgw+rt8O0/ns52ZvC8Sfht3sRyd3DJp0/6PX8ft3FIjwPIyX76VSuc4g124YRcPtX0XM3it
h9aDuwUvqBAvqDZSNMI9mqaygYtreoatpkgKYEfqteyYyEISpR0pWEKwlEPeHom2R25+rtHnepO0
7dHn/Q6b9gkTQHLtQ6dDt8HgbuNZy2X/l/7LDlVpwcUquP9UB7DlzAqt9kQ482ILVg2s2O2iw7bz
tLoBg/Z9119LEMAbn5/HR2/nNspLtAOBl5a7vaElh5LuKoOVBPhvDSNBxslCxoQKb6BqB5zgvh15
nzaZz1dOGZf700qF4XIzaknfryl19fpLu+Bp4Zg2zaXekY112xdfpC/WkSeRV0lx06h3EM1VgnG5
1lVUsF1cuMEoLN+S9s0gCoJQNNl7S94Hhtwl2+U72W34LiS9ii8f3JKoAe33NjtjufNae2Pb2Z9d
z9XgLHGD/ZmBimNgtrnZ2WtILyrwvoNkgoYcR7hBSksFDpTEbncrjM4aILEL6tuOR0wgbVdCzrKF
ychuaiDFZAgysUO0eVU8mC0E3KxSE1gIuXofZFdsSUc5FuFulfNZXIt0eHray/5xeWFecdBbES/B
5eN+eQ5PpMFgq9wX6d+KRDoQKyL3AOglxalqFO/eklZhMEkzjbmjarEvQ4Td2lWwCFVY5h5WLu7h
dNpFt+phj1+4aIjLc3B5NwqzJao6nS3T1j1kQ5gcK7+RhzJpG5TA1PI9dlZXa9nSGLurrRBtqpmi
Pg6hBcp4/LZJBg3AEajZm628bAVy3chtBfl3ygH3eV/WLQUixbWq78U0qa3dqSWvQQZA4C+2Konz
zXy8vB9HmE1sNgKH++qIEJcrO7D7RGvvqqMWVPMWIlsblp0oa7IqApQREHZ1q8Kfz29h0NolvMEE
q24lZ/F2h4h25ELbfVYVHUoZySqNTquvxCbrIuUecp6wLiiH19pth2hlrbcT0xTIoaGLBrmQxu47
3/lMcaqy2UWibebBTEtD1dDbiRdDI6MntNwJjXbkutFOUZ0V9I2/bIJ/NEe4Vl8w1vdO1AwacGi9
qwSomfNNoFeBWs0F4/b/Mc3OtyzjSN8wI9Pq9MaV5+LpyFbXqDidpRng337hOOQwG9XqbM0XRMP5
0Bb5/fJ099bpSfSGUmu/mdw9PDVbNj10jZPj2kGF75svY00/T/ZZdGAlqtnrf/nP//PXv/7lV/8Y
QupLxwVlREZ3oZtbt2zzMsIvY2gzOw/Ei+JAmqCSp7bDQJMu+d20OfMghh1kSQhZGnH1yyh/vk5n
Mw/BC6ElV4I8eetHSB8bXkZ62jQ7v35OPp6MDv91v/W1G/iPVdn1N/HY/uNfJjPzOPcYFPxZOvJu
QHiqvK9/X/K/b8jHPnNF5337JTyXO2+95X+fNpq2rfVrXqgNaZBKMNt0Ge6XMxDgpZyv+tD/6n+O
h6fj+WWeOX+jrTSb567BuatWY0a67xbse7O9vP94ViUS7JqW3MR/f3n6Ma8caMWha/XRY+6/cOAc
RMedQ7i6v4z3HQdBbHa4vaKczjwPfkfmCqHGYfx0fv9YrhG/JZY8oeBJs/RyzuH8+Hq5gq1cctCq
lvv5uQmw8KURX9VJl+otC/RWdQf6tfzyMtQ3n/SgaksBtSVb7Z6XA/vDeDpta66BvPNSTeEvhy/j
aduO2brtdN+8CApcBMHdw79/+W+if4H+k0OpQqu79PPl2/YgA22LnkkEepSaN6A96f3pw1hKrb8G
gtCU3yT4SHa13JBdAQ6/J492ENhIvwbqk1xWgqWC1jmOpyeidYDhHppPvZAZWF7x9dJyM5gVuODh
iuHNfkv/9uAQ6AtQ5U2cr3EHFsGKbin9Aki/KgFgvsN/He+H7RvoSL9+8oh8rfsBhhl61gTREZQD
IwwtaO9HoAiWl0fd7qkfnibTwHYI6g2K4gpFPXpZlCBYv3Qb9xAs3Ti7gWIG/vB7nXfeS7Tu1pfA
gEtgN+YNtI8xHae4Wx6MAR6MLTQvuYq/Cypw+w7ovtlLnyJBoApIS+PKFduGPcYM3BbW7pdG7pfl
4GQ9ygBGUZLbyNaJIExJnlerzNlPb4eXcXsy1rBwsLLJQMQGy4Kc0jfqgW+kOROzXBAFLojh8N3f
3+le8hrGqSZEDIpJIsXUfkeKqgWAS3UP0eGslXqgkMtLmVJOW+cH9CLttd6YRimQEjmbhF0IAqnb
OgIBTdN807C2k+AkyVsFlZ38vz4u93HHCORVK9LCP8iCQOzMYFgZArpp6e9WaTbiGKEt71m1PBnF
Uzw6MIAhr4eEI1uDU6CTiVdGdqrGA4ATJaIXHiFyrH8kAblGmdWGl069LKDGOmwpdzgn2m0wPAPA
mGrYAKgDQNnalkx317YEwK3XWQN7R10P/EkAT5W891Vp4oJxBaegJAdSF24CbGIboJKrhO5vP3AC
sPw0YCit40zpX47n33ZQs4PhwPX2x4a+69m0Qwago6GJjoLi6pBPRUhJUvCwImUBhnHk5ZxKfS28
CKAWyaMZldhvsyqml63jTpQq8udN842iNdzQAG4QE2MLh6D2Z4A3RuFo0y8HHxtjoTNIZgB8Aqlb
W/h0ecRcnm694LdSVhYoq4GT9sIXBsDJ2NbML8Gbh5OnrxVZhJgBlTS4CimsdL0FhBAJRYYe/YIJ
hQAywlbRKKLsj/c9anrpLN8g4mrkCQymZT3yJVAICLmaWgLgAUiCMBv8muuB0a4izJKg1fPH9j46
4j9UaJXAN3CNBetCVOEdDcI7W7wIOEJjmgxjukgIuFoFXc/Z+QFQoW/yqsTYo2hE33Oh1N+9v58y
L2oAneFaZFZt8UE4Z+g4tFQdHmD2+Usw7yC4Qa7yPAw9PMSE2CpGD9AiMGCC51OqURAxOkgON63Q
PzBllF4tXZmFXgJ6gMCvSifna4yCTGLgJOEf1x3q2JFbWKmRP1+WB/jAJvbDAOEAMWsguEjY3QqO
tYgE5BK3/YgUa0GCqQ03BRroAgz1YPYaFeAYDx0Lx/94vE7bcLn+2MHdStF6n69wSIBPaO0eBSsA
MUS546GwbjvyeIzqtjw5BTw5O2zoNQ2M0sAGfP98ub7tAJhdBZAcVYyI3KWIptyyfxyuh5fr4f11
z3UWnIdBeRWQt0AAHmmetQLIQB/Wdn1ojgBSVgaClCvvcJEeEPSQbKC3dLLALirDncXqKnfAvAy7
USZAuqLf8s9B2LrTLEFbxR0QYpfsKARqAm3UDbtSABCzKjQnEuWhAsKABNNJFWvLbwXqWZZWggh3
BbwAXUPVWzsTARj8vu843oP6wEAurWHDSP/58w6+j9gWI4pEwJVYSyDWgtMSsyMLxFrq1nvtiYBB
vBOJ5pFX6gJfBWiupehpsacF3EWBNmu5q0OzplCgjSSPVDT7EuAC2YdacEkUhToHUNuwWuynInUU
eBo0F9YWpEHJ9gGoTjymKgmiGAJAQ0epkx4sBN1cW0bjFUlCGJD4OC7MUG4AiHNW7BG1aoUOBWlU
YmDDx5UxsIi+aSY2xisEvHah5FY+JkpHIqRRFR9shb6BAh9YmJWVH2I8FJsOd7jt8Lc0zadz7YxY
EPfls7L8z1OPDUA8Z2G4inhsQC3QtOKeT+pARRZGYTb8tgtdOK05BVVca3CoJAroA+skglUyOiD4
TA4mhCNX5gxFUk3FyypqXdBdpDnOZRB/cZRAdp4TXF5MgSQAFCDxjEorz0YcyLLsuXMrkz+QVdgC
ESg5qs4cYbGxQLSBYn3lUi8PIMFPsKBEI1BC9flQ6MT/nD7ZwSIqwWUBUWcXDEAC36S2IdoCgWxB
15LbJPCIeyUJQyHWrJszBle9Uxux8h5IbFU6hRgeEMLpFIgeIoaglxthXgt4RtlEPzFNCaaYDBtc
DDD6fSc3dhvwOMaymXclXkMCTsRFLuIS5Qwm1thhK7isgYtG2HnysyXGQMS83EO/obwskjXqraO2
LS4T5VsOfLpuYREByiAZPqTuMYk50qh1fJk5dzB9S119W5DqRYQIpKP0mgNaReEE0DTU3WjG2Htg
mmvveJ0zDHIbaLlMeWX//pfjbY9dpSR6V6TSeS7ybU8mnGqdfi2BEnBGzQhXEh/kcfdiI90alHmY
oWK6mK0DaJRUa/nMULXWHABV973lUPUEif/jevl438Neqi2VDXRXx86/5Wghc0UD1GVc7PfhFHcA
446VotJvNsBv7riLXGoyENghQ1SzWFA2sIFOcke6mBIQzHDY793h8Kpmmmcw/CDAu7R+4axQVUCD
BIEqszbmAslxAtfx0EgvoD74QiSqjkBp+OA4T6MUI1TDoLmgf13HCTwugvmDnVzdbZD2YFzHesq7
mIN+cBwsWHvsIIdNl9F7vSLAFWA0HZtzsgLhACF1jgN4f7087ampcrtCpABhaL2ThQEHMljFpYPV
PixKqCElDBURUGpqwM91ttUEYg3WHQDrw54SZZRDTNMrq8yyajdQMi/NsCxVbkHZI1qk53I6yqI/
IF/EXauYlaLaGuDP3m2U3msQgR/YsMUSgQXCIAcWPI8v4/lpD3oeNmhSB8JDSu9r+QBgg6tYbiZP
FFxN07yaMTUaXcaanU0JLJPw4hr5oXUBo5lHZUi1cV6XxwO42m3VF4LbamjxV7bJKVMH7ZDWXLFE
oXsBea1L95bwpjT/DognLbwpUXIJBwD7TaA+6XzG4Su0H52BCbUksA1YKdlMpw9iByvUHc6UWH4b
+HqDElxGZQFyQZKEchwRXmpcAEooHT000gMI0ARhumHL6xcAlfS926xpAGrPaY71qJ1HVM5YZTO2
A9aIfCHET9Xwhl4uEPEeql5FK39Bg3KWwWw0atBAJQ1yjyAiUdaKq1D462HP9ncdJz8rdAv0G9HL
4RBdC92iWezOj0cJN4NtZWnUGZWgxm9gITIdAORZD4oThjI4Ay505X/SXLTTLkbIEM3aqlScXR6Q
UUejvo3s2NnWgoR3I/eGfAG8pqHrRoleZbFQ3LIbYCH7Dsen5rhI4RnYyQnt6L1tdVCKI5+NVm8n
GMSx0aQFYwN+lDoI/boObEemseaJIYGQ5qBbCSApqIIcK9dMlA8QA/Yh6zboIwsYCxpblYUzV7oi
wJ65kjtKt+/J335crKY4F4baQQPsoG5de1KlgjLdbNUxg+n8BLxY13RgEj5H56w3wqSHvWm4buBI
hdkJBCevxB6liSCxMi03NnpwSLsNVfL7mt4C97quhBBt/AXSOwnPWLEPVO4AETNYdgq0yhLkyemS
LW0kOQGCr3ebfZ8Ac6G7jcgZ6vrXbwW7gVEwVkNicruoaqj6PJbRn4peBZBFD3tLrED4fRADh4XL
9BwAI/tuV/Ir8LPrhhpFjSDSQda0cHjEByhTk8I9V9iLpWskuLxa7+qRCHQ+kcDKh6vyy8EYki2w
LekvcHLWckMQEQQMYLt/csIIyGgS3o28bleVwyFY1GzFEdNcHOrGY7lcxNnUgJgpTWdykHeGddGa
C65QvQ0M9lClc61jQ8BvdmyTrAIvIJzEJvsUzhZK0VZyI3ZvQNpDx7sEkDl1/d5ADPC4ScJQhTML
OA7cAd3DzgSESUM9UDouf6HloqEMKL5zaKHKQBoTIThD12Q+Vxnk1fLRvr/8tEcmWQtEiBBUZF95
3iq7LDCFSWz1gwFXsXcshVV7l0ASHHt+RIMDRSowEVVV5CJTLCw3k5IrB0QQsYpV6LwAEsAm0sKf
so/iGlqBPALTtaBV1DHQrBmuypr2JkOCKPf0CAK3kVCbFWVRbCGobCWJVWELGbcApeUpTkkWIwDX
hOx/RWy2pBKlidWvFpDk99tP/kmXHQaX9oWvhKqgF0GcUZQcacNTAnert2wkjKZDg/3s2Djv3qg9
WUDIyGYeFgByRbKqvd9oNJPvCVxeUuUWhhBMh1GQ4EMURMXSLrEjgD2G5gsdMYUfJVnx5URrtQTg
OuldUF/N4hSAgqQ5IHYpQkhsDyKaNJv54T2WPW8EsE2dVsEGUEQxsKGz/6KZmzCELj5j8pD9F03C
Prk/MPjPdsErXTewEU5vYQ+wjb1xm+VpQB/1+hNNt9HrKXwUry5VRAcqq754QzuNGaTh1A3bZLPc
D9XaNdt5RMWAKmRk5VIaxrSAgLboP9FTRSFfQG6VcVggUZKl88rQPHALad+yEj2VtwJwYo5NRi7L
FQdgIVzZX7ZjsuRQUrtk7fXOihYCy73iNXyuBwieScH1HmspOoRrq5epQC83cNk3WkLlQQB1MPDP
TJSBHvTUhdvb0hpE1QhzBnP/gKySGxPEnQbmUJ41NYGtxowktgkyYwkDChwFcBTWVgEIvqku8niG
bmdfKRT3HtgnMEqpQGEw2zqNGmODYEjHvoFUqnJUj2M4KoVklaB2cVsdgntQwCCa2j9SqohK7xwH
pyoPC1zJqg6PPsNU6FzUfIZNLls8LADsSYI1efor3kUYA+w5e9NSsWgkMbDbj4y26DAjWWExYC0G
vfcFBIRsaXpdk2AXGjWZkyyIeN9Xj+S04u7x3/c5CE4IDt0ugUnQMVFV5e4rORwAJahZHbL8NLgC
SsF0lQoJwk5QVe1ys2c8iJHW/dYZWIv8GyVYVxtBFdF1GwLYgwgPZUOr6mmFwko1vbNKBbCg9ksM
LfJ5DXsBX8kXny05RiAdUvZsj49dz05qor4ryJwLoREz0H0m4Qx5gp2GiJfAZoBTpWQDTBoJgawK
mkmi1/HrngRCyT59hCyH6Niit1pxI35HDnueGkENDzT/ugViUUTdqwGSvSg7fGAD4ktQH8Sy9bDP
9qCMjCaWjeoD6SzB6qwipQS4Rf2uHi8Igmk2MLzP9GviEbXfbjKAPejcnucHUb+lqoDWNeE7yEbn
n38rISgw/V3zjaIYNUIxioEFHMWDNKgdqN1ICQBty0ydh09yKeCDpQPbX6oIHYOgAikNCjlEq2n3
ACsJw+cMwVY+Tm29l4hqYw2buFfH78F1lXzSVVHwDo6872HufqU1ke+sYOvAyvoi1NipPZlxKJqt
cUsUYr/BILKDGRaE3wFpGrbf1/cMPFNu2IhJCYKBKyKbuULRpPbIpJpdqWHIj7Ia56kQlgmchWC7
mNKAOGC3u2Y/o9QfBKUj0JTCvkxLIRYFFO4NcutNa9QuvWq+uvYIDFBt9aLXXeaAFTLsLSyIPYDH
reFqw7aLWIxjO+osOTGg9ZbrN97rGYBqJoG9QOK0HxsDR24dV6s52yPgxnXD7rcKwI0fBN+7IeMY
EODtql59zJOBgAjq+b5CBZEJSsLkVnY2yu2knX3K3y8zkoHWoC3U2mXloNpZ2Q0ZRKEfCg8GNq8f
ecP1SxGkwhs9rSi6raRK0L3GOMmxVivhBdtO6/DUura2ghIIo3WsHiD5wSDDvy7n67j8atQAu+e9
OWR8heG6AM9gHGjvoWqWalhnHkFzJbh+IWUuHkAvtnpagj7EjMRQyi0KE73hq92+5s0gz0g5+Aw2
gX+Ay7BV2R3DyUEdNLCZZ8VSgARSQjergpUuB5RIzz6SUKRGINdSbhRnCbAJvWkWxyX4hsIhPdvP
65f7jz2lo85ZrmVBSauCI2y3pkyzRzykMbvye2BRjd3qJwb0X28GLrGmnADglK3c3YAJCCAgJ+tR
ACTpWIakJGcALiWYuqKn/mtfy79JztlQdUGyAXBGkujqdj+0FTNCB2yMZ8cemM2cMeAW9HyLvSrQ
i1wLy5XZFxoN5C3YjlPvM0YH0E6wJY+7Su6M0GypqEIUvWA7b5WQGjWcVFuviQC72lvDYupCGYLs
LFuluDEdsAHf50jZSuWg7X1igiQp6JAFTChWyPm5XWUuIL3DVj2wZRtSodxjkmTgVdDavUQ1h5ZN
fCrDEyC9RNldj68L1O1XcBUahVkGk3COM42zawboAcW+i7APGWsnufkX1eKgAkyxlrVw8IAkEWjj
GQu9ilADVWJcz11kyg+AG0TcxMpHo6VaqOs1W0JZ6gFQDSHtnvpZtArCrYbbSBSxRn1BpOayZWZ+
CXB6PDtdcsKgx6xhDUGhh0CciiiRsHLDuBWg2po0PAhlFMzzymAE3cM4+448TiO2aEJAdvQEm9Yv
GhzH09Mv4y5BZp9TL48TqEPDqsPSKIDAJc+zl7MAQxgWl9YVmCiA2rdyOFI4DdbVik2eHGh008NW
XDTMAKSp22ro0AMflSKrgS+ZA3HMXnKGNVevotTTKni/Moka4IJhq7EjCPKYugxk1XoGYaqefe2q
rl8Fnp1T3Gvpi/QAN1cP3ItjdUU+kmDFvuhKiy4B5VS3nV6/3YYaimi7Qdw6ILx8zl+J6dCbRpIr
iSuRJeAKtODyd+f7B6qJBFtNtJcnIxmb3jJYy0QMEM01bFwj1IyGcjUlyVF6V8A1coozA+sKQYCu
NRu2LvAFkGX6KGvPJtKAw+gEfH9zx1Ooxu2LvYNKclP1haGFmshRl2zcgTQSQOHqoSyTXT9pDHy8
vn4QV7e9K9RKq2+9YRAJCsTaC8nVJxO5A4ZE8E3mNIqVSLO3lgVVV9PU9TYEAeLW234LigLb3xu7
acCA7jPso/JLwjeIcinJRqhQqwbR8eWOJDcC1MgNe3g0EOUSrCe11nbg3HWZs9dK+AQxTz7jcYHt
gFHrDacntzMsjGW7bhQ5GqgnQb9Bg4KUW2NZY1PDJlQuqhSnM5akc5TtzD4Wu5wdWAG1c1XLsQI0
AEdasy2oSuSEensrWNJeVf8gCEowUNDbK/hhAQaU+zAgyuA3euP1cQHqH3pnW3RAfB8QNaVXrO9S
4jagAnoFU6erI0AJ8MLBKgSSewigS91dnHu/HKyIEoylN7i3xwMRpkAw6iZLijgJs1FDM4BUbt3c
xy+TYYHBNcO+Q1SG+AAM77bSt0Apvhm6fb8PokMk1lmFGGuHGMS3BtB6CFYFyz0vgKOUV55cb2Xv
oNzLui85yeb/eQ8VVT0HtoJzFrB6fOpZ4X6A3A9jNh+FRG8nscQmxVYgRDH0m7VcAIgrsRUmRJSo
qVraqrVRBldI4/zvShcjYabtnMv2mAssBpSYYttzltlPAOC2Hy2hGhCAeq03yrAFCHD3znFNfmot
AtoT0Gp223p6CzTNMtZutrUDMuQ6zgQSAgF1eeoGDosUOUvACzfNMtovh9v4fNnI8TDr1h3+2/Hr
9JO38MXT8fZ+uD++/unrRqxHNfP/j+fjPX4K4BixocSNL34ZBZoJtCVcfvk50L+UzcvPgj5O2OE+
xqkDNlE2u1PkVQM4rZvPUZT7DX5ZVUXH9X6jFeuWxSl/GYSBVPPZhXK/wcR1E8PS/Qaioqpql/XH
YOKySV7Qj8Fx0SIm0fxlsOOymReWDwttVxOnlIcF7Ktq3q38y4BVbD++NZuk8PkfDje8bt26HuXk
wQzaT/jlyYOz1mZTp6CJK9H6PHz26+H6Mm6vvHIqGpcESZtqPkdRfg4MumoeXXlF0eY18UD56+iS
rp+LCmblNNmVkwpfPF6uY/jL+fI0Hs+38Xr/MpmrK/tse+/NfFyVLPO8ny5vt/v1eH7xb1cc7+Mb
dyx9fuJMlq0a7j/ep0k8X463p/F6/Do+PV8vb9wG+aCRFGScbLXHaKxv4/34dLhPk/rycR/PNzCS
SyIuS0r0KV2yaaT5rx/XI6cm/MIkmVA+cb+71/Ht8nV8fD2entCSupQgIMtSmmoEjlnuSWG3LBFx
fcJcXKjPQE6Wj2TNWzBdu6MnDMfz48VXNYCD7vvqoBV/0FqBg062cs9BC346TpBhsqPit+bx8vZ+
uI7zGt8vtyMigv1gqXCrmtN0D45v73FiBz/EdXyZbsT1Bxhqjn/J0rqEI7uN//NxOPm/cooqiE0i
tyvBmybzeDk/H18+rmEuj4dJAu7vHtGO95Htvdnnd0ZliQ/aJ2fRyblyaW5ryxW/T3Nitywt0bLK
x0kKJrwdPL4bUD8qiwFBXn5Ok2x/THfEjwPOa+jJBckRuySO0xi3x9fx7TBvFthm16lye4ZyRefp
oCZ1/zjeeJ0xJ0Y1lM40lfv4/T6NdQcR2LCirDRIF7BwqW7Hp47/su9EuZkJkR3Ol/Px8XCadM0b
2MqeHCkv+tIA0VddqbttgifPl0nWwcwdOcWQQRP3ftqo4/3HSskB40GUkzIhxbicAvi0l6W218CA
TfsgeLM8l23Lkr5o29QO2VTRss3owg68WFW2SAlizd5Pk1wHcwauvBBalXCjL4zR4enyfg8iwtuz
uX1CpcsW4eY1hSHWmDhZtS0FF3wu6mrI9yRizzHjCQCCuTvBysostnj6qz9kZIXN0LLCQdCP4w18
OccFKjTSFKoe2e+eGN4ctvO66dvr5TT6v4BrIgQ9h4xpSiWjgJLRrQ3gTfUATLXZDV2lADsiJWcX
Cc4DR7O8LVJJxlrtA9wwv9PXmIVfyfNh+m8XE9Q5MJmOLGfIimzWpd/fTl/H6w1E6PvcEbmCZ829
RTsjO9m6c/6+f8Y2zy+2yjLRtgbzHQLzTXegrZMN0sl965jaQod0uxQlbimQgqcqJ/dGAHUuh9Y1
9LKW1Hm+zT26zaI1zAJ68gkBDGe6lhda4wbkacmhrRQYL0cCL0e3rITfhmkuUb+ku/jtdXKN420C
Aixc1zJYfkW38mojnUl3aCgOuxoEOZPGtO7Av7EoS1X42o6fJw1+OB3/taAL4Mb1VH5IClJLDNEG
UTc3z4gkIiugqto3oWkYHTKMQ2spNUACzvqSPijLTAzWuEleAc9dqmcvIEVwVlgL6LxeaXSrrqM3
J+Fq8mNYSuvkzWXdK+CjU0ugKVfV3hsBqB3i7nuHSw/LSZ0ul98+3t+v4/PxOzSSVpXqV7Rnk4Eh
EF/bq/0S2CMJtK1JTTv8+Nvj6+F6eLyP1/l2HtBjIf70iaEi2QglWt3Bo/XELyJXs95saHutablW
bTCBbG+bc6hsJuAKJJlHFza4W4NXgfZUARVck5zI2ZSsq814dkDtOMICk1zA9T0H1sV2lQ0HR2QQ
DWw+cRXQOL1qk2iMiUKsCLUtazU4nZony/3Vul6u4a5hiGGJFJEEjbUXDKZE8EDFehHEBLlpUSEm
3fRZkAaskR/wJxUCsqqJIGfCBbgYFKpVdBN16AEGprRv3oTSFUV0mWvd5oWLMMAdGUoRcLVIEScL
SJKqmL6+6dUgx3PQrUNckToI4FJeIfcOXcUowDEQqEIo2CjNt1n3ALvX6Sb1trLnFpkYycF0GqtB
nlDXPNO2p4pEQ7RhTqUdFLC4FOiX2uFGOHGEQ3vHeHVVXBDI5lASAEnLvR7OT6cxqEpk3kzPMypE
LDXiGmXr91doHDlMtaJ2DbgAkM8gmviZxb7ARaHW1RbA5bYryjGdqGltB4PmkH8sWrwOcbTQqbry
mqJQsUYUiuGiohz4AVGb2nM0m5gZeLPCfDJCBrwUR0nBjObbBhahXhIQBzoe7bggDGcFnOkQiKIR
1FZlHc1SNBqIYIXiNeYxgB84WHDBn3EJs7/gtYOsW9+D4LxybR4lkWdLcDfwtoiQ0a7JojQdJHSz
OrMjggcBhajuOJOxAKIszrS48PZaBqQlOm4tBShAuMKKlgJfLQaYAFdx6W1TPCDFPbRUSgkVb/fJ
rB5OlzNk7aRtJcbUaBEZxK5rOVUzVAfcDbE+oe3SgGIT/BIGmlFTAt54pssg3pFHORaU8yvPhWZp
QEEn+qzPr681kyqQo6oVF5ZkTAYg/VxNzFqwP1DyjeRoWUCDI/zhNIevqwgXOH2aObSh5STSctK0
EiRW6BIBZJqnQbIJa5QO9rhXHZfqUfBi6JSc4BZS6CeQK+JYbFDlmwAraGybCq33AuAmirTXbE1m
oIDpsV0VudkIDCPS2pkmJixYPoQCuQQuJkQNFkXzWnTuQ9AKjyD8Vud59s0sKWCUe8d52PTKwDmI
5hBMig7QceTqkbpbxgYgDW4sk/RX52sh4NVMKlnGSKYRDdBU//44vF4rHA9wj3tZJWfKGl2XKAE4
eNZwAdCVxCGoMMj96bxYOThRuq5KMpEs4DJQoE34tuYug+QjkpdVZREQQgDED0hIRflQgBKmDUpR
jpxt4tq2FUTBImmBTqAWGcBb3beyi9tzQTlFUiPSa83WD4CtHxifilG+IKZhmynpzasAMwB6zkts
gDIIWrs9AWaFvHDdlb4zgFA9SgXuK4fTNVM2EOGqmok97SsJuE4Sx6Clas1hABijKVylp1eAMbQg
4urRGrAqbfuF5mwD+tS4luFnhAaFaUgiFkkpYAZCeodmXkoAeYEalq7lBKyHANdbKTQLghQBvOsU
p/kKQgzdIwlSlmqHFjqiHUNBJY23UJA3aG2tbamYDXcNAkaFUlVzFAJkgxu7u17EIB6n71pJ6Y3c
J+SvmWa8nOY0LtATMLK6ycW0Qzy89BgS7yI6q0pDALQhvUZD+GMz/I/wldUtcpdLShhAhnEzJ4Yr
4QL574RXDUwVTGUFeIsLs3IpQyCdyg6bEbHp8CYperm/wtS5XbnCSA9TgCM3MiRQZm3PRjwbKgxl
59QZ2VvFUw7sst6VK4TsHdVcw8pbWENJoMFcW2kw8gz0hrKtBJsVTwMKNan45bBbIxUPiLCwHCFe
BHGQnVGGSzrmyEpACg/9p7JIgdz0rhn/WAML4EErAQrJ5uIOcEIEWRMPnNFZwKWiMalVwmQpdKgg
qo5+RHp6pnpiGP4KY0HW7dBUENvQpQw8MQhSQ3q9D4egWyyHHetAGUpCVORKO6YlkSEiBs0tjz9U
GS4KeUtDy2+rIo2AOleCcycayh5Zn87tI4yRWdaOC3nc9jIPE6ITrYSGJqID2EdXMbGeS30EAjY4
kOaxMhOoQsvsSVmRCOfWsX6uwg541ITTIYqwjdsRv1TTqxuZ3wgzkXTt3I8OWR2wyQObylBkDQLx
bYOUduQPKVjNFiSSOw1iN8q28kjrGCaiLGiC0oABO8xO6jm4XvBS6DZr0eKT2gmRKMQ97OZGDUqZ
MT3KQvaazpNLO8y5kDRm7lbILd9IUIeh9S7aBPFbeiMZomCBBsQCNUt/vo2nEBUbYQhIutLlIPCx
uHvA9bV2t/ODJF92VTCqzV+i2Cu1qPkJkTJ3GCBWmi3qUz4nR34jXgnIQlcBLcXbQlSy2ZWFvVVp
MaqaZ9uUFIYLKQC6nXyGGeTZ67TAZnk2Si8QLc+xLGxGSxiY4q2aM0PV3aoJajibCfA/ccrJkyJ8
/A0MJUVrqIbvCbqiCIdsJlGokJWkSCuf0O39dLwX/UKgmNiBpW4pmgcJD6QUuAqGF2oMOHm2mV6z
XDUU/ZYcG0oUF8rX7yjKHJj6fbR/g2aT4kiOIPIhpOTVRc61R/R7ZzieiM4B0USymWVY+8coccv2
LVO04qqQMaVJUS7AHlANblERjRXN+9UKVSL3YVC73AfgLfemWWnf0BaABpTNHkqNMQAUpNh2nZW0
yogADpHtATM00/XgspPcjNrjIFgDXVnpOKR/25s8N0HsikIUbb2Hsi93xZ+RxAtp+VKffHER7pJq
NwK0CJdbvTOQCBqICAkQx5wPglrq0NIpEZJCNsw0AGF1Ywmm4AUSXZX7BNNrUUjA9K2QwJwoDKox
+uYimnoMZZsOHcek0LRrdFt68YmwObq7tC2LV69yQHwB0vG1jwzCEQhBdBXBPLRoB6DOlNoF9tHm
1u06tvtSAeK9KwvmkkqZBgrbAqt1XDMDdz7ZaTanQ8zagN6PFVzzHhrSQ8W4zrYQdq0VEZKQPbej
BSQFzanIKjzG1KjsAnXB6IbdjX80og+15XaV7glit6Ru52hzcUkU/e04s/Wyt4nLoM0nhR5E4tzQ
7GDBR7ZBNgzFsQPpl5rylkKtZsLDqHHhJ/M9gYISbruzEYp1iD2lvDDRzpWhL46zQ6CRAB3S7rid
KuJANTDb3pITGpBWMYhWJKz2eVDOQN0xbVXE12qFgHrK2l3FzhIxm8P+5qZoaW0Brtl02FJBfLY9
KhDidt+zKmKInGwtWlnTq5wDoLCc2B3nEAhpC83GKahtApEOqqIynFsaLQDpaFestZsNg5tDIsCk
x0FJ9oK8x64qb6lSQ7kMPdT2dtjpvQBOrnMtD7nhVSKkbVQ784Lvg4SqXfYbEaA0nYAtFCpCHJVC
dLuSglHc3jYbKTBFLyhOrXh6PFNmiJ3u+laEjRTug183thXrqBgQcH8Lr9+bsYEt8AIgrGMLFip5
RV06DNvwhFPSgAjumuWWbSNvgZFXKL5H6C7Q41vADog5Rgggi7Ko0rjs/AmGcaw7VNwahL9sU7vR
3iFIWJthIBKhRKSuK+OkTHYAiiJVI9DKCGrtwAiWpdmI6UeOT91mORvcw/v7eH7aCqU5W3G4XBdy
ZLOraCLTwgW1OBWyguFN4hVsJA1cdeEPi4vnUdMu1yq1bVc6IQGTqsXC8o4bsJbWMtnNqYM+38IE
AQvzSYcDJTQ53dKPqLcKqvSxnyyURzFN13GYlCY3olBJJ3b1oSbAB0Cxnu1oQ3Umuiyda7pmzRwA
FMl3+yIvwG+wndnRzhfSx6JZzjLTxwD50bI0i0LVYPp1D5/N7kIgsWnoNKwxnllKdCH7ltjzxArY
HRp3ZYVeovCNYKsXiEYGZeTt/rb1tUNubZ1suelkg6N2g9rdixv1GpPKIG/sZX+Plt5qDJ6KCAxy
PGj9oKiCjrftGrkJRPTthmFJcjOeQv6c4FR2AQVR+MT2n8TrAml91+rZwmXqAopSuY3g8udagvZ9
s35hb05LTxgW8nBxO5CBYB9b1MjdLZAUOpQ1XBpWSCIJ6EzL0BI8DwnL4XM1JoDEcabVvW7lGgB3
0SnEnq7bpgOBGdgUGuIjwCwgu6s0bldI0FZPgrTNAgjh0WraWNDoGPcVFPBowcVoivg3Igek5pQm
p2yAcXE70rtR2ohuPqzHG35QaSUGjj2iDiEKcSru/YHCmUN7qzSnXKpOQ8ChM0jOlrA+2NO+ImI3
fQgFPFzCnwbOoWsF0kEdgTI7uokAdUKAqrdmuuzGBlQz6Y0dQr22mR2BEjHr1svMdQWtKHqj254G
5wiDPh1OIv5sdwJ0b0t8vP2kIBB4N1iOxaGyip5xG+AzbqC+fGgmrBGLiaI1TnDvKlb3FEi2aZYO
tnl89KDe0HpxjNeAoDRdKr72Nbs+yN8Xgu8YuFhclHGqNZ+zugJECNrXTD7I1DAoU8MMbV9j3XoC
peJa1ql82cvKD3pogfw2jw5eeKNlELRImkv4QC9yuFYeWntGGtzErp06Pwf+UsI36g/WtcK47SAs
AsJtz51r8gBcH0qE2sWHqrMrUK5SXYG3WUQOzMhAerl4wKTZAk70BpFu6f11FgIwHTRbqdvxKh0C
00OJY0HY3aATN5JpTZc7VvireThCp9C2RZhhJBBz0zcDAjNcAbqbGkLLv2QEGJreoIdfth/oGZTc
3ZMYlTlKpTm37barD+OEvPqyFrbdCR4FguvHhpi+yMh57PsWliexZPRqR6XQUH8D9BpUxW8xmUPI
h1YbfdnSRiBVZjXy6MuyVUD/K8m5Jbe9vpEQBHQVmrCRx4fsjWh2kmp2l0GUaG+Qh0D0Mri1bQg9
awxAZPWCSUqJW/F1wjeTlMEnCZtFYmXCDxAtYpUIAuesLVgJbVW8fsy+cm1AjwKr2sfBFZsCYXXN
1tnl1gBjSxLbSPOrxa1RAExZzl9upOQjAK2bVeLlCkBPEtr5uwsZ5z2LnJEibreXXBGKwM9ybCke
g6RAfcHQTl9s33zUr81+otQcRjRrsqad84Rois62a+85jgHk11C3mDza1ewziZrRiFZaMPsKBnpW
jzYL8YdvVanlmnNDj0k5zsHNdBQ4r0GxQPG29w3jyYg1qwfb2bzIt9W7+vujOjPa9KdnO5wicKB0
m5Beawm0I1bvam0FNHav3b7e+ygZuN33oe2VoCImI3Z3l9GoQ4dm44KNdlsoWaprZjm3XrtGOWdi
18P2qCEExYA0G3ctLSgd11a9sg2XAAHoVBqNkRuGAB1R37d6K62CBmg5at8rq4sCB7WaTrdeNW8r
cNTCttmNdKPTKnLonNltdlHsSgq7/8F1lKDWqT0uKmoSWBd1OPTUGCoO6TiviEQVQXxElrkUrQ4t
6PVjsd8TQmVoEryIRDo2oMIS1XS327mHaCbSgeeqdsR9hr7fbQR6ZAR60ZIQzj0CGU1KtrIpN24j
fEe8OTOUZIiipgaEUuYAH6DFheVfeV1CDlBwHGrBvGpjBbt+NFOyW2YSPQBImF/vRSnRrkoCOVtD
+31MxB6DdlLdwKOIDPKQk1I3NGgVKyJcJSUXWafJksiblR1XV0r7W8LGSc3IFNt1CNWWCz7DkHSC
Q0nfyrVfR65fZaFJTYjPYpoTtxg6QMrT9lRqg5RHKtg082vbcSVAhbiBc/xvexH95GsNrWy42kdC
Ho7oW8LfxhywR57mWhJweTegVs9Vjlu7zTFkZur8YwsqYQAL6NgXvho+CvJF6x6Colm4C7udWK7W
jwRAQKcSNewGQyiKLuWwK/iAioP64XMNvtEBKdQucmUf4cuZggkAFq9/TODztvcBEMVn+K2EB13S
TvGFODlgi1zkoUMP1q93HGB6J7kssCJJD/mEUoF3i2ZRBqiKoulurweHtIVrxrPbES3AIZA8V2WW
dC5iqVo5xcBkyf1eg0J8bt3ccStRC/T1ckx7McRYotIIu9GNoEy7R+ERt/+pZRRzV7JFMrTVJKJO
ZN/2HNZkEOx0yD5fS6stELakLfobJWbrzosopCY477PAhogr0Rq15S3xBuJKOovLrYqcBqQZe7nn
vQroo/WWrRD3rSDRazSi9Sh8G5Mi02U+wUAhRSGbj9SXYTXUqsGiN0Az0Q2sizbc+zwhtogStRyX
rVkBauS6GMsRnsRfR9BGd8zbdY2UHQAdBsF1+uNIDJCE2X55pFoUwh/acGFObjZA5m3P9g+k/AF6
X0O2Iurt/oGwskRy+8L5LCDFaej2F6Ih8lapPX1RkQhKnDrB4Fik9mWzo1/TJCLtojpAUqw4QyBC
1buX20UewCQNHfuyD5cyDtjM6rkq9pEfpEWHgbOy3G0DE3KCf4crMwQo6bl+u1UgS4sG6tX+7GmU
yTf0exLBkZYn/lTjyZCceQbgZrt7T/u6I29aNd83a3bLhA6MQwGbtX+Hmn/ozxbpA63oZBt9cvVy
YF6D2peOBiyHFT1TsQJVIxiwKoEp4wNLPAYIc88+K1QF9gEF3ovWJrPkL4IdA+CY9mGogWsntVKB
INLbSVAlRhNRAN9l2KqGAtgj36nuRcD7cMjlsX1rIq24CzB5ZFf9X41hu+/D9w1sy5JvEBTosRZI
ze9+w6nvB74h/co0oLb+brd3aWFjeLU/WRzFCtoJWTkSspYkFAexZTVZOxkD9R8WGj6yt1bHILY+
dG1RmttiFDF6QACpMltMt/N8j89RiaFOBc3Sd5ZKQkWEVZuaTXgJUO9Aif8BB1gMov+N5qKUBfeC
sjo0+zjZy66W2kNf5vJwsUHUfkSzDjaHLkCs0jYfzWmYK+BMmp7blAa8RU5yr9HDC3vz0Ho77Ep4
3UWUW5q/JVe5ZBnogvkos4OBhK3CaWiQ7eQOWRmSjxzCnK6Z0IQCpb0Eb+l8Jr/EDmyP/qIhCnz+
t+PzUldlpDCoCDsGklZPQES6YVdfAHSnld315AiAsD3/Jk51k4Gm7dsv8jD0AihM+sQTdMjhlXXP
BuatNIBnrIK9p6JNPF0et8IsekBhFoLJQeSHhEer99YKQUGJ0EruJoCQUylku69RE3WiV2GamfwN
LwP4XmajP1JhPtBd7sXODqLAbZKy9bBKQx8Aj7brufS5RokOCqwY1WrC1pgMyGMW3a7WxEvgEtU8
da3muVUmH+jlQFvae+wrB83pKEA2moF/HzbH85CcDAPfIyfbYxR979yn2nagF5pcz/EFRS4Ackll
9UqLY31s1NrBOtCqYz5dQMOIyg3ZyFJHmKv9MFxD16LeUHseR0NZOp1Sn3j4HrXZVGIf7YaSBgSr
aBs6BUVatWs927fF34GG1DRw2oiOpwFf9gZK9r2FAKIRvXEohEqkBzGl/f62U4i6cqrj36PK2gpB
w64K1YHQEUobkARiEg+gXXOEQlCmmYbHNHNHgfssNz6jQbe5GOiSiJ7LoyocCXQdbDvxgO2uAxYk
mMYrdfkTUFqy3/1Qw0YIzNV5CNy7BtCy9N2KMZn+j+9yMH9xGr+OJxH++jgh8fCX18d/LjbHu5XH
89P4/TZZovF6nY5mUgH+316en6eZvFwnF3y8/i9mCrprPi5X/0IedZLACbi+3H06qP9nbmA1NPvo
TwP7HSYN4RQ7gulbKnkaoXZPJikMQ50/TiduNFM/by2bC43D+r+9HZ+eTiO7b7QZZrbGaXI+hWJa
pKdSwt/ZSZlmDkUapRBFr0fYyQzN0stpmBxgmWX8y4/pDL2GPjw+jrfbPFt2aFpJmUtl0wypIuHX
6MAI8+19vh5eIr/7NH49nD7YtRrRJHtaW7b8A79vrIRNG/Tkx3g7vH+7TtZ1nud0w9jRnGMkfjUz
uEJN4DMhGhpyz+4RST5dC2fqBu3/6pfJb3TXqguaBpn34ngO1Pdyf8bvj+N7ADdB5ySJY5epBuYg
iwsZNUXSPFjhqOZzDqtFb4iXZNQErZ4vADe/QM3cSipdk4oO/3i8j2+8ZGlGIipd2vO6lMiUtzyO
jhDPq76K7Fi9Yi501jaFtLPL0nZjr/dJmOBPoFmKWIuYP4LNSym521DrwcspnsX5ch6/T5oV7KTp
NVCNaXWF8rixQ8kKSZjmUtNE/V8nmeGNWw/m5SMgcVq8ypeoUH3jVN+Pghdj2WpBHSSmcoNT5AFB
Aq0FoybJXb9eLnCtun7Kgrubkl+UYUQrScDx/HHLIoAskDGtqOBsgfJcwj+eJ/t/v/CDDYbRp4tg
Jv6Dn87AiFFYDM2kZPfGSmZFHmFPknibDOL94hHM5XmGOKxYOtFyOvOKose4T3f1zRQSgv8CKF/Q
8jS7t/f7DwgGtW1F4tN23d7Hx+PzcXyCakoNSE3lIDrGk6b9ZG1lua7jdMHO8II5xczGr+j1cFuE
8cYLQMfc+EVld5pdR/uFoeY6/IzggbuOwYq1MGt+LRocDrme/ByavVTXusbwusYxI+xwKB8vH5Ps
jC+Tfv3K71OHHIZdZ26UZpChX+bz8Xq7w21SpNihBDuJbL18O0/rnC8DchqVAC4oIZh4S8hiQA9K
t7ei/bKkV1mpdCNOYoGQPBaystXmmFoZxirzQ5qem1wKWgd7fh6/bXtiugfq9NFnw2QM9Hh5n/Qg
v2UKOT/Llu+4b4bK8kr50Ds/rTGMFBAff5qaO83ZaERddDpM5gP4A8Z0zG75TZoU2tfj5eN2O345
Hc8vSL6VU/scRWwt0CUpbvzz4XQDXqthqKigmyd7v2tFnL0oIf/Hl1jssgH6Jbc9jAcXzw8P6prP
tK7kM+AFXjLJzLRXcysoMy1vnMDM6bTtPOje7vGTMjcGfQfFWJikfMlB8s5MhT/6TzqG+bVdHrb3
rQaRDX9uvtpPx+fn+ed5h65jLFc6lsPT0z51WAGnrtrEbSNopAa6qxgCWkBpAOwZn599ReZX7Dur
nttr1jedjnN8us3QGdE+mmDVMEHNgKqXcZPy0oPcozwoOiKT3sm3I2xSyN0OH830EhiUiI4Nj44V
c7SLDgmzCTZtuq3bUkuaRQpTiBxRl+fL/XkCkk/Ij7WWQU011uaDB1aBnaGO0OayjOixI7zo2mkk
rPp7h/pybvIiPKrnGDmOFvn+BlgRCbz2OBXvfIfwPn/lNYNQQETifHk7TBqJh5sSYMRWIAHT283s
gzTavEA4Qt9s916J+37yxvbchBiw8e14f52syQbasJzPSUZ92UNCW8OABL86mtjDYzMDnKFMK0J7
ZBQI/1D9mW7TJno1wz7sk3V+xkE7Vb6GUGPZuM8wx8a2CnbWY+6wesaYVnXp+mB5WtZpwEtMOxRE
FMjFgKHKTuxv5K6jXDg5/sA6DGEL/oB3ZxBhRIAJzxcZy/CVHG76Mr4czwBYa2H2BMEz5bM1oBo4
Sou9PYvrNTNJ8RLxU+4Yc8RMucCO/Lx7RuRSk7QgsbzAtw15g2j/hPOgqwdi5MCJLw6DVpG+ofad
oglPzj3v+pqd+GkjnMpdyYXXCQr6Cobo7C4yuqDBeCOGYusRMAve4A+Y79qdKWAFCFXHWVgethtG
dENzKXLT9l0wYzdWxbkBLxsR055LQsjpVkWoBUYSbAcuHBVHjPnsHvab6BKe51CDYZSzX5Rn8DBH
bd1G/lA4yZBI+6/xeuEpRXRPiSbaQU/qgaMna7eLjy/Y5hPzFaredrl6w0CmdqTu8DwdXdRrvDjK
jceUp7/GtmBPd/7Y9ACiG/P6sErsHYhuFHUqPGCyIJBU8NJ7SAQtAKRusdy7qDDFxaqyB5j8Pt7h
+zS4qKH5drTKAOhJrs9Ob0IPnCdeUCAfb1+mO/0MQz/aulbe98qQb6VZSQvc+c0YvnIC6ITMVgOo
hAK4JMcFXxrJcVXkAq8IhQ2Yr8TnWO8AhjG8lrs2C9AmXMBp2aht8ozdcK+eQi89/5dpGF4jONl6
oRo4HlvJsgNgbrw/dthks3u8MWkui0Xw3MhtPD3zu4Ri8Yv9nfYbW18HVOc6C4QfB6U6k0sC0Y1s
Pk1e+TRA9gb2ijG5VZdUK85TiR3LscWRbpTP4oG3dQDk+MqX/SFPo7jEnc/Glni9Yvd4rEwUYWeS
Rc8SvtQ2bM9VaiDAM56B/Fm/h2DcF9fW7Se2AQV6f51WiUGt42jVdVbVdD7nlxFAfrGREV2y4/ym
Dzjhb7HKkodGDlCp0YPs+evEEZK1BxlB1OXjfnn+4s0OSK3rmDy9kJGwi9pVbjuYpfg1beVyfi7J
Wct+RyIdDTbgFAmuWmRnBPRwBaDDAttBcjh2JBF3A8Avt01WzDks1y+f8fi1AzFAgsxBsrBmWZZk
ffYmT5m63Y5mSztwfNky7FMBze6v15EXJacZ1IqQMGZqlMLlQ4fb7fJ4PAROZDNzYSPtoDLVvJmW
OJOiYgB4nCeAUgkEZKyc3coE7Lhs6N2VeNtGnSnw3lcL4bfkGVyGjkmualEGEGZq6OTssoCK8jvr
vLOZFsbpYh2HmefUyF3YUlvVaoe6K4KxL/wntlBD68LeJxV12vJfJSZuW+PygGIjcylio+W+YYUC
SclWctVG3mQvmHSoQm9OUsNrTbUvBovLWqqiddlW3994f5GNgNcMq+UZVvtvR9x2+hYD2KqcpBry
x2CWqh6YxTJsOyYR1ICcQLp3073agndGWZz7lO8OzMPUethZFcBrZivwNWYVP3+XLSi7WLQroOwk
IwFN5vHxcBtv49m3wgNSJd0ep3gR1YR/N9JzxTYpmFh9Xol2DMvKVKHy4sn5rl4nhFSdy9vh+tvH
O68cOIO2P/tw+3LvvUR702eU2xk8WIr0d2S3aAXLLsokSZyjhSqQ6PT40lnbgxVGt9TxjkPPxPTr
YA/wqvrPp9IFXuNwwtfHoIJpQjrC85eSE9roeU6z20w1aJ7Rp3AvD3vF7kq2TYOmnQAF/kGv+kSG
x8v7D3/neeCKQr9RoCQvUFWMtgg7o6ug7LAjNLXcqquHezxoRuw5JfRxvpYFKZjExd9h0PUgsA87
J+lu4eB+M2EleCXny/Yxr1NgQ2uX0NFFlh1dJtX9uxla/+0X0TUHlbm6IrrWBcXScHrOTFhO5jz0
MFBZxN8uLINj9XmsnHIU7ydZFsNIyuz6+hFI06w4wh+TIvh1UkNMrafMkdxlEg4TdolhBYsa8niW
uy5JOXkNCUZyy0i1zW3zUGivkze5PrdmSAWOJPO0cvPDcs8ZyyZzVutaEuF+S3463WphRSOk//z1
r3/59fDlNP4SHwH7U7zXkl2g6IhIEMu9DPTz5VsapBu4QQZLdinrfD/GvEfCch/PKaDLFtvl479/
+e9pGfPPs1LtiOyQ/qx+hD9PW7o5/fmhllmK09UM3/tmcfMAhhvAkj0kDxn5AdK3QrHXurd9S/Lp
5vECNoczwy/nXvLkl3tWmPqOnFruYUlnzZ9ab2x55HnJfw/A4/aHy+kUhbBjp+CU5c5+noLkN64n
G5ehWSF1it+4vvxl15QZzcuM5k7tp7fDyyIz7MlZTXZfF0v//eQrzt/zqsCyq//d+fH1cp03kDcG
RnNiX1489uI4UVmkLAS/e38/jcsIvH41TYPEqDHhgBqT5XaY9naAqejKaIi2Fuh5LdCXakjVwizZ
nZyzZhvXKX1r2HM0VBRLSYhXcVOWnCQKdPBmJnZl9CcgDL/nzpYivFI+PEabq7MbC27ZLwUO3rZQ
UTEJVmx67bhbHGbxh/F0mkdhVaEbHLSgZBDJDjJ07CC/vzz92BS+uWB6WYlq6jNenw+2RCqy3kbH
2085cHfv9x/3exZAfvaD5e5e3MLLcgysEA9StWxJEGLFXh4hKP7JVvAQlEYHcJPS3IbPN5a/7QRw
tC+OZn947s8zzzeFYgp5500+NTp9YfVKld/zKp/cW1cAjvKsecM1qHLjdD4nw99zIXW5bsHiVHbv
5ke6qr1LZ92Dsx448Uy/ycM7Q+10qej+czz49rTbhkXytm1yRObv2b2bK2or15OCRF4vEPVa6aUF
ZPGySs+sxDi/jt/vZPLIyqhK4rosL7LjPxvEBrTUkr9jkv1JbXkRFY47p79enjal0w7s58QE8Ls9
VyY03CAqJjwepBgkG8O40cAA8/CjPmRwWtJwp1UiSV7IzZYB44Vl7kjR2PmgWza3fqDGwBVK+Sff
iXoTi1syg4Bi1o6QUrwHqThTVExf8dNnfQkKHgQPHpp8C5097/6TcwsebF75L+MpmyR+75wVnGX4
6faTDwRtXz0q+uX5UfTFXz3HchiF72B538FuMQiSR7E9ix0XyeW9aNNvueDg4InPhI0bv/WiMjCr
lfO6Zw5cNezLIvOGvzVN4isqeYBDBGvTCsefX7AynJtYCDxPN7k+myfSRP8SEByCrHS7mk6m4HVk
31ciPjStC39FCFtTYahy2Tz0pNPP6M0/CvJ8OcOFa3JmQ6EhlgvCy7gRnHJcLgjvGmkW6VfGEcFP
KTjz9J8/77hgssXRN+6o4ocYyqvCcE28yM7JTouJEgxHwZ++IkJvCjtRe9m8v+/c0Lo5Qc9v7+Qc
0KtEON07gJB6FtxQ+wz8FoqjTSG/pY3kOQrb1Fpx6giXEdtaYcq//+V4u29TSx2rc0p/kQd2Q3PX
o54WQE9Xru7K6ZGGtyssmfLH/KIq6/SURolgiRazNfB7L1jrtiKnBE9OyfIA49X9Eva+Az9uNMSU
fzgU15b/fUpXlIxDBc5YEbK22zBbvJE31Mg3v3U8QJBmC1bxItT31Q8zTAsPyh0BRuTqJbIC+cuO
BfMUi/KRiXY4LYkMMFOGNVObvqfRPIddbBcvaILAKlHAKm/mdpjJvvQfeRaX11XOaQ4k/fH4dXMO
hiYulKa61PM8NLRsTC8c/i87YjKWUHzhKftsbUhMj79ynebE4KdCAHm4QWJz1VHO1A3vTjrLhaLT
twPvCtVusKH2XQL7Xnn/AgaxWMsxDJqjdpdIMM8pS8m5FfnUAFVHed1WJOSybWsGWYU0XdOL5i09
od2IpT9MIJnXHBO4Vxtqx/HYXop9uQe82qlD/ysXVPJKj8pN0zj1POdDcdWwRhnbORtKAvMChJ24
r4Ar41c9aMupqFLJ8a4A5bvK+1awbbyCMQM3wOa3c2+95dAshHdgI0m4mDzY7Af6y/H82zYscopz
akunjM9OItFPhrbjw229kZypKwTQ8NrClU5N49d5ystsUV6WD2mIKmzdoEF4h74O1Pcg74WnLElA
qco+2ZM2M7dcb12hx+vxfYdbZiTn11XRNJ53HawtBXB1BorPW7JsrIOyaLz4Wd23ziF6hRJ4hYpj
MtbHx3vTNIzajP06XnKp2PeskeSZFMcmHpGp83a+6ziMUejOgafKK5ytKUgCbklvOYp9BmY896i6
HWvm7WynYIJGpbJBkpGQG3H7gdeXxN4SyUteFTATmo1r/WV8Gc87PBvrOE1dEYB8giOPk37aGeCg
R1gqiyJG1fN4ZdikYXmVr9lsxZ92OsVKcOJb0td8slzft5iYksXlA4SCpaRocJjPiXes3SJXiNfX
NA2gvfu81u2d5KxdARX4sycJRhX3S3UmH9l2itMfpb3kHXvDqpAy2xJkOoryHq/hDp+l1FvMxpUa
DBDJJEuM5KPHHCkQ8+qa7PHr4fbn2OQIxV5oonBXhtmQV+ewP1r51PyKB8PJfe3X8n65rEjwnklO
4PPbSPCsSrWtw0AgjEDTS/R6KZUZA0Sd6OCeVNLEZ9w5Nod6BoA8XWGbCDj4+iiQ122Q+gOP3GsD
0rOQ1/ErZpPvqCZTfJonzfPwb453jChZXpREK2M6ZukA+DX0nLdV/jDvLfaS8xbX0JknKDdPUCge
B1o2T+fPx/H0tIfd7InQVhzr7Dny3wrBTb6llHjXl+R/etKIMKz/18flPu5w39hdrHOugD6hWd9l
5nQByXhhJmcZXIG1Iw0KKNqMP7EpYOaGTTguaTventN8G38PddsN6ngKiWVv6AAAUtNoybD2wLNh
AuZcVHmKmlVpvCwS7yCExAc2r5Yfo68kya2Ia74CzSjNkRnFUfDQvGeT73493neE10WnBOdjleCe
l6eevZA0g46HyIPksmP+a1ecfVqD2hVBA6yGEByhSCuSQHpEE1zS+B/Pqmq1kb3Z84xKXTqh+Tg5
zykPJSvNsLG8ELphIwrBU8Gml9wC/Mb/+XLeUUhlLbf59Sbw9nWgElBO5K/jfRui2gHHUIk+4n09
yzqqP+2sw6LlKFWRA71LwDiwwWgCcXhoS+SxOgqiC4BpoRRd6WuW3iovzNQ4ZY2YuCZgV7Xbl4UN
agrJ2k1Rz1cGJfggINUEeYSUqQQcRprpURJMZaIRD3BpGfBQeqoS/DD1MDWb3cWHFAYaSRnKKkri
GPLzJuEw7xEkRPvl8vQDulJbmTGWt1Y17hDrQDWv7UiiBfGh0gGDCVs2wL32P/i7rRzns1K0wStr
S7BOYPQaWIcvBlJDK/QURQwsfagMRHvSIFao2aBDebH5sIMZIIdH4CoPEwXLF5RJPrxikx0HVgvb
wHPhJHJW5dmXKAkkNOZF+CukccUyyLDrNkJR29msiq+8qQtPeXvbWcgqUfTExzOJDqyKODYnYPpS
HzDssOZRS50XvtZGIAdDWY6VL2WSZzRIcnSllwr/hZdJWgEjysDA9MW2TMuK3V5Xk/KbTym80m8h
JWu8XqlNZitVTABT0PQ4YiloB0pBWXdtujn/cb18vO8oee85ia0ZWUCqyWbF3dPlERLi/SdoXBAU
IeV+1S7Q2fNEIrGntcdQ7YAFOyA5rFpUw/BxQb1VXcFHRQwfFSmtGl+LbPqtoAyf52hwZGFTfQ9K
7EuE4pPPCBbRsmCxSrTNb4CWbGCiznoFOd44mYRgA34zRNNpSy4LuIKm2yqH55su9L2FTSjo6nna
xJFD6Lz7t0oG4bP4pNrdOoJnAavWJ410WV6IneFSNv9y+DJuZzxbWt5elu8tpRK89ak8ddWxipwX
PmlaHZBi7xJAl7me0x3/OExQcrvplLYcJt+Z5Uzwnx9LD8zl5TW4ZktnC7eAz+WhKmw7ngEiil23
1QAMcH/CwoxSwkDzFcx9v1WroUFIiC1cKFNs+OwMOsJGHxkekgzNbkokIgJIiL7jMCSlL3kz7Bws
UctnAPQQzUzDPCxf0jsQ7q2q0COAFFB3HUzFJ6aIz2sUhjMpNNuEt6luqxqeLy82rtkcZe0U8uZI
qS1uhg+lGAJJqoZemz6gMZrTAYVG5c9O92wRfkWD8+yhHTbiCIa3hQPLiJUKmWc/NQ9I9zgU2nYc
TbNsPx8cJxkzoYmXZIhz4EhqLs1qE4oaw2pAGgDja2+GpleU8B+q/mBLkxfnn/c/leG05mK2eHER
w0ZCq+Cdh97wzQcU6DDTDi3Ez0AtbMf25ywkgwcKpM+rpxIJxqWBIcATGM7nLV2djnd1qmTzlZ84
8DBfsQCjALmgAtVwILeMyPAo1QgOLf51PH/s6A2kNnp1Op6tp5VhrlQMFCby6MZ0nE3+aWeD1Hat
R+L8AUq3Ww0+el4f8mG0TUBrTAknueoqHkNIu2FIeVVodL9BiQy8Q6nU1qL5oozesoHLMg0C5CVV
8Y1Gdhcvp5ZtTldsOp+PpKomSoDK5qNxXdViWTWRNK8qh47DACWC4wllxeZhFOoKJPzrjVwEw5vE
QUJnjABoPi9UqL20Cih/J8WwrcMkuQS8R0I3opSoqvKBV/0k6dZHprVjC6rBGIKrZ14gOZ9NoNia
kwXg8NXQmtWBf/lphxw1ZSGmbiOl7dgSuSKkwvswNOF6KHjN5cx5FUhS9avdLrUYMNaOc6HKVALe
ESB4p3IBa0qD5/dJpWG7tTcIrNQpBaKdk8C74bUvJtomH2SxEEsUuGleCfBpy0O32ZxM8xmmPB+x
bCDPCZE063apV8//cLf1w6DQRjuuOLUsNAGNEBXb1ntnzxZpWxHNGJYDXoYs7TdugyBBUEmw1WYF
k8AvgPjh7cRkxzsL0rJKD1VzD2qzpJwXNiu4xIhS4YDen5J1DFEs0lrOa6dUF5965DYCKBkt8IBL
drCmohIbQAXQPNCmj8S3FzaD4nLh6UbwVLzrOYVbGh3e5vWaywcvrSYPvkl6je7XmSlU4/LJFJ3Y
Z/t4EqtOAmVsDw8fddVhgmRYnUj+JuhlUj5swPkxAHxa1uOdFQjvd8qu9WTM2nSCDpF5/l6ZG1Lm
QkhQUG85cI8qlOvna1Vtz+apCaC4nduyuDzONcMW98mLTN/OoA7VZKi0WnA9uhZ0wTN4NHLq1kHv
7Y7/pttTSwb6LyjL1ZLlgmLQ01FzdVBFKRv/88buqdsA7oVmH3/56+F9B6coOXxcLIDXM6b5ak+0
maAJgNvsosorx77WbZp23QG2TW09tcHnS5mhg3G5zRb2Q5X7ybfeBzW0NZNHwvQK9OvoFEtJ3X+c
xh0d2brW0yatoBJ4amfjgY/LdpbIILa63XTAi7d73gYZeHDiWkkeqWUHyFC1Hce5r9Jj+JRdZ1sL
jwdvwMGzWXKlFwN67HRcRc+c4M5Ho0T/iY4hyCJ2uGKUEAG8nurNRks7/gIZKzmAP7uxvK7aeBlu
OymD5lhmGifJHdCwfZVRyyaEgNpUxzYNLUIWvHkhMbPKhywyG3kiWCtYXktvD4/p6yZf7dgNvw+W
JEeHmG4znwI8rSc24gmGj2O0HYF0/CiXpWf71fy8g2xVW8/pgRwGiZPh5/vGi7zpISgpFQcI2XaC
rSqi8XSeBSUOLWq3znuCrm7vJTnynA8cSr6JR5ViDKyQrEh8pr6KTy014hMEA0hRHeQnjAKAAkPz
TqVgKEh1tc3ymYhXwf45zcl0ySjyvYOIp1I/0ld1GwC3mvbwsUXpzmyJeH6sazaRjhhiAM3etiLA
fDaNcR1LAypQmtCJfW/x8a63MrCvIgGbvBYSmsurnRfOE9DO8fwnyAAdNvvu8ny50nverwE1TJp1
UBbh5vkaPkZWlN6j9gGSizj94zruYKvZ/my7ct76odt43ou3M8YK9s0nPlFgEvNhb+UZSOkhelDZ
Ii+lZDx5dCLcrigVQAuy4gBcc+9B6rD7RCsl9FxZp9nXCzVQcRL79sS/4O2R7Vr1cyn1Dvg2Rn7G
rvLayvH53xVKAOZFVC97sAnM4BksYmBbiL1aEB+1dGxmYG0vgVKRPcxkJgviQyt8YU7dLwmQyZa1
vejhENd8/yCBfyBUtJWMaOX5gcYLeqtFJA/cjVUbzWxBlkVvOftVuIo8TlaOYwmKAXg1pvo9FB+Q
FP416hIkglI6vj1Yoc35cmYpuaNvkS48XzKw1FGxm3wDEYoIdKmLUXfYoUIh65w/nqfRcq9BBdBx
6LgwchE359kG3UzTJRUoAAD27Hs7NG+Oj0cQN6XSVbTBKXhWlq2mpL/Pp6jWBWFFP3zQM0VtvfrN
uwum7mcHJR5196N4bCgzNjQgWQXfgv6nHVnRiguftcwlr3sGtfeNNHD55FaCNMjkbwdl1undfPDe
2F3vf/LS14sN8yN45d2bYZPy4jWPNFuJTvwPd2zTq6V+gufa6namq9wuy/+w2LL0A09rKwPTjKmq
5XN0+fLR0trx3g/x0QM53sjr5CVWNVNdIihDocutJmWW9zIF21/OG5eX6+H9dYerq1pB8yef1gFb
Jpjd5ZX8kQ1s95kyRYcHKL3hstvLOlFg5DrIdJAySz6S6tRG113LZ/gL95mCXz72T56q9uSNbjxC
zwfXdL+nVIy/wHVyLcMbgIOs+1cxgJ0/R2W5HJ+igSu4CANXd7/oe54vM5pjrEqSkY+KS/YdzGIL
QXRA6j0ZxnyEdzClKBK0TEvKQEUU+w5veZ159qhnEWPhNPEBAS02ehmDHDUtQL8LoMJpdnvZr4he
Hl4DkJtbkYUl1uG3zex7qg8YTwIbKkevpO1AYMlyO78AD95dlx2HeinW5D0N4u5XmVMF2OP9yx4X
OlVamOeras6dezqdd/j6obUVSQpR88CefzsbREfqxG4CWxAn5JolMLHHD+n6x5dlb/WIsbyuFU09
FzILUSNNCR8Jo4CFt1IDC+vXDQ95S6N63GeaZAXzlEqnNpwEAeITWu3JIwGNJfRmIQcfBewtWyBe
NHzkC1n6ZluCKOsayPrW67H8x8axtq1obAVeG+kNF/4vkjN5hKOHDVrD8QBPsmzknte1DEj9Knwr
ngiTVerNuh0hb5h7wVZSGJCoSPkH0HQYPCQp97IgKGuErZfa0xzVdCwLSTk03rA5C7uJbfs2Wm0Q
kOiBMcGF4iig5DHFYDfal4O+KcbtehSTR8PawRZqVd4QiLsIvRGH56OJxg1cHHvFjPDw0LG++h+P
12kZl+uPHRUczbZ0UeeCsLQY2HJXIr+8T+HkxjtHoJjAuM9kB/GuNY0oN7iOzacVh15whQmL2eCT
ITbb6VneLxdmI9d04OPoSrAhNIqpeTLaOK4JbGHw+ERJs1XAx5c+mkHs6YIJimU1W6heMkuAjOef
RFmBRT5ZWwuOliD9XPl4Bs8Hr7AmHw4Q3RbW5Ptn9U5x5bOkpgSQCoJ9J5CCRX6Auk0NQQ+oF/TQ
sRgTuRn8odeYASguweZ57nTGacu2Mud1j8yZzsAaUpLCwus8y9r+omUGv4b6+Yw13OVdRInbcG8H
rJXZxaXxsMmwqeZLLIEHfarfKLzjY96md9ybagsPA4y84QRv2TL+ovdqT84gqKogcS8fvTMM+8dv
ulJsOi7fcHvCKJbz7ShGAa0mzVa3c9CzWLJtHgvim49T8q+wUm3DP4Ro+dfrUHKBEzAvn+gIHlgR
1ewJIdKQoigl4z20uq+JoXnbSEvrnU9QgmYgYqv+T/Bt43rLVumXPCFPRdlmm+CYJgpkvbOcXpoR
IU9UKzazsiSqeZq5btBNnAgJUipJA6hgzgamAp5vBjCwfbTKRpJ8xR5hX6pndOrkP17BWbMRnTC8
Xh+qzdcMAcXXDJB2BlU62E87ew4quau7Mc9GGJZmLwbg3/QymnOGyv7y/Dn2zWfNoggCwnvY2ded
17N1jBX04uVRVTdsdN/hdY6xbE7kLH38t8PWt5Z3YAWbUvXT7afz0/h9R0tzwVUTFN4cKGzHiHbz
cdyhl1vNZPg+KH2vYSvnzZqAoW7kuw6u8QyeUQpGPrbfo6R6vyo6rpKngU8j2b42ha3nA2N2gJCc
3h8ecXQsVJtTq3gOvVtH2PzH49fps1v44Hg+3v/0FasB1Xyf5el4ez/cH1/j13wnKdnsvll+zYcg
pGiFIMqvec0ph9YdKr4G4Q/VJPEfJ+G5j1vzbtd+02/5HSP5NcTqlbPmA8tKtqxFuWP817L59Xxl
w9d/ONzgynVr17Kc8f3u6g67urFuHiuops7Ov8vvN/FdWRnjZy3LFigJZeXfBfLVhPRURvj+SLJr
yQj9lp+xaLY3zzPmf1U1aeVyp3g9IvttPQJWbDZvBUDTRJcz+8XfCdFM1Qhf/Xq4voybN8K0smVK
uQbSqbalk++tJl3rbaJ81kCPmJWU+P8zfX37+hI+uE+mNPzlFhzAh+8PPgXz4dvx/vpwn6Z3vj2I
/zX/x2R0jydUCjAEwc+s43V8u3wdH/zID+fL0/jwfL28xcGaEw1Dpfvrhwo+eZTKNCk/1F/G88s0
p2mUx+P55eH2Px/j+K/xQbKTS5kXy+Rs2rXT8Zwm9zTe7tfLj4fD/X49fvm4j7eHx+vh9vq/vrPT
TCLoBw3uWBz09nY4nR6eL5NBBhNKKTZSFV2avhyfjnE604quP9ivU9at/9qnHA9R0fjffLgdp424
Xy4PJy/JaQ3cODJvC3kjNI9z/piWcrjdxmvIpGGHyUcvMk/9dnk6Pv+IZ/3wfrkd/RgPXz5ewMHn
gZQOf6SGQH5L4pZ24uHOTsTlXRU23C9Zfv/wcT0+HM9fD6fjEz+Ky7PIPT7CGPMyvNQl0X58PZ6e
NvZ5IPPKCpoV6N+dn/7j9OP99bZDslNoLtqbBZbzFxiIZBYGkttx9mf29p4+Zz9Opi/Kc0jcHPKu
fZuOTfLHpokY+lCTUbu3534dJ535oPntyaqENJspt0fxX+dzo2SuX9N1fD8cz/5/H+83Xknojuyq
XS76J44ezI5oXL3j6PmRelWuM450ON0fXk7vP14fJhl4nrTal8Pjb/EaYXHvsmIM5dPkEr/+Nl7P
fryvXqc8Hk5hD/iLQ/R29vmjmsQCKTRRbdr/EQ/P//60z7wuc+V5qTz38EengSB35J57N08IUX9u
weeCyIpcupLdpl0an8K+89cvz9qThPMN+jppqXvc4nRkrOq1RASya/sJOeWRgSa2zncgtWRobxJu
3vkGd0j1WZ4ijZE3dVLkL+eHzjx8YX/ekktMoqjT1xPgep0u8PN4Hc8BSJCNYnWVyaPlLLY4l2Ao
ebNSGlsxrFah0SpKuUz8sz/hf10mRBWt/WTXPkawkVYXAkYuZrEV44awzC5SEDeznGjGDV/G0+Xb
ZCy9gnw+fkX2Swyl7k+nE0CDR+KXt/cJjD39ukggfzJDab/kCjoAG6SGbEc9S2pSoef7+3h+IvD1
ftkCr13TZlBUyOth27X0MNEeBmmPjoAMbw86VYHKWLb68BQyrhCgI4ooMM1EgU8W99mDsC/8PIhw
uLyTT0+fgoIdMdwixIGJKn0aHy9wEsqRSehlBePb7cE7WqfDj+k4zyO/AbwFiwfh0AaoUpREpe8m
B+N9+vvp+Pgbb5HzdSdBhjiBsIv4CPL0PYw23cb95K1hVyqMtYtzPD/4MzTAsojSsqg0mes4Kb2Y
u5sU7+n4/u7VsBeM75zTpQtEQDcm6DAoFUNlSAieez5OS7p443bn/S5nyh8vDNH9xRvEDbHMexGw
5aZnuwlwNRCUIKkKyElHjIpbeoPzCJKfRq9bhxxmMAnZ9QJVlxrI1yr8USDtaTLv05/HG1fOERcj
Sgyks/a7jpfr03iN9jEsCwBHUW5oBmH+QMIdClvyMl7exukqP+6Ym1IUGMZakLzArx6T8matK6mL
pIqCsPuJXD6i5PMD9KwT8w3705o49kGVa2Kcn36cD29+9dkl5sephDRp4+97tXGFyckKvh7Hb18u
36cTDjCZlw46Rq5NDWO8HZ+iKpymcrwH7cMKqmEN9OYMOlVugiZOllcck0Z8uH1cr5eXw32cjvR4
5R0sem/DA255Iv+YZOH3l4/z0+33H+BEmh7f42k8XB+eT5fD/bbh44m+JEl0RbQcphP98Xb5uE0r
mTDlHaBS15daSK6AMVKp1hTWVq9htUJfZ4sQmuq7Wn32CHFV2pwoveDTbDFNujMtyDpzpuGaRb7U
+8i8cuHBysv18HScdn/PLVWDaGkaYuz5XZSl9jeVcvMO/4Q8j/+aRtlw+TVxCEgQJajx8e3L+PQ0
+cI7EGxX7mwtnvPJ8EJpSwBpP8tJAcquxKYJnc1EG6UYsaVSqgW0wxq/nC6PvxXUJLh+qsUg0gvU
I0RTbrQWO7l6gGh0qQ7ETozEu1XaluLZIgEBtOlaDN7b9N8cH18ndRm0N39I+WrYUNBFgXycweSX
PvPXIStHPxErCm598UsnGL4VVGniiO2DAryOKHgdNXz2igBqk2dZAvCZTPbTpF+DfPL6zLU0SRhk
0q/XZ+8DjafJ6bgdpzl9fQkMG7t/Q1+O5lbXRCI705dCJGpTMSm0w+lxi3ihXrFZtjz45CEHJMjy
eJ6g7gaLZUtafHXHtvdDZ3nyCi1ZzlM48t89/ffHLQ0UQfKNH4jwNi5Um0QoMqEGr6b9RKLB4DWY
MGUwTVYO99Pl48umw923HJjX48urv+QTHMphMH4leQyhloBglNrr5X36/Ef0HQrUyx92FdpxO28s
UISqdOdNQxHy993YMt7gPnvfwdCqjPiqxsSAQXUtGJXP38ctXq4eEz88Xk6XK6KaTWsiJVmRQj88
RaEKTUGxx3xUkL3pdAuTBjPjL/qEpidfNlxxn+ywRewTwjrEeD8dewTBNVl6NLKK8/CaWZXx0LjL
kx89XbEJ+X6ZFvbbw7fJZwfmjNx5f3dV73biBJAl0HP0eHIG4KnZf4/aAfa1dDbp9i7QAbKApWdk
bEwW/D/qDw+//O//mH5YhM/ew6Zfb8FZeBCWH7Ej8QOiAaoBNBpAlKjapXaKxzcvydOa3h40T0iI
gaApz+WJLqXw+VsddCzaETHQaHCfzd79+jHt5dPkaCGoK7qmZ/J2uP3mz3OTfewodZnfiw+6xA/w
drhOlwaiwY5kxoS16IXYvcXd69DxEYMSlq/KCQQKFIXSOhLlJ6xBdf4DOv++3IJ0w368j7dJS9+O
j3/8+1/hJgoSpwy8Q1MEHZpCReHY4hT9/26comyi3ihDR58KDpGgoJR6dm+KK6AUuAIEZITYW+P3
RceTFkK6VpqHl97bw9PhfoBfd8RQk9fRitk7CWZPcha8V5Z839vrwUtABOMjDNR1Q2ld0/kVM5jO
n58BIW1qtmQ7w0iQdJuUVmAb5+/Q/vet/U878Hi8Pk7OAJpCN3QtPne5xT6N7bcRJhp0BAeSOpDp
/t/9HUqLQIqUhte6Ja1mHiCqYzgAuYVGLsxyeQs0ugXE2orl+3kCL4eP221jBaqcgF0ZEnQJCeIM
OQWNawASRYQjgSjyKHKUv6fx9oiugBjIFQiuV9/SgT3SgaqVVlMZApDo0hHqieSwFuuXHbqETc5p
+vnxepiuUUhpgJdAVEFFWWux6fh4M6or8loV0hO9s8dwBZ55ASL+rz/NjuqB5+vhBaoxIUqydc4L
u/8IYaZHL76aX4FQfcsMFgfQIy1ISbZu0YJJC10TtAQ6yDXjwoUSNMgINpX442WC/LeH+9XHGuH9
owlruRSqNEPw/sry8PqVEVTICJrSfWnc/n5Am1/xFatf7wb067J1d0oYijC4LJMD0q9TEIxOjoSe
iOqIPmlYOjw52bmulSY+X737x/ULvnYkSCF8pokQw2r+CD8S55rk/peSY5DktCEwOTt0b7RuZvjR
W48mr1QrM3ll+pHm1rKVLzBLT0qA2EDA1eWTDfMD/ZB2skA6wcfL+QljsK5r+cWl8ZHA9BO/mNiO
0glF2KM+Bbs+RHSDSLiOVv/uShEVhJ8iLxOVihftHU23y5ldJXpGipMQ0OT6lqrPItWnijC8aqF3
pDpJZlqQPb3ee+TCkzxZmohPdAdy3TrT0n0781AFpXPsIvWl2A5AbGWVC20/kz8qiOYhG5csrs+i
8IUvaPliIORNwL9r8kGBr4dm6KKEzEhy6lvfFYZj2oDX+wZgM2XMo7Bcnh5+3zJdhg2UphwnkGkg
CGjwyX0pkLdozcmC3H2kHGpekq1AYM8s/cfz63g93jdMyFAyMGsZdkiKbCHDa+snkOtudMvtrAwH
oo9okCavfwEPx9OG2zp0rfjH/P3b5Rrz94AMkQRCuz7E6HlJtIKhYFBVt7pD0PEzJXfUUCEKaU8S
Aw7i2H0mRVoQ7oZcoBK09wi09+XxR+X7Nt4PQXTG74e3d3yCsiPBwuADuM/kGQoSwRJ+NqJvaCGB
TqAzretTKRG0AMqc9AsDnjbx43y837AapYWDegEAi+cc8xyRIupIagy5w6UdQoqYEJg6Uy+lGKAt
7GWLhZ40WECgvkAPamHKnxqGfx0Q/2ZbAJ7eQI00iG1h3/LXNfp12dJA+8qLBNm5YIDVJ8oDBHGZ
Awcpku6p1C+izin4zNT3rD6/nMaI3AGCyMLvx7LiE3UFglQBBc7JrpSXQldfthiLUuqR30fyRz3j
aT5TjSB0Ve2rWjuP7mzftRiHdOfC/yDYP3mtQyvuUtA9kHMfWpkIJepHHhPJFSHJdPOVP2zoq8pj
N58phRC2ink1/H3ENDma9pP95VLboaXXvq78RCWJwHjn8fIWkgXHDdjet6jyFfKH97YrsWsTuCHY
Y5qo8xZatj28Hs4+mQsOQNMxc9yoRD7oAsgqYFGqrtv7+PhxOlw3wN/QSvel1A+6Q8T9C3E798na
EUEqPdaG7/bj7cvlhAeQQ8v3XrFHyPiSlD/C2y7oY4t96yh9QBIIiP9gkP9gWy5gyd2hu0izjMTS
67FUYzD7oFlWVX6PkI9yreSi6hqhuA2x4SR2WBoxtAG0rK1j/AcUtiHMX5iKIdgpSTDiHmkFRE5B
rdaPxIeE3QIEUA3qG5kS2czCTGbw/XL6EfqB4MhHxd4VljS5IPB73UoiKQFkjwCkbmVurpJIUPSL
1gvkF9YLDg0RGcpsRwBQ8NnJVpZV6QEhe9a7JgkST2DHAZpNQNAjIEhUIKcENLpDpMeJJ9Sc2V2O
JWyzxc5KgUMrVNVFmIIAHZ83ZtCpFhBc9P/jx/V2gVZ0UgKmFTclWBDBgHbcmNoPpH9MheVazj86
OrL6QL80YraIPlbV1WeODwmvajaSIZuHzKfot7O3YPpXX8WObAVHz18xgCI9DDwEMnIdMkcuHOH+
g/Zv5Iw46AR1zT4UJQhFkVMCAIkvUEzAIvlp55eW5gtJP+09IZfbN2kO73ifD2+jzy3dSFuwqoWh
lryXZ/w1IbEDDLetxBGkf5Rgy5W3a/2EFq3ss4p+7ZAEVwhuDeF7pDyHVs1jwVxB5VWxAOIzlYpC
l6qvCtxG4TFA70rHBq8SbEHUE1GdodGbbhh9h4y+aiet5Y1HkIE2uaJxj6A4Pm4bySYkaTg4TvYT
NZ6C+O+hqryRaaIR6U2Uvvdhh67J1yKx6ar+NWoNutGNI2XxJNWsxDso4ktMDkecWRjxzVfO63+K
dzZTpgUB/KQrS5UsCZkr0YLbK7iMAIsym3y5g1p/KDMNzVprIJ9HoFSrmCyBjCbpP0Z6dM42e0fM
RQxONIvF4gxCzGPDbucVBELrU5VzQldh7+oEkwqCW0j8bnICOytcBbHa4QI10kUA7BJuqNoJDo3t
gykbfVnAI1qwBXm9pJ8hadhcLgDlChINQqvGSNIESjwgdTGk9WYJuhFnQb9Xbe5ZIP1ThbvmqEcJ
WSDm7krusvJ5Yu/tDdrLthKeqPVDttM0M9ZL24tgC7m/lLIoKAeUc0RhJ5NsqWDAkG3AtqsEWvRD
M9+qvAAw5tq3NrAuOoCkgWyBL3qAMOfONv32ErYix4v0VyD5yiXvh26wbBIHe3pzClt1BW0pD4m0
n9nBeSKni/YVNm3z2yMApqteZq4RwEF8T282M95Q1oOjsbOhfXYGksZl3MCYVQzIL2IjflNFT1rx
G4FMCAkAeXMmOlN4HwvvCdwP0Y6j5XoLifxOW25Cy/1A95cwD0GHDzXx+3I5b2iAfst9QiDG6NYt
KC8wEmIxgIzZjw3tJYgFCwCuwbsgF0g0mx6VhC2SPup0k3549OdR4oKoik5bKato76j/lKMONOED
fT0MrZyHMvIOs126Vq5/lbaoUdSxbyV9EMoPWR56dAx4ksj5E30r3revu5wgmtvTB6aVaIT4OlHx
pTRT57eUKwn8Xt0sFS4dV1giQ4JNHsAJ0bi1PaT6+xZfnMuMnp/T1QV03VAG71vmF2X8EfeP3N1S
cSL/2Vbiv863g9WSqsX106uHzn/QrayR8uKj74kErFM3cuIDyrargVc72w5Cf9fKeS3BM9IfBHwT
zrHcBARf6O9n96tQvoj3E026mGgfRNsJ2wp4UKuFaANKFed0USo8aN2Daxmd+e49z9IHWI9m6/HS
a0LTp70T8yMWZaETgjzE5fDFsrZZ6I4kr3ftMpXstiPl3fWtDkyV24xSRQjrSliH3V1QRNV7XzXq
KyFrUpULiDVthtyerpnrXJI2CPAR0Y9PRhWnf3l+vo33DflzzQrNFGz0vVLwBpBIb6iTc2vaGB0f
NRzkLaPCbYKgTxSc2zpXFaZ6dq3ibOpuozindq38hlLlIshHIiWhQNJ+ru+K6F3r6hCdCeleuapP
jI2o7vfxll7n+foStOcYn4uLLSJDB1O2XY7smm2C/UiJ/+B7IsmuyR74b5MD5VsXhuanKYYNpmHK
Bsx9PY31WOy8RO1ZC9qr6SG+wEt6P7HnRU2FWzI6/jVO6OaUevb8z8fhOj48Ht5jq11+r2h3CdLd
gSwwZNturU12XStmFfY89OPcmEY7z85/fjzfjk/j0oEsPDqKBpLNyFseaHMAVchzqtalm5sac+3Y
264VyvBzeT88PfnOpmAampP/uJ+pjzAawbY6itKFfPm43/esg74SkmxDMi6TTIQv5ktA0kJSfVhL
iAOtOb+F7Y2VC5Js8gS/HZ+m+b0ezu2G+3EAuQywjhI8PaynBIbqlqGMD90ak96pDHZjuqBv8a3K
5R8nIH18OZ5DCs3cKa+9gWH81P8irNWGhtCJjx2vj14h5nFDw+8bGCp512Gq3RJgfPRbNT6s5hc6
lJ3vh9BVbnkpDA1vluH7kMI8N2r+/zxyco78yD7GOahy3DE9WhFw2twFmD+xwZBtCD1pe7gR00Gh
VWsii10QSDC7WbL5yeUzst5qWGI2vMRkqUJzcnm/AiUwDzH9/7MhXQbib9mQV+YBqu5JEkdo7Rga
SIW/hcaVmyMO+a6E8LisxpvrQmd1S7bQrxVJSNYIIXFGaM2M/ZnpZi0ReMGl/cLqLMJzDkAVxv20
+VR06I1fap2QIfD5pbusIELJt/Cp3gSAh4+ex/Bw88Pt48t1fJnu3S3ewq/j73w9wP1nfxnZxvTh
RXedH+0kOf3P4x9TBxkvVX+dDEKkuQNt8H45xUuepsKOTZ6sDsI793h/Hn8fCq1SB+uHt8sToydC
tGMQzXdrPz8h58jLk1bnx/XmfbyHpzOz8npIyiNIl8erxzPs2x13VJdvXM8/8R++o9PxcP796ePK
fkzeurXBbU4f/+Fy/no5fR3/epim9v3hPL5MK/46BhJxPP3X+Zh6M/7f7MidJq/OBxqGGTuY26fj
1+Ptws+TvKAeXlhRkjYg8s3SYy9n7vu++QpyuUlpJuPX4wFuOHmPmbyyO5/p3JKT3ogJLrGjkbeK
fapgctz4EwgE2v/Db5Ql2+5TD/T8CHCQfe/OTZsV25xPaPbycWeHcqJ8ujsB848vP4e7/3D/dnkY
n5/Da37sGHnffSKL7VryH9s5R9lnRzLVq8xq2adU0sVvCVELOYd0nkPoSu4TeuJkbg+TgtiYCnlm
mTTPXZTjeHp+OEzq5nJ/nUSTPJbGvjM7kGefVWzQ4ooxo5j/VwgcTXrh+ovPWv37+b9uXt6Ob0cv
Ga3/V16Gs2YKXF/Xug+LmueHITtBylvTrE9e2mYV9vDx7qWPHypLii+/s8O/uQHRiQ3PeUxb/vvJ
QWF/kWy6q+jG6GKFQO3t5vEwN4hVpTIwLQFPr+buknNN3pfO+frP459Pl8tTyyzy5tARoQqZSKZY
4Y6n6+ISK3s4L/EvPhIX0vi5xunx4urWU9v+4k5LSdrtaXw+TB89+LamrDUdZPva0YFmEx/hENgd
N6jyHW/NyttKov4/iJwpVFGupnq6fHtYAAWvTfNWknLKCTxNDuAvcZDFTmzbMfJKfXj7U4k5TSq+
P/OwYMokMVGaeUFxqlD2vSPAKebZ+4KHCTChcyEWo3jFbj6ZLLaLSUOLpA/M5yzqBt70MvzgCUMe
Gc6NUJfBbGn50zMk/FxEG6nVpv5yDjd88kFP0dzzpo1ccR26atKA6cPjj0fmeaUIiog0DuGPUukG
PBRev9u44aoEV7TI5eHwHERncYfxUL1q7XC+IMGSBHi8dVXy2kISukxv4ryEBS0iLXk57Mmb8wG7
M8hsVjnxdgBklpcWnjhRRS+d4Pvx20KuavmUad7YL95k490dutJYUQz9MzJyQ4mgZgvwSyoCD5bA
I98Epo7jE78UQYSuz0KXceXkPiZcyZ9ulvsQJW+6VelRqMD1P10eP/xV52VYEFctv+teOWr+Rc7L
9mBalhazBHOLWiUc0TlPGixbZhEKwVIxZ+aMfx39Y7bfrpeQWvYOUL0x5UJL7TqzVwm38McoiVXv
yX61jHF8Y5c1xERDa6JUiVHbBqKCXPdcp15fd/6yW7IaL+2id4qxFAQa8NMhUMUGJoJGMx+W8SK6
5O9dV3rnfXVTjucMhvm7YtsW8K++d9d0Wi8/tgCgIbsTgtTTn6Zx3rfD/eMKMP7cGSQAhPyYaDlI
DPTyQ5gWbLtdPq6P4+9O768Hfh/60kr1exxtwG/05Ij7cM5N6L/pTWrbdmyJN7nPhyRYwIQgWN+W
YF5qCX7LFWtRZsenMB9+dyufeKjomfQ3/2Ij95ZdNA+uHKcyUZK/K8Sby1k/1WnEo7ghxab7JpjZ
zXxGdOKDY8gRUIQXGZa2TmmTXo9PT+PZg+U7sjJ9ebFVx8yUX6oo3YkZr5/vh6N/EIvgLJ7jHCi7
EmgiAfiwq98nfldUwTjpruZ4Hg7XaU5v4/34uFiX68uXAz87ilwcnV0Y8zzt76/BCk/LTe45//Zf
HJEIqCJYKFhg3ur2pVg3aYLlxastjTGUfsTaDeSveJYZf2EcveIPUYtu+zFWl+hLrC32TipV9E3U
Nd92xU/BcWzgPt4awHTiFPWBLtTlpAQ/qb60tEPluMY3SqMTzV6Bvk22UBOZQrSszJMzFkvrqTmZ
xwcQeRxEYJSsHqnwVmj673nvwpJYQkdiCQRoBLHwodUPXiuZgWAxD8XsjO5/PZ74S9HnXycpKYnJ
CHz39LcUtzu8jZv+o0QwOZMQIZdipoP4UzVNq7aI65/jDv94+BKeIeaFs6LkRdvvOby/+3jXHlfF
VC6h+7cDVLwvPbewxtOuf4QfzbTiEklIY97GBtdsiZirqsLgYXx7n1TwCy9oRJXn0pBCzBfTtCHp
hOodAtfr9lAMAJMSt8NrD1WByU+xmnsjCX2pMpqRtc+wkkMdN5zX8HfoGcxlI+HGhjD2nCUUIuKH
6+PWC8bCGdV86eBGn0MMeczh6/pfhm7K7dG9f2DmJEmTWgLmpMDyFxQ/xJwhbMrX2FZDCDBEtwxB
arPXQxQwlh+NrEks7c0WhmM1LNidPs/LXwzZK2ZmBkxHL4OYLsS1BmYQDQZReZPz68XhcFeCwI8y
Ny80IbsiRGOXqUQlJbrufe/u6LywKhlv5wBzTwpTxKlWIjyj9QPxam4f7++X6x0cnV3GDk1jhbHM
rn+5PP0Ac8wikFyJvGX0QdJA1QcyOAISftdEnph3s4XhLowEs8qDkP7ZAUOka//t4hNu7ocJD9w+
ISGyOpKemVsP5paFLFLErf2aMND9eDhN2/V0PXwDu5WVi8yVO2k+tfiDYbp9ywoK5jqeomHwNB1Y
py30Xov/3js7crlVvJv1G5/y4dfj+UfMG8+FNxPK+QiRK7YIQIcgTFq9SBpa1wU8ZBwBxpnLb0V8
sKxXYByJxhmKcUxa7eNhsoUxqSv+dclsmwZiOSYn9YpkCaN93O6Xt/BFvBLhbKMOebhGJRLfbm3N
M6SCzUXvdvWQ7D+8+U64c8HdctoDH3r+criNk1Hnhl0evQsQXodSg5zRdxrvwe2NtTXsGHNiuS2S
qP0ZzG/KJ3JpJk6YkcxSYGlTgUmf3yKPIa6ny1tz8y2JnEhbVHeV+ZiP9zfTJi8s8e/CBMxS4fLf
twSYk0LzySsp211xu9Jrspacpb50977GDLmvx9vxy/F0vP/gBpoD8X6gUCcfxnmaFnRPG3ycc1+P
59hvkQ1y+fH0kCdGU7183uz8VtPrjZWYBYfYsndMSJm/Tmc++fDX59PlG4OxwpJ6Moa3h6n2fvIG
Dqf/SJnFD8+XR6+UWRfBj2SHfOakoDN6XtHi/Hy53LM/FkmGJ1aWhzyzUGIXVzdJ7y8fX36ZfI3z
S+RH2LUZk48rJqovM/KFUg/Ph8cRH9DyIkh5C/wNCqe8Si0G4YkwI012Ozc5LB8gXzDDqz+/1jvk
cShyxcquH00txC5xxulBBkOklSQSp5bPz/yN0OUsdDmLGxuZs8Q9Dl/7rZEpx/b28SWWg3kJuV+m
zTj9SL2ggPZzZDihltP67muzHqLez30UWcXniAr1cUuVFd95vHlPIfUEwpIz9zabNWDWxJO68qTH
dENTwkEkc3kewBLCrqHZi9sV5vZwOk4T9bT4acIr06xvvJ4diE7zSckiDvzl48X1apCsKGuTT54+
U+pPfbofv17uh1O6n5zC0LK0o6QSb7INvMjJ1gFNeOgfvkju4S3wEL+iXPcwfykKoyCzC/d4HaeT
mP6Wr3VI9mJ1qHYtNX7ypnb2VRJiweqh74nsecQnErDdOGZ4vPmYtF1a419CatO/Yg5+xFK+Ko89
KpVHUb0IBavCVLUuQbGPMRMRXbElCWcRudR54fH4pEJa04O1vNwRoxd4VILZT5OtG5+C7Z22+cvl
cH1K3BE4u6zhY45RFmN8Iy3RNqTvVAYoc+OZYOd43NcbWarQuZR30lgPSN0tzn+Z0fqejmD6r2OM
JCqZeRaspNieqHJbvGXxj1SnMV5TV0dQrmZJcCwMZUJTsqhV/LEcrtfDj7+HQiMeF8lSeSZQMkl+
sriscqhudYJ6EW4sgemHo6/0fWZNgCHXMD4klcrzpxONpbi3FQXM4yKnysVkLi2Waz9PcuvdQYCF
yYWhsQ7fpWJCrsFfZjLbI1QgMxCkNXXSST7zbkKrd754I8o78U9ylzR/KNmdWGBrKA8CkeWwrLnv
UZVB58s2fSrB4+kSHKfp9Pj7S+yi7GXm4hbxp6mX2GY7YUuT0M03OmSHh9qvkCw/47TxgDasJ7cg
PKXVLbJYRU9vD/fX6+XjJZZpeceKk0ydJXPIDgit9vUlqveYcBPfCyzAJS9jpmu6bH629znqnApN
x5RCF9Zw9LO/+IlL/j7Zhtu00lOn8fAbK3y9LYBzutfHFOFKJeWP18vpxINvqlVy5X6Q1HC2C/MP
baEmHhN5ccdnwvqWteGhmdR4dhN8WyFaN2DCMj97CQu588/AkmopW3cyp7JM3x25XJhoQ7JAkQrw
UKl7/D6ebg9P70deTXel5eorzTYZ4ojmLr6Z0OnG32LTl0ejFuGbFuEBczLtVfm/YUVOmsZFWWoW
U1HRhubWROjI+vysUpZvUH4pbovNvOkIXiY4m0F2Xz6+fDmxNe8R2BH03BXBkbj5t/HFW8rJwQZ2
xbW8t4pj4WmVvqUuv41ffjvudonN8uppoRyiz3a/LOHEpciZddskHSY3E4tevvcj+TtgChylJTmZ
pRJtkp3H31DGTWTNRHnIKZX7y8UnCz74fNf0lhMrc9SHLQHMLjUcBuc1cd90bqf/2kObQBpdH6Yb
ez1gBO9cc51tQ8Tl0EWro0q3Vs/ep3W26/hdGlq7VD45F+DHr2wKS3S4bMlZud3du8PnNm9nSHqN
6tv/ro9CPZwvxVnxp5JXY2fZnXNg9pQ+hdkrokKHHHaLL4f96wLY2rn2N6qB8Ier9OWrpz821eVQ
nqVcdsOH7F+PYANMi4QMvvjH9etYxV8eL9cJOXgXHbh1TWiZzMeFEm2R//9yu5w+7jmhbHxaEnF4
WC1Lhnox3n/7ePsyXneYbwqAc5VNIonCVeIK1C3JI134rooCTFlcoUifZeCI0+e3Xqa9n2uMIpXt
/xcNo50umOhE1r9dYuTh65iwSDSY3to9HU5gZbYzJa6Ri/8VqhNTvyTe5dIlnOhpXXG41qnJCXex
CXwIwSPDQ9YHyYNWU7K93Swgf/r+OAblyF9n4ouQx8zWKf6d4MMDqlRu84M0AZvGDfg/QT1tXOze
ETHVRZuggIUCffl8uhzuG/4VlVdKrRYMUoJW3tHaMPpLvaYsi30aARAFAiCuNalZVgAR2QtdCsn8
pfeDU7Ma9lsi4OTFy/Nldtsm/ePJEp+XAppJRR+iK6UsbkLScbfjv7zEjt/fJ/xyvEd7hAYjOtwH
E0WnNoebzRsY1bU4uxQWnrTD1kHbodQHc5PiQNRuUEKaSC9plTdOKvrpac77aTCHbOCF+Gxhv0Wp
dd9J9GWTJxtqwzuU0nfjL6VQpYoU1Z5u/LYdbMkpmRTMvB8evdhdJmt4fbvc7v//0t60yZHjSBP+
RZBl5BWZH0mK1MheUuKyudrRmu0HFJBVBTUKgHB0V9Fs/vsb7nF5JMI9Ei2zmRbVVAbi9PPxx1c2
JC7aHuMscKKSVRAGH1betrlgfIodUHxUpBX14DwVtjAf3xDfvEHbNF2Wv7RWbKHHwh/WkDNHcnem
5udDxmiR+s2JO6Q4s8RzUuBiaGbpMU1crZPZHURvxsDmhffZqPnfhg3HbiuYD4WtRUUN9DW8wUgQ
DwSeCqceElgOHlzwIatZSshbnj6hj4rgDDRDPJTaOqNNEjZQPs76NkFSy2juP3uQMp/ijZcRci8j
k8GxcIENRhAvfA68Y/w1r2DckfPhUWIJtfjHyF493kgkUaYW4wRtmnNbEKiahYq0kzbTabX9OKzf
dhsXc+Bvy9jkwneW7NQSd4KUeNptd6u33fl8PLOGUd+k9oy9LuE9X67HU2KAy2ZNp7tc8Mpiszf7
9eXyN7g/8Cb+sd6XEAIqmy2wucQnT/QB8QR3AXiZ2s2ci86FTN9u1j+PkQMhZDrm7OAHgsJ8OCxr
diHxKUbAbOcXDGISNlQeqNHkgBoQRxj1OAhZ7Hi1u8Zizkjy4IKsZ/jEtvwbI8K9caxP4ZkaqeGm
vpMCcf3MleyTDI0DE7GqnOSrGkyumj/dCEd8mh6yIIVitCb3ZcQ2GvG0HfKBRGKvUmClC0S3iSCF
kSCmcKIF5eyR9lnvFmN65mVe4ds/T2AdfxTeJ7GysN2EUnq+sNJsumqWG1Jj1sbYbeui0UdSlHU7
RJE8Oyu0KkCJbtanC7pDb8YtOO+h8EFI+GuCXyEJf/B5owGEj0vCEZJcMAlt2HSLP0E+oNN2xOYm
fRWL8fyGj+c3uYCj82WPZ5Tb69v1yGMrhj61d0cK3nOBDmNx/I4Ji4K52+fcTmutPt0gs0AEiHA1
jeWaxbLEuBtegoR5kQ83tDqLmLwDXUqYyz53yX0oEmdkDs+4XTwsoqW5f2UZmEOC7Hha//s2SXW6
1l2scwF5y2xpbp1rhFu8xCqrExzjrlVbGNXn8WRVksBtZ4gIo9mNruPfeZW7spcdtmR06LobKOIL
WwdrzfYm9xYxRD5Umj0HCmKIZynnilE/CCniOt1QHeGqMlYm1A+kMQqv3yg0w1d1JJBsXvO1KQRm
oGIhyDs0Uvno1pDaOC2VVbwB0+RxgnCu78amRReGN+xVfKugd4e6jA2QcAFUxdUZOUJ32PyIIENU
CimuAs0W2PlwVVAH2NrPgt8wkHeMCF7nJvpYu82euoD7ynUb469fm+gAeAmVT1OswUpDF4C3+luq
02LcxhgxvrDwhz2okd9kmESncj7rTHe7aLel4bX/StDY1H+IbB+X1wlgxrur5NHXjMR34g2a+AC/
7qag0QY95kSldWHgYNiHrbLpyuBKFfOdnaZpbCy4rcs6UPH3N3vI7jHPxgzjSTAeI/SqTILaiZhS
5FyPuRBxDlPHh30owhqbNLQJLCnsdRmPVKX3bJiF322+6Dsf//nbJz7unk3/wr1zZSab2/ns+Spg
lkL4PVub4Zxbi+7ZCD5LlXjyNQEhG3F5uT1dz9MUKjPkR6CbMTcYep/4EMpY+nxaPCkcM04UBD1c
lgOmF8hTeLuMKF5a5onFOFeAPoV4mbzEkfiZJA6ZBvfnWWtecBGBjCnnrjyad5TcmjGSgfV0wq/U
uboSa8ZtS97WQC3sKBCEMiIe7tLloFKWmHi1Px5PPMpAZY8PTYWPUtxrJOEFYv/ZuFcqwqxYe/0s
7EdHveqYpJ/pL+foUZnLP0HizkLAswks75vXo4/f8HFB4iiCGdW6/DOTbypnmuLykDQmhpUCefI8
i3vha+DIzkOaUPVjEnO8IqXslnR0YHedeIxdgGpjPMRsst11Ps1PHi0olNpZi65dUxAvtllnOdvS
DnU2m7Zfv4Ff79u+op8v+FdtT+s3kNynysm7jKhzmV5rGQhir0shbgk9OMsOYxMuOtV1tBjN/bCd
BM/hpgkN5QzYkN5OK9+66uRlnO5OhCYRE4zO5pXEXJ8Tc/gsLy62DVJejnX11ZgrSmAdAd6OyopN
77ChCqNMbyxmfMgB+X1AgQSCFsR4W5KQw7UNudtmIYvCnWpyUjwDGagFm0XnJHLUKQEOX/PKpEpV
Z9K+9JcjHjfNJMt1pGQ0EpDyXpux6rAmB+4h6rkvwv4QNAGCciuSaUdmlh9L6fYhp2DoozXP5J1/
uH0OEOhzRNYQk+zlrupzQYp7KFIsgebfJCmCBjPcV9jAucQSx53RLGu5cqJNXwFVSldamCAAS8d7
eCtBqFoQDq/IsqEoHxP0eUlzLvvt6ulj9a9CcWNXjbmQycKEexkVQXOFIHycXgmeDnZ2LUSc+rGc
4yuR3FsHtc8V90H7BfMozOqub6hSsPYAg2rmfa3W5r243IIUS9CpLKruy79LcbUhxU044CROBgL0
Aku4JiQJQb2NrHoDnebUG2i6RL0JL4jK7D5wW3uALdwIwBub24BFTN6/eucrJMekSM2ZLghWwVd9
O3w+HL8eVs8TELwKBY1NLiCZND/wmIGLDBowOpessa0iDVQe/iiJmz4nJ5CIDmUOaVQYiqF5rDcB
QQZUsTtZ7LIJmF7eGSaBHez41gw1j3Oy71suXgocng7oBOtTheAZeFYL4md9TuOYp/5h64LCoxcj
WcR3x8cYw8BOTv7Vi0mboBYToIGHfFZOFWG1NoNQxNoYfUqQgk0Iot4nHst5R4p6aLHiPnohOC97
jIGA8GmC9Jwx9jDJyq90ZiLrWECuByWk3uPCkFe2fohGpbxc8phatD2beYGuPEJPMih4hH3gnDXi
1deBAkvwJ7SrfudNoiq1F4n3N6u9ZAM3FMczIE87yTecj1fRABkpnDpexogVlAWcpjXkTcLsYVyn
72IhrJjq7LLZuOiZePpHf/Auu8Zen37Ixb5nJSBrwUUk7msHJ9QNbQZ1yMtXEg8KJlkgzSgUfQ8U
2BV3A/RDwFy+f6B8uEjqu86RQjyR7i7s9rV9vljjHjInSM2uovH2WRbMBpGcIcNvxJhzsAk04213
wXefdErY8jiNNhOtv6v/dlSg+49SKTgtNOqQbD+mjaCq5V9C1XWK+WwqmoqA/7CJDaxEBPlhfZsC
roZU+YRLZ0vTUEuCGeUCb4FnR3YtzEXoct6sz396PwkVvJTK6SpqjMYKx9SY/AYTsp5l3BbWhvIP
t85hk2JnT9/giW0FYW21Khdg8pGN9LKW+3rY+AYtw6oREp7Wk018AphIw3jtXQNvR4oI22/TVhc+
oahyqciQsXUBPewPvXrn23Ta0G6Xo6dItiS0virlJ4nDSRgMwAn78rItQnJJ1SOJvgZLw+es4CXy
Til1AxHl2dw54aHelA8n6rwb7+MbFu7Mm1pDDhIXa36/Hs/bwBHHh6+yh3wHKl497Y+bz0LOmKKC
QYV4xkrrfV6PXhIVk8BDLYmggtQh+VFSO3iYvjoFtLtgP9lSdFFXY86eQE2GiTa0J5xtguWQkqtD
Pbk0lRgti5ZXOprDxqYsfoWdqbLgcS52vVgcjympWpuNwmIRlDjQQIJrWMBCiLYKXFh9w7CyJSGZ
t9075HxLydWum3Gy9QULZA1lQ7z9kQUqWmPWqXiXMiTOHxvXzdp31llzsYpIvbLZ7yQp2FKIdCzX
Z9fJrzBj94YYDkacEcC1gP6iU0Mu+e/j1ilST0ZaDKrNZRoiAwAQv4WYAv4X2H8eM9znEuUO9VGO
QvdkswlHaDT+eHGWFfFonUzvm+mC/hpU/Bw37I+PXc42QWtgAYteU2VBRfYwAlkR+/WQxQhmepj8
uYAk7UgtIvpqTunvj09QRnE8WIbZ41moX+gpIANkYNUm5rsr0gipAL6qR+euVyhpPhmhYAszoBMT
mFlAb8WrTnJAHdozsbDHFtK6gdy4XC3iQMoXyAPy0CBwrm0spQQNIqZ7HXGUMTJkxCngd79O+70j
MC5Zs+O8rtal/kK0IDAxmqc98ReqJeRViEh0EeTjeuvihV72hHz+efr3zbh3Wx6VNaNdHe/NDd+W
Xo4RmeeaV0VJaaDahsqdJ54Nq6NYsZF0J7h/Ob9DnoHPCZC4RhcaDvqwGZjc8J9mj9YS121Lk1ax
Q8x9PtopD77Wp+3VjJWYFkrDlQ+JCjbC3nPS1Nl4PFA39PXO4mdi3dh+DVGjMpAjpVN01g8QP+1d
qL/U6tXGPmfctolpdnCdTImBIABe+ly5h1NU3pVdwEJiVFad87H82chJV5JrQKR8OwvuWWhKiUBE
p3V5NWHdM2/xcDWmL0/5oHIFhhZt/8Off2IlaNPmivc80OGjgA/RxBQlEGdcM7L+OEuWz49lGZic
o7Debz6RRl+su5A1OSFqgOi6D6Pc3vnAQdZTmbk9wZLbBsrjQoBzpG8+2jE3mu8rUC/3uZI4J6QP
LkkUlMi24N8ZSa1y3tD0BVDtoE14MyTLAZ0UxbxBPx0JKnUP4u1y++zCALxbmRVl/rIutQ91EtSE
veg8YASkj2fB2xzPIKBBle341ADFgFWxjU8kTURB9BBtospx2t0rngW0AqpOKU2t/2Sl4fNtv19F
nDEf4R5yAepARePSQAVoMbnMpA1ehix5hSXML569TX4j+j6jWjNwnVoI1BGScxQB9+iSUq6NBvFj
/f0MxC3w5Ix5+yCbjJeSuD1BdzUdIqHae6yNzd/KMlVVOenDJyf5NCQV8Jh7qykVlX8Vl8/TVz6T
UOXwwyQeFIMAu0PJfaeMa9Eu9wFIm8P3mbjCUzWPIwckjaLR6rGLGU3gLetyBMzBgsbcJjRMEU1n
ooWhod59aFaOVY/jkFOhSaq4TJPUZllQWFJQttq1bfusC456YrOPhATscrpssbJ3es27RAy0nZZo
182KCF3MyBrdlndkiWnZ0QRyNHfzyo9/StUsNNJ+AzUibwepDGEohl2WGPQ9ZdOJbfqM0WnlFxZz
8UidrAFnlN0ROjNZMSiXZg71kIMOzbLhRTB/T9wb8B272LwIlgKJbWNObgQmwSpnTWOfo2krs1QP
ddaV9kFJkV9HkwIZSMs7qT+vL+WzeQSc0IDz3bQqmzheH0ROVGOLU/QriNeRoWxZfYGmFkKIqMkT
tywK3y/Cmw8ptnUmd5dCvDs9ozB29lGujFf2RYyVNKReZH9fvAG2/x0XBUR5BXIgzVBRxOzj7mCr
Cfi6qWxpfeidAN66sdpejAS6GiURTgIKm9grN6YI8JrQ/hMKFDjlz9OHoyRj45PEaCawbcpuUOI0
yDa1MhrQYaVjsJW12+Ppgc08dL7gPFCGeC5o6z8W4tDtOOSSHwm7NCb2QDw+GUvls8QvnW205I2D
vTW9MUjBE0iQcDRRYvc88xN5i3Iia1AzTgrNJ6bLqGkaU0bmoLpgf/BV4F2WydXbdUtAJU3WU53p
o7Tf+m9SpX/fz8gs0wqqw3E1PT+DoIHAQCw44jPpTa6+JaLpMdkh1SlQ5vU2xJvuinIfcXxpZrUN
bxhfjQzQG8Y+V01SrsOSsrN9jm0rZgt5z4k82wFlJSWPsWy7gN/3MD/sTuIEVYEbi/Ku6KSKzprG
okfXNxkDb3YhgSb5u8P21zV/SCStQbEk8PuAO4/iTQ6PdWO+vmp3IDidVaVXz56cg4eyE6p7m+di
UNXUDJPg1DNa01lJf9pr2XEclMIoxkwY0gjIvFtOiQK0b7OxnCyFYllWUr8VuwvrfOLsoeerU86j
mqss6wSrr8rxeLigp1AJ31VNnbneATkm6iHjxqsMemxWnwwdR3/eSdUko9L53PXhZkyAD7sNAuEq
q3nnIbiRdOMxY2KFMBL+8fG3OlcgFzF/4Mla9c86eGMyQuujkoiY9YQ+rp8bAqBELpOetm5EZk81
tt2cawXNrvXBGpJFshWVy9c95h3zFKvdmGvhcs8ut7RonEiDEdnqmwCuf7yRUDsvtuhKNX+LOMib
fGYNQwKYHJZI+fqxz0VVSd76AGX7PDxdZ5t7LuGFb8fU+KpnwgC2lFeT+r5qSGBLECpcm6zLlCEa
4G9JPW8POZ8P5NV5t75vxpwqwyNc1AGmJ5yjxEkO5C9kCJGrmYZFdKgtyoHtxbPRNSemg3Y2hrC3
7VhjUWejTdbkXVZ3ODRjLi6YJxdLG1CxoeQsk0ssURGK1fWYr7XCSKnPV1oxbz0Yq4MW8J+2Wuea
rBLArQOU+SgVogokns/sKtOqVJd326wv/MXsiJGGnuMdaPFwLMH4+lzOZr2/2jWwhB2Eyt3MQbe5
dF85x1fnqvBjugnhf4hXE9M9dTb2lHue/NNUOdQD5pc3a4y+yK0iNAUeRjlvXNsvNoyGCAw+5DUy
NWZfIH5XbFnXDiqXgUmChFJ1bp2LP0RGqWWdATvKwhQrXYIZtEq49o0r6/WIN3XMSzQCQ2hQQ0xr
iBGOio2VSSEygosaAy4K//cIuQEsHwalhGJTI4PHTDTRMtA5hueb0DquydGBcbRkvLmT7QWcNMPj
UzHZXpBJj8Py621ztfVY8anUKFR8NimBh47qGAgAQ4wXb6+glNN2u86Y3x7fdoc1JZ+Hly9Frim7
Q2yxknHYWqGWYsxVH+QbxTR8ArzPYQwyNCkWB1ziSalyt6zAWfNtOYQ2d6A+LD6LFMB//f34vTmd
2JxZ6EYbBRugZfWwsPq86PtT5pUG6ZerNJj/efoa3yCPItV9lWMqCeHWe86dAhuweR+kHwLG8XyQ
I1D0OQ3Jh5UqmZnmFPpCCZ5HO+TKlXNA1J/NM1vzIHqinknblwRRWNCu3ZD2OKbUaR4ZUOwSVLU5
8/BeXojNKrp5S6qY1/MY1N11t97bpA8vL5p5VXpdqDPil6VzEJV47XblBpfz0n1SxHwwmxEaeMbc
Bn/18j04/nUJWv7swvNR0xWacDUzPIWrWjenbbY5hVgbGxw9ehAExixY70XKX00bl0aI2dw3XcAz
pinypAkNBHHTSqjmYcyWetw3EC+ZsJSStkv0mO+953GFfNwx28E+w27P45woehiGIJApIER+LxEi
z3hAh5n/J/kBeuxzsa875vNGoj5vcir4fgf4DaAQT3AEKBkpcrjY6247cLGIvj4nqyx6wF7v69fd
Rmr4QiGBfezlmLAKnV+e1rzU1rnENO3dIDD/j32f63kX4JLBxUPYJO8WdanfPWQjyeUeXnxIOU+D
GRGLx2ebXbbdfSVDZUhjO00h69ry3oHKdfRlYZBiJXdPKWObISJaZikBvkpeZ/nNMy1WQcAsQBZ1
iavpGt4JNFp4psYTkSo3xxzaKEOZWGCy7Kts0VqMnUuNQWjrlugBoNhzb6bYN9hIvzqX9wmWEuq4
J4EDqRv6HLdzkSSBD/gT2406Nt5ItrERHtwy5JrLpXgLOBo+spP6MPPWC6S1adngJyYXeM61a9Mb
rWoLyEKhwlvWWap1Es6HcOdNArT0NJxdBcjAy/l4O5VoUrphFrzIIijxn4qFGUpENhsz6nwtkKLS
YkjqQs3RcpcFxStdnSeQWZ9hEi4i4v4br/XGLGA2mlLxrKGgUgxukNIsWFsbKz0DDUapM/DQ9sx0
9oR3akGcpc9p4rwI5gXvbD1V3jaqJdso253Ky36soeXhd0kroSYWm8wvC2S03o1IWEA0Q+nnY/zr
UdbCJQEOEkqBi9q1M4YLGMZvoq3xl1i8hrrPFTpYaB1qi2rku40PVJANWB+XSZLwVRbjrNQsy+2S
EDRHhmyB5YUghs2xdJ6dHSRqCH8h36DcG7jJxjTd3v6+e5t+cLxrxmcv9tCrcuCaTLqNN366PE+L
S64UBEBXKZXT5/Oa0/V5/bTbrMQapq6vc74qw27IY/q6ocqVaKIGcRKFd+2z7T5Dct28A1FhdBUB
k8Wgua9++hVQgAdbmzMnk2MfZlvlrgsJlL0cgLvQAjJKUbN2FsR1OSB71l5aE1a1X45bvI4incyQ
hEbb5s5+ImNjCSNvTGkO2WGW+tW4OSBHec+aEjIPs2yB9W6senQkxryNOVZct+0EkCugcLucNL0j
ZJSZmPp2xuwbmy2GgP314yRQheQJz7xxCs7j+nwWGkHQnjf9bEMtHC400/06Pa3PZjlfhISMzrXK
cywEkfrLa2pRiA5aLmOKRBfs5ma5oTJV/zeJfF9l6aF3e5sTeUHH+HV6X78cy3XAlEZPBU+dELsc
sc1QiY+ia3QOsPt0ezH/quEbCrVDbkOcYyX00+wq2m75rmWhN56KAJQqESNdzZLzJTALhOjIlSo1
Vxbhrp5/TLwVll1f6OB6KdV3t7lyn9Ma3NWznHDWxFiAuoXx27oySIktnVO6j6bQpB/ocpl3W7e7
epuuazSZiq3te67bFQAYZuZ0qeI120Iul/X5y/rtTQgfVrk0e3yvlpKBf6ZDzkR2kK3CW6lzMRBr
bn26PX26nkVavHrk4p53fJ38m889KpJM/MWs46f1bs9r605MBbu7FVI7Wz4JTH30Dh11Z5kDxEg2
xbMw3n/dDp/RkOc959nR9ctiUDwPXp2l9ltAvS/FDLOEG9GFwlihUBKrKYCizkG4ImkZD5jRaaRX
LHj3YHQ+ekl0RIudvpNuIiEzaeuxbwf8T6Egu861prwDrnoEqIRE7WlL2qTnYtbo58uQZ9j/IlV4
kRy8y1fl82F73kKY36iOVdES71ud7cAYTTd8t+CoLch4992MfY4QjRrVsuGVsk6T3HVa52gz7ryf
0udAfb5Hs7fNBYRr2w/ZEno3BCbRXK2eb4zNKwPalAGN0CxR5aPxjqGqcpDDUFovFdNTN7OJnWlQ
tR33x7PoBfZjm4MiR4q2OeaIz9CNctpZaiVjrlaamWuYcGIrhROzqV6MREABlpQmmfGMjMn1XN7U
s9WU/L0NYavZ5UgJaIU7kUUJp2+X39BZuVXuya1ehKuu6ZGQ6j/gJUx5xIIFxdtARJVA/UNT9XPp
vxYZAHqtcj1tQibrdtjsj1gFdHuCx8LHveYp4IiZh6gMSEL7avgYXp/zT2KOJFhTsp9CIdtwVnW3
gG62liyQLnVo+wymHAtaA9OWZy/gAytjrkeII7f0gCCe4GqG4htzaBjRJiL2TAuH1VIaMY//2Zmj
v23LiOqxanIQgk//+Msva3OR3y3TvUSz3c54ZWs180E268vGXOgVkmzyrkib3sDxAT77RejJKstv
Ol0DPvL3Y6HbWkelRxekhwPdhKoSwHFdwLWWOc5Vn4vz2ibFf71Ob9/bhjBI3X7wkaDjeQdcp6xx
qnMQMxIsizFbvKlypXNHMVM4Xl2z+ctyZpjWOGMkb2DQ/yW4hVbZtoLzjN9DNGgzqa4F80XSTSrn
rjzdXvQwNIOA1Y7fwTYRHi3L3ydjE6nwjvTJS0hbl7kVTYoAt5N7gpM6xEYYEXfLR/dmcR6VElBj
xTxfcdmkZQ8x+uJKiz6QLef1fDzs/lgXizm6qs22j3Zd2KezUF2tZtX6tOQem6zdzjte0w45+yHX
+eptur4et0KqocrxTiH0zIjvX50aKEjvrm75hIUrb7BeBJ+pyFbFhAKD6+66D4vj3zQVXcR5DdQO
2y1adkLqbsi5+SEragnbi62CVDZrAtxQCGQAx/58ROZHI64ACAsS/2JkK+/ntbOKasIFb52Jr6+T
feGFquNRK65gfVHV8ZcXoeS4z5UcO0lqjInjGRHFNq3AG8eE18vcq5FYW7ZFoMQao3IpA7zOJR70
jra00DMKFZQEtzOk3n4QTFgjnmaJ19TfMTbiyRidheajXZ1DlFropO2t7cQl+HCC2UogagAp0Sk6
MWkJw7gGBIePLH0+IWI5S7Gb9e4gtULXlco1hC5GGHs+6pJLTHsuxAKypquGXBGsj3fIgK5+yHP0
EzwJ9t1DzqWVcXnOi/rkkPoPBPuoLO4A7JuntxMvt7qcAZ52L2l4Ldbn2kBdPi7GgkSa7dv6pZTf
H4ZsXRV9NJYgYS+wPrRjtjw0ZKhs0eB0ttwac4ZjXsnVuQh9JnTgi4Mjj/eyaMKQ0+XuWmHo1BoX
YqlhPwuykKik45OR4zzjmKVLtrHpGFBAl0qiORvaNrdbOWRescxB51j7+abDxRgwyfdAlLT2eeqY
romIhP367RRbuLLJmy6HSgngd+OTxK1zxMFSIl0POtupifZF2a8Fu3CgCiSKKEtPvt6K6RxNM0gq
aXlh4xRG/cCVP7iid14mZclIPdyCksLxaOBZRIDUTEnh5CF/iR1l95cJgEuH/UeZi063adLHJSBe
wcEOJPtSnVBHTpKSKkV77cuL0Hyku2tDbpsK+TYhaBvjpxh6SP8+Oy54TY3L9MBVVaBPVQSHzgdZ
1cIwKg4DclaBoLVE25utnZUNljzv15/NO7jkTS5FwvZg84KcHXwh0sXSZmKWD+yuFySzsnNjgm2K
tMJBGxroCqoF4ylpvDaMBwUS2iEwwbZ1i3w577bSAFUYoIHMf9OSJdJxnqRBmjCIGpHhpckPspYG
qcMgNVwrzBDjsQXQUrhSl815d7pC0Ba9F8alxmGd5sYFqgQlBqaD0dt+kLM4io6jDCGiac12Rz+8
aJghDANPGKpOfM7FbA9+gvkXAIyt1vvTa1YcdlhG5V4wXHmFsYIh5m/we0AiMShIO8IYR6Aks3GE
/Q1rUvO+sR1jiGNYJnlll/S6e9/Z8zI6Hv+zqlTOFMdhvNvWuISqfRZVVfNfNPGL6FKbL1yLee6z
Onzmw3+u0OrZTbLPfQvCyMdXbK4sKI6qavgvqvAFCTsxG4FfOGMLfwqaUDfui47/jTrOqiez0vwX
LfkCtWArbbed1xjnBbJrcF+0/K+ouHbnrPpqgUvxPrTkdNvwaKX74O26JimgYw7HftHF33DVWpTz
sDjHLn7vLVpvBbhvm6xewY/7+HoR0af8dJ/Y3+vH5PfCQfMz7OMMScdTaRd9cUaThJjMtNb8J1EC
eJST9T+cDYNl7Hu3I0wa1g5EzjxmLcUTGPNnLqyvir/RBbtJXt9MYgzxYvFLieIM4wJuT5wjLwka
/LxW6c0q32U1pHuni3un4kkTz5wRNHZWVfImnfEv7bbS+dvU8l+MyZts3JsiAUV6m/j96PrknOuh
+MudTu9SU9yPbnbxnYBDoCQCvosSRLWpBCLvk71aqkuuVussiOAkllVteoxeX9vezPgF+CPFYfo2
vaPmNuA4LpXpv1/ZJAi/BTWxQUJWSbxUzd01xAAiEG6WXxaR2V18WYo/5aZLX1ZffFl1XJIlTSm+
3jqru7a3t9N3l9+jOuEvbxOvIigWXX7MTXxoSB5e212sFD/Lps5aXIo/qkal0rZs1dXNnXmGv8Gf
aMNorIH/DZ2eqJcNI//FkL5TdwdUxX9B5FhFvhCOsE0PpJXMOPsbfSp//G/wN7OJTx+fr1u54n+j
0emswjpkK7tJjXMIZNneGe/TtvhGW+KWjOQ3+d3umtR7KMvudki/qIu3plN564S/NV2dt0743e6q
dNvq4ol2bbqOsajn2vT2N6psJ/d363A1OGfgnd2Ujd027gRu4xBkKP9J3ApCrw+ig/9E3Vm7pO+g
1Wz3BP9lfTmk4lyVXVNygeto/Yk/0qZSrC3/SJf3Bvhz1H3+PvJ3Res7q9Lq+MvFhSreHbA8dyhw
BoGKsUto1i3HgOVcYjEN+L13CrqkdMtFbs7Tac8k7vFjb6F1SYmpj/RisoZHQNifb8MIBCKL8cgQ
OHcIYMf8zW/FEMci/To2UM4CGMLQD4Gp4bIrmm2H9hAtqIoxk9na/pxPa/Mu80akXZaKp0KLMeBA
Xess/lsdv02x77H0t3CoQxyCpE1D2En47S7+diyJudtCS8HlEp7sYF1LNmGW8dzvThffm1xIDdrV
9OkVV77i/HxJrjg/wOxQO4KXtQsC/BhiO9kt1WRLLbajJqnW43nnixts1wUkbpo48ny713W8+jaU
3vi27TAlITtmF0UefsQqBMiLfcGX0t7qeFHRFnD0pogJAWb3l+kAmegS8syed7w8xJGPnPslSRSP
Gb1L5dpYp7F6NnGCY7Q6vXId7dYMmN2lk/E2kt+XOvZLnVf+FEbScVessCO18A+OFK8xqdOhTzK0
cuXL8+3dqVMRU1GhH6h6ZdEfd5rkbeDKQA/iNyiFlhVX16e3ZaSrQdwkD6iw2zHmBvDlXItOuYtv
iOj4oHVXjSApyQWxqY8hHuyS39Ztdv2bHfa93m1Wh9vbEyBQ+bcbta+q8I/BiWvQu6fzEZmXCwKg
iwKAuHd3En96X2MVJz8OuVLRfMcH45AgFrvBiw9NLgRE6ZVDgK3PZ3+/S482jkAqZiIK/Mv6vFsf
rqUt6eOtIH0gUpsEuaPOGCwT9A55+phvcFDcZ0AsbEkWmpdn8YhJA6R4QWthFeRTmzi6lxeIJcCG
zzdB0aic9nREEsv1Z02mg2R3xK5xo3jlJVySgVicbaDfJED/wm2PrxasxcF5DqFkAj+KjKoWQw/C
iK9gqAnDhPI4kG5GzRpBL4ofo4ljkJcIYzjNxX7q4icqbQZKP51xM/Mj6TgJnY4UJZvIKoHDuNNW
KQwlDmOp/p1ertlhnHBSepaCZQbi99YJepzLgLDn+YwAIHbcbtkRmiF3Op5fM1JBcd8758TOACst
80uhPbuknRnjztBqxzic7YDDDuBkZVjP/HPsl3nh60dq0r1KpXCl+ZI8ra2wmo6cM6xGteJIHnvH
D6jJ9qA60PdPwoJFv480P/yr6NPnXYuzE64huQQjGl6VsO38fvW9vO+u+xEILvkAWyK3Im9dMpDn
gL0JUqOt0/1pXDPS6RQItOjGG6F6YMBX9lrFy006bMRZySBoOyMtCyDbvWuBYI8SiPg06Tj8xzUr
li2dvdtauYePFT9kKBV84Py96fgJjckod4/eCUHAC0PtNT8bnV6bUXwPDf8e+tJ7KM2krZLzuTvn
pDuZ8DKbLj3nUdjflt/fgVPhJ2MsokOFSO/d5XLj75zW6WvKnPUSVa7J1W0CwQD3KHnFFXeYxJIS
ESFomSjwCMkBOR7Yz4t/CPzpVPLp2Pvmo0qCnokmVtNZe5Iyv82ElGsHGYuqtiKxcE2YM1XatPLu
PpfNjXGJAeVXLGicOJ/G9gZp80KIn0mbzqTNWYTbHfo00C30sLticp4/Bd3ISifKZlgk/9jipSDB
55zNLSjSVlak3OL4tbWp6urZ+/XYtVKp4M73EfLwaOk4dWo6NFXmOS8xHJr0YevchFyzTIxCyHZk
aobc3XbC1gONO58+SrMb5BsWFW9BzzWs3bc7sEh0azISkza2V2dNovSO/S7fsSG9tIO4W/wmjanq
nBu1y83jVqWXYZSF6tI7P/OHG0El8yZGr9OX05W9LkGaDkQXIhlKl1NoxUdYj6lqHkSrhRdfTS+/
G3/PvV1nW0mwo6nUXK1D1UFabgDVZFDU+4Ktb5HXtFB34P2VMUQq9ayZjh1HGKEKI1hGmm4+Anbc
2qw3r5Mrc2HH8qeI2IcBywxpFUQo7CosyjtzmLppXRUEDLN+8/3url+P0DoWa6kv/EjtQLZHx8in
o2y9z6mvmHdtqzNGMhoUwVTtbKtcxl7Y7Vjg0UHVQDe2lGDM9d9w9wLcl2fkQgmIBb4nkp1hE4Zv
NMI34wEsHaOPu9+CiWqur9uzl+yOXW4n5FUVylraOKTjwtFhSOApwlVjQdzldZquwkA6bh/UwHZV
Ry9Y6V6RIp02TYn7Hd+sD1/WwoXqKlLnM+JAVZ0W1cPOAMnLy/QJnt5Pa6g7FZYUJ4Xd2cb0PjhZ
7GbHxmDt6ZPdgVRB5wvN4N14/vCgDoVsuZ1YvO0aqLp0WOhLfMnFQbowCIZhh54UscQW0sithATT
ZuTjWhBXXRR4NdzOemjvZ8UnyOyk4hgdvOmuVcIjjFJH2Pl4wRF1Uw9q0ZtRwiTjU8Yu1F3+nm2n
L0bzLLtp5O7i/XdOY3bZwlrjkdZYMeU4Y7NC3pqr0/tpv9vsrgXJ0zXkspj/H2fS1dWleqI5HOyd
H00TLVJFfpuZYkMmFWHXupE8KuQNjjfYGmKCKO2ItGjwT9JSLNwwx5hHqp6F6UQF0nbYD6ZlJDya
XFAjvl8Ly+vjnneWnWZYIM48lwV/1+I0sQyh7u00t+f1y9J7FnU3PHSnhZLL6thljKl6hBzqddp/
IHX6bnvaCQP3RBsh7CVeDEdzsFhXxjtm6+zGasFprL5ASsPspjAw0QpgPeomHrPVUSuzlV/dBbJU
lNJN7OJN9DTPMNz/aX4AOhkjh9Tq04/4petSeD0fV1W3YguJm4QwGZLKrpXwCYXd+YIYjJXSfBeO
hlBkEogusldcsAFp1a5YYqSGdGPB++HhH7YGytOOVloYgpAfYbu/PlTmwwjgK4gzIPQFcF6+IhZc
TDv9Rlg8oVgmdGN08Y20+BmTTewy6M+uFn6bMGbgRQvkQsBN7+6U/POx4B+cybGZr1zaddJiELKZ
uqMrByf9Iu9cr9N+tuP8x1tp2+ORQ8BmyPUM5fdtyO26vy+g6GHfhQsTf3zAl0ib1sDUlZJua9x0
dLTq+bp7adO7XCMBet2kn+6bHP0H/Vpadj9jRewzgqKuJEHRp1X7MzTOSZZUhKAUKR37u7cySmeu
012v0sl7WgvxuVBSR6Dr6efNisRzJ1RgiJi7a3WkRCGlcqSo/q0/A0ULnL3w3Ia0q0Zkflhw9Jq2
JoAEQ3v3WjvptRKeIx06eiDvmbFDVp5Y02w+f/yEVwuj2d18AtLiSdMI0jvb/K/hS+SsEN8NpY6h
7AIzUdtJOxhnQGkc4vSl7SesHaguB+bySheIEJwRBmwrMRHFI6uaKLRA7iuXh/Sd127nnXwApNPf
iNxlKlouf1XD36LNsj5sXgFkaTl5kP7w/NvvP7u///GwZZgA1EDqCtFpUHGFblAz1N+Oh8n91192
2+1+Yofr05oR99rtXvmBbk9/J4yi++vZejXvV3bUoU1KM5yZ/gIj/vz7b2RAdgRS9Q1acOzvlpns
HYy6bL2xzIS0qZDW63leimuO1VEQeHGi58Wf7O3pbwy1pV1vrBqhNpKflx3hR2Bve2hOpPq4S9pp
kssS9+4TkKjyW0duHuxiezfY4YiW7O3E394mvb1Vbpl4CEtvGikCitp2NiA9zvN1Xxx0jI9iroRz
2yY9V1K9DGv3PUiZc120Yp2WPc1uiu/WdD3zy4uHgEqy/AaWbNoQXywE0rzuzB/t4gsctw8OZeyW
ioHCVY63BuM4Ve6AozwuyZQuvdSzE0kl3uLtjHcQxne1xsKgi7eUlPzpePqw9uXiWc+WXBe0UOE4
mlSyVMmU0jfMTym+CxKCYc+0MKM+uSB5cfwtuz/OCi7vNKOsJaJeRQtPly7FIoGSFnQ6MrCXB7ae
kDqgEdHKr3TpIRASIRqySFfrJcqSN0UqRkm164J5FgQAoVUijO7s1ZP0BeF7wFfR59Yc9MWiRUcR
Ck5NO2T1hRmJv7NtatnUmecpXltSEoscsqr0mpZc21HlmFVYJV04QsJxQ/U0K9DEM1TJcvthqdIS
B9WpgagzYls+hDZ9pI7zJVAT21rj9WZze7she/0XIBq9uBKT8D/Lhm1bbEHllq3Qc8a2z0k/KhsC
sTTK0Erg6YMfy0eAlCuXC/TNpKN34FTe7qDq5Dqxw4V2isrR96UTw7CC6lZmJ89XdpDOM6KYQeDu
jZ7W+zStr3++2T5F+RQPzqGK24P3lTJDT78cbWdg7FL+ZVrVWUK6ltZXwjhgGTSultCvxgIMLeom
7NaFX5Zn9FJOKPaZvemLexMHUZB/VVVIU3iMSDwvxR9UQ859DJLCT+bz9PHpBJSqwnI8XQcSIIQR
zDxc/XjY4qcPprDPTmQkC2oQsDJrrgalHuDxPE3QB4OfT1xRWkY2HW70EitpMmR3W0T5VHQylhc5
3p0Nf3fqeHc6+zd+OrbOkEyo5uej40tApzC5ypCHm67miU/TH5Nw7XoyleC4mYk4xO2CyzLU5Iw6
UiqYf1OK35a4vwlD4/0paX42nr1GIQYIqVX9IOvDC9AnR4E1vQAN/pnBDuBwqk9fQp3eY+zBEkds
hcMisk8Huzic+Gwg6dR1GAhiHUPyIELvmhCnC7KHvwN9XKMakXG8mj0yS1kNyS3fW0N4aTP53GYE
WVsUZOROWVJbzb4Q4WrqOAwyRVUJw/zbcbt7/oh1pAdAbbAMGS1ltcB5NYg1s3kFBzMgO7T6+rqL
1w34d63Kld+jjgIP3ac6XfbxZJtOPCQmyJBdSHpmRJ8wRhMPFbNQNfemMDFjHpV5W8KjilcYE2oq
9P0JUgIJWY1uKBs8oSmRsuHicZyrmjC50ztMbXrn9VbfxbeAtqjTfH5aDxtjdwpZs7PzTC34G9KB
dipd8ECvIOB5/7He52+f67xWC/ePSBdN8TTcQcvSMx4NiShwxtaW1wwDMdqQZChjOlZF07FqyGkA
mqnqC3dFMCkCI75/VwNn4jgzWxJULZkZdlxQvEUgKZlo5YB92s0vW2xqB/dgKwu7nugF0kyQO70n
/vSIjdFWpDx2wY218lK8sR051DqaiPyhGvG8AYKYF8FV6aO6JpGn3Jg/41/8ctxO/4eFENozHnNG
dW5Id+RmqvafhDsY7w0EGIbq3geJw/6vf69+F15HG5dMevWUlWXNa0syO/j/Nm+qXD5PX//JDtLH
bWsq/CN2OZpfGR7sav1P0ceyjvH55WkNpRobONGyT9uOvXQCVjDpomDqUq2fSjd3HZZPqmuiaILH
5wrrAh1RDDYsM0rIvtlOBU2dP0m0YuVDCKxW3gHPXFlz8Rfo/ZY+fOsg+heFlSPLnJcup+/B/wGc
wMwql8ZpmEgJZ4S8SUZIlzrPFQlxIGooedes/K6ImwlGYDO0knjY/LC6fAIrZDpfJI9RzeVtzxmU
gpdGDHP4/5w6b4qvRqWeUL/QVhZc/IHIwCFCDwSlLgxGLyhWvimdfzYh2iecZmBLgdO0TLsqchwV
L0M3ks9BsTdR/+SCedJVJzEZ2wS0Yi+7EVO0yy+vbuPzIWCx1Gkci05jlHpYZlHVC21t4QxJqAYz
n+3COyY5pcRf0cFfKQl7iLr9vnuTYm4NiVU0If9x/y5Hwc+rcn6en5tvrob8elZKv+wlNdSmcqzL
6NtHVG2TuI2aUEGFtdmewrxDQiNvXaw5z9nZwq3Qbc7O9gtzvbXslX/nBSl5R5FZIL3zRctBdbM7
r4QTQ5llHbkFh1cL0cUou7wcxJpB3ogjoT2NfwRd/Wuuom7JOyLB7tTvv1yxE8MyYUYspSrkTHOW
0oSVt4KRRERYhedZ50LVpTg1MVHrgDxkNPYPm9UnSR6QUChWtqbFO/PRft6v/vFl9V+C6Uai8VgR
MLoy6ufpfMZMqOddYkcgsWJ8OKmcD7LggukFF20RBAK5ol1gc7y87fbQCci1K7zuSlG9Xqn0JTbL
39DtehT2q1mYBPGPSHDtSaDeVe2OfGpHiuT1SUi0H/PP2r9oIVxPXGRbOOqD47D/PtJA1b/ZSSme
UvXpac4qzfC2ftmtEb68nZ5uL4VYrVbp07azc1ufWva8B0utpjFaTamlWrRMKj0LZ7tYSpAzKBWW
WHGaOE8ItOsy8xmK8yGXCYxBlV4DN0wxSk8cDHK/Q4jAEifwgZs2H7iRVUx8NJfbG383G2IsY8vA
VkhAdsKzI6LB/sEblQVx1RPPl6Au0z2vi3teyUI96WzMS84hGyiEl4sVji7qs97vP2CnYl9WUkHP
up3kskPGX82syJna+ff/Wl1/X+B2NnP5p/lo0n/zF4NEkjXSkmpRBRUhEkRCZEOuc8d/8yY4G/FF
DGoeBpqnlwVoAhHMLTakGDgPXcIAkBQctu9UbSmuuhGWNqZxlpo11nxvb8wiFSElw5ALlaRGdFEc
kiSvNaJTAwCF84/2/n935ba9HbLh8rKrKCh9guXBQo5cLrUoMRSRGJYaoxScKkad46YTlFaY1mFL
uHnNWNN5t4FKt83uIhqHJFuEJU+VmGsXbBzyyKmjGKSbk2W8CFPZ6D+rmPA/4W0f307rs10lK4CI
B4oswk2qet9QPFpTWrAsu3SrclZJES1Utek2Dey18DRIwpa32cDZ2/GP3X6/tpi2JHG0Oxi/YXcA
Vmuzc4rrIeqpzbGHaIUtwHKILbtr8IdNx0gD0g6pdaQ3TQeE5sQWCbmdDsJoPWkoOzR3Bll2sTU/
t9gwFTkTmkZnRsNUIjtER3quYh/2XNrO31hhnD6Og9UXbU+RitPMwxIUNzEHLJO4cuFszEXHS+Yt
jCSpA5t3WZ1vlqOU9x1mcav0PfjVlkNotcpliMoRREGPEm2Mb1+Mwe9/Xn35x+r1vxbYQxR11Ue+
+VQ5VEUZMMwTz23WM/FmxxI8Bgl7w4rVbMmh0cICaBLJE4C15ho+fwNKpCUJmtp2dK/moEa4x5dS
+qomHpgVH1yYVVBQBCOVwVfaoyumP0jUAmvzuHkMwjxoKJ/Qu9gIJlHjgldDgjDYayA9bJ8+djHR
MODf1m9SpJekyvtg1d0vTQjRkkBaIdseE/j/xTMTWWeQID4i2YxfKoLAH0H8DiLi97B1JmdifwoX
s8oDks2Sn45HY/ccFqbmlATSnvtHNrDztDZ35Xxef7j2UHzUuyUGewo4nQOMHL7oRQQYkUWTVpAc
qlJKyvQ5VKV8Xf5+fZWsZHK+9+iHFeze+hzTOzEewZqOBNragMhvqrGweTIKb0zi5z51EBqGXS7E
jC/AIolQdD0uRNtdCLiQqB321SmCeYT32s8igPYqG0mPyf3L6m13MWNthHWRMEkbyrKRX80/epI7
3a6wTYukhnqaw6rCpciHpXrhblF8LCGq4p6pGMHQqY4dF91Tds9ICtH1FumFNUoBCJ1D1jjQmIsr
zwFAQExUhijTEhlrO83XHGAs7CpnKYMuNUy8xbkcKFqn8ifyDAJtJbUMJiSvkvMZBK2LKE6nqXBd
X89rJEAXu2RYQ64iuShIRsUgKgOll4U1yVUiYHJ0fgDUKRAYiowUIBhOJIOaBfCic34+XtHisO3K
8MXzTnm8avWIfzRcxKwSLqya+cB1LplIcR9LQtnEvkJ+xSZx9u3mn6B50WHzUTJeCR5etfhHUxKv
74J4Jcm8ehYlmc0LHq0wLWKbZ7rnzZIjMSrIbhkBcWus0rNTe3OMzOh44hP1UzRPCicMhHClTRyJ
VrEUf1yZiiDAiRvh/C4tJ+L4u0sK2hS2OO8fRNcKB9OnRSucHS7oc1IIhvpclcPtQkq1HSshfXk3
nDiSSmN8vWteBYynoOF9g1KzRUDEd57sUmf7KCiZPtX0tRTMF6DvDZNlzapTKfE75OMw2bCt4HVG
q5GwVtzFVmOeaHU4fm/v4G/TM580Eo1lCxVCW8u2OhOONT4srLMeHyyOEB5DnCK2KxtLK+cXO0pv
gvUM+IJC4scjVWXjCVhc9v142O6WKFfyJlSDfOijdGsFyL+aQ/6dotmh4eDKaMp2UU9j1HdbFaUk
Xg0ol+bRAMSYqTCYrMVyBqF6kzg7PbI1dBJoWHiSpDoIYdpadJqEYAfByGdijDaepIqhwHGeJ5Ln
I5juxJ7CRGZXAr4Im0QKoxXkZRTBVcFbxu7PAkiIILxxb7JlDdGNA2Ld4+2KouILQ7fa0n6SKunE
mKmyX5iRbxnw5gzLLl2nPsUXSIpCQhpVc1yGvsf1HI7zKiL+CfM4/ZkZIUyK1G+7sl71WOFlSboT
5LePNNN7YuOXlpzBOJk//fgrPPWfIV7ow3SO4e8DJ8J2vdQdbbI+IBs8rsSM+gP2/PXjwWDvqJLZ
wUJ5ctoZGSf4593zs7FjcIpmF+iol9sZ+nN+snga8QfGJu2aOsQf+H5PYpQw7O5QF0ZrYjNXLPwM
K//NXHI61Ic80NiQBrd96OwE00KWxF/Puze86p+MJt6uz9vvQiDbH9O7fEyDis1J0cLu4sI/nY7Z
k7dRpe+u/124ATrtrd2N3C6cp3/fdudp+5OxPW/nie8+PNZjsh91OKbfp/dkyG3hRo2tSkca47p/
gD7EBzOS1btTclOhI/HuetuWLlQbT45UmbnxD1+O+y/TL2tzWO90cGvH/LMwNOlBjdnLijwGcyCf
0KCfnZlxLOXDquN+ELo9eKzY5vSbjitAHTvXxq0vXy5ARwMR+I/v9gxKd4xc3y54H4zkWiBpNOnO
jdE4Igj+sr5dLrv14fv9LbkSl+v2z9OXnQvrQJcUdnTynrHMIty6X9aXz48J2IGILMyr6NINc+Pa
S1Z4vD3peYwh4ezjdSMuf79NSxoyB2OCubp3eyufnCJdmscQppF0xN79d1+i4ZSroCW69FEPC7cc
qzVKGx7fCmGtMmP/FYhw6Z64YKu0Gb5JU9Bn4XL8bLyubz2+gTwOAsfB9f+0Px4TLfkMf7EKvYrF
o6uJpogJDHd0l9DC8pf1af5GfjB20WHafzL2GjZfkKVFNaS/0+bUhxt6W9CcI9kM/H+9QAxvS1ZT
HQcl3HZZMbwp7GrwKTvLtNcM2Ru1UNq0cTACbHRX37yejDID0ELBTtLRRoTgqNLkRf1+Oz/djO21
mU/1ct1dN6+/G+O38F41EZFIpx/0z6+WNYZO1xHJ/GA7qPxv5NqX39gYZ69bEGfmzyh0judp93L4
OzbN+CbtOdRRWRCKU9lECer+CsX/p4L6DBQbINCqUPbHbD8MDO7iT7AEDHfLr3roUmUn783Ce0hM
a+zJUrFicvlGN3GiEP7VRCtDScz8+k3Xv2ONzO/H726AhpQ0fqC7vBNt6dhWSyBcSL50Oq4fOZar
1CNIJDD+zYKbrEeiLWrqBPxquyl/s75XxMoeqAGYEWclH7BqUh+wyak0NPEK7pnv0x0shTDSb+vt
br3/iwNuzVbt8VyEe0rUD3W8VdjaoRNvla2+soclvwAdJTG2hmkZobbsQY0Vcak0dan+8s1mArFy
sa54iYOSGHoFHRk3AOC4unB8S3TlqLr0olaCYV5yqcc6ffL1goO3kKzSyTep+VUtllMYjS4IKiJY
NBUs+Wvl1OWCCzsSL7DGMKX5cyga5wsd155o4VR2/Yz5BeYxGxkh73UfLxnB/t/JWTecFbW/TZeC
WzUQIZZ03VwUcPm/JWd4SB5G3y+PFtkHDsMVZKdKjRJG/y58KS0R6UOoAr73J/wuo0sRe9sIIoL4
gjWVkfdaN3l/8tp7zdjA2fd3np7/WXrQI2Ptly286/ppDzm+W8kI7kkglsBR8k6PjaB/t/3X7XIt
uT8kNAlwjboshZ9LQTkS5kVdFKb6vy/zq/VqtlcVptjXjAMET82GmXJh410p0tD16bF1OWVh79bl
8xJPYmjT69rzRl1hC4eqSmXAWAqIlax44iIADmkg8urvz89GyTwSdtXUjazo1olaZqnJVUUt7mr5
mkXa4EOVtEGXWDTdsMhi3JRsr7pmwtlZJVOSpsSSwxrBdoEvfbi9/X1zXX8pu9LEUwQUftCHP+73
u9PlscgECTYjOFoL1paNdhUsLpUaRv0yZV2wiKp4OshWxsRiHjWPQ9XdneT86cdfjufTq9FvLx/z
COJpOq/LAS4x6yBkNag2KeQ1og4ktLepiH7MR+wVExO+19VG5v93yT8m/rZOfY9c/H5peqRpUtXf
lQIl5eiXHuJ7JeiBQnxkyXOg1k9FA0e/PRxvGUmIDh0jxXrdquR194k2jjlcI/pfv9nXJCH5NE+R
s0dfl3hZTTwWLAgchaDhglD8SDQy1EPV3XIjLyYbZROvJTdJp88+1dELY9uaRkg0tfKl7KV5rIdp
b/++lMIkLvxIA7MzKWKtPHl/uzFVJmOSPDCuzr3NM+2nL4tSShXjW6Le+9Yc2MhknufW45I8D4mx
Wmt3kWFyLtklemGaHWrBXCVyId3eszpPzJxtd192l2MxdxaFPhYqN5KNWjTvWy4Tl011eH8M5H3h
lcbbpGDGauiWPKuTJw7bn17XpXel0yw+2QjIlzy0DQOBxOhkGwT19EB2Q6fxpqbkqPxRclTqFHSj
8mtfqvGJT4Yw2OGxYErJT1Mt4/pnErRF96Rr0r1s2aTIKcdCJ2eS29T10TQ3sP8PssmjagTFWAQw
/LMkE0Yup8xl5gpey0AC+ph6ahca10cUQSW7ukv9q5Gzs5a/MDIkQf7fZ3UePDXOe/kue0yFU6pm
Oc5BDKnZDNnvRVE7EDmIARUt2BeFbNHYV2kUaSxepCWKu25SaFQzu0yX3fVRkdWTmDWpCWAd1tLR
jKm9ruRQTQkuQbAXeG8UE0DwsyuM19czuE+7yPJ5LoZk2vRc6nJ4fo+a4PBihNZkMy2FMP0smETk
Xs5pyYnsgrMafwBQRWNTcgdKqJR25lAusluedutSMEFXnMrmntbrkjj9HMuohLeFjktTmCcRASmO
pIRPAqhwAZLUpkJaLwpYPpiLHvqZgczBm5dOu384HkICjQWzM1rfgEEceRxcycQioYs0aJt7ZQ+o
VcXEByTI0gTMnnKAtU6hOA3ncyU5moLXRZSMokpGlpElUU501xz5ln1fIXhZeGXEgG8pDKccKLns
j0X3ixjJCEfql8c0IIezxM3tiWjHJ9cvuBtlz1GPbWoc9gst5dR1LNjLOhUR7cOlBouiayTFhzvU
lu2ez23J7hnmSfVh+dWZFgHNe4L2TKG/eWtoyV6MFfeOcnDUkuFC8nRYXN4/fH4u/184PyJUOxph
uC/qKWWByFAIkOrzQy2zL3s1CBGmjFAqxT9C36tMmQUfBira6CT6p+CdKV09hD5bArghcGrSZSKj
SpZ7fSRv27Q0Y5d1LTalw6p0alA2y0Ew/yxZ15o1/u6GXpL/1rMwGBFYv0zGw/3bcftYXI1A8zGM
oMqoBEflgPUKn46382bihydalHQdv8fU+G6XBFQj4Gk0C9ThYuzrP3Zvt5LC1DRnndQpZNLK51JW
gfrUs0ziXVoZoBkJ1lsWeySaNIODsWVB5YvAQzWYagoLfSrUUnSiHn8Qbk2iPWjnN0IqsWQ2Nj2j
oWRsRhGp13PgGdk4Qv+0YBNVaTK5lme8CHzcDSlWoS4BuH8rukwkB5p0j85Hk9+L0eRoSSBH01hy
n1VJkw4pkKK5gxg/iC+eeWBLy7CKypmmPPq0mvA/j6RrEknHsEy9MH5snZtC+Dg+AktyVxXNn1IR
M0G5kRapMsy6CPBr01ztUH5QHyVcAcn/puCffGCxaJvQML9KbZN8aIPWIxViG0Oa9l7i/DQl50en
uX+xAtYN+kepdp/i6OA6NS0vpUppk0oxHl9ONpWEPU3yqcDlTbMPJPVQqCep0sjbsPA5Boex8CKb
5LUP41LE+9b+WyPJ0LAqwd/7VN3rYmgyWzdZsNJm7Aj9ItTmcvNqpFHQFoSE+TO6g+YZU4wQ1OlG
IpPd4XkP1Wjm8b3urr9PF5auqqed0VyqtBmX5F1K0dA+PeuxEiBDJRFJnkuKgea0b1GOj6k612U5
njqbBZE+MjFGqdjHco754uAClr9hClNyLkIRedqyUQJWWpbAUiSwqCA9oLgCwlAVUIAw1oySFIKI
aV1mIZpYMZIpE3Zy7JKF0FObJvL7YhqnFLonx4SRB1WsNv6yBLzakEAhKGClm6JU9n7y42QBbQqc
X1CmVpDDY82XnGdjGyXIDIHhpSGuDOlHSZt2aXVmIVu8AMY6kiBRVhKyYOZy4TlJaM7APdl4hodj
upCG/LxIzWu6qYsyekuCETTEo9MQj8CGVAx4EhT9t5SPLUrNks1Bpk0llREU4z1V6gdq3kg9+ckv
KocemJDf779Nz3P4SCkFV7HCXDYDE/KqgqQZUqO4Z1OmJVudCEis7mvK/tkDtsLQzXg+dAEDsrik
ok7xPjSmehekXQz5n1X7teU47bfqCk0ABinAgtmYj5IPO6apFV2qf1xyeiTN1vb09KSEyJclJYok
pa7gBivdLRJps30uiLd6AaPRUlA/id2mZRFyxVGpIJT4QSgea6my8AGqEhLYmuP58/iPUharZQEx
pXyrQ0MWsq0zMERf4onaltI4FG/bzrXyQ/EmCoZqGWzhw1jYfkaMJUftlxQBEbwd8jJL3DcldgSC
0pzbnVlAWVG2koKVrrk3NR58jXqcZZHEIqCH8XRDWzH1vtnDmZkahVPSjJOQSVktwlcMA8sKl3UR
IpmjvMVE+KegxYzTSKpCCo5jx1r4nIr9NppAUr+L+cs6GzYsm3PdyKLKZZ8kEjIVHJP2QYa5SC9X
QCb1aVq8FhJ5S5yzRjq64zfFUYaKNbiEUOalzO6qSUwtLbaYq9VSXIKAE1PunRIQ9FI243XF8aUW
nu4/S093TCA7MdCdC6AtN7nrFBGygFzhcbNYpWZ9W+ZvW0TcRirwUPOaPzXLJFtSju1sI3qZtKIu
kVY0XDAtfwvuJGEh5JPSOciEewG6WkhrcTXheevy7VgsaCXSBT3w6kEW1kIiVrHWq8QL8uBOk6w3
xq2FRP+S0IkmREep/8JcjBIVBwkzz7CqSwGDJfBIPQO46Mf2OWTACvusGd85IyQWxahISg3UMUez
FZ3n/7Og3ocI4Tnqq1RCUFIbXJkXx0pU4qgiNFK4t+qxOOCS6idS+jcDKQlmTjGAqSm5FmArK7Gq
sphrbtOQdiviU0shGTUy9U9SOW2J8oXEeTBep9nI36KbT6o6IGIQsQS5zNBi37bjS92E2M48DV4I
7lQpxKiXOFWW1yRoCte1TSI6zlAoMs5zBXCheWyS2BZ8kGEBr/4jOHRy7DPoOGvLlxAkAxdsm1vc
pYg0sS1QVw8i/VQpCtR2TGT/u4ylVsIwKy4qUHJeiyK9n1G7D1yosnTniKWDXefYoiLfRVC+wanP
11QL0FslOCQtrdMpvVipT8J/l9TBwGCLc1GhJSG1tua4dzn2+hTnUIhQaubQBVoo2PFbgcdKt80c
Hqo5aA2m3dzfLfCkejVDXC+1pG/nZX1ZNCV3GR5xuN8fZIbXKYiwXcJEuRC/Mi6PyC3srTPMUsxN
MTxecgbIQaJ5uqAcfRklWT+PPugF17ocP1bzK90vRzWRxqQysmkQ8AcCzHjavky/lH1cqiITM3uu
IheZbmS01AsqZ24X7sfQdUypshifKwONSThmHpLIOrb39faF+JdmWxyVEGqLuGYFtmseSxIpqApo
kprpyyPpx3ADCwqyTr2wQtZ5U8w692x3FxbeXIRW9glFQITWEQquB/m30medMjwsSjosg+ZqktMj
HfkyVtySBz4Svos5W45ofCypGVKzkrT6AR7iMu8VRZNbt3whR3eRlbVJmz+pBRTERSJ4nfpCuuRI
lsu8Bqk0Q9Ajd7XnBX2SdrEYZPaX4mMm+WO0vJSU8FvIz9v1jAs8d0eKMfeRUc18YmCplhuHWYFu
3yzUc6UkVJVK8p5FIBT7V4wMHD/TrPCtrAZIuwZ8RpVw0sWmSJohS7pjDlxohBEmyhkfz6JgZCm8
QPo+zPO5mb6PpY3kKl2kEN+irD7RrKhVFvJPF4k8FOPQz33CB/hYU5xNIRpN4+eFoPTM+BxFDMai
TaX51oQqeM5s9yBBWs2GO8U07v8t5WsqpmsNi4kvX9ie4O5AN9HwS17duYhDIcxWJfAtovKEwtli
nZ9mqOOZ6u4l8JtxVgPWPZwDWxI3Io4klpW2pZKetsSUw6GoBda8BcxkAwGJzK9Y3sYsKj3VMWmv
eeTJi6wk+FTIqLQsiQTrbqiSu0GMqJHurJ/vw/VmKi2Papd0CSwhZWjT3uRCZTR2kTdmYAo3RGvn
/cECwpqjvOPhsovgc126ERV3vb69XrBLpfki/9uzFhfc7xkp2/iQX+B4tgs+QSt0d5Z9XRKiLbi5
/d0zhB85fpnOz/vjV/zG/5fV8WAO4DCd4Wd8k/U/mX+ejwyg9cZpPLjtznG01h8d7WiE8fnteLnS
EUEuvcOEV5fN+bjf/+k9N3v7G0P4DQKTfeAXzEnvnvaT9BNj+AkCGqM/8UztQ3Y7ejLVKPUfmOp2
el7DiNJc+/AbWCw6LP2Nl4NZA1541I8rxZ9qHX8iskGINyTOnN2buMfY5Eh/67wbft5t3P76W27K
+nY9SlvfxWuiQgT3gfFfd9vtdJB+QcdfiO17v2GTan6TmvATBApW/oniATthGeY+WCljFh+Wa976
7nRdHYxIn7ZZeQV+Tu1rIZokJwqTWV8u0/m6el7v9sbEX50AsXu4rl8mYbA+DEbUu52J8FWXTsG+
sg3GaYSvVPyqD66wW7VR/EYtrPfC53WcasQpus+/no2xJHzbxp/WIXDz9AFwoukM2lT4tgrf+gZS
8PF5Oq2N4+M+wX9efZ2ePu/sxQjRS3MAxmc4s+M3VdwWkod/uj3DzLZmhoftdAbUqYdZ7N7EIx3j
fNsK/+j9DTH/NwVKLjvlzetuvzW/Icwvv3f387tc19cF04vLRVHauR5XbkIw0Pr5CnjwgxkJMwwT
pREzVyTzxuxM48tQ4BoqV1kK3hRa5p5YI4JU2KHiJkJ+xEFKomDfGPPxZTLKc/r6/fGdG6b2wbgm
qVuC+gJ08Va303Zt7i07C/LOKhjPvjN/p/wh8j8fnwyJuXOrwMtqrCZhPB03eIQAMz/er8czHNh+
De4nP+CY3C0XB7X2s72a5TU26fWs6BDFj9tEpjiMK95g4xkbbwlvzckY4vwQRIL2AVTBSgT+rMlZ
DUE62qkgmsduLj+PeFc8Ez0MsL6sjmiW4UfbaTo5BbOa3p4mo3C3dnK7Pyb3C5fV4bjarz+MojMP
ZffyMp0vRmPmHjTQlfm2bQpj9gF0Z3909WSulRkbXrUZ1QYbbHCLH9Blc2BADLjbW8tOVxioDgOh
kT/eD7R7e5u2O4AO2bo+G8r79206fwjjVmFcwKa4MMO3bKsSfqSJu9CF6F7pR4TxujCego1RSn/z
tIXb4IIaOO0YkH5kdGFsFfddBaY8NMP8+M6egv/cPZ/Xb5Mwmo6jxdDON78Q4ShdKspufYWcVPZx
GkcVPwAAH2q7aWtTZdmx0Kh2Il3d0dX8wwhd8InZTz11q/L9Fe2CQbitrsfrel/4ac8ir7pE0kFQ
FD/8eXdBswIiLn+9Tm95Qx5H8htyx3E66+wBrDD/WO9Xezs0av/V5ry+CLOs49hEc5Md/vFwewPk
D1gW2WAbv/l6SHfQ7kACe70Iy3Ykd8ojLu+m9tfDdXphbEV7+ioeQWRj+AIRlWAlFfZniJNImXDZ
/bkLpPPzG+L80pCmH/xvN/OmznBVhEV26RVvo9HkYJ57sCnYFXpHN21cD0YJACCMNj8bN2nVCVvU
hAGUGvDBDo2wTcJS4pNJ+ziHbC6+GnPPdxvp5jRxSxBiFPPF98XAwtOIAgDD47WXnygDjGEMEcdP
08t315Io0LN7qBc8skxEUHhpY+6lzc+wEc4wzlDVlf1TZwTW+nQyDkxJXtXpbOxAz7c//kDb0E2H
n0xXkQsF0UBnyc/X0wrriVNQ1YBI/th+zb4q/mMVLzQhjbtc0W1D4VpaQR8v4NBRhjiylbvD7rpb
742elLYyDoRm6hiVECYSy3evIwJ+mCd9ze3FuWz20xpcyO2yWXlbIE2l4qxsitdRWG+ddM0Y4XZu
UbiSxoMvAeV/+f7j9/XL34xdstofN+s9/pN5MMbVYYL4dliVbpod1iZey0dHPm4ovzD7VilyQHii
ca0pzygz7iylIQxM5PdA7Qx6wIverSIKt0+rOEAKCQ+GvrY64nMv14/9dHmdJnPDzOXagfdujMHt
ZO+FOcrdQTgJnWrHurBjKRhI0Lpk3Bhl8HIdrNTjs/HEbofthUh5QbrH1acwp0+wfDcd60/uLtB5
2RrI8C9DToSv/ulT5pkqbqyxqQ8vl9NaoIfvSBWpp/KQNxFSio5ppryRQ7KRkZjMj/2IuvUrDa9W
3yl/wVaPbyDlawfspfBZlXs6tuPOMkHfRVWBTZ3tvfecI6s1Lnx1tqwjJclDXpFtZ98SaV+aiE6N
lTYr5mVbV41ZSzKi/Qpz0F0qOoeM1ivablXcUWQ3s3JyB5Gt5714ml2dvus6az0Kt0HnTH0wOk4Q
nYtxRFmpaeqtgRiNdIOcCqFZceG5xZ3Bfn9D7oiXeZQ12aqka8QnNHIK+0R86oS86BMmF6jAc+mG
/XG9RetiOp+P59X0BXR7bgOtzGpyfO9uqM3+eJjMKs+3w+oy7Z/5UbINctwo68vHYWPz9ez3WfLN
+1nwA9RpMR7NFZlPp/dpc0N3iB2gE2Zgfh/38un29LQHa4gdpU15CVTQAB5m/O5ityD13yVHc2TC
EIIqWWTBDGN6sZ29/fH2dNyHqNJ3Pr/BPzzih460+hGpfgU/r2cNKPE71RGfCWL87oTWbjtWV2NU
H5+fjSZ5noyePkixDmJDRBqQucPTCw5PS5QHWApKRVM/vuoFvnO0f8FvGvqclHkHeAHARswzej0f
D7s/7NEIEqfL2uSg2i7TCxr7gmSPFySFaSHKTTCN41owPd1kd7UWdrUiFjHGoKwTebtMzoA7T8Yv
2axCWhYe9VRStMQXQNi0g124CruAOhQ2pE1NzjrMSszV2R/XacSvfeCAa+mEyZzaXCRRtMW8papS
5Lc5IgjSwZH5EHJhb7su9Rrs8tb761/2H6dXWJT0DMl5J9xJxILxW/N23O6edxvcF9GgGZPgT0KV
TNQ2+MslrZ2GkdrguKCpOr0D4RjIXgu78C4M6gnB6hyZmBudnnuiyZrZC1Y3acRBZTbR+FWlINIs
LGmPwoe4QcaGUHfhRrRENIKY7hP/LGD+wUE2UvK36YItt0qjNg0Tu01jldPb6frhpmnuyXEPTrAU
BPUobatWICufFVpKkC7xRJHEddB3mvr743E/rYVIrM6GwO402/Tv23q/u35ITypeWkzKF+Me8wq0
n26HDfzLciCkSyMs3fyX4v0TxFCT+lF2684vT744tOTEEYdwpFSmbPjojodLMJRqxgNgBp8B74WB
W8aTd7BT5DMEfmopepRVts/GqlzBlz7UIaj5dkg1iF3e84Ql+ZBE3B2Ea99qxoxjdz4PeBZ2KWoH
TJAPJBZT9E77PvWaunyuR7iZbeqe9ol5u8y4q+MeIRizzcalARYH0vn7CZCqkoyOa0oroJgtJ6Ub
wi6TONAQwnNz+acFo43Y5QoEmflzlsvgP65U4YmVTM46N3uvo+d76+KywpvQ8c6lpY/sFpOSEGGT
SYICgL/2Nl7edvvV23R9PW4vrHrviTqFFH2OrcZ9uHEWw8fq/M46qMM9ebmFbb2d9tM7xEohV4/V
2NH24KUAzYaiaRzNj6P5GOOvxvr44fdfMAx7Ph4lF69KT7NJU0jLHp1qU+8lxKV+YLtw2gc/PJYx
yBWGCRdV55xuGhYQHkmVuz0EVREBvryZM+Qe2ty+K5l2TW6LEMli0XRAZnnarbY3m7s7rrfCYCMT
x08zZcYZkpJPiiixjsu3PSBj6xmMpM7CSBZ4D5VOfBsXvqGo7Ij4/tdldbhxhRRWCgypee4gOn8c
HUYHQkn4D/A3q9fd+25ave3ezXlU1fin9/yomgTkEfNsNw+HgIk+mwMEvwYJkE/rLdjr/FhREmMR
ktWX6ydjg8MSAaC0NY7c5mbrYLBy5MkoF07waRLCsCXtcXLFig47QDZfggNsjmZRF/Rz4RRWlVo9
8eMQLR7b2XArM3bTksW1OS/VI1K/Zbf6ZPudsURuQ0RCQ9H63tyLlr9vulG53ELmcg3shajT9Ebr
FM1p/TLFm4o4Y4yHxnoAfpFEPygwypRLGnz7LetJHAQjgWP6BNYXo3A2n1/O4NzbiSaHxAomTZK0
NkaSDnx9NUO+vDr4qx359fbiRuUPhsgnwugmDguVMaXJUh82ACj+oyvekwQj4frAmZIttRDi624/
CaqChMIxWNWVFx2vU3FHSR6wxnac1Z2ksdH6Ay9rCAaHBGFwCID0m+2aJjPKlU+qahKBIQ2iHpLn
ROcQp+fb5DlBJ5Ds5APil2QWMT+oFtxUeuFWQvRTE0gM2G2+dpG+W77Sw47Q5GAJdAA7M2EEIsPH
EAARFwilWufdtiQ7SOQRAiRjfze3IIRKq+zu7AY/ElGE0usgWR5YpWofPUfpFKOGxu666j9TWtXA
PsK5xLkI75CEHcbgtD9uNhDXVkFQWrlSIhxp9/aSbZVyuZ0w+62E+RG7WeMfYyJsvodVAoHbHmJR
mAUQtizeD8T/PKj+MMvsy4z4Y1bJJXQ29bcbOz1x1TDI2T9unZBYis9b/I/1iK67z6lJjQ1XMBmS
rcwE07L1bCeuHsJhueDL7w6b1+O54b5sfJGRdn05uvAlZlD+jvQS6HT+1/G8+wNQEXt+Gl0crA8J
FRjs7wdwiIQFDPHLIZBexi8/AfDpwn7uLDP4nBDJxZ3jf1eHD/toJsGHv54hQ3fdSb/aJnvnAu/p
x/ySPSunTgDv8DVmKoSfjbusVBOLVfCHAauPqTv26zp8jW03YtXdrz/8+bvfv+M/VOFDLAeLN+XP
0+Z4Xss/W8WvCWLp8rbe7386MvgQe0E1Wa1GqPLscvO/WXGv4sfnZyOYGv7LeDbE5zKPGe8hv0Xx
GRIkOvxgYBZifzHeJWICx0XW/AbFp4O+3PzpCKuMbx+9rPn+CKdZJ3cBEka+ltSIfvwE/vm36QXT
pZlhsPanjrVi3siL9YkX/OR5+t0Y5+wIashVVPmWfPKvq1ib53srWA8RkMP4hWOXKy4jVqPBbR0D
bDt+/B3/ManDawOY332cgVQKI8UKsBoEYq28Vtmsz9fjnw6TVShfdwem1tKGCklUZkSfNECRrGJk
vyQ4+AaW1Th39oI8MmYXICrOf00yofAaVOUyLntjsQo/msUNP92uVz5p3RHYNxKDxDfzlC9Ytl+N
ibXiK5yOb09H8bNow2LbLx3DlkbMI9mUzXMUkvcdjcUPcL7u9/fH2/m023yWdol4mY0tAbdLXj+B
dXXiPxzIqdgaPfdIqRdmn+rfV1vMsX0YF/3AFuMqwhmAUDk7E/O1g3/4QXzVJjtOnRaAN8w4MJmZ
8Xg6XiSf2g5PCuZ1qC8PAFG3fud38JFrHIvUhjcQjWhcOOLpuP0gJi47Fx3rqO3ppwGSk9P6IV7g
Z4VF4oW56VjmjbfKamYAr+/3x6+uwBNg/Bewx7e7cxgZmBHYGcfifsQ1WGsBKsaFmZAK+j7seDzQ
43PuaPkD7NP6dftc3sz/ZnfaT7O9ugiHp9J71vpp/YcXTJP6fpIAT49wOz1feAiyXeeYHmDl5/eM
bki4HIV7QBlIInWKr9W3pw4O6O6wvk7SdjXkrqMWcBuWzIZfTbw4TYVudExdBCdtdhHZwcYZPYcr
Rj+6ihQ8M+RmsEcVKqT9D/ED1ynZQ03sDmGLdXpSSpBY/Aa16XV0lCjRT7ZRi9XpdX2ZhMfW5URK
6bF9ixyd/VC0MldXoG6o6nwUw+5zfMOkPgtsS+ECzvRLd39/lp9zd0cB9D8e6GJtRGOf7Z7/xNAy
1XUViZ8UWKjKUdhsbucLV6hrP6T8aI1TvKCA1sYeAjoZ5KxcwUSEQSLjFzirzlF8Ox6OfCWR/TBS
PTl7wRlj64MxWApLjlxaKOOUI+x6Xh+u68uH8GEkD1MgET3E2qWXhQ8jf9Q4unCsrcyxpDnOmH+Z
zGW9Qa9Kiy31zFXswCGJNLqwhD0CIIv9fKExfoG1A8dp48psOt0FjP0xZga7CKMRqq8abd7m//nc
1t8AJPBTaGD2/cdft/xATSSdA4HmAr2XHejI9WE63i7EtMDoveNZ4adGrjst5sXNfzpP68+pkON3
Pl5ANNad5EYgxt+ff2VjqPixGlK2tcZTEdR/UvEu2Ok8WWhOVeWB4aCYW9+oRiXFHWQQS8pUVY0w
RhfGIIC1zBjSPNo4RqzFyS1GCYMMcTGx0IQMsjtcIEdQVRU/iO/spCKMh5mJMIgn/VUur6a4LWmF
Mfq4mlgxmRlD2pEmzkPlttWPIa2lvjsa6/pef3VCSHg0UWDOfx+QxebZbdfX9cKH08SHQ6iScLDz
zZi9RvUhq4/A42PHiaqDsLqSTQHiC6MNhCccxRSoZMd95L2KOJL0kJuUsZJMwkpysERQll9ezTZ/
FpYTVUTdYLa9d/bt9XY20u1sm7tbjjXI9gjHFSdFEm+XHXIwA7X46u12gTT11byClTmzHRgc1+Pq
+vWIy5ZEO9n1AXvr3V/oL8edINPruFCSx727zIVR1JhnZ+VU3wo8WWFZZFIo2euI6CDJF36AjlhD
oPKUU3kbR0+DeK/1B5i9xeem4nMjwN74KHbTxY4iDBGPqWnxyUbPwrkSthSgcNxKz4w81z3F0jMV
Z0GULTi7yl+Wy3Tbmpns15cL1IagOD+tRb0d9xcD3pp57Zhx+7rbHr9KDz/uTo2erQvxWIazstXV
ksvn6u3m7/4B26shVweCfUrXjLIqvax6fgfdQGfkitwfL1IZiZ3LmGNQvRg/6LoBoilb+lS0JglX
cBPIaukT339df0gHFLekH0P4kwxQPOGBuAdDTMuTE7KAA/AYj2fJBI2bar098+eQ1X/CGO3svqhh
pvRCBFoYhBjVYAy3YzsbBKmsuJpZO0Z8kJj/5Eyr0kW7c6DulO/b+vyyA1zQfr82z10aLM4JU6OO
+tBG842cDDGd4xm/P4Ctv774RDgiqM+YwzB/s94DjRzPHWdtw2ilEuCjMG6oYlwy+MyMVhE/7vSA
XYUlqXNBIovyIv8bLnigNGE2xRDkGKIrYejjyv1XuJ0giTA5IzjzI1F+oW5iNgwbGQWzh7h7wd7I
fI+i1dwHbpx4w0muOx1ncjEk1KXcOKoi2i+gergJgcfIjdRnJCpaZVf3v77uI08qkxdRJEVBYkTw
qQ+Q85/W6add+NRGKwO3tb20PEhQkSQPaQQaRuK/63KFhfDd7LcFGLoiOTBcUXe3A4+spOK2M4yx
O2AUSizOULQESkfu19yk+DFUWq7KnQ8/QHs3CZSk+5sRnzaA58UC+CT41+xghMAK8WJ2RepdrR4Y
g5YtVvbPYf5+LleoEmCHGHKldwilABNiDzTOj8xoJBk+hYaoJcbBcQC7iyM/MOAcHOllNEgEm5J6
Qi8Woph2wWto2XE9sqFzEgWO1StfjCo94v8Y/8kyNB/3F+cIbIyiFC8oZXKqQ/jBjuUK/MTPaVU+
lNaPPRkAzR/3Tla2xpgfqctVCthxzJ5f+TpBRSt3K2QXqJrhHkVx+eo2xWmIy+r1q+dc5iyHLudH
moGcavXtr8mAyb9hx+1T21P5cTMDilqIhBcIdVB+oMKUooJFMd5FNIvdvpAzxL9ildms20gd+dXt
5rOo28ZrZGfD1pEO6rKDwjj6+tjkR2N39N4zsL+OEwkVsOwIpBFG7Neb2FHiBGJsBPE4cQ+gNkt6
5Y2DgDonVAXoK877+IwGxWkqmCZ9vF2Qc8fmZIEq/OJo2XAtluCac4p7G+m971yc7ARJum3Y6r7e
pghp661IVY/JKGkWpL0YIRNNPpWC8n20aVMbx63jtH0u7EKVNndqQx4fiCfsKPsPej/l5USCO6+7
MBu423vz2mZmIe2MyUcszRDO3PeddeqB8KFiOYu9+iiMnVZwwAXzC+xz9AgkPybehJAPR8UArAhs
0YjHyvjEYeTZJaspTUCRzhc6gBfJotbbrSsFdElwdioxV026Nlq2YLeMAAZvthA2ejtJK4twA4LZ
BroL48ftDmF90upI6wdyq2Eqq8168zqtbGCQ35wqTQt3C06cX1DM8SIOsJ0PtnvjHcaKNpwBuAGA
fRJawKZ4VYh1MwTpkJ5P8VCG3BmDfEI2hkBRWJoMASoRN8a+ybgj7Ndj2q2ldfz2EAmF+Le8DaT3
yYB/dN63R2F3WR1P63/fbPUelbyC50zyB2jmVjnU1eryGTULO8gsE9IQpXoV2Spdg5SQ+Q1mlDNV
C242jUiFe2EbQdkL7tqTyVGpKtXIs45cbjhrluN0+LBfk85HlTAvTVBfwSDR7Bp4GdYEBYo/Hd+7
M2lP6w2Q0nCzjqkH0up6keZuLGrC/3CsW8c574AKx/fl4n68TX88f/8QYSXcPxJVdPzLefSftQOw
zwPRx7LuJF2nkMbLZ8UQ8WzhwrZLC94WCy0ym+5EazmipmmvIPS0XCEuvhyct3NRsBth/Fss87yu
z1fe90krpbwnYSYDrQ9X8wH5cbIE0u5a2ZZ1kNXjYwxj2rnA2TQ2kukX50I4UnyzcdGbu9SUjaqj
XvRSZ2KH6KLUqMEIqasxyZSFGOvKuKYvB8kXIDlTcvmnwzU9+sKaCMhE1ZgwUK4zkn/6zm9007q8
8p4ayQxBwsvVZcy+F8NlTkHSXn8tgbe7uBKNSEukzY2T6m6/I6u5G+3FjLO1srVw8CqNESdpQG/t
P4MHJCyMZlljgHc/rb9MD5xXV6epQGdKTGaEyTvVp6m0IJJ1I8gps5KDBZIuvj0ERACh9G52d+Sv
CVIKU/U13dbLeVPAM5FsPLJjJqeCBYjGqvljOh/ZAbrce+Z3YbUFPAOvCggoAxmdaq8HEc52SEaU
l9bFuwKI27GaCwnnfxVOp0mtm9jCddEl6Yhl1YV8GScYjKrlT2rIBYPch0v1ofMmYjoS1JXKL6m0
slRnO+/NredOFLOjNFnbxT5FMkqyT7z9RpLPbUD73esF11aXO/IoHtDT0Blwd+nWjOmtaVJhd0Kl
K8+iTRWl9o3l0B32I0m5+C5eGE+ULL7Mml1MmxO6/EANOxCRFdGvDrsSTqmo39qs6N15niQpCkmQ
aAjZaqQHyW5tlUOO2R9mH143ZmOwieN6fHnhW6iqkbTODAf6vF87KAJV6XK8pE3dcTuQsYJf9t4e
ftmvFjsQdZ1D1thBfAdG9ts2yd07thX7rTGP1/vT65r/OAoPKMYZXGrVWJFQKfZ0XJ/ZLYg7oEf8
w5GnrJC7wyXYX2wJwB9GvG6nd34aXXqwrsoS7hM8Ci8yBBeizh7Io6l9UiRj2y24qsbbkzOqn4+b
22V1liZCigHgvjZO34VmrPhNbM1amlUf/C/LowDWo0qpV6l0ttgRweE048VobTNA3M/86RAMt8sH
nBRQ6vGBakJiH8miYQ43lDzIfenY1dBSYVuRhHGwOkk5ao0LNigzL3KC7gBfML4b+k3werkPNxIp
HADV6hO5WEZittomK0VXtyY1dByE0Mu57XTZmDmuD2yf5yGNdDW+0PV5FTr12mhKzXf7JbcJgqpN
p+o0OHM9395OpH+ePQFWcJF+umPSAdxYLqunvWU8tkF2HwX3Xi7E9ri970gKQmO/H1eK4oXzxQhn
KQrTBy8JxwCUV+OKpO8mYsSahGLpg6bAS9pb7JnP8syF8l2oEEl98c4UcibkviE7YJMPG1kR7LBu
8g7Q9g7oK9b5EW3Cj51YfFku6dzmh/E+Ixsd7QOOxxIXApCn6vnB+EbdfRCuyHyDpYy9sF3sHYmz
AROmabml2UbKEFDm4p69BzvhaAqB/U1+NEdEJW8UkYuW82YoDCbfLkX2fYwljsxNlSbWkVVCgaMr
/sycoNMj3EgDuVcKK/9TYB16GV7lo8aXraiYRyCOofVPpusd8GZJQEpHG0/HlmW2U6wr61tklHXx
4mPuH//oZnFdBysJYV5rZliJ7nvNsyYPSRiQAJO1MkK421VNsmMQNyumUsiMHDDAGoNyHoGEwJGS
tmHGsoiTwlgETd2PEU1NRovnyq+uSx3/gZnRZn34sr7UJTwiSQ9Y/AI/JdqMlh2OBP1jG0ZqJ1je
qTA8lJAAGu35GZyU6foqzZXEC2PbepcRkR0rnxMOWN5RWGcwQ/nRmhStfDcavfT8KDoXoyCjIEwA
Ch2vJbMKh5uBXbWHK68DQiBNomMh7ZHN7tIC3iECAMkYFzCpTzvWTCNWVQRnzUvrvyHzQlIvkX/Y
xY1dRogOJgmMLuI0miTSGThbglXKl02n+6Ryy3Szs93gzbYBmOcDQgosXrGLJgs4km3AJHkbl6RH
gHPNNadyUJ/j14OEQu5zN8/SFRhdtXLuKrl1F1uHFbMxIbUsypdxmNdwz+x0hMNY6sHNZtoDSzcN
1BSBT4NOZcIsRxtPUX6LYzacepfqRZkqr3ggdc8NCeHYzbUVZPvjBbGqkS+PPag6l8j2FuqLGfOy
YBjd52LNRtaC5YB8VUCNeLmt98USI4/OwRlF9s2wU0hZa6NGx9vm1Tsl0pBD1GiEbhYvhrt/bDeM
xubG7yEGMA2Q4Ub27Y0cPbkywkdigVoRdd0hVNyGcqazJeVdsFezu9D7tr3EL8XySUD0Ph3fC95C
Y8F9tES1yska/2bkyogqOUcnnJ3egjaE92+IPYOhSdPsDQ0px6cOQeWa36wqvaRterG89RfvFvuW
SWVgJBjx3ByFMxvHNHE7xsvoX90NOULishx2mr1HdZqfTIV4MYrXWIIBmopTORn34KMb25TeYjYr
arGVTY9hIMk+GzEN0Th3FUvz0eQ6xkhl7r1adDpQKkUQfPHd6C4vlTM3lL+gKnevyDFgiVfcrZDx
lY62SevXG2rKhM27naAhND+xNs216jSDh7HPROFKMxpIqaYOlEgLraEmYgJnDBLh9+2mfDx6Xcne
d1gp0ZLUyIJJEQBWBOdFKWysT4u1K94kjxe8q6dmVaCQfGksGCOsLJAJbY9YBG+NhuPtirXxrAoL
xhh7/Ye5LkvgH0VdOLQpFq1LzBAo311khmSr6GZyjL0BXUq44rjWbDwhvysQM7/xs5kBYsasybdA
3VS5A/TPLD7i/8DI1W3yJtXoy1SynhT8UOpNOd0nO1Uxpk5aVAUY7Cy+k/l7MGKaLRd/iqywxNrI
jcJj4HVIsugkPZob5XVnNvm8eQUDsIA01SGVpBPdkxuWX19F+GBRwjRdzQ4jBKp1SNjohB8mNwwG
sLhRCNNxh8++LmEfXXPjh25NvDQo69tAqwlFM1ez/y7w4HON9F/wgYw8gUYouLAj8HG2NITo0uG2
jslhCm2Z0/a8/iqlPfu7QCxx5fADH0nhc9FdsLRDfEE50fs1Lf6gdIHsUHVS2RChYY6C71rQpF2Q
JSEl7PJR7jJAkZQZ4U0IlxAmPhqUcEmop+n6FRpmiPXDXdAos2nQ6tgLRWVNIsK6CxpuVhZBym6v
x1IciLDt4Qsm3BAWEFs65z4XRyIrCMF2CRfZBZe2bhJe3vMEDDLTJZS6lqYTdwRxXW3+2sl4oS64
nHWToOCTm493lj8agh/obcE3td1KyxjT1Gw9s9xsZl3IGnXB2ZkBXLgry6adCa0trfCgxXU2MCDP
RhPyXZryS2C0DqB/QzZJoDZh10boNEFYNtxYh+IDIGytxCe0Y9CaD/G6EHJMDLQ7rEiAfRYL4Ltg
Us1qlBIc7cfiaLEm91fhHx4Ii0a1v8Ky4d8F63VWlmbJswq1PU0aIK4DWy2ljCjdmp7wsWIi1fd/
vO1DfN8zFHgb8On4LtTv6pgF1TNIIhSmrI6bzf52wYgS5uoRKcKOpHINLPIjsWOQBgsx+IK1bXEE
7Na9Bqopdpg+Jefv81N52t/O7BDRCHN8mnaQ2+HxLY5NBjCFqPjZFHa4Ie0c+sjVs9lPxi+3z1TI
gumYvNUJeRHKUtsCsrwYnfaicDZRShtgU01+1D+KqBRSZRtrJWbODZGEKZmOJI76AKav08ZadwHT
bcFJ6COWThypIGT7mBTzTdadGDmtD393Vfc/YJaB3a04DUQXZbNNNkRZXFJDkB6Rjaa884Utj5CP
e2R7AiaVcWuk3W0kQUlCfohgc+PaUAa7axHtQYiE/LcEdyhFx/oAnq67hKiA3zF2j+J8SAJ5O00n
vkKpD3WEtqQc/xiyseDCi2sjigapPJRuSycvATf6AJCvu8QKWfqG2V1S6ZNLT614VhEVRfiBskGT
ZGpGqEtHV3c5pOccxX9Ytm09QX+FTPbhmMTfgRLqG9/3kO5Azd36EkitbXLXPhxErIBlB+hyM2GF
p7/HRqFcjixit47iy5KTsoJm7YqdT7yEaIeUrUFzR0Fw9ey+E9KKGO26mxgv41XyfadSrHSQeTZi
IxXp9xEsmzZsCWiJ83W33ksZhj4U0+DejJzOSV/3guNroiZDc2bI3072wOLnBCpma/+bbdHoILsS
rbLMcV+uu81nFpraVgSbGhtR5LAf7DYQMUVqaDO32N+8rXD1ujghCNQMIzsaP0Yb31XfLVByTpiz
C2xSe6ARFTm7sLhNtFTY4ZDmWS7ZR1W0vQk2/1IuM28czOvZhrifnV//tD9uPl9cJfPqTcjn6bh1
OuGj3u/edi6Qat2XS5zp+XhkQZt9k3Zhc71rLtAT3TPxQ5poy9Fa6/j8XY+zZpaeiF4oG7mPAwRe
oDSuhf0g2NooHW9A6mUWSDF0lDs6AfxldpPeazEAqgPPUWjb6JygNUrDhP6NG0FHpxl5w4YE4rOI
ClLHMJDvnzhyi+NZEHWsDtCJ9JgbOTSoH8KZSE4HZoQxgVa+ORN7hBE/3GB1TNX+v3mV2cXoIz6y
r2MoRnuOUIdfsccHQJjjeQfkrGbOEWYj7yLx9WPQNrOLJMJdIDbQgcorPDxNYp7b22S5AhNOJLt2
9iLHWdYNwtSoTE2SdewB9GmSqmIliwtrLlilIkEO/COH0GRFXZ/e34FQ7wUGCBurYw9vTDo3DtnL
G0O9+Wu8PX7l55g9RxYWpWO8QCfVx+unC7Xtra4RilZ0RJXqxMOTZRd7UKTVaiQUFC85O1SXplBb
cmp242UwgI6pFm1TZOO4WOSwx1SlAbsu0cagc71F6SronO6zmlC4ox254dHEBBLUBVKe5GFj/GGp
dG/HVOX1RQmCzn9BjLREflpaGO4m3OEP2DGHNCaoCqcpz7AlEj5Cs7Ml7g9ekWgK+FpYkntJWEz3
/Kk0tBFvi9afBweiG+TuleAN6cjLg2FiCHa0tai6F7zKbrwLqyLZEQ4CrRIh7+cQKR7ycphe/uDr
h3UMLqTCj1xgB0YX8g46OhQ6SXq9ho7W/mWWH1RX50wVcZHs0nTudTnD+G19/vdtMk9s98bfhJoE
05sx0vA/pnzY29qlt3UUlkoTxDLSUsfgU3pRRP9CSK/qQJtUe1OyozP1z4vWUrCVazqGyL1h7JxP
B1+T71lPbIHIz7LIkJUsgEZncDCBWW96e0LkBZe91jFSq22ILmsiiRJNNlDqBBflzvMLaLXNI29L
61wT+KQEHtA3t7cDv9A252yWNBb72LtcW/k7OHDhUtQqSQg6oxdcZjeXgqRucvlE79h/Pe/klkU6
RgVT92KZe8WHIHQMzeqkCl7YbXajdS7vioB1a6iyezumlq4gjtkhyCIiqtp30IUp4NMq22k9NSkB
Z23+DFW0eGvnZa/mPpu9xoaq7KMYUn3T31uVYQg3RW6kWbd3Pa+Zdw3X50gJqN8rivSopZsBaSfa
LOyCfbck4gRoksD9+TIdHNC0APtQMxJXx7eLqOUl9CA1wfdU2ETSx4hcK/aEPNr9XRJndbXf3A80
tK8tWnFVQsScGdFlNCClYBTgtGYX3zTz9tL9wrHZEUmT2QETvkNhRJZLhtQ5dtivti7NTXTauxjG
weXiH115uV94aEvTkcXCFIfiFIF8mWUf6KKNjrSp+EdxihJfcksK1kcsmSpeHmeYnddb8Ale4D+F
59MQYE6LTa6LWwD1VexwmnKbwB/F4WTgUEPIUgDW0ignvlyXBNBYEVTMjpIFscZeD6mAjrPy0ZJC
V4gu2swp+ix+tyBM1sV4aAridHUO5Ul0Y46c5u5z2xFA3veOYKOju+NKjsoz6UnDaxUy6mQKpHCM
RSz2bYrPvhsEy3wFEdQ3OSSeW4SlUS8upM9RzN83ZyB3iR1qSNrSO5Dv/emQkBq7NV2fA9mCSbv/
WN0NyU6p7XNc89a7IDPCTK3Ue7vVOfyyuDR2ZTq3svuhXCJZAot32eNnZiUqnm4gTQFieYmFdEqX
gd2wNkcCcD+1BYDcrsvxFOSfGns1u9xLc9070k0vC7F2zFHA3K/Nc52xC1OpCLqvelsom/sxxYDz
E9q8AkTiKAC6O6JJ2i7G4B7dpF7lePsz11yI03cxpppecayAtgpyd1hyG8n17kMUdfks+jp3fSLi
Y7kWjQORzsGhesibNuVxSHMGV2hOGlGJryn1JvpIaoIlFBtbOeNDS08fxdTj0OW8+MDz5wvoWUd3
IFnkwKOeBI/j3Ngx+jS+Ys+32S7J3gwxxqN1oKIUm8npCMZPK+bqZb8YY7akRIfOVqDD07HkQyfC
2gW5DkepFEfHig2X8NWJ0ijW4o1x7tjJSCcxmxL4Ssf6JJ1g1URRqWM9UpoG8XTvh21pzSSA4QiC
OVZD1o2OLw5b3alZROawWhy46kK9ZUpoGGr/fAqTYHh4lEEXqhvR+EcfYnTkzqTvDHbuBtLYK98w
ptZzGlDX4M5MCDqBIrzueD1ujvtYX3ch/5j4PRZelt9Q7ErnKan1rJLQjbU2UuPj7XiTRqjjCDZX
oOgIsaWRFGOxI/VkLsggONCRlkVr7EhdHMlelJGOBKC1A3cz7ABtGKC2uBpf2ng7QNLETOb66/l4
gpgdU2WBral17FaLHATKkSBuj2+2GmW6/mTux18Ppxv+g7DPntfayUjtKpxjZ/GP1X5nBIjZpNX0
vplOrO6yM2vCzHznXjuvFVTRGUnkMKuwT5fV1gz3KgxWh8FIvhsGQ95b4UMVZxERitAL2Wzwp9sJ
lN60/eHTpyWb7U0wlZTgb6en28sL1J1N13+szzvoDfyP9f42CbOq4qkhVlt5qmpzTC5SdzlBhe0v
5mlMP36RL6MKB0fUvR/h/5s+St9X8eCdqvJVlzamCgL4EzQzmbY/G6OMM8Ht0vp4UrFHuB3CiKjt
zejbv62/7F7WhesTOyWjDoJQ9P/8z/8PUEsDBAoAAAAAAPI660IAAAAAAAAAAAAAAAAEABwAc3Zn
L1VUCQAD57/eUZzD3lF1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA8jrrQgAAAAAAAAAAAAAAAAsA
HABzdmcvc3Ryb2tlL1VUCQAD57/eUZzD3lF1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmDzrQtKc
EqeEAAAAlAAAACUAHABzdmcvc3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQJAAMA
w95R57/eUXV4CwABBPUBAAAEFAAAAA3IwQqCQBQF0H1fcX9AURKtIdpoBNGq2kWLMS80NL6J55jV
1+fynMPokefIKrMsTbHCxPbpYsJpSLIi9eFuPZqxf50oHfWi5LWsynx9w2anGnRrUO/rIJGfeGY8
OmFjh4eBk7f1rkM3C1bVfg1shKcdIoIQ9OwpEf04R0tIkORHDeniD1BLAQIeAxQAAgAIANk860Kk
NXbVZZsBANhZFAAOABgAAAAAAAEAAACkgQAAAABhY2Nlc3NfbG9nLnR4dFVUBQADecPeUXV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAACc660IAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQa2bAQBh
Y2Nlc3NpYmlsaXR5L1VUBQADab7eUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM4760Ihj704
MgAAADMAAAAmABgAAAAAAAEAAACkgfWbAQBhY2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQtc3Rk
ZXJyLnR4dFVUBQADg8HeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANk860K+K9xyjy0AAGyV
AwANABgAAAAAAAEAAACkgYecAQBlcnJvcl9sb2cudHh0VVQFAAN5w95RdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAANTzrQgAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BXcoBAGZhc3QvVVQFAANF
wt5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAHTzrQgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQ
AO1BnMoBAGZhc3QvZXZlbnRzL1VUBQADGsLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGk6
60Ihj704MgAAADMAAAA/ABgAAAAAAAEAAACkgeLKAQBmYXN0L2V2ZW50cy9tZWRpYS1mb2N1cy1p
bi1zdGFuZGFsb25lLW1lZGlhLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA+a+3lF1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAdPOtCIY+9ODIAAAAzAAAALgAYAAAAAAABAAAApIGNywEAZmFzdC9l
dmVudHMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGwtc3RkZXJyLnR4dFVUBQADGsLeUXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAHg660IAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQSfMAQBmYXN0
L2xvYWRlci9VVAUAAwO/3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiPOtCFLlhIqcAAADX
AAAALwAYAAAAAAABAAAApIFtzAEAZmFzdC9sb2FkZXIvamF2YXNjcmlwdC11cmwtaW4tb2JqZWN0
LWFjdHVhbC50eHRVVAUAAyDC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiPOtCUtFYehAB
AADXAQAALQAYAAAAAAABAAAApIF9zQEAZmFzdC9sb2FkZXIvamF2YXNjcmlwdC11cmwtaW4tb2Jq
ZWN0LWRpZmYudHh0VVQFAAMgwt5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIjzrQg4JEGhE
AAAASQAAADEAGAAAAAAAAQAAAKSB9M4BAGZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJsLWluLW9i
amVjdC1leHBlY3RlZC50eHRVVAUAAyDC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiPOtC
/4qXc+cHAAD0GAAANQAYAAAAAAABAAAApIGjzwEAZmFzdC9sb2FkZXIvamF2YXNjcmlwdC11cmwt
aW4tb2JqZWN0LXByZXR0eS1kaWZmLmh0bWxVVAUAAyDC3lF1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAA1POtCAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UH51wEAZmFzdC9zcGF0aWFsLW5hdmln
YXRpb24vVVQFAANFwt5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANTzrQiGPvTgyAAAAMwAA
ADYAGAAAAAAAAQAAAKSBS9gBAGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbWVkaWEtZWxl
bWVudHMtc3RkZXJyLnR4dFVUBQADRcLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJg660IA
AAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQe3YAQBmYXN0L3hzbC9VVAUAAz+/3lF1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABCPOtCcv1l8oUAAADpAAAAJQAYAAAAAAABAAAApIEw2QEAZmFzdC94
c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUBQADXMLeUXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAEI860LOCSgCjQAAAPAAAAAnABgAAAAAAAEAAACkgRTaAQBmYXN0L3hzbC94c2x0
LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAA1zC3lF1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABDPOtCgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIEC2wEAZmFzdC94c2wveHNsdC10cmFu
c2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADXcLeUXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOs860LUFiLG/wEAALUEAAARABgAAAAAAAEAAACkgbvbAQBmdWxsX3Jlc3Vs
dHMuanNvblVUBQADmsPeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKo660IAAAAAAAAAAAAA
AAALABgAAAAAAAAAEADtQQXeAQBmdWxsc2NyZWVuL1VUBQADX7/eUXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFI860JmMIm8jAAAAKIAAAA+ABgAAAAAAAEAAACkgUreAQBmdWxsc2NyZWVuL2Z1
bGwtc2NyZWVuLWlmcmFtZS13aXRoLW1heC13aWR0aC1oZWlnaHQtYWN0dWFsLnR4dFVUBQADe8Le
UXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFI860Kt+Lx0VAEAAKACAAA8ABgAAAAAAAEAAACk
gU7fAQBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS13aXRoLW1heC13aWR0aC1oZWlnaHQt
ZGlmZi50eHRVVAUAA3vC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSPOtCGNdfG3oAAADg
AAAAQAAYAAAAAAABAAAApIEY4QEAZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtd2l0aC1t
YXgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLnR4dFVUBQADe8LeUXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFI860IXSDPwOggAAKcbAABEABgAAAAAAAEAAACkgQziAQBmdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLWlmcmFtZS13aXRoLW1heC13aWR0aC1oZWlnaHQtcHJldHR5LWRpZmYuaHRtbFVUBQAD
e8LeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAFI860ImkKTiNAAAADQAAAA+ABgAAAAAAAEA
AACkgcTqAQBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS13aXRoLW1heC13aWR0aC1oZWln
aHQtc3RkZXJyLnR4dFVUBQADe8LeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKo660Ihj704
MgAAADMAAAAtABgAAAAAAAEAAACkgXDrAQBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLXRpbWVs
aW5lLXN0ZGVyci50eHRVVAUAA1+/3lF1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAmOutCAAAA
AAAAAAAAAAAABQAYAAAAAAAAABAA7UEJ7AEAaHR0cC9VVAUAA2i+3lF1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADGOutCAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UFI7AEAaHR0cC90ZXN0cy9V
VAUAA5S/3lF1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAmOutCAAAAAAAAAAAAAAAAFAAYAAAA
AAAAABAA7UGN7AEAaHR0cC90ZXN0cy9hcHBjYWNoZS9VVAUAA2i+3lF1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADPO+tCIY+9ODIAAAAzAAAAJAAYAAAAAAABAAAApIHb7AEAaHR0cC90ZXN0cy9h
cHBjYWNoZS92aWRlby1zdGRlcnIudHh0VVQFAAOFwd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAKTrrQgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1Ba+0BAGh0dHAvdGVzdHMvY2FjaGUvVVQF
AANtvt5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0TvrQkjhrUpQAAAAewAAAC0AGAAAAAAA
AQAAAKSBtu0BAGh0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtYWN0dWFsLnR4dFVU
BQADisHeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANE760Igf/7c1gAAALoBAAArABgAAAAA
AAEAAACkgW3uAQBodHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hlLWRpZmYudHh0VVQF
AAOKwd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0TvrQu4UZL5HAAAAZgAAAC8AGAAAAAAA
AQAAAKSBqO8BAGh0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtZXhwZWN0ZWQudHh0
VVQFAAOKwd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAA0TvrQo08gGxBAAAAQQAAADQAGAAA
AAAAAQAAAKSBWPABAGh0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtaWZyYW1lLWFj
dHVhbC50eHRVVAUAA4nB3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADRO+tCqysPs7wAAABp
AQAAMgAYAAAAAAABAAAApIEH8QEAaHR0cC90ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1p
ZnJhbWUtZGlmZi50eHRVVAUAA4nB3lF1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADRO+tCP82I
ZiAAAAAgAAAANgAYAAAAAAABAAAApIEv8gEAaHR0cC90ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1j
YWNoZS1pZnJhbWUtZXhwZWN0ZWQudHh0VVQFAAOJwd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA0TvrQrduAqeXBwAAQxgAADoAGAAAAAAAAQAAAKSBv/IBAGh0dHAvdGVzdHMvY2FjaGUvcGFy
dGl0aW9uZWQtY2FjaGUtaWZyYW1lLXByZXR0eS1kaWZmLmh0bWxVVAUAA4rB3lF1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADRO+tCUEZOe/EHAAAlGwAAMwAYAAAAAAABAAAApIHK+gEAaHR0cC90
ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1wcmV0dHktZGlmZi5odG1sVVQFAAOKwd5RdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA9DvrQgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BKAMC
AGh0dHAvdGVzdHMvaW5zcGVjdG9yL1VUBQADy8HeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
APQ760IAAAAAAAAAAAAAAAAeABgAAAAAAAAAEADtQXcDAgBodHRwL3Rlc3RzL2luc3BlY3Rvci9h
cHBjYWNoZS9VVAUAA8vB3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0O+tCuHRv6ZgAAABN
AQAAUQAYAAAAAAABAAAApIHPAwIAaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2Fj
aGUtbWFuaWZlc3Qtd2l0aC1ub24tZXhpc3RpbmctZmlsZS1hY3R1YWwudHh0VVQFAAPLwd5RdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9DvrQl3xHCo/AQAAcQIAAE8AGAAAAAAAAQAAAKSB8gQC
AGh0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2FwcGNhY2hlLW1hbmlmZXN0LXdpdGgtbm9u
LWV4aXN0aW5nLWZpbGUtZGlmZi50eHRVVAUAA8vB3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAD0O+tCZtGR3/kAAADiAQAAUwAYAAAAAAABAAAApIG6BgIAaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
YXBwY2FjaGUvYXBwY2FjaGUtbWFuaWZlc3Qtd2l0aC1ub24tZXhpc3RpbmctZmlsZS1leHBlY3Rl
ZC50eHRVVAUAA8vB3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0O+tCiMJkuA4IAABeGQAA
VwAYAAAAAAABAAAApIFACAIAaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUt
bWFuaWZlc3Qtd2l0aC1ub24tZXhpc3RpbmctZmlsZS1wcmV0dHktZGlmZi5odG1sVVQFAAPLwd5R
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7zvrQuzSvT3FAAAA9gAAAC8AGAAAAAAAAQAAAKSB
3xACAGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3QtZWxlbWVudC1hY3R1YWwudHh0VVQFAAPC
wd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7zvrQtxq4TsnAQAA+AEAAC0AGAAAAAAAAQAA
AKSBDRICAGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3QtZWxlbWVudC1kaWZmLnR4dFVUBQAD
wsHeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO8760Kd4/H8bQAAAHgAAAAxABgAAAAAAAEA
AACkgZsTAgBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0LWVsZW1lbnQtZXhwZWN0ZWQudHh0
VVQFAAPCwd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8DvrQqgEmYD6BwAAfhoAADUAGAAA
AAAAAQAAAKSBcxQCAGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3QtZWxlbWVudC1wcmV0dHkt
ZGlmZi5odG1sVVQFAAPDwd5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAmDrrQgAAAAAAAAAA
AAAAABAAGAAAAAAAAAAQAO1B3BwCAGh0dHAvdGVzdHMvbWlzYy9VVAUAA0C/3lF1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABCPOtCFTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIEmHQIAaHR0cC90
ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQFAANbwt5RdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA4TrrQgAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BBB4CAGh0dHAvdGVz
dHMvc2VjdXJpdHkvVVQFAAPFv95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0zrrQgAAAAAA
AAAAAAAAACoAGAAAAAAAAAAQAO1BUh4CAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L1VUBQADrb/eUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHg860JjqqxsggAA
AKgAAABAABgAAAAAAAEAAACkgbYeAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAPEwt5RdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAeDzrQmOqrGyCAAAAqAAAAFIAGAAAAAAAAQAAAKSBsh8CAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0y
LXN0ZGVyci50eHRVVAUAA8TC3lF1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADUOutCAAAAAAAA
AAAAAAAAHAAYAAAAAAAAABAA7UHAIAIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL1VUBQAD
sL/eUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHk860LA5zttJQAAADMAAABOABgAAAAAAAEA
AACkgRYhAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLXVzZXItYWN0aW9uLWFjdHVhbC50eHRVVAUAA8bC3lF1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAB5POtC40L6K7gAAACBAQAATAAYAAAAAAABAAAApIHDIQIAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11c2VyLWFjdGlvbi1kaWZm
LnR4dFVUBQADxsLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHk860JaRN2RKQAAADcAAABQ
ABgAAAAAAAEAAACkgQEjAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLXVzZXItYWN0aW9uLWV4cGVjdGVkLnR4dFVUBQADxsLeUXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAHo860IQ/eVdlwcAADYZAABUABgAAAAAAAEAAACkgbQjAgBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXVzZXIt
YWN0aW9uLXByZXR0eS1kaWZmLmh0bWxVVAUAA8fC3lF1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AADhOutCAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UHZKwIAaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvVVQFAAPFv95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhzzrQj4ycCaj
AQAAeQQAAFcAGAAAAAAAAQAAAKSBNCwCAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtaWZyYW1lLWluLW1haW4tZnJhbWUtYWN0dWFsLnR4dFVU
BQAD3sLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIc860LCl5BSEwEAAMoCAABVABgAAAAA
AAEAAACkgWguAgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRw
cy10by1odHRwLWlmcmFtZS1pbi1tYWluLWZyYW1lLWRpZmYudHh0VVQFAAPewt5RdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAhzzrQo6qsVS2AQAA1wQAAFkAGAAAAAAAAQAAAKSBCjACAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtaWZyYW1l
LWluLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0VVQFAAPewt5RdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAhzzrQm+f7GwACAAAGhwAAF0AGAAAAAAAAQAAAKSBUzICAGh0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtaWZyYW1lLWluLW1haW4tZnJh
bWUtcHJldHR5LWRpZmYuaHRtbFVUBQAD3sLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG08
60JgS2YQkQAAAPsBAABFABgAAAAAAAEAAACkgeo6AgBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1E
RU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA63C3lF1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADXPOtC6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIH6OwIA
aHR0cGQuY29uZlVUBQADdcPeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC8660JqxnP2KiQA
AO59AAAaABgAAAAAAAEAAACkgZ9BAgBJbWFnZURpZmYtNjU0MzItc2FtcGxlLnR4dFVUBQADeb7e
UXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEE660LWo9hVbyMAAKh4AAAaABgAAAAAAAEAAACk
gR1mAgBJbWFnZURpZmYtNjU1MzItc2FtcGxlLnR4dFVUBQADmr7eUXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANY760LT91QzDyQAAEt+AAAaABgAAAAAAAEAAACkgeCJAgBJbWFnZURpZmYtNjc2
NDYtc2FtcGxlLnR4dFVUBQADk8HeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOk760If7WZJ
ciMAAKh4AAAaABgAAAAAAAEAAACkgUOuAgBJbWFnZURpZmYtNjc3NDktc2FtcGxlLnR4dFVUBQAD
tcHeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGU860IAAAAAAAAAAAAAAAAGABgAAAAAAAAA
EADtQQnSAgBtZWRpYS9VVAUAA57C3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC4OutCIY+9
ODIAAAAzAAAALQAYAAAAAAABAAAApIFJ0gIAbWVkaWEvY2xpY2stdm9sdW1lLWJhci1ub3QtcGF1
c2luZy1zdGRlcnIudHh0VVQFAAN7v95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYTzrQiG4
J6yiAAAAWwMAACEAGAAAAAAAAQAAAKSB4tICAG1lZGlhL2V2ZW50LWF0dHJpYnV0ZXMtc3RkZXJy
LnR4dFVUBQADlcLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGE860JxhWoiogAAAFsDAAAf
ABgAAAAAAAEAAACkgd/TAgBtZWRpYS9tZWRpYS1jYXB0aW9ucy1zdGRlcnIudHh0VVQFAAOWwt5R
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZjzrQiGPvTgyAAAAMwAAACgAGAAAAAAAAQAAAKSB
2tQCAG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4taW5saW5lLXN0ZGVyci50eHRVVAUAA6DC3lF1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABlPOtCAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFu1QIA
bWVkaWEvdHJhY2svVVQFAAOewt5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZTzrQiGPvTgy
AAAAMwAAACgAGAAAAAAAAQAAAKSBtNUCAG1lZGlhL3RyYWNrL3RyYWNrLWFjdGl2ZS1jdWVzLXN0
ZGVyci50eHRVVAUAA57C3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDPOtCBI9GnawAAAC2
BgAAGwAYAAAAAAABAAAApIFI1gIAbWVkaWEvdmlkZW8tc2l6ZS1zdGRlcnIudHh0VVQFAAPVwt5R
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgzzrQmJ2HqmiAAAAWwMAACIAGAAAAAAAAQAAAKSB
SdcCAG1lZGlhL3ZpZGVvLXNvdXJjZS1sb2FkLXN0ZGVyci50eHRVVAUAA9bC3lF1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAC3OutCAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UFH2AIAbWVkaWEv
VzNDL1VUBQADer/eUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALU660IAAAAAAAAAAAAAAAAQ
ABgAAAAAAAAAEADtQYvYAgBtZWRpYS9XM0MvYXVkaW8vVVQFAAN1v95RdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAtTrrQgAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1B1dgCAG1lZGlhL1czQy9h
dWRpby9ldmVudHMvVVQFAAN1v95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtTrrQiGPvTgy
AAAAMwAAAC8AGAAAAAAAAQAAAKSBJtkCAG1lZGlhL1czQy9hdWRpby9ldmVudHMvZXZlbnRfY2Fu
cGxheS1zdGRlcnIudHh0VVQFAAN1v95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAYzzrQgAA
AAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BwdkCAG1lZGlhL1czQy92aWRlby9VVAUAA5nC3lF1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAC3OutCAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UEL2gIA
bWVkaWEvVzNDL3ZpZGVvL2V2ZW50cy9VVAUAA3q/3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAC3OutCIY+9ODIAAAAzAAAALwAYAAAAAAABAAAApIFc2gIAbWVkaWEvVzNDL3ZpZGVvL2V2ZW50
cy9ldmVudF9jYW5wbGF5LXN0ZGVyci50eHRVVAUAA3q/3lF1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABjPOtCAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UH32gIAbWVkaWEvVzNDL3ZpZGVvL3Bh
dXNlZC9VVAUAA5nC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABjPOtCIY+9ODIAAAAzAAAA
OgAYAAAAAAABAAAApIFI2wIAbWVkaWEvVzNDL3ZpZGVvL3BhdXNlZC9wYXVzZWRfZmFsc2VfZHVy
aW5nX3BsYXktc3RkZXJyLnR4dFVUBQADmcLeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMM6
60IAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQe7bAgBwbGF0Zm9ybS9VVAUAA42/3lF1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAADDOutCAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UEx3AIAcGxh
dGZvcm0vbWFjL1VUBQADjb/eUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMM660IAAAAAAAAA
AAAAAAAVABgAAAAAAAAAEADtQXjcAgBwbGF0Zm9ybS9tYWMvZWRpdGluZy9VVAUAA42/3lF1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADDOutCAAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UHH3AIA
cGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvVVQFAAONv95RdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAajzrQrH9vTHbAwAAdAkAAEMAGAAAAAAAAQAAAKSBH90CAHBsYXRmb3JtL21hYy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc2luZ2xlLWluc3RhbmNlLWFjdHVhbC50eHRVVAUA
A6jC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqPOtCWrsOp54BAACoAwAAQQAYAAAAAAAB
AAAApIF34QIAcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1zaW5nbGUt
aW5zdGFuY2UtZGlmZi50eHRVVAUAA6jC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqPOtC
tQ5IZdkDAAB0CQAARQAYAAAAAAABAAAApIGQ4wIAcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRp
bmcvZGVsZXRpb25VSS1zaW5nbGUtaW5zdGFuY2UtZXhwZWN0ZWQudHh0VVQFAAOowt5RdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAajzrQkPggXegCAAA1B4AAEkAGAAAAAAAAQAAAKSB6OcCAHBs
YXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc2luZ2xlLWluc3RhbmNlLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA6jC3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC2POtCFJtR
4WkCAAAfHAAAKwAYAAAAAAABAAAApIEL8QIAcHl3ZWJzb2NrZXQud3MubG9nLTExSnVsMjAxMy0w
NzMwMTUtZXJyLnR4dFVUBQADN8PeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKc860IL997Y
CgEAAI8CAAArABgAAAAAAAEAAACkgdnzAgBweXdlYnNvY2tldC53cy5sb2ctMTFKdWwyMDEzLTA3
MzAxNS1vdXQudHh0VVQFAAMZw95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6zzrQsowPWyb
JQAAXqAAAAwAGAAAAAAAAQAAAKSBSPUCAHJlc3VsdHMuaHRtbFVUBQADmsPeUXV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAOo860IAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQSkbAwByZXRyaWVz
L1VUBQADmMPeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOo860IAAAAAAAAAAAAAAAATABgA
AAAAAAAAEADtQWsbAwByZXRyaWVzL2Z1bGxzY3JlZW4vVVQFAAOYw95RdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA6jzrQmYwibyMAAAAogAAAEYAGAAAAAAAAQAAAKSBuBsDAHJldHJpZXMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtd2l0aC1tYXgtd2lkdGgtaGVpZ2h0LWFjdHVhbC50
eHRVVAUAA5jD3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADqPOtCbvd2RFkBAACwAgAARAAY
AAAAAAABAAAApIHEHAMAcmV0cmllcy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS13aXRo
LW1heC13aWR0aC1oZWlnaHQtZGlmZi50eHRVVAUAA5jD3lF1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADqPOtCGNdfG3oAAADgAAAASAAYAAAAAAABAAAApIGbHgMAcmV0cmllcy9mdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLWlmcmFtZS13aXRoLW1heC13aWR0aC1oZWlnaHQtZXhwZWN0ZWQudHh0VVQF
AAOYw95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6jzrQuawvZs/CAAArxsAAEwAGAAAAAAA
AQAAAKSBlx8DAHJldHJpZXMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtd2l0aC1tYXgt
d2lkdGgtaGVpZ2h0LXByZXR0eS1kaWZmLmh0bWxVVAUAA5jD3lF1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAIAAADqPOtCJpCk4jQAAAA0AAAARgAYAAAAAAABAAAApIFcKAMAcmV0cmllcy9mdWxsc2Ny
ZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS13aXRoLW1heC13aWR0aC1oZWlnaHQtc3RkZXJyLnR4dFVU
BQADmMPeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADM760IAAAAAAAAAAAAAAAANABgAAAAA
AAAAEADtQRApAwByZXRyaWVzL2h0dHAvVVQFAANhwN5RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAMzvrQgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BVykDAHJldHJpZXMvaHR0cC90ZXN0cy9V
VAUAA2HA3lF1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAzO+tCAAAAAAAAAAAAAAAAGQAYAAAA
AAAAABAA7UGkKQMAcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL1VUBQADYcDeUXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIANg860JI4a1KUAAAAHsAAAA1ABgAAAAAAAEAAACkgfcpAwByZXRyaWVz
L2h0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtYWN0dWFsLnR4dFVUBQADd8PeUXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANg860LzW1352wAAAMoBAAAzABgAAAAAAAEAAACkgbYq
AwByZXRyaWVzL2h0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtZGlmZi50eHRVVAUA
A3fD3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYPOtC7hRkvkcAAABmAAAANwAYAAAAAAAB
AAAApIH+KwMAcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hlLWV4cGVj
dGVkLnR4dFVUBQADd8PeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAANg860KNPIBsQQAAAEEA
AAA8ABgAAAAAAAEAAACkgbYsAwByZXRyaWVzL2h0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQt
Y2FjaGUtaWZyYW1lLWFjdHVhbC50eHRVVAUAA3fD3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADYPOtCRdnUZ8IAAAB5AQAAOgAYAAAAAAABAAAApIFtLQMAcmV0cmllcy9odHRwL3Rlc3RzL2Nh
Y2hlL3BhcnRpdGlvbmVkLWNhY2hlLWlmcmFtZS1kaWZmLnR4dFVUBQADd8PeUXV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAgAAANg860I/zYhmIAAAACAAAAA+ABgAAAAAAAEAAACkgaMuAwByZXRyaWVz
L2h0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtaWZyYW1lLWV4cGVjdGVkLnR4dFVU
BQADd8PeUXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANg860JFdcqJnAcAAEsYAABCABgAAAAA
AAEAAACkgTsvAwByZXRyaWVzL2h0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtaWZy
YW1lLXByZXR0eS1kaWZmLmh0bWxVVAUAA3fD3lF1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADY
POtC82o0+/YHAAAtGwAAOwAYAAAAAAABAAAApIFTNwMAcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hl
L3BhcnRpdGlvbmVkLWNhY2hlLXByZXR0eS1kaWZmLmh0bWxVVAUAA3fD3lF1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADrPOtCaL4cAv7pBQC0OSEACgAYAAAAAAABAAAApIG+PwMAc3RhdHMuanNv
blVUBQADmsPeUXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPI660IAAAAAAAAAAAAAAAAEABgA
AAAAAAAAEADtQQAqCQBzdmcvVVQFAAPnv95RdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA8jrr
QgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BPioJAHN2Zy9zdHJva2UvVVQFAAPnv95RdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAmDzrQtKcEqeEAAAAlAAAACUAGAAAAAAAAQAAAKSBgyoJAHN2
Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRVVAUAAwDD3lF1eAsAAQT1AQAABBQA
AABQSwUGAAAAAHsAewD1NQAAZisJAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211038</attachid>
            <date>2013-09-09 07:07:47 -0700</date>
            <delta_ts>2013-09-09 10:33:36 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>bug-118358-20130909110744.patch</filename>
            <type>text/plain</type>
            <size>83844</size>
            <attacher name="Luciano Wolf">luciano.wolf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlhMzc3MDU2NWU0NDk5MmY5N2I0NGIy
ZjE1YjMxYWE2OWNjYTVlZTcuLmQ3ODExYzUwYjdkOTIxZjJjNmRhOGZhNDA4OGJhNTA4YTI4NDgx
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDktMDkgIEx1Y2lhbm8gV29sZiAgPGx1Y2lh
bm8ud29sZkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGlu
ZyBzdHVicyBhbmQgTml4IHNwZWNpZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBCZW5qYW1pbiBQb3VsYWluLgorCisgICAgICAgIEJhc2ljYWxseSBhZGRpbmcgYWxsIGZp
bGVzIHRoYXQgaGF2ZSAiTml4IiBpbiB0aGVpciBuYW1lcyBhbmQKKyAgICAgICAgYXJlIHJlbGF0
ZWQgdG8gV2ViQ29yZSBtb2R1bGUuCisKKyAgICAgICAgKiB3dGYvbml4L0ZlYXR1cmVEZWZpbmVz
Tml4Lmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi9uaXgvUGxhdGZvcm1OaXguaDogQWRkZWQuCisK
IDIwMTMtMDktMDkgIEp1bGllbiBCcmlhbmNlYXUgIDxqYnJpYW5jZUBjaXNjby5jb20+CiAKICAg
ICAgICAgW1F0XSBSZW1vdmUgRmFzdEFsbG9jQmFzZS5oIGZyb20gV1RGLnByby4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0YzA0N2RmZjAwZGRiYzNkMmY1MmRmMzJmM2M3MDM3MzU4MGU4ZGNlLi4yNmZiNjA3MDc5
MmQ4YzRhOWQ1ZGZlMTlkZmE2YzkzOWZkNThlYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTMtMDktMDkgIEx1Y2lhbm8gV29sZiAgPGx1Y2lhbm8ud29sZkBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGluZyBzdHVicyBhbmQgTml4IHNwZWNp
ZmljIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTgzNTgKKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWlu
LgorCisgICAgICAgIEJhc2ljYWxseSBhZGRpbmcgYWxsIGZpbGVzIHRoYXQgaGF2ZSAiTml4IiBp
biB0aGVpciBuYW1lcyBhbmQKKyAgICAgICAgYXJlIHJlbGF0ZWQgdG8gV2ViQ29yZSBtb2R1bGUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGV5IHdpbGwgYmUgdXBsb2FkZWQgb24gYW5vdGhl
ciBwYXRjaCBkdXJpbmcgdGhlCisgICAgICAgIHVwc3RyZWFtaW5nIHByb2Nlc3MuCisKKyAgICAg
ICAgKiBjc3MvbWVkaWFDb250cm9sc05peC5jc3M6IEFkZGVkLgorICAgICAgICAqIGNzcy9tZWRp
YUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3M6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uvbml4L0V2
ZW50SGFuZGxlck5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHA6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHA6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25peC9EcmFnSW1hZ2VOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvR2Ft
ZXBhZHNOaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5j
cHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5j
cHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25peC9OaXhLZXlib2FyZFV0aWxpdGllcy5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uaXgvU291bmROaXguY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHA6IEFkZGVkLgorCiAy
MDEzLTA5LTA5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBI
aWRlIERvY3VtZW50OjpyZW5kZXJlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9uaXgv
RmVhdHVyZURlZmluZXNOaXguaCBiL1NvdXJjZS9XVEYvd3RmL25peC9GZWF0dXJlRGVmaW5lc05p
eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM0MzJhZDBlZDI2MTRhNDEyMjY2YmFiNjNkOTRmYzJiZWVlM2E0NTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXgu
aApAQCAtMCwwICsxLDI4MSBAQAorLyoKKyogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdU
Rl9GZWF0dXJlRGVmaW5lc05peF9oCisjZGVmaW5lIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfM0RfUkVOREVSSU5HKQorI2RlZmluZSBFTkFCTEVfM0RfUkVO
REVSSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCisjZGVm
aW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfQkxPQikKKyNkZWZpbmUgRU5BQkxFX0JMT0IgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCisjZGVmaW5lIEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhU
X01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVmaW5lIEVOQUJMRV9DU1MzX1RFWFQgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorI2Rl
ZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0NTU19FWENMVVNJT05TKQorI2RlZmluZSBFTkFCTEVfQ1NTX0VYQ0xVU0lP
TlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0ZJTFRFUlMpCisjZGVmaW5l
IEVOQUJMRV9DU1NfRklMVEVSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1Nf
SU1BR0VfT1JJRU5UQVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04g
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pCisj
ZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9DU1NfSU1BR0VfU0VUKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1NFVCAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfUkVHSU9OUykKKyNkZWZpbmUgRU5B
QkxFX0NTU19SRUdJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TSEFE
RVJTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQURFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTX1ZBUklBQkxFUykKKyNkZWZpbmUgRU5BQkxFX0NTU19WQVJJQUJMRVMgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkKKyNkZWZpbmUg
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
REVUQUlMU19FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREVUQUlMU19FTEVNRU5UIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0RS
QUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GQVNUX01PQklMRV9T
Q1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSUykKKyNkZWZpbmUgRU5BQkxFX0ZJTFRFUlMg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVf
RlRQRElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQor
I2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxFX0dBTUVQQUQgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9HRVNUVVJFX0VW
RU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JQ09OREFUQUJBU0UpCisjZGVm
aW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
SUZSQU1FX1NFQU1MRVNTKQorI2RlZmluZSBFTkFCTEVfSUZSQU1FX1NFQU1MRVNTIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpCisjZGVmaW5lIEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BF
Q1RPUikKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1NFUlZF
UiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKQor
I2RlZmluZSBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykKKyNkZWZpbmUgRU5BQkxFX0xFR0FD
WV9WRU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZ
X1ZJRVdQT1JUX0FEQVBUSU9OKQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBU
SU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pCisj
ZGVmaW5lIEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0xMSU5UKQorI2RlZmluZSBFTkFCTEVfTExJTlQgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTUFUSE1MKQorI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9F
TEVNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkKKyNkZWZp
bmUgRU5BQkxFX01JQ1JPREFUQSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykKKyNkZWZpbmUgRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VU
SUxTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkp
CisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX05FVFdPUktfSU5GTykKKyNkZWZpbmUgRU5BQkxFX05FVFdPUktfSU5GTyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFT
SCkKKyNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNIIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1BPUFVQX01FTlVTKQorI2RlZmluZSBFTkFCTEVfUE9QVVBf
TUVOVVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkK
KyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisjZGVmaW5lIEVOQUJMRV9SRVFVRVNU
X0FOSU1BVElPTl9GUkFNRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0hB
UEVTKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NIQVBFUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9TSEFSRURfV09SS0VSUykKKyNkZWZpbmUgRU5BQkxFX1NIQVJFRF9XT1JLRVJTIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NRTF9EQVRBQkFTRSkKKyNkZWZpbmUgRU5B
QkxFX1NRTF9EQVRBQkFTRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TVkcpCisj
ZGVmaW5lIEVOQUJMRV9TVkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHX0ZP
TlRTKQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1RPVUNIX0FESlVTVE1FTlQpCisjZGVmaW5lIEVOQUJMRV9UT1VDSF9BREpVU1RNRU5U
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykKKyNkZWZpbmUg
RU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9VTkRP
X01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9VTkRPX01BTkFHRVIgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVklERU8pCisjZGVmaW5lIEVOQUJMRV9WSURFTyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKQorI2RlZmluZSBFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJf
QVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9XRUJfU09DS0VUUykKKyNkZWZpbmUgRU5BQkxFX1dFQl9TT0NLRVRTIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9USU1JTkcpCisjZGVmaW5lIEVOQUJM
RV9XRUJfVElNSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dPUktFUlMpCisj
ZGVmaW5lIEVOQUJMRV9XT1JLRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1hI
Ul9SRVNQT05TRV9CTE9CKQorI2RlZmluZSBFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfWFNMVCkKKyNkZWZpbmUgRU5BQkxFX1hTTFQgMQor
I2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvbml4L1BsYXRmb3Jt
Tml4LmggYi9Tb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBi
ZTQ0MzdhNmNkYzE2MjZhNjQzNTYyMTcyY2IzZmE4MWRlYmRmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyog
IENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdURl9QbGF0Zm9ybU5peF9oCisjZGVmaW5lIFdU
Rl9QbGF0Zm9ybU5peF9oCisKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX05JWCAxCisjZGVmaW5lIEVO
QUJMRV9HTE9CQUxfRkFTVE1BTExPQ19ORVcgMAorCisjZGVmaW5lIFdURl9VU0VfM0RfR1JBUEhJ
Q1MgMQorI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIDEKKyNkZWZpbmUg
V1RGX1VTRV9DQUlSTyAxCisjZGVmaW5lIFdURl9VU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgMQor
I2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMgMQorI2RlZmluZSBX
VEZfVVNFX0ZSRUVUWVBFIDEKKyNkZWZpbmUgV1RGX1VTRV9HTElCIDEKKyNkZWZpbmUgV1RGX1VT
RV9IQVJGQlVaWiAxCisjZGVmaW5lIFdURl9VU0VfSEFSRkJVWlpfTkcgMQorI2RlZmluZSBXVEZf
VVNFX0lDVV9VTklDT0RFIDEKKyNkZWZpbmUgV1RGX1VTRV9JT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJ
TkdfU1RPUkUgMQorI2RlZmluZSBXVEZfVVNFX0xFVkVMREIgMQorI2RlZmluZSBXVEZfVVNFX1BU
SFJFQURTIDEKKyNkZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUiAxCisjZGVmaW5lIFdURl9V
U0VfVEVYVFVSRV9NQVBQRVJfR0wgMQorI2RlZmluZSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RP
UkUgMQorI2RlZmluZSBXVEZfVVNFX1VOSVhfRE9NQUlOX1NPQ0tFVFMgMQorCisjaWYgIWRlZmlu
ZWQoV1RGX1VTRV9PUEVOR0xfRVNfMikgfHwgIVdURl9VU0VfT1BFTkdMX0VTXzIKKyNkZWZpbmUg
V1RGX1VTRV9PUEVOR0wgMQorI2RlZmluZSBXVEZfVVNFX0dMWCAxCisjZGVmaW5lIFdURl9QTEFU
Rk9STV9YMTEgMQorI2RlZmluZSBXVEZfVVNFX0dSQVBISUNTX1NVUkZBQ0UgMQorI2Vsc2UKKyNk
ZWZpbmUgV1RGX1VTRV9FR0wgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChXVEZfVVNFX0NVUkwp
IHx8ICFXVEZfVVNFX0NVUkwKKyNkZWZpbmUgV1RGX1VTRV9TT1VQIDEKKyNlbmRpZgorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWIz
NjY1MjdiN2UwNTgxOTRjNTQxNzE1ZWY1Nzg4ZWQwMjc3NDliCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCkBAIC0wLDAgKzEsMjAzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisvKiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMuIEV4dGVuZHMgbWVkaWFD
b250cm9scy5jc3MgKi8KKworYXVkaW8geworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6
IDIwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFs
aWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CisgICAgYm90dG9tOiAwOworICAgIHdpZHRoOiAxMDAlOworICAgIHotaW5k
ZXg6IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgdGV4
dC1hbGlnbjogcmlnaHQ7Cit9CisKK3ZpZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBib3R0b206IDBweDsKK30KKworYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW11
dGUtYnV0dG9uOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4Owor
ICAgIGhlaWdodDogMjBweDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgei1pbmRleDog
MjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsK
KyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXBsYXktYnV0dG9uOworICAgIGRpc3BsYXk6
IC13ZWJraXQtYm94OworICAgIHdpZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xv
cjogaW5oZXJpdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUt
Y29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWlu
ZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY29udHJvbHMtYmFja2dyb3VuZDsK
KyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6
b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1w
YWNrOiBlbmQ7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICAtd2Via2l0LXVzZXItc2Vs
ZWN0OiBub25lOworICAgIGhlaWdodDogMjBweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LWN1cnJlbnQtdGltZS1kaXNwbGF5OworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgaGVpZ2h0OiAyMHB4OworCisgICAgcGFkZGlu
ZzogNHB4OworCisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTBweDsK
KworICAgIGNvbG9yOiBibGFjazsKKyAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOworICAgIHdv
cmQtc3BhY2luZzogbm9ybWFsOworICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CisgICAgdGV4dC10
cmFuc2Zvcm06IG5vbmU7CisgICAgdGV4dC1pbmRlbnQ6IDA7CisgICAgdGV4dC1zaGFkb3c6IG5v
bmU7CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsK
KyAgICBmb250LXdlaWdodDogbm9ybWFsOworICAgIGZvbnQtZmFtaWx5OiBzZXJpZjsKK30KKwor
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7CisgICAg
ZGlzcGxheTogbm9uZTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxp
bmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAw
cHggMnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0
aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKworYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyOworICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAyMHB4Owor
ICAgIGJvdHRvbTogMjBweDsKKyAgICB6LWluZGV4OiAxOworfQorCithdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1z
bGlkZXI7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFs
OworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAgICBjb2xvcjogaW5oZXJpdDsKKyAgICBtYXJnaW46
IGluaXRpYWw7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1i
dXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24gewor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vlay1iYWNrLWJ1dHRvbjsKKyAgICBkaXNw
bGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAg
Y29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWst
Zm9yd2FyZC1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2Fy
ZC1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vlay1mb3J3YXJkLWJ1
dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBo
ZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6
IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1mdWxsc2NyZWVuLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1mdWxs
c2NyZWVuLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBw
eDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAg
ICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXJld2luZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVy
aXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGlt
ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGlt
ZS1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5p
dGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9u
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1
dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS10b2dnbGUtY2xvc2VkLWNhcHRp
b25zLWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsK
KyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBi
b3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24geworICAgIC13ZWJraXQt
YXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbjsKKyAgICBkaXNwbGF5
OiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0
aWFsOworICAgIGNvbG9yOiBpbmhlcml0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMzZDcwN2RjYWVlZmMz
ZWJkMDVhY2NhNmYwNTBkMzQ3ODNmOWY2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKQEAgLTAsMCArMSwxMjkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisvKiBOaXhXZWJLaXQgbWVkaWEgY29udHJvbHMgZm9yIGZ1bGxzY3JlZW4uICovCisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJv
eDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gt
YWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0b206IDA7CisgICAgd2lkdGg6IDEwMCU7CisgICAgei1p
bmRleDogMDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIGhlaWdodDogMjBweDsKKyAgICB0
ZXh0LWFsaWduOiByaWdodDsKK30KKwordmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBu
b25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7Cisg
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAt
d2Via2l0LWJveDsKKyAgICB3aWR0aDogMjBweDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6
IGluaGVyaXQ7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNv
bnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jb250cm9scy1iYWNrZ3Jv
dW5kOworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDog
aG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQt
Ym94LXBhY2s6IGVuZDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIC13ZWJraXQtdXNl
ci1zZWxlY3Q6IG5vbmU7CisgICAgaGVpZ2h0OiAyMHB4OworfQorCit2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheTsKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0
OiBub25lOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBoZWlnaHQ6IDIwcHg7Cisg
ICAgcGFkZGluZzogNHB4OworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6
IDEwcHg7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRl
cjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOwor
ICAgIGhlaWdodDogMjBweDsKKyAgICBwYWRkaW5nOiAwcHggMnB4OworICAgIGJhY2tncm91bmQt
Y29sb3I6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAgIGNvbG9yOiBpbmhlcml0
OworICAgIG1hcmdpbjogaW5pdGlhbDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVk
aWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7CisgICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyOworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisK
K3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24geworICAgIGRp
c3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9y
d2FyZC1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQor
Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9uIHsKKyAgICBkaXNw
bGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8t
cmVhbHRpbWUtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgZGlz
cGxheTogbm9uZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvbml4L0V2ZW50
SGFuZGxlck5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJOaXgu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAxOTc0MTg4YjAxZGZlNjMyYjZkNWM3ZDA2MTgxZWQ0MTU3ZTRhN2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL25peC9FdmVudEhhbmRsZXJO
aXguY3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sg
UnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0
dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOSwyMDEwIFByb0ZV
U0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksMjAxMCBTYW1zdW5n
IEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUg
IlNjcm9sbGJhci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsK
KyNlbmRpZgorCitib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJv
YXJkRXZlbnQqKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZy
YW1lKG1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93
bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQp
Cit7CisgICAgUmVuZGVyT2JqZWN0KiB0YXJnZXQgPSBldmVudC50YXJnZXROb2RlKCkgPyBldmVu
dC50YXJnZXROb2RlKCktPnJlbmRlcmVyKCkgOiAwOworCisgICAgaWYgKCF0YXJnZXQgfHwgIXRh
cmdldC0+aXNXaWRnZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBh
c3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KHRhcmdl
dCktPndpZGdldCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURv
d25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KQoreworICAgIHJldHVy
biBwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKK30K
KworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
RXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKHdpZGdl
dCk7CisgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgp
LT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7Cit9CisKKyNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQorUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6Y3Jl
YXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAoreworICAgIHJldHVybiBDbGlwYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKCk7Cit9CisjZW5kaWYKKworYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMm
IG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+
aGFuZGxlTW91c2VQcmVzc0V2ZW50KG1ldi5ldmVudCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUsIEhpdFRlc3RSZXN1
bHQqIGhvdmVyZWROb2RlKQoreworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
TW91c2VNb3ZlRXZlbnQobWV2LmV2ZW50KCksIGhvdmVyZWROb2RlKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVudFRvU3ViZnJh
bWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCit7
CisgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudCht
ZXYuZXZlbnQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Vuc2lnbmVkIEV2ZW50SGFuZGxl
cjo6YWNjZXNzS2V5TW9kaWZpZXJzKCkKK3sKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6QWx0
S2V5OworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZi
NmVmMWI2NTJkNzI0Njk2YmZmZDY1YzM1MDU0MmVhY2JlZDMwYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVu
dEVHTC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDEz
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHTENvbnRleHRGcm9tQ3VycmVudEVHTC5o
IgorCisjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzT3duUHRyPEdMQ29udGV4dEZyb21DdXJyZW50RUdMPiBHTENvbnRleHRGcm9tQ3VycmVudEVH
TDo6Y3JlYXRlRnJvbUN1cnJlbnRHTENvbnRleHQoKQoreworICAgIGlmICghaW5pdGlhbGl6ZSgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdMQ29u
dGV4dEZyb21DdXJyZW50RUdMKCkpOworfQorCitHTENvbnRleHRGcm9tQ3VycmVudEVHTDo6R0xD
b250ZXh0RnJvbUN1cnJlbnRFR0woKQorICAgIDogbV9kaXNwbGF5KGVnbEdldEN1cnJlbnREaXNw
bGF5KCkpCisgICAgLCBtX3N1cmZhY2UoZWdsR2V0Q3VycmVudFN1cmZhY2UoRUdMX0RSQVcpKQor
ICAgICwgbV9jb250ZXh0KGVnbEdldEN1cnJlbnRDb250ZXh0KCkpCit7Cit9CisKK2Jvb2wgR0xD
b250ZXh0RnJvbUN1cnJlbnRFR0w6Om1ha2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgR0xDb250
ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9k
aXNwbGF5LCBtX3N1cmZhY2UsIG1fc3VyZmFjZSwgbV9jb250ZXh0KTsKK30KKworYm9vbCBHTENv
bnRleHRGcm9tQ3VycmVudEVHTDo6aW5pdGlhbGl6ZSgpCit7CisgICAgc3RhdGljIGJvb2wgaW5p
dGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKKyAgICBp
ZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIHN1Y2Nlc3MgPSBpbml0aWFsaXplT3BlbkdMU2hp
bXMoKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gc3Vj
Y2VzczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRF
R0wuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYjI4ZGM2NzlkZWZmODYzMDMzM2YxYjUwYjc0MTE5NjY4NjRlYmIy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWds
L0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR0xDb250ZXh0RnJvbUN1cnJlbnRFR0xfaAorI2Rl
ZmluZSBHTENvbnRleHRGcm9tQ3VycmVudEVHTF9oCisKKyNpbmNsdWRlICJHTENvbnRleHQuaCIK
KyNpbmNsdWRlIDxFR0wvZWdsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xD
b250ZXh0RnJvbUN1cnJlbnRFR0wgOiBwdWJsaWMgR0xDb250ZXh0IHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShHTENvbnRleHRGcm9tQ3VycmVudEVHTCk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NPd25QdHI8R0xDb250ZXh0RnJvbUN1cnJlbnRFR0w+IGNyZWF0ZUZyb21DdXJyZW50R0xD
b250ZXh0KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgT1ZFUlJJ
REU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBPVkVSUklERSB7IH0KKyAgICB2
aXJ0dWFsIEludFNpemUgZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpIE9WRVJSSURFIHsgcmV0dXJu
IEludFNpemUoKTsgfQorICAgIHZpcnR1YWwgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkg
T1ZFUlJJREUgeyByZXR1cm4gMDsgfQorCisgICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVm
YXVsdEZyYW1lYnVmZmVyKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1
YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSBPVkVSUklERSB7
IHJldHVybiB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIHdhaXROYXRpdmUoKSBPVkVSUklERSB7
IH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplKCk7CisKKyAgICBHTENv
bnRleHRGcm9tQ3VycmVudEVHTCgpOworCisgICAgRUdMRGlzcGxheSBtX2Rpc3BsYXk7CisgICAg
RUdMU3VyZmFjZSBtX3N1cmZhY2U7CisgICAgRUdMQ29udGV4dCBtX2NvbnRleHQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHTENvbnRleHRGcm9tQ3VycmVudEVH
TF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd05peC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmQ5ZGEyZjkwZDZiNjAzNzE0MzMwZjM5NmY0MTViMDg2NzNkMDY0MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZp
ZGVvV2luZG93Tml4LmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvV2luZG93LmgiCisKKyNpZiBVU0UoR1NUUkVBTUVSKSAm
JiAhZGVmaW5lZChHU1RfQVBJX1ZFUlNJT05fMSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitQbGF0Zm9ybVZpZGVvV2luZG93OjpQ
bGF0Zm9ybVZpZGVvV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitQbGF0
Zm9ybVZpZGVvV2luZG93Ojp+UGxhdGZvcm1WaWRlb1dpbmRvdygpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBQbGF0Zm9ybVZpZGVvV2luZG93OjpwcmVwYXJlRm9yT3Zlcmxh
eShHc3RNZXNzYWdlKikKK3sKK30KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpICYmICFkZWZp
bmVkKEdTVF9BUElfVkVSU0lPTl8xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbml4L0ljb25OaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbml4L0ljb25OaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkM2Y4ZDMyZTRkMzBiNDRkYzAzNjE3
ODk1NDljM2JhNzJiOWEyYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaXgvSWNvbk5peC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIklj
b24uaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJY29uOjp+SWNvbigpCit7
Cit9CisKK1Bhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNmUxM2I0MmI0
NjE4YjVjZWNhYzUwNjY0NWIwZTYzNjlhNTBiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaXgvSW1hZ2VOaXguY3BwCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQml0
bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQoreworfQorCitzdGF0aWMgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCkKK3sK
KyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsgLy8gRklYTUU6IGZhbGxiYWNrIGlt
YWdlPworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZVNo
YXJlZEJ1ZmZlcihjb25zdCBjaGFyKiBuYW1lKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKG1ha2VTdHJp
bmcoREFUQV9ESVIgIi93ZWJraXQtMS4wL2ltYWdlcy8iLCBuYW1lLCAiLnBuZyIpKTsKKyAgICBp
ZiAoYnVmZmVyKQorICAgICAgICByZXR1cm4gYnVmZmVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4g
bG9hZFJlc291cmNlU2hhcmVkQnVmZmVyRmFsbGJhY2soKTsKK30KKworUGFzc1JlZlB0cjxJbWFn
ZT4gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAg
UmVmUHRyPEJpdG1hcEltYWdlPiBpbWcgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CisgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKG5hbWUp
OworICAgIGltZy0+c2V0RGF0YShidWZmZXIucmVsZWFzZSgpLCB0cnVlKTsKKyAgICByZXR1cm4g
aW1nLnJlbGVhc2UoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbml4L0N1cnNvck5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvQ3Vyc29y
Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNzdlZjBjY2UzYmU5N2ZlYWFkNDhmNjc4NzA1NTZkYjhhMTE1
MmM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0N1cnNv
ck5peC5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGly
ayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgR2Vvcmdl
IFN0YWlrb3MgPHN0YWlrb3NAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBDaGFybGVz
IFNhbXVlbHMgPGNoYXJsZXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIg
SGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRk
ZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXJzb3IuaCIKKworI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3Vyc29yOjpDdXJzb3IoY29uc3Qg
Q3Vyc29yJiBvdGhlcikKKyAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCisgICAgLCBtX2ltYWdl
KG90aGVyLm1faW1hZ2UpCisgICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RTcG90KQorICAgICwg
bV9wbGF0Zm9ybUN1cnNvcihvdGhlci5tX3BsYXRmb3JtQ3Vyc29yKQoreworfQorCitDdXJzb3I6
On5DdXJzb3IoKQoreworfQorCitDdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNv
ciYgb3RoZXIpCit7CisgICAgbV90eXBlID0gb3RoZXIubV90eXBlOworICAgIG1faW1hZ2UgPSBv
dGhlci5tX2ltYWdlOworICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKKyAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gb3RoZXIubV9wbGF0Zm9ybUN1cnNvcjsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGN1cnNvclN0cmluZ3NbXSA9IHsKKyAgICAgICAg
ImN1cnNvci9wb2ludGVyIiwKKyAgICAgICAgImN1cnNvci9jcm9zcyIsCisgICAgICAgICJjdXJz
b3IvaGFuZCIsCisgICAgICAgICJjdXJzb3IvaV9iZWFtIiwKKyAgICAgICAgImN1cnNvci93YWl0
IiwKKyAgICAgICAgImN1cnNvci9oZWxwIiwKKyAgICAgICAgImN1cnNvci9lYXN0X3Jlc2l6ZSIs
CisgICAgICAgICJjdXJzb3Ivbm9ydGhfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9l
YXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfd2VzdF9yZXNpemUiLAorICAgICAg
ICAiY3Vyc29yL3NvdXRoX3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivc291dGhfZWFzdF9yZXNp
emUiLAorICAgICAgICAiY3Vyc29yL3NvdXRoX3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNv
ci93ZXN0X3Jlc2l6ZSIsCisgICAgICAgICJjdXJzb3Ivbm9ydGhfc291dGhfcmVzaXplIiwKKyAg
ICAgICAgImN1cnNvci9lYXN0X3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9l
YXN0X3NvdXRoX3dlc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF93ZXN0X3NvdXRo
X2Vhc3RfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9jb2x1bW5fcmVzaXplIiwKKyAgICAgICAg
ImN1cnNvci9yb3dfcmVzaXplIiwKKyAgICAgICAgImN1cnNvci9taWRkbGVfcGFubmluZyIsCisg
ICAgICAgICJjdXJzb3IvZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9wYW5u
aW5nIiwKKyAgICAgICAgImN1cnNvci9ub3J0aF9lYXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vy
c29yL25vcnRoX3dlc3RfcGFubmluZyIsCisgICAgICAgICJjdXJzb3Ivc291dGhfcGFubmluZyIs
CisgICAgICAgICJjdXJzb3Ivc291dGhfZWFzdF9wYW5uaW5nIiwKKyAgICAgICAgImN1cnNvci9z
b3V0aF93ZXN0X3Bhbm5pbmciLAorICAgICAgICAiY3Vyc29yL3dlc3RfcGFubmluZyIsCisgICAg
ICAgICJjdXJzb3IvbW92ZSIsCisgICAgICAgICJjdXJzb3IvdmVydGljYWxfdGV4dCIsCisgICAg
ICAgICJjdXJzb3IvY2VsbCIsCisgICAgICAgICJjdXJzb3IvY29udGV4dF9tZW51IiwKKyAgICAg
ICAgImN1cnNvci9hbGlhcyIsCisgICAgICAgICJjdXJzb3IvcHJvZ3Jlc3MiLAorICAgICAgICAi
Y3Vyc29yL25vX2Ryb3AiLAorICAgICAgICAiY3Vyc29yL2NvcHkiLAorICAgICAgICAiY3Vyc29y
L25vbmUiLAorICAgICAgICAiY3Vyc29yL25vdF9hbGxvd2VkIiwKKyAgICAgICAgImN1cnNvci96
b29tX2luIiwKKyAgICAgICAgImN1cnNvci96b29tX291dCIsCisgICAgICAgICJjdXJzb3IvZ3Jh
YiIsCisgICAgICAgICJjdXJzb3IvZ3JhYmJpbmciLAorICAgICAgICAiIn07IC8vIEZJWE1FOiBK
dXN0IHJldHVybiAiIiBmb3IgY3VzdG9tIHR5cGUuIFdlIGRvbid0IHN1cHBvcnQgaXQgbm93Lgor
ICAgIHJldHVybiBjdXJzb3JTdHJpbmdzW3R5cGVdOworfQorCit2b2lkIEN1cnNvcjo6ZW5zdXJl
UGxhdGZvcm1DdXJzb3IoKSBjb25zdAoreworICAgIGlmIChtX3BsYXRmb3JtQ3Vyc29yKQorICAg
ICAgICByZXR1cm47CisgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGN1cnNvclN0cmluZyhtX3R5cGUp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0Rh
dGFOaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZmZiNjk4NmFmYTRmMjFlYjAyNzU3N2I2ZjFhYzE2NDk3MTVjNzc1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNw
cApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitib29sIERyYWdEYXRhOjpjYW5TbWFydFJlcGxhY2UoKSBjb25zdAoreworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb2xvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJP
ZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBEcmFnRGF0YTo6YXNG
aWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdAoreworfQorCitib29sIERyYWdEYXRhOjpj
b250YWluc1BsYWluVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJp
bmcgRHJhZ0RhdGE6OmFzUGxhaW5UZXh0KEZyYW1lKikgY29uc3QKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK0NvbG9yIERyYWdEYXRhOjphc0NvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gQ29sb3IoKTsKK30KKworYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVu
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIERyYWdEYXRhOjpjb250
YWluc1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBEcmFnRGF0YTo6YXNVUkwoRnJhbWUqLCBGaWxlbmFt
ZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyopIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERyYWdEYXRhOjphc0ZyYWdtZW50
KEZyYW1lKiwgUGFzc1JlZlB0cjxSYW5nZT4sIGJvb2wsIGJvb2wmKSBjb25zdAoreworICAgIHJl
dHVybiAwOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
RHJhZ0ltYWdlTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9EcmFnSW1hZ2VO
aXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRkYWM4NjEyYzEzYmY1OWY1ZTU0MzkxNmQxMjg3ZmVmY2Y4YmYw
NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvRHJhZ0lt
YWdlTml4LmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIw
MTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgorCisjaW5jbHVk
ZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXpl
KERyYWdJbWFnZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRT
aXplKDAsIDApOworfQorCit2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0Zy
YWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VG
cm9tSW1hZ2UoSW1hZ2UqLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURy
YWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25peC9HYW1lcGFkc05peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U3N2M3Y2U3MTZkM2ZlMDczOGRkYjFl
OTNjMTU3OGEzMGQ1YmZkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9HYW1lcGFkc05peC5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdhbWVwYWRzLmgiCisKKyNpZiBFTkFCTEUo
R0FNRVBBRCkKKworI2luY2x1ZGUgIkdhbWVwYWRMaXN0LmgiCisjaW5jbHVkZSA8cHVibGljL1Bs
YXRmb3JtLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2FtZXBhZExpc3Q7CisK
K3ZvaWQgc2FtcGxlR2FtZXBhZHMoR2FtZXBhZExpc3QqIGludG8pCit7CisgICAgV2ViS2l0OjpX
ZWJHYW1lcGFkcyBnYW1lcGFkczsKKworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+
c2FtcGxlR2FtZXBhZHMoZ2FtZXBhZHMpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IFdlYktpdDo6V2ViR2FtZXBhZHM6Oml0ZW1zTGVuZ3RoQ2FwOyArK2kpIHsKKyAgICAgICAgV2Vi
S2l0OjpXZWJHYW1lcGFkJiB3ZWJHYW1lcGFkID0gZ2FtZXBhZHMuaXRlbXNbaV07CisgICAgICAg
IGlmIChpIDwgZ2FtZXBhZHMubGVuZ3RoICYmIHdlYkdhbWVwYWQuY29ubmVjdGVkKSB7CisgICAg
ICAgICAgICBSZWZQdHI8R2FtZXBhZD4gZ2FtZXBhZCA9IGludG8tPml0ZW0oaSk7CisgICAgICAg
ICAgICBpZiAoIWdhbWVwYWQpCisgICAgICAgICAgICAgICAgZ2FtZXBhZCA9IEdhbWVwYWQ6OmNy
ZWF0ZSgpOworICAgICAgICAgICAgZ2FtZXBhZC0+aWQod2ViR2FtZXBhZC5pZCk7CisgICAgICAg
ICAgICBnYW1lcGFkLT5pbmRleChpKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPnRpbWVzdGFtcCh3
ZWJHYW1lcGFkLnRpbWVzdGFtcCk7CisgICAgICAgICAgICBnYW1lcGFkLT5heGVzKHdlYkdhbWVw
YWQuYXhlc0xlbmd0aCwgd2ViR2FtZXBhZC5heGVzKTsKKyAgICAgICAgICAgIGdhbWVwYWQtPmJ1
dHRvbnMod2ViR2FtZXBhZC5idXR0b25zTGVuZ3RoLCB3ZWJHYW1lcGFkLmJ1dHRvbnMpOworICAg
ICAgICAgICAgaW50by0+c2V0KGksIGdhbWVwYWQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIGludG8tPnNldChpLCAwKTsKKyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWNiYTQwZDhm
OWYyMjIwNDk3YjZiNTgwM2JjODYzNmMzYTRkZTg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcApAQCAtMCwwICsxLDYyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8g
Tm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9O
IGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkxhbmd1YWdlLmgiCisKKyNpbmNsdWRlIDxsb2NhbGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKK3sKKyAgICBjaGFyKiBs
b2NhbGVEZWZhdWx0ID0gc2V0bG9jYWxlKExDX0NUWVBFLCAwKTsKKworICAgIGlmICghbG9jYWxl
RGVmYXVsdCkKKyAgICAgICAgcmV0dXJuIEFTQ0lJU3RyaW5nKCJjIik7CisKKyAgICBTdHJpbmcg
bG9jYWxlID0gU3RyaW5nKGxvY2FsZURlZmF1bHQpOworICAgIGxvY2FsZS5yZXBsYWNlKCdfJywg
Jy0nKTsKKyAgICBzaXplX3QgcG9zaXRpb24gPSBsb2NhbGUuZmluZCgnLicpOworICAgIGlmIChw
b3NpdGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgbG9jYWxlID0gbG9jYWxlLmxlZnQocG9zaXRp
b24pOworCisgICAgcmV0dXJuIGxvY2FsZTsKK30KKworVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOworICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHBsYXRmb3Jt
TGFuZ3VhZ2UoKSk7CisgICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdz
Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xM2VjM2I1ZWQwZTc3MDg1ZjMzNjI1NWUxOWViMDUwYjFhMmU5YWJj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L0xvY2FsaXpl
ZFN0cmluZ3NOaXguY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lP
TiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1N0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVuKGtleSkpOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZTI1MTRjNmJkM2I1N2FiZTViZGMzNjhhN2YyYzI4MTQ4ZmM0MzhmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVz
LmNwcApAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5n
IEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5peEtleWJvYXJkVXRpbGl0aWVz
LmgiCisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2luZG93c0tleWJv
YXJkQ29kZXMuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IEtleU1hcDsK
K3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGludD4gV2luZG93c0tleU1hcDsKK3R5cGVkZWYgSGFz
aE1hcDxpbnQsIGNvbnN0IGNoYXIqPiBLZXlDb21tYW5kTWFwOworCitzdGF0aWMgS2V5TWFwJiBr
ZXlNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5TWFwLCBrZXlNYXAsICgpKTsK
KyAgICByZXR1cm4ga2V5TWFwOworfQorCitzdGF0aWMgV2luZG93c0tleU1hcCYgd2luZG93c0tl
eU1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXaW5kb3dzS2V5TWFwLCB3aW5kb3dz
S2V5TWFwLCAoKSk7CisgICAgcmV0dXJuIHdpbmRvd3NLZXlNYXA7Cit9CisKK3N0YXRpYyBLZXlD
b21tYW5kTWFwJiBrZXlEb3duQ29tbWFuZHNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoS2V5Q29tbWFuZE1hcCwga2V5RG93bkNvbW1hbmRzTWFwLCAoKSk7CisgICAgcmV0dXJuIGtl
eURvd25Db21tYW5kc01hcDsKK30KKworc3RhdGljIEtleUNvbW1hbmRNYXAmIGtleVByZXNzQ29t
bWFuZHNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoS2V5Q29tbWFuZE1hcCwga2V5
UHJlc3NDb21tYW5kc01hcCwgKCkpOworICAgIHJldHVybiBrZXlQcmVzc0NvbW1hbmRzTWFwOwor
fQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkQ2hhcmFjdGVyc1RvS2V5TWFwKGNvbnN0IGNoYXIg
ZnJvbSwgY29uc3QgY2hhciB0bykKK3sKKyAgICBmb3IgKGNoYXIgYyA9IGZyb207IGMgPD0gdG87
IGMrKykKKyAgICAgICAga2V5TWFwKCkuc2V0KFN0cmluZygmYywgMSksIFN0cmluZzo6Zm9ybWF0
KCJVKyUwNFgiLCBjKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzVG9X
aW5LZXlNYXAoY29uc3QgY2hhciBmcm9tLCBjb25zdCBjaGFyIHRvLCBjb25zdCBpbnQgYmFzZUNv
ZGUpCit7CisgICAgaW50IGkgPSAwOworICAgIGZvciAoY2hhciBjID0gZnJvbTsgYyA8PSB0bzsg
YysrLCBpKyspCisgICAgICAgIHdpbmRvd3NLZXlNYXAoKS5zZXQoU3RyaW5nKCZjLCAxKSwgYmFz
ZUNvZGUgKyBpKTsKK30KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN0cmxLZXkgPSAxIDw8IDA7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ID0gMSA8PCAxOworc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOworCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsKKyAgICB1
bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBj
aGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2lnbmVkIGNo
YXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
fTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0geworICAg
IHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBTaGlmdEtleSwgICAg
ICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfTEVGVCwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZExlZnQiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwg
U2hpZnRLZXksICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUklHSFQsICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUmlnaHQiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBTaGlmdEtl
eSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBDdHJs
S2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAg
ICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVXAiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFn
ZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwg
ICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3Zl
RG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVY
VCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZURvd25BbmRNb2RpZnlTZWxlY3Rpb24i
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlUGFnZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
TkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAg
ICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfSE9NRSwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRN
b2RpZnlTZWxlY3Rpb24iICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAgICAgICAg
ICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfSE9NRSwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3Vt
ZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAg
ICAgICAgICAgIk1vdmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0VuZE9mTGluZUFu
ZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXks
ICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVUb0VuZE9mRG9j
dW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisKKyAgICB7IFZLX0JBQ0ssICAgMCwg
ICAgICAgICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFj
a3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwg
MCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRl
V29yZEJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVU
RSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKworICAgIHsgJ0InLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJU
b2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0kn
LCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorCisgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAgICAgICAg
ICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAg
ICAgICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIDAsICAgICAgICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19SRVRVUk4sIEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSwg
ICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgS2V5
UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAgICAg
ICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgMCwgICAgICAgICAg
ICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5LCAgICAgICAg
ICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyB2b2lkIGNyZWF0ZUtleURvd25D
b21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5H
VEgoa2V5RG93bkVudHJpZXMpOyArK2kpCisgICAgICAgIGtleURvd25Db21tYW5kc01hcCgpLnNl
dChrZXlEb3duRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlEb3duRW50cmllc1tpXS52
aXJ0dWFsS2V5LCBrZXlEb3duRW50cmllc1tpXS5uYW1lKTsKK30KKworc3RhdGljIHZvaWQgY3Jl
YXRlS2V5UHJlc3NDb21tYW5kTWFwKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoa2V5UHJlc3NFbnRyaWVzKTsgKytpKQorICAgICAgICBrZXlQcmVzc0Nv
bW1hbmRzTWFwKCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQ
cmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKK30KKwor
Y29uc3QgY2hhciogZ2V0S2V5RG93bkNvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2
ZW50KQoreworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5zaGlm
dEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LT5h
bHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQtPmN0
cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQgbWFwS2V5
ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQtPmtleUNvZGUoKTsKKyAgICBpZiAoIW1hcEtleSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFwKCkuaXNFbXB0
eSgpKQorICAgICAgICBjcmVhdGVLZXlEb3duQ29tbWFuZE1hcCgpOworCisgICAgcmV0dXJuIGtl
eURvd25Db21tYW5kc01hcCgpLmdldChtYXBLZXkpOworfQorCitjb25zdCBjaGFyKiBnZXRLZXlQ
cmVzc0NvbW1hbmROYW1lKGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIHVuc2ln
bmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICBt
b2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAg
bW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAg
bW9kaWZpZXJzIHw9IEN0cmxLZXk7CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2
IHwgZXZlbnQtPmNoYXJDb2RlKCk7CisgICAgaWYgKCFtYXBLZXkpCisgICAgICAgIHJldHVybiAw
OworCisgICAgaWYgKGtleVByZXNzQ29tbWFuZHNNYXAoKS5pc0VtcHR5KCkpCisgICAgICAgIGNy
ZWF0ZUtleVByZXNzQ29tbWFuZE1hcCgpOworCisgICAgcmV0dXJuIGtleVByZXNzQ29tbWFuZHNN
YXAoKS5nZXQobWFwS2V5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZTJjYWU4NjAzYjAzM2VjMzQxYmY3MTVlOWQxODg4Y2IyNDY0OTE2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVz
LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBOaXhLZXlib2FyZFV0aWxpdGllc19oCisjZGVmaW5lIE5peEtleWJvYXJkVXRp
bGl0aWVzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLZXlib2FyZEV2ZW50Owor
Citjb25zdCBjaGFyKiBnZXRLZXlEb3duQ29tbWFuZE5hbWUoY29uc3QgS2V5Ym9hcmRFdmVudCop
OworY29uc3QgY2hhciogZ2V0S2V5UHJlc3NDb21tYW5kTmFtZShjb25zdCBLZXlib2FyZEV2ZW50
Kik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5peEtleWJvYXJkVXRp
bGl0aWVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJv
YXJkTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mODNjZGY3NGU2N2FiYzJmYTgxZTA5YWY2MDY3MjI2ZWQ4NTlhZmRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmRO
aXguY3BwCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwNyBIb2xn
ZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcworICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bh
c3RlYm9hcmQqIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkKK3sKKyAgICBzdGF0aWMg
UGFzdGVib2FyZCogcGFzdGVib2FyZCA9IG5ldyBQYXN0ZWJvYXJkKCk7CisgICAgcmV0dXJuIHBh
c3RlYm9hcmQ7Cit9CisKK1Bhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3Ry
aW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sLCBGcmFtZSosIFNo
b3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZUltYWdlKE5vZGUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlQ2xp
cGJvYXJkKENsaXBib2FyZCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQ
YXN0ZWJvYXJkOjpjbGVhcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBQ
YXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3Rl
Ym9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwg
Ym9vbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworU3Ry
aW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFBhc3RlYm9hcmQpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsK
K30KKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9y
Q29weUFuZFBhc3RlKCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKQoreworICAgIHJldHVybiBjcmVh
dGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKyNlbmRpZgorCitib29sIFBhc3RlYm9hcmQ6Omhhc0Rh
dGEoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworYm9v
bCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitMaXN0SGFz
aFNldDxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQordm9pZCBQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQ
b2ludCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKyNlbmRpZgorCit2b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMGVmNmMzNDBj
OTgwM2FmZWFmYWZmMDE3N2E2NzIzYTMxYWE4ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcApAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IERpZWdvIEhpZGFsZ28g
Qy4gR29uemFsZXoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRl
ZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCkKK3sK
KyAgICBBU1NFUlQobV90eXBlID09IEtleURvd24pOworICAgIG1fdHlwZSA9IHR5cGU7CisKKyAg
ICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgICAgIG1fdGV4
dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7CisgICAgICAgIG1f
d2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50Ojpn
ZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9v
bCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
c2hpZnRLZXkgPSBmYWxzZTsKKyAgICBjdHJsS2V5ID0gZmFsc2U7CisgICAgYWx0S2V5ID0gZmFs
c2U7CisgICAgbWV0YUtleSA9IGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmZiM2FjM2Vk
MjE0MzBhZDFlYWEyZWJlNDBiOTZmOGY0YTUxMDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcApAQCAtMCwwICsxLDg0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldpZGdldC5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5W
ZXJ0aWNhbERQSShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK2ludCBzY3JlZW5EZXB0aChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRn
ZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wg
c2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIDEwMjQsIDc2
OCk7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCogd2lkZ2V0KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHNjcmVlblJlY3Qod2lkZ2V0KTsK
K30KKwordm9pZCBzY3JlZW5Db2xvclByb2ZpbGUoQ29sb3JQcm9maWxlJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uaXgvU291bmROaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZTFiYmVmZmU0OWMwM2RmM2QxMGVkMGY0ZTU2NDYyOGY4YWU3MjVh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1NvdW5kTml4
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbml4L1dpZGdldE5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
aXgvV2lkZ2V0Tml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOGQzMDk3M2QyMDA1NDYyYjJlOGNmMzM2ZmEy
MmIzMGZkZjU1NGZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bml4L1dpZGdldE5peC5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKworI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0
KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKKyAgICA6IG1fcGFyZW50KDApCisgICAgLCBtX3dpZGdl
dCgwKQorICAgICwgbV9zZWxmVmlzaWJsZShmYWxzZSkKKyAgICAsIG1fcGFyZW50VmlzaWJsZShm
YWxzZSkKKyAgICAsIG1fZnJhbWUoMCwgMCwgMCwgMCkKK3sKKyAgICBpbml0KHdpZGdldCk7Cit9
CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJUKCFwYXJlbnQoKSk7Cit9CisKK0lu
dFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOwor
fQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCit7Cisg
ICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgV2lkZ2V0OjpmcmFtZVJlY3RzQ2hhbmdlZCgpOworfQor
Cit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkKK3sKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1
cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKK3sKKyAgICBTY3JvbGxWaWV3KiB2aWV3ID0gcm9v
dCgpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOworICAgIHZpZXctPmhvc3RXaW5k
b3coKS0+c2V0Q3Vyc29yKGN1cnNvcik7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lk
Z2V0OjpzZXRJc1NlbGVjdGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2Zh
NzczODhkZjdjNmFmZDcxYWQxMjY3ODY5ZWYwNTA0YjQ2NmVlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVU5peC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0y
MDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciogY3VycmVudFNl
YXJjaExvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gIiI7Cit9CisKK2NvbnN0IGNoYXIqIGN1cnJl
bnRUZXh0QnJlYWtMb2NhbGVJRCgpCit7CisgICAgcmV0dXJuICJlbl91cyI7Cit9CisKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>