<?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>69027</bug_id>
          
          <creation_ts>2011-09-28 13:54:34 -0700</creation_ts>
          <short_desc>[Chromium] Add layout tests for WebPlugin compositor path</short_desc>
          <delta_ts>2011-10-17 17:06:48 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alok Priyadarshi">alokp</reporter>
          <assigned_to name="Alok Priyadarshi">alokp</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474989</commentid>
    <comment_count>0</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-09-28 13:54:34 -0700</bug_when>
    <thetext>crbug.com/93809</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475000</commentid>
    <comment_count>1</comment_count>
      <attachid>109073</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-09-28 14:01:41 -0700</bug_when>
    <thetext>Created attachment 109073
proposed patch

As suggested I created a fake pepper plugin emulating the pepper-3d compositor path. The fake plugin just renders a translucent green texture that gets composited with two other translucent red and blue boxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475001</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-28 14:06:11 -0700</bug_when>
    <thetext>Attachment 109073 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Tools/DumpRenderTree/chromium/TestPepperPlugin.cpp:98:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestPepperPlugin.h:79:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475024</commentid>
    <comment_count>3</comment_count>
      <attachid>109073</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-28 14:34:24 -0700</bug_when>
    <thetext>Comment on attachment 109073
proposed patch

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

&gt; Tools/DumpRenderTree/chromium/TestPepperPlugin.cpp:43
&gt; +const WebString TestPepperPlugin::kMimeType =

since this plugin is not actually using pepper, I think it probably shouldn&apos;t refer to pepper.

this is just a WebPlugin implementation that can be used for testing plugin support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475681</commentid>
    <comment_count>4</comment_count>
      <attachid>109204</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-09-29 14:39:04 -0700</bug_when>
    <thetext>Created attachment 109204
proposed patch

Used &quot;webplugin&quot; instead of &quot;pepper&quot;. Added comment about how it can be extended in future to test various aspects of testing WebPlugin. Made the scene rendered into the plugin more interesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475683</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 14:42:21 -0700</bug_when>
    <thetext>Attachment 109204 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Tools/DumpRenderTree/chromium/TestWebPlugin.h:74:  This { should be at the end of the previous line  [whitespace/braces] [4]
Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:192:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475709</commentid>
    <comment_count>6</comment_count>
      <attachid>109210</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-09-29 15:04:24 -0700</bug_when>
    <thetext>Created attachment 109210
proposed patch

fixed style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477066</commentid>
    <comment_count>7</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-03 10:40:52 -0700</bug_when>
    <thetext>ping!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477436</commentid>
    <comment_count>8</comment_count>
      <attachid>109210</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-03 21:25:42 -0700</bug_when>
    <thetext>Comment on attachment 109210
proposed patch

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

Good start.  I&apos;d really like to see a repaint test as well to make sure that the paths for a WebPlugin requesting a new frame and the compositor picking up the correct texture contents are exercised.

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:16
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.

wrong license header - we use a 2-clause for new files

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:42
&gt; +// GLenum values copied from gl2.h.

why don&apos;t you use the ones from GraphicsContext3D.h ?

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:58
&gt; +static unsigned loadShader(unsigned type, const char* src, WebGraphicsContext3D* context)

please use an actual string type here (such as WTF::String) instead of a c-style string. also, in webkit we typically don&apos;t abbreviate words like &apos;source&apos;

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:75
&gt; +static unsigned loadProgram(const char* vSrc, const char* fSrc, WebGraphicsContext3D* context)

same here - please use a real string type and don&apos;t abbreviate the parameter names

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:77
&gt; +    unsigned vShader = loadShader(GL_VERTEX_SHADER, vSrc, context);

vShader -&gt; vertexShader

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:78
&gt; +    unsigned fShader = loadShader(GL_FRAGMENT_SHADER, fSrc, context);

fShader -&gt; fragmentShader

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:100
&gt; +// static

we don&apos;t typically use this sort of comment in webkit

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:102
&gt; +const WebString TestWebPlugin::kMimeType =
&gt; +        WebString::fromUTF8(&quot;application/x-webkit-test-webplugin&quot;);

i know this is just test code but static initializers are still bad. can you just expose a static const getter for this instead of constructing an instance of WebString statically?

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:110
&gt; +    memset(&amp;m_scene, 0, sizeof(m_scene));

gross! give the struct a constructor and initialize the fields if you want to zero-initialize it

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:150
&gt; +void TestWebPlugin::updateGeometry(
&gt; +        const WebRect&amp; frameRect,

this line wrapping is weird. can you put frameRect on the first line and line up the the rest with the opening ( ?

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:187
&gt; +    float vVertices[] = { 0.0f,  0.8f, 0.0f, 

please don&apos;t abbreviate. i&apos;m not sure what this is supposed to mean (vertexVertices ?)

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:8
&gt; + *     * Redistributions of source code must retain the above copyright

wrong header here too

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:43
&gt; +// This behavior can be sutomized in future using WebPluginParams.

typo (i think?) &quot;sutomized&quot;

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:46
&gt; +    static const WebKit::WebString kMimeType;

could this be a function instead?

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:49
&gt; +    ~TestWebPlugin();

virtual

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:57
&gt; +    virtual void updateGeometry(
&gt; +            const WebKit::WebRect&amp; frameRect,

weird line wrapping here too

&gt; LayoutTests/platform/chromium/compositing/plugins/webplugin-alpha.html:34
&gt; +&lt;body&gt;
&gt; +  &lt;div id=&quot;box1&quot;&gt;&lt;/div&gt;
&gt; +  &lt;embed id=&quot;plugin&quot; type=&quot;application/x-webkit-test-webplugin&quot;&gt;
&gt; +  &lt;div id=&quot;box2&quot;&gt;&lt;/div&gt;

could you describe what we&apos;re supposed to see here in an HTML comment, so that if the output changes people can tell if the test is passing or not?

could you also construct a test case where it&apos;s easier to tell if the test is in fact passing or not? perhaps have a red square with a green plugin on top so if the plugin fails to display the red square is visible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479405</commentid>
    <comment_count>9</comment_count>
      <attachid>109210</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-06 13:04:51 -0700</bug_when>
    <thetext>Comment on attachment 109210
proposed patch

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

The plugin now draws a scene that can be customized using plugin parameters. I used the parameters to write three separate tests.

I think &quot;repaint&quot; is already being tested. Remember that plugin is not drawing in response to WebPlugin::paint(). Instead it is painting in response to resize event and asking the browser to repaint the backing texture.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:16
&gt;&gt; + * this software without specific prior written permission.
&gt; 
&gt; wrong license header - we use a 2-clause for new files

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:42
&gt;&gt; +// GLenum values copied from gl2.h.
&gt; 
&gt; why don&apos;t you use the ones from GraphicsContext3D.h ?

Are we allowed to directly include anything in WebCore? I did not want to add unnecessary dependency. These enum values will never change. Ideally WebGraphicsContext3D.h should define these.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:58
&gt;&gt; +static unsigned loadShader(unsigned type, const char* src, WebGraphicsContext3D* context)
&gt; 
&gt; please use an actual string type here (such as WTF::String) instead of a c-style string. also, in webkit we typically don&apos;t abbreviate words like &apos;source&apos;

I am using the same type as expected by WebGraphicsContext3D::shaderSource(). Removed abbreviation.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:75
&gt;&gt; +static unsigned loadProgram(const char* vSrc, const char* fSrc, WebGraphicsContext3D* context)
&gt; 
&gt; same here - please use a real string type and don&apos;t abbreviate the parameter names

I am using the same type as expected by WebGraphicsContext3D::shaderSource().

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:77
&gt;&gt; +    unsigned vShader = loadShader(GL_VERTEX_SHADER, vSrc, context);
&gt; 
&gt; vShader -&gt; vertexShader

done.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:78
&gt;&gt; +    unsigned fShader = loadShader(GL_FRAGMENT_SHADER, fSrc, context);
&gt; 
&gt; fShader -&gt; fragmentShader

done.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:100
&gt;&gt; +// static
&gt; 
&gt; we don&apos;t typically use this sort of comment in webkit

removed

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:102
&gt;&gt; +        WebString::fromUTF8(&quot;application/x-webkit-test-webplugin&quot;);
&gt; 
&gt; i know this is just test code but static initializers are still bad. can you just expose a static const getter for this instead of constructing an instance of WebString statically?

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:110
&gt;&gt; +    memset(&amp;m_scene, 0, sizeof(m_scene));
&gt; 
&gt; gross! give the struct a constructor and initialize the fields if you want to zero-initialize it

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:150
&gt;&gt; +        const WebRect&amp; frameRect,
&gt; 
&gt; this line wrapping is weird. can you put frameRect on the first line and line up the the rest with the opening ( ?

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:187
&gt;&gt; +    float vVertices[] = { 0.0f,  0.8f, 0.0f, 
&gt; 
&gt; please don&apos;t abbreviate. i&apos;m not sure what this is supposed to mean (vertexVertices ?)

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:8
&gt;&gt; + *     * Redistributions of source code must retain the above copyright
&gt; 
&gt; wrong header here too

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:43
&gt;&gt; +// This behavior can be sutomized in future using WebPluginParams.
&gt; 
&gt; typo (i think?) &quot;sutomized&quot;

Added new comment.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:46
&gt;&gt; +    static const WebKit::WebString kMimeType;
&gt; 
&gt; could this be a function instead?

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:49
&gt;&gt; +    ~TestWebPlugin();
&gt; 
&gt; virtual

done

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.h:57
&gt;&gt; +            const WebKit::WebRect&amp; frameRect,
&gt; 
&gt; weird line wrapping here too

done

&gt;&gt; LayoutTests/platform/chromium/compositing/plugins/webplugin-alpha.html:34
&gt;&gt; +  &lt;div id=&quot;box2&quot;&gt;&lt;/div&gt;
&gt; 
&gt; could you describe what we&apos;re supposed to see here in an HTML comment, so that if the output changes people can tell if the test is passing or not?
&gt; 
&gt; could you also construct a test case where it&apos;s easier to tell if the test is in fact passing or not? perhaps have a red square with a green plugin on top so if the plugin fails to display the red square is visible?

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479408</commentid>
    <comment_count>10</comment_count>
      <attachid>110000</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-06 13:08:09 -0700</bug_when>
    <thetext>Created attachment 110000
proposed patch

PTAL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479411</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 13:11:53 -0700</bug_when>
    <thetext>Attachment 110000 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Tools/DumpRenderTree/chromium/TestWebPlugin.h:103:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/DumpRenderTree/chromium/TestWebPlugin.h:104:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/DumpRenderTree/chromium/TestWebPlugin.h:105:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:57:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:59:  One line control clauses should not use braces.  [whitespace/braces] [4]
Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 7 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479422</commentid>
    <comment_count>12</comment_count>
      <attachid>110006</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-06 13:39:08 -0700</bug_when>
    <thetext>Created attachment 110006
proposed patch

resolved style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479426</commentid>
    <comment_count>13</comment_count>
      <attachid>110000</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-06 13:42:19 -0700</bug_when>
    <thetext>Comment on attachment 110000
proposed patch

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

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:281
&gt; +unsigned TestWebPlugin::loadShader(unsigned type, const WGC3Dchar* source)

my point wasn&apos;t that const char* was worse than const WGC3Dchar*, but that we should use c++ string types instead of c-style strings when possible.  So in this instance, pass the strings around as WTF::String (or maybe WebString, I&apos;m not sure which is more commonly used in Tools/DumpRenderTree/chromium) until the point where you call into the API requiring a c-style string.

&gt; LayoutTests/platform/chromium/compositing/plugins/webplugin-reflection.html:14
&gt; +&lt;p&gt;You should see a blue triangle on green background and its reflection.&lt;/p&gt;

Don&apos;t put the text in the actual test - this will make the pixel results different on every platform!  Instead, put the descriptive text in an HTML comment so that people looking at a potential test failure can see what the intention is without having platform-specific results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479430</commentid>
    <comment_count>14</comment_count>
      <attachid>110006</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-06 13:43:55 -0700</bug_when>
    <thetext>Comment on attachment 110006
proposed patch

My comments from the previous patch still apply.  This test will make the bots to red as is because there&apos;s text in the pixel results but there aren&apos;t platform-specific expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479459</commentid>
    <comment_count>15</comment_count>
      <attachid>110000</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-06 14:00:18 -0700</bug_when>
    <thetext>Comment on attachment 110000
proposed patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:281
&gt;&gt; +unsigned TestWebPlugin::loadShader(unsigned type, const WGC3Dchar* source)
&gt; 
&gt; my point wasn&apos;t that const char* was worse than const WGC3Dchar*, but that we should use c++ string types instead of c-style strings when possible.  So in this instance, pass the strings around as WTF::String (or maybe WebString, I&apos;m not sure which is more commonly used in Tools/DumpRenderTree/chromium) until the point where you call into the API requiring a c-style string.

I could certainly use WebKit string classes but I do not understand why it is important. These shader strings:
- can only be ASCII
- are not stored anywhere
- only used in private functions

&gt;&gt; LayoutTests/platform/chromium/compositing/plugins/webplugin-reflection.html:14
&gt;&gt; +&lt;p&gt;You should see a blue triangle on green background and its reflection.&lt;/p&gt;
&gt; 
&gt; Don&apos;t put the text in the actual test - this will make the pixel results different on every platform!  Instead, put the descriptive text in an HTML comment so that people looking at a potential test failure can see what the intention is without having platform-specific results.

will do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479461</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-06 14:02:15 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 110000 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110000&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:281
&gt; &gt;&gt; +unsigned TestWebPlugin::loadShader(unsigned type, const WGC3Dchar* source)
&gt; &gt; 
&gt; &gt; my point wasn&apos;t that const char* was worse than const WGC3Dchar*, but that we should use c++ string types instead of c-style strings when possible.  So in this instance, pass the strings around as WTF::String (or maybe WebString, I&apos;m not sure which is more commonly used in Tools/DumpRenderTree/chromium) until the point where you call into the API requiring a c-style string.
&gt; 
&gt; I could certainly use WebKit string classes but I do not understand why it is important. These shader strings:
&gt; - can only be ASCII
&gt; - are not stored anywhere
&gt; - only used in private functions
&gt; 

These things are all true today.  Will they always be? Is there any drawback to using a more future-proof type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479475</commentid>
    <comment_count>17</comment_count>
      <attachid>110019</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-06 14:16:16 -0700</bug_when>
    <thetext>Created attachment 110019
proposed patch

- Replaced plain char* with WebKit::WebCString
- Added test description as html comment instead of html text</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479489</commentid>
    <comment_count>18</comment_count>
      <attachid>110019</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-06 14:30:29 -0700</bug_when>
    <thetext>Comment on attachment 110019
proposed patch

OK great, R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479512</commentid>
    <comment_count>19</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-06 14:50:41 -0700</bug_when>
    <thetext>Darin: Any further issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479549</commentid>
    <comment_count>20</comment_count>
      <attachid>110019</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 15:25:32 -0700</bug_when>
    <thetext>Comment on attachment 110019
proposed patch

Attachment 110019 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9977372</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480055</commentid>
    <comment_count>21</comment_count>
      <attachid>110154</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-10-07 09:07:12 -0700</bug_when>
    <thetext>Created attachment 110154
proposed patch

Fixed compile errors on linux. Used WTF::CString instead of WebKit::WebCString. Apparently gcc cannot convert a char* -&gt; std::string -&gt; WebCString. WebString also does not have constructor that takes char*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484552</commentid>
    <comment_count>22</comment_count>
      <attachid>110019</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-15 01:51:26 -0700</bug_when>
    <thetext>Comment on attachment 110019
proposed patch

Cleared James Robinson&apos;s review+ from obsolete attachment 110019 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485646</commentid>
    <comment_count>23</comment_count>
      <attachid>110154</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 17:06:42 -0700</bug_when>
    <thetext>Comment on attachment 110154
proposed patch

Clearing flags on attachment: 110154

Committed r97678: &lt;http://trac.webkit.org/changeset/97678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485647</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 17:06:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109073</attachid>
            <date>2011-09-28 14:01:41 -0700</date>
            <delta_ts>2011-09-29 14:39:04 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>pepper3d.patch</filename>
            <type>text/plain</type>
            <size>19551</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjI1OCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDktMjggIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgUGVwcGVyIDNEIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTA5LTI4ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gU2VwZXJhdGUgR1RLIHNwZWNpZmlj
IEd5cCBydWxlcyBmcm9tIFgxMSBHeXAgcnVsZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCShyZXZpc2lvbiA5
NjExNSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lcklt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNyArMjY2LDcgQEAgYm9vbCBXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpwcmludFBhZ2UoaQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6
OnByaW50RW5kKCkKIHsKLSAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnByaW50RW5kKCk7CisgICAg
bV93ZWJQbHVnaW4tPnByaW50RW5kKCk7CiB9CiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6Y29weSgpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA5NjI1OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTA5LTI4ICBBbG9rIFByaXlhZGFyc2hpICA8YWxva3BA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdHMgZm9yIFBlcHBlciAzRCBj
b21wb3NpdG9yIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY5MDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RQZXBwZXJQbHVnaW4uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RQZXBwZXJQbHVnaW46OlRlc3RQZXBwZXJQbHVnaW4pOgorICAgICAgICAoVGVzdFBl
cHBlclBsdWdpbjo6flRlc3RQZXBwZXJQbHVnaW4pOgorICAgICAgICAoVGVzdFBlcHBlclBsdWdp
bjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0UGVwcGVyUGx1Z2luOjpkZXN0cm95KToKKyAg
ICAgICAgKFRlc3RQZXBwZXJQbHVnaW46OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UGVwcGVyUGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAo
VGVzdFBlcHBlclBsdWdpbjo6c2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgIChUZXN0UGVwcGVy
UGx1Z2luOjpwYWludCk6CisgICAgICAgIChUZXN0UGVwcGVyUGx1Z2luOjp1cGRhdGVGb2N1cyk6
CisgICAgICAgIChUZXN0UGVwcGVyUGx1Z2luOjp1cGRhdGVWaXNpYmlsaXR5KToKKyAgICAgICAg
KFRlc3RQZXBwZXJQbHVnaW46OmFjY2VwdHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0UGVw
cGVyUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKFRlc3RQZXBwZXJQbHVnaW46
OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChUZXN0UGVwcGVyUGx1Z2luOjpkaWRSZWNl
aXZlRGF0YSk6CisgICAgICAgIChUZXN0UGVwcGVyUGx1Z2luOjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKFRlc3RQZXBwZXJQbHVnaW46OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFRl
c3RQZXBwZXJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmdGcmFtZVJlcXVlc3QpOgorICAgICAgICAo
VGVzdFBlcHBlclBsdWdpbjo6ZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3QpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXdIb3N0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDExLTA5LTI3ICBEaW1pdHJpIEdsYXprb3YgIDxk
Z2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyOTU1NzMpOiBDcmFz
aCB3aGVuIGxvYWRpbmcgU1ZHIGRvY3VtZW50cyBpbiBhIGZsYXR0ZW5lZCBmcmFtZSBvciBhbnkg
U1ZHIGRvY3VtZW50IGluIENocm9taXVtL01hYy4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaQkocmV2aXNpb24gOTYxMTUpCisrKyBUb29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBA
CiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdjaHJv
bWl1bS9UZXN0UGVwcGVyUGx1Z2luLmNwcCcsCisgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFBl
cHBlclBsdWdpbi5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0U2hlbGwuY3BwJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9UZXN0U2hlbGwuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
VGVzdFNoZWxsQW5kcm9pZC5jcHAnLApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFBlcHBlclBsdWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFBlcHBlclBsdWdpbi5jcHAJKHJldmlzaW9uIDApCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UGVwcGVyUGx1Z2luLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdFBlcHBl
clBsdWdpbi5oIgorCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJHcmFwaGlj
c0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIldlYktpdC5oIgorI2luY2x1ZGUgIldlYktpdFBsYXRm
b3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lci5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCisvLyBzdGF0aWMKK2NvbnN0IFdlYlN0cmluZyBUZXN0UGVwcGVy
UGx1Z2luOjprTWltZVR5cGUgPQorICAgICAgICBXZWJTdHJpbmc6OmZyb21VVEY4KCJhcHBsaWNh
dGlvbi94LXdlYmtpdC10ZXN0LXBlcHBlciIpOworCitUZXN0UGVwcGVyUGx1Z2luOjpUZXN0UGVw
cGVyUGx1Z2luKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYgcGFyYW1zKQorICAg
IDogbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fY29udGFpbmVyKDApCisgICAgLCBtX2NvbnRleHQo
MCkKK3sKK30KKworVGVzdFBlcHBlclBsdWdpbjo6flRlc3RQZXBwZXJQbHVnaW4oKQoreworfQor
Citib29sIFRlc3RQZXBwZXJQbHVnaW46OmluaXRpYWxpemUoV2ViUGx1Z2luQ29udGFpbmVyKiBj
b250YWluZXIpCit7CisgICAgbV9jb250ZXh0ID0gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNy
ZWF0ZUdyYXBoaWNzQ29udGV4dDNEKCk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJz
OworICAgIGlmICghbV9jb250ZXh0LT5pbml0aWFsaXplKGF0dHJzLCBtX2ZyYW1lLT52aWV3KCks
IGZhbHNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFtX2NvbnRleHQtPm1h
a2VDb250ZXh0Q3VycmVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2NvbnRh
aW5lciA9IGNvbnRhaW5lcjsKKyAgICBtX2NvbnRhaW5lci0+c2V0QmFja2luZ1RleHR1cmVJZCht
X2NvbnRleHQtPmdldFBsYXRmb3JtVGV4dHVyZUlkKCkpOworICAgIHJldHVybiB0cnVlOworfQor
Cit2b2lkIFRlc3RQZXBwZXJQbHVnaW46OmRlc3Ryb3koKQoreworICAgIGRlbGV0ZSBtX2NvbnRl
eHQ7CisgICAgbV9jb250ZXh0ID0gMDsKKworICAgIG1fY29udGFpbmVyID0gMDsKKyAgICBtX2Zy
YW1lID0gMDsKK30KKwordm9pZCBUZXN0UGVwcGVyUGx1Z2luOjp1cGRhdGVHZW9tZXRyeSgKKyAg
ICAgICAgY29uc3QgV2ViUmVjdCYgZnJhbWVSZWN0LAorICAgICAgICBjb25zdCBXZWJSZWN0JiBj
bGlwUmVjdCwKKyAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlJlY3Q+JiBjdXRPdXRzUmVjdHMs
CisgICAgICAgIGJvb2wgaXNWaXNpYmxlKQoreworICAgIGlmIChjbGlwUmVjdCA9PSBtX3JlY3Qp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVjdCA9IGNsaXBSZWN0OworICAgIG1fY29udGV4
dC0+cmVzaGFwZShtX3JlY3Qud2lkdGgsIG1fcmVjdC5oZWlnaHQpOworICAgIC8vIFRyYW5zbHVj
ZW50IGdyZWVuIGNvbG9yIHRvIGNoZWNrIGNvbXBvc2l0aW5nLgorICAgIG1fY29udGV4dC0+Y2xl
YXJDb2xvcigwLjAsIDEuMCwgMC4wLCAwLjUpOworICAgIG1fY29udGV4dC0+Y2xlYXIoMHgwMDAw
NDAwMCk7ICAvLyBHTF9DT0xPUl9CVUZGRVJfQklUCisgICAgbV9jb250ZXh0LT5wcmVwYXJlVGV4
dHVyZSgpOworCisgICAgbV9jb250YWluZXItPmNvbW1pdEJhY2tpbmdUZXh0dXJlKCk7Cit9CisK
ClByb3BlcnR5IGNoYW5nZXMgb246IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RQ
ZXBwZXJQbHVnaW4uY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RQZXBwZXJQbHVnaW4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UGVwcGVyUGx1
Z2luLmgJKHJldmlzaW9uIDApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UGVwcGVyUGx1Z2luLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRlc3RQ
ZXBwZXJQbHVnaW5faAorI2RlZmluZSBUZXN0UGVwcGVyUGx1Z2luX2gKKworI2luY2x1ZGUgIldl
YlBsdWdpbi5oIgorI2luY2x1ZGUgIldlYlJlY3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKK30KKworLy8gQSBmYWtlIGltcGxlbWVudGlvbiBv
ZiBwZXBwZXIgcGx1Z2luIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorLy8gSXQgZW11bGF0ZXMgdGhl
IHdheSBwZXBwZXIgcGx1Z2lucyBpbnRlcmFjdCB3aXRoIFdlYktpdC4KK2NsYXNzIFRlc3RQZXBw
ZXJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4geworcHVibGljOgorICAgIHN0YXRp
YyBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyBrTWltZVR5cGU7CisKKyAgICBUZXN0UGVwcGVyUGx1
Z2luKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYpOwor
ICAgIH5UZXN0UGVwcGVyUGx1Z2luKCk7CisKKyAgICAvLyBXZWJQbHVnaW4gbWV0aG9kczoKKyAg
ICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lciopOwor
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCBOUE9iamVjdCogc2NyaXB0
YWJsZU9iamVjdCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViS2l0
OjpXZWJDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlR2VvbWV0cnkoCisgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGZy
YW1lUmVjdCwKKyAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgY2xpcFJlY3QsCisg
ICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlJlY3Q+JiBjdXRP
dXRzUmVjdHMsCisgICAgICAgICAgICBib29sIGlzVmlzaWJsZSk7CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUZvY3VzKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNpYmlsaXR5
KGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBhY2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYktp
dDo6V2ViSW5wdXRFdmVudCYsIFdlYktpdDo6V2ViQ3Vyc29ySW5mbyYpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJLaXQ6Oldl
YlVSTFJlc3BvbnNlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBX
ZWJLaXQ6OldlYlVSTEVycm9yJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmdGcmFtZVJlcXVlc3QoY29uc3QgV2ViS2l0OjpXZWJVUkwmLCB2b2lkKiBub3RpZnlEYXRhKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3QoY29uc3QgV2Vi
S2l0OjpXZWJVUkwmLCB2b2lkKiBub3RpZnlEYXRhLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9y
JikgeyB9CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJGcmFtZSogbV9mcmFtZTsKKyAgICBX
ZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lciogbV9jb250YWluZXI7CisKKyAgICBXZWJLaXQ6Oldl
YlJlY3QgbV9yZWN0OworICAgIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIG1fY29udGV4
dDsKK307CisKKyNlbmRpZiAgLy8gVGVzdFBlcHBlclBsdWdpbl9oCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UGVwcGVyUGx1Z2luLmgKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkocmV2aXNpb24gOTYxMTUpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkxheW91dFRlc3RDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiVGVz
dFBlcHBlclBsdWdpbi5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1ZGUgIlRlc3RX
ZWJXb3JrZXIuaCIKICNpbmNsdWRlICJXZWJDU3RyaW5nLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAj
aW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9y
eUl0ZW0uaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luUGFyYW1z
LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgi
CiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKQEAgLTc3Niw2ICs3NzgsOSBAQCB2b2lkIFdlYlZpZXdI
b3N0OjpydW5Nb2RhbCgpCiAKIFdlYlBsdWdpbiogV2ViVmlld0hvc3Q6OmNyZWF0ZVBsdWdpbihX
ZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlBsdWdpblBhcmFtcyYgcGFyYW1zKQogeworICAgIGlm
IChwYXJhbXMubWltZVR5cGUgPT0gVGVzdFBlcHBlclBsdWdpbjo6a01pbWVUeXBlKQorICAgICAg
ICByZXR1cm4gbmV3IFRlc3RQZXBwZXJQbHVnaW4oZnJhbWUsIHBhcmFtcyk7CisKICAgICByZXR1
cm4gd2Via2l0X3N1cHBvcnQ6OkNyZWF0ZVdlYlBsdWdpbihmcmFtZSwgcGFyYW1zKTsKIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gOTYyNTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOS0yOCAgQWxvayBQcml5YWRhcnNoaSAg
PGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3RzIGZvciBQZXBw
ZXIgM0QgY29tcG9zaXRvciBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02OTAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2luczogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy9wZXBw
ZXItM2QtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9wbHVnaW5zL3BlcHBlci0zZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvcGVwcGVyLTNkLmh0bWw6
IEFkZGVkLgorCiAyMDExLTA5LTI4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyOTU1NzMpOiBDcmFzaCB3aGVuIGxvYWRpbmcg
U1ZHIGRvY3VtZW50cyBpbiBhIGZsYXR0ZW5lZCBmcmFtZSBvciBhbnkgU1ZHIGRvY3VtZW50IGlu
IENocm9taXVtL01hYy4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3BsdWdpbnMvcGVwcGVyLTNkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3BlcHBlci0zZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9wbHVnaW5zL3BlcHBlci0zZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTEgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKK2xheWVyIGF0ICgwLDApIHNpemUgMjU2eDI1NgorICBS
ZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2IFtiZ2Nv
bG9yPSNGRjAwMDA3Rl0KK2xheWVyIGF0ICgxOTIsMCkgc2l6ZSAyNTZ4MjU2CisgIFJlbmRlckVt
YmVkZGVkT2JqZWN0IHtFTUJFRH0gYXQgKDE5MiwwKSBzaXplIDI1NngyNTYKK2xheWVyIGF0ICgz
ODQsMCkgc2l6ZSAyNTZ4MjU2CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAo
Mzg0LDApIHNpemUgMjU2eDI1NiBbYmdjb2xvcj0jMDAwMEZGN0ZdCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3Bl
cHBlci0zZC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1
Z2lucy9wZXBwZXItM2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3BlcHBlci0zZC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy9wZXBw
ZXItM2QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNib3gxIHsKKyAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAg
ICB3aWR0aDogMjU2cHg7CisgICAgICAgIGhlaWdodDogMjU2cHg7CisgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYmEoMjU1LDAsMCwwLjUpOworICAgIH0KKyAgICAjcGx1Z2luIHsKKyAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDog
MTkycHg7CisgICAgICAgIHdpZHRoOiAyNTZweDsKKyAgICAgICAgaGVpZ2h0OiAyNTZweDsKKyAg
ICB9CisgICAgI2JveDIgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRv
cDogMHB4OworICAgICAgICBsZWZ0OiAzODRweDsKKyAgICAgICAgd2lkdGg6IDI1NnB4OworICAg
ICAgICBoZWlnaHQ6IDI1NnB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwy
NTUsMC41KTsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBpZD0i
Ym94MSI+PC9kaXY+CisgIDxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdl
YmtpdC10ZXN0LXBlcHBlciI+CisgIDxkaXYgaWQ9ImJveDIiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvcGx1Z2lucy9wZXBwZXItM2QuaHRtbApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9wbHVnaW5zL3BlcHBlci0zZC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5u
b3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9
IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy9wZXBwZXItM2QtZXhwZWN0ZWQucG5nCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBNE56VTFP
V1F6Ck5EWXhPRFF3WWpFeU1qbGhaakEwTWpBNU1qRTFZVGhpTlNKWmU2NEFBQXJRU1VSQlZIaWM3
ZGpCRGNJd0ZBVkJRbVh1TEtTejBCaWgKQjd5U3BUQlR3VHRZK2l0dm4zMS93SytPMTdsNndxU3hl
c0JmZXg5ajlZUXB3L3RoZ3ZON2I4L1ZBd0FBN2taZ0FRREVCQllBUUV4ZwpBUURFQkJZQVFFeGdB
UURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFF
eGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJC
WUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUEKUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FR
REVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4ZwpBUURFQkJZQVFF
eGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZ
QVFFeGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFE
RUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUEKUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4
Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4ZwpBUURFQkJZ
QVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURF
QkJZQVFFeGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhn
QVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUEKUUV4Z0FRREVCQllBUUV4Z0FRREVCQllB
UUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4ZwpBUURF
QkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdB
UURFQkJZQVFFeGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFR
RXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUEKUUV4Z0FRREVCQllBUUV4Z0FRREVC
QllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4ZwpB
UURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFF
eGdBUURFQkJZQVFFeGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJC
WUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUEKUUV4Z0FRREVCQllBUUV4Z0FR
REVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4
ZwpBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZ
QVFFeGdBUURFQkJZQVFFeGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFE
RUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUEKUUV4Z0FRREVCQllBUUV4
Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllBUUV4Z0FRREVCQllB
UUV4ZwpBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURFQkJZQVFFeGdBUURF
QkJZQVFFeGdBUURFQkJZQVFFeGdBUURFCkJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRRXhn
QVFERUJCWUFRRXhnQVFERUJCWUFRRXhnQVFERUJCWUFRR3k3cm12MUJnQ0EKVy9HREJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EK
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0EKQURHQkJRQVErd0xBL3c2cGc2dVFtUUFBQUFCSlJVNUVya0pnZ2c9PQoK
</data>
<flag name="review"
          id="106209"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109204</attachid>
            <date>2011-09-29 14:39:04 -0700</date>
            <delta_ts>2011-09-29 15:04:24 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>69027.patch</filename>
            <type>text/plain</type>
            <size>24583</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjM0MikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDktMjkgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgUGVwcGVyIDNEIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTA5LTI5ICBJYWluIE1lcnJpY2sgIDxodXNreUBn
b29nbGUuY29tPgogCiAgICAgICAgIEFkZCB1bml0IHRlc3QgZm9yIENDTGF5ZXJTb3J0ZXIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwCShyZXZpc2lvbiA5NjMyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNyAr
MjY2LDcgQEAgYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludFBhZ2UoaQogCiB2b2lk
IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50RW5kKCkKIHsKLSAgICByZXR1cm4gbV93ZWJQ
bHVnaW4tPnByaW50RW5kKCk7CisgICAgbV93ZWJQbHVnaW4tPnByaW50RW5kKCk7CiB9CiAKIHZv
aWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Y29weSgpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjM0MikKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTA5LTI5ICBB
bG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdHMgZm9yIFBlcHBlciAzRCBjb21wb3NpdG9yIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgor
ICAgICAgICAoVGVzdFdlYlBsdWdpbjo6flRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdl
YlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpkZXN0cm95KToK
KyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAoVGVz
dFdlYlBsdWdpbjo6c2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpw
YWludCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjp1cGRhdGVGb2N1cyk6CisgICAgICAgIChU
ZXN0V2ViUGx1Z2luOjp1cGRhdGVWaXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46
OmFjY2VwdHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1
dEV2ZW50KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChUZXN0V2ViUGx1Z2luOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZh
aWxMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmdGcmFt
ZVJlcXVlc3QpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkRmFpbExvYWRpbmdGcmFtZVJl
cXVlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDExLTA5LTI5ICBS
YXZpIFBoYW5lZW5kcmEgS2FzaWJoYXRsYSAgPHJhdmkua2FzaWJoYXRsYUBtb3Rvcm9sYS5jb20+
CiAKICAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBXZWJJbnNwZWN0b3IgZm9yIFdl
YktpdDIgR1RLIHBvcnQuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Lmd5cGkJKHJldmlzaW9uIDk2MzI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3RTaGVsbEd0ay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RT
aGVsbE1hYy5tbScsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCisg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAnLAorICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGV4dElucHV0
Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xs
ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCShy
ZXZpc2lvbiAwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdp
bi5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjI1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5j
bHVkZSAiV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNs
dWRlICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWlu
ZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLy8gR0xlbnVtIHZhbHVlcyBjb3Bp
ZWQgZnJvbSBnbDIuaC4KKyNkZWZpbmUgR0xfRkFMU0UgICAgICAgICAgICAgICAgICAwCisjZGVm
aW5lIEdMX1RSVUUgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBHTF9PTkUgICAgICAgICAg
ICAgICAgICAgIDEKKyNkZWZpbmUgR0xfVFJJQU5HTEVTICAgICAgICAgICAgICAweDAwMDQKKyNk
ZWZpbmUgR0xfT05FX01JTlVTX1NSQ19BTFBIQSAgICAweDAzMDMKKyNkZWZpbmUgR0xfQkxFTkQg
ICAgICAgICAgICAgICAgICAweDBCRTIKKyNkZWZpbmUgR0xfRkxPQVQgICAgICAgICAgICAgICAg
ICAweDE0MDYKKyNkZWZpbmUgR0xfQ09MT1JfQlVGRkVSX0JJVCAgICAgICAweDQwMDAKKyNkZWZp
bmUgR0xfQVJSQVlfQlVGRkVSICAgICAgICAgICAweDg4OTIKKyNkZWZpbmUgR0xfU1RBVElDX0RS
QVcgICAgICAgICAgICAweDg4RTQKKyNkZWZpbmUgR0xfRlJBR01FTlRfU0hBREVSICAgICAgICAw
eDhCMzAKKyNkZWZpbmUgR0xfVkVSVEVYX1NIQURFUiAgICAgICAgICAweDhCMzEKKyNkZWZpbmUg
R0xfQ09NUElMRV9TVEFUVVMgICAgICAgICAweDhCODEKKyNkZWZpbmUgR0xfTElOS19TVEFUVVMg
ICAgICAgICAgICAweDhCODIKKworc3RhdGljIHVuc2lnbmVkIGxvYWRTaGFkZXIodW5zaWduZWQg
dHlwZSwgY29uc3QgY2hhciogc3JjLCBXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKK3sK
KyAgICB1bnNpZ25lZCBzaGFkZXIgPSBjb250ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CisgICAg
aWYgKHNoYWRlcikgeworICAgICAgICBjb250ZXh0LT5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzcmMp
OworICAgICAgICBjb250ZXh0LT5jb21waWxlU2hhZGVyKHNoYWRlcik7CisKKyAgICAgICAgaW50
IGNvbXBpbGVkID0gMDsKKyAgICAgICAgY29udGV4dC0+Z2V0U2hhZGVyaXYoc2hhZGVyLCBHTF9D
T01QSUxFX1NUQVRVUywgJmNvbXBpbGVkKTsKKyAgICAgICAgaWYgKCFjb21waWxlZCkgeworICAg
ICAgICAgICAgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHNoYWRlcik7CisgICAgICAgICAgICBzaGFk
ZXIgPSAwOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzaGFkZXI7Cit9CisKK3N0YXRp
YyB1bnNpZ25lZCBsb2FkUHJvZ3JhbShjb25zdCBjaGFyKiB2U3JjLCBjb25zdCBjaGFyKiBmU3Jj
LCBXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKK3sKKyAgICB1bnNpZ25lZCB2U2hhZGVy
ID0gbG9hZFNoYWRlcihHTF9WRVJURVhfU0hBREVSLCB2U3JjLCBjb250ZXh0KTsKKyAgICB1bnNp
Z25lZCBmU2hhZGVyID0gbG9hZFNoYWRlcihHTF9GUkFHTUVOVF9TSEFERVIsIGZTcmMsIGNvbnRl
eHQpOworICAgIHVuc2lnbmVkIHByb2dyYW0gPSBjb250ZXh0LT5jcmVhdGVQcm9ncmFtKCk7Cisg
ICAgaWYgKHZTaGFkZXIgJiYgZlNoYWRlciAmJiBwcm9ncmFtKSB7CisgICAgICAgIGNvbnRleHQt
PmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2U2hhZGVyKTsKKyAgICAgICAgY29udGV4dC0+YXR0YWNo
U2hhZGVyKHByb2dyYW0sIGZTaGFkZXIpOworICAgICAgICBjb250ZXh0LT5saW5rUHJvZ3JhbShw
cm9ncmFtKTsKKworICAgICAgICBpbnQgbGlua2VkID0gMDsKKyAgICAgICAgY29udGV4dC0+Z2V0
UHJvZ3JhbWl2KHByb2dyYW0sIEdMX0xJTktfU1RBVFVTLCAmbGlua2VkKTsKKyAgICAgICAgaWYg
KCFsaW5rZWQpIHsKKyAgICAgICAgICAgIGNvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7
CisgICAgICAgICAgICBwcm9ncmFtID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodlNo
YWRlcikKKyAgICAgICAgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHZTaGFkZXIpOworICAgIGlmIChm
U2hhZGVyKQorICAgICAgICBjb250ZXh0LT5kZWxldGVTaGFkZXIoZlNoYWRlcik7CisKKyAgICBy
ZXR1cm4gcHJvZ3JhbTsKK30KKworLy8gc3RhdGljCitjb25zdCBXZWJTdHJpbmcgVGVzdFdlYlBs
dWdpbjo6a01pbWVUeXBlID0KKyAgICAgICAgV2ViU3RyaW5nOjpmcm9tVVRGOCgiYXBwbGljYXRp
b24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iKTsKKworVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBs
dWdpbihXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykKKyAgICA6IG1fZnJhbWUo
ZnJhbWUpCisgICAgLCBtX2NvbnRhaW5lcigwKQorICAgICwgbV9jb250ZXh0KDApCit7CisgICAg
bWVtc2V0KCZtX3NjZW5lLCAwLCBzaXplb2YobV9zY2VuZSkpOworfQorCitUZXN0V2ViUGx1Z2lu
Ojp+VGVzdFdlYlBsdWdpbigpCit7Cit9CisKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6
ZShXZWJQbHVnaW5Db250YWluZXIqIGNvbnRhaW5lcikKK3sKKyAgICBtX2NvbnRleHQgPSB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBpZiAo
IW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgV2ViR3JhcGhpY3NDb250
ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnM7CisgICAgaWYgKCFtX2NvbnRleHQtPmluaXRpYWxpemUo
YXR0cnMsIG1fZnJhbWUtPnZpZXcoKSwgZmFsc2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghaW5pdFNjZW5lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fY29udGFpbmVyID0gY29udGFpbmVyOworICAgIG1fY29udGFpbmVyLT5zZXRCYWNr
aW5nVGV4dHVyZUlkKG1fY29udGV4dC0+Z2V0UGxhdGZvcm1UZXh0dXJlSWQoKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZGVzdHJveSgpCit7CisgICAgZGVz
dHJveVNjZW5lKCk7CisKKyAgICBkZWxldGUgbV9jb250ZXh0OworICAgIG1fY29udGV4dCA9IDA7
CisKKyAgICBtX2NvbnRhaW5lciA9IDA7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK3ZvaWQgVGVz
dFdlYlBsdWdpbjo6dXBkYXRlR2VvbWV0cnkoCisgICAgICAgIGNvbnN0IFdlYlJlY3QmIGZyYW1l
UmVjdCwKKyAgICAgICAgY29uc3QgV2ViUmVjdCYgY2xpcFJlY3QsCisgICAgICAgIGNvbnN0IFdl
YlZlY3RvcjxXZWJSZWN0PiYgY3V0T3V0c1JlY3RzLAorICAgICAgICBib29sIGlzVmlzaWJsZSkK
K3sKKyAgICBpZiAoY2xpcFJlY3QgPT0gbV9yZWN0KQorICAgICAgICByZXR1cm47CisgICAgbV9y
ZWN0ID0gY2xpcFJlY3Q7CisKKyAgICBtX2NvbnRleHQtPnJlc2hhcGUobV9yZWN0LndpZHRoLCBt
X3JlY3QuaGVpZ2h0KTsKKyAgICBkcmF3U2NlbmUoKTsKKyAgICBtX2NvbnRleHQtPnByZXBhcmVU
ZXh0dXJlKCk7CisKKyAgICBtX2NvbnRhaW5lci0+Y29tbWl0QmFja2luZ1RleHR1cmUoKTsKK30K
KworYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0U2NlbmUoKQoreworICAgIGNvbnN0IGNoYXIgdlNo
YWRlclNyY1tdID0gIAorICAgICAgICAiYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOyAgICBcbiIK
KyAgICAgICAgInZvaWQgbWFpbigpICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICJ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAiICAgIGdsX1Bvc2l0aW9uID0g
dlBvc2l0aW9uOyBcbiIKKyAgICAgICAgIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i
OworCisgICAgY29uc3QgY2hhciBmU2hhZGVyU3JjW10gPSAgCisgICAgICAgICJwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsgICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAgICAgInZvaWQgbWFp
bigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAieyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICIgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDAuMCwgMC4wLCAwLjUpOyBcbiIKKyAgICAgICAgIn0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIjsKKworICAgIG1f
c2NlbmUucHJvZ3JhbSA9IGxvYWRQcm9ncmFtKHZTaGFkZXJTcmMsIGZTaGFkZXJTcmMsIG1fY29u
dGV4dCk7CisgICAgaWYgKCFtX3NjZW5lLnByb2dyYW0pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBtX2NvbnRleHQtPmJpbmRBdHRyaWJMb2NhdGlvbihtX3NjZW5lLnByb2dyYW0sIDAsICJ2
UG9zaXRpb24iKTsKKworICAgIGZsb2F0IHZWZXJ0aWNlc1tdID0geyAwLjBmLCAgMC44ZiwgMC4w
ZiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgLTAuOGYsIC0wLjhmLCAwLjBmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjhmLCAtMC44ZiwgMC4wZiB9OworICAgIG1fc2NlbmUudmJv
ID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKTsKKyAgICBtX2NvbnRleHQtPmJpbmRCdWZmZXIo
R0xfQVJSQVlfQlVGRkVSLCBtX3NjZW5lLnZibyk7CisgICAgbV9jb250ZXh0LT5idWZmZXJEYXRh
KEdMX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKHZWZXJ0aWNlcyksIE5VTEwsIEdMX1NUQVRJQ19EUkFX
KTsKKyAgICBtX2NvbnRleHQtPmJ1ZmZlclN1YkRhdGEoR0xfQVJSQVlfQlVGRkVSLCAwLCBzaXpl
b2YodlZlcnRpY2VzKSwgdlZlcnRpY2VzKTsKKworICAgIC8vIENsZWFyIGNvbG9yOiB0cmFuc2x1
Y2VudCBncmVlbi4KKyAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoMC4wLCAxLjAsIDAuMCwgMC41
KTsKKyAgICBtX2NvbnRleHQtPmVuYWJsZShHTF9CTEVORCk7CisgICAgbV9jb250ZXh0LT5ibGVu
ZEZ1bmMoR0xfT05FLCBHTF9PTkVfTUlOVVNfU1JDX0FMUEhBKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkcmF3U2NlbmUoKQoreworICAgIG1fY29udGV4dC0+
dmlld3BvcnQoMCwgMCwgbV9yZWN0LndpZHRoLCBtX3JlY3QuaGVpZ2h0KTsKKyAgICBtX2NvbnRl
eHQtPmNsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOworCisgICAgbV9jb250ZXh0LT51c2VQcm9n
cmFtKG1fc2NlbmUucHJvZ3JhbSk7CisgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdMX0FSUkFZ
X0JVRkZFUiwgbV9zY2VuZS52Ym8pOworICAgIG1fY29udGV4dC0+ZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoMCk7CisgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIEdMX0ZM
T0FULCBHTF9GQUxTRSwgMCwgMCk7CisgICAgbV9jb250ZXh0LT5kcmF3QXJyYXlzKEdMX1RSSUFO
R0xFUywgMCwgMyk7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZGVzdHJveVNjZW5lKCkKK3sK
KyAgICBpZiAobV9zY2VuZS5wcm9ncmFtKSB7CisgICAgICAgIG1fY29udGV4dC0+ZGVsZXRlUHJv
Z3JhbShtX3NjZW5lLnByb2dyYW0pOworICAgICAgICBtX3NjZW5lLnByb2dyYW0gPSAwOworICAg
IH0KKyAgICBpZiAobV9zY2VuZS52Ym8pIHsKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVCdWZm
ZXIobV9zY2VuZS52Ym8pOworICAgICAgICBtX3NjZW5lLnZibyA9IDA7CisgICAgfQorfQorCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2Vi
UGx1Z2luLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShyZXZp
c2lvbiAwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXN0V2ViUGx1Z2luX2gKKyNk
ZWZpbmUgVGVzdFdlYlBsdWdpbl9oCisKKyNpbmNsdWRlICJXZWJQbHVnaW4uaCIKKyNpbmNsdWRl
ICJXZWJSZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR3JhcGhpY3NDb250
ZXh0M0Q7Cit9CisKKy8vIEEgZmFrZSBpbXBsZW1lbnRpb24gb2YgV2ViS2l0OjpXZWJQbHVnaW4g
Zm9yIHRlc3RpbmcgcHVycG9zZXMuCisvLyBJdCBkcmF3cyBhIHJlZCB0cmlhbmdsZSBvdmVyIGdy
ZWVuIGJhY2tncm91bmQgdXNpbmcgV2ViR3JhcGhpY3NDb250ZXh0M0QuCisvLyBUaGlzIGJlaGF2
aW9yIGNhbiBiZSBzdXRvbWl6ZWQgaW4gZnV0dXJlIHVzaW5nIFdlYlBsdWdpblBhcmFtcy4KK2Ns
YXNzIFRlc3RXZWJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4geworcHVibGljOgor
ICAgIHN0YXRpYyBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyBrTWltZVR5cGU7CisKKyAgICBUZXN0
V2ViUGx1Z2luKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFt
cyYpOworICAgIH5UZXN0V2ViUGx1Z2luKCk7CisKKyAgICAvLyBXZWJQbHVnaW4gbWV0aG9kczoK
KyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lciop
OworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCBOUE9iamVjdCogc2Ny
aXB0YWJsZU9iamVjdCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2Vi
S2l0OjpXZWJDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlR2VvbWV0cnkoCisgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlJlY3Qm
IGZyYW1lUmVjdCwKKyAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgY2xpcFJlY3Qs
CisgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlJlY3Q+JiBj
dXRPdXRzUmVjdHMsCisgICAgICAgICAgICBib29sIGlzVmlzaWJsZSk7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZvY3VzKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNpYmls
aXR5KGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBhY2NlcHRzSW5wdXRFdmVudHMoKSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdl
YktpdDo6V2ViSW5wdXRFdmVudCYsIFdlYktpdDo6V2ViQ3Vyc29ySW5mbyYpIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJLaXQ6
OldlYlVSTFJlc3BvbnNlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25z
dCBXZWJLaXQ6OldlYlVSTEVycm9yJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmdGcmFtZVJlcXVlc3QoY29uc3QgV2ViS2l0OjpXZWJVUkwmLCB2b2lkKiBub3RpZnlEYXRh
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3QoY29uc3Qg
V2ViS2l0OjpXZWJVUkwmLCB2b2lkKiBub3RpZnlEYXRhLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVy
cm9yJikgeyB9CisKK3ByaXZhdGU6CisgICAgc3RydWN0IFNjZW5lCisgICAgeworICAgICAgICB1
bnNpZ25lZCBwcm9ncmFtOworICAgICAgICB1bnNpZ25lZCB2Ym87CisgICAgfTsKKyAgICBib29s
IGluaXRTY2VuZSgpOworICAgIHZvaWQgZHJhd1NjZW5lKCk7CisgICAgdm9pZCBkZXN0cm95U2Nl
bmUoKTsKKworICAgIFdlYktpdDo6V2ViRnJhbWUqIG1fZnJhbWU7CisgICAgV2ViS2l0OjpXZWJQ
bHVnaW5Db250YWluZXIqIG1fY29udGFpbmVyOworCisgICAgV2ViS2l0OjpXZWJSZWN0IG1fcmVj
dDsKKyAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CisgICAgU2Nl
bmUgbV9zY2VuZTsKK307CisKKyNlbmRpZiAvLyBUZXN0UGVwcGVyUGx1Z2luX2gKClByb3BlcnR5
IGNoYW5nZXMgb246IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4u
aApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA5NjMy
NikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxheW91dFRlc3RDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VGVzdFNoZWxsLmgiCisjaW5jbHVkZSAiVGVzdFdlYlBsdWdpbi5oIgogI2luY2x1ZGUgIlRlc3RX
ZWJXb3JrZXIuaCIKICNpbmNsdWRlICJXZWJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViQ29uc29s
ZU1lc3NhZ2UuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNs
aWVudE1vY2suaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIldlYk5v
ZGUuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1l
bnUuaCIKICNpbmNsdWRlICJXZWJQb3B1cFR5cGUuaCIKICNpbmNsdWRlICJXZWJSYW5nZS5oIgpA
QCAtNzc2LDYgKzc3OCw5IEBAIHZvaWQgV2ViVmlld0hvc3Q6OnJ1bk1vZGFsKCkKIAogV2ViUGx1
Z2luKiBXZWJWaWV3SG9zdDo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2Vi
UGx1Z2luUGFyYW1zJiBwYXJhbXMpCiB7CisgICAgaWYgKHBhcmFtcy5taW1lVHlwZSA9PSBUZXN0
V2ViUGx1Z2luOjprTWltZVR5cGUpCisgICAgICAgIHJldHVybiBuZXcgVGVzdFdlYlBsdWdpbihm
cmFtZSwgcGFyYW1zKTsKKwogICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlV2ViUGx1
Z2luKGZyYW1lLCBwYXJhbXMpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjM0MikKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEx
LTA5LTI5ICBBbG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFkZCBsYXlvdXQgdGVzdHMgZm9yIFBlcHBlciAzRCBjb21wb3NpdG9yIHBhdGgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDI3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9wbHVnaW5zOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1
Z2luLWFscGhhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbDogQWRkZWQuCisKIDIw
MTEtMDktMjkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBXZSBz
aG91bGQgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgR2V0UmVhbE5hbWVkUHJvcGVydHkKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2Vi
cGx1Z2luLWFscGhhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTEgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKK2xheWVyIGF0ICgwLDApIHNpemUgMjU2eDI1NgorICBS
ZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2IFtiZ2Nv
bG9yPSMwMDAwRkY3Rl0KK2xheWVyIGF0ICgxOTIsMCkgc2l6ZSAyNTZ4MjU2CisgIFJlbmRlckVt
YmVkZGVkT2JqZWN0IHtFTUJFRH0gYXQgKDE5MiwwKSBzaXplIDI1NngyNTYKK2xheWVyIGF0ICgz
ODQsMCkgc2l6ZSAyNTZ4MjU2CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAo
Mzg0LDApIHNpemUgMjU2eDI1NiBbYmdjb2xvcj0jMDAwMEZGN0ZdCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dl
YnBsdWdpbi1hbHBoYS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNi
b3gxIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsKKyAg
ICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDogMjU2cHg7CisgICAgICAgIGhlaWdodDog
MjU2cHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDI1NSwwLjUpOworICAg
IH0KKyAgICAjcGx1Z2luIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0
b3A6IDBweDsKKyAgICAgICAgbGVmdDogMTkycHg7CisgICAgICAgIHdpZHRoOiAyNTZweDsKKyAg
ICAgICAgaGVpZ2h0OiAyNTZweDsKKyAgICB9CisgICAgI2JveDIgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0OiAzODRweDsKKyAg
ICAgICAgd2lkdGg6IDI1NnB4OworICAgICAgICBoZWlnaHQ6IDI1NnB4OworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwyNTUsMC41KTsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFk
PgorCis8Ym9keT4KKyAgPGRpdiBpZD0iYm94MSI+PC9kaXY+CisgIDxlbWJlZCBpZD0icGx1Z2lu
IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiI+CisgIDxkaXYgaWQ9
ImJveDIiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4t
YWxwaGEuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBs
dWdpbi1hbHBoYS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFB
QUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBMlpEZGtaVGswCk9EZ3paalZt
WlROak1EVTFNVGMwTVRrMk9HTmpNVGxtWXRLWk94MEFBQTJKU1VSQlZIaWM3ZGpiY1J6WEdVWlIw
S1ZBSEFwU2NTUWsKSTNFb2dweUlGSW1vQjdsSUM0WndtZG5kZlM1ckpUQi9uNXFIWGQrbno1OS9m
NEJiUFgzNWV2VUpkM204K29ETi9mTDE4ZW9UN3ZMbwpIOFFkUG4rKytnS085SStyRHdBQVdJM0FB
Z0NJQ1N3QWdKakFBZ0NJQ1N3QWdKakFBZ0NJQ1N3QWdKakFBZ0NJQ1N3QWdKakFBZ0NJCkNTd0Fn
SmpBQWdDSUNTd0FnSmpBQWdDSUNTd0FnSmpBQWdDSUNTd0FnSmpBQWdDSUNTd0FnSmpBQWdDSUNT
d0FnSmpBQWdDSUNTd0EKZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3lZMVplZm43NzgvSFQxRlFDOFFH
QUJBTVFFRmt6cCszWmx4QUlZa01BQ0FJZ0pMSmpQczlYSwppQVV3R29FRkFCQVRXRENaRi9jcUl4
YkFVQVFXQUVCTVlNRk1YbG1xakZnQTR4QllBQUF4Z1FYVGVIT2pNbUlCREVKZ0FRREVCQmJNCjRa
M3JsQkVMWUFRQ0N3QWdKckJnQWgvYXBZeFlBSmNUV0FBQU1ZRUZvN3Roa1RKaUFWeExZQUVBeEFR
V0RPM21MY3FJQlhBaGdRVUEKRUJOWU1LNDdWeWdqRnNCVkJCWUFRRXhnd2FDUy9jbUlCWEFKZ1FV
QUVCTllNS0p3ZVRKaUFaeFBZQUVBeEFRV0RDZmZuSXhZQUNjVApXQUFBTVlFRll6bG9iVEppQVp4
SllBRUF4QVFXRE9UUW5jbUlCWEFhZ1FVQUVCTllNSW9URmlZakZzQTVCQllBUUV4Z3dSQk8yNWFN
CldBQW5FRmdBQURHQkJkYzdlVlV5WWdFY1RXQUJBTVFFRmx6c2tqM0ppQVZ3S0lFRkFCQVRXSENs
QzVja0l4YkFjUVFXQUVCTVlNRmwKTHQrUUxqOEFZRlVDQ3dBZ0pyRGdHb09zUjRPY0FiQVlnUVVB
RUJOWWNJR2hkcU9oamdGWWc4QUNBSWdKTERqYmdJdlJnQ2NCVEUxZwpBUURFQkJhY2F0aXRhTmpE
QUdZa3NBQUFZZ0lMempQNFNqVDRlUUFURVZnQUFER0JCU2VaWWgrYTRraUE4UWtzQUlDWXdJSXpU
TFFNClRYUXF3TEFFRmdCQVRHREI0YWJiaEtZN0dHQTBBZ3NBSUNhdzRGaVRya0dUbmcwd0NJRUZB
QkFUV0hDZ3FYZWdxWThIdUpiQUFnQ0kKQ1N3NHlnSUwwQUtmQUhBSmdRVUFFQk5ZY0lobHRwOWxQ
Z1RnVEFJTEFDQW1zS0MzMk9xejJPY0FuRUJnQVFERUJCYkVsdHg3bHZ3bwpnT01JTEFDQW1NQ0Mw
c0pMejhLZkJwQVRXQUFBTVlFRm1lVTNudVUvRUtBaXNBQUFZZ0lMR3B1c081dDhKc0NkQkJZQVFF
eGdRV0NyClhXZXJqd1c0amNBQ0FJZ0pMTGpYaG92T2hwOE04Q0VDQ3dBZ0pyRGdMdHR1T2R0K09N
QjdDQ3dBZ0pqQWd0dHR2dUpzL3ZrQXJ4QlkKQUFBeGdRVTNzdDg4ZUFTQXZ5R3dBQUJpQWd0dVli
bjV6bE1BL0QrQkJRQVFFMWp3WVRhYlp6d0l3RE1DQ3dBZ0pyRGdZNncxTC9JcwpBUDlMWUFFQXhB
UVdmSUNkNWhVZUIrQTdnUVVBRUJOWThGNFdtamQ1SW9BL0NTd0FnSmpBZ25leHpieVRod0o0RUZn
QUFEbUJCVyt6CnlueUk1d0lRV0FBQU1ZRUZiN0RIM01DakFac1RXQUFBTVlFRnI3SEUzTXpUQVRz
VFdBQUFNWUVGZjhzR2N5Y1BDR3hMWUFFQXhBUVcKdk16Nmt2Q013SjRFRmdCQVRHREJDK3d1SVk4
SmJFaGdBUURFQkJZOFozSEplVkpnTndJTEFDQW1zT0F2YkMwSDhiREFWZ1FXQUVCTQpZTUVQVnBa
RGVWNWdId0lMQUNBbXNPQy83Q3NuOE1qQUpnUVdBRUJNWU1IRGcyWGxSSjRhMklIQUFnQ0lDU3l3
cVp6Tmd3UExFMWdBCkFER0J4ZTZzS1pmdzdNRGFCQllBUUV4Z3NUVTd5b1U4UHJBd2dRVUFFQk5Z
N092cDMwOVhuN0M3eDE5L3Uvb0VnRU1JTEFDQW1NQmkKVSthclFSaXhnQ1VKTEFDQW1NQmlSK2Fy
b1JpeGdQVUlMQUNBbU1CaU8rYXJBUm14Z01VSUxBQ0FtTUJpTCthcllSbXhnSlVJTEFDQQptTUJp
SSthcndSbXhnR1VJTEFDQW1NQmlGK2FyS1JpeGdEVUlMQUNBbU1CaUMrYXJpUml4Z0FVSUxBQ0Ft
TUJpZmVhcjZSaXhnTmtKCkxBQ0FtTUJpY2VhclNSbXhnS2tKTEFDQW1NQmlaZWFycVJteGdIa0pM
QUNBbU1CaVdlYXJCUml4Z0VrSkxBQ0FtTUJpVGVhclpSaXgKZ0JrSkxBQ0FtTUJpUWVhcnhSaXhn
T2tJTEFDQW1NQmlOZWFySlJteGdMa0lMQUNBbU1CaUtlYXJoUm14Z0lrSUxBQ0FtTUJpSGVhcgo1
Um14Z0ZrSUxBQ0FtTUJpRWVhclRSaXhnQ2tJTEFDQW1NQmlCZWFyclJpeGdQRUpMQUNBbU1CaWV1
YXJEUm14Z01FSkxBQ0FtTUJpCmJ1YXJiUm14Z0pFSkxBQ0FtTUJpWXVhcnpSbXhnR0VKTEFDQW1N
QmlWdVlySG94WXdLZ0VGZ0JBVEdBeEpmTVYzeG14Z0FFSkxBQ0EKbU1CaVB1WXJuakZpQWFNUldB
QUFNWUhGWk14WHZNaUlCUXhGWUFFQXhBUVdNekZmOFFvakZqQU9nUVVBRUJOWVRNTjh4WnVNV01B
ZwpCQllBUUV4Z01RZnpGZTlreEFKR0lMQUFBR0lDaXdtWXIvZ1FJeFp3T1lFRkFCQVRXSXpPZk1V
TmpGakF0UVFXQUVCTVlERTA4eFUzCk0ySUJGeEpZQUFBeGdjVzR6RmZjeVlnRlhFVmdBUURFQkJh
RE1sK1JNR0lCbHhCWUFBQXhnY1dJekZlRWpGakErUVFXQUVCTVlERWMKOHhVNUl4WndNb0VGQUJB
VFdJekZmTVZCakZqQW1RUVdBRUJNWURFUTh4V0hNbUlCcC9ucDZnUGdoOGQvUFo3OWl5Zi9Ibi8x
eTMvKwplZlVKQUlld1lBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFX
QUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXCkFFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVB
eEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk0KWUFFQXhENTkrL2J0
NmhzQUFKWml3UUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3
QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NB
SUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFp
QWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUEKaUFrc0FJQ1l3
QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJ
Q1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlB
a3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdB
SUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUEKaUFrc0FJ
Q1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFr
c0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJ
QWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlDWXdBSUFpQWtzQUlD
WXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUEKaUFr
c0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlB
aUFrc0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZ
d0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlDWXdBSUFpQWtz
QUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUEK
aUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3
QUlBaUFrc0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NB
SUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlDWXdBSUFp
QWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdB
SUEKaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJ
Q1l3QUlBaUFrc0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlB
a3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlDWXdB
SUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlD
WXdBSUEKaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFr
c0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJ
QWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtzQUlD
WXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtz
QUlDWXdBSUEKaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlB
aUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZ
d0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFpQWtz
QUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFp
QWtzQUlDWXdBSUEKaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3
QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrcwpBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NB
SUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZCndBSUFp
QWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdB
SUFpQWtzQUlDWXdBSUEKaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaVAwQkk3K3RjdndEN2Y4QUFB
QUFTVVZPUks1Q1lJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109210</attachid>
            <date>2011-09-29 15:04:24 -0700</date>
            <delta_ts>2011-10-06 13:08:09 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>69027.patch</filename>
            <type>text/plain</type>
            <size>24575</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjM0MikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDktMjkgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgUGVwcGVyIDNEIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTA5LTI5ICBJYWluIE1lcnJpY2sgIDxodXNreUBn
b29nbGUuY29tPgogCiAgICAgICAgIEFkZCB1bml0IHRlc3QgZm9yIENDTGF5ZXJTb3J0ZXIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwCShyZXZpc2lvbiA5NjMyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNyAr
MjY2LDcgQEAgYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludFBhZ2UoaQogCiB2b2lk
IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50RW5kKCkKIHsKLSAgICByZXR1cm4gbV93ZWJQ
bHVnaW4tPnByaW50RW5kKCk7CisgICAgbV93ZWJQbHVnaW4tPnByaW50RW5kKCk7CiB9CiAKIHZv
aWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Y29weSgpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjM0MikKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTA5LTI5ICBB
bG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdHMgZm9yIFBlcHBlciAzRCBjb21wb3NpdG9yIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgor
ICAgICAgICAoVGVzdFdlYlBsdWdpbjo6flRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdl
YlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpkZXN0cm95KToK
KyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAoVGVz
dFdlYlBsdWdpbjo6c2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpw
YWludCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjp1cGRhdGVGb2N1cyk6CisgICAgICAgIChU
ZXN0V2ViUGx1Z2luOjp1cGRhdGVWaXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46
OmFjY2VwdHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1
dEV2ZW50KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChUZXN0V2ViUGx1Z2luOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZh
aWxMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmdGcmFt
ZVJlcXVlc3QpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkRmFpbExvYWRpbmdGcmFtZVJl
cXVlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDExLTA5LTI5ICBS
YXZpIFBoYW5lZW5kcmEgS2FzaWJoYXRsYSAgPHJhdmkua2FzaWJoYXRsYUBtb3Rvcm9sYS5jb20+
CiAKICAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBXZWJJbnNwZWN0b3IgZm9yIFdl
YktpdDIgR1RLIHBvcnQuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Lmd5cGkJKHJldmlzaW9uIDk2MzI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3RTaGVsbEd0ay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RT
aGVsbE1hYy5tbScsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCisg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAnLAorICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGV4dElucHV0
Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xs
ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCShy
ZXZpc2lvbiAwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdp
bi5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjI1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5j
bHVkZSAiV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNs
dWRlICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWlu
ZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLy8gR0xlbnVtIHZhbHVlcyBjb3Bp
ZWQgZnJvbSBnbDIuaC4KKyNkZWZpbmUgR0xfRkFMU0UgICAgICAgICAgICAgICAgICAwCisjZGVm
aW5lIEdMX1RSVUUgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBHTF9PTkUgICAgICAgICAg
ICAgICAgICAgIDEKKyNkZWZpbmUgR0xfVFJJQU5HTEVTICAgICAgICAgICAgICAweDAwMDQKKyNk
ZWZpbmUgR0xfT05FX01JTlVTX1NSQ19BTFBIQSAgICAweDAzMDMKKyNkZWZpbmUgR0xfQkxFTkQg
ICAgICAgICAgICAgICAgICAweDBCRTIKKyNkZWZpbmUgR0xfRkxPQVQgICAgICAgICAgICAgICAg
ICAweDE0MDYKKyNkZWZpbmUgR0xfQ09MT1JfQlVGRkVSX0JJVCAgICAgICAweDQwMDAKKyNkZWZp
bmUgR0xfQVJSQVlfQlVGRkVSICAgICAgICAgICAweDg4OTIKKyNkZWZpbmUgR0xfU1RBVElDX0RS
QVcgICAgICAgICAgICAweDg4RTQKKyNkZWZpbmUgR0xfRlJBR01FTlRfU0hBREVSICAgICAgICAw
eDhCMzAKKyNkZWZpbmUgR0xfVkVSVEVYX1NIQURFUiAgICAgICAgICAweDhCMzEKKyNkZWZpbmUg
R0xfQ09NUElMRV9TVEFUVVMgICAgICAgICAweDhCODEKKyNkZWZpbmUgR0xfTElOS19TVEFUVVMg
ICAgICAgICAgICAweDhCODIKKworc3RhdGljIHVuc2lnbmVkIGxvYWRTaGFkZXIodW5zaWduZWQg
dHlwZSwgY29uc3QgY2hhciogc3JjLCBXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKK3sK
KyAgICB1bnNpZ25lZCBzaGFkZXIgPSBjb250ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CisgICAg
aWYgKHNoYWRlcikgeworICAgICAgICBjb250ZXh0LT5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzcmMp
OworICAgICAgICBjb250ZXh0LT5jb21waWxlU2hhZGVyKHNoYWRlcik7CisKKyAgICAgICAgaW50
IGNvbXBpbGVkID0gMDsKKyAgICAgICAgY29udGV4dC0+Z2V0U2hhZGVyaXYoc2hhZGVyLCBHTF9D
T01QSUxFX1NUQVRVUywgJmNvbXBpbGVkKTsKKyAgICAgICAgaWYgKCFjb21waWxlZCkgeworICAg
ICAgICAgICAgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHNoYWRlcik7CisgICAgICAgICAgICBzaGFk
ZXIgPSAwOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzaGFkZXI7Cit9CisKK3N0YXRp
YyB1bnNpZ25lZCBsb2FkUHJvZ3JhbShjb25zdCBjaGFyKiB2U3JjLCBjb25zdCBjaGFyKiBmU3Jj
LCBXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKK3sKKyAgICB1bnNpZ25lZCB2U2hhZGVy
ID0gbG9hZFNoYWRlcihHTF9WRVJURVhfU0hBREVSLCB2U3JjLCBjb250ZXh0KTsKKyAgICB1bnNp
Z25lZCBmU2hhZGVyID0gbG9hZFNoYWRlcihHTF9GUkFHTUVOVF9TSEFERVIsIGZTcmMsIGNvbnRl
eHQpOworICAgIHVuc2lnbmVkIHByb2dyYW0gPSBjb250ZXh0LT5jcmVhdGVQcm9ncmFtKCk7Cisg
ICAgaWYgKHZTaGFkZXIgJiYgZlNoYWRlciAmJiBwcm9ncmFtKSB7CisgICAgICAgIGNvbnRleHQt
PmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2U2hhZGVyKTsKKyAgICAgICAgY29udGV4dC0+YXR0YWNo
U2hhZGVyKHByb2dyYW0sIGZTaGFkZXIpOworICAgICAgICBjb250ZXh0LT5saW5rUHJvZ3JhbShw
cm9ncmFtKTsKKworICAgICAgICBpbnQgbGlua2VkID0gMDsKKyAgICAgICAgY29udGV4dC0+Z2V0
UHJvZ3JhbWl2KHByb2dyYW0sIEdMX0xJTktfU1RBVFVTLCAmbGlua2VkKTsKKyAgICAgICAgaWYg
KCFsaW5rZWQpIHsKKyAgICAgICAgICAgIGNvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7
CisgICAgICAgICAgICBwcm9ncmFtID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodlNo
YWRlcikKKyAgICAgICAgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHZTaGFkZXIpOworICAgIGlmIChm
U2hhZGVyKQorICAgICAgICBjb250ZXh0LT5kZWxldGVTaGFkZXIoZlNoYWRlcik7CisKKyAgICBy
ZXR1cm4gcHJvZ3JhbTsKK30KKworLy8gc3RhdGljCitjb25zdCBXZWJTdHJpbmcgVGVzdFdlYlBs
dWdpbjo6a01pbWVUeXBlID0KKyAgICAgICAgV2ViU3RyaW5nOjpmcm9tVVRGOCgiYXBwbGljYXRp
b24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iKTsKKworVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBs
dWdpbihXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykKKyAgICA6IG1fZnJhbWUo
ZnJhbWUpCisgICAgLCBtX2NvbnRhaW5lcigwKQorICAgICwgbV9jb250ZXh0KDApCit7CisgICAg
bWVtc2V0KCZtX3NjZW5lLCAwLCBzaXplb2YobV9zY2VuZSkpOworfQorCitUZXN0V2ViUGx1Z2lu
Ojp+VGVzdFdlYlBsdWdpbigpCit7Cit9CisKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6
ZShXZWJQbHVnaW5Db250YWluZXIqIGNvbnRhaW5lcikKK3sKKyAgICBtX2NvbnRleHQgPSB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBpZiAo
IW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgV2ViR3JhcGhpY3NDb250
ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnM7CisgICAgaWYgKCFtX2NvbnRleHQtPmluaXRpYWxpemUo
YXR0cnMsIG1fZnJhbWUtPnZpZXcoKSwgZmFsc2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghaW5pdFNjZW5lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fY29udGFpbmVyID0gY29udGFpbmVyOworICAgIG1fY29udGFpbmVyLT5zZXRCYWNr
aW5nVGV4dHVyZUlkKG1fY29udGV4dC0+Z2V0UGxhdGZvcm1UZXh0dXJlSWQoKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZGVzdHJveSgpCit7CisgICAgZGVz
dHJveVNjZW5lKCk7CisKKyAgICBkZWxldGUgbV9jb250ZXh0OworICAgIG1fY29udGV4dCA9IDA7
CisKKyAgICBtX2NvbnRhaW5lciA9IDA7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK3ZvaWQgVGVz
dFdlYlBsdWdpbjo6dXBkYXRlR2VvbWV0cnkoCisgICAgICAgIGNvbnN0IFdlYlJlY3QmIGZyYW1l
UmVjdCwKKyAgICAgICAgY29uc3QgV2ViUmVjdCYgY2xpcFJlY3QsCisgICAgICAgIGNvbnN0IFdl
YlZlY3RvcjxXZWJSZWN0PiYgY3V0T3V0c1JlY3RzLAorICAgICAgICBib29sIGlzVmlzaWJsZSkK
K3sKKyAgICBpZiAoY2xpcFJlY3QgPT0gbV9yZWN0KQorICAgICAgICByZXR1cm47CisgICAgbV9y
ZWN0ID0gY2xpcFJlY3Q7CisKKyAgICBtX2NvbnRleHQtPnJlc2hhcGUobV9yZWN0LndpZHRoLCBt
X3JlY3QuaGVpZ2h0KTsKKyAgICBkcmF3U2NlbmUoKTsKKyAgICBtX2NvbnRleHQtPnByZXBhcmVU
ZXh0dXJlKCk7CisKKyAgICBtX2NvbnRhaW5lci0+Y29tbWl0QmFja2luZ1RleHR1cmUoKTsKK30K
KworYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0U2NlbmUoKQoreworICAgIGNvbnN0IGNoYXIgdlNo
YWRlclNyY1tdID0gIAorICAgICAgICAiYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOyAgICBcbiIK
KyAgICAgICAgInZvaWQgbWFpbigpICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICJ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAiICAgIGdsX1Bvc2l0aW9uID0g
dlBvc2l0aW9uOyBcbiIKKyAgICAgICAgIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i
OworCisgICAgY29uc3QgY2hhciBmU2hhZGVyU3JjW10gPSAgCisgICAgICAgICJwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsgICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAgICAgInZvaWQgbWFp
bigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAieyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICIgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDAuMCwgMC4wLCAwLjUpOyBcbiIKKyAgICAgICAgIn0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIjsKKworICAgIG1f
c2NlbmUucHJvZ3JhbSA9IGxvYWRQcm9ncmFtKHZTaGFkZXJTcmMsIGZTaGFkZXJTcmMsIG1fY29u
dGV4dCk7CisgICAgaWYgKCFtX3NjZW5lLnByb2dyYW0pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBtX2NvbnRleHQtPmJpbmRBdHRyaWJMb2NhdGlvbihtX3NjZW5lLnByb2dyYW0sIDAsICJ2
UG9zaXRpb24iKTsKKworICAgIGZsb2F0IHZWZXJ0aWNlc1tdID0geyAwLjBmLCAgMC44ZiwgMC4w
ZiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgLTAuOGYsIC0wLjhmLCAwLjBmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjhmLCAtMC44ZiwgMC4wZiB9OworICAgIG1fc2NlbmUudmJv
ID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKTsKKyAgICBtX2NvbnRleHQtPmJpbmRCdWZmZXIo
R0xfQVJSQVlfQlVGRkVSLCBtX3NjZW5lLnZibyk7CisgICAgbV9jb250ZXh0LT5idWZmZXJEYXRh
KEdMX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKHZWZXJ0aWNlcyksIDAsIEdMX1NUQVRJQ19EUkFXKTsK
KyAgICBtX2NvbnRleHQtPmJ1ZmZlclN1YkRhdGEoR0xfQVJSQVlfQlVGRkVSLCAwLCBzaXplb2Yo
dlZlcnRpY2VzKSwgdlZlcnRpY2VzKTsKKworICAgIC8vIENsZWFyIGNvbG9yOiB0cmFuc2x1Y2Vu
dCBncmVlbi4KKyAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoMC4wLCAxLjAsIDAuMCwgMC41KTsK
KyAgICBtX2NvbnRleHQtPmVuYWJsZShHTF9CTEVORCk7CisgICAgbV9jb250ZXh0LT5ibGVuZEZ1
bmMoR0xfT05FLCBHTF9PTkVfTUlOVVNfU1JDX0FMUEhBKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBUZXN0V2ViUGx1Z2luOjpkcmF3U2NlbmUoKQoreworICAgIG1fY29udGV4dC0+dmll
d3BvcnQoMCwgMCwgbV9yZWN0LndpZHRoLCBtX3JlY3QuaGVpZ2h0KTsKKyAgICBtX2NvbnRleHQt
PmNsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOworCisgICAgbV9jb250ZXh0LT51c2VQcm9ncmFt
KG1fc2NlbmUucHJvZ3JhbSk7CisgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdMX0FSUkFZX0JV
RkZFUiwgbV9zY2VuZS52Ym8pOworICAgIG1fY29udGV4dC0+ZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkoMCk7CisgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIEdMX0ZMT0FU
LCBHTF9GQUxTRSwgMCwgMCk7CisgICAgbV9jb250ZXh0LT5kcmF3QXJyYXlzKEdMX1RSSUFOR0xF
UywgMCwgMyk7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZGVzdHJveVNjZW5lKCkKK3sKKyAg
ICBpZiAobV9zY2VuZS5wcm9ncmFtKSB7CisgICAgICAgIG1fY29udGV4dC0+ZGVsZXRlUHJvZ3Jh
bShtX3NjZW5lLnByb2dyYW0pOworICAgICAgICBtX3NjZW5lLnByb2dyYW0gPSAwOworICAgIH0K
KyAgICBpZiAobV9zY2VuZS52Ym8pIHsKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIo
bV9zY2VuZS52Ym8pOworICAgICAgICBtX3NjZW5lLnZibyA9IDA7CisgICAgfQorfQorCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShyZXZpc2lv
biAwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXN0V2ViUGx1Z2luX2gKKyNkZWZp
bmUgVGVzdFdlYlBsdWdpbl9oCisKKyNpbmNsdWRlICJXZWJQbHVnaW4uaCIKKyNpbmNsdWRlICJX
ZWJSZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0
M0Q7Cit9CisKKy8vIEEgZmFrZSBpbXBsZW1lbnRpb24gb2YgV2ViS2l0OjpXZWJQbHVnaW4gZm9y
IHRlc3RpbmcgcHVycG9zZXMuCisvLyBJdCBkcmF3cyBhIHJlZCB0cmlhbmdsZSBvdmVyIGdyZWVu
IGJhY2tncm91bmQgdXNpbmcgV2ViR3JhcGhpY3NDb250ZXh0M0QuCisvLyBUaGlzIGJlaGF2aW9y
IGNhbiBiZSBzdXRvbWl6ZWQgaW4gZnV0dXJlIHVzaW5nIFdlYlBsdWdpblBhcmFtcy4KK2NsYXNz
IFRlc3RXZWJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4geworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyBrTWltZVR5cGU7CisKKyAgICBUZXN0V2Vi
UGx1Z2luKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYp
OworICAgIH5UZXN0V2ViUGx1Z2luKCk7CisKKyAgICAvLyBXZWJQbHVnaW4gbWV0aG9kczoKKyAg
ICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lciopOwor
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCBOUE9iamVjdCogc2NyaXB0
YWJsZU9iamVjdCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViS2l0
OjpXZWJDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlR2VvbWV0cnkoCisgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGZy
YW1lUmVjdCwKKyAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgY2xpcFJlY3QsCisg
ICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlJlY3Q+JiBjdXRP
dXRzUmVjdHMsCisgICAgICAgICAgICBib29sIGlzVmlzaWJsZSk7CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUZvY3VzKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNpYmlsaXR5
KGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBhY2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYktp
dDo6V2ViSW5wdXRFdmVudCYsIFdlYktpdDo6V2ViQ3Vyc29ySW5mbyYpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJLaXQ6Oldl
YlVSTFJlc3BvbnNlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBX
ZWJLaXQ6OldlYlVSTEVycm9yJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmdGcmFtZVJlcXVlc3QoY29uc3QgV2ViS2l0OjpXZWJVUkwmLCB2b2lkKiBub3RpZnlEYXRhKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3QoY29uc3QgV2Vi
S2l0OjpXZWJVUkwmLCB2b2lkKiBub3RpZnlEYXRhLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9y
JikgeyB9CisKK3ByaXZhdGU6CisgICAgc3RydWN0IFNjZW5lIHsKKyAgICAgICAgdW5zaWduZWQg
cHJvZ3JhbTsKKyAgICAgICAgdW5zaWduZWQgdmJvOworICAgIH07CisgICAgYm9vbCBpbml0U2Nl
bmUoKTsKKyAgICB2b2lkIGRyYXdTY2VuZSgpOworICAgIHZvaWQgZGVzdHJveVNjZW5lKCk7CisK
KyAgICBXZWJLaXQ6OldlYkZyYW1lKiBtX2ZyYW1lOworICAgIFdlYktpdDo6V2ViUGx1Z2luQ29u
dGFpbmVyKiBtX2NvbnRhaW5lcjsKKworICAgIFdlYktpdDo6V2ViUmVjdCBtX3JlY3Q7CisgICAg
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OworICAgIFNjZW5lIG1fc2Nl
bmU7Cit9OworCisjZW5kaWYgLy8gVGVzdFBlcHBlclBsdWdpbl9oCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkocmV2aXNpb24gOTYzMjYpCisrKyBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMYXlvdXRUZXN0Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlRlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRlc3RTaGVs
bC5oIgorI2luY2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKICNpbmNsdWRlICJUZXN0V2ViV29ya2Vy
LmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgogI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdl
LmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2Nr
LmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCisj
aW5jbHVkZSAiV2ViUGx1Z2luUGFyYW1zLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCiAj
aW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKQEAgLTc3Niw2
ICs3NzgsOSBAQCB2b2lkIFdlYlZpZXdIb3N0OjpydW5Nb2RhbCgpCiAKIFdlYlBsdWdpbiogV2Vi
Vmlld0hvc3Q6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlBsdWdpblBh
cmFtcyYgcGFyYW1zKQogeworICAgIGlmIChwYXJhbXMubWltZVR5cGUgPT0gVGVzdFdlYlBsdWdp
bjo6a01pbWVUeXBlKQorICAgICAgICByZXR1cm4gbmV3IFRlc3RXZWJQbHVnaW4oZnJhbWUsIHBh
cmFtcyk7CisKICAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkNyZWF0ZVdlYlBsdWdpbihmcmFt
ZSwgcGFyYW1zKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTYzNDIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOS0yOSAg
QWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgbGF5
b3V0IHRlc3RzIGZvciBQZXBwZXIgM0QgY29tcG9zaXRvciBwYXRoCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTAyNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvcGx1Z2luczogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBo
YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWw6IEFkZGVkLgorCiAyMDExLTA5LTI5
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2Ugc2hvdWxkIGln
bm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIEdldFJlYWxOYW1lZFByb3BlcnR5CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1h
bHBoYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDExIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDgKKyAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc4NHgwCitsYXllciBhdCAoMCwwKSBzaXplIDI1NngyNTYKKyAgUmVuZGVyQmxv
Y2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMjU2eDI1NiBbYmdjb2xvcj0jMDAw
MEZGN0ZdCitsYXllciBhdCAoMTkyLDApIHNpemUgMjU2eDI1NgorICBSZW5kZXJFbWJlZGRlZE9i
amVjdCB7RU1CRUR9IGF0ICgxOTIsMCkgc2l6ZSAyNTZ4MjU2CitsYXllciBhdCAoMzg0LDApIHNp
emUgMjU2eDI1NgorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDM4NCwwKSBz
aXplIDI1NngyNTYgW2JnY29sb3I9IzAwMDBGRjdGXQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4t
YWxwaGEtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBM
RgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdp
bnMvd2VicGx1Z2luLWFscGhhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3Bs
dWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjYm94MSB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIGxl
ZnQ6IDBweDsKKyAgICAgICAgd2lkdGg6IDI1NnB4OworICAgICAgICBoZWlnaHQ6IDI1NnB4Owor
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwyNTUsMC41KTsKKyAgICB9CisgICAg
I3BsdWdpbiB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwcHg7
CisgICAgICAgIGxlZnQ6IDE5MnB4OworICAgICAgICB3aWR0aDogMjU2cHg7CisgICAgICAgIGhl
aWdodDogMjU2cHg7CisgICAgfQorICAgICNib3gyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDogMzg0cHg7CisgICAgICAgIHdp
ZHRoOiAyNTZweDsKKyAgICAgICAgaGVpZ2h0OiAyNTZweDsKKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiYSgwLDAsMjU1LDAuNSk7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJv
ZHk+CisgIDxkaXYgaWQ9ImJveDEiPjwvZGl2PgorICA8ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0i
YXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iPgorICA8ZGl2IGlkPSJib3gyIj48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0
bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxw
aGEtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMv
d2VicGx1Z2luLWFscGhhLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10
eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlB
QUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTJaRGRrWlRrMApPRGd6WmpWbVpUTmpNRFUx
TVRjME1UazJPR05qTVRsbVl0S1pPeDBBQUEySlNVUkJWSGljN2RqYmNSelhHVVpSMEtWQUhBcFNj
U1FrCkkzRW9ncHlJRkltb0I3bElDNFp3bWRuZGZTNXJKVEIvbjVxSFhkK256NTkvZjRCYlBYMzVl
dlVKZDNtOCtvRE4vZkwxOGVvVDd2TG8KSDhRZFBuKysrZ0tPOUkrckR3QUFXSTNBQWdDSUNTd0Fn
SmpBQWdDSUNTd0FnSmpBQWdDSUNTd0FnSmpBQWdDSUNTd0FnSmpBQWdDSQpDU3dBZ0pqQUFnQ0lD
U3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFn
Q0lDU3dBCmdKakFBZ0NJQ1N3QWdKakFBZ0NJQ1N5WTFaZWZuNzc4L0hUMUZRQzhRR0FCQU1RRUZr
enArM1pseEFJWWtNQUNBSWdKTEpqUHM5WEsKaUFVd0dvRUZBQkFUV0RDWkYvY3FJeGJBVUFRV0FF
Qk1ZTUZNWGxtcWpGZ0E0eEJZQUFBeGdRWFRlSE9qTW1JQkRFSmdBUURFQkJiTQo0WjNybEJFTFlB
UUNDd0FnSnJCZ0FoL2FwWXhZQUpjVFdBQUFNWUVGbzd0aGtUSmlBVnhMWUFFQXhBUVdETzNtTGNx
SUJYQWhnUVVBCkVCTllNSzQ3VnlnakZzQlZCQllBUUV4Z3dhQ1MvY21JQlhBSmdRVUFFQk5ZTUtK
d2VUSmlBWnhQWUFFQXhBUVdEQ2Zmbkl4WUFDY1QKV0FBQU1ZRUZZemxvYlRKaUFaeEpZQUVBeEFR
V0RPVFFuY21JQlhBYWdRVUFFQk5ZTUlvVEZpWWpGc0E1QkJZQVFFeGd3UkJPMjVhTQpXQUFuRUZn
QUFER0JCZGM3ZVZVeVlnRWNUV0FCQU1RRUZsenNrajNKaUFWd0tJRUZBQkFUV0hDbEM1Y2tJeGJB
Y1FRV0FFQk1ZTUZsCkx0K1FMajhBWUZVQ0N3QWdKckRnR29Pc1I0T2NBYkFZZ1FVQUVCTlljSUdo
ZHFPaGpnRllnOEFDQUlnSkxEamJnSXZSZ0NjQlRFMWcKQVFERUJCYWNhdGl0YU5qREFHWWtzQUFB
WWdJTHpqUDRTalQ0ZVFBVEVWZ0FBREdCQlNlWlloK2E0a2lBOFFrc0FJQ1l3SUl6VExRTQpUWFFx
d0xBRUZnQkFUR0RCNGFiYmhLWTdHR0EwQWdzQUlDYXc0RmlUcmtHVG5nMHdDSUVGQUJBVFdIQ2dx
WGVncVk4SHVKYkFBZ0NJCkNTdzR5Z0lMMEFLZkFIQUpnUVVBRUJOWWNJaGx0cDlsUGdUZ1RBSUxB
Q0Ftc0tDMzJPcXoyT2NBbkVCZ0FRREVCQmJFbHR4N2x2d28KZ09NSUxBQ0FtTUNDMHNKTHo4S2ZC
cEFUV0FBQU1ZRUZtZVUzbnVVL0VLQWlzQUFBWWdJTEdwdXNPNXQ4SnNDZEJCWUFRRXhnUVdDcgpY
V2VyandXNGpjQUNBSWdKTExqWGhvdk9ocDhNOENFQ0N3QWdKckRnTHR0dU9kdCtPTUI3Q0N3QWdK
akFndHR0dnVKcy92a0FyeEJZCkFBQXhnUVUzc3Q4OGVBU0F2eUd3QUFCaUFndHVZYm41emxNQS9E
K0JCUUFRRTFqd1lUYWJaendJd0RNQ0N3QWdKckRnWTZ3MUwvSXMKQVA5TFlBRUF4QVFXZklDZDVo
VWVCK0E3Z1FVQUVCTlk4RjRXbWpkNUlvQS9DU3dBZ0pqQWduZXh6YnlUaHdKNEVGZ0FBRG1CQlcr
egp5bnlJNXdJUVdBQUFNWUVGYjdESDNNQ2pBWnNUV0FBQU1ZRUZyN0hFM016VEFUc1RXQUFBTVlF
RmY4c0djeWNQQ0d4TFlBRUF4QVFXCnZNejZrdkNNd0o0RUZnQkFUR0RCQyt3dUlZOEpiRWhnQVFE
RUJCWThaM0hKZVZKZ053SUxBQ0Ftc09BdmJDMEg4YkRBVmdRV0FFQk0KWU1FUFZwWkRlVjVnSHdJ
TEFDQW1zT0MvN0NzbjhNakFKZ1FXQUVCTVlNSERnMlhsUko0YTJJSEFBZ0NJQ1N5d3Faek5nd1BM
RTFnQQpBREdCeGU2c0taZnc3TURhQkJZQVFFeGdzVFU3eW9VOFByQXdnUVVBRUJOWTdPdnAzMDlY
bjdDN3gxOS91L29FZ0VNSUxBQ0FtTUJpClUrYXJRUml4Z0NVSkxBQ0FtTUJpUithcm9SaXhnUFVJ
TEFDQW1NQmlPK2FyQVJteGdNVUlMQUNBbU1CaUwrYXJZUm14Z0pVSUxBQ0EKbU1CaUkrYXJ3Um14
Z0dVSUxBQ0FtTUJpRithcktSaXhnRFVJTEFDQW1NQmlDK2FyaVJpeGdBVUlMQUNBbU1CaWZlYXI2
Uml4Z05rSgpMQUNBbU1CaWNlYXJTUm14Z0trSkxBQ0FtTUJpWmVhcnFSbXhnSGtKTEFDQW1NQmlX
ZWFyQlJpeGdFa0pMQUNBbU1CaVRlYXJaUml4CmdCa0pMQUNBbU1CaVFlYXJ4Uml4Z09rSUxBQ0Ft
TUJpTmVhckpSbXhnTGtJTEFDQW1NQmlLZWFyaFJteGdJa0lMQUNBbU1CaUhlYXIKNVJteGdGa0lM
QUNBbU1CaUVlYXJUUml4Z0NrSUxBQ0FtTUJpQmVhcnJSaXhnUEVKTEFDQW1NQmlldWFyRFJteGdN
RUpMQUNBbU1CaQpidWFyYlJteGdKRUpMQUNBbU1CaVl1YXJ6Um14Z0dFSkxBQ0FtTUJpVnVZckhv
eFl3S2dFRmdCQVRHQXhKZk1WM3hteGdBRUpMQUNBCm1NQmlQdVlybmpGaUFhTVJXQUFBTVlIRlpN
eFh2TWlJQlF4RllBRUF4QVFXTXpGZjhRb2pGakFPZ1FVQUVCTllUTU44eFp1TVdNQWcKQkJZQVFF
eGdNUWZ6RmU5a3hBSkdJTEFBQUdJQ2l3bVlyL2dRSXhad09ZRUZBQkFUV0l6T2ZNVU5qRmpBdFFR
V0FFQk1ZREUwOHhVMwpNMklCRnhKWUFBQXhnY1c0ekZmY3lZZ0ZYRVZnQVFERUJCYURNbCtSTUdJ
Qmx4QllBQUF4Z2NXSXpGZUVqRmpBK1FRV0FFQk1ZREVjCjh4VTVJeFp3TW9FRkFCQVRXSXpGZk1W
QmpGakFtUVFXQUVCTVlERVE4eFdITW1JQnAvbnA2Z1BnaDhkL1BaNzlpeWYvSG4vMXkzLysKZWZV
SkFJZXdZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVB
eEFRV0FFQk1ZQUVBeEFRVwpBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJN
WUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNCllBRUF4RDU5Ky9idDZoc0FBSlpp
d1FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3MK
QUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFp
QWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3
QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBCmlBa3NBSUNZd0FJQWlBa3NB
SUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlB
a3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdB
SUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJ
Q1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBCmlBa3NBSUNZd0FJQWlB
a3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJ
QWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlD
WXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFr
c0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBCmlBa3NBSUNZd0FJ
QWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZ
d0FJQWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtz
QUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlB
aUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBCmlBa3NBSUNZ
d0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NB
SUNZd0FJQWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFp
QWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3
QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBCmlBa3NB
SUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlB
a3NBSUNZd0FJQWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdB
SUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJ
Q1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBCmlB
a3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJ
QWlBa3NBSUNZd0FJQWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlD
WXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlBaUFr
c0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlB
CmlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZ
d0FJQWlBa3NBSUNZd0FJQWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtz
QUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3QUlB
aUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3
QUlBCmlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlBa3NB
SUNZd0FJQWlBa3NBSUNZd0FJQWlBa3MKQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFp
QWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWXdBSUFpQWtzQUlDWQp3QUlBaUFrc0FJQ1l3
QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJQ1l3QUlBaUFrc0FJ
Q1l3QUlBCmlBa3NBSUNZd0FJQWlBa3NBSUNZd0FJQWlQMEJJNyt0Y3Z3RDdmOEFBQUFBU1VWT1JL
NUNZSUk9Cgo=
</data>
<flag name="review"
          id="106401"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110000</attachid>
            <date>2011-10-06 13:08:09 -0700</date>
            <delta_ts>2011-10-06 14:00:18 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>69027.patch</filename>
            <type>text/plain</type>
            <size>44934</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjU5NikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDktMjkgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgUGVwcGVyIDNEIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTEwLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVy
eXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gV2ViIEluc3BlY3Rvcjogc2F2
ZSBpbnNwZWN0b3Igc3RhdGUgaW50byBzaW5nbGUgc3RyaW5nIGluc3RlYWQgb2Ygc3RyaW5nIG1h
cApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2lu
Q29udGFpbmVySW1wbC5jcHAJKHJldmlzaW9uIDk2NTk2KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
Niw3ICsyNjYsNyBAQCBib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50UGFnZShpCiAK
IHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRFbmQoKQogewotICAgIHJldHVybiBt
X3dlYlBsdWdpbi0+cHJpbnRFbmQoKTsKKyAgICBtX3dlYlBsdWdpbi0+cHJpbnRFbmQoKTsKIH0K
IAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjb3B5KCkKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2NTk2KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDkt
MjkgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRk
IGxheW91dCB0ZXN0cyBmb3IgUGVwcGVyIDNEIGNvbXBvc2l0b3IgcGF0aAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdl
YlBsdWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdp
bik6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjp+VGVzdFdlYlBsdWdpbik6CisgICAgICAgIChU
ZXN0V2ViUGx1Z2luOjppbml0aWFsaXplKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRlc3Ry
b3kpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpzY3JpcHRhYmxlT2JqZWN0KToKKyAgICAgICAgKFRlc3RXZWJQbHVn
aW46OnBhaW50KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZUZvY3VzKToKKyAgICAg
ICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZVZpc2liaWxpdHkpOgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6YWNjZXB0c0lucHV0RXZlbnRzKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmhhbmRs
ZUlucHV0RXZlbnQpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFRl
c3RXZWJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6
ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkRmluaXNoTG9hZGlu
Z0ZyYW1lUmVxdWVzdCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpkaWRGYWlsTG9hZGluZ0Zy
YW1lUmVxdWVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTEtMTAt
MDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBnYXJkZW4tby1t
YXRpYyBzaG91bGQgcmVtb3ZlIGJ1aWxkZXJzIGZyb20gdGhlIGZhaWx1cmUgZ3JpZCBvbmNlIHRo
ZXkgc3RhcnQgdG8gcGFzcwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpCShyZXZpc2lvbiA5NjU5NikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKICAgICAgICAgICAg
ICdjaHJvbWl1bS9UZXN0U2hlbGxHdGsuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0
U2hlbGxNYWMubW0nLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RTaGVsbFdpbi5jcHAnLAor
ICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwJywKKyAgICAgICAgICAgICdj
aHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1
dENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXh0SW5wdXRDb250cm9s
bGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmNwcCcsCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAko
cmV2aXNpb24gMCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJUZXN0V2ViUGx1Z2luLmgiCisKKyNpbmNsdWRlICJXZWJGcmFt
ZS5oIgorI2luY2x1ZGUgIldlYkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViS2l0
LmgiCisjaW5jbHVkZSAiV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViUGx1
Z2luQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luUGFyYW1zLmgiCisjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLy8gR0xlbnVt
IHZhbHVlcyBjb3BpZWQgZnJvbSBnbDIuaC4KKyNkZWZpbmUgR0xfRkFMU0UgICAgICAgICAgICAg
ICAgICAwCisjZGVmaW5lIEdMX1RSVUUgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBHTF9P
TkUgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgR0xfVFJJQU5HTEVTICAgICAgICAgICAg
ICAweDAwMDQKKyNkZWZpbmUgR0xfT05FX01JTlVTX1NSQ19BTFBIQSAgICAweDAzMDMKKyNkZWZp
bmUgR0xfQkxFTkQgICAgICAgICAgICAgICAgICAweDBCRTIKKyNkZWZpbmUgR0xfRkxPQVQgICAg
ICAgICAgICAgICAgICAweDE0MDYKKyNkZWZpbmUgR0xfQ09MT1JfQlVGRkVSX0JJVCAgICAgICAw
eDQwMDAKKyNkZWZpbmUgR0xfQVJSQVlfQlVGRkVSICAgICAgICAgICAweDg4OTIKKyNkZWZpbmUg
R0xfU1RBVElDX0RSQVcgICAgICAgICAgICAweDg4RTQKKyNkZWZpbmUgR0xfRlJBR01FTlRfU0hB
REVSICAgICAgICAweDhCMzAKKyNkZWZpbmUgR0xfVkVSVEVYX1NIQURFUiAgICAgICAgICAweDhC
MzEKKyNkZWZpbmUgR0xfQ09NUElMRV9TVEFUVVMgICAgICAgICAweDhCODEKKyNkZWZpbmUgR0xf
TElOS19TVEFUVVMgICAgICAgICAgICAweDhCODIKKworc3RhdGljIHZvaWQgcHJlbXVsdGlwbHlB
bHBoYShjb25zdCB1bnNpZ25lZCBjb2xvckluWzNdLCBmbG9hdCBhbHBoYSwgZmxvYXQgY29sb3JP
dXRbNF0pCit7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICBjb2xvck91
dFtpXSA9IChjb2xvckluW2ldIC8gMjU1LjBmKSAqIGFscGhhOworICB9CisgIGNvbG9yT3V0WzNd
ID0gYWxwaGE7Cit9CisKK1Rlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJG
cmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6
V2ViUGx1Z2luUGFyYW1zJiBwYXJhbXMpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9j
b250YWluZXIoMCkKKyAgICAsIG1fY29udGV4dCgwKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJT
dHJpbmcga0F0dHJpYnV0ZVByaW1pdGl2ZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInByaW1pdGl2
ZSIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJpYnV0ZUJhY2tncm91bmRDb2xv
ciA9IFdlYlN0cmluZzo6ZnJvbVVURjgoImJhY2tncm91bmQtY29sb3IiKTsKKyAgICBzdGF0aWMg
Y29uc3QgV2ViU3RyaW5nIGtBdHRyaWJ1dGVQcmltaXRpdmVDb2xvciA9IFdlYlN0cmluZzo6ZnJv
bVVURjgoInByaW1pdGl2ZS1jb2xvciIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0
dHJpYnV0ZU9wYWNpdHkgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJvcGFjaXR5Iik7CisKKyAgICBB
U1NFUlQocGFyYW1zLmF0dHJpYnV0ZU5hbWVzLnNpemUoKSA9PSBwYXJhbXMuYXR0cmlidXRlVmFs
dWVzLnNpemUoKSk7CisgICAgc2l6ZV90IHNpemUgPSBwYXJhbXMuYXR0cmlidXRlTmFtZXMuc2l6
ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGNv
bnN0IFdlYlN0cmluZyYgYXR0cmlidXRlTmFtZSA9IHBhcmFtcy5hdHRyaWJ1dGVOYW1lc1tpXTsK
KyAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSA9IHBhcmFtcy5hdHRyaWJ1
dGVWYWx1ZXNbaV07CisKKyAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZVBy
aW1pdGl2ZSkKKyAgICAgICAgICAgIG1fc2NlbmUucHJpbWl0aXZlID0gcGFyc2VQcmltaXRpdmUo
YXR0cmlidXRlVmFsdWUpOworICAgICAgICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRy
aWJ1dGVCYWNrZ3JvdW5kQ29sb3IpCisgICAgICAgICAgICBwYXJzZUNvbG9yKGF0dHJpYnV0ZVZh
bHVlLCBtX3NjZW5lLmJhY2tncm91bmRDb2xvcik7CisgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0
ZU5hbWUgPT0ga0F0dHJpYnV0ZVByaW1pdGl2ZUNvbG9yKQorICAgICAgICAgICAgcGFyc2VDb2xv
cihhdHRyaWJ1dGVWYWx1ZSwgbV9zY2VuZS5wcmltaXRpdmVDb2xvcik7CisgICAgICAgIGVsc2Ug
aWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZU9wYWNpdHkpCisgICAgICAgICAgICBtX3Nj
ZW5lLm9wYWNpdHkgPSBwYXJzZU9wYWNpdHkoYXR0cmlidXRlVmFsdWUpOworICAgIH0KK30KKwor
VGVzdFdlYlBsdWdpbjo6flRlc3RXZWJQbHVnaW4oKQoreworfQorCitjb25zdCBXZWJTdHJpbmcm
IFRlc3RXZWJQbHVnaW46Om1pbWVUeXBlKCkKK3sKKyAgICBzdGF0aWMgY29uc3QgV2ViU3RyaW5n
IGtNaW1lVHlwZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoImFwcGxpY2F0aW9uL3gtd2Via2l0LXRl
c3Qtd2VicGx1Z2luIik7CisgICAgcmV0dXJuIGtNaW1lVHlwZTsKK30KKworYm9vbCBUZXN0V2Vi
UGx1Z2luOjppbml0aWFsaXplKFdlYlBsdWdpbkNvbnRhaW5lciogY29udGFpbmVyKQoreworICAg
IG1fY29udGV4dCA9IHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jcmVhdGVHcmFwaGljc0NvbnRl
eHQzRCgpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyczsKKyAgICBpZiAoIW1fY29u
dGV4dC0+aW5pdGlhbGl6ZShhdHRycywgbV9mcmFtZS0+dmlldygpLCBmYWxzZSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpbml0U2NlbmUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9jb250YWluZXIgPSBjb250YWluZXI7CisgICAgbV9j
b250YWluZXItPnNldEJhY2tpbmdUZXh0dXJlSWQobV9jb250ZXh0LT5nZXRQbGF0Zm9ybVRleHR1
cmVJZCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkZXN0
cm95KCkKK3sKKyAgICBkZXN0cm95U2NlbmUoKTsKKworICAgIGRlbGV0ZSBtX2NvbnRleHQ7Cisg
ICAgbV9jb250ZXh0ID0gMDsKKworICAgIG1fY29udGFpbmVyID0gMDsKKyAgICBtX2ZyYW1lID0g
MDsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjp1cGRhdGVHZW9tZXRyeShjb25zdCBXZWJSZWN0
JiBmcmFtZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YlJlY3QmIGNsaXBSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJWZWN0b3I8V2ViUmVjdD4mIGN1dE91dHNSZWN0cywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBpc1Zpc2libGUpCit7CisgICAgaWYgKGNsaXBSZWN0ID09IG1f
cmVjdCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcmVjdCA9IGNsaXBSZWN0OworCisgICAgbV9j
b250ZXh0LT5yZXNoYXBlKG1fcmVjdC53aWR0aCwgbV9yZWN0LmhlaWdodCk7CisgICAgZHJhd1Nj
ZW5lKCk7CisgICAgbV9jb250ZXh0LT5wcmVwYXJlVGV4dHVyZSgpOworCisgICAgbV9jb250YWlu
ZXItPmNvbW1pdEJhY2tpbmdUZXh0dXJlKCk7Cit9CisKK1Rlc3RXZWJQbHVnaW46OlByaW1pdGl2
ZSBUZXN0V2ViUGx1Z2luOjpwYXJzZVByaW1pdGl2ZShjb25zdCBXZWJTdHJpbmcmIHN0cmluZykK
K3sKKyAgICBzdGF0aWMgY29uc3QgV2ViU3RyaW5nIGtQcmltaXRpdmVOb25lID0gV2ViU3RyaW5n
Ojpmcm9tVVRGOCgibm9uZSIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga1ByaW1pdGl2
ZVRyaWFuZ2xlID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgidHJpYW5nbGUiKTsKKworICAgIFByaW1p
dGl2ZSBwcmltaXRpdmUgPSBQcmltaXRpdmVOb25lOworICAgIGlmIChzdHJpbmcgPT0ga1ByaW1p
dGl2ZU5vbmUpCisgICAgICAgIHByaW1pdGl2ZSA9IFByaW1pdGl2ZU5vbmU7CisgICAgZWxzZSBp
ZiAoc3RyaW5nID09IGtQcmltaXRpdmVUcmlhbmdsZSkKKyAgICAgICAgcHJpbWl0aXZlID0gUHJp
bWl0aXZlVHJpYW5nbGU7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gcHJpbWl0aXZlOworfQorCisvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxk
IGFscmVhZHkgZXhpc3QuIFVzZSBpdC4KKy8vIEZvciBub3cganVzdCBwYXJzZSBwcmltYXJ5IGNv
bG9ycy4KK3ZvaWQgVGVzdFdlYlBsdWdpbjo6cGFyc2VDb2xvcihjb25zdCBXZWJTdHJpbmcmIHN0
cmluZywgdW5zaWduZWQgY29sb3JbM10pCit7CisgICAgY29sb3JbMF0gPSBjb2xvclsxXSA9IGNv
bG9yWzJdID0gMDsKKyAgICBpZiAoc3RyaW5nID09ICJibGFjayIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChzdHJpbmcgPT0gInJlZCIpCisgICAgICAgIGNvbG9yWzBdID0gMjU1OworICAg
IGVsc2UgaWYgKHN0cmluZyA9PSAiZ3JlZW4iKQorICAgICAgICBjb2xvclsxXSA9IDI1NTsKKyAg
ICBlbHNlIGlmIChzdHJpbmcgPT0gImJsdWUiKQorICAgICAgICBjb2xvclsyXSA9IDI1NTsKKyAg
ICBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitmbG9hdCBUZXN0V2Vi
UGx1Z2luOjpwYXJzZU9wYWNpdHkoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGZsb2F0PihhdG9mKHN0cmluZy51dGY4KCkuZGF0YSgpKSk7Cit9CisK
K2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdFNjZW5lKCkKK3sKKyAgICBmbG9hdCBjb2xvcls0XTsK
KyAgICBwcmVtdWx0aXBseUFscGhhKG1fc2NlbmUuYmFja2dyb3VuZENvbG9yLCBtX3NjZW5lLm9w
YWNpdHksIGNvbG9yKTsKKyAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoY29sb3JbMF0sIGNvbG9y
WzFdLCBjb2xvclsyXSwgY29sb3JbM10pOworCisgICAgbV9jb250ZXh0LT5lbmFibGUoR0xfQkxF
TkQpOworICAgIG1fY29udGV4dC0+YmxlbmRGdW5jKEdMX09ORSwgR0xfT05FX01JTlVTX1NSQ19B
TFBIQSk7CisKKyAgICByZXR1cm4gbV9zY2VuZS5wcmltaXRpdmUgIT0gUHJpbWl0aXZlTm9uZSA/
IGluaXRQcm9ncmFtKCkgJiYgaW5pdFByaW1pdGl2ZSgpIDogdHJ1ZTsKK30KKwordm9pZCBUZXN0
V2ViUGx1Z2luOjpkcmF3U2NlbmUoKQoreworICAgIG1fY29udGV4dC0+dmlld3BvcnQoMCwgMCwg
bV9yZWN0LndpZHRoLCBtX3JlY3QuaGVpZ2h0KTsKKyAgICBtX2NvbnRleHQtPmNsZWFyKEdMX0NP
TE9SX0JVRkZFUl9CSVQpOworCisgICAgaWYgKG1fc2NlbmUucHJpbWl0aXZlICE9IFByaW1pdGl2
ZU5vbmUpCisgICAgICAgIGRyYXdQcmltaXRpdmUoKTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2lu
OjpkZXN0cm95U2NlbmUoKQoreworICAgIGlmIChtX3NjZW5lLnByb2dyYW0pIHsKKyAgICAgICAg
bV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKG1fc2NlbmUucHJvZ3JhbSk7CisgICAgICAgIG1fc2Nl
bmUucHJvZ3JhbSA9IDA7CisgICAgfQorICAgIGlmIChtX3NjZW5lLnZibykgeworICAgICAgICBt
X2NvbnRleHQtPmRlbGV0ZUJ1ZmZlcihtX3NjZW5lLnZibyk7CisgICAgICAgIG1fc2NlbmUudmJv
ID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdFByb2dyYW0oKQorewor
ICAgIGNvbnN0IFdHQzNEY2hhciB2ZXJ0ZXhTb3VyY2VbXSA9CisgICAgICAgICJhdHRyaWJ1dGUg
dmVjNCBwb3NpdGlvbjsgICAgXG4iCisgICAgICAgICJ2b2lkIG1haW4oKSB7ICAgICAgICAgICAg
ICAgXG4iCisgICAgICAgICIgICAgZ2xfUG9zaXRpb24gPSBwb3NpdGlvbjsgXG4iCisgICAgICAg
ICJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iOworCisgICAgY29uc3QgV0dDM0RjaGFy
IGZyYWdtZW50U291cmNlW10gPQorICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7ICBc
biIKKyAgICAgICAgInVuaWZvcm0gdmVjNCBjb2xvcjsgICAgICAgXG4iCisgICAgICAgICJ2b2lk
IG1haW4oKSB7ICAgICAgICAgICAgIFxuIgorICAgICAgICAiICAgIGdsX0ZyYWdDb2xvciA9IGNv
bG9yOyBcbiIKKyAgICAgICAgIn0gICAgICAgICAgICAgICAgICAgICAgICAgXG4iOworCisgICAg
bV9zY2VuZS5wcm9ncmFtID0gbG9hZFByb2dyYW0odmVydGV4U291cmNlLCBmcmFnbWVudFNvdXJj
ZSk7CisgICAgaWYgKCFtX3NjZW5lLnByb2dyYW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIG1fc2NlbmUuY29sb3JMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9u
KG1fc2NlbmUucHJvZ3JhbSwgImNvbG9yIik7CisgICAgbV9zY2VuZS5wb3NpdGlvbkxvY2F0aW9u
ID0gbV9jb250ZXh0LT5nZXRBdHRyaWJMb2NhdGlvbihtX3NjZW5lLnByb2dyYW0sICJwb3NpdGlv
biIpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFRlc3RXZWJQbHVnaW46OmluaXRQcmlt
aXRpdmUoKQoreworICAgIEFTU0VSVChtX3NjZW5lLnByaW1pdGl2ZSA9PSBQcmltaXRpdmVUcmlh
bmdsZSk7CisKKyAgICBtX3NjZW5lLnZibyA9IG1fY29udGV4dC0+Y3JlYXRlQnVmZmVyKCk7Cisg
ICAgaWYgKCFtX3NjZW5lLnZibykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3Qg
ZmxvYXQgdmVydGljZXNbXSA9IHsgMC4wZiwgIDAuOGYsIDAuMGYsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtMC44ZiwgLTAuOGYsIDAuMGYsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC44ZiwgLTAuOGYsIDAuMGYgfTsKKyAgICBtX2NvbnRleHQtPmJpbmRCdWZmZXIo
R0xfQVJSQVlfQlVGRkVSLCBtX3NjZW5lLnZibyk7CisgICAgbV9jb250ZXh0LT5idWZmZXJEYXRh
KEdMX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKHZlcnRpY2VzKSwgMCwgR0xfU1RBVElDX0RSQVcpOwor
ICAgIG1fY29udGV4dC0+YnVmZmVyU3ViRGF0YShHTF9BUlJBWV9CVUZGRVIsIDAsIHNpemVvZih2
ZXJ0aWNlcyksIHZlcnRpY2VzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUZXN0V2Vi
UGx1Z2luOjpkcmF3UHJpbWl0aXZlKCkKK3sKKyAgICBBU1NFUlQobV9zY2VuZS5wcmltaXRpdmUg
PT0gUHJpbWl0aXZlVHJpYW5nbGUpOworICAgIEFTU0VSVChtX3NjZW5lLnZibyk7CisgICAgQVNT
RVJUKG1fc2NlbmUucHJvZ3JhbSk7CisKKyAgICBtX2NvbnRleHQtPnVzZVByb2dyYW0obV9zY2Vu
ZS5wcm9ncmFtKTsKKworICAgIC8vIEJpbmQgcHJpbWl0aXZlIGNvbG9yLgorICAgIGZsb2F0IGNv
bG9yWzRdOworICAgIHByZW11bHRpcGx5QWxwaGEobV9zY2VuZS5wcmltaXRpdmVDb2xvciwgbV9z
Y2VuZS5vcGFjaXR5LCBjb2xvcik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtNGYobV9zY2VuZS5j
b2xvckxvY2F0aW9uLCBjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdLCBjb2xvclszXSk7CisK
KyAgICAvLyBCaW5kIHByaW1pdGl2ZSB2ZXJ0aWNlcy4KKyAgICBtX2NvbnRleHQtPmJpbmRCdWZm
ZXIoR0xfQVJSQVlfQlVGRkVSLCBtX3NjZW5lLnZibyk7CisgICAgbV9jb250ZXh0LT5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheShtX3NjZW5lLnBvc2l0aW9uTG9jYXRpb24pOworICAgIG1fY29udGV4
dC0+dmVydGV4QXR0cmliUG9pbnRlcihtX3NjZW5lLnBvc2l0aW9uTG9jYXRpb24sIDMsIEdMX0ZM
T0FULCBHTF9GQUxTRSwgMCwgMCk7CisgICAgbV9jb250ZXh0LT5kcmF3QXJyYXlzKEdMX1RSSUFO
R0xFUywgMCwgMyk7Cit9CisKK3Vuc2lnbmVkIFRlc3RXZWJQbHVnaW46OmxvYWRTaGFkZXIodW5z
aWduZWQgdHlwZSwgY29uc3QgV0dDM0RjaGFyKiBzb3VyY2UpCit7CisgICAgdW5zaWduZWQgc2hh
ZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CisgICAgaWYgKHNoYWRlcikgewor
ICAgICAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7CisgICAgICAg
IG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihzaGFkZXIpOworCisgICAgICAgIGludCBjb21waWxl
ZCA9IDA7CisgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYoc2hhZGVyLCBHTF9DT01QSUxF
X1NUQVRVUywgJmNvbXBpbGVkKTsKKyAgICAgICAgaWYgKCFjb21waWxlZCkgeworICAgICAgICAg
ICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgICAgICAgICAgIHNoYWRlciA9
IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHNoYWRlcjsKK30KKwordW5zaWduZWQg
VGVzdFdlYlBsdWdpbjo6bG9hZFByb2dyYW0oY29uc3QgV0dDM0RjaGFyKiB2ZXJ0ZXhTb3VyY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXR0MzRGNoYXIqIGZy
YWdtZW50U291cmNlKQoreworICAgIHVuc2lnbmVkIHZlcnRleFNoYWRlciA9IGxvYWRTaGFkZXIo
R0xfVkVSVEVYX1NIQURFUiwgdmVydGV4U291cmNlKTsKKyAgICB1bnNpZ25lZCBmcmFnbWVudFNo
YWRlciA9IGxvYWRTaGFkZXIoR0xfRlJBR01FTlRfU0hBREVSLCBmcmFnbWVudFNvdXJjZSk7Cisg
ICAgdW5zaWduZWQgcHJvZ3JhbSA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOworICAgIGlm
ICh2ZXJ0ZXhTaGFkZXIgJiYgZnJhZ21lbnRTaGFkZXIgJiYgcHJvZ3JhbSkgeworICAgICAgICBt
X2NvbnRleHQtPmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOworICAgICAgICBt
X2NvbnRleHQtPmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7CisgICAgICAg
IG1fY29udGV4dC0+bGlua1Byb2dyYW0ocHJvZ3JhbSk7CisKKyAgICAgICAgaW50IGxpbmtlZCA9
IDA7CisgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KHByb2dyYW0sIEdMX0xJTktfU1RB
VFVTLCAmbGlua2VkKTsKKyAgICAgICAgaWYgKCFsaW5rZWQpIHsKKyAgICAgICAgICAgIG1fY29u
dGV4dC0+ZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKKyAgICAgICAgICAgIHByb2dyYW0gPSAwOwor
ICAgICAgICB9CisgICAgfQorICAgIGlmICh2ZXJ0ZXhTaGFkZXIpCisgICAgICAgIG1fY29udGV4
dC0+ZGVsZXRlU2hhZGVyKHZlcnRleFNoYWRlcik7CisgICAgaWYgKGZyYWdtZW50U2hhZGVyKQor
ICAgICAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihmcmFnbWVudFNoYWRlcik7CisKKyAgICBy
ZXR1cm4gcHJvZ3JhbTsKK30KKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVv
bC1zdHlsZQogICArIExGCgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFdlYlBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RXZWJQbHVnaW4uaAkocmV2aXNpb24gMCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFRlc3RXZWJQbHVnaW5faAorI2RlZmluZSBUZXN0V2ViUGx1Z2luX2gKKwor
I2luY2x1ZGUgIldlYlBsdWdpbi5oIgorI2luY2x1ZGUgIldlYlJlY3QuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CitjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKK30KKworLy8gQSBmYWtlIGlt
cGxlbWVudGlvbiBvZiBXZWJLaXQ6OldlYlBsdWdpbiBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKy8v
CisvLyBJdCB1c2VzIFdlYkdyYXBoaWNzQ29udGV4dDNEIHRvIHBhaW50IGEgc2NlbmUgY29uc2lz
aXRpbmcgb2YgYSBwcmltaXRpdmUKKy8vIG92ZXIgYSBiYWNrZ3JvdW5kLiBUaGUgcHJpbWl0aXZl
IGFuZCBiYWNrZ3JvdW5kIGNhbiBiZSBjdXN0b21pemVkIHVzaW5nCisvLyB0aGUgZm9sbG93aW5n
IHBsdWdpbiBwYXJhbWV0ZXJzOgorLy8gcHJpbWl0aXZlOiBub25lIChkZWZhdWx0KSwgdHJpYW5n
bGUuCisvLyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjayAoZGVmYXVsdCksIHJlZCwgZ3JlZW4sIGJs
dWUuCisvLyBwcmltaXRpdmUtY29sb3I6IGJsYWNrIChkZWZhdWx0KSwgcmVkLCBncmVlbiwgYmx1
ZS4KKy8vIG9wYWNpdHk6IFswLjAgLSAxLjBdLiBEZWZhdWx0IGlzIDEuMC4KK2NsYXNzIFRlc3RX
ZWJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4geworcHVibGljOgorICAgIFRlc3RX
ZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1z
Jik7CisgICAgdmlydHVhbCB+VGVzdFdlYlBsdWdpbigpOworCisgICAgc3RhdGljIGNvbnN0IFdl
YktpdDo6V2ViU3RyaW5nJiBtaW1lVHlwZSgpOworCisgICAgLy8gV2ViUGx1Z2luIG1ldGhvZHM6
CisgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXIq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOworICAgIHZpcnR1YWwgTlBPYmplY3QqIHNj
cmlwdGFibGVPYmplY3QoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFdl
YktpdDo6V2ViQ2FudmFzKiwgY29uc3QgV2ViS2l0OjpXZWJSZWN0JikgeyB9CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgZnJhbWVSZWN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGNs
aXBSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6Oldl
YlZlY3RvcjxXZWJLaXQ6OldlYlJlY3Q+JiBjdXRPdXRzUmVjdHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgaXNWaXNpYmxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
Rm9jdXMoYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpc2liaWxpdHkoYm9vbCkg
eyB9CisgICAgdmlydHVhbCBib29sIGFjY2VwdHNJbnB1dEV2ZW50cygpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50JiwgV2ViS2l0OjpXZWJDdXJzb3JJbmZvJikgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYktpdDo6V2ViVVJMUmVz
cG9uc2UmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGRhdGFMZW5ndGgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkaW5nKGNvbnN0IFdlYktpdDo6
V2ViVVJMRXJyb3ImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ZyYW1l
UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYlVSTCYsIHZvaWQqIG5vdGlmeURhdGEpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZGluZ0ZyYW1lUmVxdWVzdChjb25zdCBXZWJLaXQ6Oldl
YlVSTCYsIHZvaWQqIG5vdGlmeURhdGEsIGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKSB7IH0K
KworcHJpdmF0ZToKKyAgICBlbnVtIFByaW1pdGl2ZSB7CisgICAgICAgIFByaW1pdGl2ZU5vbmUs
CisgICAgICAgIFByaW1pdGl2ZVRyaWFuZ2xlCisgICAgfTsKKworICAgIHN0cnVjdCBTY2VuZSB7
CisgICAgICAgIFByaW1pdGl2ZSBwcmltaXRpdmU7CisgICAgICAgIHVuc2lnbmVkIGJhY2tncm91
bmRDb2xvclszXTsKKyAgICAgICAgdW5zaWduZWQgcHJpbWl0aXZlQ29sb3JbM107CisgICAgICAg
IGZsb2F0IG9wYWNpdHk7CisKKyAgICAgICAgdW5zaWduZWQgdmJvOworICAgICAgICB1bnNpZ25l
ZCBwcm9ncmFtOworICAgICAgICBpbnQgY29sb3JMb2NhdGlvbjsKKyAgICAgICAgaW50IHBvc2l0
aW9uTG9jYXRpb247CisKKyAgICAgICAgU2NlbmUoKQorICAgICAgICAgICAgOiBwcmltaXRpdmUo
UHJpbWl0aXZlTm9uZSkKKyAgICAgICAgICAgICwgb3BhY2l0eSgxLjBmKSAvLyBGdWxseSBvcGFx
dWUuCisgICAgICAgICAgICAsIHZibygwKQorICAgICAgICAgICAgLCBwcm9ncmFtKDApCisgICAg
ICAgICAgICAsIGNvbG9yTG9jYXRpb24oLTEpCisgICAgICAgICAgICAsIHBvc2l0aW9uTG9jYXRp
b24oLTEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJhY2tncm91bmRDb2xvclswXSA9IGJhY2tn
cm91bmRDb2xvclsxXSA9IGJhY2tncm91bmRDb2xvclsyXSA9IDA7CisgICAgICAgICAgICBwcmlt
aXRpdmVDb2xvclswXSA9IHByaW1pdGl2ZUNvbG9yWzFdID0gcHJpbWl0aXZlQ29sb3JbMl0gPSAw
OworICAgICAgICB9CisgICAgfTsKKworICAgIC8vIEZ1bmN0aW9ucyBmb3IgcGFyc2luZyBwbHVn
aW4gcGFyYW1ldGVycy4KKyAgICBQcmltaXRpdmUgcGFyc2VQcmltaXRpdmUoY29uc3QgV2ViS2l0
OjpXZWJTdHJpbmcmIHN0cmluZyk7CisgICAgdm9pZCBwYXJzZUNvbG9yKGNvbnN0IFdlYktpdDo6
V2ViU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIGNvbG9yWzNdKTsKKyAgICBmbG9hdCBwYXJzZU9w
YWNpdHkoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHN0cmluZyk7CisKKyAgICAvLyBGdW5jdGlv
bnMgZm9yIGxvYWRpbmcgYW5kIGRyYXdpbmcgc2NlbmUuCisgICAgYm9vbCBpbml0U2NlbmUoKTsK
KyAgICB2b2lkIGRyYXdTY2VuZSgpOworICAgIHZvaWQgZGVzdHJveVNjZW5lKCk7CisgICAgYm9v
bCBpbml0UHJvZ3JhbSgpOworICAgIGJvb2wgaW5pdFByaW1pdGl2ZSgpOworICAgIHZvaWQgZHJh
d1ByaW1pdGl2ZSgpOworICAgIHVuc2lnbmVkIGxvYWRTaGFkZXIodW5zaWduZWQgdHlwZSwgY29u
c3QgY2hhciogc291cmNlKTsKKyAgICB1bnNpZ25lZCBsb2FkUHJvZ3JhbShjb25zdCBjaGFyKiB2
ZXJ0ZXhTb3VyY2UsIGNvbnN0IGNoYXIqIGZyYWdtZW50U291cmNlKTsKKworICAgIFdlYktpdDo6
V2ViRnJhbWUqIG1fZnJhbWU7CisgICAgV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXIqIG1fY29u
dGFpbmVyOworCisgICAgV2ViS2l0OjpXZWJSZWN0IG1fcmVjdDsKKyAgICBXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CisgICAgU2NlbmUgbV9zY2VuZTsKK307CisKKyNl
bmRpZiAvLyBUZXN0UGVwcGVyUGx1Z2luX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA5NjU5NikKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkxheW91dFRlc3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVz
dE5hdmlnYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdFNoZWxsLmgiCisjaW5jbHVk
ZSAiVGVzdFdlYlBsdWdpbi5oIgogI2luY2x1ZGUgIlRlc3RXZWJXb3JrZXIuaCIKICNpbmNsdWRl
ICJXZWJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgpAQCAtNDksNiArNTAs
NyBAQAogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgIldlYktpdFBsYXRmb3JtU3VwcG9y
dC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIK
ICNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJQb3B1cFR5cGUuaCIKICNp
bmNsdWRlICJXZWJSYW5nZS5oIgpAQCAtNzgwLDYgKzc4Miw5IEBAIHZvaWQgV2ViVmlld0hvc3Q6
OnJ1bk1vZGFsKCkKIAogV2ViUGx1Z2luKiBXZWJWaWV3SG9zdDo6Y3JlYXRlUGx1Z2luKFdlYkZy
YW1lKiBmcmFtZSwgY29uc3QgV2ViUGx1Z2luUGFyYW1zJiBwYXJhbXMpCiB7CisgICAgaWYgKHBh
cmFtcy5taW1lVHlwZSA9PSBUZXN0V2ViUGx1Z2luOjptaW1lVHlwZSgpKQorICAgICAgICByZXR1
cm4gbmV3IFRlc3RXZWJQbHVnaW4oZnJhbWUsIHBhcmFtcyk7CisKICAgICByZXR1cm4gd2Via2l0
X3N1cHBvcnQ6OkNyZWF0ZVdlYlBsdWdpbihmcmFtZSwgcGFyYW1zKTsKIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gOTY1OTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOS0yOSAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3RzIGZvciBQZXBwZXIgM0QgY29t
cG9zaXRvciBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02OTAyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2luczogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxw
aGEtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFs
cGhhLmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTA0ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL2Rpc2FibGVkLWNhY2hlLWNyYXNoLmh0bWwuCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1h
bHBoYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEzIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDM2NQorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MzY1CisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDM0MQorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4Mngx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4MjogIllvdSBzaG91bGQgc2Vl
IHR3byBzcXVhcmVzIG9mIHRoZSBzYW1lIGNvbG9yLiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9u
eW1vdXMpIGF0ICgwLDM2KSBzaXplIDc4NHgxNTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxOTEpIHNp
emUgMTUweDE1MCBbYmdjb2xvcj0jOTlGRjk5XQorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMTUweDE1
MAorICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMTUweDE1MAoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93
ZWJwbHVnaW4tYWxwaGEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKyAgLmJveCB7CisgICAgd2lkdGg6IDE1MHB4OworICAgIGhlaWdodDogMTUwcHg7
CisgIH0KKyAgI3JlZiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MywyNTUsMTUzKTsK
KyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Zb3Ugc2hvdWxkIHNlZSB0d28g
c3F1YXJlcyBvZiB0aGUgc2FtZSBjb2xvci48L3A+CisKKzxlbWJlZCBjbGFzcz0iYm94IiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYmFja2dyb3VuZC1jb2xvcj0i
Z3JlZW4iIG9wYWNpdHk9IjAuNCI+Cis8ZGl2IGlkPSJyZWYiIGNsYXNzPSJib3giPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1
Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDIxMAorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjEwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDE4NgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIzN3gx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIzNzogIllvdSBzaG91bGQgYSBn
cmVlbiBzcXVhcmUgd2l0aCBubyByZWQuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MzYpIHNpemUgMTUweDE1MCBbYmdjb2xvcj0jRkYwMDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDUyKSBzaXplIDE1MHgxNTAKKyAg
UmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDE1MHgxNTAKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMv
d2VicGx1Z2luLW5vLWFscGhhLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CisgIC5ib3ggeworICAgIHdpZHRoOiAxNTBweDsKKyAgICBoZWlnaHQ6
IDE1MHB4OworICB9CisgICNwYXJlbnQgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs
MCwwKTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Zb3Ugc2hvdWxkIGEg
Z3JlZW4gc3F1YXJlIHdpdGggbm8gcmVkLjwvcD4KKworPGRpdiBpZD0icGFyZW50IiBjbGFzcz0i
Ym94Ij4KKyAgPGVtYmVkIGNsYXNzPSJib3giIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRl
c3Qtd2VicGx1Z2luIiBiYWNrZ3JvdW5kLWNvbG9yPSJncmVlbiIgb3BhY2l0eT0iMS4wIj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEu
aHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1y
ZWZsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDIxNQorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjE1CisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE5MQorICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICgwLDApIHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDQxOHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQxODog
IllvdSBzaG91bGQgc2VlIGEgYmx1ZSB0cmlhbmdsZSBvbiBncmVlbiBiYWNrZ3JvdW5kIGFuZCBp
dHMgcmVmbGVjdGlvbi4iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzNikg
c2l6ZSA3ODR4MTU1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMTUweDE1MAorICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7
RU1CRUR9IGF0ICgwLDApIHNpemUgMTUweDE1MAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVm
bGVjdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1
Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rp
b24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24uaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUwcHg7CisgICAgaGVpZ2h0OiAxNTBweDsKKyAg
ICAtd2Via2l0LWJveC1yZWZsZWN0OiBiZWxvdyAyMHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFk
PgorCis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgYmx1ZSB0cmlhbmdsZSBvbiBncmVlbiBi
YWNrZ3JvdW5kIGFuZCBpdHMgcmVmbGVjdGlvbi48L3A+CisKKzxlbWJlZCBpZD0icGx1Z2luIiB0
eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgcHJpbWl0aXZlPSJ0cmlh
bmdsZSIgYmFja2dyb3VuZC1jb2xvcj0iZ3JlZW4iIHByaW1pdGl2ZS1jb2xvcj0iYmx1ZSI+Cis8
L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLmh0bWwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5nZXMg
b246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2Vi
cGx1Z2luLWFscGhhLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBl
CiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFB
VkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTNZVFZqTnpFeApNR016TXpSaVkyRXpOelF4T0da
a1lqVTVZelJrWlRSaFpkSENGYVVBQUEwZVNVUkJWSGljN2QzYmJ0cEtBRUJSYzlSdnpVZmxaemtQ
ClVaSGx5MkRDSnFTdzFrTkZBZHN6UXlSMmJTczluYy9uQ1FDQXpuL1BIZ0FBd0tzUldBQUFNWUVG
QUJBVFdBQUFNWUVGQUJBVFdBQUEKTVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFB
TVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFBTVlFRgpBQkFiQmRacFp1K1p5djA3
M050RFBsVG1ydjQ4dk5MNnY5SmNBSGlvUDRQWHp1ZnpORTJuMCtucndkY3o4NzlXMU5VL2F2N0Rz
UG1ECjhVcnIvMHB6QWVEUmJydEUrSWk2bXY2VzNDUDI4SWpSenZuU3ZaZ3Y5V1ZaSHIzK1ArbVY1
Z0xBbzEwUHJLK3pWajh3RkFDQTF6QzYKUkxpd2QvcnFLNy9tbDRxbTJlWEZhZWVmL3Bzbk9UYmZm
OC8rQjJjZDFnTVlER2x6VjE4dkxlcHozcU9MeDk4ZTJIeXJyMDloc0FpYgpSOXpjNVBoTU4wYytu
LzU2UDROUDdhYkRmVzlxZHg1b2I4eWJHeTZPdFJnUEFPL3BVR0FOYnIyNlBIOTVzRmNZZTFzTmR0
WHVmL3lHCjhVRVhqemVYWlRIQzllTzlQZCswTXV1Snp4K3ZqM1hKbmMySnJNZHpaTVUycDdhM0xI
dEh1WHJ6MXRVUGFERzFSV2JkZXFDckszTjEKUWRaTERjRGJ1dXZYTkt6dmY3OTFEL092b3ZHWDMv
SDlMN1k2UG9EVFg0dTlyWi84bnB1bXMvbXRmM3c2aTdNeTYzTXplNU1heDhTUgprUi9mNTVHRlhj
OTlNTFY3RGpUdHIvbDYyODAzYkM0MUFPL3Boa3VFb2FkZlJ0a2N3T1pnam85d2Z2MXU4ZWVkQTd2
SlpmTkJVdXlkCmRycm51TGNhSDJoelBFZW1kdXVCQU9BUm5oTlkwOWJ2Z0hpM0FleTVaMkQzVE9l
M0xjamdZaDhBL0hKM1hTTGN1L3ZuNG5KWHl1YnoKRDlyL1lxdHZER0R6MWNFbW0vZExyY2Q4ZFRy
M0RHeDlaWE93bi9YYnJsNnZ2RHJ5ZzZNOStMYURxMzJUcXh2T0x6Nk81L3U5QlFIZwpmVnovYmxq
bnkrWWIxbmY1VFB2M1FTOXVvOW44WWx2Y2N6UGUvMkNySXdPNDljbkIzQWVCTlpqTzhURXM5cjk0
Y25NbGoweHFQTTNOCmtjLzNQL2gwMXVOWkQvWElPb3luOXUwRERkNndOOSs5bjh6Tk4yZ3ZnUGZr
QytBZjR6c2JBSDQvLzlrekFFQk1ZUDFMOW00cEF3QisKRmRlYkFBQml6bUFCQU1RRUZnQkFUR0FC
QU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JB
VEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNVCs3TDN3T1gzKzVEaklmVXdmeng0Q0FMd3Ba
N0FBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZwpK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
ZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdLbjgvbjg3
REVBQUx3VVo3QUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWc5bWZ2aGMvcDh5ZkhRZTVqK25qMkVBRGdU
VG1EQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EK
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUU81M1A1
MmVQQVFEZ3BUaURCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
CkFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBTEgv
QVhMYUNUUkMzWWRoQUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVk
LnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0
eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1u
by1hbHBoYS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICAr
IGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVu
QUFBQUtYUkZXSFJqYUdWamEzTjFiUUExWm1NMU5HSmgKTUdFNU1tTXdaamhpWVRjeFl6YzBaR1Jr
TXpNd1ltUXlZWjY3UXQwQUFBeklTVVJCVkhpYzdkM1JicHRJQUVCUmU1WC8vMlgySVpMRgpZaGdt
OXEzdGJjNTVxRkl3dzRBZnVBTFNYcGRsdVFBQTBQbm4zUk1BQVBqYkNDd0FnSmpBQWdDSUNTd0Fn
SmpBQWdDSUNTd0FnSmpBCkFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lD
U3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0kKalFMcnVuSzBwUEw4Z0VjajVGUDl0
WGJQNUVlZDNvK2FEQUMvMlNpd2xtVlpsdVg3aDl1UzlmS0t1dnBmdVAvU1ArcjBmdFJrQVBqbApm
dmFJOEhxOXRtbjE3Zmt4ajBiNEU3UGxsaklmZFhvL2FqSUEvSExuZ2JVc2kzc0RBQUR6dnVZL2Vu
VDc2anUvYnF2V2Y5MnN1dDlxCnMzYjM4OCtNUDdpcmNYb2JacE9WMzZGNXk4MzFCSGFQWWpQbnpZ
YVQ4N2x0Y3JUcnpXa1o3M1J3eU90Vmc1OXZTd1pmeXYzSVI4ZCsKZWtJbTUzLzZYUVBBaTgwKzho
dlUxZTNpdDdtMER6YTgzMnB6SGIzZi9IVDhvNFdYZzU2WW5PSGx2MWY2eTEzQm5FNWpzK0hrQ1hu
eQo1RXpPZHVhYzdJYk9VZS91cHMvODVJODJQSjNlWmlZQThGNVAvVE1ONit2Y1kwOFMxNWZEOFNW
L2Z2ek5WdVA5enM5NTg3Ny9iZlA3CjM2bmNMTnpkY0x5WHlhUFkzZXFuczUwMG1NUHBxZ2UrMmNu
NS8rZ3NBY0RML09BUlllajBlZGtMckorK1BUekk3dndmT0tqblQ4ak0KNFl3SFh6OEUzUHo1MkpS
eW56TVRBQmg3VDJCZGhzL0xYdUIwdjd0UDJmNm9aMDdJUjJVUUFQRFVJOEoxaFF6ZXBMbS9weko1
MCtpeAo4VGRialhkM3RPcDdkOTltcHJvN3p2eTlzZkVuQjRQZlA1MThjbmVucjJyOWRGKzdUci9a
c1hYN3puL1hBUEF5NTllMiszelovY0RSCkwzYk52TUs4ZTczY2ZZMzZhUHpCVnFjVEdJeS9QdXJk
RzFvekM4ZEhOem5PN252bG0vZTdON3VZbk8zRzRGM3l6UzQyaHpOekNKc1AKREo2S3pwL3R5OEVK
Y1VzUGdEZHlIZHB4ZjNsKyt3WDc3Uk1BQU9iNXo1NEJBR0x1aSt3N2ZURDZTaTkrM1I0QWVKTEFB
Z0NJZVVRSQpBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZB
QkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUCldBQUFNWUVGQUJBVFdBQUFNWUVGQUJEN09scHh2
VnhmT1E5eXkyVjU5eFFBNEpkeUJ3c0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EKSUNhd0FBQmlB
Z3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FB
QmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlD
YXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFn
c0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EKSUNhd0FB
QmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNh
d0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdz
QUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFC
aUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EKSUNh
d0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NB
SUNhd0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJp
QWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJQ2F3
QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EK
SUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlB
Z3NBSUNhd0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdB
QUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJ
Q2F3QUFCaUFnc0FJUFoxdEdLNUxLK2NCd0RBWDhNZExBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
CkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBMkw4UAoxN0ht
aEEzZy9nQUFBQUJKUlU1RXJrSmdnZz09CgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBlY3RlZC5w
bmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlw
ZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVm
bGVjdGlvbi1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICAr
IGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVu
QUFBQUtYUkZXSFJqYUdWamEzTjFiUUE1WXpKaFpERXgKTm1WbFpXUTBOemMyWkdabU56Rm1OVFF6
WkRrMU9USTBPREZSWTJrQUFCSGdTVVJCVkhpYzdkM1JjdUk2Rm9aUk1wWDNmMlhtSXRVVQpCN0FS
NXJldExhMTExWjJBTFFzM2ZHY25OZk56dlY0dkFBRGsvTy9zQlFBQWpFWmdBUUNFQ1N3QWdEQ0JC
UUFRSnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdB
QURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQXNMWEErcm16OUpXVTd3KzRk
SVQ0VWo5eS9LcFNSejUzMy9hdzN6MTJpdXhpWGg1dDE3czA4azdTMVNzQ2NHOHRzSzdYNi9WNgov
ZnZEN1N2M1gwOVJWMEdSbDJhOHp5MTF0ZUZvMlgvbTk2ZEx2WWZzdEVLQTczMzJJOEsvZDhiNEly
NC81dElSem4zLzNXOVZlMy9ZCmovZTV0ZDg5ZG9yc1l0NGViYWY3YmR0VmRGVzZBRXZlQjliMWV2
V09CZ0RRN3JmOW9VdmpxNy84dW4zci9xOFAzM3ArMXNOM1h6NysKbStPdi9DZnk4d0pXbHJSeXFM
Y1BXRm5NeXJXc0hQYnZXN2ZILzcwdUQzOWR1Y2I3Qno5ZnhjdVRicnZHcFhPOVBQTHQrTS9QYW54
ZApXazczY3AzdHAxZy8rOXNMZVQ3NzBnMndjaTNiYnV4dFI3dC80dHRYWk9sY0R3OStQdHJLeXQ4
Ky9lRk5hZHROQ0xDSHBzQjZmaU83CnVYMzk5b2Y3aWRmUzlPditXU3VIeWg1Ly9RSHJKMzM0OC9O
eGxoNndkTFRuOWQvL2VmMnc5eS9IN2ZObVpUOHYvLzJZZVY3UCt1bTIKWGVQU3VkYVAvUENzcFQr
M1g5cmJkYmFmNHVGUXo1L2k2eGZ5OHVBdmI0Q1ZhMm0vc1Z0Mlp2MW9Ed3RyZVZiTHk3ZjBadEw0
S2p6ZgovQ3ZiMjNoWEFPemhxLytaaHZzM3JLWFdXWGYvZnJmK250dCsvSWRudFMvZzU1K0hvejEv
OGZucEsydmJ0a1hyNTMwNCtNdnJmVjdiCnc0UGJyUy9tNWN1MDdWd3ZuOVh5dWpTZTd1VnI4ZlpG
WENuTzlndHB2NW1YcnFYbHhtNS8wZDhlN2FOL095dm5hcnlUM3o2eXZYRy8KdkFrQklqNzRFV0hR
OWV5aC9jc0ZiUHVZdVIxblExK3VyL0Q3ZzZUV2R1NUgxTGJYNVNQdEc1VjlsZmV3MHcxNTgray8z
dlpYU2drQgpJemtuc0M3Ly9WMlR1Z3ZvK1ljTzdXdDdPYzQ1d0ZubmZmRFJpL2p5dHVua1FpNUgz
WkNuLytNRjZOOVhQeUs4THZ6YTBNM3RkeUJlCmZuMm40ejg4YThNQ1huNTN3MU9lSDdQeWdiUmhx
ZTAvTTIxWjJKOE5oM3I3TW4xLzNwV3piNXZUck54T0cwN1JjaUdiLzdFc0hXSDkKd1MwL1hHNC8y
a2NQMjd5azlVYysvNHo0L3ErYmIwS0FuYngvSjNwK0kzdjVnT2Rmdkxncy8zYjh3My91My85MTZU
ZGoxbysvOHF5VwpCWHo2eFpmZlhmcTV5Y3J2K3R4Zi9zTlNXODc3Zk9GTE83bnlhZlQydTI4WDg3
Q2s1L1V2UGYzdGVaOFB0ZlRGbHRPMUhPcitLdFkzCjRhTU5mRGhYKzgzOHpZM2RzcXFWb3pWdXk5
SlRscjY0MU9pTlQ3OHMzL3lYNXB0UWdRRUg4RVl6dTVlZnJBZmNGV2VkTjI2WUN3RWcKeVAvWk13
QkFtUC9VNXYxUGdRYzdiOXd3RndKQWlzQUNBQWp6STBJQWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1B
Q0FBZ1RXQUFBWVFJTApBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFn
QUFHRUNDd0FnVEdBQkFJUUpMQUNBc04rbGIveGNmbzVjCkIzSFh5L1hzSlFEQXBFeXdBQURDQkJZ
QVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1kKd0FJ
QUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdMQlpBK3ZuZXZtNW5yMElBR0JNc3dZV0FNQnVwZ3lz
Mit6S0VBc0EyTUdVZ1FVQQpzS2Y1QXV0aGFtV0lCUUNrelJkWUFBQTdteXl3WHM2ckRMRUFnS2pK
QWdzQVlIOHpCZGJLcE1vUUN3REltU213QUFBT01VMWd2WjFSCkdXSUJBQ0hUQkJZQXdGSG1DS3pH
NlpRaEZnQ1FNRWRnQVFBY2FJTEErbWd1WllnRkFIeHRnc0FDQURqVzZJRzFZU0psaUFVQWZHZjAK
d0FJQU9OelFnYlY1Rm1XSUJRQjhZZWpBQWdBNHc3aUI5ZVVVeWhBTEFOaHEzTUFDQURqSm9JRVZt
VDhaWWdFQW13d2FXQUFBNXhreApzSUtUSjBNc0FPQnpJd1lXQU1DcGhndXMrTXpKRUFzQStOQndn
UVVBY0xheEFtdW5hWk1oRmdEd2liRUNDd0NnQXdNRjFxNXpKa01zCkFLRFpRSUVGQU5DSFVRTHJn
QW1USVJZQTBHYVV3QUlBNk1ZUWdYWFliTWtRQ3dCb01FUmdBUUQwcEg1Z0hUeFZNc1FDQU42cEgx
Z0EKQUowcEhsaW56Sk1Nc1FDQVZjVURDd0NnUDVVRDY4UkpraUVXQUxDc2NtQUJBSFNwYkdDZFBr
TTZmUUVBUUsvS0JoWUFRSzlxQmxZbgowNk5PbGdFQWRLWm1ZQUVBZEt4Z1lIVTFOK3BxTVFCQUh3
b0dGZ0JBMzZvRlZvY1RvdzZYQkFDY3FscGdBUUIwcjFSZ2RUc3I2blpoCkFNQVpTZ1VXQUVBRmRR
S3I4eWxSNThzREFBNVVKN0FBQUlvb0VsZ2w1a01sRmdrQTdLOUlZQUVBMUZFaHNBcE5oZ290RlFE
WVRZWEEKQWdBb3BmdkFLamNUS3JkZ0FDQ3QrOEFDQUtpbTc4QXFPZzBxdW13QUlLVHZ3QUlBS0tq
andDbzlCeXE5ZUFEZ094MEhGZ0JBVGIwRwoxZ0FUb0FFdUFRRFlwTmZBQWdBb3E4dkFHbWIyTTh5
RkFBQ2Y2REt3QUFBcTZ5K3dCcHY2REhZNUFFQ0QvZ0lMQUtDNHpnSnJ5SG5QCmtCY0ZBQ3pyTExB
QUFPcnJLYkFHbnZRTWZHa0F3Sk9lQWdzQVlBamRCTmJ3TTU3aEx4QUErS2Vid0FJQUdFVWZnVFhK
ZEdlU3l3U0EKNmZVUldBQUFBK2tnc0thYTYweDFzUUF3cXc0Q0N3QmdMR2NIMW9RVG5Ra3ZHUUFt
YzNaZ0FRQU01OVRBbW5hV00rMkZBOEFjVExBQQpBTUxPQzZ6SnB6aVRYejRBRE0wRUN3QWc3S1RB
TXIrNTJBUUFHSllKRmdCQTJCbUJaWEp6WXlzQVlFUW1XQUFBWVljSGxwbk5BeHNDCkFNTXh3UUlB
Q0RzMnNFeHJYckl0QURBV0V5d0FnTEFEQTh1Y1pvWE5BWUNCbUdBQkFJUWRGVmdtTkcvWklnQVlo
UWtXQUVEWUlZRmwKTnRQSVJnSEFFRXl3QUFEQzlnOHNVNW1QMkM0QXFNOEVDd0FnYk9mQU1vL1p3
S1lCUUhFbVdBQUFZWHNHbGtuTVpyWU9BQ296d1FJQQpDTnN0c014Z3ZtUURBYUFzRXl3QWdMQjlB
c3YwSmNJMkFrQk5KbGdBQUdFN0JKYTVTNUROQklDQ1RMQUFBTUxTZ1dYaUVtZExBYUFhCkV5d0Fn
TEJvWUptMTdNVEdBa0FwSmxnQUFHRzV3REpsMlpYdEJZQTZUTEFBQU1KQ2dXVytjZ0NiREFCRi9H
WU9jLzNKSEFjQW9ENC8KSWdRQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFN
SUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrcwpBSUF3Z1FVQUVQYTc5STNyNVhya09n
QUFobUdDQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3CmdR
VUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FB
QXdnUVdBRURZNzlJM2ZpNC8KUjY2RHVPdmxldllTQUdCU0psZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFB
UUpyQUFBTUorTTRmNXVXYU93N3JyejlrckFBRGVDMDJ3ZlBBZndDWURRQkYrUkFnQUVKWUxMUE9W
ClhkbGVBS2pEQkFzQUlDd2FXS1lzTzdHeEFGQ0tDUllBUUZnNnNNeGE0bXdwQUZSamdnVUFFTFpE
WUptNEJObE1BQ2pJQkFzQUlHeWYKd0RKM2liQ05BRkNUQ1JZQVFOaHVnV1g2OGlVYkNBQmxtV0FC
QUlUdEdWaG1NSnZaT2dDb3pBUUxBQ0JzNThBeWlkbkFwZ0ZBY1NaWQpBQUJoK3dlV2VjeEhiQmNB
MUdlQ0JRQVFka2hnbWNvMHNsRUFNQVFUTEFDQXNLTUN5MnptTFZzRUFLTXd3UUlBQ0Rzd3NFeG9W
dGdjCkFCaUlDUllBUU5peGdXVk84NUp0QVlDeG1HQUJBSVFkSGxpbU5ROXNDQUFNeHdRTEFDRHNq
TUF5czdteEZRQXdJaE1zQUlDd2t3TEwKNU9aaUV3QmdXQ1pZQUFCaDV3WFc1UE9ieVM4ZkFJWm1n
Z1VBRUhacVlFMDd4Wm4yd2dGZ0RpWllBQUJoWndmV2hMT2NDUzhaQUNaegpkbUFCQUF5bmc4Q2Fh
cUl6MWNVQ3dLdzZDQ3dBZ0xIMEVWaVR6SFVtdVV3QW1GNGZnUVVBTUpCdUFtdjQ2Yzd3RndnQS9O
Tk5ZQUVBCmpLS253QnA0eGpQd3BRRUFUM29LTEFDQUlYUVdXRU5PZW9hOEtBQmdXV2VCQlFCUVgz
K0JOZGk4WjdETEFRQWE5QmRZQUFERmRSbFkKdzB4OWhya1FBT0FUWFFZV0FFQmx2UWJXQUxPZkFT
NEJBTmlrMThBQ0FDaXI0OEFxUFFFcXZYZ0E0RHNkQnhZQVFFMTlCMWJST1ZEUgpaUU1BSVgwSEZn
QkFRZDBIVnJscFVMa0ZBd0JwM1FjV0FFQTFGUUtyMEV5bzBGSUJnTjFVQ0N3QWdGS0tCRmFKeVZD
SlJRSUEreXNTCldBQUFkZFFKck03blE1MHZEd0E0VUozQUFnQW9vbFJnZFRzbDZuWmhBTUFaU2dV
V0FFQUYxUUtydzFsUmgwc0NBRTVWTGJBQUFMcFgKTUxDNm1oaDF0UmdBb0E4RkF3c0FvRzgxQTZ1
VHVWRW55d0FBT2xNenNBQUFPbFkyc0U2ZkhwMitBQUNnVjJVREN3Q2dWNVVENjhRWgprdkVWQUxD
c2NtQUJBSFNwZUdDZE1ra3l2Z0lBVmhVUExBQ0EvdFFQcklQblNjWlhBTUE3OVFNTEFLQXpRd1RX
WVZNbDR5c0FvTUVRCmdRVUEwSk5SQXV1QTJaTHhGUURRWnBUQUFnRG94a0NCdGV1RXlmZ0tBR2cy
VUdBQkFQUmhyTURhYWM1a2ZBVUFmR0tzd0FJQTZNQncKZ1JXZk5obGZBUUFmR2k2d0FBRE9ObUpn
QldkT3hsY0F3T2RHREN3QWdGTU5HbGlSeVpQeEZRQ3d5YUNCQlFCd25uRUQ2OHY1ay9FVgpBTERW
dUlFRkFIQ1NvUU5yOHhUSytBb0ErTUxRZ1FVQWNJYlJBMnZETE1yNENnRDR6dWlCQlFCd3VBa0M2
Nk9KbFBFVkFQQzFDUUlMCkFPQlljd1JXNDF6SytBb0FTSmdqc0FBQURqUk5ZTDJkVGhsZkFRQWgw
d1FXQU1CUlpncXNsUm1WOFJVQWtETlRZQUVBSEdLeXdIbzUKcVRLK0FnQ2lKZ3NzQUlEOXpSZFlE
L01xNHlzQUlHMit3QUlBMk5tVWdYV2JXaGxmQVFBN21ES3dBQUQyOUh2MkFrNWlkZ1VBN01ZRQpD
d0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FR
Q0VDU3dBZ0RDQkJRQVFKckFBCkFNSUVGZ0JBbU1BQ0FBajdYZnJHOVhJOWNoMEFBTU13d1FJQUNC
TllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FBQVlR
SUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdB
QgpBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3
QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FV
QUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFtc0FB
QXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JB
bU1BQwpBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJ
RTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJo
QWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JN
WUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpM
QUNBTUlFRgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JC
UUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdB
QURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW0Kc0FBQXdnUVdB
RUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FB
Z1RXQUFBWVFJTApBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFH
RUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBCndnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlF
eGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk0KWUFFQWhB
a3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlF
RkFCQW1zQUFBd2dRVwpBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJB
QUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBCmhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZ
QVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1kKd0FJ
QUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFB
WVFJTEFDQk1ZQUVBaEFrcwpBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0Fn
VEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBCkNCTllBQUJoQWdzQUlFeGdBUUNF
Q1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDRHMvOUVnaFcvYnJPaTAK
QUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110006</attachid>
            <date>2011-10-06 13:39:08 -0700</date>
            <delta_ts>2011-10-06 14:16:16 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>69027.patch</filename>
            <type>text/plain</type>
            <size>45906</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5Njg1MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMTAtMDYgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgV2ViUGx1Z2luIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTEwLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
OTY3OTEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gOTY1OTYpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjY2LDcgKzI2Niw3IEBAIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRQYWdl
KGkKIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludEVuZCgpCiB7Ci0gICAgcmV0
dXJuIG1fd2ViUGx1Z2luLT5wcmludEVuZCgpOworICAgIG1fd2ViUGx1Z2luLT5wcmludEVuZCgp
OwogfQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmNvcHkoKQpJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTY4NTMp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NyBAQAorMjAx
MS0xMC0wNiAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBBZGQgbGF5b3V0IHRlc3RzIGZvciBXZWJQbHVnaW4gY29tcG9zaXRvciBwYXRoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTAyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcDogQWRkZWQuCisgICAgICAgIChwcmVtdWx0aXBseUFscGhhKToKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6flRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6bWltZVR5cGUp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjpkZXN0cm95KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZUdlb21ldHJ5
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnBhcnNlUHJpbWl0aXZlKToKKyAgICAgICAgKFRl
c3RXZWJQbHVnaW46OnBhcnNlQ29sb3IpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6cGFyc2VP
cGFjaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRTY2VuZSk6CisgICAgICAgIChU
ZXN0V2ViUGx1Z2luOjpkcmF3U2NlbmUpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGVzdHJv
eVNjZW5lKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRQcm9ncmFtKToKKyAgICAgICAg
KFRlc3RXZWJQbHVnaW46OmluaXRQcmltaXRpdmUpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6
ZHJhd1ByaW1pdGl2ZSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpsb2FkU2hhZGVyKToKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OmxvYWRQcm9ncmFtKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6c2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpwYWludCk6
CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjp1cGRhdGVGb2N1cyk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjp1cGRhdGVWaXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmFjY2Vw
dHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2lu
OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZhaWxMb2Fk
aW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmdGcmFtZVJlcXVl
c3QpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3Qp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6U2NlbmU6OlNjZW5lKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9z
dDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMS0xMC0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8
a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBEUlQ6IENyZWF0ZSBpY29uIGRh
dGFiYXNlIHBhdGggaW4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJs
ZWQuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHJldmlz
aW9uIDk2NTk2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rl
c3RTaGVsbEd0ay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RTaGVsbE1hYy5tbScs
CiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5j
cHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCShyZXZpc2lvbiAwKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVk
ZSAiV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWluZXIu
aCIKKyNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvLyBHTGVudW0gdmFsdWVzIGNvcGll
ZCBmcm9tIGdsMi5oLgorI2RlZmluZSBHTF9GQUxTRSAgICAgICAgICAgICAgICAgIDAKKyNkZWZp
bmUgR0xfVFJVRSAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEdMX09ORSAgICAgICAgICAg
ICAgICAgICAgMQorI2RlZmluZSBHTF9UUklBTkdMRVMgICAgICAgICAgICAgIDB4MDAwNAorI2Rl
ZmluZSBHTF9PTkVfTUlOVVNfU1JDX0FMUEhBICAgIDB4MDMwMworI2RlZmluZSBHTF9CTEVORCAg
ICAgICAgICAgICAgICAgIDB4MEJFMgorI2RlZmluZSBHTF9GTE9BVCAgICAgICAgICAgICAgICAg
IDB4MTQwNgorI2RlZmluZSBHTF9DT0xPUl9CVUZGRVJfQklUICAgICAgIDB4NDAwMAorI2RlZmlu
ZSBHTF9BUlJBWV9CVUZGRVIgICAgICAgICAgIDB4ODg5MgorI2RlZmluZSBHTF9TVEFUSUNfRFJB
VyAgICAgICAgICAgIDB4ODhFNAorI2RlZmluZSBHTF9GUkFHTUVOVF9TSEFERVIgICAgICAgIDB4
OEIzMAorI2RlZmluZSBHTF9WRVJURVhfU0hBREVSICAgICAgICAgIDB4OEIzMQorI2RlZmluZSBH
TF9DT01QSUxFX1NUQVRVUyAgICAgICAgIDB4OEI4MQorI2RlZmluZSBHTF9MSU5LX1NUQVRVUyAg
ICAgICAgICAgIDB4OEI4MgorCitzdGF0aWMgdm9pZCBwcmVtdWx0aXBseUFscGhhKGNvbnN0IHVu
c2lnbmVkIGNvbG9ySW5bM10sIGZsb2F0IGFscGhhLCBmbG9hdCBjb2xvck91dFs0XSkKK3sKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkKKyAgICAgICAgY29sb3JPdXRbaV0gPSAoY29s
b3JJbltpXSAvIDI1NS4wZikgKiBhbHBoYTsKKworICAgIGNvbG9yT3V0WzNdID0gYWxwaGE7Cit9
CisKK1Rlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFy
YW1zJiBwYXJhbXMpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9jb250YWluZXIoMCkK
KyAgICAsIG1fY29udGV4dCgwKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJp
YnV0ZVByaW1pdGl2ZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInByaW1pdGl2ZSIpOworICAgIHN0
YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJpYnV0ZUJhY2tncm91bmRDb2xvciA9IFdlYlN0cmlu
Zzo6ZnJvbVVURjgoImJhY2tncm91bmQtY29sb3IiKTsKKyAgICBzdGF0aWMgY29uc3QgV2ViU3Ry
aW5nIGtBdHRyaWJ1dGVQcmltaXRpdmVDb2xvciA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInByaW1p
dGl2ZS1jb2xvciIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJpYnV0ZU9wYWNp
dHkgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJvcGFjaXR5Iik7CisKKyAgICBBU1NFUlQocGFyYW1z
LmF0dHJpYnV0ZU5hbWVzLnNpemUoKSA9PSBwYXJhbXMuYXR0cmlidXRlVmFsdWVzLnNpemUoKSk7
CisgICAgc2l6ZV90IHNpemUgPSBwYXJhbXMuYXR0cmlidXRlTmFtZXMuc2l6ZSgpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGNvbnN0IFdlYlN0cmlu
ZyYgYXR0cmlidXRlTmFtZSA9IHBhcmFtcy5hdHRyaWJ1dGVOYW1lc1tpXTsKKyAgICAgICAgY29u
c3QgV2ViU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSA9IHBhcmFtcy5hdHRyaWJ1dGVWYWx1ZXNbaV07
CisKKyAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZVByaW1pdGl2ZSkKKyAg
ICAgICAgICAgIG1fc2NlbmUucHJpbWl0aXZlID0gcGFyc2VQcmltaXRpdmUoYXR0cmlidXRlVmFs
dWUpOworICAgICAgICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVCYWNrZ3Jv
dW5kQ29sb3IpCisgICAgICAgICAgICBwYXJzZUNvbG9yKGF0dHJpYnV0ZVZhbHVlLCBtX3NjZW5l
LmJhY2tncm91bmRDb2xvcik7CisgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0
dHJpYnV0ZVByaW1pdGl2ZUNvbG9yKQorICAgICAgICAgICAgcGFyc2VDb2xvcihhdHRyaWJ1dGVW
YWx1ZSwgbV9zY2VuZS5wcmltaXRpdmVDb2xvcik7CisgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0
ZU5hbWUgPT0ga0F0dHJpYnV0ZU9wYWNpdHkpCisgICAgICAgICAgICBtX3NjZW5lLm9wYWNpdHkg
PSBwYXJzZU9wYWNpdHkoYXR0cmlidXRlVmFsdWUpOworICAgIH0KK30KKworVGVzdFdlYlBsdWdp
bjo6flRlc3RXZWJQbHVnaW4oKQoreworfQorCitjb25zdCBXZWJTdHJpbmcmIFRlc3RXZWJQbHVn
aW46Om1pbWVUeXBlKCkKK3sKKyAgICBzdGF0aWMgY29uc3QgV2ViU3RyaW5nIGtNaW1lVHlwZSA9
IFdlYlN0cmluZzo6ZnJvbVVURjgoImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2lu
Iik7CisgICAgcmV0dXJuIGtNaW1lVHlwZTsKK30KKworYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0
aWFsaXplKFdlYlBsdWdpbkNvbnRhaW5lciogY29udGFpbmVyKQoreworICAgIG1fY29udGV4dCA9
IHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jcmVhdGVHcmFwaGljc0NvbnRleHQzRCgpOworICAg
IGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBXZWJHcmFwaGlj
c0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyczsKKyAgICBpZiAoIW1fY29udGV4dC0+aW5pdGlh
bGl6ZShhdHRycywgbV9mcmFtZS0+dmlldygpLCBmYWxzZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpbml0U2NlbmUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbV9jb250YWluZXIgPSBjb250YWluZXI7CisgICAgbV9jb250YWluZXItPnNl
dEJhY2tpbmdUZXh0dXJlSWQobV9jb250ZXh0LT5nZXRQbGF0Zm9ybVRleHR1cmVJZCgpKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkZXN0cm95KCkKK3sKKyAg
ICBkZXN0cm95U2NlbmUoKTsKKworICAgIGRlbGV0ZSBtX2NvbnRleHQ7CisgICAgbV9jb250ZXh0
ID0gMDsKKworICAgIG1fY29udGFpbmVyID0gMDsKKyAgICBtX2ZyYW1lID0gMDsKK30KKwordm9p
ZCBUZXN0V2ViUGx1Z2luOjp1cGRhdGVHZW9tZXRyeShjb25zdCBXZWJSZWN0JiBmcmFtZVJlY3Qs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIGNsaXBS
ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8
V2ViUmVjdD4mIGN1dE91dHNSZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBpc1Zpc2libGUpCit7CisgICAgaWYgKGNsaXBSZWN0ID09IG1fcmVjdCkKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fcmVjdCA9IGNsaXBSZWN0OworCisgICAgbV9jb250ZXh0LT5yZXNo
YXBlKG1fcmVjdC53aWR0aCwgbV9yZWN0LmhlaWdodCk7CisgICAgZHJhd1NjZW5lKCk7CisgICAg
bV9jb250ZXh0LT5wcmVwYXJlVGV4dHVyZSgpOworCisgICAgbV9jb250YWluZXItPmNvbW1pdEJh
Y2tpbmdUZXh0dXJlKCk7Cit9CisKK1Rlc3RXZWJQbHVnaW46OlByaW1pdGl2ZSBUZXN0V2ViUGx1
Z2luOjpwYXJzZVByaW1pdGl2ZShjb25zdCBXZWJTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdGF0
aWMgY29uc3QgV2ViU3RyaW5nIGtQcmltaXRpdmVOb25lID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgi
bm9uZSIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga1ByaW1pdGl2ZVRyaWFuZ2xlID0g
V2ViU3RyaW5nOjpmcm9tVVRGOCgidHJpYW5nbGUiKTsKKworICAgIFByaW1pdGl2ZSBwcmltaXRp
dmUgPSBQcmltaXRpdmVOb25lOworICAgIGlmIChzdHJpbmcgPT0ga1ByaW1pdGl2ZU5vbmUpCisg
ICAgICAgIHByaW1pdGl2ZSA9IFByaW1pdGl2ZU5vbmU7CisgICAgZWxzZSBpZiAoc3RyaW5nID09
IGtQcmltaXRpdmVUcmlhbmdsZSkKKyAgICAgICAgcHJpbWl0aXZlID0gUHJpbWl0aXZlVHJpYW5n
bGU7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
cHJpbWl0aXZlOworfQorCisvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGFscmVhZHkgZXhp
c3QuIFVzZSBpdC4KKy8vIEZvciBub3cganVzdCBwYXJzZSBwcmltYXJ5IGNvbG9ycy4KK3ZvaWQg
VGVzdFdlYlBsdWdpbjo6cGFyc2VDb2xvcihjb25zdCBXZWJTdHJpbmcmIHN0cmluZywgdW5zaWdu
ZWQgY29sb3JbM10pCit7CisgICAgY29sb3JbMF0gPSBjb2xvclsxXSA9IGNvbG9yWzJdID0gMDsK
KyAgICBpZiAoc3RyaW5nID09ICJibGFjayIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChz
dHJpbmcgPT0gInJlZCIpCisgICAgICAgIGNvbG9yWzBdID0gMjU1OworICAgIGVsc2UgaWYgKHN0
cmluZyA9PSAiZ3JlZW4iKQorICAgICAgICBjb2xvclsxXSA9IDI1NTsKKyAgICBlbHNlIGlmIChz
dHJpbmcgPT0gImJsdWUiKQorICAgICAgICBjb2xvclsyXSA9IDI1NTsKKyAgICBlbHNlCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitmbG9hdCBUZXN0V2ViUGx1Z2luOjpwYXJz
ZU9wYWNpdHkoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGZsb2F0PihhdG9mKHN0cmluZy51dGY4KCkuZGF0YSgpKSk7Cit9CisKK2Jvb2wgVGVzdFdl
YlBsdWdpbjo6aW5pdFNjZW5lKCkKK3sKKyAgICBmbG9hdCBjb2xvcls0XTsKKyAgICBwcmVtdWx0
aXBseUFscGhhKG1fc2NlbmUuYmFja2dyb3VuZENvbG9yLCBtX3NjZW5lLm9wYWNpdHksIGNvbG9y
KTsKKyAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsy
XSwgY29sb3JbM10pOworCisgICAgbV9jb250ZXh0LT5lbmFibGUoR0xfQkxFTkQpOworICAgIG1f
Y29udGV4dC0+YmxlbmRGdW5jKEdMX09ORSwgR0xfT05FX01JTlVTX1NSQ19BTFBIQSk7CisKKyAg
ICByZXR1cm4gbV9zY2VuZS5wcmltaXRpdmUgIT0gUHJpbWl0aXZlTm9uZSA/IGluaXRQcm9ncmFt
KCkgJiYgaW5pdFByaW1pdGl2ZSgpIDogdHJ1ZTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpk
cmF3U2NlbmUoKQoreworICAgIG1fY29udGV4dC0+dmlld3BvcnQoMCwgMCwgbV9yZWN0LndpZHRo
LCBtX3JlY3QuaGVpZ2h0KTsKKyAgICBtX2NvbnRleHQtPmNsZWFyKEdMX0NPTE9SX0JVRkZFUl9C
SVQpOworCisgICAgaWYgKG1fc2NlbmUucHJpbWl0aXZlICE9IFByaW1pdGl2ZU5vbmUpCisgICAg
ICAgIGRyYXdQcmltaXRpdmUoKTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkZXN0cm95U2Nl
bmUoKQoreworICAgIGlmIChtX3NjZW5lLnByb2dyYW0pIHsKKyAgICAgICAgbV9jb250ZXh0LT5k
ZWxldGVQcm9ncmFtKG1fc2NlbmUucHJvZ3JhbSk7CisgICAgICAgIG1fc2NlbmUucHJvZ3JhbSA9
IDA7CisgICAgfQorICAgIGlmIChtX3NjZW5lLnZibykgeworICAgICAgICBtX2NvbnRleHQtPmRl
bGV0ZUJ1ZmZlcihtX3NjZW5lLnZibyk7CisgICAgICAgIG1fc2NlbmUudmJvID0gMDsKKyAgICB9
Cit9CisKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdFByb2dyYW0oKQoreworICAgIGNvbnN0IFdH
QzNEY2hhciB2ZXJ0ZXhTb3VyY2VbXSA9CisgICAgICAgICJhdHRyaWJ1dGUgdmVjNCBwb3NpdGlv
bjsgICAgXG4iCisgICAgICAgICJ2b2lkIG1haW4oKSB7ICAgICAgICAgICAgICAgXG4iCisgICAg
ICAgICIgICAgZ2xfUG9zaXRpb24gPSBwb3NpdGlvbjsgXG4iCisgICAgICAgICJ9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXG4iOworCisgICAgY29uc3QgV0dDM0RjaGFyIGZyYWdtZW50U291
cmNlW10gPQorICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7ICBcbiIKKyAgICAgICAg
InVuaWZvcm0gdmVjNCBjb2xvcjsgICAgICAgXG4iCisgICAgICAgICJ2b2lkIG1haW4oKSB7ICAg
ICAgICAgICAgIFxuIgorICAgICAgICAiICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yOyBcbiIKKyAg
ICAgICAgIn0gICAgICAgICAgICAgICAgICAgICAgICAgXG4iOworCisgICAgbV9zY2VuZS5wcm9n
cmFtID0gbG9hZFByb2dyYW0odmVydGV4U291cmNlLCBmcmFnbWVudFNvdXJjZSk7CisgICAgaWYg
KCFtX3NjZW5lLnByb2dyYW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fc2NlbmUu
Y29sb3JMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fc2NlbmUucHJv
Z3JhbSwgImNvbG9yIik7CisgICAgbV9zY2VuZS5wb3NpdGlvbkxvY2F0aW9uID0gbV9jb250ZXh0
LT5nZXRBdHRyaWJMb2NhdGlvbihtX3NjZW5lLnByb2dyYW0sICJwb3NpdGlvbiIpOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIFRlc3RXZWJQbHVnaW46OmluaXRQcmltaXRpdmUoKQorewor
ICAgIEFTU0VSVChtX3NjZW5lLnByaW1pdGl2ZSA9PSBQcmltaXRpdmVUcmlhbmdsZSk7CisKKyAg
ICBtX3NjZW5lLnZibyA9IG1fY29udGV4dC0+Y3JlYXRlQnVmZmVyKCk7CisgICAgaWYgKCFtX3Nj
ZW5lLnZibykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgZmxvYXQgdmVydGlj
ZXNbXSA9IHsgMC4wZiwgIDAuOGYsIDAuMGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtMC44ZiwgLTAuOGYsIDAuMGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC44
ZiwgLTAuOGYsIDAuMGYgfTsKKyAgICBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR0xfQVJSQVlfQlVG
RkVSLCBtX3NjZW5lLnZibyk7CisgICAgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdMX0FSUkFZX0JV
RkZFUiwgc2l6ZW9mKHZlcnRpY2VzKSwgMCwgR0xfU1RBVElDX0RSQVcpOworICAgIG1fY29udGV4
dC0+YnVmZmVyU3ViRGF0YShHTF9BUlJBWV9CVUZGRVIsIDAsIHNpemVvZih2ZXJ0aWNlcyksIHZl
cnRpY2VzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkcmF3
UHJpbWl0aXZlKCkKK3sKKyAgICBBU1NFUlQobV9zY2VuZS5wcmltaXRpdmUgPT0gUHJpbWl0aXZl
VHJpYW5nbGUpOworICAgIEFTU0VSVChtX3NjZW5lLnZibyk7CisgICAgQVNTRVJUKG1fc2NlbmUu
cHJvZ3JhbSk7CisKKyAgICBtX2NvbnRleHQtPnVzZVByb2dyYW0obV9zY2VuZS5wcm9ncmFtKTsK
KworICAgIC8vIEJpbmQgcHJpbWl0aXZlIGNvbG9yLgorICAgIGZsb2F0IGNvbG9yWzRdOworICAg
IHByZW11bHRpcGx5QWxwaGEobV9zY2VuZS5wcmltaXRpdmVDb2xvciwgbV9zY2VuZS5vcGFjaXR5
LCBjb2xvcik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtNGYobV9zY2VuZS5jb2xvckxvY2F0aW9u
LCBjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdLCBjb2xvclszXSk7CisKKyAgICAvLyBCaW5k
IHByaW1pdGl2ZSB2ZXJ0aWNlcy4KKyAgICBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR0xfQVJSQVlf
QlVGRkVSLCBtX3NjZW5lLnZibyk7CisgICAgbV9jb250ZXh0LT5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheShtX3NjZW5lLnBvc2l0aW9uTG9jYXRpb24pOworICAgIG1fY29udGV4dC0+dmVydGV4QXR0
cmliUG9pbnRlcihtX3NjZW5lLnBvc2l0aW9uTG9jYXRpb24sIDMsIEdMX0ZMT0FULCBHTF9GQUxT
RSwgMCwgMCk7CisgICAgbV9jb250ZXh0LT5kcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgMyk7
Cit9CisKK3Vuc2lnbmVkIFRlc3RXZWJQbHVnaW46OmxvYWRTaGFkZXIodW5zaWduZWQgdHlwZSwg
Y29uc3QgV0dDM0RjaGFyKiBzb3VyY2UpCit7CisgICAgdW5zaWduZWQgc2hhZGVyID0gbV9jb250
ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CisgICAgaWYgKHNoYWRlcikgeworICAgICAgICBtX2Nv
bnRleHQtPnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7CisgICAgICAgIG1fY29udGV4dC0+
Y29tcGlsZVNoYWRlcihzaGFkZXIpOworCisgICAgICAgIGludCBjb21waWxlZCA9IDA7CisgICAg
ICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYoc2hhZGVyLCBHTF9DT01QSUxFX1NUQVRVUywgJmNv
bXBpbGVkKTsKKyAgICAgICAgaWYgKCFjb21waWxlZCkgeworICAgICAgICAgICAgbV9jb250ZXh0
LT5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgICAgICAgICAgIHNoYWRlciA9IDA7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIHNoYWRlcjsKK30KKwordW5zaWduZWQgVGVzdFdlYlBsdWdp
bjo6bG9hZFByb2dyYW0oY29uc3QgV0dDM0RjaGFyKiB2ZXJ0ZXhTb3VyY2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXR0MzRGNoYXIqIGZyYWdtZW50U291cmNl
KQoreworICAgIHVuc2lnbmVkIHZlcnRleFNoYWRlciA9IGxvYWRTaGFkZXIoR0xfVkVSVEVYX1NI
QURFUiwgdmVydGV4U291cmNlKTsKKyAgICB1bnNpZ25lZCBmcmFnbWVudFNoYWRlciA9IGxvYWRT
aGFkZXIoR0xfRlJBR01FTlRfU0hBREVSLCBmcmFnbWVudFNvdXJjZSk7CisgICAgdW5zaWduZWQg
cHJvZ3JhbSA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOworICAgIGlmICh2ZXJ0ZXhTaGFk
ZXIgJiYgZnJhZ21lbnRTaGFkZXIgJiYgcHJvZ3JhbSkgeworICAgICAgICBtX2NvbnRleHQtPmF0
dGFjaFNoYWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOworICAgICAgICBtX2NvbnRleHQtPmF0
dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7CisgICAgICAgIG1fY29udGV4dC0+
bGlua1Byb2dyYW0ocHJvZ3JhbSk7CisKKyAgICAgICAgaW50IGxpbmtlZCA9IDA7CisgICAgICAg
IG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KHByb2dyYW0sIEdMX0xJTktfU1RBVFVTLCAmbGlua2Vk
KTsKKyAgICAgICAgaWYgKCFsaW5rZWQpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+ZGVsZXRl
UHJvZ3JhbShwcm9ncmFtKTsKKyAgICAgICAgICAgIHByb2dyYW0gPSAwOworICAgICAgICB9Cisg
ICAgfQorICAgIGlmICh2ZXJ0ZXhTaGFkZXIpCisgICAgICAgIG1fY29udGV4dC0+ZGVsZXRlU2hh
ZGVyKHZlcnRleFNoYWRlcik7CisgICAgaWYgKGZyYWdtZW50U2hhZGVyKQorICAgICAgICBtX2Nv
bnRleHQtPmRlbGV0ZVNoYWRlcihmcmFnbWVudFNoYWRlcik7CisKKyAgICByZXR1cm4gcHJvZ3Jh
bTsKK30KKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFdlYlBsdWdpbi5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uaAkocmV2aXNpb24gMCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFRlc3RXZWJQbHVnaW5faAorI2RlZmluZSBUZXN0V2ViUGx1Z2luX2gKKworI2luY2x1ZGUgIldl
YlBsdWdpbi5oIgorI2luY2x1ZGUgIldlYlJlY3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKK30KKworLy8gQSBmYWtlIGltcGxlbWVudGlvbiBv
ZiBXZWJLaXQ6OldlYlBsdWdpbiBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKy8vCisvLyBJdCB1c2Vz
IFdlYkdyYXBoaWNzQ29udGV4dDNEIHRvIHBhaW50IGEgc2NlbmUgY29uc2lzaXRpbmcgb2YgYSBw
cmltaXRpdmUKKy8vIG92ZXIgYSBiYWNrZ3JvdW5kLiBUaGUgcHJpbWl0aXZlIGFuZCBiYWNrZ3Jv
dW5kIGNhbiBiZSBjdXN0b21pemVkIHVzaW5nCisvLyB0aGUgZm9sbG93aW5nIHBsdWdpbiBwYXJh
bWV0ZXJzOgorLy8gcHJpbWl0aXZlOiBub25lIChkZWZhdWx0KSwgdHJpYW5nbGUuCisvLyBiYWNr
Z3JvdW5kLWNvbG9yOiBibGFjayAoZGVmYXVsdCksIHJlZCwgZ3JlZW4sIGJsdWUuCisvLyBwcmlt
aXRpdmUtY29sb3I6IGJsYWNrIChkZWZhdWx0KSwgcmVkLCBncmVlbiwgYmx1ZS4KKy8vIG9wYWNp
dHk6IFswLjAgLSAxLjBdLiBEZWZhdWx0IGlzIDEuMC4KK2NsYXNzIFRlc3RXZWJQbHVnaW4gOiBw
dWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4geworcHVibGljOgorICAgIFRlc3RXZWJQbHVnaW4oV2Vi
S2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJik7CisgICAgdmly
dHVhbCB+VGVzdFdlYlBsdWdpbigpOworCisgICAgc3RhdGljIGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJiBtaW1lVHlwZSgpOworCisgICAgLy8gV2ViUGx1Z2luIG1ldGhvZHM6CisgICAgdmlydHVh
bCBib29sIGluaXRpYWxpemUoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXIqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveSgpOworICAgIHZpcnR1YWwgTlBPYmplY3QqIHNjcmlwdGFibGVPYmpl
Y3QoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYktpdDo6V2ViQ2Fu
dmFzKiwgY29uc3QgV2ViS2l0OjpXZWJSZWN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUdlb21ldHJ5KGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgZnJhbWVSZWN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGNsaXBSZWN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJL
aXQ6OldlYlJlY3Q+JiBjdXRPdXRzUmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgaXNWaXNpYmxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXMoYm9vbCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpc2liaWxpdHkoYm9vbCkgeyB9CisgICAgdmly
dHVhbCBib29sIGFjY2VwdHNJbnB1dEV2ZW50cygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50Jiwg
V2ViS2l0OjpXZWJDdXJzb3JJbmZvJikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRh
dGFMZW5ndGgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkaW5nKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3Im
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ZyYW1lUmVxdWVzdChjb25z
dCBXZWJLaXQ6OldlYlVSTCYsIHZvaWQqIG5vdGlmeURhdGEpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsTG9hZGluZ0ZyYW1lUmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYlVSTCYsIHZvaWQq
IG5vdGlmeURhdGEsIGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKSB7IH0KKworcHJpdmF0ZToK
KyAgICBlbnVtIFByaW1pdGl2ZSB7CisgICAgICAgIFByaW1pdGl2ZU5vbmUsCisgICAgICAgIFBy
aW1pdGl2ZVRyaWFuZ2xlCisgICAgfTsKKworICAgIHN0cnVjdCBTY2VuZSB7CisgICAgICAgIFBy
aW1pdGl2ZSBwcmltaXRpdmU7CisgICAgICAgIHVuc2lnbmVkIGJhY2tncm91bmRDb2xvclszXTsK
KyAgICAgICAgdW5zaWduZWQgcHJpbWl0aXZlQ29sb3JbM107CisgICAgICAgIGZsb2F0IG9wYWNp
dHk7CisKKyAgICAgICAgdW5zaWduZWQgdmJvOworICAgICAgICB1bnNpZ25lZCBwcm9ncmFtOwor
ICAgICAgICBpbnQgY29sb3JMb2NhdGlvbjsKKyAgICAgICAgaW50IHBvc2l0aW9uTG9jYXRpb247
CisKKyAgICAgICAgU2NlbmUoKQorICAgICAgICAgICAgOiBwcmltaXRpdmUoUHJpbWl0aXZlTm9u
ZSkKKyAgICAgICAgICAgICwgb3BhY2l0eSgxLjBmKSAvLyBGdWxseSBvcGFxdWUuCisgICAgICAg
ICAgICAsIHZibygwKQorICAgICAgICAgICAgLCBwcm9ncmFtKDApCisgICAgICAgICAgICAsIGNv
bG9yTG9jYXRpb24oLTEpCisgICAgICAgICAgICAsIHBvc2l0aW9uTG9jYXRpb24oLTEpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGJhY2tncm91bmRDb2xvclswXSA9IGJhY2tncm91bmRDb2xvclsx
XSA9IGJhY2tncm91bmRDb2xvclsyXSA9IDA7CisgICAgICAgICAgICBwcmltaXRpdmVDb2xvclsw
XSA9IHByaW1pdGl2ZUNvbG9yWzFdID0gcHJpbWl0aXZlQ29sb3JbMl0gPSAwOworICAgICAgICB9
CisgICAgfTsKKworICAgIC8vIEZ1bmN0aW9ucyBmb3IgcGFyc2luZyBwbHVnaW4gcGFyYW1ldGVy
cy4KKyAgICBQcmltaXRpdmUgcGFyc2VQcmltaXRpdmUoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcm
KTsKKyAgICB2b2lkIHBhcnNlQ29sb3IoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmLCB1bnNpZ25l
ZCBjb2xvclszXSk7CisgICAgZmxvYXQgcGFyc2VPcGFjaXR5KGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJik7CisKKyAgICAvLyBGdW5jdGlvbnMgZm9yIGxvYWRpbmcgYW5kIGRyYXdpbmcgc2NlbmUu
CisgICAgYm9vbCBpbml0U2NlbmUoKTsKKyAgICB2b2lkIGRyYXdTY2VuZSgpOworICAgIHZvaWQg
ZGVzdHJveVNjZW5lKCk7CisgICAgYm9vbCBpbml0UHJvZ3JhbSgpOworICAgIGJvb2wgaW5pdFBy
aW1pdGl2ZSgpOworICAgIHZvaWQgZHJhd1ByaW1pdGl2ZSgpOworICAgIHVuc2lnbmVkIGxvYWRT
aGFkZXIodW5zaWduZWQgdHlwZSwgY29uc3QgY2hhciogc291cmNlKTsKKyAgICB1bnNpZ25lZCBs
b2FkUHJvZ3JhbShjb25zdCBjaGFyKiB2ZXJ0ZXhTb3VyY2UsIGNvbnN0IGNoYXIqIGZyYWdtZW50
U291cmNlKTsKKworICAgIFdlYktpdDo6V2ViRnJhbWUqIG1fZnJhbWU7CisgICAgV2ViS2l0OjpX
ZWJQbHVnaW5Db250YWluZXIqIG1fY29udGFpbmVyOworCisgICAgV2ViS2l0OjpXZWJSZWN0IG1f
cmVjdDsKKyAgICBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CisgICAg
U2NlbmUgbV9zY2VuZTsKK307CisKKyNlbmRpZiAvLyBUZXN0UGVwcGVyUGx1Z2luX2gKClByb3Bl
cnR5IGNoYW5nZXMgb246IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA5
NjU5NikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxheW91dFRlc3RDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiVGVzdFNoZWxsLmgiCisjaW5jbHVkZSAiVGVzdFdlYlBsdWdpbi5oIgogI2luY2x1ZGUgIlRl
c3RXZWJXb3JrZXIuaCIKICNpbmNsdWRlICJXZWJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViQ29t
cG9zaXRvci5oIgpAQCAtNDksNiArNTAsNyBAQAogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1
ZGUgIldlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKKyNpbmNs
dWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNs
dWRlICJXZWJQb3B1cFR5cGUuaCIKICNpbmNsdWRlICJXZWJSYW5nZS5oIgpAQCAtNzgwLDYgKzc4
Miw5IEBAIHZvaWQgV2ViVmlld0hvc3Q6OnJ1bk1vZGFsKCkKIAogV2ViUGx1Z2luKiBXZWJWaWV3
SG9zdDo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViUGx1Z2luUGFyYW1z
JiBwYXJhbXMpCiB7CisgICAgaWYgKHBhcmFtcy5taW1lVHlwZSA9PSBUZXN0V2ViUGx1Z2luOjpt
aW1lVHlwZSgpKQorICAgICAgICByZXR1cm4gbmV3IFRlc3RXZWJQbHVnaW4oZnJhbWUsIHBhcmFt
cyk7CisKICAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkNyZWF0ZVdlYlBsdWdpbihmcmFtZSwg
cGFyYW1zKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTY4NTMpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0wNiAgQWxv
ayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgbGF5b3V0
IHRlc3RzIGZvciBXZWJQbHVnaW4gY29tcG9zaXRvciBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTAyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvcGx1Z2luczogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVj
dGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBo
YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9w
bHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVj
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24uaHRtbDogQWRkZWQuCisKIDIw
MTEtMTAtMDYgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtDaHJvbWl1bV0gUmViYXNlbGluZSB0ZXN0IG1pc3NlZCBpbiByOTY4MTQuCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdp
bi1hbHBoYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDM2NQorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MzY1CisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsMTYpIHNpemUgNzg0eDM0MQorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4
MngxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4MjogIllvdSBzaG91bGQg
c2VlIHR3byBzcXVhcmVzIG9mIHRoZSBzYW1lIGNvbG9yLiIKKyAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDM2KSBzaXplIDc4NHgxNTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxOTEp
IHNpemUgMTUweDE1MCBbYmdjb2xvcj0jOTlGRjk5XQorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMTUw
eDE1MAorICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMTUweDE1
MAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lu
cy93ZWJwbHVnaW4tYWxwaGEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KKyAgLmJveCB7CisgICAgd2lkdGg6IDE1MHB4OworICAgIGhlaWdodDogMTUw
cHg7CisgIH0KKyAgI3JlZiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MywyNTUsMTUz
KTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Zb3Ugc2hvdWxkIHNlZSB0
d28gc3F1YXJlcyBvZiB0aGUgc2FtZSBjb2xvci48L3A+CisKKzxlbWJlZCBjbGFzcz0iYm94IiB0
eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYmFja2dyb3VuZC1jb2xv
cj0iZ3JlZW4iIG9wYWNpdHk9IjAuNCI+Cis8ZGl2IGlkPSJyZWYiIGNsYXNzPSJib3giPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBo
YS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDIxMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjEwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsMTYpIHNpemUgNzg0eDE4NgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIz
N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIzNzogIllvdSBzaG91bGQg
YSBncmVlbiBzcXVhcmUgd2l0aCBubyByZWQuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMzYpIHNpemUgMTUweDE1MCBbYmdjb2xvcj0jRkYwMDAwXQorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDUyKSBzaXplIDE1MHgxNTAK
KyAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDE1MHgxNTAKClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdp
bnMvd2VicGx1Z2luLW5vLWFscGhhLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CisgIC5ib3ggeworICAgIHdpZHRoOiAxNTBweDsKKyAgICBoZWln
aHQ6IDE1MHB4OworICB9CisgICNwYXJlbnQgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigy
NTUsMCwwKTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Zb3Ugc2hvdWxk
IGEgZ3JlZW4gc3F1YXJlIHdpdGggbm8gcmVkLjwvcD4KKworPGRpdiBpZD0icGFyZW50IiBjbGFz
cz0iYm94Ij4KKyAgPGVtYmVkIGNsYXNzPSJib3giIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0
LXRlc3Qtd2VicGx1Z2luIiBiYWNrZ3JvdW5kLWNvbG9yPSJncmVlbiIgb3BhY2l0eT0iMS4wIj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxw
aGEuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdp
bi1yZWZsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24tZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDIxNQorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjE1CisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE5MQorICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDQxOHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQx
ODogIllvdSBzaG91bGQgc2VlIGEgYmx1ZSB0cmlhbmdsZSBvbiBncmVlbiBiYWNrZ3JvdW5kIGFu
ZCBpdHMgcmVmbGVjdGlvbi4iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwz
Nikgc2l6ZSA3ODR4MTU1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMTUweDE1MAorICBSZW5kZXJFbWJlZGRlZE9iamVj
dCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMTUweDE1MAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4t
cmVmbGVjdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxl
Y3Rpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24uaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUwcHg7CisgICAgaGVpZ2h0OiAxNTBweDsK
KyAgICAtd2Via2l0LWJveC1yZWZsZWN0OiBiZWxvdyAyMHB4OworICB9Cis8L3N0eWxlPgorPC9o
ZWFkPgorCis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgYmx1ZSB0cmlhbmdsZSBvbiBncmVl
biBiYWNrZ3JvdW5kIGFuZCBpdHMgcmVmbGVjdGlvbi48L3A+CisKKzxlbWJlZCBpZD0icGx1Z2lu
IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgcHJpbWl0aXZlPSJ0
cmlhbmdsZSIgYmFja2dyb3VuZC1jb2xvcj0iZ3JlZW4iIHByaW1pdGl2ZS1jb2xvcj0iYmx1ZSI+
Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLmh0
bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxw
aGEtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMv
d2VicGx1Z2luLWFscGhhLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10
eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlB
QUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTNZVFZqTnpFeApNR016TXpSaVkyRXpOelF4
T0daa1lqVTVZelJrWlRSaFpkSENGYVVBQUEwZVNVUkJWSGljN2QzYmJ0cEtBRUJSYzlSdnpVZmxa
emtQClVaSGx5MkRDSnFTdzFrTkZBZHN6UXlSMmJTczluYy9uQ1FDQXpuL1BIZ0FBd0tzUldBQUFN
WUVGQUJBVFdBQUFNWUVGQUJBVFdBQUEKTVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFBTVlFRkFCQVRX
QUFBTVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFBTVlFRkFCQVRXQUFBTVlFRgpBQkFiQmRacFp1K1p5
djA3M050RFBsVG1ydjQ4dk5MNnY5SmNBSGlvUDRQWHp1ZnpORTJuMCtucndkY3o4NzlXMU5VL2F2
N0RzUG1ECjhVcnIvMHB6QWVEUmJydEUrSWk2bXY2VzNDUDI4SWpSenZuU3ZaZ3Y5V1ZaSHIzK1Ar
bVY1Z0xBbzEwUHJLK3pWajh3RkFDQTF6QzYKUkxpd2QvcnFLNy9tbDRxbTJlWEZhZWVmL3Bzbk9U
YmZmOC8rQjJjZDFnTVlER2x6VjE4dkxlcHozcU9MeDk4ZTJIeXJyMDloc0FpYgpSOXpjNVBoTU4w
YytuLzU2UDROUDdhYkRmVzlxZHg1b2I4eWJHeTZPdFJnUEFPL3BVR0FOYnIyNlBIOTVzRmNZZTFz
TmR0WHVmL3lHCjhVRVhqemVYWlRIQzllTzlQZCswTXV1Snp4K3ZqM1hKbmMySnJNZHpaTVUycDdh
M0xIdEh1WHJ6MXRVUGFERzFSV2JkZXFDckszTjEKUWRaTERjRGJ1dXZYTkt6dmY3OTFEL092b3ZH
WDMvSDlMN1k2UG9EVFg0dTlyWi84bnB1bXMvbXRmM3c2aTdNeTYzTXplNU1heDhTUgprUi9mNTVH
RlhjOTlNTFY3RGpUdHIvbDYyODAzYkM0MUFPL3Boa3VFb2FkZlJ0a2N3T1pnam85d2Z2MXU4ZWVk
QTd2SlpmTkJVdXlkCmRycm51TGNhSDJoelBFZW1kdXVCQU9BUm5oTlkwOWJ2Z0hpM0FleTVaMkQz
VE9lM0xjamdZaDhBL0hKM1hTTGN1L3ZuNG5KWHl1YnoKRDlyL1lxdHZER0R6MWNFbW0vZExyY2Q4
ZFRyM0RHeDlaWE93bi9YYnJsNnZ2RHJ5ZzZNOStMYURxMzJUcXh2T0x6Nk81L3U5QlFIZwpmVnov
YmxqbnkrWWIxbmY1VFB2M1FTOXVvOW44WWx2Y2N6UGUvMkNySXdPNDljbkIzQWVCTlpqTzhURXM5
cjk0Y25NbGoweHFQTTNOCmtjLzNQL2gwMXVOWkQvWElPb3luOXUwRERkNndOOSs5bjh6Tk4yZ3Zn
UGZrQytBZjR6c2JBSDQvLzlrekFFQk1ZUDFMOW00cEF3QisKRmRlYkFBQml6bUFCQU1RRUZnQkFU
R0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpG
Z0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNVCs3TDN3T1gzKzVEaklmVXdmeng0Q0FM
d3BaN0FBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
ZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBCkFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUMKQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZwpKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdLbjgv
bjg3REVBQUx3VVo3QUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWc5bWZ2aGMvcDh5ZkhRZTVqK25qMkVB
RGdUVG1EQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EK
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUU81
M1A1MmVQQVFEZ3BUaURCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBCkFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
CkFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUQpFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBCkFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0IKQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
TEgvQVhMYUNUUkMzWWRoQUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVj
dGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdp
bi1uby1hbHBoYS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQog
ICArIGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZG
QlVuQUFBQUtYUkZXSFJqYUdWamEzTjFiUUExWm1NMU5HSmgKTUdFNU1tTXdaamhpWVRjeFl6YzBa
R1JrTXpNd1ltUXlZWjY3UXQwQUFBeklTVVJCVkhpYzdkM1JicHRJQUVCUmU1WC8vMlgySVpMRgpZ
aGdtOXEzdGJjNTVxRkl3dzRBZnVBTFNYcGRsdVFBQTBQbm4zUk1BQVBqYkNDd0FnSmpBQWdDSUNT
d0FnSmpBQWdDSUNTd0FnSmpBCkFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFn
Q0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0kKalFMcnVuSzBwUEw4Z0VjajVG
UDl0WGJQNUVlZDNvK2FEQUMvMlNpd2xtVlpsdVg3aDl1UzlmS0t1dnBmdVAvU1ArcjBmdFJrQVBq
bApmdmFJOEhxOXRtbjE3Zmt4ajBiNEU3UGxsaklmZFhvL2FqSUEvSExuZ2JVc2kzc0RBQUR6dnVZ
L2VuVDc2anUvYnF2V2Y5MnN1dDlxCnMzYjM4OCtNUDdpcmNYb2JacE9WMzZGNXk4MzFCSGFQWWpQ
bnpZYVQ4N2x0Y3JUcnpXa1o3M1J3eU90Vmc1OXZTd1pmeXYzSVI4ZCsKZWtJbTUzLzZYUVBBaTgw
KzhodlUxZTNpdDdtMER6YTgzMnB6SGIzZi9IVDhvNFdYZzU2WW5PSGx2MWY2eTEzQm5FNWpzK0hr
Q1hueQo1RXpPZHVhYzdJYk9VZS91cHMvODVJODJQSjNlWmlZQThGNVAvVE1ONit2Y1kwOFMxNWZE
OFNWL2Z2ek5WdVA5enM5NTg3Ny9iZlA3CjM2bmNMTnpkY0x5WHlhUFkzZXFuczUwMG1NUHBxZ2Ur
MmNuNS8rZ3NBY0RML09BUlllajBlZGtMckorK1BUekk3dndmT0tqblQ4ak0KNFl3SFh6OEUzUHo1
MkpSeW56TVRBQmg3VDJCZGhzL0xYdUIwdjd0UDJmNm9aMDdJUjJVUUFQRFVJOEoxaFF6ZXBMbS9w
eko1MCtpeAo4VGRialhkM3RPcDdkOTltcHJvN3p2eTlzZkVuQjRQZlA1MThjbmVucjJyOWRGKzdU
ci9ac1hYN3puL1hBUEF5NTllMiszelovY0RSCkwzYk52TUs4ZTczY2ZZMzZhUHpCVnFjVEdJeS9Q
dXJkRzFvekM4ZEhOem5PN252bG0vZTdON3VZbk8zRzRGM3l6UzQyaHpOekNKc1AKREo2S3pwL3R5
OEVKY1VzUGdEZHlIZHB4ZjNsKyt3WDc3Uk1BQU9iNXo1NEJBR0x1aSt3N2ZURDZTaTkrM1I0QWVK
TEFBZ0NJZVVRSQpBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUV0FBQU1Z
RUZBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUCldBQUFNWUVGQUJBVFdBQUFNWUVGQUJEN09s
cHh2VnhmT1E5eXkyVjU5eFFBNEpkeUJ3c0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EKSUNhd0FB
QmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNh
d0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdz
QUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFC
aUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EKSUNh
d0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NB
SUNhd0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJp
QWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJQ2F3
QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0EK
SUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlB
Z3NBSUNhd0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdB
QUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFnc0FJ
Q2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFnc0FJQ2F3QUFCaUFn
c0EKSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FBQmlBZ3NBSUNhd0FB
QmlBZ3NBSUNhd0FBQmlBZ3NBSUNhdwpBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlD
YXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpQWdzQUlDYXdBQUJpCkFnc0FJQ2F3QUFCaUFn
c0FJQ2F3QUFCaUFnc0FJUFoxdEdLNUxLK2NCd0RBWDhNZExBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKCkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
CkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQwpBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKCkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0EKbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBMkw4UAox
N0htaEEzZy9nQUFBQUJKUlU1RXJrSmdnZz09CgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBlY3Rl
ZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkg
dHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4t
cmVmbGVjdGlvbi1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQog
ICArIGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZG
QlVuQUFBQUtYUkZXSFJqYUdWamEzTjFiUUE1WXpKaFpERXgKTm1WbFpXUTBOemMyWkdabU56Rm1O
VFF6WkRrMU9USTBPREZSWTJrQUFCSGdTVVJCVkhpYzdkM1JjdUk2Rm9aUk1wWDNmMlhtSXRVVQpC
N0FSNXJldExhMTExWjJBTFFzM2ZHY25OZk56dlY0dkFBRGsvTy9zQlFBQWpFWmdBUUNFQ1N3QWdE
Q0JCUUFRSnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQXNMWEErcm16OUpXVTd3
KzRkSVQ0VWo5eS9LcFNSejUzMy9hdzN6MTJpdXhpWGg1dDE3czA4azdTMVNzQ2NHOHRzSzdYNi9W
NgovZnZEN1N2M1gwOVJWMEdSbDJhOHp5MTF0ZUZvMlgvbTk2ZEx2WWZzdEVLQTczMzJJOEsvZDhi
NElyNC81dElSem4zLzNXOVZlMy9ZCmovZTV0ZDg5ZG9yc1l0NGViYWY3YmR0VmRGVzZBRXZlQjli
MWV2V09CZ0RRN3JmOW9VdmpxNy84dW4zci9xOFAzM3ArMXNOM1h6NysKbStPdi9DZnk4d0pXbHJS
eXFMY1BXRm5NeXJXc0hQYnZXN2ZILzcwdUQzOWR1Y2I3Qno5ZnhjdVRicnZHcFhPOVBQTHQrTS9Q
YW54ZApXazczY3AzdHAxZy8rOXNMZVQ3NzBnMndjaTNiYnV4dFI3dC80dHRYWk9sY0R3OStQdHJL
eXQ4Ky9lRk5hZHROQ0xDSHBzQjZmaU83CnVYMzk5b2Y3aWRmUzlPditXU3VIeWg1Ly9RSHJKMzM0
OC9OeGxoNndkTFRuOWQvL2VmMnc5eS9IN2ZObVpUOHYvLzJZZVY3UCt1bTIKWGVQU3VkYVAvUENz
cFQrM1g5cmJkYmFmNHVGUXo1L2k2eGZ5OHVBdmI0Q1ZhMm0vc1Z0Mlp2MW9Ed3RyZVZiTHk3ZjBa
dEw0S2p6ZgovQ3ZiMjNoWEFPemhxLytaaHZzM3JLWFdXWGYvZnJmK250dCsvSWRudFMvZzU1K0hv
ejEvOGZucEsydmJ0a1hyNTMwNCtNdnJmVjdiCnc0UGJyUy9tNWN1MDdWd3ZuOVh5dWpTZTd1VnI4
ZlpGWENuTzlndHB2NW1YcnFYbHhtNS8wZDhlN2FOL095dm5hcnlUM3o2eXZYRy8KdkFrQklqNzRF
V0hROWV5aC9jc0ZiUHVZdVIxblExK3VyL0Q3ZzZUV2R1NUgxTGJYNVNQdEc1VjlsZmV3MHcxNTgr
ay8zdlpYU2drQgpJemtuc0M3Ly9WMlR1Z3ZvK1ljTzdXdDdPYzQ1d0ZubmZmRFJpL2p5dHVua1Fp
NUgzWkNuLytNRjZOOVhQeUs4THZ6YTBNM3RkeUJlCmZuMm40ejg4YThNQ1huNTN3MU9lSDdQeWdi
UmhxZTAvTTIxWjJKOE5oM3I3TW4xLzNwV3piNXZUck54T0cwN1JjaUdiLzdFc0hXSDkKd1MwL1hH
NC8ya2NQMjd5azlVYysvNHo0L3ErYmIwS0FuYngvSjNwK0kzdjVnT2Rmdkxncy8zYjh3My91My85
MTZUZGoxbysvOHF5VwpCWHo2eFpmZlhmcTV5Y3J2K3R4Zi9zTlNXODc3Zk9GTE83bnlhZlQydTI4
WDg3Q2s1L1V2UGYzdGVaOFB0ZlRGbHRPMUhPcitLdFkzCjRhTU5mRGhYKzgzOHpZM2RzcXFWb3pW
dXk5SlRscjY0MU9pTlQ3OHMzL3lYNXB0UWdRRUg4RVl6dTVlZnJBZmNGV2VkTjI2WUN3RWcKeVAv
Wk13QkFtUC9VNXYxUGdRYzdiOXd3RndKQWlzQUNBQWp6STBJQWdEQ0JCUUFRSnJBQUFNSUVGZ0JB
bU1BQ0FBZ1RXQUFBWVFJTApBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJ
RTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBc04rbGIveGNmbzVjCkIzSFh5L1hzSlFEQXBFeXdBQURD
QkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1kK
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdMQlpBK3ZuZXZtNW5yMElBR0JNc3dZV0FNQnVw
Z3lzMit6S0VBc0EyTUdVZ1FVQQpzS2Y1QXV0aGFtV0lCUUNrelJkWUFBQTdteXl3WHM2ckRMRUFn
S2pKQWdzQVlIOHpCZGJLcE1vUUN3REltU213QUFBT01VMWd2WjFSCkdXSUJBQ0hUQkJZQXdGSG1D
S3pHNlpRaEZnQ1FNRWRnQVFBY2FJTEErbWd1WllnRkFIeHRnc0FDQURqVzZJRzFZU0psaUFVQWZH
ZjAKd0FJQU9OelFnYlY1Rm1XSUJRQjhZZWpBQWdBNHc3aUI5ZVVVeWhBTEFOaHEzTUFDQURqSm9J
RVZtVDhaWWdFQW13d2FXQUFBNXhreApzSUtUSjBNc0FPQnpJd1lXQU1DcGhndXMrTXpKRUFzQStO
QndnUVVBY0xheEFtdW5hWk1oRmdEd2liRUNDd0NnQXdNRjFxNXpKa01zCkFLRFpRSUVGQU5DSFVR
THJnQW1USVJZQTBHYVV3QUlBNk1ZUWdYWFliTWtRQ3dCb01FUmdBUUQwcEg1Z0hUeFZNc1FDQU42
cEgxZ0EKQUowcEhsaW56Sk1Nc1FDQVZjVURDd0NnUDVVRDY4UkpraUVXQUxDc2NtQUJBSFNwYkdD
ZFBrTTZmUUVBUUsvS0JoWUFRSzlxQmxZbgowNk5PbGdFQWRLWm1ZQUVBZEt4Z1lIVTFOK3BxTVFC
QUh3b0dGZ0JBMzZvRlZvY1RvdzZYQkFDY3FscGdBUUIwcjFSZ2RUc3I2blpoCkFNQVpTZ1VXQUVB
RmRRS3I4eWxSNThzREFBNVVKN0FBQUlvb0VsZ2w1a01sRmdrQTdLOUlZQUVBMUZFaHNBcE5oZ290
RlFEWVRZWEEKQWdBb3BmdkFLamNUS3JkZ0FDQ3QrOEFDQUtpbTc4QXFPZzBxdW13QUlLVHZ3QUlB
S0tqandDbzlCeXE5ZUFEZ094MEhGZ0JBVGIwRwoxZ0FUb0FFdUFRRFlwTmZBQWdBb3E4dkFHbWIy
TTh5RkFBQ2Y2REt3QUFBcTZ5K3dCcHY2REhZNUFFQ0QvZ0lMQUtDNHpnSnJ5SG5QCmtCY0ZBQ3py
TExBQUFPcnJLYkFHbnZRTWZHa0F3Sk9lQWdzQVlBamRCTmJ3TTU3aEx4QUErS2Vid0FJQUdFVWZn
VFhKZEdlU3l3U0EKNmZVUldBQUFBK2tnc0thYTYweDFzUUF3cXc0Q0N3QmdMR2NIMW9RVG5Ra3ZH
UUFtYzNaZ0FRQU01OVRBbW5hV00rMkZBOEFjVExBQQpBTUxPQzZ6SnB6aVRYejRBRE0wRUN3QWc3
S1RBTXIrNTJBUUFHSllKRmdCQTJCbUJaWEp6WXlzQVlFUW1XQUFBWVljSGxwbk5BeHNDCkFNTXh3
UUlBQ0RzMnNFeHJYckl0QURBV0V5d0FnTEFEQTh1Y1pvWE5BWUNCbUdBQkFJUWRGVmdtTkcvWkln
QVloUWtXQUVEWUlZRmwKTnRQSVJnSEFFRXl3QUFEQzlnOHNVNW1QMkM0QXFNOEVDd0FnYk9mQU1v
L1p3S1lCUUhFbVdBQUFZWHNHbGtuTVpyWU9BQ296d1FJQQpDTnN0c014Z3ZtUURBYUFzRXl3QWdM
QjlBc3YwSmNJMkFrQk5KbGdBQUdFN0JKYTVTNUROQklDQ1RMQUFBTUxTZ1dYaUVtZExBYUFhCkV5
d0FnTEJvWUptMTdNVEdBa0FwSmxnQUFHRzV3REpsMlpYdEJZQTZUTEFBQU1KQ2dXVytjZ0NiREFC
Ri9HWU9jLzNKSEFjQW9ENC8KSWdRQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJB
QUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrcwpBSUF3Z1FVQUVQYTc5STNyNVhy
a09nQUFobUdDQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3
CmdRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRURZNzlJM2ZpNC8KUjY2RHVPdmxldllTQUdCU0psZ0FBR0VDQ3dBZ1RHQUJBSVFK
TEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENC
QlFBUUpyQUFBTUorTTRmNXVXYU93N3JyejlrckFBRGVDMDJ3ZlBBZndDWURRQkYrUkFnQUVKWUxM
UE9WClhkbGVBS2pEQkFzQUlDd2FXS1lzTzdHeEFGQ0tDUllBUUZnNnNNeGE0bXdwQUZSamdnVUFF
TFpEWUptNEJObE1BQ2pJQkFzQUlHeWYKd0RKM2liQ05BRkNUQ1JZQVFOaHVnV1g2OGlVYkNBQmxt
V0FCQUlUdEdWaG1NSnZaT2dDb3pBUUxBQ0JzNThBeWlkbkFwZ0ZBY1NaWQpBQUJoK3dlV2VjeEhi
QmNBMUdlQ0JRQVFka2hnbWNvMHNsRUFNQVFUTEFDQXNLTUN5MnptTFZzRUFLTXd3UUlBQ0Rzd3NF
eG9WdGdjCkFCaUlDUllBUU5peGdXVk84NUp0QVlDeG1HQUJBSVFkSGxpbU5ROXNDQUFNeHdRTEFD
RHNqTUF5czdteEZRQXdJaE1zQUlDd2t3TEwKNU9aaUV3QmdXQ1pZQUFCaDV3WFc1UE9ieVM4ZkFJ
Wm1nZ1VBRUhacVlFMDd4Wm4yd2dGZ0RpWllBQUJoWndmV2hMT2NDUzhaQUNaegpkbUFCQUF5bmc4
Q2FhcUl6MWNVQ3dLdzZDQ3dBZ0xIMEVWaVR6SFVtdVV3QW1GNGZnUVVBTUpCdUFtdjQ2Yzd3Rndn
QS9OTk5ZQUVBCmpLS253QnA0eGpQd3BRRUFUM29LTEFDQUlYUVdXRU5PZW9hOEtBQmdXV2VCQlFC
UVgzK0JOZGk4WjdETEFRQWE5QmRZQUFERmRSbFkKdzB4OWhya1FBT0FUWFFZV0FFQmx2UWJXQUxP
ZkFTNEJBTmlrMThBQ0FDaXI0OEFxUFFFcXZYZ0E0RHNkQnhZQVFFMTlCMWJST1ZEUgpaUU1BSVgw
SEZnQkFRZDBIVnJscFVMa0ZBd0JwM1FjV0FFQTFGUUtyMEV5bzBGSUJnTjFVQ0N3QWdGS0tCRmFK
eVZDSlJRSUEreXNTCldBQUFkZFFKck03blE1MHZEd0E0VUozQUFnQW9vbFJnZFRzbDZuWmhBTUFa
U2dVV0FFQUYxUUtydzFsUmgwc0NBRTVWTGJBQUFMcFgKTUxDNm1oaDF0UmdBb0E4RkF3c0FvRzgx
QTZ1VHVWRW55d0FBT2xNenNBQUFPbFkyc0U2ZkhwMitBQUNnVjJVREN3Q2dWNVVENjhRWgprdkVW
QUxDc2NtQUJBSFNwZUdDZE1ra3l2Z0lBVmhVUExBQ0EvdFFQcklQblNjWlhBTUE3OVFNTEFLQXpR
d1RXWVZNbDR5c0FvTUVRCmdRVUEwSk5SQXV1QTJaTHhGUURRWnBUQUFnRG94a0NCdGV1RXlmZ0tB
R2cyVUdBQkFQUmhyTURhYWM1a2ZBVUFmR0tzd0FJQTZNQncKZ1JXZk5obGZBUUFmR2k2d0FBRE9O
bUpnQldkT3hsY0F3T2RHREN3QWdGTU5HbGlSeVpQeEZRQ3d5YUNCQlFCd25uRUQ2OHY1ay9FVgpB
TERWdUlFRkFIQ1NvUU5yOHhUSytBb0ErTUxRZ1FVQWNJYlJBMnZETE1yNENnRDR6dWlCQlFCd3VB
a0M2Nk9KbFBFVkFQQzFDUUlMCkFPQlljd1JXNDF6SytBb0FTSmdqc0FBQURqUk5ZTDJkVGhsZkFR
QWgwd1FXQU1CUlpncXNsUm1WOFJVQWtETlRZQUVBSEdLeXdIbzUKcVRLK0FnQ2lKZ3NzQUlEOXpS
ZFlEL01xNHlzQUlHMit3QUlBMk5tVWdYV2JXaGxmQVFBN21ES3dBQUQyOUh2MkFrNWlkZ1VBN01Z
RQpDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4
Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBCkFNSUVGZ0JBbU1BQ0FBajdYZnJHOVhJOWNoMEFBTU13d1FJ
QUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FB
QVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0Fn
VEdBQgpBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNF
Q1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3
Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVG
Z0JBbU1BQwpBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFB
Z0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllB
QUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxB
Q0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJ
UUpMQUNBTUlFRgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdE
Q0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW0Kc0FBQXdn
UVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1B
Q0FBZ1RXQUFBWVFJTApBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFn
QUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBCndnUVdBRUNZd0FJQUNCTllBQUJoQWdz
QUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk0KWUFF
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNB
TUlFRkFCQW1zQUFBd2dRVwpBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFR
SnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBCmhBa3NBSUF3Z1FVQUVDYXdBQURD
QkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1kK
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RX
QUFBWVFJTEFDQk1ZQUVBaEFrcwpBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUND
d0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBCkNCTllBQUJoQWdzQUlFeGdB
UUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDRHMvOUVnaFcvYnJP
aTAKQUFBQUFFbEZUa1N1UW1DQwoK
</data>
<flag name="review"
          id="107385"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110019</attachid>
            <date>2011-10-06 14:16:16 -0700</date>
            <delta_ts>2011-10-15 01:51:26 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>69027.patch</filename>
            <type>text/plain</type>
            <size>42711</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5Njg1MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMTAtMDYgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgV2ViUGx1Z2luIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTEwLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
OTY3OTEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gOTY1OTYpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjY2LDcgKzI2Niw3IEBAIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRQYWdl
KGkKIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludEVuZCgpCiB7Ci0gICAgcmV0
dXJuIG1fd2ViUGx1Z2luLT5wcmludEVuZCgpOworICAgIG1fd2ViUGx1Z2luLT5wcmludEVuZCgp
OwogfQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmNvcHkoKQpJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTY4NTMp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NyBAQAorMjAx
MS0xMC0wNiAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBBZGQgbGF5b3V0IHRlc3RzIGZvciBXZWJQbHVnaW4gY29tcG9zaXRvciBwYXRoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTAyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcDogQWRkZWQuCisgICAgICAgIChwcmVtdWx0aXBseUFscGhhKToKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6flRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6bWltZVR5cGUp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjpkZXN0cm95KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZUdlb21ldHJ5
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnBhcnNlUHJpbWl0aXZlKToKKyAgICAgICAgKFRl
c3RXZWJQbHVnaW46OnBhcnNlQ29sb3IpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6cGFyc2VP
cGFjaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRTY2VuZSk6CisgICAgICAgIChU
ZXN0V2ViUGx1Z2luOjpkcmF3U2NlbmUpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGVzdHJv
eVNjZW5lKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRQcm9ncmFtKToKKyAgICAgICAg
KFRlc3RXZWJQbHVnaW46OmluaXRQcmltaXRpdmUpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6
ZHJhd1ByaW1pdGl2ZSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpsb2FkU2hhZGVyKToKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OmxvYWRQcm9ncmFtKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6c2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpwYWludCk6
CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjp1cGRhdGVGb2N1cyk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjp1cGRhdGVWaXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmFjY2Vw
dHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2lu
OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZhaWxMb2Fk
aW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmdGcmFtZVJlcXVl
c3QpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3Qp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6U2NlbmU6OlNjZW5lKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9z
dDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMS0xMC0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8
a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBEUlQ6IENyZWF0ZSBpY29uIGRh
dGFiYXNlIHBhdGggaW4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJs
ZWQuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHJldmlz
aW9uIDk2NTk2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rl
c3RTaGVsbEd0ay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RTaGVsbE1hYy5tbScs
CiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5j
cHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCShyZXZpc2lvbiAwKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVk
ZSAiV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWluZXIu
aCIKKyNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvLyBHTGVudW0gdmFsdWVzIGNvcGll
ZCBmcm9tIGdsMi5oLgorI2RlZmluZSBHTF9GQUxTRSAgICAgICAgICAgICAgICAgIDAKKyNkZWZp
bmUgR0xfVFJVRSAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEdMX09ORSAgICAgICAgICAg
ICAgICAgICAgMQorI2RlZmluZSBHTF9UUklBTkdMRVMgICAgICAgICAgICAgIDB4MDAwNAorI2Rl
ZmluZSBHTF9PTkVfTUlOVVNfU1JDX0FMUEhBICAgIDB4MDMwMworI2RlZmluZSBHTF9CTEVORCAg
ICAgICAgICAgICAgICAgIDB4MEJFMgorI2RlZmluZSBHTF9GTE9BVCAgICAgICAgICAgICAgICAg
IDB4MTQwNgorI2RlZmluZSBHTF9DT0xPUl9CVUZGRVJfQklUICAgICAgIDB4NDAwMAorI2RlZmlu
ZSBHTF9BUlJBWV9CVUZGRVIgICAgICAgICAgIDB4ODg5MgorI2RlZmluZSBHTF9TVEFUSUNfRFJB
VyAgICAgICAgICAgIDB4ODhFNAorI2RlZmluZSBHTF9GUkFHTUVOVF9TSEFERVIgICAgICAgIDB4
OEIzMAorI2RlZmluZSBHTF9WRVJURVhfU0hBREVSICAgICAgICAgIDB4OEIzMQorI2RlZmluZSBH
TF9DT01QSUxFX1NUQVRVUyAgICAgICAgIDB4OEI4MQorI2RlZmluZSBHTF9MSU5LX1NUQVRVUyAg
ICAgICAgICAgIDB4OEI4MgorCitzdGF0aWMgdm9pZCBwcmVtdWx0aXBseUFscGhhKGNvbnN0IHVu
c2lnbmVkIGNvbG9ySW5bM10sIGZsb2F0IGFscGhhLCBmbG9hdCBjb2xvck91dFs0XSkKK3sKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkKKyAgICAgICAgY29sb3JPdXRbaV0gPSAoY29s
b3JJbltpXSAvIDI1NS4wZikgKiBhbHBoYTsKKworICAgIGNvbG9yT3V0WzNdID0gYWxwaGE7Cit9
CisKK1Rlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFy
YW1zJiBwYXJhbXMpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9jb250YWluZXIoMCkK
KyAgICAsIG1fY29udGV4dCgwKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJp
YnV0ZVByaW1pdGl2ZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInByaW1pdGl2ZSIpOworICAgIHN0
YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJpYnV0ZUJhY2tncm91bmRDb2xvciA9IFdlYlN0cmlu
Zzo6ZnJvbVVURjgoImJhY2tncm91bmQtY29sb3IiKTsKKyAgICBzdGF0aWMgY29uc3QgV2ViU3Ry
aW5nIGtBdHRyaWJ1dGVQcmltaXRpdmVDb2xvciA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInByaW1p
dGl2ZS1jb2xvciIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga0F0dHJpYnV0ZU9wYWNp
dHkgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJvcGFjaXR5Iik7CisKKyAgICBBU1NFUlQocGFyYW1z
LmF0dHJpYnV0ZU5hbWVzLnNpemUoKSA9PSBwYXJhbXMuYXR0cmlidXRlVmFsdWVzLnNpemUoKSk7
CisgICAgc2l6ZV90IHNpemUgPSBwYXJhbXMuYXR0cmlidXRlTmFtZXMuc2l6ZSgpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGNvbnN0IFdlYlN0cmlu
ZyYgYXR0cmlidXRlTmFtZSA9IHBhcmFtcy5hdHRyaWJ1dGVOYW1lc1tpXTsKKyAgICAgICAgY29u
c3QgV2ViU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSA9IHBhcmFtcy5hdHRyaWJ1dGVWYWx1ZXNbaV07
CisKKyAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZVByaW1pdGl2ZSkKKyAg
ICAgICAgICAgIG1fc2NlbmUucHJpbWl0aXZlID0gcGFyc2VQcmltaXRpdmUoYXR0cmlidXRlVmFs
dWUpOworICAgICAgICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVCYWNrZ3Jv
dW5kQ29sb3IpCisgICAgICAgICAgICBwYXJzZUNvbG9yKGF0dHJpYnV0ZVZhbHVlLCBtX3NjZW5l
LmJhY2tncm91bmRDb2xvcik7CisgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0
dHJpYnV0ZVByaW1pdGl2ZUNvbG9yKQorICAgICAgICAgICAgcGFyc2VDb2xvcihhdHRyaWJ1dGVW
YWx1ZSwgbV9zY2VuZS5wcmltaXRpdmVDb2xvcik7CisgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0
ZU5hbWUgPT0ga0F0dHJpYnV0ZU9wYWNpdHkpCisgICAgICAgICAgICBtX3NjZW5lLm9wYWNpdHkg
PSBwYXJzZU9wYWNpdHkoYXR0cmlidXRlVmFsdWUpOworICAgIH0KK30KKworVGVzdFdlYlBsdWdp
bjo6flRlc3RXZWJQbHVnaW4oKQoreworfQorCitjb25zdCBXZWJTdHJpbmcmIFRlc3RXZWJQbHVn
aW46Om1pbWVUeXBlKCkKK3sKKyAgICBzdGF0aWMgY29uc3QgV2ViU3RyaW5nIGtNaW1lVHlwZSA9
IFdlYlN0cmluZzo6ZnJvbVVURjgoImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2lu
Iik7CisgICAgcmV0dXJuIGtNaW1lVHlwZTsKK30KKworYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0
aWFsaXplKFdlYlBsdWdpbkNvbnRhaW5lciogY29udGFpbmVyKQoreworICAgIG1fY29udGV4dCA9
IHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jcmVhdGVHcmFwaGljc0NvbnRleHQzRCgpOworICAg
IGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBXZWJHcmFwaGlj
c0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyczsKKyAgICBpZiAoIW1fY29udGV4dC0+aW5pdGlh
bGl6ZShhdHRycywgbV9mcmFtZS0+dmlldygpLCBmYWxzZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpbml0U2NlbmUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbV9jb250YWluZXIgPSBjb250YWluZXI7CisgICAgbV9jb250YWluZXItPnNl
dEJhY2tpbmdUZXh0dXJlSWQobV9jb250ZXh0LT5nZXRQbGF0Zm9ybVRleHR1cmVJZCgpKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkZXN0cm95KCkKK3sKKyAg
ICBkZXN0cm95U2NlbmUoKTsKKworICAgIGRlbGV0ZSBtX2NvbnRleHQ7CisgICAgbV9jb250ZXh0
ID0gMDsKKworICAgIG1fY29udGFpbmVyID0gMDsKKyAgICBtX2ZyYW1lID0gMDsKK30KKwordm9p
ZCBUZXN0V2ViUGx1Z2luOjp1cGRhdGVHZW9tZXRyeShjb25zdCBXZWJSZWN0JiBmcmFtZVJlY3Qs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIGNsaXBS
ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8
V2ViUmVjdD4mIGN1dE91dHNSZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBpc1Zpc2libGUpCit7CisgICAgaWYgKGNsaXBSZWN0ID09IG1fcmVjdCkKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fcmVjdCA9IGNsaXBSZWN0OworCisgICAgbV9jb250ZXh0LT5yZXNo
YXBlKG1fcmVjdC53aWR0aCwgbV9yZWN0LmhlaWdodCk7CisgICAgZHJhd1NjZW5lKCk7CisgICAg
bV9jb250ZXh0LT5wcmVwYXJlVGV4dHVyZSgpOworCisgICAgbV9jb250YWluZXItPmNvbW1pdEJh
Y2tpbmdUZXh0dXJlKCk7Cit9CisKK1Rlc3RXZWJQbHVnaW46OlByaW1pdGl2ZSBUZXN0V2ViUGx1
Z2luOjpwYXJzZVByaW1pdGl2ZShjb25zdCBXZWJTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdGF0
aWMgY29uc3QgV2ViU3RyaW5nIGtQcmltaXRpdmVOb25lID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgi
bm9uZSIpOworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga1ByaW1pdGl2ZVRyaWFuZ2xlID0g
V2ViU3RyaW5nOjpmcm9tVVRGOCgidHJpYW5nbGUiKTsKKworICAgIFByaW1pdGl2ZSBwcmltaXRp
dmUgPSBQcmltaXRpdmVOb25lOworICAgIGlmIChzdHJpbmcgPT0ga1ByaW1pdGl2ZU5vbmUpCisg
ICAgICAgIHByaW1pdGl2ZSA9IFByaW1pdGl2ZU5vbmU7CisgICAgZWxzZSBpZiAoc3RyaW5nID09
IGtQcmltaXRpdmVUcmlhbmdsZSkKKyAgICAgICAgcHJpbWl0aXZlID0gUHJpbWl0aXZlVHJpYW5n
bGU7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
cHJpbWl0aXZlOworfQorCisvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGFscmVhZHkgZXhp
c3QuIFVzZSBpdC4KKy8vIEZvciBub3cganVzdCBwYXJzZSBwcmltYXJ5IGNvbG9ycy4KK3ZvaWQg
VGVzdFdlYlBsdWdpbjo6cGFyc2VDb2xvcihjb25zdCBXZWJTdHJpbmcmIHN0cmluZywgdW5zaWdu
ZWQgY29sb3JbM10pCit7CisgICAgY29sb3JbMF0gPSBjb2xvclsxXSA9IGNvbG9yWzJdID0gMDsK
KyAgICBpZiAoc3RyaW5nID09ICJibGFjayIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChz
dHJpbmcgPT0gInJlZCIpCisgICAgICAgIGNvbG9yWzBdID0gMjU1OworICAgIGVsc2UgaWYgKHN0
cmluZyA9PSAiZ3JlZW4iKQorICAgICAgICBjb2xvclsxXSA9IDI1NTsKKyAgICBlbHNlIGlmIChz
dHJpbmcgPT0gImJsdWUiKQorICAgICAgICBjb2xvclsyXSA9IDI1NTsKKyAgICBlbHNlCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitmbG9hdCBUZXN0V2ViUGx1Z2luOjpwYXJz
ZU9wYWNpdHkoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGZsb2F0PihhdG9mKHN0cmluZy51dGY4KCkuZGF0YSgpKSk7Cit9CisKK2Jvb2wgVGVzdFdl
YlBsdWdpbjo6aW5pdFNjZW5lKCkKK3sKKyAgICBmbG9hdCBjb2xvcls0XTsKKyAgICBwcmVtdWx0
aXBseUFscGhhKG1fc2NlbmUuYmFja2dyb3VuZENvbG9yLCBtX3NjZW5lLm9wYWNpdHksIGNvbG9y
KTsKKyAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsy
XSwgY29sb3JbM10pOworCisgICAgbV9jb250ZXh0LT5lbmFibGUoR0xfQkxFTkQpOworICAgIG1f
Y29udGV4dC0+YmxlbmRGdW5jKEdMX09ORSwgR0xfT05FX01JTlVTX1NSQ19BTFBIQSk7CisKKyAg
ICByZXR1cm4gbV9zY2VuZS5wcmltaXRpdmUgIT0gUHJpbWl0aXZlTm9uZSA/IGluaXRQcm9ncmFt
KCkgJiYgaW5pdFByaW1pdGl2ZSgpIDogdHJ1ZTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpk
cmF3U2NlbmUoKQoreworICAgIG1fY29udGV4dC0+dmlld3BvcnQoMCwgMCwgbV9yZWN0LndpZHRo
LCBtX3JlY3QuaGVpZ2h0KTsKKyAgICBtX2NvbnRleHQtPmNsZWFyKEdMX0NPTE9SX0JVRkZFUl9C
SVQpOworCisgICAgaWYgKG1fc2NlbmUucHJpbWl0aXZlICE9IFByaW1pdGl2ZU5vbmUpCisgICAg
ICAgIGRyYXdQcmltaXRpdmUoKTsKK30KKwordm9pZCBUZXN0V2ViUGx1Z2luOjpkZXN0cm95U2Nl
bmUoKQoreworICAgIGlmIChtX3NjZW5lLnByb2dyYW0pIHsKKyAgICAgICAgbV9jb250ZXh0LT5k
ZWxldGVQcm9ncmFtKG1fc2NlbmUucHJvZ3JhbSk7CisgICAgICAgIG1fc2NlbmUucHJvZ3JhbSA9
IDA7CisgICAgfQorICAgIGlmIChtX3NjZW5lLnZibykgeworICAgICAgICBtX2NvbnRleHQtPmRl
bGV0ZUJ1ZmZlcihtX3NjZW5lLnZibyk7CisgICAgICAgIG1fc2NlbmUudmJvID0gMDsKKyAgICB9
Cit9CisKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdFByb2dyYW0oKQoreworICAgIGNvbnN0IFdl
YkNTdHJpbmcgdmVydGV4U291cmNlID0KKyAgICAgICAgImF0dHJpYnV0ZSB2ZWM0IHBvc2l0aW9u
OyAgICBcbiIKKyAgICAgICAgInZvaWQgbWFpbigpIHsgICAgICAgICAgICAgICBcbiIKKyAgICAg
ICAgIiAgICBnbF9Qb3NpdGlvbiA9IHBvc2l0aW9uOyBcbiIKKyAgICAgICAgIn0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBcbiI7CisKKyAgICBjb25zdCBXZWJDU3RyaW5nIGZyYWdtZW50U291
cmNlID0KKyAgICAgICAgInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OyAgXG4iCisgICAgICAgICJ1
bmlmb3JtIHZlYzQgY29sb3I7ICAgICAgIFxuIgorICAgICAgICAidm9pZCBtYWluKCkgeyAgICAg
ICAgICAgICBcbiIKKyAgICAgICAgIiAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjsgXG4iCisgICAg
ICAgICJ9ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIjsKKworICAgIG1fc2NlbmUucHJvZ3Jh
bSA9IGxvYWRQcm9ncmFtKHZlcnRleFNvdXJjZSwgZnJhZ21lbnRTb3VyY2UpOworICAgIGlmICgh
bV9zY2VuZS5wcm9ncmFtKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3NjZW5lLmNv
bG9yTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3NjZW5lLnByb2dy
YW0sICJjb2xvciIpOworICAgIG1fc2NlbmUucG9zaXRpb25Mb2NhdGlvbiA9IG1fY29udGV4dC0+
Z2V0QXR0cmliTG9jYXRpb24obV9zY2VuZS5wcm9ncmFtLCAicG9zaXRpb24iKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0UHJpbWl0aXZlKCkKK3sKKyAg
ICBBU1NFUlQobV9zY2VuZS5wcmltaXRpdmUgPT0gUHJpbWl0aXZlVHJpYW5nbGUpOworCisgICAg
bV9zY2VuZS52Ym8gPSBtX2NvbnRleHQtPmNyZWF0ZUJ1ZmZlcigpOworICAgIGlmICghbV9zY2Vu
ZS52Ym8pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNvbnN0IGZsb2F0IHZlcnRpY2Vz
W10gPSB7IDAuMGYsICAwLjhmLCAwLjBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LTAuOGYsIC0wLjhmLCAwLjBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuOGYs
IC0wLjhmLCAwLjBmIH07CisgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdMX0FSUkFZX0JVRkZF
UiwgbV9zY2VuZS52Ym8pOworICAgIG1fY29udGV4dC0+YnVmZmVyRGF0YShHTF9BUlJBWV9CVUZG
RVIsIHNpemVvZih2ZXJ0aWNlcyksIDAsIEdMX1NUQVRJQ19EUkFXKTsKKyAgICBtX2NvbnRleHQt
PmJ1ZmZlclN1YkRhdGEoR0xfQVJSQVlfQlVGRkVSLCAwLCBzaXplb2YodmVydGljZXMpLCB2ZXJ0
aWNlcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZHJhd1By
aW1pdGl2ZSgpCit7CisgICAgQVNTRVJUKG1fc2NlbmUucHJpbWl0aXZlID09IFByaW1pdGl2ZVRy
aWFuZ2xlKTsKKyAgICBBU1NFUlQobV9zY2VuZS52Ym8pOworICAgIEFTU0VSVChtX3NjZW5lLnBy
b2dyYW0pOworCisgICAgbV9jb250ZXh0LT51c2VQcm9ncmFtKG1fc2NlbmUucHJvZ3JhbSk7CisK
KyAgICAvLyBCaW5kIHByaW1pdGl2ZSBjb2xvci4KKyAgICBmbG9hdCBjb2xvcls0XTsKKyAgICBw
cmVtdWx0aXBseUFscGhhKG1fc2NlbmUucHJpbWl0aXZlQ29sb3IsIG1fc2NlbmUub3BhY2l0eSwg
Y29sb3IpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTRmKG1fc2NlbmUuY29sb3JMb2NhdGlvbiwg
Y29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgY29sb3JbM10pOworCisgICAgLy8gQmluZCBw
cmltaXRpdmUgdmVydGljZXMuCisgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdMX0FSUkFZX0JV
RkZFUiwgbV9zY2VuZS52Ym8pOworICAgIG1fY29udGV4dC0+ZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkobV9zY2VuZS5wb3NpdGlvbkxvY2F0aW9uKTsKKyAgICBtX2NvbnRleHQtPnZlcnRleEF0dHJp
YlBvaW50ZXIobV9zY2VuZS5wb3NpdGlvbkxvY2F0aW9uLCAzLCBHTF9GTE9BVCwgR0xfRkFMU0Us
IDAsIDApOworICAgIG1fY29udGV4dC0+ZHJhd0FycmF5cyhHTF9UUklBTkdMRVMsIDAsIDMpOwor
fQorCit1bnNpZ25lZCBUZXN0V2ViUGx1Z2luOjpsb2FkU2hhZGVyKHVuc2lnbmVkIHR5cGUsIGNv
bnN0IFdlYktpdDo6V2ViQ1N0cmluZyYgc291cmNlKQoreworICAgIHVuc2lnbmVkIHNoYWRlciA9
IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKHR5cGUpOworICAgIGlmIChzaGFkZXIpIHsKKyAgICAg
ICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzb3VyY2UuZGF0YSgpKTsKKyAgICAg
ICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyKHNoYWRlcik7CisKKyAgICAgICAgaW50IGNvbXBp
bGVkID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihzaGFkZXIsIEdMX0NPTVBJ
TEVfU1RBVFVTLCAmY29tcGlsZWQpOworICAgICAgICBpZiAoIWNvbXBpbGVkKSB7CisgICAgICAg
ICAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihzaGFkZXIpOworICAgICAgICAgICAgc2hhZGVy
ID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc2hhZGVyOworfQorCit1bnNpZ25l
ZCBUZXN0V2ViUGx1Z2luOjpsb2FkUHJvZ3JhbShjb25zdCBXZWJLaXQ6OldlYkNTdHJpbmcmIHZl
cnRleFNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YktpdDo6V2ViQ1N0cmluZyYgZnJhZ21lbnRTb3VyY2UpCit7CisgICAgdW5zaWduZWQgdmVydGV4
U2hhZGVyID0gbG9hZFNoYWRlcihHTF9WRVJURVhfU0hBREVSLCB2ZXJ0ZXhTb3VyY2UpOworICAg
IHVuc2lnbmVkIGZyYWdtZW50U2hhZGVyID0gbG9hZFNoYWRlcihHTF9GUkFHTUVOVF9TSEFERVIs
IGZyYWdtZW50U291cmNlKTsKKyAgICB1bnNpZ25lZCBwcm9ncmFtID0gbV9jb250ZXh0LT5jcmVh
dGVQcm9ncmFtKCk7CisgICAgaWYgKHZlcnRleFNoYWRlciAmJiBmcmFnbWVudFNoYWRlciAmJiBw
cm9ncmFtKSB7CisgICAgICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRl
eFNoYWRlcik7CisgICAgICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdt
ZW50U2hhZGVyKTsKKyAgICAgICAgbV9jb250ZXh0LT5saW5rUHJvZ3JhbShwcm9ncmFtKTsKKwor
ICAgICAgICBpbnQgbGlua2VkID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYo
cHJvZ3JhbSwgR0xfTElOS19TVEFUVVMsICZsaW5rZWQpOworICAgICAgICBpZiAoIWxpbmtlZCkg
eworICAgICAgICAgICAgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAgICAg
ICAgICAgcHJvZ3JhbSA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHZlcnRleFNoYWRl
cikKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIodmVydGV4U2hhZGVyKTsKKyAgICBp
ZiAoZnJhZ21lbnRTaGFkZXIpCisgICAgICAgIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKGZyYWdt
ZW50U2hhZGVyKTsKKworICAgIHJldHVybiBwcm9ncmFtOworfQorCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShyZXZpc2lvbiAwKQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGVzdFdlYlBsdWdpbl9oCisjZGVmaW5l
IFRlc3RXZWJQbHVnaW5faAorCisjaW5jbHVkZSAiV2ViUGx1Z2luLmgiCisjaW5jbHVkZSAiV2Vi
UmVjdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNE
OworfQorCisvLyBBIGZha2UgaW1wbGVtZW50aW9uIG9mIFdlYktpdDo6V2ViUGx1Z2luIGZvciB0
ZXN0aW5nIHB1cnBvc2VzLgorLy8KKy8vIEl0IHVzZXMgV2ViR3JhcGhpY3NDb250ZXh0M0QgdG8g
cGFpbnQgYSBzY2VuZSBjb25zaXNpdGluZyBvZiBhIHByaW1pdGl2ZQorLy8gb3ZlciBhIGJhY2tn
cm91bmQuIFRoZSBwcmltaXRpdmUgYW5kIGJhY2tncm91bmQgY2FuIGJlIGN1c3RvbWl6ZWQgdXNp
bmcKKy8vIHRoZSBmb2xsb3dpbmcgcGx1Z2luIHBhcmFtZXRlcnM6CisvLyBwcmltaXRpdmU6IG5v
bmUgKGRlZmF1bHQpLCB0cmlhbmdsZS4KKy8vIGJhY2tncm91bmQtY29sb3I6IGJsYWNrIChkZWZh
dWx0KSwgcmVkLCBncmVlbiwgYmx1ZS4KKy8vIHByaW1pdGl2ZS1jb2xvcjogYmxhY2sgKGRlZmF1
bHQpLCByZWQsIGdyZWVuLCBibHVlLgorLy8gb3BhY2l0eTogWzAuMCAtIDEuMF0uIERlZmF1bHQg
aXMgMS4wLgorY2xhc3MgVGVzdFdlYlBsdWdpbiA6IHB1YmxpYyBXZWJLaXQ6OldlYlBsdWdpbiB7
CitwdWJsaWM6CisgICAgVGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2Vi
S2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKKyAgICB2aXJ0dWFsIH5UZXN0V2ViUGx1Z2luKCk7CisK
KyAgICBzdGF0aWMgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIG1pbWVUeXBlKCk7CisKKyAgICAv
LyBXZWJQbHVnaW4gbWV0aG9kczoKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJLaXQ6
OldlYlBsdWdpbkNvbnRhaW5lciopOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAg
dmlydHVhbCBOUE9iamVjdCogc2NyaXB0YWJsZU9iamVjdCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoV2ViS2l0OjpXZWJDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJl
Y3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViS2l0OjpX
ZWJSZWN0JiBmcmFtZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYktpdDo6V2ViUmVjdCYgY2xpcFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViUmVjdD4mIGN1dE91dHNSZWN0
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1Zpc2libGUpOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1cyhib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlVmlzaWJpbGl0eShib29sKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWNjZXB0c0lucHV0RXZl
bnRzKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRFdmVu
dChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQmLCBXZWJLaXQ6OldlYkN1cnNvckluZm8mKSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgV2ViS2l0OjpXZWJVUkxSZXNwb25zZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExv
YWRpbmcoY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nRnJhbWVSZXF1ZXN0KGNvbnN0IFdlYktpdDo6V2ViVVJMJiwgdm9pZCog
bm90aWZ5RGF0YSkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkaW5nRnJhbWVSZXF1
ZXN0KGNvbnN0IFdlYktpdDo6V2ViVVJMJiwgdm9pZCogbm90aWZ5RGF0YSwgY29uc3QgV2ViS2l0
OjpXZWJVUkxFcnJvciYpIHsgfQorCitwcml2YXRlOgorICAgIGVudW0gUHJpbWl0aXZlIHsKKyAg
ICAgICAgUHJpbWl0aXZlTm9uZSwKKyAgICAgICAgUHJpbWl0aXZlVHJpYW5nbGUKKyAgICB9Owor
CisgICAgc3RydWN0IFNjZW5lIHsKKyAgICAgICAgUHJpbWl0aXZlIHByaW1pdGl2ZTsKKyAgICAg
ICAgdW5zaWduZWQgYmFja2dyb3VuZENvbG9yWzNdOworICAgICAgICB1bnNpZ25lZCBwcmltaXRp
dmVDb2xvclszXTsKKyAgICAgICAgZmxvYXQgb3BhY2l0eTsKKworICAgICAgICB1bnNpZ25lZCB2
Ym87CisgICAgICAgIHVuc2lnbmVkIHByb2dyYW07CisgICAgICAgIGludCBjb2xvckxvY2F0aW9u
OworICAgICAgICBpbnQgcG9zaXRpb25Mb2NhdGlvbjsKKworICAgICAgICBTY2VuZSgpCisgICAg
ICAgICAgICA6IHByaW1pdGl2ZShQcmltaXRpdmVOb25lKQorICAgICAgICAgICAgLCBvcGFjaXR5
KDEuMGYpIC8vIEZ1bGx5IG9wYXF1ZS4KKyAgICAgICAgICAgICwgdmJvKDApCisgICAgICAgICAg
ICAsIHByb2dyYW0oMCkKKyAgICAgICAgICAgICwgY29sb3JMb2NhdGlvbigtMSkKKyAgICAgICAg
ICAgICwgcG9zaXRpb25Mb2NhdGlvbigtMSkKKyAgICAgICAgeworICAgICAgICAgICAgYmFja2dy
b3VuZENvbG9yWzBdID0gYmFja2dyb3VuZENvbG9yWzFdID0gYmFja2dyb3VuZENvbG9yWzJdID0g
MDsKKyAgICAgICAgICAgIHByaW1pdGl2ZUNvbG9yWzBdID0gcHJpbWl0aXZlQ29sb3JbMV0gPSBw
cmltaXRpdmVDb2xvclsyXSA9IDA7CisgICAgICAgIH0KKyAgICB9OworCisgICAgLy8gRnVuY3Rp
b25zIGZvciBwYXJzaW5nIHBsdWdpbiBwYXJhbWV0ZXJzLgorICAgIFByaW1pdGl2ZSBwYXJzZVBy
aW1pdGl2ZShjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOworICAgIHZvaWQgcGFyc2VDb2xvcihj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYsIHVuc2lnbmVkIGNvbG9yWzNdKTsKKyAgICBmbG9hdCBw
YXJzZU9wYWNpdHkoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKKworICAgIC8vIEZ1bmN0aW9u
cyBmb3IgbG9hZGluZyBhbmQgZHJhd2luZyBzY2VuZS4KKyAgICBib29sIGluaXRTY2VuZSgpOwor
ICAgIHZvaWQgZHJhd1NjZW5lKCk7CisgICAgdm9pZCBkZXN0cm95U2NlbmUoKTsKKyAgICBib29s
IGluaXRQcm9ncmFtKCk7CisgICAgYm9vbCBpbml0UHJpbWl0aXZlKCk7CisgICAgdm9pZCBkcmF3
UHJpbWl0aXZlKCk7CisgICAgdW5zaWduZWQgbG9hZFNoYWRlcih1bnNpZ25lZCB0eXBlLCBjb25z
dCBXZWJLaXQ6OldlYkNTdHJpbmcmIHNvdXJjZSk7CisgICAgdW5zaWduZWQgbG9hZFByb2dyYW0o
Y29uc3QgV2ViS2l0OjpXZWJDU3RyaW5nJiB2ZXJ0ZXhTb3VyY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJDU3RyaW5nJiBmcmFnbWVudFNvdXJjZSk7CisKKyAg
ICBXZWJLaXQ6OldlYkZyYW1lKiBtX2ZyYW1lOworICAgIFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVyKiBtX2NvbnRhaW5lcjsKKworICAgIFdlYktpdDo6V2ViUmVjdCBtX3JlY3Q7CisgICAgV2Vi
S2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OworICAgIFNjZW5lIG1fc2NlbmU7
Cit9OworCisjZW5kaWYgLy8gVGVzdFBlcHBlclBsdWdpbl9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkocmV2aXNpb24gOTY1OTYpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMYXlvdXRUZXN0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlRlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5o
IgorI2luY2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKICNpbmNsdWRlICJUZXN0V2ViV29ya2VyLmgi
CiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3IuaCIKQEAg
LTQ5LDYgKzUwLDcgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRQbGF0
Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2lu
UGFyYW1zLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBU
eXBlLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKQEAgLTc4MCw2ICs3ODIsOSBAQCB2b2lkIFdl
YlZpZXdIb3N0OjpydW5Nb2RhbCgpCiAKIFdlYlBsdWdpbiogV2ViVmlld0hvc3Q6OmNyZWF0ZVBs
dWdpbihXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlBsdWdpblBhcmFtcyYgcGFyYW1zKQogewor
ICAgIGlmIChwYXJhbXMubWltZVR5cGUgPT0gVGVzdFdlYlBsdWdpbjo6bWltZVR5cGUoKSkKKyAg
ICAgICAgcmV0dXJuIG5ldyBUZXN0V2ViUGx1Z2luKGZyYW1lLCBwYXJhbXMpOworCiAgICAgcmV0
dXJuIHdlYmtpdF9zdXBwb3J0OjpDcmVhdGVXZWJQbHVnaW4oZnJhbWUsIHBhcmFtcyk7CiB9CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk2ODUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMDYgIEFsb2sgUHJpeWFkYXJzaGkg
IDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgV2Vi
UGx1Z2luIGNvbXBvc2l0b3IgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnM6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2Vi
cGx1Z2luLWFscGhhLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dl
YnBsdWdpbi1hbHBoYS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1
Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVn
aW4tcmVmbGVjdGlvbi1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVn
aW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTA2ICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1d
IFJlYmFzZWxpbmUgdGVzdCBtaXNzZWQgaW4gcjk2ODE0LgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2Vi
cGx1Z2luLWFscGhhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgzMjEKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDMyMQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgNzg0eDMwNQorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3
ODR4MTU1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTU1KSBzaXplIDE1MHgxNTAgW2JnY29sb3I9Izk5
RkY5OV0KK2xheWVyIGF0ICg4LDgpIHNpemUgMTUweDE1MAorICBSZW5kZXJFbWJlZGRlZE9iamVj
dCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMTUweDE1MAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4t
YWxwaGEtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBM
RgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdp
bnMvd2VicGx1Z2luLWFscGhhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3Bs
dWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgLmJveCB7CisgICAg
d2lkdGg6IDE1MHB4OworICAgIGhlaWdodDogMTUwcHg7CisgIH0KKyAgI3JlZiB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDE1MywyNTUsMTUzKTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4K
KworPGJvZHk+Cis8IS0tIFlvdSBzaG91bGQgc2VlIHR3byBzcXVhcmVzIG9mIHRoZSBzYW1lIGNv
bG9yIC0tPgorCis8ZW1iZWQgY2xhc3M9ImJveCIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC13ZWJwbHVnaW4iIGJhY2tncm91bmQtY29sb3I9ImdyZWVuIiBvcGFjaXR5PSIwLjQiPgor
PGRpdiBpZD0icmVmIiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2Vi
cGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhh
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDE2NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4MTY2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MTUwCisg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDE1MHgxNTAgW2JnY29sb3I9I0ZG
MDAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXll
ciBhdCAoOCw4KSBzaXplIDE1MHgxNTAKKyAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBh
dCAoMCwwKSBzaXplIDE1MHgxNTAKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4
cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBs
dWdpbi1uby1hbHBoYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVn
aW5zL3dlYnBsdWdpbi1uby1hbHBoYS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgIC5ib3ggeworICAg
IHdpZHRoOiAxNTBweDsKKyAgICBoZWlnaHQ6IDE1MHB4OworICB9CisgICNwYXJlbnQgeworICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMCwwKTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4K
KworPGJvZHk+Cis8IS0tIFlvdSBzaG91bGQgYSBncmVlbiBzcXVhcmUgd2l0aCBubyByZWQgLS0+
CisKKzxkaXYgaWQ9InBhcmVudCIgY2xhc3M9ImJveCI+CisgIDxlbWJlZCBjbGFzcz0iYm94IiB0
eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYmFja2dyb3VuZC1jb2xv
cj0iZ3JlZW4iIG9wYWNpdHk9IjEuMCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVv
bC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lu
cy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1y
ZWZsZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE3MQorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4MTcxCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4MTU1CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVy
IGF0ICg4LDgpIHNpemUgMTUweDE1MAorICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0
ICgwLDApIHNpemUgMTUweDE1MAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1l
eHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJw
bHVnaW4tcmVmbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24uaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAjcGx1
Z2luIHsKKyAgICB3aWR0aDogMTUwcHg7CisgICAgaGVpZ2h0OiAxNTBweDsKKyAgICAtd2Via2l0
LWJveC1yZWZsZWN0OiBiZWxvdyAyMHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9k
eT4KKzwhLS0gWW91IHNob3VsZCBzZWUgYSBibHVlIHRyaWFuZ2xlIG9uIGdyZWVuIGJhY2tncm91
bmQgYW5kIGl0cyByZWZsZWN0aW9uIC0tPgorCis8ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iIHByaW1pdGl2ZT0idHJpYW5nbGUiIGJh
Y2tncm91bmQtY29sb3I9ImdyZWVuIiBwcmltaXRpdmUtY29sb3I9ImJsdWUiPgorPC9ib2R5Pgor
PC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi5odG1sCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLWV4cGVjdGVk
LnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0
eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1h
bHBoYS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGlt
YWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFB
QUtYUkZXSFJqYUdWamEzTjFiUUEyTWpkbE1XVmwKTURVM01UQTBaRE15WVRVMllUVXhZMlpsT0RO
aFkyWTVaa2UycWtJQUFBclJTVVJCVkhpYzdkaXhEY05BREFUQmwrRmFWWlNhcFN0dwp0dEFEMGt6
SzVNSUZqNWxaQUFCMFByc0hBQUE4amNBQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
MlBmZjRWclhuVHZJCm5ldmNQUUVBWHNvSEN3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQQpBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDCkN3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQQpB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJB
QQpBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQQpBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ2Rzek03ZzBBCkFJL2lnd1VBRUJOWUFBQXhnUVVBRUJOWUFBQ3g3Ny9E
dGE0N2Q1QTcxN2w3QWdDOGxBOFdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlBRUF4QVFX
QUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4
QVFXQUVCTQpZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1Z
QUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdB
RUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlBRUF4
QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlB
RUF4QVFXQUVCTQpZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FF
Qk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhB
UVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlB
RUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVC
TVlBRUF4QVFXQUVCTQpZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFR
V0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFF
QXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVC
TVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFX
QUVCTVlBRUF4QVFXQUVCTQpZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVB
eEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJN
WUFFQXhBUVdBRURzbUpuZEd3QUFIc1VIQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEK
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpy
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
CkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSS80V3NS
cVIwR0JBRUFBQUFBU1VWT1JLNUNZSUk9CgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQucG5n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUu
CnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFs
cGhhLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgaW1h
Z2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFB
S1hSRldIUmphR1ZqYTNOMWJRQm1ZV0V6Wm1RdwpaalV4WTJZeE5XVmxZalF5TUdaaU5qWTBPVEJq
Tm1RMVpIVU9RR2dBQUFyQVNVUkJWSGljN2R5eENjQXdEQUJCTzJUL2xaVUowajBPCmhMdFdqY3BI
aGZiTUxBQUFPdGZYQ3dBQS9JM0FBZ0NJQ1N3QWdKakFBZ0NJQ1N3QWdKakFBZ0NJQ1N3QWdOajlO
dGhybjl5RDNDd2YKemdEZ0d5NVlBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZCkFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXgKZ1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZCkFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXgKZ1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5Z
CkFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWUFBQXgKZ1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZCkFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQ3grMjB3YTA3dUFRRHcKR3k1WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEK
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUN4QjRDOUM2OHozZTRiCkFBQUFBRWxGVGtTdVFtQ0MK
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5z
L3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2Uv
cG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29B
QUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTFZ
Mk5qTnpaagpaalpsTm1FeFpEVmlNV0prWldNNE5qWXdNekpqWmpFNFlyK1BUeGNBQUE1N1NVUkJW
SGljN2R6TGJpUTVGZ1ZCYWFELy8yWE5xbXRSCjNhclN3eU9DbHpUYkpwQWd1WkhqSktEWDkvZjNG
d0FBT3Y5NytnQUFBTHNSV0FBQU1ZRUZBQkFUV0FBQU1ZRUZBQkFUV0FBQU1ZRUYKQUJCNysraUQx
NWZYTzg5Qjd2M0ZmemdEZ0dkWXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNB
QUFZZ0lMQUNBbQpzQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWXFjRzF1
djd5K3Y3MDRjQUFQWjBhbUFCQUZ6bXlNRDZ0VjBaCnNRQ0FDeHdaV0FBQVZ6b3ZzSDVicll4WUFF
RHR2TUFDQUxqWVlZSDFuM3VWRVFzQVNCMFdXQUFBMXpzcHNQNndWQm14QUlET1NZRUYKQUhDTFl3
THJyeHVWRVFzQWlCd1RXQUFBZHpranNENjVUaG14QUlEQ0dZRUZBSENqQXdMclM3dVVFUXNBK0xF
REFnc0E0RjY3QjlZMwpGaWtqRmdEd003c0hGZ0RBN2JZT3JHOXZVVVlzQU9BSHRnNHNBSUFuN0J0
WVAxeWhqRmdBd0hmdEcxZ0FBQS9aTkxDUy9jbUlCUUI4Cnk2YUJCUUR3bkIwREsxeWVqRmdBd05m
dEdGZ0FBSS9hTHJEeXpjbUlCUUI4MFhhQkJRRHd0TDBDNjZLMXlZZ0ZBSHpGWG9FRkFMQ0EKalFM
cjBwM0ppQVVBZk5wR2dRVUFzSVpkQXV1R2hjbUlCUUI4emk2QkJRQ3dqQzBDNjdadHlZZ0ZBSHpD
Rm9FRkFMQ1MrWUYxODZwawp4QUlBL21aK1lBRUFMR1o0WUQyeUp4bXhBSUEvR2g1WUFBRHJtUnhZ
RHk1SlJpd0E0R09UQXdzQVlFbGpBK3Z4RGVueEF3QUFxeG9iCldBQUFxNW9aV0l1c1I0c2NBd0JZ
ek16QUFnQlkyTURBV21vM1d1b3dBTUFhQmdZV0FNRGFwZ1hXZ292UmdrY0NBQjQxTGJBQUFKWTMK
S3JDVzNZcVdQUmdBOElSUmdRVUFNTUdjd0ZwOEpWcjhlQURBamVZRUZnREFFRU1DYThRK05PS1FB
TUQxaGdRV0FNQWNFd0pyMERJMAo2S2dBd0dVbUJCWUF3Q2pMQjlhNFRXamNnUUdBMnZLQkJRQXd6
ZHFCTlhRTkducHNBQ0N5ZG1BQkFBeTBjR0NOM29GR0h4NEErSm1GCkF3c0FZS1pWQTJ1REJXaURL
d0FBMzdKcVlBRUFqTFZrWUcyei9XeHpFUURnSzVZTUxBQ0F5ZFlMck0xV244MnVBd0I4d25xQkJR
QXcKM0dLQnRlWGVzK1dsQUlDUExSWllBQUR6clJSWUd5ODlHMThOQVBpWGxRSUxBR0FMeXdUVzlo
dlA5aGNFQVA2eFRHQUJBT3hpamNBNgpaTjA1NUpvQWNMdzFBZ3NBWUNNTEJOWlJ1ODVSbHdXQVV5
MFFXQUFBZTNrNnNBNWNkQTY4TWdBYzV1bkFBZ0RZenFPQmRleVdjK3pGCkFlQU1GaXdBZ05oemdY
WDRpblA0OVFGZ2F4WXNBSURZUTRGbHYzbnhDQUN3TFFzV0FFRHNpY0N5M1B6aUtRQmdSeFlzQUlE
WTdZRmwKcy9tTkJ3R0E3Vml3QUFCaTl3YVd0ZVkvZVJZQTJJc0ZDd0FnZG1OZzJXbit3T01Bd0VZ
c1dBQUFzYnNDeTBMelY1NElBSFpod1FJQQppTjBTV0xhWlQvSlFBTEFGQ3hZQVFPejZ3TExLZklu
bkFvRDVMRmdBQUxHTEE4c2U4dzBlRFFDR3MyQUJBTVN1REN4THpMZDVPZ0NZCnpJSUZBQkM3TExC
c01EL2tBUUZnTEFzV0FFRHNtc0N5dmlROEl3RE1aTUVDQUloZEVGaDJsNURIQklDQkxGZ0FBTEU2
c0N3dU9VOEsKQU5OWXNBQUFZbWxnMlZvdTRtRUJZQlFMRmdCQXJBc3NLOHVsUEM4QXpHSEJBZ0NJ
UllGbFg3bUJSd2FBSWQ2YXIzbC9iYjRIQUdBKwpQeEVDQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FC
QU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCCkFNUUVGZ0JB
N08yakQ5NWYzdTg4QndEQU5peFlBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTlkKQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFDeHQ0OCtlSDE1dmZNYwo1TjVmM3A4K0FnQWN5b0lGQUJBVFdBQUFN
WUVGQUJBVFdBQUFNWUVGQUJBVFdBQUFNWUVGQUJBVFdBQUFNWUVGQUJBVFdBQUFNWUVGCkFCQVRX
QUFBTVlFRkFCQVRXQUFBc2JmbWExN2ZtKy9oejk1Zm56NEJBUEIzMFlMbEQvOE5QRElBRE9FblFn
Q0FXQmRZOXBWTGVWNEEKbU1PQ0JRQVFTd1BMeW5JUkR3c0FvMWl3QUFCaWRXRFpXbktlRkFDbXNX
QUJBTVF1Q0N5TFM4aGpBc0JBRml3QWdOZzFnV1YzU1hoRwpBSmpKZ2dVQUVMc3NzS3d2UCtRQkFX
QXNDeFlBUU96S3dMTEJmSnVuQTRESkxGZ0FBTEdMQThzUzh3MGVEUUNHczJBQkFNU3VEeXg3CnpK
ZDRMZ0NZejRJRkFCQzdKYkNzTXAva29RQmdDeFlzQUlEWVhZRmxtL2tyVHdRQXU3QmdBUURFYmd3
c0M4MGZlQndBMklnRkN3QWcKZG05ZzJXbitrMmNCZ0wxWXNBQUFZcmNIbHJYbU54NEVBTFpqd1FJ
QWlEMFJXRGFiWHp3RkFPeklnZ1VBRUhzb3NDdzNMeDRCQUxabAp3UUlBaUQwWFdJZnZONGRmSHdD
MlpzRUNBSWc5R2xqSHJqakhYaHdBem1EQkFnQ0lQUjFZQjI0NUIxNFpBQTd6ZEdBQkFHeG5nY0E2
CmF0RTU2cklBY0tvRkFnc0FZQzlyQk5ZaHU4NGgxd1NBNDYwUldBQUFHMWttc0xaZmQ3YS9JQUR3
ajJVQ0N3QmdGeXNGMXNZYno4WlgKQXdEK1phWEFBZ0RZd21LQnRlWFNzK1dsQUlDUExSWllBQUR6
clJkWW0rMDltMTBIQVBpRTlRSUxBR0M0SlFOcm05Vm5tNHNBQUYreApaR0FCQUV5MmFtQnRzUDFz
Y0FVQTRGdFdEU3dBZ0xFV0RxelJDOURvd3dNQVA3TndZQUVBekxSMllBM2RnWVllR3dDSXJCMVlB
QUFECkxSOVk0OWFnY1FjR0FHckxCeFlBd0RRVEFtdlFKalRvcUFEQVpTWUVGZ0RBS0VNQ2E4UXlO
T0tRQU1EMWhnUVdBTUFjY3dKcjhYMW8KOGVNQkFEZWFFMWdBQUVPTUNxeGxWNkpsRHdZQVBHRlVZ
QUVBVERBdHNCYmNpaFk4RWdEd3FHbUJCUUN3dklHQnRkUml0TlJoQUlBMQpEQXdzQUlDMXpReXNS
WGFqUlk0QkFDeG1abUFCQUN4c2JHQTl2aDQ5ZmdBQVlGVmpBd3NBWUZXVEErdkJEY2w4QlFCOGJI
SmdBUUFzCmFYaGdQYklrbWE4QWdEOGFIbGdBQU91WkgxZzM3MG5tS3dEZ2IrWUhGZ0RBWXJZSXJO
dFdKZk1WQVBBSld3UVdBTUJLZGdtc0c3WWwKOHhVQThEbTdCQllBd0RJMkNxeExGeWJ6RlFEd2FS
c0ZGZ0RBR3ZZS3JJdDJKdk1WQVBBVmV3VVdBTUFDdGd1c2ZHMHlYd0VBWDdSZApZQUVBUEczSHdB
bzNKL01WQVBCMU93WVdBTUNqTmcyc1pIa3lYd0VBMzdKcFlBRUFQR2Zmd1ByaC9tUytBZ0MrYTkv
QUFnQjR5TmFCCjllMFZ5bndGQVB6QTFvRUZBUENFM1FQckcxdVUrUW9BK0puZEF3c0E0SFlIQk5h
WEZpbnpGUUR3WXdjRUZnREF2YzRJckUvdVV1WXIKQUtCd1JtQUJBTnpvbU1ENjZ6cGx2Z0lBSXNj
RUZnREFYVTRLckQ5c1ZPWXJBS0J6VW1BQkFOemlzTUQ2ejZYS2ZBVUFwQTRMTEFDQQo2NTBYV0wv
dFZlWXJBS0IyWG1BQkFGenN5TUQ2dFZxWnJ3Q0FDeHdaV0FBQVYzcDcrZ0FQc1YwQkFKZXhZQUVB
eEFRV0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJN
WUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhONCsKK3VEOTVmM09jd0FBYk1PQ0JRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVErejliSndIR01UTTVTZ0FB
QUFCSlJVNUVya0pnZ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110154</attachid>
            <date>2011-10-07 09:07:12 -0700</date>
            <delta_ts>2011-10-17 17:06:41 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>69027.patch</filename>
            <type>text/plain</type>
            <size>42684</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5Njg1MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMTAtMDYgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgV2ViUGx1Z2luIGNvbXBvc2l0b3IgcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRFbmQpOgorCiAyMDExLTEwLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
OTY3OTEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gOTY1OTYpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjY2LDcgKzI2Niw3IEBAIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRQYWdl
KGkKIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludEVuZCgpCiB7Ci0gICAgcmV0
dXJuIG1fd2ViUGx1Z2luLT5wcmludEVuZCgpOworICAgIG1fd2ViUGx1Z2luLT5wcmludEVuZCgp
OwogfQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmNvcHkoKQpJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTY4NTMp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NyBAQAorMjAx
MS0xMC0wNiAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBBZGQgbGF5b3V0IHRlc3RzIGZvciBXZWJQbHVnaW4gY29tcG9zaXRvciBwYXRoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTAyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcDogQWRkZWQuCisgICAgICAgIChwcmVtdWx0aXBseUFscGhhKToKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6flRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6bWltZVR5cGUp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjpkZXN0cm95KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnVwZGF0ZUdlb21ldHJ5
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OnBhcnNlUHJpbWl0aXZlKToKKyAgICAgICAgKFRl
c3RXZWJQbHVnaW46OnBhcnNlQ29sb3IpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6cGFyc2VP
cGFjaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRTY2VuZSk6CisgICAgICAgIChU
ZXN0V2ViUGx1Z2luOjpkcmF3U2NlbmUpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGVzdHJv
eVNjZW5lKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRQcm9ncmFtKToKKyAgICAgICAg
KFRlc3RXZWJQbHVnaW46OmluaXRQcmltaXRpdmUpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6
ZHJhd1ByaW1pdGl2ZSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpsb2FkU2hhZGVyKToKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OmxvYWRQcm9ncmFtKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6c2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpwYWludCk6
CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjp1cGRhdGVGb2N1cyk6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjp1cGRhdGVWaXNpYmlsaXR5KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmFjY2Vw
dHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50
KToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2lu
OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZhaWxMb2Fk
aW5nKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmRpZEZpbmlzaExvYWRpbmdGcmFtZVJlcXVl
c3QpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6ZGlkRmFpbExvYWRpbmdGcmFtZVJlcXVlc3Qp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6U2NlbmU6OlNjZW5lKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9z
dDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMS0xMC0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8
a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBEUlQ6IENyZWF0ZSBpY29uIGRh
dGFiYXNlIHBhdGggaW4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJs
ZWQuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHJldmlz
aW9uIDk2NTk2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rl
c3RTaGVsbEd0ay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RTaGVsbE1hYy5tbScs
CiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5j
cHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCShyZXZpc2lvbiAwKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVk
ZSAiV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWluZXIu
aCIKKyNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworLy8gR0xlbnVtIHZhbHVlcyBjb3BpZWQgZnJvbSBnbDIuaC4KKyNkZWZpbmUgR0xf
RkFMU0UgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdMX1RSVUUgICAgICAgICAgICAgICAg
ICAgMQorI2RlZmluZSBHTF9PTkUgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgR0xfVFJJ
QU5HTEVTICAgICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgR0xfT05FX01JTlVTX1NSQ19BTFBI
QSAgICAweDAzMDMKKyNkZWZpbmUgR0xfQkxFTkQgICAgICAgICAgICAgICAgICAweDBCRTIKKyNk
ZWZpbmUgR0xfRkxPQVQgICAgICAgICAgICAgICAgICAweDE0MDYKKyNkZWZpbmUgR0xfQ09MT1Jf
QlVGRkVSX0JJVCAgICAgICAweDQwMDAKKyNkZWZpbmUgR0xfQVJSQVlfQlVGRkVSICAgICAgICAg
ICAweDg4OTIKKyNkZWZpbmUgR0xfU1RBVElDX0RSQVcgICAgICAgICAgICAweDg4RTQKKyNkZWZp
bmUgR0xfRlJBR01FTlRfU0hBREVSICAgICAgICAweDhCMzAKKyNkZWZpbmUgR0xfVkVSVEVYX1NI
QURFUiAgICAgICAgICAweDhCMzEKKyNkZWZpbmUgR0xfQ09NUElMRV9TVEFUVVMgICAgICAgICAw
eDhCODEKKyNkZWZpbmUgR0xfTElOS19TVEFUVVMgICAgICAgICAgICAweDhCODIKKworc3RhdGlj
IHZvaWQgcHJlbXVsdGlwbHlBbHBoYShjb25zdCB1bnNpZ25lZCBjb2xvckluWzNdLCBmbG9hdCBh
bHBoYSwgZmxvYXQgY29sb3JPdXRbNF0pCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyAr
K2kpCisgICAgICAgIGNvbG9yT3V0W2ldID0gKGNvbG9ySW5baV0gLyAyNTUuMGYpICogYWxwaGE7
CisKKyAgICBjb2xvck91dFszXSA9IGFscGhhOworfQorCitUZXN0V2ViUGx1Z2luOjpUZXN0V2Vi
UGx1Z2luKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYgcGFyYW1zKQorICAgIDogbV9mcmFt
ZShmcmFtZSkKKyAgICAsIG1fY29udGFpbmVyKDApCisgICAgLCBtX2NvbnRleHQoMCkKK3sKKyAg
ICBzdGF0aWMgY29uc3QgV2ViU3RyaW5nIGtBdHRyaWJ1dGVQcmltaXRpdmUgPSBXZWJTdHJpbmc6
OmZyb21VVEY4KCJwcmltaXRpdmUiKTsKKyAgICBzdGF0aWMgY29uc3QgV2ViU3RyaW5nIGtBdHRy
aWJ1dGVCYWNrZ3JvdW5kQ29sb3IgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJiYWNrZ3JvdW5kLWNv
bG9yIik7CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrQXR0cmlidXRlUHJpbWl0aXZlQ29s
b3IgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJwcmltaXRpdmUtY29sb3IiKTsKKyAgICBzdGF0aWMg
Y29uc3QgV2ViU3RyaW5nIGtBdHRyaWJ1dGVPcGFjaXR5ID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgi
b3BhY2l0eSIpOworCisgICAgQVNTRVJUKHBhcmFtcy5hdHRyaWJ1dGVOYW1lcy5zaXplKCkgPT0g
cGFyYW1zLmF0dHJpYnV0ZVZhbHVlcy5zaXplKCkpOworICAgIHNpemVfdCBzaXplID0gcGFyYW1z
LmF0dHJpYnV0ZU5hbWVzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7
ICsraSkgeworICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGF0dHJpYnV0ZU5hbWUgPSBwYXJhbXMu
YXR0cmlidXRlTmFtZXNbaV07CisgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgYXR0cmlidXRlVmFs
dWUgPSBwYXJhbXMuYXR0cmlidXRlVmFsdWVzW2ldOworCisgICAgICAgIGlmIChhdHRyaWJ1dGVO
YW1lID09IGtBdHRyaWJ1dGVQcmltaXRpdmUpCisgICAgICAgICAgICBtX3NjZW5lLnByaW1pdGl2
ZSA9IHBhcnNlUHJpbWl0aXZlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoYXR0
cmlidXRlTmFtZSA9PSBrQXR0cmlidXRlQmFja2dyb3VuZENvbG9yKQorICAgICAgICAgICAgcGFy
c2VDb2xvcihhdHRyaWJ1dGVWYWx1ZSwgbV9zY2VuZS5iYWNrZ3JvdW5kQ29sb3IpOworICAgICAg
ICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVQcmltaXRpdmVDb2xvcikKKyAg
ICAgICAgICAgIHBhcnNlQ29sb3IoYXR0cmlidXRlVmFsdWUsIG1fc2NlbmUucHJpbWl0aXZlQ29s
b3IpOworICAgICAgICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVPcGFjaXR5
KQorICAgICAgICAgICAgbV9zY2VuZS5vcGFjaXR5ID0gcGFyc2VPcGFjaXR5KGF0dHJpYnV0ZVZh
bHVlKTsKKyAgICB9Cit9CisKK1Rlc3RXZWJQbHVnaW46On5UZXN0V2ViUGx1Z2luKCkKK3sKK30K
KworY29uc3QgV2ViU3RyaW5nJiBUZXN0V2ViUGx1Z2luOjptaW1lVHlwZSgpCit7CisgICAgc3Rh
dGljIGNvbnN0IFdlYlN0cmluZyBrTWltZVR5cGUgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJhcHBs
aWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIpOworICAgIHJldHVybiBrTWltZVR5cGU7
Cit9CisKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZShXZWJQbHVnaW5Db250YWluZXIq
IGNvbnRhaW5lcikKK3sKKyAgICBtX2NvbnRleHQgPSB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+
Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0
cnM7CisgICAgaWYgKCFtX2NvbnRleHQtPmluaXRpYWxpemUoYXR0cnMsIG1fZnJhbWUtPnZpZXco
KSwgZmFsc2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1fY29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
aW5pdFNjZW5lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fY29udGFpbmVyID0g
Y29udGFpbmVyOworICAgIG1fY29udGFpbmVyLT5zZXRCYWNraW5nVGV4dHVyZUlkKG1fY29udGV4
dC0+Z2V0UGxhdGZvcm1UZXh0dXJlSWQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
VGVzdFdlYlBsdWdpbjo6ZGVzdHJveSgpCit7CisgICAgZGVzdHJveVNjZW5lKCk7CisKKyAgICBk
ZWxldGUgbV9jb250ZXh0OworICAgIG1fY29udGV4dCA9IDA7CisKKyAgICBtX2NvbnRhaW5lciA9
IDA7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6dXBkYXRlR2Vv
bWV0cnkoY29uc3QgV2ViUmVjdCYgZnJhbWVSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBXZWJSZWN0JiBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlJlY3Q+JiBjdXRPdXRzUmVjdHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNWaXNpYmxlKQoreworICAg
IGlmIChjbGlwUmVjdCA9PSBtX3JlY3QpCisgICAgICAgIHJldHVybjsKKyAgICBtX3JlY3QgPSBj
bGlwUmVjdDsKKworICAgIG1fY29udGV4dC0+cmVzaGFwZShtX3JlY3Qud2lkdGgsIG1fcmVjdC5o
ZWlnaHQpOworICAgIGRyYXdTY2VuZSgpOworICAgIG1fY29udGV4dC0+cHJlcGFyZVRleHR1cmUo
KTsKKworICAgIG1fY29udGFpbmVyLT5jb21taXRCYWNraW5nVGV4dHVyZSgpOworfQorCitUZXN0
V2ViUGx1Z2luOjpQcmltaXRpdmUgVGVzdFdlYlBsdWdpbjo6cGFyc2VQcmltaXRpdmUoY29uc3Qg
V2ViU3RyaW5nJiBzdHJpbmcpCit7CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrUHJpbWl0
aXZlTm9uZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoIm5vbmUiKTsKKyAgICBzdGF0aWMgY29uc3Qg
V2ViU3RyaW5nIGtQcmltaXRpdmVUcmlhbmdsZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInRyaWFu
Z2xlIik7CisKKyAgICBQcmltaXRpdmUgcHJpbWl0aXZlID0gUHJpbWl0aXZlTm9uZTsKKyAgICBp
ZiAoc3RyaW5nID09IGtQcmltaXRpdmVOb25lKQorICAgICAgICBwcmltaXRpdmUgPSBQcmltaXRp
dmVOb25lOworICAgIGVsc2UgaWYgKHN0cmluZyA9PSBrUHJpbWl0aXZlVHJpYW5nbGUpCisgICAg
ICAgIHByaW1pdGl2ZSA9IFByaW1pdGl2ZVRyaWFuZ2xlOworICAgIGVsc2UKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHByaW1pdGl2ZTsKK30KKworLy8gRklYTUU6
IFRoaXMgbWV0aG9kIHNob3VsZCBhbHJlYWR5IGV4aXN0LiBVc2UgaXQuCisvLyBGb3Igbm93IGp1
c3QgcGFyc2UgcHJpbWFyeSBjb2xvcnMuCit2b2lkIFRlc3RXZWJQbHVnaW46OnBhcnNlQ29sb3Io
Y29uc3QgV2ViU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIGNvbG9yWzNdKQoreworICAgIGNvbG9y
WzBdID0gY29sb3JbMV0gPSBjb2xvclsyXSA9IDA7CisgICAgaWYgKHN0cmluZyA9PSAiYmxhY2si
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RyaW5nID09ICJyZWQiKQorICAgICAgICBj
b2xvclswXSA9IDI1NTsKKyAgICBlbHNlIGlmIChzdHJpbmcgPT0gImdyZWVuIikKKyAgICAgICAg
Y29sb3JbMV0gPSAyNTU7CisgICAgZWxzZSBpZiAoc3RyaW5nID09ICJibHVlIikKKyAgICAgICAg
Y29sb3JbMl0gPSAyNTU7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKworZmxvYXQgVGVzdFdlYlBsdWdpbjo6cGFyc2VPcGFjaXR5KGNvbnN0IFdlYlN0cmluZyYg
c3RyaW5nKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oYXRvZihzdHJpbmcudXRm
OCgpLmRhdGEoKSkpOworfQorCitib29sIFRlc3RXZWJQbHVnaW46OmluaXRTY2VuZSgpCit7Cisg
ICAgZmxvYXQgY29sb3JbNF07CisgICAgcHJlbXVsdGlwbHlBbHBoYShtX3NjZW5lLmJhY2tncm91
bmRDb2xvciwgbV9zY2VuZS5vcGFjaXR5LCBjb2xvcik7CisgICAgbV9jb250ZXh0LT5jbGVhckNv
bG9yKGNvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0sIGNvbG9yWzNdKTsKKworICAgIG1fY29u
dGV4dC0+ZW5hYmxlKEdMX0JMRU5EKTsKKyAgICBtX2NvbnRleHQtPmJsZW5kRnVuYyhHTF9PTkUs
IEdMX09ORV9NSU5VU19TUkNfQUxQSEEpOworCisgICAgcmV0dXJuIG1fc2NlbmUucHJpbWl0aXZl
ICE9IFByaW1pdGl2ZU5vbmUgPyBpbml0UHJvZ3JhbSgpICYmIGluaXRQcmltaXRpdmUoKSA6IHRy
dWU7Cit9CisKK3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZHJhd1NjZW5lKCkKK3sKKyAgICBtX2NvbnRl
eHQtPnZpZXdwb3J0KDAsIDAsIG1fcmVjdC53aWR0aCwgbV9yZWN0LmhlaWdodCk7CisgICAgbV9j
b250ZXh0LT5jbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsKKworICAgIGlmIChtX3NjZW5lLnBy
aW1pdGl2ZSAhPSBQcmltaXRpdmVOb25lKQorICAgICAgICBkcmF3UHJpbWl0aXZlKCk7Cit9CisK
K3ZvaWQgVGVzdFdlYlBsdWdpbjo6ZGVzdHJveVNjZW5lKCkKK3sKKyAgICBpZiAobV9zY2VuZS5w
cm9ncmFtKSB7CisgICAgICAgIG1fY29udGV4dC0+ZGVsZXRlUHJvZ3JhbShtX3NjZW5lLnByb2dy
YW0pOworICAgICAgICBtX3NjZW5lLnByb2dyYW0gPSAwOworICAgIH0KKyAgICBpZiAobV9zY2Vu
ZS52Ym8pIHsKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9zY2VuZS52Ym8pOwor
ICAgICAgICBtX3NjZW5lLnZibyA9IDA7CisgICAgfQorfQorCitib29sIFRlc3RXZWJQbHVnaW46
OmluaXRQcm9ncmFtKCkKK3sKKyAgICBjb25zdCBDU3RyaW5nIHZlcnRleFNvdXJjZSgKKyAgICAg
ICAgImF0dHJpYnV0ZSB2ZWM0IHBvc2l0aW9uOyAgXG4iCisgICAgICAgICJ2b2lkIG1haW4oKSB7
ICAgICAgICAgICAgIFxuIgorICAgICAgICAiICBnbF9Qb3NpdGlvbiA9IHBvc2l0aW9uOyBcbiIK
KyAgICAgICAgIn0gICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgKTsKKworICAgIGNv
bnN0IENTdHJpbmcgZnJhZ21lbnRTb3VyY2UoCisgICAgICAgICJwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsgXG4iCisgICAgICAgICJ1bmlmb3JtIHZlYzQgY29sb3I7ICAgICAgXG4iCisgICAgICAg
ICJ2b2lkIG1haW4oKSB7ICAgICAgICAgICAgXG4iCisgICAgICAgICIgIGdsX0ZyYWdDb2xvciA9
IGNvbG9yOyAgXG4iCisgICAgICAgICJ9ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAg
KTsKKworICAgIG1fc2NlbmUucHJvZ3JhbSA9IGxvYWRQcm9ncmFtKHZlcnRleFNvdXJjZSwgZnJh
Z21lbnRTb3VyY2UpOworICAgIGlmICghbV9zY2VuZS5wcm9ncmFtKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBtX3NjZW5lLmNvbG9yTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZv
cm1Mb2NhdGlvbihtX3NjZW5lLnByb2dyYW0sICJjb2xvciIpOworICAgIG1fc2NlbmUucG9zaXRp
b25Mb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0QXR0cmliTG9jYXRpb24obV9zY2VuZS5wcm9ncmFt
LCAicG9zaXRpb24iKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBUZXN0V2ViUGx1Z2lu
Ojppbml0UHJpbWl0aXZlKCkKK3sKKyAgICBBU1NFUlQobV9zY2VuZS5wcmltaXRpdmUgPT0gUHJp
bWl0aXZlVHJpYW5nbGUpOworCisgICAgbV9zY2VuZS52Ym8gPSBtX2NvbnRleHQtPmNyZWF0ZUJ1
ZmZlcigpOworICAgIGlmICghbV9zY2VuZS52Ym8pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGNvbnN0IGZsb2F0IHZlcnRpY2VzW10gPSB7IDAuMGYsICAwLjhmLCAwLjBmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLTAuOGYsIC0wLjhmLCAwLjBmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAuOGYsIC0wLjhmLCAwLjBmIH07CisgICAgbV9jb250ZXh0LT5i
aW5kQnVmZmVyKEdMX0FSUkFZX0JVRkZFUiwgbV9zY2VuZS52Ym8pOworICAgIG1fY29udGV4dC0+
YnVmZmVyRGF0YShHTF9BUlJBWV9CVUZGRVIsIHNpemVvZih2ZXJ0aWNlcyksIDAsIEdMX1NUQVRJ
Q19EUkFXKTsKKyAgICBtX2NvbnRleHQtPmJ1ZmZlclN1YkRhdGEoR0xfQVJSQVlfQlVGRkVSLCAw
LCBzaXplb2YodmVydGljZXMpLCB2ZXJ0aWNlcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgVGVzdFdlYlBsdWdpbjo6ZHJhd1ByaW1pdGl2ZSgpCit7CisgICAgQVNTRVJUKG1fc2NlbmUu
cHJpbWl0aXZlID09IFByaW1pdGl2ZVRyaWFuZ2xlKTsKKyAgICBBU1NFUlQobV9zY2VuZS52Ym8p
OworICAgIEFTU0VSVChtX3NjZW5lLnByb2dyYW0pOworCisgICAgbV9jb250ZXh0LT51c2VQcm9n
cmFtKG1fc2NlbmUucHJvZ3JhbSk7CisKKyAgICAvLyBCaW5kIHByaW1pdGl2ZSBjb2xvci4KKyAg
ICBmbG9hdCBjb2xvcls0XTsKKyAgICBwcmVtdWx0aXBseUFscGhhKG1fc2NlbmUucHJpbWl0aXZl
Q29sb3IsIG1fc2NlbmUub3BhY2l0eSwgY29sb3IpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTRm
KG1fc2NlbmUuY29sb3JMb2NhdGlvbiwgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgY29s
b3JbM10pOworCisgICAgLy8gQmluZCBwcmltaXRpdmUgdmVydGljZXMuCisgICAgbV9jb250ZXh0
LT5iaW5kQnVmZmVyKEdMX0FSUkFZX0JVRkZFUiwgbV9zY2VuZS52Ym8pOworICAgIG1fY29udGV4
dC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobV9zY2VuZS5wb3NpdGlvbkxvY2F0aW9uKTsKKyAg
ICBtX2NvbnRleHQtPnZlcnRleEF0dHJpYlBvaW50ZXIobV9zY2VuZS5wb3NpdGlvbkxvY2F0aW9u
LCAzLCBHTF9GTE9BVCwgR0xfRkFMU0UsIDAsIDApOworICAgIG1fY29udGV4dC0+ZHJhd0FycmF5
cyhHTF9UUklBTkdMRVMsIDAsIDMpOworfQorCit1bnNpZ25lZCBUZXN0V2ViUGx1Z2luOjpsb2Fk
U2hhZGVyKHVuc2lnbmVkIHR5cGUsIGNvbnN0IENTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICB1bnNp
Z25lZCBzaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcih0eXBlKTsKKyAgICBpZiAoc2hh
ZGVyKSB7CisgICAgICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKHNoYWRlciwgc291cmNlLmRh
dGEoKSk7CisgICAgICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihzaGFkZXIpOworCisgICAg
ICAgIGludCBjb21waWxlZCA9IDA7CisgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYoc2hh
ZGVyLCBHTF9DT01QSUxFX1NUQVRVUywgJmNvbXBpbGVkKTsKKyAgICAgICAgaWYgKCFjb21waWxl
ZCkgeworICAgICAgICAgICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgICAg
ICAgICAgIHNoYWRlciA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHNoYWRlcjsK
K30KKwordW5zaWduZWQgVGVzdFdlYlBsdWdpbjo6bG9hZFByb2dyYW0oY29uc3QgQ1N0cmluZyYg
dmVydGV4U291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Q1N0cmluZyYgZnJhZ21lbnRTb3VyY2UpCit7CisgICAgdW5zaWduZWQgdmVydGV4U2hhZGVyID0g
bG9hZFNoYWRlcihHTF9WRVJURVhfU0hBREVSLCB2ZXJ0ZXhTb3VyY2UpOworICAgIHVuc2lnbmVk
IGZyYWdtZW50U2hhZGVyID0gbG9hZFNoYWRlcihHTF9GUkFHTUVOVF9TSEFERVIsIGZyYWdtZW50
U291cmNlKTsKKyAgICB1bnNpZ25lZCBwcm9ncmFtID0gbV9jb250ZXh0LT5jcmVhdGVQcm9ncmFt
KCk7CisgICAgaWYgKHZlcnRleFNoYWRlciAmJiBmcmFnbWVudFNoYWRlciAmJiBwcm9ncmFtKSB7
CisgICAgICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRleFNoYWRlcik7
CisgICAgICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVy
KTsKKyAgICAgICAgbV9jb250ZXh0LT5saW5rUHJvZ3JhbShwcm9ncmFtKTsKKworICAgICAgICBp
bnQgbGlua2VkID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYocHJvZ3JhbSwg
R0xfTElOS19TVEFUVVMsICZsaW5rZWQpOworICAgICAgICBpZiAoIWxpbmtlZCkgeworICAgICAg
ICAgICAgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAgICAgICAgICAgcHJv
Z3JhbSA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHZlcnRleFNoYWRlcikKKyAgICAg
ICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIodmVydGV4U2hhZGVyKTsKKyAgICBpZiAoZnJhZ21l
bnRTaGFkZXIpCisgICAgICAgIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKGZyYWdtZW50U2hhZGVy
KTsKKworICAgIHJldHVybiBwcm9ncmFtOworfQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShyZXZpc2lvbiAwKQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgVGVzdFdlYlBsdWdpbl9oCisjZGVmaW5lIFRlc3RXZWJQ
bHVnaW5faAorCisjaW5jbHVkZSAiV2ViUGx1Z2luLmgiCisjaW5jbHVkZSAiV2ViUmVjdC5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOworfQorCisv
LyBBIGZha2UgaW1wbGVtZW50aW9uIG9mIFdlYktpdDo6V2ViUGx1Z2luIGZvciB0ZXN0aW5nIHB1
cnBvc2VzLgorLy8KKy8vIEl0IHVzZXMgV2ViR3JhcGhpY3NDb250ZXh0M0QgdG8gcGFpbnQgYSBz
Y2VuZSBjb25zaXNpdGluZyBvZiBhIHByaW1pdGl2ZQorLy8gb3ZlciBhIGJhY2tncm91bmQuIFRo
ZSBwcmltaXRpdmUgYW5kIGJhY2tncm91bmQgY2FuIGJlIGN1c3RvbWl6ZWQgdXNpbmcKKy8vIHRo
ZSBmb2xsb3dpbmcgcGx1Z2luIHBhcmFtZXRlcnM6CisvLyBwcmltaXRpdmU6IG5vbmUgKGRlZmF1
bHQpLCB0cmlhbmdsZS4KKy8vIGJhY2tncm91bmQtY29sb3I6IGJsYWNrIChkZWZhdWx0KSwgcmVk
LCBncmVlbiwgYmx1ZS4KKy8vIHByaW1pdGl2ZS1jb2xvcjogYmxhY2sgKGRlZmF1bHQpLCByZWQs
IGdyZWVuLCBibHVlLgorLy8gb3BhY2l0eTogWzAuMCAtIDEuMF0uIERlZmF1bHQgaXMgMS4wLgor
Y2xhc3MgVGVzdFdlYlBsdWdpbiA6IHB1YmxpYyBXZWJLaXQ6OldlYlBsdWdpbiB7CitwdWJsaWM6
CisgICAgVGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQ
bHVnaW5QYXJhbXMmKTsKKyAgICB2aXJ0dWFsIH5UZXN0V2ViUGx1Z2luKCk7CisKKyAgICBzdGF0
aWMgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIG1pbWVUeXBlKCk7CisKKyAgICAvLyBXZWJQbHVn
aW4gbWV0aG9kczoKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJLaXQ6OldlYlBsdWdp
bkNvbnRhaW5lciopOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCBO
UE9iamVjdCogc2NyaXB0YWJsZU9iamVjdCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcGFpbnQoV2ViS2l0OjpXZWJDYW52YXMqLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViS2l0OjpXZWJSZWN0JiBm
cmFtZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6
V2ViUmVjdCYgY2xpcFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViUmVjdD4mIGN1dE91dHNSZWN0cywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1Zpc2libGUpOworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVGb2N1cyhib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJp
bGl0eShib29sKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWNjZXB0c0lucHV0RXZlbnRzKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBX
ZWJLaXQ6OldlYklucHV0RXZlbnQmLCBXZWJLaXQ6OldlYkN1cnNvckluZm8mKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViS2l0
OjpXZWJVUkxSZXNwb25zZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRpbmcoY29u
c3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nRnJhbWVSZXF1ZXN0KGNvbnN0IFdlYktpdDo6V2ViVVJMJiwgdm9pZCogbm90aWZ5RGF0
YSkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkaW5nRnJhbWVSZXF1ZXN0KGNvbnN0
IFdlYktpdDo6V2ViVVJMJiwgdm9pZCogbm90aWZ5RGF0YSwgY29uc3QgV2ViS2l0OjpXZWJVUkxF
cnJvciYpIHsgfQorCitwcml2YXRlOgorICAgIGVudW0gUHJpbWl0aXZlIHsKKyAgICAgICAgUHJp
bWl0aXZlTm9uZSwKKyAgICAgICAgUHJpbWl0aXZlVHJpYW5nbGUKKyAgICB9OworCisgICAgc3Ry
dWN0IFNjZW5lIHsKKyAgICAgICAgUHJpbWl0aXZlIHByaW1pdGl2ZTsKKyAgICAgICAgdW5zaWdu
ZWQgYmFja2dyb3VuZENvbG9yWzNdOworICAgICAgICB1bnNpZ25lZCBwcmltaXRpdmVDb2xvclsz
XTsKKyAgICAgICAgZmxvYXQgb3BhY2l0eTsKKworICAgICAgICB1bnNpZ25lZCB2Ym87CisgICAg
ICAgIHVuc2lnbmVkIHByb2dyYW07CisgICAgICAgIGludCBjb2xvckxvY2F0aW9uOworICAgICAg
ICBpbnQgcG9zaXRpb25Mb2NhdGlvbjsKKworICAgICAgICBTY2VuZSgpCisgICAgICAgICAgICA6
IHByaW1pdGl2ZShQcmltaXRpdmVOb25lKQorICAgICAgICAgICAgLCBvcGFjaXR5KDEuMGYpIC8v
IEZ1bGx5IG9wYXF1ZS4KKyAgICAgICAgICAgICwgdmJvKDApCisgICAgICAgICAgICAsIHByb2dy
YW0oMCkKKyAgICAgICAgICAgICwgY29sb3JMb2NhdGlvbigtMSkKKyAgICAgICAgICAgICwgcG9z
aXRpb25Mb2NhdGlvbigtMSkKKyAgICAgICAgeworICAgICAgICAgICAgYmFja2dyb3VuZENvbG9y
WzBdID0gYmFja2dyb3VuZENvbG9yWzFdID0gYmFja2dyb3VuZENvbG9yWzJdID0gMDsKKyAgICAg
ICAgICAgIHByaW1pdGl2ZUNvbG9yWzBdID0gcHJpbWl0aXZlQ29sb3JbMV0gPSBwcmltaXRpdmVD
b2xvclsyXSA9IDA7CisgICAgICAgIH0KKyAgICB9OworCisgICAgLy8gRnVuY3Rpb25zIGZvciBw
YXJzaW5nIHBsdWdpbiBwYXJhbWV0ZXJzLgorICAgIFByaW1pdGl2ZSBwYXJzZVByaW1pdGl2ZShj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOworICAgIHZvaWQgcGFyc2VDb2xvcihjb25zdCBXZWJL
aXQ6OldlYlN0cmluZyYsIHVuc2lnbmVkIGNvbG9yWzNdKTsKKyAgICBmbG9hdCBwYXJzZU9wYWNp
dHkoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKKworICAgIC8vIEZ1bmN0aW9ucyBmb3IgbG9h
ZGluZyBhbmQgZHJhd2luZyBzY2VuZS4KKyAgICBib29sIGluaXRTY2VuZSgpOworICAgIHZvaWQg
ZHJhd1NjZW5lKCk7CisgICAgdm9pZCBkZXN0cm95U2NlbmUoKTsKKyAgICBib29sIGluaXRQcm9n
cmFtKCk7CisgICAgYm9vbCBpbml0UHJpbWl0aXZlKCk7CisgICAgdm9pZCBkcmF3UHJpbWl0aXZl
KCk7CisgICAgdW5zaWduZWQgbG9hZFNoYWRlcih1bnNpZ25lZCB0eXBlLCBjb25zdCBXVEY6OkNT
dHJpbmcmIHNvdXJjZSk7CisgICAgdW5zaWduZWQgbG9hZFByb2dyYW0oY29uc3QgV1RGOjpDU3Ry
aW5nJiB2ZXJ0ZXhTb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpD
U3RyaW5nJiBmcmFnbWVudFNvdXJjZSk7CisKKyAgICBXZWJLaXQ6OldlYkZyYW1lKiBtX2ZyYW1l
OworICAgIFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVyKiBtX2NvbnRhaW5lcjsKKworICAgIFdl
YktpdDo6V2ViUmVjdCBtX3JlY3Q7CisgICAgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCog
bV9jb250ZXh0OworICAgIFNjZW5lIG1fc2NlbmU7Cit9OworCisjZW5kaWYgLy8gVGVzdFBlcHBl
clBsdWdpbl9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0V2ViUGx1Z2luLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmNwcAkocmV2aXNpb24gOTY1OTYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJMYXlvdXRUZXN0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRlc3ROYXZpZ2F0aW9uQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgorI2luY2x1ZGUgIlRlc3RXZWJQbHVnaW4u
aCIKICNpbmNsdWRlICJUZXN0V2ViV29ya2VyLmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgog
I2luY2x1ZGUgIldlYkNvbXBvc2l0b3IuaCIKQEAgLTQ5LDYgKzUwLDcgQEAKICNpbmNsdWRlICJX
ZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJX
ZWJOb2RlLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luUGFyYW1zLmgiCiAjaW5jbHVkZSAiV2ViUG9w
dXBNZW51LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2Uu
aCIKQEAgLTc4MCw2ICs3ODIsOSBAQCB2b2lkIFdlYlZpZXdIb3N0OjpydW5Nb2RhbCgpCiAKIFdl
YlBsdWdpbiogV2ViVmlld0hvc3Q6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIGNvbnN0
IFdlYlBsdWdpblBhcmFtcyYgcGFyYW1zKQogeworICAgIGlmIChwYXJhbXMubWltZVR5cGUgPT0g
VGVzdFdlYlBsdWdpbjo6bWltZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIG5ldyBUZXN0V2ViUGx1
Z2luKGZyYW1lLCBwYXJhbXMpOworCiAgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpDcmVhdGVX
ZWJQbHVnaW4oZnJhbWUsIHBhcmFtcyk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2ODUzKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMTAtMDYgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgQWRkIGxheW91dCB0ZXN0cyBmb3IgV2ViUGx1Z2luIGNvbXBvc2l0b3IgcGF0aAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnM6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLWV4cGVjdGVkLnBuZzog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93
ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdp
bi1uby1hbHBoYS1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93
ZWJwbHVnaW4tbm8tYWxwaGEuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMv
d2VicGx1Z2luLXJlZmxlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLmh0
bWw6IEFkZGVkLgorCiAyMDExLTEwLTA2ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlYmFzZWxpbmUgdGVzdCBtaXNzZWQgaW4g
cjk2ODE0LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFs
cGhhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHgzMjEKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDMyMQorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDMwNQorICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTU1CisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MTU1KSBzaXplIDE1MHgxNTAgW2JnY29sb3I9Izk5RkY5OV0KK2xheWVyIGF0ICg4LDgpIHNpemUg
MTUweDE1MAorICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMTUw
eDE1MAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tYWxwaGEtZXhwZWN0ZWQudHh0Cl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1
Z2lucy93ZWJwbHVnaW4tYWxwaGEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKyAgLmJveCB7CisgICAgd2lkdGg6IDE1MHB4OworICAgIGhlaWdodDog
MTUwcHg7CisgIH0KKyAgI3JlZiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MywyNTUs
MTUzKTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8IS0tIFlvdSBzaG91bGQg
c2VlIHR3byBzcXVhcmVzIG9mIHRoZSBzYW1lIGNvbG9yIC0tPgorCis8ZW1iZWQgY2xhc3M9ImJv
eCIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iIGJhY2tncm91bmQt
Y29sb3I9ImdyZWVuIiBvcGFjaXR5PSIwLjQiPgorPGRpdiBpZD0icmVmIiBjbGFzcz0iYm94Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLWFscGhhLmh0
bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tbm8t
YWxwaGEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE2NgorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTY2CisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MTUwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDE1MHgxNTAgW2JnY29sb3I9I0ZGMDAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoOCw4KSBzaXplIDE1MHgxNTAKKyAg
UmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDE1MHgxNTAKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMv
d2VicGx1Z2luLW5vLWFscGhhLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1uby1hbHBoYS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CisgIC5ib3ggeworICAgIHdpZHRoOiAxNTBweDsKKyAgICBoZWlnaHQ6
IDE1MHB4OworICB9CisgICNwYXJlbnQgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs
MCwwKTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8IS0tIFlvdSBzaG91bGQg
YSBncmVlbiBzcXVhcmUgd2l0aCBubyByZWQgLS0+CisKKzxkaXYgaWQ9InBhcmVudCIgY2xhc3M9
ImJveCI+CisgIDxlbWJlZCBjbGFzcz0iYm94IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10
ZXN0LXdlYnBsdWdpbiIgYmFja2dyb3VuZC1jb2xvcj0iZ3JlZW4iIG9wYWNpdHk9IjEuMCI+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhh
Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4t
cmVmbGVjdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDE3MQorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTcxCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MTU1CisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTUweDE1MAorICBS
ZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMTUweDE1MAoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
cGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRl
ZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJwbHVnaW4tcmVmbGVjdGlvbi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdp
bnMvd2VicGx1Z2luLXJlZmxlY3Rpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLXJlZmxlY3Rp
b24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUwcHg7Cisg
ICAgaGVpZ2h0OiAxNTBweDsKKyAgICAtd2Via2l0LWJveC1yZWZsZWN0OiBiZWxvdyAyMHB4Owor
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzwhLS0gWW91IHNob3VsZCBzZWUgYSBi
bHVlIHRyaWFuZ2xlIG9uIGdyZWVuIGJhY2tncm91bmQgYW5kIGl0cyByZWZsZWN0aW9uIC0tPgor
Cis8ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJw
bHVnaW4iIHByaW1pdGl2ZT0idHJpYW5nbGUiIGJhY2tncm91bmQtY29sb3I9ImdyZWVuIiBwcmlt
aXRpdmUtY29sb3I9ImJsdWUiPgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93ZWJw
bHVnaW4tcmVmbGVjdGlvbi5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAg
KyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3Bs
dWdpbnMvd2VicGx1Z2luLWFscGhhLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2Uv
cG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1hbHBoYS1leHBlY3RlZC5wbmcKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdWamEzTjFiUUEyTWpkbE1X
VmwKTURVM01UQTBaRE15WVRVMllUVXhZMlpsT0ROaFkyWTVaa2UycWtJQUFBclJTVVJCVkhpYzdk
aXhEY05BREFUQmwrRmFWWlNhcFN0dwp0dEFEMGt6SzVNSUZqNWxaQUFCMFByc0hBQUE4amNBQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBMlBmZjRWclhuVHZJCm5ldmNQUUVBWHNvSEN3
QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQQpBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQQpBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQQpBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDCkN3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQ0N3QWcKSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQQpBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ2Rzek03ZzBBCkFJ
L2lnd1VBRUJOWUFBQXhnUVVBRUJOWUFBQ3g3Ny9EdGE0N2Q1QTcxN2w3QWdDOGxBOFdBRUJNWUFF
QXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVC
TVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTQpZQUVBeEFRV0FFQk1ZQUVBeEFR
V0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVB
CnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJN
WUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFX
QUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTQpZQUVBeEFRV0FFQk1ZQUVB
eEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1Z
QUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdB
RUJNWUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4
QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTQpZQUVBeEFRV0FFQk1Z
QUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FF
Qk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhB
UVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVcKQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlB
RUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTVlBRUF4QVFXQUVCTQpZQUVBeEFRV0FF
Qk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFRV0FFQk1ZQUVBeEFR
V0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRURzbUpuZEd3QUFIc1VIQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQwpD
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
QwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJB
QUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dB
Z0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFB
QUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0Fn
SnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lD
Q3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdKckFB
QUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdK
ckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUND
d0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFB
R0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3QWdK
ckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3
QWdKckFBQUdJQwpDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFH
SUNDd0FnSnJBQUFHSUNDd0FnSnJBQUFHSUNDd0FnCkpyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0py
QUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUFBR0lDQ3dBZ0pyQUEKQUdJQ0N3
QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJQ0N3QWdKckFBQUdJ
Q0N3QWdKckFBQUdJQwpDd0FnSnJBQUFHSS80V3NScVIwR0JBRUFBQUFBU1VWT1JLNUNZSUk9CgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvcGx1Z2lucy93
ZWJwbHVnaW4tbm8tYWxwaGEtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6
IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcK
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3BsdWdpbnMvd2VicGx1Z2luLW5vLWFscGhhLWV4cGVjdGVkLnBuZwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNV
aEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQm1ZV0V6Wm1R
dwpaalV4WTJZeE5XVmxZalF5TUdaaU5qWTBPVEJqTm1RMVpIVU9RR2dBQUFyQVNVUkJWSGljN2R5
eENjQXdEQUJCTzJUL2xaVUowajBPCmhMdFdqY3BIaGZiTUxBQUFPdGZYQ3dBQS9JM0FBZ0NJQ1N3
QWdKakFBZ0NJQ1N3QWdKakFBZ0NJQ1N3QWdOajlOdGhybjl5RDNDd2YKemdEZ0d5NVlBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZCkFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXgKZ1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZCkFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXgKZ1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZCkFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXgKZ1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4Z1FVQQpFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZCkFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQ3grMjB3YTA3dUFRRHcKR3k1
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEK
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4CmdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4
CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5Z
QUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVB
RUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllBQUF4
Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllB
QUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFF
Qk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhn
UVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVCTllB
QUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVC
TllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdR
VUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFB
QXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FVQUVC
TllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FV
QUVCTllBQUF4CmdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUEKRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJO
WUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWUFBQXhnUVVBRUJOWQpBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUN4
QjRDOUM2OHozZTRiCkFBQUFBRWxGVGtTdVFtQ0MKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdpbi1yZWZsZWN0aW9uLWV4cGVj
dGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9wbHVnaW5zL3dlYnBsdWdp
bi1yZWZsZWN0aW9uLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBl
CiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFB
VkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTFZMk5qTnpaagpaalpsTm1FeFpEVmlNV0prWldN
NE5qWXdNekpqWmpFNFlyK1BUeGNBQUE1N1NVUkJWSGljN2R6TGJpUTVGZ1ZCYWFELy8yWE5xbXRS
CjNhclN3eU9DbHpUYkpwQWd1WkhqSktEWDkvZjNGd0FBT3Y5NytnQUFBTHNSV0FBQU1ZRUZBQkFU
V0FBQU1ZRUZBQkFUV0FBQU1ZRUYKQUJCNysraUQxNWZYTzg5Qjd2M0ZmemdEZ0dkWXNBQUFZZ0lM
QUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbQpzQUFBWWdJTEFDQW1zQUFB
WWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWXFjRzF1djd5K3Y3MDRjQUFQWjBhbUFCQUZ6bXlNRDZ0
VjBaCnNRQ0FDeHdaV0FBQVZ6b3ZzSDVicll4WUFFRHR2TUFDQUxqWVlZSDFuM3VWRVFzQVNCMFdX
QUFBMXpzcHNQNndWQm14QUlET1NZRUYKQUhDTFl3THJyeHVWRVFzQWlCd1RXQUFBZHpranNENjVU
aG14QUlEQ0dZRUZBSENqQXdMclM3dVVFUXNBK0xFREFnc0E0RjY3QjlZMwpGaWtqRmdEd003c0hG
Z0RBN2JZT3JHOXZVVVlzQU9BSHRnNHNBSUFuN0J0WVAxeWhqRmdBd0hmdEcxZ0FBQS9aTkxDUy9j
bUlCUUI4Cnk2YUJCUUR3bkIwREsxeWVqRmdBd05mdEdGZ0FBSS9hTHJEeXpjbUlCUUI4MFhhQkJR
RHd0TDBDNjZLMXlZZ0ZBSHpGWG9FRkFMQ0EKalFMcjBwM0ppQVVBZk5wR2dRVUFzSVpkQXV1R2hj
bUlCUUI4emk2QkJRQ3dqQzBDNjdadHlZZ0ZBSHpDRm9FRkFMQ1MrWUYxODZwawp4QUlBL21aK1lB
RUFMR1o0WUQyeUp4bXhBSUEvR2g1WUFBRHJtUnhZRHk1SlJpd0E0R09UQXdzQVlFbGpBK3Z4RGVu
eEF3QUFxeG9iCldBQUFxNW9aV0l1c1I0c2NBd0JZek16QUFnQlkyTURBV21vM1d1b3dBTUFhQmdZ
V0FNRGFwZ1hXZ292UmdrY0NBQjQxTGJBQUFKWTMKS3JDVzNZcVdQUmdBOElSUmdRVUFNTUdjd0Zw
OEpWcjhlQURBamVZRUZnREFFRU1DYThRK05PS1FBTUQxaGdRV0FNQWNFd0pyMERJMAo2S2dBd0dV
bUJCWUF3Q2pMQjlhNFRXamNnUUdBMnZLQkJRQXd6ZHFCTlhRTkducHNBQ0N5ZG1BQkFBeTBjR0NO
M29GR0h4NEErSm1GCkF3c0FZS1pWQTJ1REJXaURLd0FBMzdKcVlBRUFqTFZrWUcyei9XeHpFUURn
SzVZTUxBQ0F5ZFlMck0xV244MnVBd0I4d25xQkJRQXcKM0dLQnRlWGVzK1dsQUlDUExSWllBQUR6
clJSWUd5ODlHMThOQVBpWGxRSUxBR0FMeXdUVzlodlA5aGNFQVA2eFRHQUJBT3hpamNBNgpaTjA1
NUpvQWNMdzFBZ3NBWUNNTEJOWlJ1ODVSbHdXQVV5MFFXQUFBZTNrNnNBNWNkQTY4TWdBYzV1bkFB
Z0RZenFPQmRleVdjK3pGCkFlQU1GaXdBZ05oemdYWDRpblA0OVFGZ2F4WXNBSURZUTRGbHYzbnhD
QUN3TFFzV0FFRHNpY0N5M1B6aUtRQmdSeFlzQUlEWTdZRmwKcy9tTkJ3R0E3Vml3QUFCaTl3YVd0
ZVkvZVJZQTJJc0ZDd0FnZG1OZzJXbit3T01Bd0VZc1dBQUFzYnNDeTBMelY1NElBSFpod1FJQQpp
TjBTV0xhWlQvSlFBTEFGQ3hZQVFPejZ3TExLZklubkFvRDVMRmdBQUxHTEE4c2U4dzBlRFFDR3My
QUJBTVN1REN4THpMZDVPZ0NZCnpJSUZBQkM3TExCc01EL2tBUUZnTEFzV0FFRHNtc0N5dmlROEl3
RE1aTUVDQUloZEVGaDJsNURIQklDQkxGZ0FBTEU2c0N3dU9VOEsKQU5OWXNBQUFZbWxnMlZvdTRt
RUJZQlFMRmdCQXJBc3NLOHVsUEM4QXpHSEJBZ0NJUllGbFg3bUJSd2FBSWQ2YXIzbC9iYjRIQUdB
KwpQeEVDQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1R
RUZnQkFUR0FCQU1RRUZnQkFUR0FCCkFNUUVGZ0JBN08yakQ5NWYzdTg4QndEQU5peFlBQUF4Z1FV
QUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTllBQUF4Z1FVQUVCTlkKQUFBeGdRVUFFQk5ZQUFB
eGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFBeGdRVUFFQk5ZQUFDeHQ0OCtlSDE1
dmZNYwo1TjVmM3A4K0FnQWN5b0lGQUJBVFdBQUFNWUVGQUJBVFdBQUFNWUVGQUJBVFdBQUFNWUVG
QUJBVFdBQUFNWUVGQUJBVFdBQUFNWUVGCkFCQVRXQUFBTVlFRkFCQVRXQUFBc2JmbWExN2ZtKy9o
ejk1Zm56NEJBUEIzMFlMbEQvOE5QRElBRE9FblFnQ0FXQmRZOXBWTGVWNEEKbU1PQ0JRQVFTd1BM
eW5JUkR3c0FvMWl3QUFCaWRXRFpXbktlRkFDbXNXQUJBTVF1Q0N5TFM4aGpBc0JBRml3QWdOZzFn
V1YzU1hoRwpBSmpKZ2dVQUVMc3NzS3d2UCtRQkFXQXNDeFlBUU96S3dMTEJmSnVuQTRESkxGZ0FB
TEdMQThzUzh3MGVEUUNHczJBQkFNU3VEeXg3CnpKZDRMZ0NZejRJRkFCQzdKYkNzTXAva29RQmdD
eFlzQUlEWVhZRmxtL2tyVHdRQXU3QmdBUURFYmd3c0M4MGZlQndBMklnRkN3QWcKZG05ZzJXbitr
MmNCZ0wxWXNBQUFZcmNIbHJYbU54NEVBTFpqd1FJQWlEMFJXRGFiWHp3RkFPeklnZ1VBRUhzb3ND
dzNMeDRCQUxabAp3UUlBaUQwWFdJZnZONGRmSHdDMlpzRUNBSWc5R2xqSHJqakhYaHdBem1EQkFn
Q0lQUjFZQjI0NUIxNFpBQTd6ZEdBQkFHeG5nY0E2CmF0RTU2cklBY0tvRkFnc0FZQzlyQk5ZaHU4
NGgxd1NBNDYwUldBQUFHMWttc0xaZmQ3YS9JQUR3ajJVQ0N3QmdGeXNGMXNZYno4WlgKQXdEK1ph
WEFBZ0RZd21LQnRlWFNzK1dsQUlDUExSWllBQUR6clJkWW0rMDltMTBIQVBpRTlRSUxBR0M0SlFO
cm05Vm5tNHNBQUYreApaR0FCQUV5MmFtQnRzUDFzY0FVQTRGdFdEU3dBZ0xFV0RxelJDOURvd3dN
QVA3TndZQUVBekxSMllBM2RnWVllR3dDSXJCMVlBQUFECkxSOVk0OWFnY1FjR0FHckxCeFlBd0RR
VEFtdlFKalRvcUFEQVpTWUVGZ0RBS0VNQ2E4UXlOT0tRQU1EMWhnUVdBTUFjY3dKcjhYMW8KOGVN
QkFEZWFFMWdBQUVPTUNxeGxWNkpsRHdZQVBHRlVZQUVBVERBdHNCYmNpaFk4RWdEd3FHbUJCUUN3
dklHQnRkUml0TlJoQUlBMQpEQXdzQUlDMXpReXNSWGFqUlk0QkFDeG1abUFCQUN4c2JHQTl2aDQ5
ZmdBQVlGVmpBd3NBWUZXVEErdkJEY2w4QlFCOGJISmdBUUFzCmFYaGdQYklrbWE4QWdEOGFIbGdB
QU91WkgxZzM3MG5tS3dEZ2IrWUhGZ0RBWXJZSXJOdFdKZk1WQVBBSld3UVdBTUJLZGdtc0c3WWwK
OHhVQThEbTdCQllBd0RJMkNxeExGeWJ6RlFEd2FSc0ZGZ0RBR3ZZS3JJdDJKdk1WQVBBVmV3VVdB
TUFDdGd1c2ZHMHlYd0VBWDdSZApZQUVBUEczSHdBbzNKL01WQVBCMU93WVdBTUNqTmcyc1pIa3lY
d0VBMzdKcFlBRUFQR2Zmd1ByaC9tUytBZ0MrYTkvQUFnQjR5TmFCCjllMFZ5bndGQVB6QTFvRUZB
UENFM1FQckcxdVUrUW9BK0puZEF3c0E0SFlIQk5hWEZpbnpGUUR3WXdjRUZnREF2YzRJckUvdVV1
WXIKQUtCd1JtQUJBTnpvbU1ENjZ6cGx2Z0lBSXNjRUZnREFYVTRLckQ5c1ZPWXJBS0J6VW1BQkFO
emlzTUQ2ejZYS2ZBVUFwQTRMTEFDQQo2NTBYV0wvdFZlWXJBS0IyWG1BQkFGenN5TUQ2dFZxWnJ3
Q0FDeHdaV0FBQVYzcDcrZ0FQc1YwQkFKZXhZQUVBeEFRV0FFQk1ZQUVBCnhBUVdBRUJNWUFFQXhB
UVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFFQXhBUVdBRUJNWUFF
QXhONCsKK3VEOTVmM09jd0FBYk1PQ0JRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRCkUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
CkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQgpCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRCkUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0EKQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVErejliSndIR01UTTVTZ0FBQUFCSlJVNUVya0pnZ2c9PQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>