<?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>54456</bug_id>
          
          <creation_ts>2011-02-15 06:50:37 -0800</creation_ts>
          <short_desc>Optimizing lightning filter to ARM-neon SIMD instruction set</short_desc>
          <delta_ts>2011-04-14 05:12:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56182</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Herczeg">zherczeg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>krit</cc>
    
    <cc>loki</cc>
    
    <cc>oliver</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zecke</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351224</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-15 06:50:37 -0800</bug_when>
    <thetext>Do we allow to add platform specific optimizations to WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351228</commentid>
    <comment_count>1</comment_count>
      <attachid>82446</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-15 06:52:18 -0800</bug_when>
    <thetext>Created attachment 82446
patch

This patch has not finished (I mean it is working, but expects some change before landing), I just want to know your opinion about such optimizations. Where to put them, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351230</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-15 06:54:19 -0800</bug_when>
    <thetext>Attachment 82446 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/platform/graphics/filters/F...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/FELightingARMNeon.cpp:241:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/FELightingARMNeon.cpp:457:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/filters/FELighting.cpp:439:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
Total errors found: 3 in 3 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>351958</commentid>
    <comment_count>3</comment_count>
      <attachid>82446</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-16 03:06:48 -0800</bug_when>
    <thetext>Comment on attachment 82446
patch

There should definitely be a possibility to add platform dependent code paths for filters. This code should be moved into platform dependent folders like we do in WebCore/platform/graphic/. We just need a way to handle this with the platform independent code path. I&apos;d like to see a similar concept like for GraphicsContext. Means we have something like base classes FE* and the platform snippets somewhere else. We should avoid platform-#if s in these base classes as much as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351959</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-16 03:08:28 -0800</bug_when>
    <thetext>Btw. Do you have some one who could review the ARM code when the patch is ready for landing? :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352011</commentid>
    <comment_count>5</comment_count>
      <attachid>82621</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-16 05:54:02 -0800</bug_when>
    <thetext>Created attachment 82621
updated draft patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352013</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 05:55:49 -0800</bug_when>
    <thetext>Attachment 82621 did not pass style-queue:

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

Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:192:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:408:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 6 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>352737</commentid>
    <comment_count>7</comment_count>
      <attachid>82780</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-17 03:48:19 -0800</bug_when>
    <thetext>Created attachment 82780
patch

Final patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352739</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 03:50:30 -0800</bug_when>
    <thetext>Attachment 82780 did not pass style-queue:

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

Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:192:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:408:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 7 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>352773</commentid>
    <comment_count>9</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-17 05:29:46 -0800</bug_when>
    <thetext>There is some ARM assembly magic here, and I would like to hear your opinion about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354444</commentid>
    <comment_count>10</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-21 00:13:37 -0800</bug_when>
    <thetext>Any thoughts about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354706</commentid>
    <comment_count>11</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-02-21 11:22:46 -0800</bug_when>
    <thetext>I sorry, but I&apos;m afraid I don&apos;t have time right now to pick through this assembly in detail, to understand what it is actually doing.

I&apos;ve glanced over, and at a higher level the patch as a whole looks absolutely fine to me.  I&apos;d prefer to leave it for someone who knows this area of code to review, but if no one is available, then this looks fine to me, I&apos;d be happy to r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354727</commentid>
    <comment_count>12</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-21 12:21:58 -0800</bug_when>
    <thetext>Thank you, Gavin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354769</commentid>
    <comment_count>13</comment_count>
      <attachid>82780</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-02-21 13:19:38 -0800</bug_when>
    <thetext>Comment on attachment 82780
patch

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

Let me do an informal review.


&gt; Source/WebCore/ChangeLog:8
&gt; +        Neon is the SIMD instruction set for arm. This instruction set

Please, use capital letters for ARM.

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:36
&gt; +#if CPU(ARM) &amp;&amp; ENABLE(ARM_NEON)

If NEON is enabled the compilers set __ARM_NEON__ define to 1. In this case, you should define the corresponding macro (ENABLE_ARM_NEON) in Platform.h.

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:395
&gt; +    char buffer[sizeof(FELightingFloatArgumentsForNeon) + 16];
&gt; +    FELightingFloatArgumentsForNeon* floatArguments = reinterpret_cast&lt;FELightingFloatArgumentsForNeon*&gt;((reinterpret_cast&lt;long&gt;(buffer) + 15) &amp; ~0xf);

I like magic numbers, but others don&apos;t. Please, use a static int or make a comment for this alignment trick.

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:33
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;FELightingNeonSIMD.h&quot;
&gt; +
&gt; +#if CPU(ARM) &amp;&amp; ENABLE(ARM_NEON)
&gt; +
&gt; +short s_FELightingConstantsForNeon[8 * 3] __attribute__((aligned(0x10))) = {
&gt; +    // Alpha coefficients.

Do you miss the WebCore namespace?

In JavaScriptCore/wtf/Vector.h there is a group of macros for alignment (for all platforms). Well, It may be worthwhile to move those macros to StdLibExtras.h and use it here also.

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:193
&gt; +
&gt; +asm (
&gt; +&quot;.globl &quot; TOSTRING(neonDrawLighting) NL

I feel this will fall with RVCT. I can help you in this.

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.h:45
&gt; +#ifndef FELightingNeonSIMD_h
&gt; +#define FELightingNeonSIMD_h
&gt; +
&gt; +#include &lt;wtf/Platform.h&gt;
&gt; +
&gt; +#if CPU(ARM) &amp;&amp; ENABLE(ARM_NEON)
&gt; +
&gt; +// Otherwise: Distant Light.
&gt; +#define FLAG_POINT_LIGHT                 0x01
&gt; +#define FLAG_SPOT_LIGHT                  0x02
&gt; +#define FLAG_CONE_EXPONENT_IS_1          0x04
&gt; +
&gt; +// Otherwise: Diffuse light.
&gt; +#define FLAG_SPECULAR_LIGHT              0x10
&gt; +#define FLAG_DIFFUSE_CONST_IS_1          0x20
&gt; +#define FLAG_SPECULAR_EXPONENT_IS_1      0x40
&gt; +
&gt; +// Must be aligned to 16 bytes.
&gt; +struct FELightingFloatArgumentsForNeon {

Why don&apos;t we put these into the WebCore namespace?

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.h:84
&gt; +extern short s_FELightingConstantsForNeon[8 * 3];

Use static int or comment for this magic numbers as well.


Well, I need one more day to understand the assembly code, but others looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355171</commentid>
    <comment_count>14</comment_count>
      <attachid>83296</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-22 04:11:33 -0800</bug_when>
    <thetext>Created attachment 83296
patch

Updated according to Gabor&apos;s suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355173</commentid>
    <comment_count>15</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-02-22 04:13:45 -0800</bug_when>
    <thetext>&gt; In JavaScriptCore/wtf/Vector.h there is a group of macros for alignment (for all platforms). Well, It may be worthwhile to move those macros to StdLibExtras.h and use it here also.

I think this should be done in a followup patch. This refactor worth a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355174</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 04:14:25 -0800</bug_when>
    <thetext>Attachment 83296 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/wtf/Platform.h&apos;, u&apos;S...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:197:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:413:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 8 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>355588</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-22 14:11:09 -0800</bug_when>
    <thetext>&gt; In JavaScriptCore/wtf/Vector.h there is a group of macros for alignment (for all platforms). Well, It may be worthwhile to move those macros to StdLibExtras.h and use it here also.

Seems fine to move to a common place. But probably not StdLibExtras.h. That’s for declarations of things that are very closely related to standard library contents, and I don’t think the alignment helpers quite fit that definition. We can put them into a nicely named header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359749</commentid>
    <comment_count>18</comment_count>
      <attachid>83296</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-03-01 01:39:39 -0800</bug_when>
    <thetext>Comment on attachment 83296
patch

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

&gt; Source/JavaScriptCore/wtf/Platform.h:352
&gt; +#if defined(__ARM_NEON__)
&gt; +#define ENABLE_ARM_NEON 1
&gt; +#endif

Hmm, maybe it should be WTF_CPU_ARM_NEON instead of ENABLE_ARM_NEON. ENABLE_* macros are mainly those kind of features which can be turn on/off irrespectively of build or host system.

&gt; Source/WebCore/ChangeLog:9
&gt; +        allows to speed-up the lighting filter by 4 times on arm

s/arm/ARM/

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:36
&gt; +#if CPU(ARM) &amp;&amp; ENABLE(ARM_NEON) &amp;&amp; COMPILER(GCC)

If CPU(ARM_NEON) is used the condition will be sorter as well.

&gt; Source/WebCore/platform/graphics/filters/FELighting.h:84
&gt; +#if CPU(ARM) &amp;&amp; ENABLE(ARM_NEON)
&gt; +    void drawInteriorPixels(LightingData&amp;, LightSource::PaintingData&amp;);

You missed the COMPILER(GCC) part.


At last I had some time to walk through the assembly code, and I could say it is reasonable and optimal.
So, I would like to propose it to be r+ -ed with those little changes. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359764</commentid>
    <comment_count>19</comment_count>
      <attachid>84203</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-01 02:33:41 -0800</bug_when>
    <thetext>Created attachment 84203
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359765</commentid>
    <comment_count>20</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-01 02:34:53 -0800</bug_when>
    <thetext>Maciej prefered the CPU(ARM_NEON) form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359766</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-01 02:37:00 -0800</bug_when>
    <thetext>Attachment 84203 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/wtf/Platform.h&apos;, u&apos;S...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:197:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:413:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 8 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>359772</commentid>
    <comment_count>22</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-01 02:47:58 -0800</bug_when>
    <thetext>What is the reason not to use the intrinsics? I think the code is unmaintainable as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359800</commentid>
    <comment_count>23</comment_count>
      <attachid>84203</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-01 04:31:12 -0800</bug_when>
    <thetext>Comment on attachment 84203
patch

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

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:312
&gt; +#if CPU(ARM_NEON) &amp;&amp; COMPILER(GCC)
&gt; +        drawInteriorPixels(data, paintingData);
&gt; +#else

Stricto sensu, this is not portable.
You can compile with Neon because you target Cortex CPUs, while at the same time you might deploy on some target without the Neon extension. A common Cortex CPU without Neon is the tegra.

What we do in Qt is using the hardware capabilities from the kernel to detect Neon at runtime (HWCAP_NEON).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359801</commentid>
    <comment_count>24</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-01 04:32:53 -0800</bug_when>
    <thetext>And I think this needs good benchmarks. Adding Holger to have someone who care about that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359804</commentid>
    <comment_count>25</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2011-03-01 04:39:18 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; And I think this needs good benchmarks. Adding Holger to have someone who care about that :)

Thanks. and the usual question. With a gcc 4.5/4.6 how much slower is the code if one is using the intrinsics of the compiler? 

For the inline assembly:
  - Any reason to not use GNU AS macros?
  - Instead of harcoding register names or concating strings you can use IIRC the %[NAME] syntax for register names and GCC wil fill in the blanks for you increasing the readability of the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359805</commentid>
    <comment_count>26</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-01 04:45:15 -0800</bug_when>
    <thetext>&gt; Stricto sensu, this is not portable.
&gt; You can compile with Neon because you target Cortex CPUs, while at the same time you might deploy on some target without the Neon extension. A common Cortex CPU without Neon is the tegra.
&gt; 
&gt; What we do in Qt is using the hardware capabilities from the kernel to detect Neon at runtime (HWCAP_NEON).

I don&apos;t understand you. If you tell -mfpu=neon to the compiler, it will generate some neon instructions. If you deploy it on a non-neon architecture, it will stop with a illegal instruction.

If you say -mfpu=vfp, it will not generate neon instructions, and the optimization will be disabled as well.

Runtime detection will not work here, since if you enable neon support, the compiler WILL generate neon instructions (independently from this patch), or if you disable it, it will NOT compile the assembly source code (because they are undefined instructions in that case). (Note: currently it is not supported to have different compiler optimizations for individual files)

If you unsure that the target platform have neon support, just disable it. This is my best advice for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359807</commentid>
    <comment_count>27</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-01 04:49:30 -0800</bug_when>
    <thetext>&gt; Thanks. and the usual question. With a gcc 4.5/4.6 how much slower is the code if one is using the intrinsics of the compiler? 
&gt; 
&gt; For the inline assembly:
&gt;   - Any reason to not use GNU AS macros?
&gt;   - Instead of harcoding register names or concating strings you can use IIRC the %[NAME] syntax for register names and GCC wil fill in the blanks for you increasing the readability of the code.

I don&apos;t know about these. The current style follows the ARM assembly functions already in the WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359809</commentid>
    <comment_count>28</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-01 04:54:43 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; Runtime detection will not work here, since if you enable neon support, the compiler WILL generate neon instructions (independently from this patch), or if you disable it, it will NOT compile the assembly source code (because they are undefined instructions in that case). (Note: currently it is not supported to have different compiler optimizations for individual files)

It is fine to have Neon code in your binary as long as you don&apos;t execute it if you don&apos;t have the extension.

It is the same idea as for SS[S]E. You compile some part with SIMD, and jump to that code them when the CPU can execute it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360722</commentid>
    <comment_count>29</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-02 04:37:00 -0800</bug_when>
    <thetext>This work is raised a lot of interesting questions, and it is time to summarize them.

Future work:
- All alignment macros should go to a separate wtf header file.
- Extend Qt build system with allowing compile files with different compiler options.

Note: neither of them is blocking this patch.

Other issues:
- Make the code easier to understand. Naturally, it is still required to know the SVG standard to understand it.
  - I have added several comments.
- Using intrinsics: unfortunately intrinsics offers to access only a small subset of Advanced SIMD features, and nothing more. This is a whole function, including a mixture of ARM, VFP and Advanced SIMD instructions. According to an ARM expert, the normal assembly code is the best soultion for this at the moment.
  - Moreover, at the moment the GCC support for intrinsics is poor. Maybe it will change in the future, but it is not recommended to use at the moment.
- Building for neon. To enable this code, you need to pass -mfpu=neon compiler option, and in that case, you cannot deploy the resulting binary on a non-neon system anyway, since the compiler itself will generate neon opcodes. Thus, the current approach is safe now.

If you have any further questions, please let me know.

Please don&apos;t misunderstand me, I don&apos;t say we could not improve the things in the future, just that this patch is ready for landing. This function could be made dynamically detectable, or speeding up even further with SMP, but this is not the task of this patch. It just aims to offer a performace increase with -mfpu=neon compiler option.

I soon upload the hopefully final patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360728</commentid>
    <comment_count>30</comment_count>
      <attachid>84401</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-02 04:46:15 -0800</bug_when>
    <thetext>Created attachment 84401
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360729</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 04:49:36 -0800</bug_when>
    <thetext>Attachment 84401 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/wtf/Platform.h&apos;, u&apos;S...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:203:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/arm/FELightingNeonSIMD.cpp:453:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 8 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>363303</commentid>
    <comment_count>32</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-03-07 04:49:05 -0800</bug_when>
    <thetext>&gt; Other issues:
&gt; - Make the code easier to understand. Naturally, it is still required to know the SVG standard to understand it.
&gt;   - I have added several comments.

Although the asm code itself and the neonized algorithm were also readable before, but the comments are really needed for non-ARM observers.

&gt; - Using intrinsics: unfortunately intrinsics offers to access only a small subset of Advanced SIMD features, and nothing more. This is a whole function, including a mixture of ARM, VFP and Advanced SIMD instructions. According to an ARM expert, the normal assembly code is the best soultion for this at the moment.
&gt;   - Moreover, at the moment the GCC support for intrinsics is poor. Maybe it will change in the future, but it is not recommended to use at the moment.

I totally agree with you. The GCC&apos;s intrinsics does not offer accurate controlling of the NEON infrastructure. The most painful parts are the inaccessible register mapping and the instruction mixing.

&gt; I soon upload the hopefully final patch.

I still think this patch is fine for landing.
Gavin, what do you think about it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363897</commentid>
    <comment_count>33</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2011-03-08 01:21:03 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; &gt; Other issues:
&gt; &gt; - Make the code easier to understand. Naturally, it is still required to know the SVG standard to understand it.
&gt; &gt;   - I have added several comments.
&gt; 
&gt; Although the asm code itself and the neonized algorithm were also readable before, but the comments are really needed for non-ARM observers.

Readable and maintainable is surely subjective. Some people have no issue to read r0-r15 and remember what they are used for, same applies for %1 but then again a variable name is
something we were very used to from high level languages and GAS supports that. Anyway.
 

&gt; I totally agree with you. The GCC&apos;s intrinsics does not offer accurate controlling of the NEON infrastructure. The most painful parts are the inaccessible register mapping and the instruction mixing.

Well, again a subjective matter. Projects like pixman have a copy of the code in intrinsics and then the handtuned result (based on the intrinsics version) as GCC still sucks.

&gt; 
&gt; &gt; I soon upload the hopefully final patch.
&gt; 
&gt; I still think this patch is fine for landing.
&gt; Gavin, what do you think about it?

Not so subjective. Could you post any benchmark data? How much faster than the C version? How much faster than a version compile for neon with tree vectorize and such?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363908</commentid>
    <comment_count>34</comment_count>
      <attachid>84401</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-03-08 02:03:27 -0800</bug_when>
    <thetext>Comment on attachment 84401
patch

Okay, I&apos;ve done my best to review as neither a Neon coding nor 3D lighting expert.  I&apos;ve followed the asm through the best I can, and it all seems reasonable (and rather impressively tight) to me.  The style seems good, a couple of things that I don&apos;t know whether we really have precedent for in WebKit style (e.g. the NL macro), but it all reads well to me, so I&apos;m happy with the asm as is.

I&apos;d like to suggest making some of the setup to this &amp; data structures be designed to be shared with SIMD implementations for other architectures (e.g. SSE), but I don&apos;t know how helpful that would be (unclear without attempting the port exactly how much code could be shared anyway, so trying to generalize at this time may lead to wasted effort).  Refactoring as necessary would only be a small part of the task if someone does decide to port to SSE. :o)

One issue.  I don&apos;t think you should need to manually align the allocation of FELightingFloatArgumentsForNeon.  There is a macro WTF_ALIGN defined in wtf that I would hope would be able to do this for you.  You probably ought to be able to use this for s_FELightingConstantsForNeon, too.  Oh, and also, in allocating &amp; populating neonData, I think we&apos;d usually just use a literal initialization here (e.g.:

    FELightingPaintingDataForNeon neonData = {
        data.pixels-&gt;data(),
        data.widthDecreasedByOne - 1,
        data.heightDecreasedByOne - 1,
        0,
        0,
        0,
        floatArguments,
        s_FELightingConstantsForNeon
    };

).  Oh, and one final thing, I think a comment on &apos;getPowerCoefficients&apos; to explain what it is trying to achieve wouldn&apos;t hurt. :-)  It looks to me like this method could probably be written more efficiently in integer code, using the macros from the std c libs to extract the exponent from a fp number?  I guess this isn&apos;t critical to the performance improvement in this patch, but still, the method could probably do with a little explanation.

I&apos;m going to r- because I think you should take a quick look at the WTF_ALIGN macro &amp; I do think getPowerCoefficients deserves a comment, but I agree that this patch looks very close to landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372763</commentid>
    <comment_count>35</comment_count>
      <attachid>86762</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-03-24 06:04:06 -0700</bug_when>
    <thetext>Created attachment 86762
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372765</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-24 06:05:49 -0700</bug_when>
    <thetext>Attachment 86762 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/wtf/Platform.h&apos;, u&apos;S...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp:205:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp:455:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h:27:  #ifndef header guard has wrong style, please use: WTF_FELightingNEON_h  [build/header_guard] [5]
Total errors found: 3 in 8 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>382176</commentid>
    <comment_count>37</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-08 05:41:45 -0700</bug_when>
    <thetext>Apart from the style fix, shall I do something with the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382737</commentid>
    <comment_count>38</comment_count>
      <attachid>86762</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-09 00:00:32 -0700</bug_when>
    <thetext>Comment on attachment 86762
patch

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

I think the patch is great, if Gavin has no more concerns or any of the other folks familiar with the actual code I&apos;d like to see it go in :-) Still some thoughs:

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:461
&gt; +    // Set lightnig arguments.

typo: lighting.

&gt;&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp:205
&gt;&gt; +
&gt;&gt; +asm (
&gt; 
&gt; Extra space before ( in function call  [whitespace/parens] [4]

You could add &quot;// NOLINT&quot; here, so it stops reporting this error.

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp:290
&gt; +    // Multiply the alpha values by the X and Y matricies.

typo: matrices.

&gt;&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp:455
&gt;&gt; +);
&gt; 
&gt; The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]

Same here.

&gt;&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h:27
&gt;&gt; +#ifndef FELightingNeonSIMD_h
&gt; 
&gt; #ifndef header guard has wrong style, please use: WTF_FELightingNEON_h  [build/header_guard] [5]

Seems like a style check bug? Did someone already report it?

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h:44
&gt; +#define FLAG_POINT_LIGHT                 0x01
&gt; +#define FLAG_SPOT_LIGHT                  0x02
&gt; +#define FLAG_CONE_EXPONENT_IS_1          0x04
&gt; +
&gt; +// Otherwise: Diffuse light.
&gt; +#define FLAG_SPECULAR_LIGHT              0x10
&gt; +#define FLAG_DIFFUSE_CONST_IS_1          0x20
&gt; +#define FLAG_SPECULAR_EXPONENT_IS_1      0x40

Can&apos;t we use enums for this?
enum LightingFlags (
    FlagPointLight = 1 &lt;&lt; 0,
..
};

&gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h:86
&gt; +extern short s_FELightingConstantsForNeon[];

No way we can use a &quot;short feLightingConstantsForNeon()&quot; free function here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383057</commentid>
    <comment_count>39</comment_count>
      <attachid>88974</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-11 00:37:06 -0700</bug_when>
    <thetext>Created attachment 88974
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383059</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-11 00:40:51 -0700</bug_when>
    <thetext>Attachment 88974 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/wtf/Platform.h&apos;, u&apos;S...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h:27:  #ifndef header guard has wrong style, please use: WTF_FELightingNEON_h  [build/header_guard] [5]
Total errors found: 1 in 8 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>383067</commentid>
    <comment_count>41</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-11 01:36:00 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h:44
&gt; &gt; +#define FLAG_POINT_LIGHT                 0x01
&gt; &gt; +#define FLAG_SPOT_LIGHT                  0x02
&gt; &gt; +#define FLAG_CONE_EXPONENT_IS_1          0x04
&gt; &gt; +
&gt; &gt; +// Otherwise: Diffuse light.
&gt; &gt; +#define FLAG_SPECULAR_LIGHT              0x10
&gt; &gt; +#define FLAG_DIFFUSE_CONST_IS_1          0x20
&gt; &gt; +#define FLAG_SPECULAR_EXPONENT_IS_1      0x40
&gt; 
&gt; Can&apos;t we use enums for this?
&gt; enum LightingFlags (
&gt;     FlagPointLight = 1 &lt;&lt; 0,
&gt; ..
&gt; };

Unfortunately not. The preprocessor cannot stringize them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385630</commentid>
    <comment_count>42</comment_count>
      <attachid>88974</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-14 03:59:27 -0700</bug_when>
    <thetext>Comment on attachment 88974
patch

r=me. I heard no objections about the assembly since a while, so I think it can go on. Note: I have no clue of the actual asm code, so my review is only about structural things.
If Zoltan says it works I trust him :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385660</commentid>
    <comment_count>43</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-14 05:12:51 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/83835</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82446</attachid>
            <date>2011-02-15 06:52:18 -0800</date>
            <delta_ts>2011-02-16 05:54:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>23838</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSBjYjliNTE3NzMzOTQ0NzJhYTA3MzU0MTA0ZDA4NGI3YjA2NDQzMzBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiB3ZWJraXRidWlsZGJvdCA8d2Via2l0YnVpbGRib3RAY3V0ZTQu
aW5mLnUtc3plZ2VkLmh1PgpEYXRlOiBUdWUsIDE1IEZlYiAyMDExIDE1OjA4OjA4ICswMTAwClN1
YmplY3Q6IFtQQVRDSF0gbGlnaHQtbmVvbgoKLS0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUxpZ2h0aW5nLmNwcCAgICAgICB8ICAxMDkgKysrKysKIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIHwgICAgOCArCiAuLi4vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUxpZ2h0aW5nQVJNTmVvbi5jcHAgICAgICAgICB8ICA0NTcgKysrKysrKysrKysr
KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTc0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUxpZ2h0aW5nQVJNTmVvbi5jcHAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAppbmRleCBlYzFjYTg4
Li5mMGU0YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJG
RUxpZ2h0aW5nLmgiCiAKICNpbmNsdWRlICJMaWdodFNvdXJjZS5oIgorI2luY2x1ZGUgIlBvaW50
TGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJTcG90TGlnaHRTb3VyY2UuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zMDEsNiArMzAzLDkgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGln
aHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdodCkKIAogICAgIGlm
ICh3aWR0aCA+PSAzICYmIGhlaWdodCA+PSAzKSB7CiAgICAgICAgIC8vIEludGVyaW9yIHBpeGVs
cworI2lmIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKyAgICAgICAgZHJhd0ludGVyaW9y
UGl4ZWxzKGRhdGEsIHBhaW50aW5nRGF0YSk7CisjZWxzZQogICAgICAgICBmb3IgKGludCB5ID0g
MTsgeSA8IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmU7ICsreSkgewogICAgICAgICAgICAgb2Zm
c2V0ID0geSAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKyBjUGl4ZWxTaXplOwog
ICAgICAgICAgICAgZm9yIChpbnQgeCA9IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7
ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNpemUpIHsKQEAgLTMwOCw2ICszMTMsNyBAQCBib29sIEZF
TGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkqIHBpeGVscywgaW50IHdpZHRoLCBpbnQg
aGVpZ2h0KQogICAgICAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFp
bnRpbmdEYXRhLCB4LCB5LCBjRmFjdG9yMWRpdjQsIGNGYWN0b3IxZGl2NCwgbm9ybWFsVmVjdG9y
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgaW50IGxh
c3RQaXhlbCA9IGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKiBoZWlnaHQ7CkBAIC0z
NTQsNiArMzYwLDEwOSBAQCB2b2lkIEZFTGlnaHRpbmc6OmFwcGx5KCkKICAgICBkcmF3TGlnaHRp
bmcoc3JjUGl4ZWxBcnJheSwgYWJzb2x1dGVQYWludFNpemUud2lkdGgoKSwgYWJzb2x1dGVQYWlu
dFNpemUuaGVpZ2h0KCkpOwogfQogCisjaWYgQ1BVKEFSTSkgJiYgRU5BQkxFKEFSTV9ORU9OKQor
CisjaW5jbHVkZSAiRkVMaWdodGluZ0FSTU5lb24uY3BwIgorCitzdGF0aWMgaW50IGdldFBvd2Vy
Q29lZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KQoreworICAgIGludCBpLCByZXN1bHQ7CisKKyAg
ICBpZiAoZXhwb25lbnQgPCAwKQorICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsK
KworICAgIGlmIChleHBvbmVudCA+IDYzLjk5KQorICAgICAgICBleHBvbmVudCA9IDYzLjk5Owor
CisgICAgZXhwb25lbnQgLz0gNjQ7CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGkgPSAxMTsg
aSA+PSAwOyAtLWkpIHsKKyAgICAgICAgZXhwb25lbnQgKj0gMjsKKyAgICAgICAgaWYgKGV4cG9u
ZW50ID49IDEpIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7CisgICAgICAgICAgICBl
eHBvbmVudCAtPSAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K3ZvaWQgRkVMaWdodGluZzo6ZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYgZGF0YSwg
TGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIFBhaW50aW5n
RGF0YUZvck5lb24gbmVvbkRhdGE7CisgICAgY2hhciBidWZmZXJbc2l6ZW9mKEZsb2F0QXJndW1l
bnRzKSArIDE2XTsKKyAgICBGbG9hdEFyZ3VtZW50cyogZmxvYXRBcmd1bWVudHMgPSByZWludGVy
cHJldF9jYXN0PEZsb2F0QXJndW1lbnRzKj4oKHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZz4oYnVmZmVy
KSArIDE1KSAmIH4weGYpOworCisgICAgbmVvbkRhdGEucGl4ZWxzID0gZGF0YS5waXhlbHMtPmRh
dGEoKTsKKyAgICBuZW9uRGF0YS53aWR0aERlY3JlYXNlZEJ5VHdvID0gZGF0YS53aWR0aERlY3Jl
YXNlZEJ5T25lIC0gMTsKKyAgICBuZW9uRGF0YS5oZWlnaHREZWNyZWFzZWRCeVR3byA9IGRhdGEu
aGVpZ2h0RGVjcmVhc2VkQnlPbmUgLSAxOworICAgIG5lb25EYXRhLmZsYWdzID0gMDsKKyAgICBu
ZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gMDsKKyAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQg
PSAwOworICAgIG5lb25EYXRhLmZsb2F0QXJndW1lbnRzID0gZmxvYXRBcmd1bWVudHM7CisgICAg
bmVvbkRhdGEucGFpbnRpbmdDb25zdGFudHMgPSBwYWludGluZ0NvbnN0YW50czsKKworICAgIC8v
IFNldCBsaWdodCBzb3VyY2UgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1lbnRzLT5jb25zdE9u
ZSA9IDE7CisKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JSZWQgPSBtX2xpZ2h0aW5nQ29sb3Iu
cmVkKCk7CisgICAgZmxvYXRBcmd1bWVudHMtPmNvbG9yR3JlZW4gPSBtX2xpZ2h0aW5nQ29sb3Iu
Z3JlZW4oKTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JCbHVlID0gbV9saWdodGluZ0NvbG9y
LmJsdWUoKTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzQgPSAwOworCisgICAgaWYgKG1f
bGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19QT0lOVCkgeworICAgICAgICBuZW9uRGF0YS5mbGFn
cyB8PSBGTEFHX1BPSU5UX0xJR0hUOworICAgICAgICBQb2ludExpZ2h0U291cmNlKiBwb2ludExp
Z2h0U291cmNlID0gc3RhdGljX2Nhc3Q8UG9pbnRMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2Uu
Z2V0KCkpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRYID0gcG9pbnRMaWdodFNvdXJj
ZS0+cG9zaXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFkgPSBwb2lu
dExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxp
Z2h0WiA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy0+cGFkZGluZzIgPSAwOworICAgIH0gZWxzZSBpZiAobV9saWdodFNvdXJjZS0+dHlw
ZSgpID09IExTX1NQT1QpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUE9UX0xJ
R0hUOworICAgICAgICBTcG90TGlnaHRTb3VyY2UqIHNwb3RMaWdodFNvdXJjZSA9IHN0YXRpY19j
YXN0PFNwb3RMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOworICAgICAgICBmbG9h
dEFyZ3VtZW50cy0+bGlnaHRYID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLngoKTsKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WSA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24o
KS55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFogPSBzcG90TGlnaHRTb3VyY2Ut
PnBvc2l0aW9uKCkueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzIgPSAwOwor
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaXJlY3Rpb25YID0gcGFpbnRpbmdEYXRhLmRpcmVj
dGlvblZlY3Rvci54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaXJlY3Rpb25ZID0gcGFp
bnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5k
aXJlY3Rpb25aID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci56KCk7CisgICAgICAgIGZs
b2F0QXJndW1lbnRzLT5wYWRkaW5nMyA9IDA7CisKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmNv
bmVDdXRPZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQ7CisgICAgICAgIGZs
b2F0QXJndW1lbnRzLT5jb25lRnVsbExpZ2h0ID0gcGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5jb25lQ3V0T2ZmUmFuZ2UgPSBwYWludGluZ0RhdGEu
Y29uZUN1dE9mZkxpbWl0IC0gcGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7CisgICAgICAgIG5l
b25EYXRhLmNvbmVFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2llbnRzKHNwb3RMaWdodFNvdXJj
ZS0+c3BlY3VsYXJFeHBvbmVudCgpKTsKKyAgICAgICAgaWYgKHNwb3RMaWdodFNvdXJjZS0+c3Bl
Y3VsYXJFeHBvbmVudCgpID09IDEpCisgICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFH
X0NPTkVfRVhQT05FTlRfSVNfMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCht
X2xpZ2h0U291cmNlLnR5cGUgPT0gTFNfRElTVEFOVCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRz
LT5saWdodFggPSBwYWludGluZ0RhdGEubGlnaHRWZWN0b3IueCgpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy0+bGlnaHRZID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLnkoKTsKKyAgICAgICAg
ZmxvYXRBcmd1bWVudHMtPmxpZ2h0WiA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci56KCk7Cisg
ICAgICAgIGZsb2F0QXJndW1lbnRzLT5wYWRkaW5nMiA9IDE7CisgICAgfQorCisgICAgLy8gU2V0
IGxpZ2h0bmlnIGFyZ3VtZW50cy4KKyAgICBmbG9hdEFyZ3VtZW50cy0+c3VyZmFjZVNjYWxlID0g
ZGF0YS5zdXJmYWNlU2NhbGU7CisgICAgZmxvYXRBcmd1bWVudHMtPm1pbnVzU3VyZmFjZVNjYWxl
RGl2aWRlZEJ5Rm91ciA9IC1kYXRhLnN1cmZhY2VTY2FsZSAvIDQ7CisgICAgaWYgKG1fbGlnaHRp
bmdUeXBlID09IEZFTGlnaHRpbmc6OkRpZmZ1c2VMaWdodGluZykKKyAgICAgICAgZmxvYXRBcmd1
bWVudHMtPmRpZmZ1c2VDb25zdGFudCA9IG1fZGlmZnVzZUNvbnN0YW50OworICAgIGVsc2Ugewor
ICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQRUNVTEFSX0xJR0hUOworICAgICAgICBm
bG9hdEFyZ3VtZW50cy0+ZGlmZnVzZUNvbnN0YW50ID0gbV9zcGVjdWxhckNvbnN0YW50OworICAg
ICAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmljaWVudHMobV9z
cGVjdWxhckV4cG9uZW50KTsKKyAgICAgICAgaWYgKG1fc3BlY3VsYXJFeHBvbmVudCA9PSAxKQor
ICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9FWFBPTkVOVF9JU18x
OworICAgIH0KKyAgICBpZiAoZmxvYXRBcmd1bWVudHMtPmRpZmZ1c2VDb25zdGFudCA9PSAxKQor
ICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMTsKKworICAg
IG5lb25EcmF3TGlnaHRpbmcoJm5lb25EYXRhKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKaW5kZXggZmEx
YzBhYS4uZmE0M2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKQEAgLTMzLDExICszMywxNSBAQAogI2luY2x1ZGUg
IkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgIkxpZ2h0U291cmNlLmgiCiAjaW5jbHVkZSA8d3Rm
L0J5dGVBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiAvLyBDb21tb24gYmFz
ZSBjbGFzcyBmb3IgRkVEaWZmdXNlTGlnaHRpbmcgYW5kIEZFU3BlY3VsYXJMaWdodGluZwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIE9ubHkgZm9yIHRlc3RpbmcKKyNkZWZpbmUgRU5BQkxF
X0FSTV9ORU9OIDEKKwogY2xhc3MgRkVMaWdodGluZyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qgewog
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseSgpOwpAQCAtNzksNiArODMsMTAgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgc2V0UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRhJiwgTGln
aHRTb3VyY2U6OlBhaW50aW5nRGF0YSYsCiAgICAgICAgICAgICAgICAgICBpbnQgbGlnaHRYLCBp
bnQgbGlnaHRZLCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRQb2ludCYgbm9ybWFs
VmVjdG9yKTsKIAorI2lmIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKyAgICB2b2lkIGRy
YXdJbnRlcmlvclBpeGVscyhMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRh
Jik7CisjZW5kaWYKKwogICAgIExpZ2h0aW5nVHlwZSBtX2xpZ2h0aW5nVHlwZTsKICAgICBSZWZQ
dHI8TGlnaHRTb3VyY2U+IG1fbGlnaHRTb3VyY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZ0FSTU5lb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nQVJNTmVvbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUwNDk0OQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdo
dGluZ0FSTU5lb24uY3BwCkBAIC0wLDAgKzEsNDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWm9sdGFuIEhl
cmN6ZWcKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisvLyBPdGhlcndpc2U6IERpc3RhbnQgTGlnaHQuCisjZGVmaW5lIEZMQUdf
UE9JTlRfTElHSFQgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgRkxBR19TUE9UX0xJR0hU
ICAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBGTEFHX0NPTkVfRVhQT05FTlRfSVNfMSAg
ICAgICAgICAweDA0CisKKy8vIE90aGVyd2lzZTogRGlmZnVzZSBsaWdodC4KKyNkZWZpbmUgRkxB
R19TUEVDVUxBUl9MSUdIVCAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTEFHX0RJRkZVU0Vf
Q09OU1RfSVNfMSAgICAgICAgICAweDIwCisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfRVhQT05FTlRf
SVNfMSAgICAgIDB4NDAKKworLy8gTXVzdCBiZSBhbGlnbmVkIHRvIDE2IGJ5dGVzLgorc3RydWN0
IEZsb2F0QXJndW1lbnRzIHsKKyAgICBmbG9hdCBzdXJmYWNlU2NhbGU7CisgICAgZmxvYXQgbWlu
dXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyOworICAgIGZsb2F0IGRpZmZ1c2VDb25zdGFudDsK
KyAgICBmbG9hdCBwYWRkaW5nMTsKKworICAgIGZsb2F0IGNvbmVDdXRPZmZMaW1pdDsKKyAgICBm
bG9hdCBjb25lRnVsbExpZ2h0OworICAgIGZsb2F0IGNvbmVDdXRPZmZSYW5nZTsKKyAgICBmbG9h
dCBjb25zdE9uZTsKKworICAgIGZsb2F0IGxpZ2h0WDsKKyAgICBmbG9hdCBsaWdodFk7CisgICAg
ZmxvYXQgbGlnaHRaOworICAgIGZsb2F0IHBhZGRpbmcyOworCisgICAgZmxvYXQgZGlyZWN0aW9u
WDsKKyAgICBmbG9hdCBkaXJlY3Rpb25ZOworICAgIGZsb2F0IGRpcmVjdGlvblo7CisgICAgZmxv
YXQgcGFkZGluZzM7CisKKyAgICBmbG9hdCBjb2xvclJlZDsKKyAgICBmbG9hdCBjb2xvckdyZWVu
OworICAgIGZsb2F0IGNvbG9yQmx1ZTsKKyAgICBmbG9hdCBwYWRkaW5nNDsKK307CisKK3N0cnVj
dCBQYWludGluZ0RhdGFGb3JOZW9uIHsKKyAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHM7CisgICAg
aW50IHdpZHRoRGVjcmVhc2VkQnlUd287CisgICAgaW50IGhlaWdodERlY3JlYXNlZEJ5VHdvOwor
ICAgIC8vIENvbWJpbmF0aW9uIG9mIEZMQUcgY29uc3RhbnRzIGFib3ZlLgorICAgIGludCBmbGFn
czsKKyAgICBpbnQgc3BlY3VsYXJFeHBvbmVudDsKKyAgICBpbnQgY29uZUV4cG9uZW50OworICAg
IEZsb2F0QXJndW1lbnRzKiBmbG9hdEFyZ3VtZW50czsKKyAgICBzaG9ydCogcGFpbnRpbmdDb25z
dGFudHM7Cit9OworCitzdGF0aWMgc2hvcnQgcGFpbnRpbmdDb25zdGFudHNbOCAqIDNdIF9fYXR0
cmlidXRlX18oKGFsaWduZWQoMHgxMCkpKSA9IHsKKyAgICAvLyBBbHBoYSBjb2VmZmljaWVudHMu
CisgICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAtMSwKKyAgICAwLCAtMSwgLTIsIC0xLCAwLCAx
LCAyLCAxLAorICAgIC8vIFJlbWFwcGluZyBpbmRpY2llcy4KKyAgICAweDBmMGUsIDB4MDMwMiwg
MHgwNTA0LCAweDA3MDYsCisgICAgMHgwYjBhLCAweDEzMTIsIDB4MTUxNCwgMHgxNzE2LAorfTsK
KworI2RlZmluZSBBU1NUUklORyhzdHIpICNzdHIKKyNkZWZpbmUgVE9TVFJJTkcodmFsdWUpIEFT
U1RSSU5HKHZhbHVlKQorCisjZGVmaW5lIFBJWEVMU19PRkZTRVQgVE9TVFJJTkcoMCkKKyNkZWZp
bmUgV0lEVEhfT0ZGU0VUIFRPU1RSSU5HKDQpCisjZGVmaW5lIEhFSUdIVF9PRkZTRVQgVE9TVFJJ
TkcoOCkKKyNkZWZpbmUgRkxBR1NfT0ZGU0VUIFRPU1RSSU5HKDEyKQorI2RlZmluZSBTUEVDVUxB
Ul9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMTYpCisjZGVmaW5lIENPTkVfRVhQT05FTlRfT0ZG
U0VUIFRPU1RSSU5HKDIwKQorI2RlZmluZSBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUIFRPU1RSSU5H
KDI0KQorI2RlZmluZSBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgVE9TVFJJTkcoMjgpCisjZGVm
aW5lIE5MICJcbiIKKworZXh0ZXJuICJDIiB7Cit2b2lkIG5lb25EcmF3TGlnaHRpbmcoUGFpbnRp
bmdEYXRhRm9yTmVvbiopOworfQorCisvLyBSZWdpc3RlciBhbGxvY2F0aW9uCisjZGVmaW5lIFBB
SU5USU5HX0RBVEFfUiAgICAgICAicjExIgorI2RlZmluZSBSRVNFVF9XSURUSF9SICAgICAgICAg
UEFJTlRJTkdfREFUQV9SCisjZGVmaW5lIFBJWEVMU19SICAgICAgICAgICAgICAicjQiCisjZGVm
aW5lIFdJRFRIX1IgICAgICAgICAgICAgICAicjUiCisjZGVmaW5lIEhFSUdIVF9SICAgICAgICAg
ICAgICAicjYiCisjZGVmaW5lIEZMQUdTX1IgICAgICAgICAgICAgICAicjciCisjZGVmaW5lIFNQ
RUNVTEFSX0VYUE9ORU5UX1IgICAicjgiCisjZGVmaW5lIENPTkVfRVhQT05FTlRfUiAgICAgICAi
cjEwIgorI2RlZmluZSBTQ0FOTElORV9SICAgICAgICAgICAgInIxMiIKKworI2RlZmluZSBUTVAx
X1EgICAgICAgICAgICAgICAgInEwIgorI2RlZmluZSBUTVAxX0QwICAgICAgICAgICAgICAgImQw
IgorI2RlZmluZSBUTVAxX1MwICAgICAgICAgICAgICAgInMwIgorI2RlZmluZSBUTVAxX1MxICAg
ICAgICAgICAgICAgInMxIgorI2RlZmluZSBUTVAxX0QxICAgICAgICAgICAgICAgImQxIgorI2Rl
ZmluZSBUTVAxX1MyICAgICAgICAgICAgICAgInMyIgorI2RlZmluZSBUTVAxX1MzICAgICAgICAg
ICAgICAgInMzIgorI2RlZmluZSBUTVAyX1EgICAgICAgICAgICAgICAgInExIgorI2RlZmluZSBU
TVAyX0QwICAgICAgICAgICAgICAgImQyIgorI2RlZmluZSBUTVAyX1MwICAgICAgICAgICAgICAg
InM0IgorI2RlZmluZSBUTVAyX1MxICAgICAgICAgICAgICAgInM1IgorI2RlZmluZSBUTVAyX0Qx
ICAgICAgICAgICAgICAgImQzIgorI2RlZmluZSBUTVAyX1MyICAgICAgICAgICAgICAgInM2Igor
I2RlZmluZSBUTVAyX1MzICAgICAgICAgICAgICAgInM3IgorI2RlZmluZSBUTVAzX1EgICAgICAg
ICAgICAgICAgInEyIgorI2RlZmluZSBUTVAzX0QwICAgICAgICAgICAgICAgImQ0IgorI2RlZmlu
ZSBUTVAzX1MwICAgICAgICAgICAgICAgInM4IgorI2RlZmluZSBUTVAzX1MxICAgICAgICAgICAg
ICAgInM5IgorI2RlZmluZSBUTVAzX0QxICAgICAgICAgICAgICAgImQ1IgorI2RlZmluZSBUTVAz
X1MyICAgICAgICAgICAgICAgInMxMCIKKyNkZWZpbmUgVE1QM19TMyAgICAgICAgICAgICAgICJz
MTEiCisKKyNkZWZpbmUgQ09TSU5FX09GX0FOR0xFICAgICAgICJzMTIiCisjZGVmaW5lIFBPV0Zf
SU5UX1MgICAgICAgICAgICAiczEzIgorI2RlZmluZSBQT1dGX0ZSQUNfUyAgICAgICAgICAgInMx
NCIKKyNkZWZpbmUgU1BPVF9DT0xPUl9RICAgICAgICAgICJxNCIKKworLy8gQmVjYXVzZSBvZiBW
TUlOIGFuZCBWTUFYIENPTlNUX1pFUk9fUyBhbmQgQ09OU1RfT05FX1MKKy8vIG11c3QgYmUgcGxh
Y2VkIG9uIHRoZSBzYW1lIHNpZGUgb2YgdGhlIGRvdWJsZSB2ZWN0b3IKKworLy8gQ3VycmVudCBw
aXhlbCBwb3NpdGlvbgorI2RlZmluZSBQT1NJVElPTl9RICAgICAgICAgICAgInE1IgorI2RlZmlu
ZSBQT1NJVElPTl9YX1MgICAgICAgICAgInMyMCIKKyNkZWZpbmUgUE9TSVRJT05fWV9TICAgICAg
ICAgICJzMjEiCisjZGVmaW5lIFBPU0lUSU9OX1pfUyAgICAgICAgICAiczIyIgorI2RlZmluZSBD
T05TVF9aRVJPX0hJX0QgICAgICAgImQxMSIKKyNkZWZpbmUgQ09OU1RfWkVST19TICAgICAgICAg
ICJzMjMiCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICBWYXJp
YWJsZSBhcmd1bWVudHMKKy8vIE1pc2MgYXJndW1lbnRzCisjZGVmaW5lIFJFQUQxX1JBTkdFICAg
ICAgICAgICAiZDEyLWQxNSIKKyNkZWZpbmUgUkVBRDJfUkFOR0UgICAgICAgICAgICJkMTYtZDE5
IgorI2RlZmluZSBSRUFEM19SQU5HRSAgICAgICAgICAgImQyMC1kMjEiCisKKyNkZWZpbmUgU0NB
TEVfUyAgICAgICAgICAgICAgICJzMjQiCisjZGVmaW5lIFNDQUxFX0RJVjRfUyAgICAgICAgICAi
czI1IgorI2RlZmluZSBESUZGVVNFX0NPTlNUX1MgICAgICAgInMyNiIKKworLy8gTGlnaHQgc291
cmNlIHBvc2l0aW9uCisjZGVmaW5lIENPTkVfQ1VUX09GRl9TICAgICAgICAiczI4IgorI2RlZmlu
ZSBDT05FX0ZVTExfTElHSFRfUyAgICAgInMyOSIKKyNkZWZpbmUgQ09ORV9DVVRfT0ZGX1JBTkdF
X1MgICJzMzAiCisjZGVmaW5lIENPTlNUX09ORV9ISV9EICAgICAgICAiZDE1IgorI2RlZmluZSBD
T05TVF9PTkVfUyAgICAgICAgICAgInMzMSIKKworI2RlZmluZSBMSUdIVF9RICAgICAgICAgICAg
ICAgInE4IgorI2RlZmluZSBESVJFQ1RJT05fUSAgICAgICAgICAgInE5IgorI2RlZmluZSBDT0xP
Ul9RICAgICAgICAgICAgICAgInExMCIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vICAgIENvbnN0YW50IGNvZWZmaWNpZW50cworI2RlZmluZSBSRUFENF9SQU5HRSAgICAg
ICAgICAgImQyMi1kMjUiCisjZGVmaW5lIFJFQUQ1X1JBTkdFICAgICAgICAgICAiZDI2LWQyNyIK
KworI2RlZmluZSBBTFBIQVhfUSAgICAgICAgICAgICAgInExMSIKKyNkZWZpbmUgQUxQSEFZX1Eg
ICAgICAgICAgICAgICJxMTIiCisjZGVmaW5lIFJFTUFQWF9EICAgICAgICAgICAgICAiZDI2Igor
I2RlZmluZSBSRU1BUFlfRCAgICAgICAgICAgICAgImQyNyIKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworI2RlZmluZSBBTExfUk9XU19EICAgICAgICAgICAgIntkMjgsZDI5
LGQzMH0iCisjZGVmaW5lIFRPUF9ST1dfRCAgICAgICAgICAgICAiZDI4IgorI2RlZmluZSBNSURE
TEVfUk9XX0QgICAgICAgICAgImQyOSIKKyNkZWZpbmUgQk9UVE9NX1JPV19EICAgICAgICAgICJk
MzAiCisKKyNkZWZpbmUgR0VUX0xFTkdUSChzb3VyY2UsIHRlbXApIFwKKyAgICAidm11bC5mMzIg
IiB0ZW1wIyNfUSAiLCAiIHNvdXJjZSMjX1EgIiwgIiBzb3VyY2UjI19RIE5MIFwKKyAgICAidmFk
ZC5mMzIgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAjI19TMCAiLCAiIHRlbXAjI19TMSBOTCBcCisg
ICAgInZhZGQuZjMyICIgc291cmNlIyNfUzMgIiwgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAjI19T
MiBOTCBcCisgICAgInZzcXJ0LmYzMiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMgTkwK
KworLy8gZGVzdGluYXRpb24jI19TMyBjYW4gY29udGFpbiB0aGUgbXVsdGlwbHkgb2YgbGVuZ3Ro
LgorI2RlZmluZSBET1RfUFJPRFVDVChkZXN0aW5hdGlvbiwgc291cmNlMSwgc291cmNlMikgXAor
ICAgICJ2bXVsLmYzMiAiIGRlc3RpbmF0aW9uIyNfUSAiLCAiIHNvdXJjZTEjI19RICIsICIgc291
cmNlMiMjX1EgTkwgXAorICAgICJ2YWRkLmYzMiAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0
aW5hdGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24jI19TMSBOTCBcCisgICAgInZhZGQuZjMyICIg
ZGVzdGluYXRpb24jI19TMCAiLCAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMj
X1MyIE5MCisKKyNkZWZpbmUgTVVMVElQTFlfQllfRElGRlVTRV9DT05TVChub3JtYWxWZWN0b3JM
ZW5ndGgsIGRvdFByb2R1Y3RMZW5ndGgpIFwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NU
UklORyhGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMSkgTkwgXAorICAgICJ2bXVsZXEuZjMyICIgVE1Q
Ml9TMSAiLCAiIERJRkZVU0VfQ09OU1RfUyAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0aCBOTCBcCisg
ICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIGRvdFByb2R1Y3RMZW5n
dGggTkwgXAorICAgICJ2ZGl2bmUuZjMyICIgVE1QMl9TMSAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0
aCAiLCAiIGRvdFByb2R1Y3RMZW5ndGggTkwKKworI2RlZmluZSBQT1dGX1NRUih2YWx1ZSwgZXhw
b25lbnQsIGN1cnJlbnQsIHJlbWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBB
U1NUUklORyhjdXJyZW50KSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVl
ICIsICIgUE9XRl9JTlRfUyBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RSSU5H
KHJlbWFpbmluZykgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgUE9XRl9JTlRfUyAiLCAiIFBPV0Zf
SU5UX1MgIiwgIiBQT1dGX0lOVF9TIE5MCisKKyNkZWZpbmUgUE9XRl9TUVJUKHZhbHVlLCBleHBv
bmVudCwgY3VycmVudCwgcmVtYWluaW5nKSBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFT
U1RSSU5HKHJlbWFpbmluZykgTkwgXAorICAgICJ2c3FydG5lLmYzMiAiIFBPV0ZfRlJBQ19TICIs
ICIgUE9XRl9GUkFDX1MgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklORyhj
dXJyZW50KSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIsICIgUE9X
Rl9GUkFDX1MgTkwKKworI2RlZmluZSBQT1dGKHZhbHVlLCBleHBvbmVudCkgXAorICAgICJ0c3Qg
IiBleHBvbmVudCAiLCAjMHhmYzAiIE5MIFwKKyAgICAidm1vdm5lLmYzMiAiIFBPV0ZfSU5UX1Mg
IiwgIiB2YWx1ZSBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMweDAzZiIgTkwgXAorICAg
ICJ2bW92bmUuZjMyICIgUE9XRl9GUkFDX1MgIiwgIiB2YWx1ZSBOTCBcCisgICAgInZtb3YuZjMy
ICIgdmFsdWUgIiwgIiBDT05TVF9PTkVfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSKHZhbHVl
LCBleHBvbmVudCwgMHgwNDAsIDB4ZjgwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50
LCAweDA4MCwgMHhmMDApIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MTAwLCAw
eGUwMCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgyMDAsIDB4YzAwKSBcCisg
ICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDQwMCwgMHg4MDApIFwKKyAgICAidHN0ICIg
ZXhwb25lbnQgIiwgIzB4ODAwIiBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZh
bHVlICIsICIgUE9XRl9JTlRfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhw
b25lbnQsIDB4MjAsIDB4M2YpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDEw
LCAweDFmKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwOCwgMHgwZikgXAor
ICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDQsIDB4MDcpIFwKKyAgICBQT1dGX1NR
UlQodmFsdWUsIGV4cG9uZW50LCAweDAyLCAweDAzKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBl
eHBvbmVudCwgMHgwMSwgMHgwMSkKKworYXNtICgKKyIuZ2xvYmwgIiBUT1NUUklORyhuZW9uRHJh
d0xpZ2h0aW5nKSBOTAorVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCisgICAgLy8g
TXVzdCBiZSBhbGlnbmVkIHRvIDggYnl0ZXMuCisgICAgInN0bWRiIHNwISwge3I0LXI4LCByMTAs
IHIxMSwgbHJ9IiBOTAorICAgICJ2c3RtZGIgc3AhLCB7ZDgtZDE1fSIgTkwKKyAgICAibW92ICIg
UEFJTlRJTkdfREFUQV9SICIsIHIwIiBOTAorICAgICJsZHIgcjAsIFsiIFBBSU5USU5HX0RBVEFf
UiAiLCAjIiBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgcjEsIFsiIFBB
SU5USU5HX0RBVEFfUiAiLCAjIiBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisgICAg
ImxkciAiIFBJWEVMU19SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBQSVhFTFNfT0ZGU0VU
ICJdIiBOTAorICAgICJsZHIgIiBXSURUSF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBX
SURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIEhFSUdIVF9SICIsIFsiIFBBSU5USU5HX0RB
VEFfUiAiLCAjIiBIRUlHSFRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBGTEFHU19SICIsIFsi
IFBBSU5USU5HX0RBVEFfUiAiLCAjIiBGTEFHU19PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNQ
RUNVTEFSX0VYUE9ORU5UX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFNQRUNVTEFSX0VY
UE9ORU5UX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgQ09ORV9FWFBPTkVOVF9SICIsIFsiIFBB
SU5USU5HX0RBVEFfUiAiLCAjIiBDT05FX0VYUE9ORU5UX09GRlNFVCAiXSIgTkwKKyAgICAidmxk
MS5mMzIgeyAiIFJFQUQxX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuZjMyIHsgIiBS
RUFEMl9SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLmYzMiB7ICIgUkVBRDNfUkFOR0Ug
IiB9LCBbcjBdISIgTkwKKyAgICAidmxkMS5zMTYgeyIgUkVBRDRfUkFOR0UgIn0sIFtyMV0hIiBO
TAorICAgICJ2bGQxLnMxNiB7IiBSRUFENV9SQU5HRSAifSwgW3IxXSEiIE5MCisgICAgIm1vdiAi
IFNDQU5MSU5FX1IgIiwgIiBXSURUSF9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRkICIgU0NBTkxJ
TkVfUiAiLCAiIFNDQU5MSU5FX1IgIiwgIzgiIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIg
UElYRUxTX1IgIiwgIiBTQ0FOTElORV9SIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIgUElY
RUxTX1IgIiwgIzMiIE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInZtb3YuZjMyICIgQ09O
U1RfWkVST19TICIsIHIwIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1lfUyAiLCAiIENP
TlNUX09ORV9TIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUE9U
X0xJR0hUKSBOTAorICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAiIENPTE9SX1EgTkwK
KyAgICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKKworIi5tYWlubG9vcDoi
IE5MCisgICAgIm1vdiByMywgIzMiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWF9TICIs
ICIgQ09OU1RfT05FX1MgTkwKKworIi5zY2FubGluZToiIE5MCisgICAgLy8gUmVhZGluZyB0aGUg
bmV4dCBwaXhlbCB0byB0aGUgUk9XIGRhdGEuCisgICAgImxkcmIgcjAsIFsiIFBJWEVMU19SICIs
IC0iIFNDQU5MSU5FX1IgIl0iIE5MCisgICAgImxkcmIgcjEsIFsiIFBJWEVMU19SICIsICsiIFND
QU5MSU5FX1IgIl0iIE5MCisgICAgImxkcmIgcjIsIFsiIFBJWEVMU19SICJdLCAjNCIgTkwKKyAg
ICAidmV4dC5zMTYgIiBUT1BfUk9XX0QgIiwgIiBUT1BfUk9XX0QgIiwgIiBUT1BfUk9XX0QgIiwg
IzMiIE5MCisgICAgInZleHQuczE2ICIgTUlERExFX1JPV19EICIsICIgTUlERExFX1JPV19EICIs
ICIgTUlERExFX1JPV19EICIsICMzIiBOTAorICAgICJ2ZXh0LnMxNiAiIEJPVFRPTV9ST1dfRCAi
LCAiIEJPVFRPTV9ST1dfRCAiLCAiIEJPVFRPTV9ST1dfRCAiLCAjMyIgTkwKKyAgICAidm1vdi5z
MTYgIiBUT1BfUk9XX0QgIlsxXSwgcjAiIE5MCisgICAgInZtb3YuczE2ICIgTUlERExFX1JPV19E
ICJbMV0sIHIyIiBOTAorICAgICJ2bW92LnMxNiAiIEJPVFRPTV9ST1dfRCAiWzFdLCByMSIgTkwK
KworICAgICJzdWJzIHIzLCByMywgIzEiIE5MCisgICAgImJuZSAuc2NhbmxpbmUiIE5MCisKKyAg
ICAvLyBMaWdodCB2ZWN0b3IgZ29lcyB0byBUTVAxX1EuCisgICAgInRzdCAiIEZMQUdTX1IgIiwg
IyIgVE9TVFJJTkcoRkxBR19QT0lOVF9MSUdIVCB8IEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAi
YmVxIC5kaXN0YW50TGlnaHQiIE5MCisKKyAgICAidm1vdi5zMTYgcjMsICIgTUlERExFX1JPV19E
ICJbMl0iIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWl9TICIsIHIzIiBOTAorICAgICJ2
Y3Z0LmYzMi5zMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgTkwKKyAgICAidm11
bC5mMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgIiwgIiBTQ0FMRV9TIE5MCisK
KyAgICAidnN1Yi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RICIsICIgUE9TSVRJT05fUSBOTAor
ICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMikKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRP
U1RSSU5HKEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYm5lIC5jb3NpbmVPZkFuZ2xlIiBOTAor
Ii52aXNpYmxlUGl4ZWw6IiBOTAorCisgICAgLy8gTW92aW5nIHRoZSA4IGFscGhhIHZhbHVlIHRv
IEFMUEhBLgorICAgICJ2dGJsLjggIiBUTVAzX0QwICIsICIgQUxMX1JPV1NfRCAiLCAiIFJFTUFQ
WF9EIE5MCisgICAgInZ0YmwuOCAiIFRNUDNfRDEgIiwgIiBBTExfUk9XU19EICIsICIgUkVNQVBZ
X0QgTkwKKworICAgIC8vIE11bHRpcGx5IGJ5IEFMUEhBWCBhbmQgQUxQSEFZLgorICAgICJ2bXVs
LnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAiIEFMUEhBWF9RIE5MCisgICAgInZwYWRkLnMx
NiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYg
IiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIg
VE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIwLCAi
IFRNUDJfRDAgIlswXSIgTkwKKworICAgICJ2bXVsLnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAi
LCAiIEFMUEhBWV9RIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIs
ICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAi
IFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBU
TVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIxLCAiIFRNUDJfRDAgIlswXSIgTkwKKworICAgIC8v
IENhbGN1bGF0aW5nIGxpZ2h0LgorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZM
QUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYmVxIC5lbmRMaWdodCIgTkwKKworICAgICJ2bmVnLmYz
MiAiIFRNUDNfUzEgIiwgIiBDT1NJTkVfT0ZfQU5HTEUgTkwKKyAgICAidHN0ICIgRkxBR1NfUiAi
LCAjIiBUT1NUUklORyhGTEFHX0NPTkVfRVhQT05FTlRfSVNfMSkgTkwKKyAgICAiYmVxIC5jb25l
RXhwUG93ZiIgTkwKKyIuY29uZUV4cFBvd2ZGaW5pc2hlZDoiIE5MCisKKyAgICAidmNtcC5mMzIg
IiBDT1NJTkVfT0ZfQU5HTEUgIiwgIiBDT05FX0ZVTExfTElHSFRfUyBOTAorICAgICJmbXN0YXQi
IE5MCisgICAgImJoaSAuY3V0T2ZmIiBOTAorIi5jdXRPZmZGaW5pc2hlZDoiIE5MCisKKyAgICAi
dm1pbi5mMzIgIiBUTVAzX0QwICIsICIgVE1QM19EMCAiLCAiIENPTlNUX09ORV9ISV9EIE5MCisg
ICAgInZtdWwuZjMyICIgQ09MT1JfUSAiLCAiIFNQT1RfQ09MT1JfUSAiLCAiIFRNUDNfRDAgIlsx
XSIgTkwKKworIi5lbmRMaWdodDoiIE5MCisgICAgLy8gcjAgY29udGFpbnMgbm9ybWFsVmVjdG9y
IFguCisgICAgLy8gcjEgY29udGFpbnMgbm9ybWFsVmVjdG9yIFkuCisgICAgLy8gVE1QMV9RIGNv
bnRhaW5zIHRoZSBsaWdodCB2ZWN0b3IgYW5kIGl0cyBsZW5ndGguCisgICAgLy8gQ09MT1JfUSBj
b250YWlucyB0aGUgY29sb3Igb2YgdGhlIGxpZ2h0IHZlY3Rvci4KKworICAgIC8vIFRlc3Rpbmcg
Ym90aCByMCBhbmQgcjEgYXJlIHplcm8gKE5vcm1hbCB2ZWN0b3IgaXMgKDAsIDAsIDEpKS4KKyAg
ICAib3JycyByMiwgcjAsIHIxIiBOTAorICAgICJibmUgLm5vcm1hbFZlY3RvcklzTm9uWmVybyIg
TkwKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfTElH
SFQpIE5MCisgICAgImJuZSAuc3BlY3VsYXJMaWdodDEiIE5MCisKKyAgICBNVUxUSVBMWV9CWV9E
SUZGVVNFX0NPTlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxj
dWxhdGVkIiBOTAorCisiLnNwZWN1bGFyTGlnaHQxOiIgTkwKKyAgICAvLyBDYWxjdWxhdGluZyBz
cGVjdWxhciBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICAidmFkZC5mMzIgIiBUTVAxX1My
ICIsICIgVE1QMV9TMiAiLCAiIFRNUDFfUzMgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDEsIFRNUDIp
CisKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0VYUE9O
RU5UX0lTXzEpIE5MCisgICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMV9TMiAiLCAi
IFRNUDFfUzMgTkwKKyAgICAiYmVxIC5zcGVjdWxhckV4cFBvd2YiIE5MCisKKyAgICBNVUxUSVBM
WV9CWV9ESUZGVVNFX0NPTlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5n
dGhDYWxjdWxhdGVkIiBOTAorCisiLm5vcm1hbFZlY3RvcklzTm9uWmVybzoiIE5MCisgICAgLy8g
Q2FsY3VsYXRpbmcgc3BlY3VsYXIgbGlnaHRpbmcgbGlnaHQgc3RyZW5ndGguCisgICAgInZtb3Yu
czMyICIgVE1QMl9TMCAiLCByMCIgTkwKKyAgICAidmN2dC5mMzIuczMyICIgVE1QMl9TMCAiLCAi
IFRNUDJfUzAgTkwKKyAgICAidm11bC5mMzIgIiBUTVAyX1MwICIsICIgVE1QMl9TMCAiLCAiIFND
QUxFX0RJVjRfUyBOTAorICAgICJ2bW92LnMzMiAiIFRNUDJfUzEgIiwgcjEiIE5MCisgICAgInZj
dnQuZjMyLnMzMiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxIE5MCisgICAgInZtdWwuZjMyICIgVE1Q
Ml9TMSAiLCAiIFRNUDJfUzEgIiwgIiBTQ0FMRV9ESVY0X1MgTkwKKyAgICAidm1vdi5mMzIgIiBU
TVAyX1MyICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDIsIFRNUDMpCisK
KyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0xJR0hUKSBO
TAorICAgICJibmUgLnNwZWN1bGFyTGlnaHQyIiBOTAorCisgICAgLy8gQ2FsY3VsYXRpbmcgZGlm
ZnVzZSBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAy
LCBUTVAxKQorICAgIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykK
KyAgICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCisKKyIuc3BlY3VsYXJMaWdodDI6
IiBOTAorICAgIC8vIENhbGN1bGF0aW5nIHNwZWN1bGFyIGxpZ2h0aW5nIGxpZ2h0IHN0cmVuZ3Ro
LgorICAgICJ2YWRkLmYzMiAiIFRNUDFfUzIgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBOTAor
ICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMykKKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAyLCBU
TVAxKQorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9F
WFBPTkVOVF9JU18xKSBOTAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDNfUzAg
IiwgIiBUTVAzX1MzIE5MCisgICAgImJlcSAuc3BlY3VsYXJFeHBQb3dmIiBOTAorICAgIE1VTFRJ
UExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykKKworIi5saWdodFN0cmVuZ3Ro
Q2FsY3VsYXRlZDoiIE5MCisgICAgLy8gVE1QMl9TMSBjb250YWlucyB0aGUgbGlnaHQgc3RyZW5n
dGguCisgICAgInZtYXguZjMyICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBDT05TVF9aRVJP
X0hJX0QgTkwKKyAgICAidm1pbi5mMzIgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIENPTlNU
X09ORV9ISV9EIE5MCisgICAgInZtdWwuZjMyICIgVE1QM19RICIsICIgQ09MT1JfUSAiLCAiIFRN
UDJfRDAgIlsxXSIgTkwKKyAgICAidmN2dC51MzIuZjMyICIgVE1QM19RICIsICIgVE1QM19RIE5M
CisgICAgInZtb3YudTMyIHIyLCByMywgIiBUTVAzX1MwICIsICIgVE1QM19TMSBOTAorICAgICJz
dHJiIHIyLCBbIiBQSVhFTFNfUiAiLCAjLTExXSIgTkwKKyAgICAic3RyYiByMywgWyIgUElYRUxT
X1IgIiwgIy0xMF0iIE5MCisgICAgInZtb3YudTMyIHIyLCAiIFRNUDNfUzIgTkwKKyAgICAic3Ry
YiByMiwgWyIgUElYRUxTX1IgIiwgIy05XSIgTkwKKworICAgIC8vIENvbnRpbnVlIHNjYW5saW5l
LgorIi5pbnZpc2libGVQaXhlbDoiIE5MCisgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWF9TICIs
ICIgQ09OU1RfT05FX1MgTkwKKyAgICAibW92IHIzLCAjMSIgTkwKKyAgICAic3VicyAiIFdJRFRI
X1IgIiwgIiBXSURUSF9SICIsICMxIiBOTAorICAgICJibmUgLnNjYW5saW5lIiBOTAorCisgICAg
Ly8gTmV4dCBsaW5lCisgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWV9TICIsICIgQ09OU1RfT05F
X1MgTkwKKyAgICAibW92ICIgV0lEVEhfUiAiLCAiIFJFU0VUX1dJRFRIX1IgTkwKKyAgICAic3Vi
cyAiIEhFSUdIVF9SICIsICIgSEVJR0hUX1IgIiwgIzEiIE5MCisgICAgImJuZSAubWFpbmxvb3Ai
IE5MCisKKyAgICAidmxkbWlhIHNwISwge2Q4LWQxNX0iIE5MCisgICAgImxkbWlhIHNwISwge3I0
LXI4LCByMTAsIHIxMSwgcGN9IiBOTAorCisiLmRpc3RhbnRMaWdodDoiIE5MCisgICAgInZtb3Yu
ZjMyICIgVE1QMV9RICIsICIgTElHSFRfUSBOTAorICAgICJiIC52aXNpYmxlUGl4ZWwiIE5MCisK
KyIuY29zaW5lT2ZBbmdsZToiIE5MCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMSwgRElSRUNU
SU9OKQorICAgICJ2ZGl2LmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIFRNUDNfUzAgIiwgIiBU
TVAxX1MzIE5MCisgICAgInZjbXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgQ09ORV9DVVRf
T0ZGX1MgTkwKKyAgICAiZm1zdGF0IiBOTAorICAgICJibHMgLnZpc2libGVQaXhlbCIgTkwKKyAg
ICAibW92IHIwLCAjMCIgTkwKKyAgICAic3RyaCByMCwgWyIgUElYRUxTX1IgIiwgIy0xMV0iIE5M
CisgICAgInN0cmIgcjAsIFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisgICAgImIgLmludmlzaWJs
ZVBpeGVsIiBOTAorCisiLmN1dE9mZjoiIE5MCisgICAgInZzdWIuZjMyICIgVE1QM19TMCAiLCAi
IENPTkVfQ1VUX09GRl9TICIsICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInZkaXYuZjMyICIg
VE1QM19TMCAiLCAiIFRNUDNfUzAgIiwgIiBDT05FX0NVVF9PRkZfUkFOR0VfUyBOTAorICAgICJ2
bXVsLmYzMiAiIFRNUDNfUzEgIiwgIiBUTVAzX1MxICIsICIgVE1QM19TMCBOTAorICAgICJiIC5j
dXRPZmZGaW5pc2hlZCIgTkwKKworIi5jb25lRXhwUG93ZjoiIE5MCisgICAgUE9XRihUTVAzX1Mx
LCBDT05FX0VYUE9ORU5UX1IpCisgICAgImIgLmNvbmVFeHBQb3dmRmluaXNoZWQiIE5MCisKKyIu
c3BlY3VsYXJFeHBQb3dmOiIgTkwKKyAgICBQT1dGKFRNUDJfUzEsIFNQRUNVTEFSX0VYUE9ORU5U
X1IpCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19ESUZGVVNFX0NPTlNU
X0lTXzEpIE5MCisgICAgInZtdWxlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIERJ
RkZVU0VfQ09OU1RfUyBOTAorICAgICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKyk7
Ci0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82621</attachid>
            <date>2011-02-16 05:54:02 -0800</date>
            <delta_ts>2011-02-17 03:48:19 -0800</delta_ts>
            <desc>updated draft patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>27720</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA1ZmRiNjI5OTRiYWNkZmM0OGE3ZTk2NTVmZGIzMjViOGUwODk0MGVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAxNiBGZWIgMjAxMSAxNDo1MTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGxp
Z2h0LW5lb24KCi0tLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVM
aWdodGluZy5jcHAgICAgICAgfCAgMTEwICsrKysrKwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggfCAgICA1ICsKIC4uLi9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwICAgIHwgIDQxMCArKysrKysrKysrKysrKysrKysr
KwogLi4uL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oICAgICAgfCAg
IDkyICsrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDYyMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVv
blNJTUQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMzM4NWY0OC4uNDk5ZmY0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cmkKQEAgLTk1LDYgKzk1LDcgQEAgV0VCQ09SRV9JTkNMVURFUEFUSCA9IFwKICAgICAkJFNPVVJD
RV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpbyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MgXAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMgXAorICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vbW9jayBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDVjODIwNDAuLmMzNmIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDE1
LDYgKzIwMTUsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0xpZ2h0U291cmNlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxw
aGEuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggXAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBc
CkBAIC0zMjcxLDcgKzMyNzIsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0x
KSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBc
Ci0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBcCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAK
IH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApp
bmRleCBlYzFjYTg4Li42MzM1ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKQEAgLTMwLDYgKzMwLDEyIEBA
CiAjaW5jbHVkZSAiRkVMaWdodGluZy5oIgogCiAjaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKKyNp
bmNsdWRlICJQb2ludExpZ2h0U291cmNlLmgiCisjaW5jbHVkZSAiU3BvdExpZ2h0U291cmNlLmgi
CisKKyNpZiBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pCisjaW5jbHVkZSAiRkVMaWdodGlu
Z05lb25TSU1ELmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMDEsNiAr
MzA3LDkgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMs
IGludCB3aWR0aCwgaW50IGhlaWdodCkKIAogICAgIGlmICh3aWR0aCA+PSAzICYmIGhlaWdodCA+
PSAzKSB7CiAgICAgICAgIC8vIEludGVyaW9yIHBpeGVscworI2lmIENQVShBUk0pICYmIEVOQUJM
RShBUk1fTkVPTikKKyAgICAgICAgZHJhd0ludGVyaW9yUGl4ZWxzKGRhdGEsIHBhaW50aW5nRGF0
YSk7CisjZWxzZQogICAgICAgICBmb3IgKGludCB5ID0gMTsgeSA8IGRhdGEuaGVpZ2h0RGVjcmVh
c2VkQnlPbmU7ICsreSkgewogICAgICAgICAgICAgb2Zmc2V0ID0geSAqIGRhdGEud2lkdGhNdWx0
aXBsaWVkQnlQaXhlbFNpemUgKyBjUGl4ZWxTaXplOwogICAgICAgICAgICAgZm9yIChpbnQgeCA9
IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNp
emUpIHsKQEAgLTMwOCw2ICszMTcsNyBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhC
eXRlQXJyYXkqIHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgICAgICAgICAgICAg
IGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4LCB5LCBjRmFjdG9y
MWRpdjQsIGNGYWN0b3IxZGl2NCwgbm9ybWFsVmVjdG9yKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgaW50IGxhc3RQaXhlbCA9IGRhdGEud2lkdGhNdWx0
aXBsaWVkQnlQaXhlbFNpemUgKiBoZWlnaHQ7CkBAIC0zNTQsNiArMzY0LDEwNiBAQCB2b2lkIEZF
TGlnaHRpbmc6OmFwcGx5KCkKICAgICBkcmF3TGlnaHRpbmcoc3JjUGl4ZWxBcnJheSwgYWJzb2x1
dGVQYWludFNpemUud2lkdGgoKSwgYWJzb2x1dGVQYWludFNpemUuaGVpZ2h0KCkpOwogfQogCisj
aWYgQ1BVKEFSTSkgJiYgRU5BQkxFKEFSTV9ORU9OKQorCitzdGF0aWMgaW50IGdldFBvd2VyQ29l
ZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KQoreworICAgIGludCBpLCByZXN1bHQ7CisKKyAgICBp
ZiAoZXhwb25lbnQgPCAwKQorICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsKKwor
ICAgIGlmIChleHBvbmVudCA+IDYzLjk5KQorICAgICAgICBleHBvbmVudCA9IDYzLjk5OworCisg
ICAgZXhwb25lbnQgLz0gNjQ7CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGkgPSAxMTsgaSA+
PSAwOyAtLWkpIHsKKyAgICAgICAgZXhwb25lbnQgKj0gMjsKKyAgICAgICAgaWYgKGV4cG9uZW50
ID49IDEpIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7CisgICAgICAgICAgICBleHBv
bmVudCAtPSAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Zv
aWQgRkVMaWdodGluZzo6ZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGln
aHRTb3VyY2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIFBhaW50aW5nRGF0
YUZvck5lb24gbmVvbkRhdGE7CisgICAgY2hhciBidWZmZXJbc2l6ZW9mKEZsb2F0QXJndW1lbnRz
KSArIDE2XTsKKyAgICBGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uKiBmbG9hdEFyZ3Vt
ZW50cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8RmxvYXRBcmd1bWVudHMqPigocmVpbnRlcnByZXRfY2Fz
dDxsb25nPihidWZmZXIpICsgMTUpICYgfjB4Zik7CisKKyAgICBuZW9uRGF0YS5waXhlbHMgPSBk
YXRhLnBpeGVscy0+ZGF0YSgpOworICAgIG5lb25EYXRhLndpZHRoRGVjcmVhc2VkQnlUd28gPSBk
YXRhLndpZHRoRGVjcmVhc2VkQnlPbmUgLSAxOworICAgIG5lb25EYXRhLmhlaWdodERlY3JlYXNl
ZEJ5VHdvID0gZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZSAtIDE7CisgICAgbmVvbkRhdGEuZmxh
Z3MgPSAwOworICAgIG5lb25EYXRhLnNwZWN1bGFyRXhwb25lbnQgPSAwOworICAgIG5lb25EYXRh
LmNvbmVFeHBvbmVudCA9IDA7CisgICAgbmVvbkRhdGEuZmxvYXRBcmd1bWVudHMgPSBmbG9hdEFy
Z3VtZW50czsKKyAgICBuZW9uRGF0YS5wYWludGluZ0NvbnN0YW50cyA9IHNfRkVMaWdodGluZ0Nv
bnN0YW50c0Zvck5lb247CisKKyAgICAvLyBTZXQgbGlnaHQgc291cmNlIGFyZ3VtZW50cy4KKyAg
ICBmbG9hdEFyZ3VtZW50cy0+Y29uc3RPbmUgPSAxOworCisgICAgZmxvYXRBcmd1bWVudHMtPmNv
bG9yUmVkID0gbV9saWdodGluZ0NvbG9yLnJlZCgpOworICAgIGZsb2F0QXJndW1lbnRzLT5jb2xv
ckdyZWVuID0gbV9saWdodGluZ0NvbG9yLmdyZWVuKCk7CisgICAgZmxvYXRBcmd1bWVudHMtPmNv
bG9yQmx1ZSA9IG1fbGlnaHRpbmdDb2xvci5ibHVlKCk7CisgICAgZmxvYXRBcmd1bWVudHMtPnBh
ZGRpbmc0ID0gMDsKKworICAgIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkgPT0gTFNfUE9JTlQp
IHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19QT0lOVF9MSUdIVDsKKyAgICAgICAg
UG9pbnRMaWdodFNvdXJjZSogcG9pbnRMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFBvaW50TGln
aHRTb3VyY2UqPihtX2xpZ2h0U291cmNlLmdldCgpKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMt
PmxpZ2h0WCA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOworICAgICAgICBmbG9h
dEFyZ3VtZW50cy0+bGlnaHRZID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS55KCk7Cisg
ICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFogPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlv
bigpLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPnBhZGRpbmcyID0gMDsKKyAgICB9IGVs
c2UgaWYgKG1fbGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19TUE9UKSB7CisgICAgICAgIG5lb25E
YXRhLmZsYWdzIHw9IEZMQUdfU1BPVF9MSUdIVDsKKyAgICAgICAgU3BvdExpZ2h0U291cmNlKiBz
cG90TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxTcG90TGlnaHRTb3VyY2UqPihtX2xpZ2h0U291
cmNlLmdldCgpKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WCA9IHNwb3RMaWdodFNv
dXJjZS0+cG9zaXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFkgPSBz
cG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+
bGlnaHRaID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAgICAgZmxvYXRB
cmd1bWVudHMtPnBhZGRpbmcyID0gMDsKKworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlyZWN0
aW9uWCA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueCgpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy0+ZGlyZWN0aW9uWSA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueSgpOwor
ICAgICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlyZWN0aW9uWiA9IHBhaW50aW5nRGF0YS5kaXJlY3Rp
b25WZWN0b3IueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzMgPSAwOworCisg
ICAgICAgIGZsb2F0QXJndW1lbnRzLT5jb25lQ3V0T2ZmTGltaXQgPSBwYWludGluZ0RhdGEuY29u
ZUN1dE9mZkxpbWl0OworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+Y29uZUZ1bGxMaWdodCA9IHBh
aW50aW5nRGF0YS5jb25lRnVsbExpZ2h0OworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+Y29uZUN1
dE9mZlJhbmdlID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdCAtIHBhaW50aW5nRGF0YS5j
b25lRnVsbExpZ2h0OworICAgICAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQgPSBnZXRQb3dlckNv
ZWZmaWNpZW50cyhzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSk7CisgICAgICAg
IGlmIChzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSA9PSAxKQorICAgICAgICAg
ICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19DT05FX0VYUE9ORU5UX0lTXzE7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1fbGlnaHRTb3VyY2UudHlwZSA9PSBMU19ESVNUQU5UKTsKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WCA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci54
KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFkgPSBwYWludGluZ0RhdGEubGlnaHRW
ZWN0b3IueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRaID0gcGFpbnRpbmdEYXRh
LmxpZ2h0VmVjdG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPnBhZGRpbmcyID0gMTsK
KyAgICB9CisKKyAgICAvLyBTZXQgbGlnaHRuaWcgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1l
bnRzLT5zdXJmYWNlU2NhbGUgPSBkYXRhLnN1cmZhY2VTY2FsZTsKKyAgICBmbG9hdEFyZ3VtZW50
cy0+bWludXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyID0gLWRhdGEuc3VyZmFjZVNjYWxlIC8g
NDsKKyAgICBpZiAobV9saWdodGluZ1R5cGUgPT0gRkVMaWdodGluZzo6RGlmZnVzZUxpZ2h0aW5n
KQorICAgICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlmZnVzZUNvbnN0YW50ID0gbV9kaWZmdXNlQ29u
c3RhbnQ7CisgICAgZWxzZSB7CisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VM
QVJfTElHSFQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaWZmdXNlQ29uc3RhbnQgPSBtX3Nw
ZWN1bGFyQ29uc3RhbnQ7CisgICAgICAgIG5lb25EYXRhLnNwZWN1bGFyRXhwb25lbnQgPSBnZXRQ
b3dlckNvZWZmaWNpZW50cyhtX3NwZWN1bGFyRXhwb25lbnQpOworICAgICAgICBpZiAobV9zcGVj
dWxhckV4cG9uZW50ID09IDEpCisgICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQ
RUNVTEFSX0VYUE9ORU5UX0lTXzE7CisgICAgfQorICAgIGlmIChmbG9hdEFyZ3VtZW50cy0+ZGlm
ZnVzZUNvbnN0YW50ID09IDEpCisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfRElGRlVT
RV9DT05TVF9JU18xOworCisgICAgbmVvbkRyYXdMaWdodGluZygmbmVvbkRhdGEpOworfQorI2Vu
ZGlmIC8vIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IGZhMWMwYWEu
LmQwODE1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRmlsdGVy
RWZmZWN0LmgiCiAjaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvQnl0ZUFy
cmF5Lmg+CisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKIC8vIENvbW1vbiBiYXNlIGNsYXNz
IGZvciBGRURpZmZ1c2VMaWdodGluZyBhbmQgRkVTcGVjdWxhckxpZ2h0aW5nCiAKQEAgLTc5LDYg
KzgwLDEwIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldFBpeGVsKGludCBvZmZzZXQsIExpZ2h0
aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmLAogICAgICAgICAgICAgICAgICAg
aW50IGxpZ2h0WCwgaW50IGxpZ2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50
UG9pbnQmIG5vcm1hbFZlY3Rvcik7CiAKKyNpZiBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04p
CisgICAgdm9pZCBkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6
OlBhaW50aW5nRGF0YSYpOworI2VuZGlmCisKICAgICBMaWdodGluZ1R5cGUgbV9saWdodGluZ1R5
cGU7CiAgICAgUmVmUHRyPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5n
TmVvblNJTUQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9h
cm0vRkVMaWdodGluZ05lb25TSU1ELmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zYjUwN2JlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmNwcApAQCAtMCwwICsxLDQx
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICog
Q29weXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkZFTGlnaHRpbmdOZW9uU0lNRC5oIgorCisjaWYgQ1BVKEFSTSkgJiYg
RU5BQkxFKEFSTV9ORU9OKQorCitzaG9ydCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uWzgg
KiAzXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDB4MTApKSkgPSB7CisgICAgLy8gQWxwaGEgY29l
ZmZpY2llbnRzLgorICAgIC0yLCAxLCAwLCAtMSwgMiwgMSwgMCwgLTEsCisgICAgMCwgLTEsIC0y
LCAtMSwgMCwgMSwgMiwgMSwKKyAgICAvLyBSZW1hcHBpbmcgaW5kaWNpZXMuCisgICAgMHgwZjBl
LCAweDAzMDIsIDB4MDUwNCwgMHgwNzA2LAorICAgIDB4MGIwYSwgMHgxMzEyLCAweDE1MTQsIDB4
MTcxNiwKK307CisKKyNkZWZpbmUgQVNTVFJJTkcoc3RyKSAjc3RyCisjZGVmaW5lIFRPU1RSSU5H
KHZhbHVlKSBBU1NUUklORyh2YWx1ZSkKKworI2RlZmluZSBQSVhFTFNfT0ZGU0VUIFRPU1RSSU5H
KDApCisjZGVmaW5lIFdJRFRIX09GRlNFVCBUT1NUUklORyg0KQorI2RlZmluZSBIRUlHSFRfT0ZG
U0VUIFRPU1RSSU5HKDgpCisjZGVmaW5lIEZMQUdTX09GRlNFVCBUT1NUUklORygxMikKKyNkZWZp
bmUgU1BFQ1VMQVJfRVhQT05FTlRfT0ZGU0VUIFRPU1RSSU5HKDE2KQorI2RlZmluZSBDT05FX0VY
UE9ORU5UX09GRlNFVCBUT1NUUklORygyMCkKKyNkZWZpbmUgRkxPQVRfQVJHVU1FTlRTX09GRlNF
VCBUT1NUUklORygyNCkKKyNkZWZpbmUgRFJBV0lOR19DT05TVEFOVFNfT0ZGU0VUIFRPU1RSSU5H
KDI4KQorI2RlZmluZSBOTCAiXG4iCisKKy8vIFJlZ2lzdGVyIGFsbG9jYXRpb24KKyNkZWZpbmUg
UEFJTlRJTkdfREFUQV9SICAgICAgICJyMTEiCisjZGVmaW5lIFJFU0VUX1dJRFRIX1IgICAgICAg
ICBQQUlOVElOR19EQVRBX1IKKyNkZWZpbmUgUElYRUxTX1IgICAgICAgICAgICAgICJyNCIKKyNk
ZWZpbmUgV0lEVEhfUiAgICAgICAgICAgICAgICJyNSIKKyNkZWZpbmUgSEVJR0hUX1IgICAgICAg
ICAgICAgICJyNiIKKyNkZWZpbmUgRkxBR1NfUiAgICAgICAgICAgICAgICJyNyIKKyNkZWZpbmUg
U1BFQ1VMQVJfRVhQT05FTlRfUiAgICJyOCIKKyNkZWZpbmUgQ09ORV9FWFBPTkVOVF9SICAgICAg
ICJyMTAiCisjZGVmaW5lIFNDQU5MSU5FX1IgICAgICAgICAgICAicjEyIgorCisjZGVmaW5lIFRN
UDFfUSAgICAgICAgICAgICAgICAicTAiCisjZGVmaW5lIFRNUDFfRDAgICAgICAgICAgICAgICAi
ZDAiCisjZGVmaW5lIFRNUDFfUzAgICAgICAgICAgICAgICAiczAiCisjZGVmaW5lIFRNUDFfUzEg
ICAgICAgICAgICAgICAiczEiCisjZGVmaW5lIFRNUDFfRDEgICAgICAgICAgICAgICAiZDEiCisj
ZGVmaW5lIFRNUDFfUzIgICAgICAgICAgICAgICAiczIiCisjZGVmaW5lIFRNUDFfUzMgICAgICAg
ICAgICAgICAiczMiCisjZGVmaW5lIFRNUDJfUSAgICAgICAgICAgICAgICAicTEiCisjZGVmaW5l
IFRNUDJfRDAgICAgICAgICAgICAgICAiZDIiCisjZGVmaW5lIFRNUDJfUzAgICAgICAgICAgICAg
ICAiczQiCisjZGVmaW5lIFRNUDJfUzEgICAgICAgICAgICAgICAiczUiCisjZGVmaW5lIFRNUDJf
RDEgICAgICAgICAgICAgICAiZDMiCisjZGVmaW5lIFRNUDJfUzIgICAgICAgICAgICAgICAiczYi
CisjZGVmaW5lIFRNUDJfUzMgICAgICAgICAgICAgICAiczciCisjZGVmaW5lIFRNUDNfUSAgICAg
ICAgICAgICAgICAicTIiCisjZGVmaW5lIFRNUDNfRDAgICAgICAgICAgICAgICAiZDQiCisjZGVm
aW5lIFRNUDNfUzAgICAgICAgICAgICAgICAiczgiCisjZGVmaW5lIFRNUDNfUzEgICAgICAgICAg
ICAgICAiczkiCisjZGVmaW5lIFRNUDNfRDEgICAgICAgICAgICAgICAiZDUiCisjZGVmaW5lIFRN
UDNfUzIgICAgICAgICAgICAgICAiczEwIgorI2RlZmluZSBUTVAzX1MzICAgICAgICAgICAgICAg
InMxMSIKKworI2RlZmluZSBDT1NJTkVfT0ZfQU5HTEUgICAgICAgInMxMiIKKyNkZWZpbmUgUE9X
Rl9JTlRfUyAgICAgICAgICAgICJzMTMiCisjZGVmaW5lIFBPV0ZfRlJBQ19TICAgICAgICAgICAi
czE0IgorI2RlZmluZSBTUE9UX0NPTE9SX1EgICAgICAgICAgInE0IgorCisvLyBCZWNhdXNlIG9m
IFZNSU4gYW5kIFZNQVggQ09OU1RfWkVST19TIGFuZCBDT05TVF9PTkVfUworLy8gbXVzdCBiZSBw
bGFjZWQgb24gdGhlIHNhbWUgc2lkZSBvZiB0aGUgZG91YmxlIHZlY3RvcgorCisvLyBDdXJyZW50
IHBpeGVsIHBvc2l0aW9uCisjZGVmaW5lIFBPU0lUSU9OX1EgICAgICAgICAgICAicTUiCisjZGVm
aW5lIFBPU0lUSU9OX1hfUyAgICAgICAgICAiczIwIgorI2RlZmluZSBQT1NJVElPTl9ZX1MgICAg
ICAgICAgInMyMSIKKyNkZWZpbmUgUE9TSVRJT05fWl9TICAgICAgICAgICJzMjIiCisjZGVmaW5l
IENPTlNUX1pFUk9fSElfRCAgICAgICAiZDExIgorI2RlZmluZSBDT05TVF9aRVJPX1MgICAgICAg
ICAgInMyMyIKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgIFZh
cmlhYmxlIGFyZ3VtZW50cworLy8gTWlzYyBhcmd1bWVudHMKKyNkZWZpbmUgUkVBRDFfUkFOR0Ug
ICAgICAgICAgICJkMTItZDE1IgorI2RlZmluZSBSRUFEMl9SQU5HRSAgICAgICAgICAgImQxNi1k
MTkiCisjZGVmaW5lIFJFQUQzX1JBTkdFICAgICAgICAgICAiZDIwLWQyMSIKKworI2RlZmluZSBT
Q0FMRV9TICAgICAgICAgICAgICAgInMyNCIKKyNkZWZpbmUgU0NBTEVfRElWNF9TICAgICAgICAg
ICJzMjUiCisjZGVmaW5lIERJRkZVU0VfQ09OU1RfUyAgICAgICAiczI2IgorCisvLyBMaWdodCBz
b3VyY2UgcG9zaXRpb24KKyNkZWZpbmUgQ09ORV9DVVRfT0ZGX1MgICAgICAgICJzMjgiCisjZGVm
aW5lIENPTkVfRlVMTF9MSUdIVF9TICAgICAiczI5IgorI2RlZmluZSBDT05FX0NVVF9PRkZfUkFO
R0VfUyAgInMzMCIKKyNkZWZpbmUgQ09OU1RfT05FX0hJX0QgICAgICAgICJkMTUiCisjZGVmaW5l
IENPTlNUX09ORV9TICAgICAgICAgICAiczMxIgorCisjZGVmaW5lIExJR0hUX1EgICAgICAgICAg
ICAgICAicTgiCisjZGVmaW5lIERJUkVDVElPTl9RICAgICAgICAgICAicTkiCisjZGVmaW5lIENP
TE9SX1EgICAgICAgICAgICAgICAicTEwIgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8gICAgQ29uc3RhbnQgY29lZmZpY2llbnRzCisjZGVmaW5lIFJFQUQ0X1JBTkdFICAg
ICAgICAgICAiZDIyLWQyNSIKKyNkZWZpbmUgUkVBRDVfUkFOR0UgICAgICAgICAgICJkMjYtZDI3
IgorCisjZGVmaW5lIEFMUEhBWF9RICAgICAgICAgICAgICAicTExIgorI2RlZmluZSBBTFBIQVlf
USAgICAgICAgICAgICAgInExMiIKKyNkZWZpbmUgUkVNQVBYX0QgICAgICAgICAgICAgICJkMjYi
CisjZGVmaW5lIFJFTUFQWV9EICAgICAgICAgICAgICAiZDI3IgorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisjZGVmaW5lIEFMTF9ST1dTX0QgICAgICAgICAgICAie2QyOCxk
MjksZDMwfSIKKyNkZWZpbmUgVE9QX1JPV19EICAgICAgICAgICAgICJkMjgiCisjZGVmaW5lIE1J
RERMRV9ST1dfRCAgICAgICAgICAiZDI5IgorI2RlZmluZSBCT1RUT01fUk9XX0QgICAgICAgICAg
ImQzMCIKKworI2RlZmluZSBHRVRfTEVOR1RIKHNvdXJjZSwgdGVtcCkgXAorICAgICJ2bXVsLmYz
MiAiIHRlbXAjI19RICIsICIgc291cmNlIyNfUSAiLCAiIHNvdXJjZSMjX1EgTkwgXAorICAgICJ2
YWRkLmYzMiAiIHNvdXJjZSMjX1MzICIsICIgdGVtcCMjX1MwICIsICIgdGVtcCMjX1MxIE5MIFwK
KyAgICAidmFkZC5mMzIgIiBzb3VyY2UjI19TMyAiLCAiIHNvdXJjZSMjX1MzICIsICIgdGVtcCMj
X1MyIE5MIFwKKyAgICAidnNxcnQuZjMyICIgc291cmNlIyNfUzMgIiwgIiBzb3VyY2UjI19TMyBO
TAorCisvLyBkZXN0aW5hdGlvbiMjX1MzIGNhbiBjb250YWluIHRoZSBtdWx0aXBseSBvZiBsZW5n
dGguCisjZGVmaW5lIERPVF9QUk9EVUNUKGRlc3RpbmF0aW9uLCBzb3VyY2UxLCBzb3VyY2UyKSBc
CisgICAgInZtdWwuZjMyICIgZGVzdGluYXRpb24jI19RICIsICIgc291cmNlMSMjX1EgIiwgIiBz
b3VyY2UyIyNfUSBOTCBcCisgICAgInZhZGQuZjMyICIgZGVzdGluYXRpb24jI19TMCAiLCAiIGRl
c3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1MxIE5MIFwKKyAgICAidmFkZC5mMzIg
IiBkZXN0aW5hdGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24jI19TMCAiLCAiIGRlc3RpbmF0aW9u
IyNfUzIgTkwKKworI2RlZmluZSBNVUxUSVBMWV9CWV9ESUZGVVNFX0NPTlNUKG5vcm1hbFZlY3Rv
ckxlbmd0aCwgZG90UHJvZHVjdExlbmd0aCkgXAorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRP
U1RSSU5HKEZMQUdfRElGRlVTRV9DT05TVF9JU18xKSBOTCBcCisgICAgInZtdWxlcS5mMzIgIiBU
TVAyX1MxICIsICIgRElGRlVTRV9DT05TVF9TICIsICIgbm9ybWFsVmVjdG9yTGVuZ3RoIE5MIFwK
KyAgICAidmRpdmVxLmYzMiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxICIsICIgZG90UHJvZHVjdExl
bmd0aCBOTCBcCisgICAgInZkaXZuZS5mMzIgIiBUTVAyX1MxICIsICIgbm9ybWFsVmVjdG9yTGVu
Z3RoICIsICIgZG90UHJvZHVjdExlbmd0aCBOTAorCisjZGVmaW5lIFBPV0ZfU1FSKHZhbHVlLCBl
eHBvbmVudCwgY3VycmVudCwgcmVtYWluaW5nKSBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMi
IEFTU1RSSU5HKGN1cnJlbnQpIE5MIFwKKyAgICAidm11bG5lLmYzMiAiIHZhbHVlICIsICIgdmFs
dWUgIiwgIiBQT1dGX0lOVF9TIE5MIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIgQVNTVFJJ
TkcocmVtYWluaW5nKSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiBQT1dGX0lOVF9TICIsICIgUE9X
Rl9JTlRfUyAiLCAiIFBPV0ZfSU5UX1MgTkwKKworI2RlZmluZSBQT1dGX1NRUlQodmFsdWUsIGV4
cG9uZW50LCBjdXJyZW50LCByZW1haW5pbmcpIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIg
QVNTVFJJTkcocmVtYWluaW5nKSBOTCBcCisgICAgInZzcXJ0bmUuZjMyICIgUE9XRl9GUkFDX1Mg
IiwgIiBQT1dGX0ZSQUNfUyBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RSSU5H
KGN1cnJlbnQpIE5MIFwKKyAgICAidm11bG5lLmYzMiAiIHZhbHVlICIsICIgdmFsdWUgIiwgIiBQ
T1dGX0ZSQUNfUyBOTAorCisjZGVmaW5lIFBPV0YodmFsdWUsIGV4cG9uZW50KSBcCisgICAgInRz
dCAiIGV4cG9uZW50ICIsICMweGZjMCIgTkwgXAorICAgICJ2bW92bmUuZjMyICIgUE9XRl9JTlRf
UyAiLCAiIHZhbHVlIE5MIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIzB4MDNmIiBOTCBcCisg
ICAgInZtb3ZuZS5mMzIgIiBQT1dGX0ZSQUNfUyAiLCAiIHZhbHVlIE5MIFwKKyAgICAidm1vdi5m
MzIgIiB2YWx1ZSAiLCAiIENPTlNUX09ORV9TIE5MIFwKKyAgICBcCisgICAgUE9XRl9TUVIodmFs
dWUsIGV4cG9uZW50LCAweDA0MCwgMHhmODApIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25l
bnQsIDB4MDgwLCAweGYwMCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgxMDAs
IDB4ZTAwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDIwMCwgMHhjMDApIFwK
KyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4NDAwLCAweDgwMCkgXAorICAgICJ0c3Qg
IiBleHBvbmVudCAiLCAjMHg4MDAiIE5MIFwKKyAgICAidm11bG5lLmYzMiAiIHZhbHVlICIsICIg
dmFsdWUgIiwgIiBQT1dGX0lOVF9TIE5MIFwKKyAgICBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBl
eHBvbmVudCwgMHgyMCwgMHgzZikgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4
MTAsIDB4MWYpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDA4LCAweDBmKSBc
CisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwNCwgMHgwNykgXAorICAgIFBPV0Zf
U1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDIsIDB4MDMpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUs
IGV4cG9uZW50LCAweDAxLCAweDAxKQorCithc20gKAorIi5nbG9ibCAiIFRPU1RSSU5HKG5lb25E
cmF3TGlnaHRpbmcpIE5MCitUT1NUUklORyhuZW9uRHJhd0xpZ2h0aW5nKSAiOiIgTkwKKyAgICAv
LyBNdXN0IGJlIGFsaWduZWQgdG8gOCBieXRlcy4KKyAgICAic3RtZGIgc3AhLCB7cjQtcjgsIHIx
MCwgcjExLCBscn0iIE5MCisgICAgInZzdG1kYiBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJtb3Yg
IiBQQUlOVElOR19EQVRBX1IgIiwgcjAiIE5MCisgICAgImxkciByMCwgWyIgUEFJTlRJTkdfREFU
QV9SICIsICMiIEZMT0FUX0FSR1VNRU5UU19PRkZTRVQgIl0iIE5MCisgICAgImxkciByMSwgWyIg
UEFJTlRJTkdfREFUQV9SICIsICMiIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKKyAg
ICAibGRyICIgUElYRUxTX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFBJWEVMU19PRkZT
RVQgIl0iIE5MCisgICAgImxkciAiIFdJRFRIX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMi
IFdJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgSEVJR0hUX1IgIiwgWyIgUEFJTlRJTkdf
REFUQV9SICIsICMiIEhFSUdIVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIEZMQUdTX1IgIiwg
WyIgUEFJTlRJTkdfREFUQV9SICIsICMiIEZMQUdTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIg
U1BFQ1VMQVJfRVhQT05FTlRfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgU1BFQ1VMQVJf
RVhQT05FTlRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBDT05FX0VYUE9ORU5UX1IgIiwgWyIg
UEFJTlRJTkdfREFUQV9SICIsICMiIENPTkVfRVhQT05FTlRfT0ZGU0VUICJdIiBOTAorICAgICJ2
bGQxLmYzMiB7ICIgUkVBRDFfUkFOR0UgIiB9LCBbcjBdISIgTkwKKyAgICAidmxkMS5mMzIgeyAi
IFJFQUQyX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuZjMyIHsgIiBSRUFEM19SQU5H
RSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLnMxNiB7IiBSRUFENF9SQU5HRSAifSwgW3IxXSEi
IE5MCisgICAgInZsZDEuczE2IHsiIFJFQUQ1X1JBTkdFICJ9LCBbcjFdISIgTkwKKyAgICAibW92
ICIgU0NBTkxJTkVfUiAiLCAiIFdJRFRIX1IgIiwgbHNsICMyIiBOTAorICAgICJhZGQgIiBTQ0FO
TElORV9SICIsICIgU0NBTkxJTkVfUiAiLCAjOCIgTkwKKyAgICAiYWRkICIgUElYRUxTX1IgIiwg
IiBQSVhFTFNfUiAiLCAiIFNDQU5MSU5FX1IgTkwKKyAgICAiYWRkICIgUElYRUxTX1IgIiwgIiBQ
SVhFTFNfUiAiLCAjMyIgTkwKKyAgICAibW92IHIwLCAjMCIgTkwKKyAgICAidm1vdi5mMzIgIiBD
T05TVF9aRVJPX1MgIiwgcjAiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWV9TICIsICIg
Q09OU1RfT05FX1MgTkwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQ
T1RfTElHSFQpIE5MCisgICAgInZtb3YuZjMyICIgU1BPVF9DT0xPUl9RICIsICIgQ09MT1JfUSBO
TAorICAgICJtb3YgIiBSRVNFVF9XSURUSF9SICIsICIgV0lEVEhfUiBOTAorCisiLm1haW5sb29w
OiIgTkwKKyAgICAibW92IHIzLCAjMyIgTkwKKyAgICAidm1vdi5mMzIgIiBQT1NJVElPTl9YX1Mg
IiwgIiBDT05TVF9PTkVfUyBOTAorCisiLnNjYW5saW5lOiIgTkwKKyAgICAvLyBSZWFkaW5nIHRo
ZSBuZXh0IHBpeGVsIHRvIHRoZSBST1cgZGF0YS4KKyAgICAibGRyYiByMCwgWyIgUElYRUxTX1Ig
IiwgLSIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMSwgWyIgUElYRUxTX1IgIiwgKyIg
U0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMiwgWyIgUElYRUxTX1IgIl0sICM0IiBOTAor
ICAgICJ2ZXh0LnMxNiAiIFRPUF9ST1dfRCAiLCAiIFRPUF9ST1dfRCAiLCAiIFRPUF9ST1dfRCAi
LCAjMyIgTkwKKyAgICAidmV4dC5zMTYgIiBNSURETEVfUk9XX0QgIiwgIiBNSURETEVfUk9XX0Qg
IiwgIiBNSURETEVfUk9XX0QgIiwgIzMiIE5MCisgICAgInZleHQuczE2ICIgQk9UVE9NX1JPV19E
ICIsICIgQk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JPV19EICIsICMzIiBOTAorICAgICJ2bW92
LnMxNiAiIFRPUF9ST1dfRCAiWzFdLCByMCIgTkwKKyAgICAidm1vdi5zMTYgIiBNSURETEVfUk9X
X0QgIlsxXSwgcjIiIE5MCisgICAgInZtb3YuczE2ICIgQk9UVE9NX1JPV19EICJbMV0sIHIxIiBO
TAorCisgICAgInN1YnMgcjMsIHIzLCAjMSIgTkwKKyAgICAiYm5lIC5zY2FubGluZSIgTkwKKwor
ICAgIC8vIExpZ2h0IHZlY3RvciBnb2VzIHRvIFRNUDFfUS4KKyAgICAidHN0ICIgRkxBR1NfUiAi
LCAjIiBUT1NUUklORyhGTEFHX1BPSU5UX0xJR0hUIHwgRkxBR19TUE9UX0xJR0hUKSBOTAorICAg
ICJiZXEgLmRpc3RhbnRMaWdodCIgTkwKKworICAgICJ2bW92LnMxNiByMywgIiBNSURETEVfUk9X
X0QgIlsyXSIgTkwKKyAgICAidm1vdi5mMzIgIiBQT1NJVElPTl9aX1MgIiwgcjMiIE5MCisgICAg
InZjdnQuZjMyLnMzMiAiIFBPU0lUSU9OX1pfUyAiLCAiIFBPU0lUSU9OX1pfUyBOTAorICAgICJ2
bXVsLmYzMiAiIFBPU0lUSU9OX1pfUyAiLCAiIFBPU0lUSU9OX1pfUyAiLCAiIFNDQUxFX1MgTkwK
KworICAgICJ2c3ViLmYzMiAiIFRNUDFfUSAiLCAiIExJR0hUX1EgIiwgIiBQT1NJVElPTl9RIE5M
CisgICAgR0VUX0xFTkdUSChUTVAxLCBUTVAyKQorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIg
VE9TVFJJTkcoRkxBR19TUE9UX0xJR0hUKSBOTAorICAgICJibmUgLmNvc2luZU9mQW5nbGUiIE5M
CisiLnZpc2libGVQaXhlbDoiIE5MCisKKyAgICAvLyBNb3ZpbmcgdGhlIDggYWxwaGEgdmFsdWUg
dG8gQUxQSEEuCisgICAgInZ0YmwuOCAiIFRNUDNfRDAgIiwgIiBBTExfUk9XU19EICIsICIgUkVN
QVBYX0QgTkwKKyAgICAidnRibC44ICIgVE1QM19EMSAiLCAiIEFMTF9ST1dTX0QgIiwgIiBSRU1B
UFlfRCBOTAorCisgICAgLy8gTXVsdGlwbHkgYnkgQUxQSEFYIGFuZCBBTFBIQVkuCisgICAgInZt
dWwuczE2ICIgVE1QMl9RICIsICIgVE1QM19RICIsICIgQUxQSEFYX1EgTkwKKyAgICAidnBhZGQu
czE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QxIE5MCisgICAgInZwYWRkLnMx
NiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMCBOTAorICAgICJ2cGFkZC5zMTYg
IiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidm1vdi5zMTYgcjAs
ICIgVE1QMl9EMCAiWzBdIiBOTAorCisgICAgInZtdWwuczE2ICIgVE1QMl9RICIsICIgVE1QM19R
ICIsICIgQUxQSEFZX1EgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAg
IiwgIiBUTVAyX0QxIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIs
ICIgVE1QMl9EMCBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAi
IFRNUDJfRDAgTkwKKyAgICAidm1vdi5zMTYgcjEsICIgVE1QMl9EMCAiWzBdIiBOTAorCisgICAg
Ly8gQ2FsY3VsYXRpbmcgbGlnaHQuCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkco
RkxBR19TUE9UX0xJR0hUKSBOTAorICAgICJiZXEgLmVuZExpZ2h0IiBOTAorCisgICAgInZuZWcu
ZjMyICIgVE1QM19TMSAiLCAiIENPU0lORV9PRl9BTkdMRSBOTAorICAgICJ0c3QgIiBGTEFHU19S
ICIsICMiIFRPU1RSSU5HKEZMQUdfQ09ORV9FWFBPTkVOVF9JU18xKSBOTAorICAgICJiZXEgLmNv
bmVFeHBQb3dmIiBOTAorIi5jb25lRXhwUG93ZkZpbmlzaGVkOiIgTkwKKworICAgICJ2Y21wLmYz
MiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIENPTkVfRlVMTF9MSUdIVF9TIE5MCisgICAgImZtc3Rh
dCIgTkwKKyAgICAiYmhpIC5jdXRPZmYiIE5MCisiLmN1dE9mZkZpbmlzaGVkOiIgTkwKKworICAg
ICJ2bWluLmYzMiAiIFRNUDNfRDAgIiwgIiBUTVAzX0QwICIsICIgQ09OU1RfT05FX0hJX0QgTkwK
KyAgICAidm11bC5mMzIgIiBDT0xPUl9RICIsICIgU1BPVF9DT0xPUl9RICIsICIgVE1QM19EMCAi
WzFdIiBOTAorCisiLmVuZExpZ2h0OiIgTkwKKyAgICAvLyByMCBjb250YWlucyBub3JtYWxWZWN0
b3IgWC4KKyAgICAvLyByMSBjb250YWlucyBub3JtYWxWZWN0b3IgWS4KKyAgICAvLyBUTVAxX1Eg
Y29udGFpbnMgdGhlIGxpZ2h0IHZlY3RvciBhbmQgaXRzIGxlbmd0aC4KKyAgICAvLyBDT0xPUl9R
IGNvbnRhaW5zIHRoZSBjb2xvciBvZiB0aGUgbGlnaHQgdmVjdG9yLgorCisgICAgLy8gVGVzdGlu
ZyBib3RoIHIwIGFuZCByMSBhcmUgemVybyAoTm9ybWFsIHZlY3RvciBpcyAoMCwgMCwgMSkpLgor
ICAgICJvcnJzIHIyLCByMCwgcjEiIE5MCisgICAgImJuZSAubm9ybWFsVmVjdG9ySXNOb25aZXJv
IiBOTAorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9M
SUdIVCkgTkwKKyAgICAiYm5lIC5zcGVjdWxhckxpZ2h0MSIgTkwKKworICAgIE1VTFRJUExZX0JZ
X0RJRkZVU0VfQ09OU1QoVE1QMV9TMiwgVE1QMV9TMykKKyAgICAiYiAubGlnaHRTdHJlbmd0aENh
bGN1bGF0ZWQiIE5MCisKKyIuc3BlY3VsYXJMaWdodDE6IiBOTAorICAgIC8vIENhbGN1bGF0aW5n
IHNwZWN1bGFyIGxpZ2h0aW5nIGxpZ2h0IHN0cmVuZ3RoLgorICAgICJ2YWRkLmYzMiAiIFRNUDFf
UzIgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBOTAorICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1Q
MikKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfRVhQ
T05FTlRfSVNfMSkgTkwKKyAgICAidmRpdmVxLmYzMiAiIFRNUDJfUzEgIiwgIiBUTVAxX1MyICIs
ICIgVE1QMV9TMyBOTAorICAgICJiZXEgLnNwZWN1bGFyRXhwUG93ZiIgTkwKKworICAgIE1VTFRJ
UExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QMV9TMiwgVE1QMV9TMykKKyAgICAiYiAubGlnaHRTdHJl
bmd0aENhbGN1bGF0ZWQiIE5MCisKKyIubm9ybWFsVmVjdG9ySXNOb25aZXJvOiIgTkwKKyAgICAv
LyBDYWxjdWxhdGluZyBzcGVjdWxhciBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICAidm1v
di5zMzIgIiBUTVAyX1MwICIsIHIwIiBOTAorICAgICJ2Y3Z0LmYzMi5zMzIgIiBUTVAyX1MwICIs
ICIgVE1QMl9TMCBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDJfUzAgIiwgIiBUTVAyX1MwICIsICIg
U0NBTEVfRElWNF9TIE5MCisgICAgInZtb3YuczMyICIgVE1QMl9TMSAiLCByMSIgTkwKKyAgICAi
dmN2dC5mMzIuczMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEgTkwKKyAgICAidm11bC5mMzIgIiBU
TVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIFNDQUxFX0RJVjRfUyBOTAorICAgICJ2bW92LmYzMiAi
IFRNUDJfUzIgIiwgIiBDT05TVF9PTkVfUyBOTAorICAgIEdFVF9MRU5HVEgoVE1QMiwgVE1QMykK
KworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfTElHSFQp
IE5MCisgICAgImJuZSAuc3BlY3VsYXJMaWdodDIiIE5MCisKKyAgICAvLyBDYWxjdWxhdGluZyBk
aWZmdXNlIGxpZ2h0aW5nIGxpZ2h0IHN0cmVuZ3RoLgorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRN
UDIsIFRNUDEpCisgICAgTVVMVElQTFlfQllfRElGRlVTRV9DT05TVChUTVAzX1MwLCBUTVAzX1Mz
KQorICAgICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKworIi5zcGVjdWxhckxpZ2h0
MjoiIE5MCisgICAgLy8gQ2FsY3VsYXRpbmcgc3BlY3VsYXIgbGlnaHRpbmcgbGlnaHQgc3RyZW5n
dGguCisgICAgInZhZGQuZjMyICIgVE1QMV9TMiAiLCAiIFRNUDFfUzIgIiwgIiBUTVAxX1MzIE5M
CisgICAgR0VUX0xFTkdUSChUTVAxLCBUTVAzKQorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRNUDIs
IFRNUDEpCisKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFS
X0VYUE9ORU5UX0lTXzEpIE5MCisgICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QM19T
MCAiLCAiIFRNUDNfUzMgTkwKKyAgICAiYmVxIC5zcGVjdWxhckV4cFBvd2YiIE5MCisgICAgTVVM
VElQTFlfQllfRElGRlVTRV9DT05TVChUTVAzX1MwLCBUTVAzX1MzKQorCisiLmxpZ2h0U3RyZW5n
dGhDYWxjdWxhdGVkOiIgTkwKKyAgICAvLyBUTVAyX1MxIGNvbnRhaW5zIHRoZSBsaWdodCBzdHJl
bmd0aC4KKyAgICAidm1heC5mMzIgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIENPTlNUX1pF
Uk9fSElfRCBOTAorICAgICJ2bWluLmYzMiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgQ09O
U1RfT05FX0hJX0QgTkwKKyAgICAidm11bC5mMzIgIiBUTVAzX1EgIiwgIiBDT0xPUl9RICIsICIg
VE1QMl9EMCAiWzFdIiBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBUTVAzX1EgIiwgIiBUTVAzX1Eg
TkwKKyAgICAidm1vdi51MzIgcjIsIHIzLCAiIFRNUDNfUzAgIiwgIiBUTVAzX1MxIE5MCisgICAg
InN0cmIgcjIsIFsiIFBJWEVMU19SICIsICMtMTFdIiBOTAorICAgICJzdHJiIHIzLCBbIiBQSVhF
TFNfUiAiLCAjLTEwXSIgTkwKKyAgICAidm1vdi51MzIgcjIsICIgVE1QM19TMiBOTAorICAgICJz
dHJiIHIyLCBbIiBQSVhFTFNfUiAiLCAjLTldIiBOTAorCisgICAgLy8gQ29udGludWUgc2Nhbmxp
bmUuCisiLmludmlzaWJsZVBpeGVsOiIgTkwKKyAgICAidmFkZC5mMzIgIiBQT1NJVElPTl9YX1Mg
IiwgIiBDT05TVF9PTkVfUyBOTAorICAgICJtb3YgcjMsICMxIiBOTAorICAgICJzdWJzICIgV0lE
VEhfUiAiLCAiIFdJRFRIX1IgIiwgIzEiIE5MCisgICAgImJuZSAuc2NhbmxpbmUiIE5MCisKKyAg
ICAvLyBOZXh0IGxpbmUKKyAgICAidmFkZC5mMzIgIiBQT1NJVElPTl9ZX1MgIiwgIiBDT05TVF9P
TkVfUyBOTAorICAgICJtb3YgIiBXSURUSF9SICIsICIgUkVTRVRfV0lEVEhfUiBOTAorICAgICJz
dWJzICIgSEVJR0hUX1IgIiwgIiBIRUlHSFRfUiAiLCAjMSIgTkwKKyAgICAiYm5lIC5tYWlubG9v
cCIgTkwKKworICAgICJ2bGRtaWEgc3AhLCB7ZDgtZDE1fSIgTkwKKyAgICAibGRtaWEgc3AhLCB7
cjQtcjgsIHIxMCwgcjExLCBwY30iIE5MCisKKyIuZGlzdGFudExpZ2h0OiIgTkwKKyAgICAidm1v
di5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RIE5MCisgICAgImIgLnZpc2libGVQaXhlbCIgTkwK
KworIi5jb3NpbmVPZkFuZ2xlOiIgTkwKKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAxLCBESVJF
Q1RJT04pCisgICAgInZkaXYuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgVE1QM19TMCAiLCAi
IFRNUDFfUzMgTkwKKyAgICAidmNtcC5mMzIgIiBDT1NJTkVfT0ZfQU5HTEUgIiwgIiBDT05FX0NV
VF9PRkZfUyBOTAorICAgICJmbXN0YXQiIE5MCisgICAgImJscyAudmlzaWJsZVBpeGVsIiBOTAor
ICAgICJtb3YgcjAsICMwIiBOTAorICAgICJzdHJoIHIwLCBbIiBQSVhFTFNfUiAiLCAjLTExXSIg
TkwKKyAgICAic3RyYiByMCwgWyIgUElYRUxTX1IgIiwgIy05XSIgTkwKKyAgICAiYiAuaW52aXNp
YmxlUGl4ZWwiIE5MCisKKyIuY3V0T2ZmOiIgTkwKKyAgICAidnN1Yi5mMzIgIiBUTVAzX1MwICIs
ICIgQ09ORV9DVVRfT0ZGX1MgIiwgIiBDT1NJTkVfT0ZfQU5HTEUgTkwKKyAgICAidmRpdi5mMzIg
IiBUTVAzX1MwICIsICIgVE1QM19TMCAiLCAiIENPTkVfQ1VUX09GRl9SQU5HRV9TIE5MCisgICAg
InZtdWwuZjMyICIgVE1QM19TMSAiLCAiIFRNUDNfUzEgIiwgIiBUTVAzX1MwIE5MCisgICAgImIg
LmN1dE9mZkZpbmlzaGVkIiBOTAorCisiLmNvbmVFeHBQb3dmOiIgTkwKKyAgICBQT1dGKFRNUDNf
UzEsIENPTkVfRVhQT05FTlRfUikKKyAgICAiYiAuY29uZUV4cFBvd2ZGaW5pc2hlZCIgTkwKKwor
Ii5zcGVjdWxhckV4cFBvd2Y6IiBOTAorICAgIFBPV0YoVE1QMl9TMSwgU1BFQ1VMQVJfRVhQT05F
TlRfUikKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX0RJRkZVU0VfQ09O
U1RfSVNfMSkgTkwKKyAgICAidm11bGVxLmYzMiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxICIsICIg
RElGRlVTRV9DT05TVF9TIE5MCisgICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxjdWxhdGVkIiBOTAor
KTsKKworI2VuZGlmIC8vIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdO
ZW9uU0lNRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05lb25TSU1ELmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2I1Y2ExZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oCkBAIC0wLDAgKzEsOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBab2x0YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRkVMaWdodGluZ05lb25T
SU1EX2gKKyNkZWZpbmUgRkVMaWdodGluZ05lb25TSU1EX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0
Zm9ybS5oPgorCisjaWYgQ1BVKEFSTSkgJiYgRU5BQkxFKEFSTV9ORU9OKQorCisvLyBPdGhlcndp
c2U6IERpc3RhbnQgTGlnaHQuCisjZGVmaW5lIEZMQUdfUE9JTlRfTElHSFQgICAgICAgICAgICAg
ICAgIDB4MDEKKyNkZWZpbmUgRkxBR19TUE9UX0xJR0hUICAgICAgICAgICAgICAgICAgMHgwMgor
I2RlZmluZSBGTEFHX0NPTkVfRVhQT05FTlRfSVNfMSAgICAgICAgICAweDA0CisKKy8vIE90aGVy
d2lzZTogRGlmZnVzZSBsaWdodC4KKyNkZWZpbmUgRkxBR19TUEVDVUxBUl9MSUdIVCAgICAgICAg
ICAgICAgMHgxMAorI2RlZmluZSBGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMSAgICAgICAgICAweDIw
CisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfRVhQT05FTlRfSVNfMSAgICAgIDB4NDAKKworLy8gTXVz
dCBiZSBhbGlnbmVkIHRvIDE2IGJ5dGVzLgorc3RydWN0IEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50
c0Zvck5lb24geworICAgIGZsb2F0IHN1cmZhY2VTY2FsZTsKKyAgICBmbG9hdCBtaW51c1N1cmZh
Y2VTY2FsZURpdmlkZWRCeUZvdXI7CisgICAgZmxvYXQgZGlmZnVzZUNvbnN0YW50OworICAgIGZs
b2F0IHBhZGRpbmcxOworCisgICAgZmxvYXQgY29uZUN1dE9mZkxpbWl0OworICAgIGZsb2F0IGNv
bmVGdWxsTGlnaHQ7CisgICAgZmxvYXQgY29uZUN1dE9mZlJhbmdlOworICAgIGZsb2F0IGNvbnN0
T25lOworCisgICAgZmxvYXQgbGlnaHRYOworICAgIGZsb2F0IGxpZ2h0WTsKKyAgICBmbG9hdCBs
aWdodFo7CisgICAgZmxvYXQgcGFkZGluZzI7CisKKyAgICBmbG9hdCBkaXJlY3Rpb25YOworICAg
IGZsb2F0IGRpcmVjdGlvblk7CisgICAgZmxvYXQgZGlyZWN0aW9uWjsKKyAgICBmbG9hdCBwYWRk
aW5nMzsKKworICAgIGZsb2F0IGNvbG9yUmVkOworICAgIGZsb2F0IGNvbG9yR3JlZW47CisgICAg
ZmxvYXQgY29sb3JCbHVlOworICAgIGZsb2F0IHBhZGRpbmc0OworfTsKKworc3RydWN0IEZFTGln
aHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIHsKKyAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHM7Cisg
ICAgaW50IHdpZHRoRGVjcmVhc2VkQnlUd287CisgICAgaW50IGhlaWdodERlY3JlYXNlZEJ5VHdv
OworICAgIC8vIENvbWJpbmF0aW9uIG9mIEZMQUcgY29uc3RhbnRzIGFib3ZlLgorICAgIGludCBm
bGFnczsKKyAgICBpbnQgc3BlY3VsYXJFeHBvbmVudDsKKyAgICBpbnQgY29uZUV4cG9uZW50Owor
ICAgIEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24qIGZsb2F0QXJndW1lbnRzOworICAg
IHNob3J0KiBwYWludGluZ0NvbnN0YW50czsKK307CisKK2V4dGVybiBzaG9ydCBzX0ZFTGlnaHRp
bmdDb25zdGFudHNGb3JOZW9uWzggKiAzXTsKKworZXh0ZXJuICJDIiB7Cit2b2lkIG5lb25EcmF3
TGlnaHRpbmcoRkVMaWdodGluZ1BhaW50aW5nRGF0YUZvck5lb24qKTsKK30KKworI2VuZGlmIC8v
IENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKworI2VuZGlmIC8vIEZFTGlnaHRpbmdOZW9u
U0lNRF9oCi0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82780</attachid>
            <date>2011-02-17 03:48:19 -0800</date>
            <delta_ts>2011-02-22 04:11:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>28969</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSBmZjQwZThiYzM1NTMzMzg2ZTI3N2Y3MWUwY2YyNDJjMWE2ZTQxNjA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAxNyBGZWIgMjAxMSAxMTo1MDozMSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGxp
Z2h0LW5lb24KCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuY3BwICAgICAgIHwgIDExMCArKysrKysKIC4uLi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIHwgICAgNSArCiAuLi4vZ3JhcGhpY3MvZmls
dGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmNwcCAgICB8ICA0MTAgKysrKysrKysrKysrKysr
KysrKysKIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuaCAgICAg
IHwgICA5MiArKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA2NDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGlu
Z05lb25TSU1ELmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBlNGU3Mi4uNTBmMzljMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDExLTAyLTE3ICBab2x0YW4gSGVyY3plZyAgPHpoZXJjemVnQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT3B0aW1pemluZyBsaWdodG5pbmcgZmlsdGVyIHRvIEFSTS1uZW9uIFNJTUQgaW5zdHJ1Y3Rp
b24gc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NDQ1NgorCisgICAgICAgIE5lb24gaXMgdGhlIFNJTUQgaW5zdHJ1Y3Rpb24gc2V0IGZvciBhcm0u
IFRoaXMgaW5zdHJ1Y3Rpb24gc2V0CisgICAgICAgIGFsbG93cyB0byBzcGVlZC11cCB0aGUgbGln
aHRpbmcgZmlsdGVyIGJ5IDQgdGltZXMgb24gYXJtCisgICAgICAgIChvbiBXZWJDb3JlL21hbnVh
bC10ZXN0cy9zdmctZmlsdGVyLWFuaW1hdGlvbi5zdmcpLgorCisgICAgICAgICogV2ViQ29yZS5w
cmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmRy
YXdMaWdodGluZyk6CisgICAgICAgIChXZWJDb3JlOjpnZXRQb3dlckNvZWZmaWNpZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpkcmF3SW50ZXJpb3JQaXhlbHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHA6IEFkZGVk
LgorICAgICAgICAoX19hdHRyaWJ1dGVfXyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmg6IEFkZGVkLgorCiAyMDExLTAyLTE1ICBK
b2huIFN1bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAzMzg1ZjQ4Li40OTlmZjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaQpAQCAtOTUsNiArOTUsNyBAQCBXRUJDT1JFX0lOQ0xVREVQQVRIID0gXAogICAg
ICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvIFwKICAgICAkJFNPVVJDRV9ESVIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBcCisgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0gXAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMgXAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNWM4MjA0MC4uYzM2YjA2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTIwMTUsNiArMjAxNSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvTGlnaHRTb3VyY2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VBbHBoYS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBo
aWMuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25T
SU1ELmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UXVhZC5oIFwKQEAgLTMyNzEsNyArMzI3Miw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9G
SUxURVJTPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Qb2ludExpZ2h0
U291cmNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0
U291cmNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxw
aGEuY3BwIFwKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGlj
LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
IFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25T
SU1ELmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUFUSE1MPTEpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRp
bmcuY3BwCmluZGV4IGVjMWNhODguLjg1ODc0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApAQCAtMzAsNiAr
MzAsMTIgQEAKICNpbmNsdWRlICJGRUxpZ2h0aW5nLmgiCiAKICNpbmNsdWRlICJMaWdodFNvdXJj
ZS5oIgorI2luY2x1ZGUgIlBvaW50TGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJTcG90TGlnaHRT
b3VyY2UuaCIKKworI2lmIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKyNpbmNsdWRlICJG
RUxpZ2h0aW5nTmVvblNJTUQuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTMwMSw2ICszMDcsOSBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkq
IHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgaWYgKHdpZHRoID49IDMgJiYg
aGVpZ2h0ID49IDMpIHsKICAgICAgICAgLy8gSW50ZXJpb3IgcGl4ZWxzCisjaWYgQ1BVKEFSTSkg
JiYgRU5BQkxFKEFSTV9ORU9OKQorICAgICAgICBkcmF3SW50ZXJpb3JQaXhlbHMoZGF0YSwgcGFp
bnRpbmdEYXRhKTsKKyNlbHNlCiAgICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWln
aHREZWNyZWFzZWRCeU9uZTsgKyt5KSB7CiAgICAgICAgICAgICBvZmZzZXQgPSB5ICogZGF0YS53
aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSArIGNQaXhlbFNpemU7CiAgICAgICAgICAgICBmb3Ig
KGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNyZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0g
Y1BpeGVsU2l6ZSkgewpAQCAtMzA4LDYgKzMxNyw3IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJhd0xp
Z2h0aW5nKEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgICAg
ICAgICAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgsIHks
IGNGYWN0b3IxZGl2NCwgY0ZhY3RvcjFkaXY0LCBub3JtYWxWZWN0b3IpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBpbnQgbGFzdFBpeGVsID0gZGF0YS53
aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSAqIGhlaWdodDsKQEAgLTM1NCw2ICszNjQsMTA2IEBA
IHZvaWQgRkVMaWdodGluZzo6YXBwbHkoKQogICAgIGRyYXdMaWdodGluZyhzcmNQaXhlbEFycmF5
LCBhYnNvbHV0ZVBhaW50U2l6ZS53aWR0aCgpLCBhYnNvbHV0ZVBhaW50U2l6ZS5oZWlnaHQoKSk7
CiB9CiAKKyNpZiBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pCisKK3N0YXRpYyBpbnQgZ2V0
UG93ZXJDb2VmZmljaWVudHMoZmxvYXQgZXhwb25lbnQpCit7CisgICAgaW50IGksIHJlc3VsdDsK
KworICAgIGlmIChleHBvbmVudCA8IDApCisgICAgICAgIGV4cG9uZW50ID0gMSAvICgtZXhwb25l
bnQpOworCisgICAgaWYgKGV4cG9uZW50ID4gNjMuOTkpCisgICAgICAgIGV4cG9uZW50ID0gNjMu
OTk7CisKKyAgICBleHBvbmVudCAvPSA2NDsKKyAgICByZXN1bHQgPSAwOworICAgIGZvciAoaSA9
IDExOyBpID49IDA7IC0taSkgeworICAgICAgICBleHBvbmVudCAqPSAyOworICAgICAgICBpZiAo
ZXhwb25lbnQgPj0gMSkgeworICAgICAgICAgICAgcmVzdWx0IHw9IDEgPDwgaTsKKyAgICAgICAg
ICAgIGV4cG9uZW50IC09IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKwordm9pZCBGRUxpZ2h0aW5nOjpkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiBk
YXRhLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0RhdGEpCit7CisgICAgRkVM
aWdodGluZ1BhaW50aW5nRGF0YUZvck5lb24gbmVvbkRhdGE7CisgICAgY2hhciBidWZmZXJbc2l6
ZW9mKEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24pICsgMTZdOworICAgIEZFTGlnaHRp
bmdGbG9hdEFyZ3VtZW50c0Zvck5lb24qIGZsb2F0QXJndW1lbnRzID0gcmVpbnRlcnByZXRfY2Fz
dDxGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uKj4oKHJlaW50ZXJwcmV0X2Nhc3Q8bG9u
Zz4oYnVmZmVyKSArIDE1KSAmIH4weGYpOworCisgICAgbmVvbkRhdGEucGl4ZWxzID0gZGF0YS5w
aXhlbHMtPmRhdGEoKTsKKyAgICBuZW9uRGF0YS53aWR0aERlY3JlYXNlZEJ5VHdvID0gZGF0YS53
aWR0aERlY3JlYXNlZEJ5T25lIC0gMTsKKyAgICBuZW9uRGF0YS5oZWlnaHREZWNyZWFzZWRCeVR3
byA9IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgLSAxOworICAgIG5lb25EYXRhLmZsYWdzID0g
MDsKKyAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gMDsKKyAgICBuZW9uRGF0YS5jb25l
RXhwb25lbnQgPSAwOworICAgIG5lb25EYXRhLmZsb2F0QXJndW1lbnRzID0gZmxvYXRBcmd1bWVu
dHM7CisgICAgbmVvbkRhdGEucGFpbnRpbmdDb25zdGFudHMgPSBzX0ZFTGlnaHRpbmdDb25zdGFu
dHNGb3JOZW9uOworCisgICAgLy8gU2V0IGxpZ2h0IHNvdXJjZSBhcmd1bWVudHMuCisgICAgZmxv
YXRBcmd1bWVudHMtPmNvbnN0T25lID0gMTsKKworICAgIGZsb2F0QXJndW1lbnRzLT5jb2xvclJl
ZCA9IG1fbGlnaHRpbmdDb2xvci5yZWQoKTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JHcmVl
biA9IG1fbGlnaHRpbmdDb2xvci5ncmVlbigpOworICAgIGZsb2F0QXJndW1lbnRzLT5jb2xvckJs
dWUgPSBtX2xpZ2h0aW5nQ29sb3IuYmx1ZSgpOworICAgIGZsb2F0QXJndW1lbnRzLT5wYWRkaW5n
NCA9IDA7CisKKyAgICBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09IExTX1BPSU5UKSB7Cisg
ICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfUE9JTlRfTElHSFQ7CisgICAgICAgIFBvaW50
TGlnaHRTb3VyY2UqIHBvaW50TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxQb2ludExpZ2h0U291
cmNlKj4obV9saWdodFNvdXJjZS5nZXQoKSk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdo
dFggPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlvbigpLngoKTsKKyAgICAgICAgZmxvYXRBcmd1
bWVudHMtPmxpZ2h0WSA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOworICAgICAg
ICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRaID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS56
KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5wYWRkaW5nMiA9IDA7CisgICAgfSBlbHNlIGlm
IChtX2xpZ2h0U291cmNlLT50eXBlKCkgPT0gTFNfU1BPVCkgeworICAgICAgICBuZW9uRGF0YS5m
bGFncyB8PSBGTEFHX1NQT1RfTElHSFQ7CisgICAgICAgIFNwb3RMaWdodFNvdXJjZSogc3BvdExp
Z2h0U291cmNlID0gc3RhdGljX2Nhc3Q8U3BvdExpZ2h0U291cmNlKj4obV9saWdodFNvdXJjZS5n
ZXQoKSk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFggPSBzcG90TGlnaHRTb3VyY2Ut
PnBvc2l0aW9uKCkueCgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRZID0gc3BvdExp
Z2h0U291cmNlLT5wb3NpdGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0
WiA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS56KCk7CisgICAgICAgIGZsb2F0QXJndW1l
bnRzLT5wYWRkaW5nMiA9IDA7CisKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmRpcmVjdGlvblgg
PSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9yLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVu
dHMtPmRpcmVjdGlvblkgPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9yLnkoKTsKKyAgICAg
ICAgZmxvYXRBcmd1bWVudHMtPmRpcmVjdGlvblogPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVj
dG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPnBhZGRpbmczID0gMDsKKworICAgICAg
ICBmbG9hdEFyZ3VtZW50cy0+Y29uZUN1dE9mZkxpbWl0ID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRP
ZmZMaW1pdDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmNvbmVGdWxsTGlnaHQgPSBwYWludGlu
Z0RhdGEuY29uZUZ1bGxMaWdodDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmNvbmVDdXRPZmZS
YW5nZSA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQgLSBwYWludGluZ0RhdGEuY29uZUZ1
bGxMaWdodDsKKyAgICAgICAgbmVvbkRhdGEuY29uZUV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmlj
aWVudHMoc3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkpOworICAgICAgICBpZiAo
c3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkgPT0gMSkKKyAgICAgICAgICAgIG5l
b25EYXRhLmZsYWdzIHw9IEZMQUdfQ09ORV9FWFBPTkVOVF9JU18xOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEFTU0VSVChtX2xpZ2h0U291cmNlLnR5cGUgPT0gTFNfRElTVEFOVCk7CisgICAgICAg
IGZsb2F0QXJndW1lbnRzLT5saWdodFggPSBwYWludGluZ0RhdGEubGlnaHRWZWN0b3IueCgpOwor
ICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRZID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9y
LnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WiA9IHBhaW50aW5nRGF0YS5saWdo
dFZlY3Rvci56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5wYWRkaW5nMiA9IDE7CisgICAg
fQorCisgICAgLy8gU2V0IGxpZ2h0bmlnIGFyZ3VtZW50cy4KKyAgICBmbG9hdEFyZ3VtZW50cy0+
c3VyZmFjZVNjYWxlID0gZGF0YS5zdXJmYWNlU2NhbGU7CisgICAgZmxvYXRBcmd1bWVudHMtPm1p
bnVzU3VyZmFjZVNjYWxlRGl2aWRlZEJ5Rm91ciA9IC1kYXRhLnN1cmZhY2VTY2FsZSAvIDQ7Cisg
ICAgaWYgKG1fbGlnaHRpbmdUeXBlID09IEZFTGlnaHRpbmc6OkRpZmZ1c2VMaWdodGluZykKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMtPmRpZmZ1c2VDb25zdGFudCA9IG1fZGlmZnVzZUNvbnN0YW50
OworICAgIGVsc2UgeworICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQRUNVTEFSX0xJ
R0hUOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlmZnVzZUNvbnN0YW50ID0gbV9zcGVjdWxh
ckNvbnN0YW50OworICAgICAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gZ2V0UG93ZXJD
b2VmZmljaWVudHMobV9zcGVjdWxhckV4cG9uZW50KTsKKyAgICAgICAgaWYgKG1fc3BlY3VsYXJF
eHBvbmVudCA9PSAxKQorICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxB
Ul9FWFBPTkVOVF9JU18xOworICAgIH0KKyAgICBpZiAoZmxvYXRBcmd1bWVudHMtPmRpZmZ1c2VD
b25zdGFudCA9PSAxKQorICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0RJRkZVU0VfQ09O
U1RfSVNfMTsKKworICAgIG5lb25EcmF3TGlnaHRpbmcoJm5lb25EYXRhKTsKK30KKyNlbmRpZiAv
LyBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShGSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBmYTFjMGFhLi5kMDgx
NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZpbHRlckVmZmVj
dC5oIgogI2luY2x1ZGUgIkxpZ2h0U291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiAvLyBDb21tb24gYmFzZSBjbGFzcyBmb3Ig
RkVEaWZmdXNlTGlnaHRpbmcgYW5kIEZFU3BlY3VsYXJMaWdodGluZwogCkBAIC03OSw2ICs4MCwx
MCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRQaXhlbChpbnQgb2Zmc2V0LCBMaWdodGluZ0Rh
dGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiwKICAgICAgICAgICAgICAgICAgIGludCBs
aWdodFgsIGludCBsaWdodFksIGZsb2F0IGZhY3RvclgsIGZsb2F0IGZhY3RvclksIEludFBvaW50
JiBub3JtYWxWZWN0b3IpOwogCisjaWYgQ1BVKEFSTSkgJiYgRU5BQkxFKEFSTV9ORU9OKQorICAg
IHZvaWQgZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWlu
dGluZ0RhdGEmKTsKKyNlbmRpZgorCiAgICAgTGlnaHRpbmdUeXBlIG1fbGlnaHRpbmdUeXBlOwog
ICAgIFJlZlB0cjxMaWdodFNvdXJjZT4gbV9saWdodFNvdXJjZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25T
SU1ELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
TGlnaHRpbmdOZW9uU0lNRC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
M2I1MDdiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAKQEAgLTAsMCArMSw0MTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHly
aWdodCAoQykgMjAxMSBab2x0YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJGRUxpZ2h0aW5nTmVvblNJTUQuaCIKKworI2lmIENQVShBUk0pICYmIEVOQUJM
RShBUk1fTkVPTikKKworc2hvcnQgc19GRUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbls4ICogM10g
X19hdHRyaWJ1dGVfXygoYWxpZ25lZCgweDEwKSkpID0geworICAgIC8vIEFscGhhIGNvZWZmaWNp
ZW50cy4KKyAgICAtMiwgMSwgMCwgLTEsIDIsIDEsIDAsIC0xLAorICAgIDAsIC0xLCAtMiwgLTEs
IDAsIDEsIDIsIDEsCisgICAgLy8gUmVtYXBwaW5nIGluZGljaWVzLgorICAgIDB4MGYwZSwgMHgw
MzAyLCAweDA1MDQsIDB4MDcwNiwKKyAgICAweDBiMGEsIDB4MTMxMiwgMHgxNTE0LCAweDE3MTYs
Cit9OworCisjZGVmaW5lIEFTU1RSSU5HKHN0cikgI3N0cgorI2RlZmluZSBUT1NUUklORyh2YWx1
ZSkgQVNTVFJJTkcodmFsdWUpCisKKyNkZWZpbmUgUElYRUxTX09GRlNFVCBUT1NUUklORygwKQor
I2RlZmluZSBXSURUSF9PRkZTRVQgVE9TVFJJTkcoNCkKKyNkZWZpbmUgSEVJR0hUX09GRlNFVCBU
T1NUUklORyg4KQorI2RlZmluZSBGTEFHU19PRkZTRVQgVE9TVFJJTkcoMTIpCisjZGVmaW5lIFNQ
RUNVTEFSX0VYUE9ORU5UX09GRlNFVCBUT1NUUklORygxNikKKyNkZWZpbmUgQ09ORV9FWFBPTkVO
VF9PRkZTRVQgVE9TVFJJTkcoMjApCisjZGVmaW5lIEZMT0FUX0FSR1VNRU5UU19PRkZTRVQgVE9T
VFJJTkcoMjQpCisjZGVmaW5lIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCBUT1NUUklORygyOCkK
KyNkZWZpbmUgTkwgIlxuIgorCisvLyBSZWdpc3RlciBhbGxvY2F0aW9uCisjZGVmaW5lIFBBSU5U
SU5HX0RBVEFfUiAgICAgICAicjExIgorI2RlZmluZSBSRVNFVF9XSURUSF9SICAgICAgICAgUEFJ
TlRJTkdfREFUQV9SCisjZGVmaW5lIFBJWEVMU19SICAgICAgICAgICAgICAicjQiCisjZGVmaW5l
IFdJRFRIX1IgICAgICAgICAgICAgICAicjUiCisjZGVmaW5lIEhFSUdIVF9SICAgICAgICAgICAg
ICAicjYiCisjZGVmaW5lIEZMQUdTX1IgICAgICAgICAgICAgICAicjciCisjZGVmaW5lIFNQRUNV
TEFSX0VYUE9ORU5UX1IgICAicjgiCisjZGVmaW5lIENPTkVfRVhQT05FTlRfUiAgICAgICAicjEw
IgorI2RlZmluZSBTQ0FOTElORV9SICAgICAgICAgICAgInIxMiIKKworI2RlZmluZSBUTVAxX1Eg
ICAgICAgICAgICAgICAgInEwIgorI2RlZmluZSBUTVAxX0QwICAgICAgICAgICAgICAgImQwIgor
I2RlZmluZSBUTVAxX1MwICAgICAgICAgICAgICAgInMwIgorI2RlZmluZSBUTVAxX1MxICAgICAg
ICAgICAgICAgInMxIgorI2RlZmluZSBUTVAxX0QxICAgICAgICAgICAgICAgImQxIgorI2RlZmlu
ZSBUTVAxX1MyICAgICAgICAgICAgICAgInMyIgorI2RlZmluZSBUTVAxX1MzICAgICAgICAgICAg
ICAgInMzIgorI2RlZmluZSBUTVAyX1EgICAgICAgICAgICAgICAgInExIgorI2RlZmluZSBUTVAy
X0QwICAgICAgICAgICAgICAgImQyIgorI2RlZmluZSBUTVAyX1MwICAgICAgICAgICAgICAgInM0
IgorI2RlZmluZSBUTVAyX1MxICAgICAgICAgICAgICAgInM1IgorI2RlZmluZSBUTVAyX0QxICAg
ICAgICAgICAgICAgImQzIgorI2RlZmluZSBUTVAyX1MyICAgICAgICAgICAgICAgInM2IgorI2Rl
ZmluZSBUTVAyX1MzICAgICAgICAgICAgICAgInM3IgorI2RlZmluZSBUTVAzX1EgICAgICAgICAg
ICAgICAgInEyIgorI2RlZmluZSBUTVAzX0QwICAgICAgICAgICAgICAgImQ0IgorI2RlZmluZSBU
TVAzX1MwICAgICAgICAgICAgICAgInM4IgorI2RlZmluZSBUTVAzX1MxICAgICAgICAgICAgICAg
InM5IgorI2RlZmluZSBUTVAzX0QxICAgICAgICAgICAgICAgImQ1IgorI2RlZmluZSBUTVAzX1My
ICAgICAgICAgICAgICAgInMxMCIKKyNkZWZpbmUgVE1QM19TMyAgICAgICAgICAgICAgICJzMTEi
CisKKyNkZWZpbmUgQ09TSU5FX09GX0FOR0xFICAgICAgICJzMTIiCisjZGVmaW5lIFBPV0ZfSU5U
X1MgICAgICAgICAgICAiczEzIgorI2RlZmluZSBQT1dGX0ZSQUNfUyAgICAgICAgICAgInMxNCIK
KyNkZWZpbmUgU1BPVF9DT0xPUl9RICAgICAgICAgICJxNCIKKworLy8gQmVjYXVzZSBvZiBWTUlO
IGFuZCBWTUFYIENPTlNUX1pFUk9fUyBhbmQgQ09OU1RfT05FX1MKKy8vIG11c3QgYmUgcGxhY2Vk
IG9uIHRoZSBzYW1lIHNpZGUgb2YgdGhlIGRvdWJsZSB2ZWN0b3IKKworLy8gQ3VycmVudCBwaXhl
bCBwb3NpdGlvbgorI2RlZmluZSBQT1NJVElPTl9RICAgICAgICAgICAgInE1IgorI2RlZmluZSBQ
T1NJVElPTl9YX1MgICAgICAgICAgInMyMCIKKyNkZWZpbmUgUE9TSVRJT05fWV9TICAgICAgICAg
ICJzMjEiCisjZGVmaW5lIFBPU0lUSU9OX1pfUyAgICAgICAgICAiczIyIgorI2RlZmluZSBDT05T
VF9aRVJPX0hJX0QgICAgICAgImQxMSIKKyNkZWZpbmUgQ09OU1RfWkVST19TICAgICAgICAgICJz
MjMiCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICBWYXJpYWJs
ZSBhcmd1bWVudHMKKy8vIE1pc2MgYXJndW1lbnRzCisjZGVmaW5lIFJFQUQxX1JBTkdFICAgICAg
ICAgICAiZDEyLWQxNSIKKyNkZWZpbmUgUkVBRDJfUkFOR0UgICAgICAgICAgICJkMTYtZDE5Igor
I2RlZmluZSBSRUFEM19SQU5HRSAgICAgICAgICAgImQyMC1kMjEiCisKKyNkZWZpbmUgU0NBTEVf
UyAgICAgICAgICAgICAgICJzMjQiCisjZGVmaW5lIFNDQUxFX0RJVjRfUyAgICAgICAgICAiczI1
IgorI2RlZmluZSBESUZGVVNFX0NPTlNUX1MgICAgICAgInMyNiIKKworLy8gTGlnaHQgc291cmNl
IHBvc2l0aW9uCisjZGVmaW5lIENPTkVfQ1VUX09GRl9TICAgICAgICAiczI4IgorI2RlZmluZSBD
T05FX0ZVTExfTElHSFRfUyAgICAgInMyOSIKKyNkZWZpbmUgQ09ORV9DVVRfT0ZGX1JBTkdFX1Mg
ICJzMzAiCisjZGVmaW5lIENPTlNUX09ORV9ISV9EICAgICAgICAiZDE1IgorI2RlZmluZSBDT05T
VF9PTkVfUyAgICAgICAgICAgInMzMSIKKworI2RlZmluZSBMSUdIVF9RICAgICAgICAgICAgICAg
InE4IgorI2RlZmluZSBESVJFQ1RJT05fUSAgICAgICAgICAgInE5IgorI2RlZmluZSBDT0xPUl9R
ICAgICAgICAgICAgICAgInExMCIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
Ky8vICAgIENvbnN0YW50IGNvZWZmaWNpZW50cworI2RlZmluZSBSRUFENF9SQU5HRSAgICAgICAg
ICAgImQyMi1kMjUiCisjZGVmaW5lIFJFQUQ1X1JBTkdFICAgICAgICAgICAiZDI2LWQyNyIKKwor
I2RlZmluZSBBTFBIQVhfUSAgICAgICAgICAgICAgInExMSIKKyNkZWZpbmUgQUxQSEFZX1EgICAg
ICAgICAgICAgICJxMTIiCisjZGVmaW5lIFJFTUFQWF9EICAgICAgICAgICAgICAiZDI2IgorI2Rl
ZmluZSBSRU1BUFlfRCAgICAgICAgICAgICAgImQyNyIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworI2RlZmluZSBBTExfUk9XU19EICAgICAgICAgICAgIntkMjgsZDI5LGQz
MH0iCisjZGVmaW5lIFRPUF9ST1dfRCAgICAgICAgICAgICAiZDI4IgorI2RlZmluZSBNSURETEVf
Uk9XX0QgICAgICAgICAgImQyOSIKKyNkZWZpbmUgQk9UVE9NX1JPV19EICAgICAgICAgICJkMzAi
CisKKyNkZWZpbmUgR0VUX0xFTkdUSChzb3VyY2UsIHRlbXApIFwKKyAgICAidm11bC5mMzIgIiB0
ZW1wIyNfUSAiLCAiIHNvdXJjZSMjX1EgIiwgIiBzb3VyY2UjI19RIE5MIFwKKyAgICAidmFkZC5m
MzIgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAjI19TMCAiLCAiIHRlbXAjI19TMSBOTCBcCisgICAg
InZhZGQuZjMyICIgc291cmNlIyNfUzMgIiwgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAjI19TMiBO
TCBcCisgICAgInZzcXJ0LmYzMiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMgTkwKKwor
Ly8gZGVzdGluYXRpb24jI19TMyBjYW4gY29udGFpbiB0aGUgbXVsdGlwbHkgb2YgbGVuZ3RoLgor
I2RlZmluZSBET1RfUFJPRFVDVChkZXN0aW5hdGlvbiwgc291cmNlMSwgc291cmNlMikgXAorICAg
ICJ2bXVsLmYzMiAiIGRlc3RpbmF0aW9uIyNfUSAiLCAiIHNvdXJjZTEjI19RICIsICIgc291cmNl
MiMjX1EgTkwgXAorICAgICJ2YWRkLmYzMiAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5h
dGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24jI19TMSBOTCBcCisgICAgInZhZGQuZjMyICIgZGVz
dGluYXRpb24jI19TMCAiLCAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1My
IE5MCisKKyNkZWZpbmUgTVVMVElQTFlfQllfRElGRlVTRV9DT05TVChub3JtYWxWZWN0b3JMZW5n
dGgsIGRvdFByb2R1Y3RMZW5ndGgpIFwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklO
RyhGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMSkgTkwgXAorICAgICJ2bXVsZXEuZjMyICIgVE1QMl9T
MSAiLCAiIERJRkZVU0VfQ09OU1RfUyAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0aCBOTCBcCisgICAg
InZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIGRvdFByb2R1Y3RMZW5ndGgg
TkwgXAorICAgICJ2ZGl2bmUuZjMyICIgVE1QMl9TMSAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0aCAi
LCAiIGRvdFByb2R1Y3RMZW5ndGggTkwKKworI2RlZmluZSBQT1dGX1NRUih2YWx1ZSwgZXhwb25l
bnQsIGN1cnJlbnQsIHJlbWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NU
UklORyhjdXJyZW50KSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIs
ICIgUE9XRl9JTlRfUyBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RSSU5HKHJl
bWFpbmluZykgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgUE9XRl9JTlRfUyAiLCAiIFBPV0ZfSU5U
X1MgIiwgIiBQT1dGX0lOVF9TIE5MCisKKyNkZWZpbmUgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVu
dCwgY3VycmVudCwgcmVtYWluaW5nKSBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RS
SU5HKHJlbWFpbmluZykgTkwgXAorICAgICJ2c3FydG5lLmYzMiAiIFBPV0ZfRlJBQ19TICIsICIg
UE9XRl9GUkFDX1MgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklORyhjdXJy
ZW50KSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIsICIgUE9XRl9G
UkFDX1MgTkwKKworI2RlZmluZSBQT1dGKHZhbHVlLCBleHBvbmVudCkgXAorICAgICJ0c3QgIiBl
eHBvbmVudCAiLCAjMHhmYzAiIE5MIFwKKyAgICAidm1vdm5lLmYzMiAiIFBPV0ZfSU5UX1MgIiwg
IiB2YWx1ZSBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMweDAzZiIgTkwgXAorICAgICJ2
bW92bmUuZjMyICIgUE9XRl9GUkFDX1MgIiwgIiB2YWx1ZSBOTCBcCisgICAgInZtb3YuZjMyICIg
dmFsdWUgIiwgIiBDT05TVF9PTkVfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBl
eHBvbmVudCwgMHgwNDAsIDB4ZjgwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAw
eDA4MCwgMHhmMDApIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MTAwLCAweGUw
MCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgyMDAsIDB4YzAwKSBcCisgICAg
UE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDQwMCwgMHg4MDApIFwKKyAgICAidHN0ICIgZXhw
b25lbnQgIiwgIzB4ODAwIiBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVl
ICIsICIgUE9XRl9JTlRfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25l
bnQsIDB4MjAsIDB4M2YpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDEwLCAw
eDFmKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwOCwgMHgwZikgXAorICAg
IFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDQsIDB4MDcpIFwKKyAgICBQT1dGX1NRUlQo
dmFsdWUsIGV4cG9uZW50LCAweDAyLCAweDAzKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBv
bmVudCwgMHgwMSwgMHgwMSkKKworYXNtICgKKyIuZ2xvYmwgIiBUT1NUUklORyhuZW9uRHJhd0xp
Z2h0aW5nKSBOTAorVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCisgICAgLy8gTXVz
dCBiZSBhbGlnbmVkIHRvIDggYnl0ZXMuCisgICAgInN0bWRiIHNwISwge3I0LXI4LCByMTAsIHIx
MSwgbHJ9IiBOTAorICAgICJ2c3RtZGIgc3AhLCB7ZDgtZDE1fSIgTkwKKyAgICAibW92ICIgUEFJ
TlRJTkdfREFUQV9SICIsIHIwIiBOTAorICAgICJsZHIgcjAsIFsiIFBBSU5USU5HX0RBVEFfUiAi
LCAjIiBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgcjEsIFsiIFBBSU5U
SU5HX0RBVEFfUiAiLCAjIiBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisgICAgImxk
ciAiIFBJWEVMU19SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBQSVhFTFNfT0ZGU0VUICJd
IiBOTAorICAgICJsZHIgIiBXSURUSF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBXSURU
SF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIEhFSUdIVF9SICIsIFsiIFBBSU5USU5HX0RBVEFf
UiAiLCAjIiBIRUlHSFRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBGTEFHU19SICIsIFsiIFBB
SU5USU5HX0RBVEFfUiAiLCAjIiBGTEFHU19PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNQRUNV
TEFSX0VYUE9ORU5UX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFNQRUNVTEFSX0VYUE9O
RU5UX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgQ09ORV9FWFBPTkVOVF9SICIsIFsiIFBBSU5U
SU5HX0RBVEFfUiAiLCAjIiBDT05FX0VYUE9ORU5UX09GRlNFVCAiXSIgTkwKKyAgICAidmxkMS5m
MzIgeyAiIFJFQUQxX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuZjMyIHsgIiBSRUFE
Ml9SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLmYzMiB7ICIgUkVBRDNfUkFOR0UgIiB9
LCBbcjBdISIgTkwKKyAgICAidmxkMS5zMTYgeyIgUkVBRDRfUkFOR0UgIn0sIFtyMV0hIiBOTAor
ICAgICJ2bGQxLnMxNiB7IiBSRUFENV9SQU5HRSAifSwgW3IxXSEiIE5MCisgICAgIm1vdiAiIFND
QU5MSU5FX1IgIiwgIiBXSURUSF9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRkICIgU0NBTkxJTkVf
UiAiLCAiIFNDQU5MSU5FX1IgIiwgIzgiIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIgUElY
RUxTX1IgIiwgIiBTQ0FOTElORV9SIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIgUElYRUxT
X1IgIiwgIzMiIE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInZtb3YuZjMyICIgQ09OU1Rf
WkVST19TICIsIHIwIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1lfUyAiLCAiIENPTlNU
X09ORV9TIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUE9UX0xJ
R0hUKSBOTAorICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAiIENPTE9SX1EgTkwKKyAg
ICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKKworIi5tYWlubG9vcDoiIE5M
CisgICAgIm1vdiByMywgIzMiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWF9TICIsICIg
Q09OU1RfT05FX1MgTkwKKworIi5zY2FubGluZToiIE5MCisgICAgLy8gUmVhZGluZyB0aGUgbmV4
dCBwaXhlbCB0byB0aGUgUk9XIGRhdGEuCisgICAgImxkcmIgcjAsIFsiIFBJWEVMU19SICIsIC0i
IFNDQU5MSU5FX1IgIl0iIE5MCisgICAgImxkcmIgcjEsIFsiIFBJWEVMU19SICIsICsiIFNDQU5M
SU5FX1IgIl0iIE5MCisgICAgImxkcmIgcjIsIFsiIFBJWEVMU19SICJdLCAjNCIgTkwKKyAgICAi
dmV4dC5zMTYgIiBUT1BfUk9XX0QgIiwgIiBUT1BfUk9XX0QgIiwgIiBUT1BfUk9XX0QgIiwgIzMi
IE5MCisgICAgInZleHQuczE2ICIgTUlERExFX1JPV19EICIsICIgTUlERExFX1JPV19EICIsICIg
TUlERExFX1JPV19EICIsICMzIiBOTAorICAgICJ2ZXh0LnMxNiAiIEJPVFRPTV9ST1dfRCAiLCAi
IEJPVFRPTV9ST1dfRCAiLCAiIEJPVFRPTV9ST1dfRCAiLCAjMyIgTkwKKyAgICAidm1vdi5zMTYg
IiBUT1BfUk9XX0QgIlsxXSwgcjAiIE5MCisgICAgInZtb3YuczE2ICIgTUlERExFX1JPV19EICJb
MV0sIHIyIiBOTAorICAgICJ2bW92LnMxNiAiIEJPVFRPTV9ST1dfRCAiWzFdLCByMSIgTkwKKwor
ICAgICJzdWJzIHIzLCByMywgIzEiIE5MCisgICAgImJuZSAuc2NhbmxpbmUiIE5MCisKKyAgICAv
LyBMaWdodCB2ZWN0b3IgZ29lcyB0byBUTVAxX1EuCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIg
VE9TVFJJTkcoRkxBR19QT0lOVF9MSUdIVCB8IEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYmVx
IC5kaXN0YW50TGlnaHQiIE5MCisKKyAgICAidm1vdi5zMTYgcjMsICIgTUlERExFX1JPV19EICJb
Ml0iIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWl9TICIsIHIzIiBOTAorICAgICJ2Y3Z0
LmYzMi5zMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgTkwKKyAgICAidm11bC5m
MzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgIiwgIiBTQ0FMRV9TIE5MCisKKyAg
ICAidnN1Yi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RICIsICIgUE9TSVRJT05fUSBOTAorICAg
IEdFVF9MRU5HVEgoVE1QMSwgVE1QMikKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RS
SU5HKEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYm5lIC5jb3NpbmVPZkFuZ2xlIiBOTAorIi52
aXNpYmxlUGl4ZWw6IiBOTAorCisgICAgLy8gTW92aW5nIHRoZSA4IGFscGhhIHZhbHVlIHRvIEFM
UEhBLgorICAgICJ2dGJsLjggIiBUTVAzX0QwICIsICIgQUxMX1JPV1NfRCAiLCAiIFJFTUFQWF9E
IE5MCisgICAgInZ0YmwuOCAiIFRNUDNfRDEgIiwgIiBBTExfUk9XU19EICIsICIgUkVNQVBZX0Qg
TkwKKworICAgIC8vIE11bHRpcGx5IGJ5IEFMUEhBWCBhbmQgQUxQSEFZLgorICAgICJ2bXVsLnMx
NiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAiIEFMUEhBWF9RIE5MCisgICAgInZwYWRkLnMxNiAi
IFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBU
TVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1Q
Ml9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIwLCAiIFRN
UDJfRDAgIlswXSIgTkwKKworICAgICJ2bXVsLnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAi
IEFMUEhBWV9RIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIg
VE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRN
UDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAy
X0QwIE5MCisgICAgInZtb3YuczE2IHIxLCAiIFRNUDJfRDAgIlswXSIgTkwKKworICAgIC8vIENh
bGN1bGF0aW5nIGxpZ2h0LgorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdf
U1BPVF9MSUdIVCkgTkwKKyAgICAiYmVxIC5lbmRMaWdodCIgTkwKKworICAgICJ2bmVnLmYzMiAi
IFRNUDNfUzEgIiwgIiBDT1NJTkVfT0ZfQU5HTEUgTkwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAj
IiBUT1NUUklORyhGTEFHX0NPTkVfRVhQT05FTlRfSVNfMSkgTkwKKyAgICAiYmVxIC5jb25lRXhw
UG93ZiIgTkwKKyIuY29uZUV4cFBvd2ZGaW5pc2hlZDoiIE5MCisKKyAgICAidmNtcC5mMzIgIiBD
T1NJTkVfT0ZfQU5HTEUgIiwgIiBDT05FX0ZVTExfTElHSFRfUyBOTAorICAgICJmbXN0YXQiIE5M
CisgICAgImJoaSAuY3V0T2ZmIiBOTAorIi5jdXRPZmZGaW5pc2hlZDoiIE5MCisKKyAgICAidm1p
bi5mMzIgIiBUTVAzX0QwICIsICIgVE1QM19EMCAiLCAiIENPTlNUX09ORV9ISV9EIE5MCisgICAg
InZtdWwuZjMyICIgQ09MT1JfUSAiLCAiIFNQT1RfQ09MT1JfUSAiLCAiIFRNUDNfRDAgIlsxXSIg
TkwKKworIi5lbmRMaWdodDoiIE5MCisgICAgLy8gcjAgY29udGFpbnMgbm9ybWFsVmVjdG9yIFgu
CisgICAgLy8gcjEgY29udGFpbnMgbm9ybWFsVmVjdG9yIFkuCisgICAgLy8gVE1QMV9RIGNvbnRh
aW5zIHRoZSBsaWdodCB2ZWN0b3IgYW5kIGl0cyBsZW5ndGguCisgICAgLy8gQ09MT1JfUSBjb250
YWlucyB0aGUgY29sb3Igb2YgdGhlIGxpZ2h0IHZlY3Rvci4KKworICAgIC8vIFRlc3RpbmcgYm90
aCByMCBhbmQgcjEgYXJlIHplcm8gKE5vcm1hbCB2ZWN0b3IgaXMgKDAsIDAsIDEpKS4KKyAgICAi
b3JycyByMiwgcjAsIHIxIiBOTAorICAgICJibmUgLm5vcm1hbFZlY3RvcklzTm9uWmVybyIgTkwK
KworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfTElHSFQp
IE5MCisgICAgImJuZSAuc3BlY3VsYXJMaWdodDEiIE5MCisKKyAgICBNVUxUSVBMWV9CWV9ESUZG
VVNFX0NPTlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxjdWxh
dGVkIiBOTAorCisiLnNwZWN1bGFyTGlnaHQxOiIgTkwKKyAgICAvLyBDYWxjdWxhdGluZyBzcGVj
dWxhciBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICAidmFkZC5mMzIgIiBUTVAxX1MyICIs
ICIgVE1QMV9TMiAiLCAiIFRNUDFfUzMgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDEsIFRNUDIpCisK
KyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0VYUE9ORU5U
X0lTXzEpIE5MCisgICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMV9TMiAiLCAiIFRN
UDFfUzMgTkwKKyAgICAiYmVxIC5zcGVjdWxhckV4cFBvd2YiIE5MCisKKyAgICBNVUxUSVBMWV9C
WV9ESUZGVVNFX0NPTlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhD
YWxjdWxhdGVkIiBOTAorCisiLm5vcm1hbFZlY3RvcklzTm9uWmVybzoiIE5MCisgICAgLy8gQ2Fs
Y3VsYXRpbmcgc3BlY3VsYXIgbGlnaHRpbmcgbGlnaHQgc3RyZW5ndGguCisgICAgInZtb3YuczMy
ICIgVE1QMl9TMCAiLCByMCIgTkwKKyAgICAidmN2dC5mMzIuczMyICIgVE1QMl9TMCAiLCAiIFRN
UDJfUzAgTkwKKyAgICAidm11bC5mMzIgIiBUTVAyX1MwICIsICIgVE1QMl9TMCAiLCAiIFNDQUxF
X0RJVjRfUyBOTAorICAgICJ2bW92LnMzMiAiIFRNUDJfUzEgIiwgcjEiIE5MCisgICAgInZjdnQu
ZjMyLnMzMiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxIE5MCisgICAgInZtdWwuZjMyICIgVE1QMl9T
MSAiLCAiIFRNUDJfUzEgIiwgIiBTQ0FMRV9ESVY0X1MgTkwKKyAgICAidm1vdi5mMzIgIiBUTVAy
X1MyICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDIsIFRNUDMpCisKKyAg
ICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0xJR0hUKSBOTAor
ICAgICJibmUgLnNwZWN1bGFyTGlnaHQyIiBOTAorCisgICAgLy8gQ2FsY3VsYXRpbmcgZGlmZnVz
ZSBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAyLCBU
TVAxKQorICAgIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykKKyAg
ICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCisKKyIuc3BlY3VsYXJMaWdodDI6IiBO
TAorICAgIC8vIENhbGN1bGF0aW5nIHNwZWN1bGFyIGxpZ2h0aW5nIGxpZ2h0IHN0cmVuZ3RoLgor
ICAgICJ2YWRkLmYzMiAiIFRNUDFfUzIgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBOTAorICAg
IEdFVF9MRU5HVEgoVE1QMSwgVE1QMykKKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAyLCBUTVAx
KQorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9FWFBP
TkVOVF9JU18xKSBOTAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDNfUzAgIiwg
IiBUTVAzX1MzIE5MCisgICAgImJlcSAuc3BlY3VsYXJFeHBQb3dmIiBOTAorICAgIE1VTFRJUExZ
X0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykKKworIi5saWdodFN0cmVuZ3RoQ2Fs
Y3VsYXRlZDoiIE5MCisgICAgLy8gVE1QMl9TMSBjb250YWlucyB0aGUgbGlnaHQgc3RyZW5ndGgu
CisgICAgInZtYXguZjMyICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBDT05TVF9aRVJPX0hJ
X0QgTkwKKyAgICAidm1pbi5mMzIgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIENPTlNUX09O
RV9ISV9EIE5MCisgICAgInZtdWwuZjMyICIgVE1QM19RICIsICIgQ09MT1JfUSAiLCAiIFRNUDJf
RDAgIlsxXSIgTkwKKyAgICAidmN2dC51MzIuZjMyICIgVE1QM19RICIsICIgVE1QM19RIE5MCisg
ICAgInZtb3YudTMyIHIyLCByMywgIiBUTVAzX1MwICIsICIgVE1QM19TMSBOTAorICAgICJzdHJi
IHIyLCBbIiBQSVhFTFNfUiAiLCAjLTExXSIgTkwKKyAgICAic3RyYiByMywgWyIgUElYRUxTX1Ig
IiwgIy0xMF0iIE5MCisgICAgInZtb3YudTMyIHIyLCAiIFRNUDNfUzIgTkwKKyAgICAic3RyYiBy
MiwgWyIgUElYRUxTX1IgIiwgIy05XSIgTkwKKworICAgIC8vIENvbnRpbnVlIHNjYW5saW5lLgor
Ii5pbnZpc2libGVQaXhlbDoiIE5MCisgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWF9TICIsICIg
Q09OU1RfT05FX1MgTkwKKyAgICAibW92IHIzLCAjMSIgTkwKKyAgICAic3VicyAiIFdJRFRIX1Ig
IiwgIiBXSURUSF9SICIsICMxIiBOTAorICAgICJibmUgLnNjYW5saW5lIiBOTAorCisgICAgLy8g
TmV4dCBsaW5lCisgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWV9TICIsICIgQ09OU1RfT05FX1Mg
TkwKKyAgICAibW92ICIgV0lEVEhfUiAiLCAiIFJFU0VUX1dJRFRIX1IgTkwKKyAgICAic3VicyAi
IEhFSUdIVF9SICIsICIgSEVJR0hUX1IgIiwgIzEiIE5MCisgICAgImJuZSAubWFpbmxvb3AiIE5M
CisKKyAgICAidmxkbWlhIHNwISwge2Q4LWQxNX0iIE5MCisgICAgImxkbWlhIHNwISwge3I0LXI4
LCByMTAsIHIxMSwgcGN9IiBOTAorCisiLmRpc3RhbnRMaWdodDoiIE5MCisgICAgInZtb3YuZjMy
ICIgVE1QMV9RICIsICIgTElHSFRfUSBOTAorICAgICJiIC52aXNpYmxlUGl4ZWwiIE5MCisKKyIu
Y29zaW5lT2ZBbmdsZToiIE5MCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMSwgRElSRUNUSU9O
KQorICAgICJ2ZGl2LmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIFRNUDNfUzAgIiwgIiBUTVAx
X1MzIE5MCisgICAgInZjbXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgQ09ORV9DVVRfT0ZG
X1MgTkwKKyAgICAiZm1zdGF0IiBOTAorICAgICJibHMgLnZpc2libGVQaXhlbCIgTkwKKyAgICAi
bW92IHIwLCAjMCIgTkwKKyAgICAic3RyaCByMCwgWyIgUElYRUxTX1IgIiwgIy0xMV0iIE5MCisg
ICAgInN0cmIgcjAsIFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisgICAgImIgLmludmlzaWJsZVBp
eGVsIiBOTAorCisiLmN1dE9mZjoiIE5MCisgICAgInZzdWIuZjMyICIgVE1QM19TMCAiLCAiIENP
TkVfQ1VUX09GRl9TICIsICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInZkaXYuZjMyICIgVE1Q
M19TMCAiLCAiIFRNUDNfUzAgIiwgIiBDT05FX0NVVF9PRkZfUkFOR0VfUyBOTAorICAgICJ2bXVs
LmYzMiAiIFRNUDNfUzEgIiwgIiBUTVAzX1MxICIsICIgVE1QM19TMCBOTAorICAgICJiIC5jdXRP
ZmZGaW5pc2hlZCIgTkwKKworIi5jb25lRXhwUG93ZjoiIE5MCisgICAgUE9XRihUTVAzX1MxLCBD
T05FX0VYUE9ORU5UX1IpCisgICAgImIgLmNvbmVFeHBQb3dmRmluaXNoZWQiIE5MCisKKyIuc3Bl
Y3VsYXJFeHBQb3dmOiIgTkwKKyAgICBQT1dGKFRNUDJfUzEsIFNQRUNVTEFSX0VYUE9ORU5UX1Ip
CisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19ESUZGVVNFX0NPTlNUX0lT
XzEpIE5MCisgICAgInZtdWxlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIERJRkZV
U0VfQ09OU1RfUyBOTAorICAgICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKyk7CisK
KyNlbmRpZiAvLyBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJ
TUQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGln
aHRpbmdOZW9uU0lNRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNWNh
MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuaApAQCAtMCwwICsxLDkyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgWm9sdGFuIEhlcmN6ZWcKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZFTGlnaHRpbmdOZW9uU0lNRF9o
CisjZGVmaW5lIEZFTGlnaHRpbmdOZW9uU0lNRF9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKworLy8gT3RoZXJ3aXNlOiBE
aXN0YW50IExpZ2h0LgorI2RlZmluZSBGTEFHX1BPSU5UX0xJR0hUICAgICAgICAgICAgICAgICAw
eDAxCisjZGVmaW5lIEZMQUdfU1BPVF9MSUdIVCAgICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZp
bmUgRkxBR19DT05FX0VYUE9ORU5UX0lTXzEgICAgICAgICAgMHgwNAorCisvLyBPdGhlcndpc2U6
IERpZmZ1c2UgbGlnaHQuCisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfTElHSFQgICAgICAgICAgICAg
IDB4MTAKKyNkZWZpbmUgRkxBR19ESUZGVVNFX0NPTlNUX0lTXzEgICAgICAgICAgMHgyMAorI2Rl
ZmluZSBGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lTXzEgICAgICAweDQwCisKKy8vIE11c3QgYmUg
YWxpZ25lZCB0byAxNiBieXRlcy4KK3N0cnVjdCBGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JO
ZW9uIHsKKyAgICBmbG9hdCBzdXJmYWNlU2NhbGU7CisgICAgZmxvYXQgbWludXNTdXJmYWNlU2Nh
bGVEaXZpZGVkQnlGb3VyOworICAgIGZsb2F0IGRpZmZ1c2VDb25zdGFudDsKKyAgICBmbG9hdCBw
YWRkaW5nMTsKKworICAgIGZsb2F0IGNvbmVDdXRPZmZMaW1pdDsKKyAgICBmbG9hdCBjb25lRnVs
bExpZ2h0OworICAgIGZsb2F0IGNvbmVDdXRPZmZSYW5nZTsKKyAgICBmbG9hdCBjb25zdE9uZTsK
KworICAgIGZsb2F0IGxpZ2h0WDsKKyAgICBmbG9hdCBsaWdodFk7CisgICAgZmxvYXQgbGlnaHRa
OworICAgIGZsb2F0IHBhZGRpbmcyOworCisgICAgZmxvYXQgZGlyZWN0aW9uWDsKKyAgICBmbG9h
dCBkaXJlY3Rpb25ZOworICAgIGZsb2F0IGRpcmVjdGlvblo7CisgICAgZmxvYXQgcGFkZGluZzM7
CisKKyAgICBmbG9hdCBjb2xvclJlZDsKKyAgICBmbG9hdCBjb2xvckdyZWVuOworICAgIGZsb2F0
IGNvbG9yQmx1ZTsKKyAgICBmbG9hdCBwYWRkaW5nNDsKK307CisKK3N0cnVjdCBGRUxpZ2h0aW5n
UGFpbnRpbmdEYXRhRm9yTmVvbiB7CisgICAgdW5zaWduZWQgY2hhciogcGl4ZWxzOworICAgIGlu
dCB3aWR0aERlY3JlYXNlZEJ5VHdvOworICAgIGludCBoZWlnaHREZWNyZWFzZWRCeVR3bzsKKyAg
ICAvLyBDb21iaW5hdGlvbiBvZiBGTEFHIGNvbnN0YW50cyBhYm92ZS4KKyAgICBpbnQgZmxhZ3M7
CisgICAgaW50IHNwZWN1bGFyRXhwb25lbnQ7CisgICAgaW50IGNvbmVFeHBvbmVudDsKKyAgICBG
RUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uKiBmbG9hdEFyZ3VtZW50czsKKyAgICBzaG9y
dCogcGFpbnRpbmdDb25zdGFudHM7Cit9OworCitleHRlcm4gc2hvcnQgc19GRUxpZ2h0aW5nQ29u
c3RhbnRzRm9yTmVvbls4ICogM107CisKK2V4dGVybiAiQyIgewordm9pZCBuZW9uRHJhd0xpZ2h0
aW5nKEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uKik7Cit9CisKKyNlbmRpZiAvLyBDUFUo
QVJNKSAmJiBFTkFCTEUoQVJNX05FT04pCisKKyNlbmRpZiAvLyBGRUxpZ2h0aW5nTmVvblNJTURf
aAotLSAKMS42LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83296</attachid>
            <date>2011-02-22 04:11:33 -0800</date>
            <delta_ts>2011-03-01 02:33:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>29837</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA0NmRlMzA1M2VkZGMwNGI1YjYxMDNhNDliMjY4MTIwYzQ2ODY4NTdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogVHVlLCAyMiBGZWIgMjAxMSAyMDowNzoyMSArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGxp
Z2h0LW5lb24KCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oICAgICAg
ICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyMiArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUxpZ2h0aW5nLmNwcCAgICAgICB8ICAxMTAgKysrKysKIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIHwgICAgNSArCiAuLi4vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmNwcCAgICB8ICA0MTcgKysrKysrKysrKysr
KysrKysrKysKIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuaCAg
ICAgIHwgICA5NiArKysrKwogOCBmaWxlcyBjaGFuZ2VkLCA2NTggaW5zZXJ0aW9ucygrKSwgMSBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdo
dGluZ05lb25TSU1ELmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggMWE5
YWZjYi4uM2M0MTM2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMzQ3
LDYgKzM0NywxMCBAQAogIyAgZXJyb3IgIkNhbm5vdCB1c2UgYm90aCBvZiBXVEZfQ1BVX0FSTV9U
UkFESVRJT05BTCBhbmQgV1RGX0NQVV9BUk1fVEhVTUIyIHBsYXRmb3JtcyIKICNlbmRpZiAvKiAh
ZGVmaW5lZChXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCkgJiYgIWRlZmluZWQoV1RGX0NQVV9BUk1f
VEhVTUIyKSAqLwogCisjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pCisjZGVmaW5lIEVOQUJMRV9B
Uk1fTkVPTiAxCisjZW5kaWYKKwogI2VuZGlmIC8qIEFSTSAqLwogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBk
MzE4NGNlLi5jODczMzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDItMTcg
IFpvbHRhbiBIZXJjemVnICA8emhlcmN6ZWdAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcHRpbWl6aW5nIGxpZ2h0bmluZyBmaWx0
ZXIgdG8gQVJNLW5lb24gU0lNRCBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NDU2CisKKyAgICAgICAgTmVvbiBpcyB0aGUg
U0lNRCBpbnN0cnVjdGlvbiBzZXQgZm9yIGFybS4gVGhpcyBpbnN0cnVjdGlvbiBzZXQKKyAgICAg
ICAgYWxsb3dzIHRvIHNwZWVkLXVwIHRoZSBsaWdodGluZyBmaWx0ZXIgYnkgNCB0aW1lcyBvbiBh
cm0KKyAgICAgICAgKG9uIFdlYkNvcmUvbWFudWFsLXRlc3RzL3N2Zy1maWx0ZXItYW5pbWF0aW9u
LnN2ZykuCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmdldFBvd2VyQ29lZmZpY2llbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6
OmRyYXdJbnRlcmlvclBpeGVscyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05lb25TSU1ELmNwcDogQWRkZWQuCisgICAgICAgIChfX2F0dHJpYnV0ZV9fKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJ
TUQuaDogQWRkZWQuCisKIDIwMTEtMDItMjIgIFN0ZXZlIExhY2V5ICA8c2psQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4
IDMzODVmNDguLjQ5OWZmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC05NSw2ICs5NSw3IEBAIFdFQkNP
UkVfSU5DTFVERVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8gXAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKKyAgICAkJFNP
VVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogICAgICQkU09VUkNF
X0RJUi9XZWJDb3JlL3BsYXRmb3JtL21vY2sgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2MzliNDE2Li43
OTVjZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjAxOSw2ICsyMDE5LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRQb2ludDNELmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmggXApAQCAtMzI3Niw3ICszMjc3LDggQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9MSkgewogICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgXAotICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwCiB9CiAKIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9NQVRITUw9MSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKaW5kZXggZWMxY2E4OC4uNDBmNDA3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TGlnaHRpbmcuY3BwCkBAIC0zMCw2ICszMCwxMiBAQAogI2luY2x1ZGUgIkZFTGlnaHRpbmcuaCIK
IAogI2luY2x1ZGUgIkxpZ2h0U291cmNlLmgiCisjaW5jbHVkZSAiUG9pbnRMaWdodFNvdXJjZS5o
IgorI2luY2x1ZGUgIlNwb3RMaWdodFNvdXJjZS5oIgorCisjaWYgQ1BVKEFSTSkgJiYgRU5BQkxF
KEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisjaW5jbHVkZSAiRkVMaWdodGluZ05lb25TSU1E
LmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMDEsNiArMzA3LDkgQEAg
Ym9vbCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0
aCwgaW50IGhlaWdodCkKIAogICAgIGlmICh3aWR0aCA+PSAzICYmIGhlaWdodCA+PSAzKSB7CiAg
ICAgICAgIC8vIEludGVyaW9yIHBpeGVscworI2lmIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVP
TikgJiYgQ09NUElMRVIoR0NDKQorICAgICAgICBkcmF3SW50ZXJpb3JQaXhlbHMoZGF0YSwgcGFp
bnRpbmdEYXRhKTsKKyNlbHNlCiAgICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWln
aHREZWNyZWFzZWRCeU9uZTsgKyt5KSB7CiAgICAgICAgICAgICBvZmZzZXQgPSB5ICogZGF0YS53
aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSArIGNQaXhlbFNpemU7CiAgICAgICAgICAgICBmb3Ig
KGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNyZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0g
Y1BpeGVsU2l6ZSkgewpAQCAtMzA4LDYgKzMxNyw3IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJhd0xp
Z2h0aW5nKEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgICAg
ICAgICAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgsIHks
IGNGYWN0b3IxZGl2NCwgY0ZhY3RvcjFkaXY0LCBub3JtYWxWZWN0b3IpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBpbnQgbGFzdFBpeGVsID0gZGF0YS53
aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSAqIGhlaWdodDsKQEAgLTM1NCw2ICszNjQsMTA2IEBA
IHZvaWQgRkVMaWdodGluZzo6YXBwbHkoKQogICAgIGRyYXdMaWdodGluZyhzcmNQaXhlbEFycmF5
LCBhYnNvbHV0ZVBhaW50U2l6ZS53aWR0aCgpLCBhYnNvbHV0ZVBhaW50U2l6ZS5oZWlnaHQoKSk7
CiB9CiAKKyNpZiBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykK
Kworc3RhdGljIGludCBnZXRQb3dlckNvZWZmaWNpZW50cyhmbG9hdCBleHBvbmVudCkKK3sKKyAg
ICBpbnQgaSwgcmVzdWx0OworCisgICAgaWYgKGV4cG9uZW50IDwgMCkKKyAgICAgICAgZXhwb25l
bnQgPSAxIC8gKC1leHBvbmVudCk7CisKKyAgICBpZiAoZXhwb25lbnQgPiA2My45OSkKKyAgICAg
ICAgZXhwb25lbnQgPSA2My45OTsKKworICAgIGV4cG9uZW50IC89IDY0OworICAgIHJlc3VsdCA9
IDA7CisgICAgZm9yIChpID0gMTE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGV4cG9uZW50ICo9
IDI7CisgICAgICAgIGlmIChleHBvbmVudCA+PSAxKSB7CisgICAgICAgICAgICByZXN1bHQgfD0g
MSA8PCBpOworICAgICAgICAgICAgZXhwb25lbnQgLT0gMTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIEZFTGlnaHRpbmc6OmRyYXdJbnRlcmlvclBpeGVs
cyhMaWdodGluZ0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5n
RGF0YSkKK3sKKyAgICBGRUxpZ2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiBuZW9uRGF0YTsKKyAg
ICBjaGFyIGJ1ZmZlcltzaXplb2YoRkVMaWdodGluZ0Zsb2F0QXJndW1lbnRzRm9yTmVvbikgKyAx
Nl07CisgICAgRkVMaWdodGluZ0Zsb2F0QXJndW1lbnRzRm9yTmVvbiogZmxvYXRBcmd1bWVudHMg
PSByZWludGVycHJldF9jYXN0PEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24qPigocmVp
bnRlcnByZXRfY2FzdDxsb25nPihidWZmZXIpICsgMTUpICYgfjB4Zik7CisKKyAgICBuZW9uRGF0
YS5waXhlbHMgPSBkYXRhLnBpeGVscy0+ZGF0YSgpOworICAgIG5lb25EYXRhLndpZHRoRGVjcmVh
c2VkQnlUd28gPSBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUgLSAxOworICAgIG5lb25EYXRhLmhl
aWdodERlY3JlYXNlZEJ5VHdvID0gZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZSAtIDE7CisgICAg
bmVvbkRhdGEuZmxhZ3MgPSAwOworICAgIG5lb25EYXRhLnNwZWN1bGFyRXhwb25lbnQgPSAwOwor
ICAgIG5lb25EYXRhLmNvbmVFeHBvbmVudCA9IDA7CisgICAgbmVvbkRhdGEuZmxvYXRBcmd1bWVu
dHMgPSBmbG9hdEFyZ3VtZW50czsKKyAgICBuZW9uRGF0YS5wYWludGluZ0NvbnN0YW50cyA9IHNf
RkVMaWdodGluZ0NvbnN0YW50c0Zvck5lb247CisKKyAgICAvLyBTZXQgbGlnaHQgc291cmNlIGFy
Z3VtZW50cy4KKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29uc3RPbmUgPSAxOworCisgICAgZmxvYXRB
cmd1bWVudHMtPmNvbG9yUmVkID0gbV9saWdodGluZ0NvbG9yLnJlZCgpOworICAgIGZsb2F0QXJn
dW1lbnRzLT5jb2xvckdyZWVuID0gbV9saWdodGluZ0NvbG9yLmdyZWVuKCk7CisgICAgZmxvYXRB
cmd1bWVudHMtPmNvbG9yQmx1ZSA9IG1fbGlnaHRpbmdDb2xvci5ibHVlKCk7CisgICAgZmxvYXRB
cmd1bWVudHMtPnBhZGRpbmc0ID0gMDsKKworICAgIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkg
PT0gTFNfUE9JTlQpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19QT0lOVF9MSUdI
VDsKKyAgICAgICAgUG9pbnRMaWdodFNvdXJjZSogcG9pbnRMaWdodFNvdXJjZSA9IHN0YXRpY19j
YXN0PFBvaW50TGlnaHRTb3VyY2UqPihtX2xpZ2h0U291cmNlLmdldCgpKTsKKyAgICAgICAgZmxv
YXRBcmd1bWVudHMtPmxpZ2h0WCA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOwor
ICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRZID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRp
b24oKS55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFogPSBwb2ludExpZ2h0U291
cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPnBhZGRpbmcyID0g
MDsKKyAgICB9IGVsc2UgaWYgKG1fbGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19TUE9UKSB7Cisg
ICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BPVF9MSUdIVDsKKyAgICAgICAgU3BvdExp
Z2h0U291cmNlKiBzcG90TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxTcG90TGlnaHRTb3VyY2Uq
PihtX2xpZ2h0U291cmNlLmdldCgpKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WCA9
IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRz
LT5saWdodFkgPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOworICAgICAgICBmbG9h
dEFyZ3VtZW50cy0+bGlnaHRaID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMtPnBhZGRpbmcyID0gMDsKKworICAgICAgICBmbG9hdEFyZ3Vt
ZW50cy0+ZGlyZWN0aW9uWCA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueCgpOworICAg
ICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlyZWN0aW9uWSA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25W
ZWN0b3IueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlyZWN0aW9uWiA9IHBhaW50aW5n
RGF0YS5kaXJlY3Rpb25WZWN0b3IueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGlu
ZzMgPSAwOworCisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5jb25lQ3V0T2ZmTGltaXQgPSBwYWlu
dGluZ0RhdGEuY29uZUN1dE9mZkxpbWl0OworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+Y29uZUZ1
bGxMaWdodCA9IHBhaW50aW5nRGF0YS5jb25lRnVsbExpZ2h0OworICAgICAgICBmbG9hdEFyZ3Vt
ZW50cy0+Y29uZUN1dE9mZlJhbmdlID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdCAtIHBh
aW50aW5nRGF0YS5jb25lRnVsbExpZ2h0OworICAgICAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQg
PSBnZXRQb3dlckNvZWZmaWNpZW50cyhzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQo
KSk7CisgICAgICAgIGlmIChzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSA9PSAx
KQorICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19DT05FX0VYUE9ORU5UX0lTXzE7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fbGlnaHRTb3VyY2UudHlwZSA9PSBMU19E
SVNUQU5UKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WCA9IHBhaW50aW5nRGF0YS5s
aWdodFZlY3Rvci54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFkgPSBwYWludGlu
Z0RhdGEubGlnaHRWZWN0b3IueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRaID0g
cGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPnBh
ZGRpbmcyID0gMTsKKyAgICB9CisKKyAgICAvLyBTZXQgbGlnaHRuaWcgYXJndW1lbnRzLgorICAg
IGZsb2F0QXJndW1lbnRzLT5zdXJmYWNlU2NhbGUgPSBkYXRhLnN1cmZhY2VTY2FsZTsKKyAgICBm
bG9hdEFyZ3VtZW50cy0+bWludXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyID0gLWRhdGEuc3Vy
ZmFjZVNjYWxlIC8gNDsKKyAgICBpZiAobV9saWdodGluZ1R5cGUgPT0gRkVMaWdodGluZzo6RGlm
ZnVzZUxpZ2h0aW5nKQorICAgICAgICBmbG9hdEFyZ3VtZW50cy0+ZGlmZnVzZUNvbnN0YW50ID0g
bV9kaWZmdXNlQ29uc3RhbnQ7CisgICAgZWxzZSB7CisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9
IEZMQUdfU1BFQ1VMQVJfTElHSFQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaWZmdXNlQ29u
c3RhbnQgPSBtX3NwZWN1bGFyQ29uc3RhbnQ7CisgICAgICAgIG5lb25EYXRhLnNwZWN1bGFyRXhw
b25lbnQgPSBnZXRQb3dlckNvZWZmaWNpZW50cyhtX3NwZWN1bGFyRXhwb25lbnQpOworICAgICAg
ICBpZiAobV9zcGVjdWxhckV4cG9uZW50ID09IDEpCisgICAgICAgICAgICBuZW9uRGF0YS5mbGFn
cyB8PSBGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lTXzE7CisgICAgfQorICAgIGlmIChmbG9hdEFy
Z3VtZW50cy0+ZGlmZnVzZUNvbnN0YW50ID09IDEpCisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9
IEZMQUdfRElGRlVTRV9DT05TVF9JU18xOworCisgICAgbmVvbkRyYXdMaWdodGluZygmbmVvbkRh
dGEpOworfQorI2VuZGlmIC8vIENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikgJiYgQ09NUElM
RVIoR0NDKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRklM
VEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmgKaW5kZXggZmExYzBhYS4uZDA4MTVjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKICNpbmNsdWRlICJMaWdodFNv
dXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvUGxhdGZv
cm0uaD4KIAogLy8gQ29tbW9uIGJhc2UgY2xhc3MgZm9yIEZFRGlmZnVzZUxpZ2h0aW5nIGFuZCBG
RVNwZWN1bGFyTGlnaHRpbmcKIApAQCAtNzksNiArODAsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgc2V0UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50
aW5nRGF0YSYsCiAgICAgICAgICAgICAgICAgICBpbnQgbGlnaHRYLCBpbnQgbGlnaHRZLCBmbG9h
dCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKTsKIAorI2lm
IENQVShBUk0pICYmIEVOQUJMRShBUk1fTkVPTikKKyAgICB2b2lkIGRyYXdJbnRlcmlvclBpeGVs
cyhMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJik7CisjZW5kaWYKKwog
ICAgIExpZ2h0aW5nVHlwZSBtX2xpZ2h0aW5nVHlwZTsKICAgICBSZWZQdHI8TGlnaHRTb3VyY2U+
IG1fbGlnaHRTb3VyY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczMzAzNTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0
aW5nTmVvblNJTUQuY3BwCkBAIC0wLDAgKzEsNDE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWm9sdGFuIEhl
cmN6ZWcKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRkVMaWdodGluZ05l
b25TSU1ELmgiCisKKyNpZiBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pICYmIENPTVBJTEVS
KEdDQykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGVzZSBjb25zdGFudHMgYXJlIGNv
cGllZCB0byB0aGUgZm9sbG93aW5nIFNJTUQgcmVnaXN0ZXJzOgorLy8gICBBTFBIQVhfUSBBTFBI
QVlfUSBSRU1BUFhfRCBSRU1BUFlfRAorCitzaG9ydCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JO
ZW9uW10gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgweDEwKSkpID0geworICAgIC8vIEFscGhhIGNv
ZWZmaWNpZW50cy4KKyAgICAtMiwgMSwgMCwgLTEsIDIsIDEsIDAsIC0xLAorICAgIDAsIC0xLCAt
MiwgLTEsIDAsIDEsIDIsIDEsCisgICAgLy8gUmVtYXBwaW5nIGluZGljaWVzLgorICAgIDB4MGYw
ZSwgMHgwMzAyLCAweDA1MDQsIDB4MDcwNiwKKyAgICAweDBiMGEsIDB4MTMxMiwgMHgxNTE0LCAw
eDE3MTYsCit9OworCisjZGVmaW5lIEFTU1RSSU5HKHN0cikgI3N0cgorI2RlZmluZSBUT1NUUklO
Ryh2YWx1ZSkgQVNTVFJJTkcodmFsdWUpCisKKyNkZWZpbmUgUElYRUxTX09GRlNFVCBUT1NUUklO
RygwKQorI2RlZmluZSBXSURUSF9PRkZTRVQgVE9TVFJJTkcoNCkKKyNkZWZpbmUgSEVJR0hUX09G
RlNFVCBUT1NUUklORyg4KQorI2RlZmluZSBGTEFHU19PRkZTRVQgVE9TVFJJTkcoMTIpCisjZGVm
aW5lIFNQRUNVTEFSX0VYUE9ORU5UX09GRlNFVCBUT1NUUklORygxNikKKyNkZWZpbmUgQ09ORV9F
WFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMjApCisjZGVmaW5lIEZMT0FUX0FSR1VNRU5UU19PRkZT
RVQgVE9TVFJJTkcoMjQpCisjZGVmaW5lIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCBUT1NUUklO
RygyOCkKKyNkZWZpbmUgTkwgIlxuIgorCisvLyBSZWdpc3RlciBhbGxvY2F0aW9uCisjZGVmaW5l
IFBBSU5USU5HX0RBVEFfUiAgICAgICAicjExIgorI2RlZmluZSBSRVNFVF9XSURUSF9SICAgICAg
ICAgUEFJTlRJTkdfREFUQV9SCisjZGVmaW5lIFBJWEVMU19SICAgICAgICAgICAgICAicjQiCisj
ZGVmaW5lIFdJRFRIX1IgICAgICAgICAgICAgICAicjUiCisjZGVmaW5lIEhFSUdIVF9SICAgICAg
ICAgICAgICAicjYiCisjZGVmaW5lIEZMQUdTX1IgICAgICAgICAgICAgICAicjciCisjZGVmaW5l
IFNQRUNVTEFSX0VYUE9ORU5UX1IgICAicjgiCisjZGVmaW5lIENPTkVfRVhQT05FTlRfUiAgICAg
ICAicjEwIgorI2RlZmluZSBTQ0FOTElORV9SICAgICAgICAgICAgInIxMiIKKworI2RlZmluZSBU
TVAxX1EgICAgICAgICAgICAgICAgInEwIgorI2RlZmluZSBUTVAxX0QwICAgICAgICAgICAgICAg
ImQwIgorI2RlZmluZSBUTVAxX1MwICAgICAgICAgICAgICAgInMwIgorI2RlZmluZSBUTVAxX1Mx
ICAgICAgICAgICAgICAgInMxIgorI2RlZmluZSBUTVAxX0QxICAgICAgICAgICAgICAgImQxIgor
I2RlZmluZSBUTVAxX1MyICAgICAgICAgICAgICAgInMyIgorI2RlZmluZSBUTVAxX1MzICAgICAg
ICAgICAgICAgInMzIgorI2RlZmluZSBUTVAyX1EgICAgICAgICAgICAgICAgInExIgorI2RlZmlu
ZSBUTVAyX0QwICAgICAgICAgICAgICAgImQyIgorI2RlZmluZSBUTVAyX1MwICAgICAgICAgICAg
ICAgInM0IgorI2RlZmluZSBUTVAyX1MxICAgICAgICAgICAgICAgInM1IgorI2RlZmluZSBUTVAy
X0QxICAgICAgICAgICAgICAgImQzIgorI2RlZmluZSBUTVAyX1MyICAgICAgICAgICAgICAgInM2
IgorI2RlZmluZSBUTVAyX1MzICAgICAgICAgICAgICAgInM3IgorI2RlZmluZSBUTVAzX1EgICAg
ICAgICAgICAgICAgInEyIgorI2RlZmluZSBUTVAzX0QwICAgICAgICAgICAgICAgImQ0IgorI2Rl
ZmluZSBUTVAzX1MwICAgICAgICAgICAgICAgInM4IgorI2RlZmluZSBUTVAzX1MxICAgICAgICAg
ICAgICAgInM5IgorI2RlZmluZSBUTVAzX0QxICAgICAgICAgICAgICAgImQ1IgorI2RlZmluZSBU
TVAzX1MyICAgICAgICAgICAgICAgInMxMCIKKyNkZWZpbmUgVE1QM19TMyAgICAgICAgICAgICAg
ICJzMTEiCisKKyNkZWZpbmUgQ09TSU5FX09GX0FOR0xFICAgICAgICJzMTIiCisjZGVmaW5lIFBP
V0ZfSU5UX1MgICAgICAgICAgICAiczEzIgorI2RlZmluZSBQT1dGX0ZSQUNfUyAgICAgICAgICAg
InMxNCIKKyNkZWZpbmUgU1BPVF9DT0xPUl9RICAgICAgICAgICJxNCIKKworLy8gQmVjYXVzZSBv
ZiBWTUlOIGFuZCBWTUFYIENPTlNUX1pFUk9fUyBhbmQgQ09OU1RfT05FX1MKKy8vIG11c3QgYmUg
cGxhY2VkIG9uIHRoZSBzYW1lIHNpZGUgb2YgdGhlIGRvdWJsZSB2ZWN0b3IKKworLy8gQ3VycmVu
dCBwaXhlbCBwb3NpdGlvbgorI2RlZmluZSBQT1NJVElPTl9RICAgICAgICAgICAgInE1IgorI2Rl
ZmluZSBQT1NJVElPTl9YX1MgICAgICAgICAgInMyMCIKKyNkZWZpbmUgUE9TSVRJT05fWV9TICAg
ICAgICAgICJzMjEiCisjZGVmaW5lIFBPU0lUSU9OX1pfUyAgICAgICAgICAiczIyIgorI2RlZmlu
ZSBDT05TVF9aRVJPX0hJX0QgICAgICAgImQxMSIKKyNkZWZpbmUgQ09OU1RfWkVST19TICAgICAg
ICAgICJzMjMiCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICBW
YXJpYWJsZSBhcmd1bWVudHMKKy8vIE1pc2MgYXJndW1lbnRzCisjZGVmaW5lIFJFQUQxX1JBTkdF
ICAgICAgICAgICAiZDEyLWQxNSIKKyNkZWZpbmUgUkVBRDJfUkFOR0UgICAgICAgICAgICJkMTYt
ZDE5IgorI2RlZmluZSBSRUFEM19SQU5HRSAgICAgICAgICAgImQyMC1kMjEiCisKKyNkZWZpbmUg
U0NBTEVfUyAgICAgICAgICAgICAgICJzMjQiCisjZGVmaW5lIFNDQUxFX0RJVjRfUyAgICAgICAg
ICAiczI1IgorI2RlZmluZSBESUZGVVNFX0NPTlNUX1MgICAgICAgInMyNiIKKworLy8gTGlnaHQg
c291cmNlIHBvc2l0aW9uCisjZGVmaW5lIENPTkVfQ1VUX09GRl9TICAgICAgICAiczI4IgorI2Rl
ZmluZSBDT05FX0ZVTExfTElHSFRfUyAgICAgInMyOSIKKyNkZWZpbmUgQ09ORV9DVVRfT0ZGX1JB
TkdFX1MgICJzMzAiCisjZGVmaW5lIENPTlNUX09ORV9ISV9EICAgICAgICAiZDE1IgorI2RlZmlu
ZSBDT05TVF9PTkVfUyAgICAgICAgICAgInMzMSIKKworI2RlZmluZSBMSUdIVF9RICAgICAgICAg
ICAgICAgInE4IgorI2RlZmluZSBESVJFQ1RJT05fUSAgICAgICAgICAgInE5IgorI2RlZmluZSBD
T0xPUl9RICAgICAgICAgICAgICAgInExMCIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vICAgIENvbnN0YW50IGNvZWZmaWNpZW50cworI2RlZmluZSBSRUFENF9SQU5HRSAg
ICAgICAgICAgImQyMi1kMjUiCisjZGVmaW5lIFJFQUQ1X1JBTkdFICAgICAgICAgICAiZDI2LWQy
NyIKKworI2RlZmluZSBBTFBIQVhfUSAgICAgICAgICAgICAgInExMSIKKyNkZWZpbmUgQUxQSEFZ
X1EgICAgICAgICAgICAgICJxMTIiCisjZGVmaW5lIFJFTUFQWF9EICAgICAgICAgICAgICAiZDI2
IgorI2RlZmluZSBSRU1BUFlfRCAgICAgICAgICAgICAgImQyNyIKKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworI2RlZmluZSBBTExfUk9XU19EICAgICAgICAgICAgIntkMjgs
ZDI5LGQzMH0iCisjZGVmaW5lIFRPUF9ST1dfRCAgICAgICAgICAgICAiZDI4IgorI2RlZmluZSBN
SURETEVfUk9XX0QgICAgICAgICAgImQyOSIKKyNkZWZpbmUgQk9UVE9NX1JPV19EICAgICAgICAg
ICJkMzAiCisKKyNkZWZpbmUgR0VUX0xFTkdUSChzb3VyY2UsIHRlbXApIFwKKyAgICAidm11bC5m
MzIgIiB0ZW1wIyNfUSAiLCAiIHNvdXJjZSMjX1EgIiwgIiBzb3VyY2UjI19RIE5MIFwKKyAgICAi
dmFkZC5mMzIgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAjI19TMCAiLCAiIHRlbXAjI19TMSBOTCBc
CisgICAgInZhZGQuZjMyICIgc291cmNlIyNfUzMgIiwgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAj
I19TMiBOTCBcCisgICAgInZzcXJ0LmYzMiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMg
TkwKKworLy8gZGVzdGluYXRpb24jI19TMyBjYW4gY29udGFpbiB0aGUgbXVsdGlwbHkgb2YgbGVu
Z3RoLgorI2RlZmluZSBET1RfUFJPRFVDVChkZXN0aW5hdGlvbiwgc291cmNlMSwgc291cmNlMikg
XAorICAgICJ2bXVsLmYzMiAiIGRlc3RpbmF0aW9uIyNfUSAiLCAiIHNvdXJjZTEjI19RICIsICIg
c291cmNlMiMjX1EgTkwgXAorICAgICJ2YWRkLmYzMiAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBk
ZXN0aW5hdGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24jI19TMSBOTCBcCisgICAgInZhZGQuZjMy
ICIgZGVzdGluYXRpb24jI19TMCAiLCAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlv
biMjX1MyIE5MCisKKyNkZWZpbmUgTVVMVElQTFlfQllfRElGRlVTRV9DT05TVChub3JtYWxWZWN0
b3JMZW5ndGgsIGRvdFByb2R1Y3RMZW5ndGgpIFwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBU
T1NUUklORyhGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMSkgTkwgXAorICAgICJ2bXVsZXEuZjMyICIg
VE1QMl9TMSAiLCAiIERJRkZVU0VfQ09OU1RfUyAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0aCBOTCBc
CisgICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIGRvdFByb2R1Y3RM
ZW5ndGggTkwgXAorICAgICJ2ZGl2bmUuZjMyICIgVE1QMl9TMSAiLCAiIG5vcm1hbFZlY3Rvckxl
bmd0aCAiLCAiIGRvdFByb2R1Y3RMZW5ndGggTkwKKworI2RlZmluZSBQT1dGX1NRUih2YWx1ZSwg
ZXhwb25lbnQsIGN1cnJlbnQsIHJlbWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAj
IiBBU1NUUklORyhjdXJyZW50KSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZh
bHVlICIsICIgUE9XRl9JTlRfUyBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RS
SU5HKHJlbWFpbmluZykgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgUE9XRl9JTlRfUyAiLCAiIFBP
V0ZfSU5UX1MgIiwgIiBQT1dGX0lOVF9TIE5MCisKKyNkZWZpbmUgUE9XRl9TUVJUKHZhbHVlLCBl
eHBvbmVudCwgY3VycmVudCwgcmVtYWluaW5nKSBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMi
IEFTU1RSSU5HKHJlbWFpbmluZykgTkwgXAorICAgICJ2c3FydG5lLmYzMiAiIFBPV0ZfRlJBQ19T
ICIsICIgUE9XRl9GUkFDX1MgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklO
RyhjdXJyZW50KSBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIsICIg
UE9XRl9GUkFDX1MgTkwKKworI2RlZmluZSBQT1dGKHZhbHVlLCBleHBvbmVudCkgXAorICAgICJ0
c3QgIiBleHBvbmVudCAiLCAjMHhmYzAiIE5MIFwKKyAgICAidm1vdm5lLmYzMiAiIFBPV0ZfSU5U
X1MgIiwgIiB2YWx1ZSBOTCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMweDAzZiIgTkwgXAor
ICAgICJ2bW92bmUuZjMyICIgUE9XRl9GUkFDX1MgIiwgIiB2YWx1ZSBOTCBcCisgICAgInZtb3Yu
ZjMyICIgdmFsdWUgIiwgIiBDT05TVF9PTkVfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSKHZh
bHVlLCBleHBvbmVudCwgMHgwNDAsIDB4ZjgwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9u
ZW50LCAweDA4MCwgMHhmMDApIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MTAw
LCAweGUwMCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgyMDAsIDB4YzAwKSBc
CisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDQwMCwgMHg4MDApIFwKKyAgICAidHN0
ICIgZXhwb25lbnQgIiwgIzB4ODAwIiBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAi
IHZhbHVlICIsICIgUE9XRl9JTlRfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwg
ZXhwb25lbnQsIDB4MjAsIDB4M2YpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAw
eDEwLCAweDFmKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwOCwgMHgwZikg
XAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDQsIDB4MDcpIFwKKyAgICBQT1dG
X1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDAyLCAweDAzKSBcCisgICAgUE9XRl9TUVJUKHZhbHVl
LCBleHBvbmVudCwgMHgwMSwgMHgwMSkKKworYXNtICgKKyIuZ2xvYmwgIiBUT1NUUklORyhuZW9u
RHJhd0xpZ2h0aW5nKSBOTAorVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCisgICAg
Ly8gTXVzdCBiZSBhbGlnbmVkIHRvIDggYnl0ZXMuCisgICAgInN0bWRiIHNwISwge3I0LXI4LCBy
MTAsIHIxMSwgbHJ9IiBOTAorICAgICJ2c3RtZGIgc3AhLCB7ZDgtZDE1fSIgTkwKKyAgICAibW92
ICIgUEFJTlRJTkdfREFUQV9SICIsIHIwIiBOTAorICAgICJsZHIgcjAsIFsiIFBBSU5USU5HX0RB
VEFfUiAiLCAjIiBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgcjEsIFsi
IFBBSU5USU5HX0RBVEFfUiAiLCAjIiBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisg
ICAgImxkciAiIFBJWEVMU19SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBQSVhFTFNfT0ZG
U0VUICJdIiBOTAorICAgICJsZHIgIiBXSURUSF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAj
IiBXSURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIEhFSUdIVF9SICIsIFsiIFBBSU5USU5H
X0RBVEFfUiAiLCAjIiBIRUlHSFRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBGTEFHU19SICIs
IFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBGTEFHU19PRkZTRVQgIl0iIE5MCisgICAgImxkciAi
IFNQRUNVTEFSX0VYUE9ORU5UX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFNQRUNVTEFS
X0VYUE9ORU5UX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgQ09ORV9FWFBPTkVOVF9SICIsIFsi
IFBBSU5USU5HX0RBVEFfUiAiLCAjIiBDT05FX0VYUE9ORU5UX09GRlNFVCAiXSIgTkwKKyAgICAi
dmxkMS5mMzIgeyAiIFJFQUQxX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuZjMyIHsg
IiBSRUFEMl9SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLmYzMiB7ICIgUkVBRDNfUkFO
R0UgIiB9LCBbcjBdISIgTkwKKyAgICAidmxkMS5zMTYgeyIgUkVBRDRfUkFOR0UgIn0sIFtyMV0h
IiBOTAorICAgICJ2bGQxLnMxNiB7IiBSRUFENV9SQU5HRSAifSwgW3IxXSEiIE5MCisgICAgIm1v
diAiIFNDQU5MSU5FX1IgIiwgIiBXSURUSF9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRkICIgU0NB
TkxJTkVfUiAiLCAiIFNDQU5MSU5FX1IgIiwgIzgiIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIs
ICIgUElYRUxTX1IgIiwgIiBTQ0FOTElORV9SIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIg
UElYRUxTX1IgIiwgIzMiIE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInZtb3YuZjMyICIg
Q09OU1RfWkVST19TICIsIHIwIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1lfUyAiLCAi
IENPTlNUX09ORV9TIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19T
UE9UX0xJR0hUKSBOTAorICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAiIENPTE9SX1Eg
TkwKKyAgICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKKworIi5tYWlubG9v
cDoiIE5MCisgICAgIm1vdiByMywgIzMiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWF9T
ICIsICIgQ09OU1RfT05FX1MgTkwKKworIi5zY2FubGluZToiIE5MCisgICAgLy8gUmVhZGluZyB0
aGUgbmV4dCBwaXhlbCB0byB0aGUgUk9XIGRhdGEuCisgICAgImxkcmIgcjAsIFsiIFBJWEVMU19S
ICIsIC0iIFNDQU5MSU5FX1IgIl0iIE5MCisgICAgImxkcmIgcjEsIFsiIFBJWEVMU19SICIsICsi
IFNDQU5MSU5FX1IgIl0iIE5MCisgICAgImxkcmIgcjIsIFsiIFBJWEVMU19SICJdLCAjNCIgTkwK
KyAgICAidmV4dC5zMTYgIiBUT1BfUk9XX0QgIiwgIiBUT1BfUk9XX0QgIiwgIiBUT1BfUk9XX0Qg
IiwgIzMiIE5MCisgICAgInZleHQuczE2ICIgTUlERExFX1JPV19EICIsICIgTUlERExFX1JPV19E
ICIsICIgTUlERExFX1JPV19EICIsICMzIiBOTAorICAgICJ2ZXh0LnMxNiAiIEJPVFRPTV9ST1df
RCAiLCAiIEJPVFRPTV9ST1dfRCAiLCAiIEJPVFRPTV9ST1dfRCAiLCAjMyIgTkwKKyAgICAidm1v
di5zMTYgIiBUT1BfUk9XX0QgIlsxXSwgcjAiIE5MCisgICAgInZtb3YuczE2ICIgTUlERExFX1JP
V19EICJbMV0sIHIyIiBOTAorICAgICJ2bW92LnMxNiAiIEJPVFRPTV9ST1dfRCAiWzFdLCByMSIg
TkwKKworICAgICJzdWJzIHIzLCByMywgIzEiIE5MCisgICAgImJuZSAuc2NhbmxpbmUiIE5MCisK
KyAgICAvLyBMaWdodCB2ZWN0b3IgZ29lcyB0byBUTVAxX1EuCisgICAgInRzdCAiIEZMQUdTX1Ig
IiwgIyIgVE9TVFJJTkcoRkxBR19QT0lOVF9MSUdIVCB8IEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAg
ICAiYmVxIC5kaXN0YW50TGlnaHQiIE5MCisKKyAgICAidm1vdi5zMTYgcjMsICIgTUlERExFX1JP
V19EICJbMl0iIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWl9TICIsIHIzIiBOTAorICAg
ICJ2Y3Z0LmYzMi5zMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgTkwKKyAgICAi
dm11bC5mMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgIiwgIiBTQ0FMRV9TIE5M
CisKKyAgICAidnN1Yi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RICIsICIgUE9TSVRJT05fUSBO
TAorICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMikKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMi
IFRPU1RSSU5HKEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYm5lIC5jb3NpbmVPZkFuZ2xlIiBO
TAorIi52aXNpYmxlUGl4ZWw6IiBOTAorCisgICAgLy8gTW92aW5nIHRoZSA4IGFscGhhIHZhbHVl
IHRvIEFMUEhBLgorICAgICJ2dGJsLjggIiBUTVAzX0QwICIsICIgQUxMX1JPV1NfRCAiLCAiIFJF
TUFQWF9EIE5MCisgICAgInZ0YmwuOCAiIFRNUDNfRDEgIiwgIiBBTExfUk9XU19EICIsICIgUkVN
QVBZX0QgTkwKKworICAgIC8vIE11bHRpcGx5IGJ5IEFMUEhBWCBhbmQgQUxQSEFZLgorICAgICJ2
bXVsLnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAiIEFMUEhBWF9RIE5MCisgICAgInZwYWRk
LnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5z
MTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2
ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIw
LCAiIFRNUDJfRDAgIlswXSIgTkwKKworICAgICJ2bXVsLnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNf
USAiLCAiIEFMUEhBWV9RIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0Qw
ICIsICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAi
LCAiIFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwg
IiBUTVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIxLCAiIFRNUDJfRDAgIlswXSIgTkwKKworICAg
IC8vIENhbGN1bGF0aW5nIGxpZ2h0LgorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5H
KEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYmVxIC5lbmRMaWdodCIgTkwKKworICAgICJ2bmVn
LmYzMiAiIFRNUDNfUzEgIiwgIiBDT1NJTkVfT0ZfQU5HTEUgTkwKKyAgICAidHN0ICIgRkxBR1Nf
UiAiLCAjIiBUT1NUUklORyhGTEFHX0NPTkVfRVhQT05FTlRfSVNfMSkgTkwKKyAgICAiYmVxIC5j
b25lRXhwUG93ZiIgTkwKKyIuY29uZUV4cFBvd2ZGaW5pc2hlZDoiIE5MCisKKyAgICAidmNtcC5m
MzIgIiBDT1NJTkVfT0ZfQU5HTEUgIiwgIiBDT05FX0ZVTExfTElHSFRfUyBOTAorICAgICJmbXN0
YXQiIE5MCisgICAgImJoaSAuY3V0T2ZmIiBOTAorIi5jdXRPZmZGaW5pc2hlZDoiIE5MCisKKyAg
ICAidm1pbi5mMzIgIiBUTVAzX0QwICIsICIgVE1QM19EMCAiLCAiIENPTlNUX09ORV9ISV9EIE5M
CisgICAgInZtdWwuZjMyICIgQ09MT1JfUSAiLCAiIFNQT1RfQ09MT1JfUSAiLCAiIFRNUDNfRDAg
IlsxXSIgTkwKKworIi5lbmRMaWdodDoiIE5MCisgICAgLy8gcjAgY29udGFpbnMgbm9ybWFsVmVj
dG9yIFguCisgICAgLy8gcjEgY29udGFpbnMgbm9ybWFsVmVjdG9yIFkuCisgICAgLy8gVE1QMV9R
IGNvbnRhaW5zIHRoZSBsaWdodCB2ZWN0b3IgYW5kIGl0cyBsZW5ndGguCisgICAgLy8gQ09MT1Jf
USBjb250YWlucyB0aGUgY29sb3Igb2YgdGhlIGxpZ2h0IHZlY3Rvci4KKworICAgIC8vIFRlc3Rp
bmcgYm90aCByMCBhbmQgcjEgYXJlIHplcm8gKE5vcm1hbCB2ZWN0b3IgaXMgKDAsIDAsIDEpKS4K
KyAgICAib3JycyByMiwgcjAsIHIxIiBOTAorICAgICJibmUgLm5vcm1hbFZlY3RvcklzTm9uWmVy
byIgTkwKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJf
TElHSFQpIE5MCisgICAgImJuZSAuc3BlY3VsYXJMaWdodDEiIE5MCisKKyAgICBNVUxUSVBMWV9C
WV9ESUZGVVNFX0NPTlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhD
YWxjdWxhdGVkIiBOTAorCisiLnNwZWN1bGFyTGlnaHQxOiIgTkwKKyAgICAvLyBDYWxjdWxhdGlu
ZyBzcGVjdWxhciBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICAidmFkZC5mMzIgIiBUTVAx
X1MyICIsICIgVE1QMV9TMiAiLCAiIFRNUDFfUzMgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDEsIFRN
UDIpCisKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0VY
UE9ORU5UX0lTXzEpIE5MCisgICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMV9TMiAi
LCAiIFRNUDFfUzMgTkwKKyAgICAiYmVxIC5zcGVjdWxhckV4cFBvd2YiIE5MCisKKyAgICBNVUxU
SVBMWV9CWV9ESUZGVVNFX0NPTlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3Ry
ZW5ndGhDYWxjdWxhdGVkIiBOTAorCisiLm5vcm1hbFZlY3RvcklzTm9uWmVybzoiIE5MCisgICAg
Ly8gQ2FsY3VsYXRpbmcgc3BlY3VsYXIgbGlnaHRpbmcgbGlnaHQgc3RyZW5ndGguCisgICAgInZt
b3YuczMyICIgVE1QMl9TMCAiLCByMCIgTkwKKyAgICAidmN2dC5mMzIuczMyICIgVE1QMl9TMCAi
LCAiIFRNUDJfUzAgTkwKKyAgICAidm11bC5mMzIgIiBUTVAyX1MwICIsICIgVE1QMl9TMCAiLCAi
IFNDQUxFX0RJVjRfUyBOTAorICAgICJ2bW92LnMzMiAiIFRNUDJfUzEgIiwgcjEiIE5MCisgICAg
InZjdnQuZjMyLnMzMiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxIE5MCisgICAgInZtdWwuZjMyICIg
VE1QMl9TMSAiLCAiIFRNUDJfUzEgIiwgIiBTQ0FMRV9ESVY0X1MgTkwKKyAgICAidm1vdi5mMzIg
IiBUTVAyX1MyICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDIsIFRNUDMp
CisKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0xJR0hU
KSBOTAorICAgICJibmUgLnNwZWN1bGFyTGlnaHQyIiBOTAorCisgICAgLy8gQ2FsY3VsYXRpbmcg
ZGlmZnVzZSBsaWdodGluZyBsaWdodCBzdHJlbmd0aC4KKyAgICBET1RfUFJPRFVDVChUTVAzLCBU
TVAyLCBUTVAxKQorICAgIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19T
MykKKyAgICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCisKKyIuc3BlY3VsYXJMaWdo
dDI6IiBOTAorICAgIC8vIENhbGN1bGF0aW5nIHNwZWN1bGFyIGxpZ2h0aW5nIGxpZ2h0IHN0cmVu
Z3RoLgorICAgICJ2YWRkLmYzMiAiIFRNUDFfUzIgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBO
TAorICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMykKKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAy
LCBUTVAxKQorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxB
Ul9FWFBPTkVOVF9JU18xKSBOTAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDNf
UzAgIiwgIiBUTVAzX1MzIE5MCisgICAgImJlcSAuc3BlY3VsYXJFeHBQb3dmIiBOTAorICAgIE1V
TFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykKKworIi5saWdodFN0cmVu
Z3RoQ2FsY3VsYXRlZDoiIE5MCisgICAgLy8gVE1QMl9TMSBjb250YWlucyB0aGUgbGlnaHQgc3Ry
ZW5ndGguCisgICAgInZtYXguZjMyICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBDT05TVF9a
RVJPX0hJX0QgTkwKKyAgICAidm1pbi5mMzIgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIENP
TlNUX09ORV9ISV9EIE5MCisgICAgInZtdWwuZjMyICIgVE1QM19RICIsICIgQ09MT1JfUSAiLCAi
IFRNUDJfRDAgIlsxXSIgTkwKKyAgICAidmN2dC51MzIuZjMyICIgVE1QM19RICIsICIgVE1QM19R
IE5MCisgICAgInZtb3YudTMyIHIyLCByMywgIiBUTVAzX1MwICIsICIgVE1QM19TMSBOTAorICAg
ICJzdHJiIHIyLCBbIiBQSVhFTFNfUiAiLCAjLTExXSIgTkwKKyAgICAic3RyYiByMywgWyIgUElY
RUxTX1IgIiwgIy0xMF0iIE5MCisgICAgInZtb3YudTMyIHIyLCAiIFRNUDNfUzIgTkwKKyAgICAi
c3RyYiByMiwgWyIgUElYRUxTX1IgIiwgIy05XSIgTkwKKworICAgIC8vIENvbnRpbnVlIHNjYW5s
aW5lLgorIi5pbnZpc2libGVQaXhlbDoiIE5MCisgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWF9T
ICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICAibW92IHIzLCAjMSIgTkwKKyAgICAic3VicyAiIFdJ
RFRIX1IgIiwgIiBXSURUSF9SICIsICMxIiBOTAorICAgICJibmUgLnNjYW5saW5lIiBOTAorCisg
ICAgLy8gTmV4dCBsaW5lCisgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWV9TICIsICIgQ09OU1Rf
T05FX1MgTkwKKyAgICAibW92ICIgV0lEVEhfUiAiLCAiIFJFU0VUX1dJRFRIX1IgTkwKKyAgICAi
c3VicyAiIEhFSUdIVF9SICIsICIgSEVJR0hUX1IgIiwgIzEiIE5MCisgICAgImJuZSAubWFpbmxv
b3AiIE5MCisKKyAgICAidmxkbWlhIHNwISwge2Q4LWQxNX0iIE5MCisgICAgImxkbWlhIHNwISwg
e3I0LXI4LCByMTAsIHIxMSwgcGN9IiBOTAorCisiLmRpc3RhbnRMaWdodDoiIE5MCisgICAgInZt
b3YuZjMyICIgVE1QMV9RICIsICIgTElHSFRfUSBOTAorICAgICJiIC52aXNpYmxlUGl4ZWwiIE5M
CisKKyIuY29zaW5lT2ZBbmdsZToiIE5MCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMSwgRElS
RUNUSU9OKQorICAgICJ2ZGl2LmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIFRNUDNfUzAgIiwg
IiBUTVAxX1MzIE5MCisgICAgInZjbXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgQ09ORV9D
VVRfT0ZGX1MgTkwKKyAgICAiZm1zdGF0IiBOTAorICAgICJibHMgLnZpc2libGVQaXhlbCIgTkwK
KyAgICAibW92IHIwLCAjMCIgTkwKKyAgICAic3RyaCByMCwgWyIgUElYRUxTX1IgIiwgIy0xMV0i
IE5MCisgICAgInN0cmIgcjAsIFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisgICAgImIgLmludmlz
aWJsZVBpeGVsIiBOTAorCisiLmN1dE9mZjoiIE5MCisgICAgInZzdWIuZjMyICIgVE1QM19TMCAi
LCAiIENPTkVfQ1VUX09GRl9TICIsICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInZkaXYuZjMy
ICIgVE1QM19TMCAiLCAiIFRNUDNfUzAgIiwgIiBDT05FX0NVVF9PRkZfUkFOR0VfUyBOTAorICAg
ICJ2bXVsLmYzMiAiIFRNUDNfUzEgIiwgIiBUTVAzX1MxICIsICIgVE1QM19TMCBOTAorICAgICJi
IC5jdXRPZmZGaW5pc2hlZCIgTkwKKworIi5jb25lRXhwUG93ZjoiIE5MCisgICAgUE9XRihUTVAz
X1MxLCBDT05FX0VYUE9ORU5UX1IpCisgICAgImIgLmNvbmVFeHBQb3dmRmluaXNoZWQiIE5MCisK
KyIuc3BlY3VsYXJFeHBQb3dmOiIgTkwKKyAgICBQT1dGKFRNUDJfUzEsIFNQRUNVTEFSX0VYUE9O
RU5UX1IpCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19ESUZGVVNFX0NP
TlNUX0lTXzEpIE5MCisgICAgInZtdWxlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAi
IERJRkZVU0VfQ09OU1RfUyBOTAorICAgICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwK
Kyk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQVShBUk0pICYmIEVO
QUJMRShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVv
blNJTUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDE4MTA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9h
cm0vRkVMaWdodGluZ05lb25TSU1ELmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChDKSAyMDExIFpv
bHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUxpZ2h0aW5nTmVvblNJTURfaAorI2RlZmlu
ZSBGRUxpZ2h0aW5nTmVvblNJTURfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNp
ZiBDUFUoQVJNKSAmJiBFTkFCTEUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisvLyBPdGhlcndpc2U6IERpc3RhbnQgTGlnaHQuCisjZGVmaW5lIEZM
QUdfUE9JTlRfTElHSFQgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgRkxBR19TUE9UX0xJ
R0hUICAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBGTEFHX0NPTkVfRVhQT05FTlRfSVNf
MSAgICAgICAgICAweDA0CisKKy8vIE90aGVyd2lzZTogRGlmZnVzZSBsaWdodC4KKyNkZWZpbmUg
RkxBR19TUEVDVUxBUl9MSUdIVCAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTEFHX0RJRkZV
U0VfQ09OU1RfSVNfMSAgICAgICAgICAweDIwCisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfRVhQT05F
TlRfSVNfMSAgICAgIDB4NDAKKworLy8gTXVzdCBiZSBhbGlnbmVkIHRvIDE2IGJ5dGVzLgorc3Ry
dWN0IEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24geworICAgIGZsb2F0IHN1cmZhY2VT
Y2FsZTsKKyAgICBmbG9hdCBtaW51c1N1cmZhY2VTY2FsZURpdmlkZWRCeUZvdXI7CisgICAgZmxv
YXQgZGlmZnVzZUNvbnN0YW50OworICAgIGZsb2F0IHBhZGRpbmcxOworCisgICAgZmxvYXQgY29u
ZUN1dE9mZkxpbWl0OworICAgIGZsb2F0IGNvbmVGdWxsTGlnaHQ7CisgICAgZmxvYXQgY29uZUN1
dE9mZlJhbmdlOworICAgIGZsb2F0IGNvbnN0T25lOworCisgICAgZmxvYXQgbGlnaHRYOworICAg
IGZsb2F0IGxpZ2h0WTsKKyAgICBmbG9hdCBsaWdodFo7CisgICAgZmxvYXQgcGFkZGluZzI7CisK
KyAgICBmbG9hdCBkaXJlY3Rpb25YOworICAgIGZsb2F0IGRpcmVjdGlvblk7CisgICAgZmxvYXQg
ZGlyZWN0aW9uWjsKKyAgICBmbG9hdCBwYWRkaW5nMzsKKworICAgIGZsb2F0IGNvbG9yUmVkOwor
ICAgIGZsb2F0IGNvbG9yR3JlZW47CisgICAgZmxvYXQgY29sb3JCbHVlOworICAgIGZsb2F0IHBh
ZGRpbmc0OworfTsKKworc3RydWN0IEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIHsKKyAg
ICB1bnNpZ25lZCBjaGFyKiBwaXhlbHM7CisgICAgaW50IHdpZHRoRGVjcmVhc2VkQnlUd287Cisg
ICAgaW50IGhlaWdodERlY3JlYXNlZEJ5VHdvOworICAgIC8vIENvbWJpbmF0aW9uIG9mIEZMQUcg
Y29uc3RhbnRzIGFib3ZlLgorICAgIGludCBmbGFnczsKKyAgICBpbnQgc3BlY3VsYXJFeHBvbmVu
dDsKKyAgICBpbnQgY29uZUV4cG9uZW50OworICAgIEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zv
ck5lb24qIGZsb2F0QXJndW1lbnRzOworICAgIHNob3J0KiBwYWludGluZ0NvbnN0YW50czsKK307
CisKK2V4dGVybiBzaG9ydCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW107CisKK2V4dGVy
biAiQyIgewordm9pZCBuZW9uRHJhd0xpZ2h0aW5nKEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JO
ZW9uKik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQVShBUk0p
ICYmIEVOQUJMRShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCisjZW5kaWYgLy8gRkVMaWdo
dGluZ05lb25TSU1EX2gKLS0gCjEuNi41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84203</attachid>
            <date>2011-03-01 02:33:41 -0800</date>
            <delta_ts>2011-03-02 04:46:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>29739</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSAzNThjYWU1ZGU3M2M1MjMwOWRkZmJmNTJlZTJlNDRjMTdlOGFkMTNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogVHVlLCAxIE1hciAyMDExIDExOjI5OjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gbGln
aHQtbmVvbgoKLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggICAgICAg
ICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuY3BwICAgICAgIHwgIDExMCArKysrKwogLi4uL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggfCAgICA1ICsKIC4uLi9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwICAgIHwgIDQxNyArKysrKysrKysrKysr
KysrKysrKwogLi4uL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oICAg
ICAgfCAgIDk2ICsrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1OCBpbnNlcnRpb25zKCspLCAxIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0
aW5nTmVvblNJTUQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxh
dGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBmMDBj
MWMzLi4xMDY1NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0zNDcs
NiArMzQ3LDEwIEBACiAjICBlcnJvciAiQ2Fubm90IHVzZSBib3RoIG9mIFdURl9DUFVfQVJNX1RS
QURJVElPTkFMIGFuZCBXVEZfQ1BVX0FSTV9USFVNQjIgcGxhdGZvcm1zIgogI2VuZGlmIC8qICFk
ZWZpbmVkKFdURl9DUFVfQVJNX1RSQURJVElPTkFMKSAmJiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9U
SFVNQjIpICovCiAKKyNpZiBkZWZpbmVkKF9fQVJNX05FT05fXykKKyNkZWZpbmUgV1RGX0NQVV9B
Uk1fTkVPTiAxCisjZW5kaWYKKwogI2VuZGlmIC8qIEFSTSAqLwogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZTU1NzQxLi5hYTE2MDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDItMTcg
IFpvbHRhbiBIZXJjemVnICA8emhlcmN6ZWdAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcHRpbWl6aW5nIGxpZ2h0bmluZyBmaWx0
ZXIgdG8gQVJNLW5lb24gU0lNRCBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NDU2CisKKyAgICAgICAgTmVvbiBpcyB0aGUg
U0lNRCBpbnN0cnVjdGlvbiBzZXQgZm9yIEFSTS4gVGhpcyBpbnN0cnVjdGlvbiBzZXQKKyAgICAg
ICAgYWxsb3dzIHRvIHNwZWVkLXVwIHRoZSBsaWdodGluZyBmaWx0ZXIgYnkgNCB0aW1lcyBvbiBB
Uk0KKyAgICAgICAgKG9uIFdlYkNvcmUvbWFudWFsLXRlc3RzL3N2Zy1maWx0ZXItYW5pbWF0aW9u
LnN2ZykuCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmdldFBvd2VyQ29lZmZpY2llbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6
OmRyYXdJbnRlcmlvclBpeGVscyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05lb25TSU1ELmNwcDogQWRkZWQuCisgICAgICAgIChfX2F0dHJpYnV0ZV9fKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJ
TUQuaDogQWRkZWQuCisKIDIwMTEtMDMtMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBhZnRlciByNzk5
NzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcmkKaW5kZXggNmI4NTZiNS4uZTc5MGEyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAg
LTk3LDYgKzk3LDcgQEAgV0VCQ09SRV9JTkNMVURFUEFUSCA9IFwKICAgICAkJFNPVVJDRV9ESVIv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpbyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MgXAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMgXAorICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vbW9jayBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDY1ZGY4NWUuLmJkZjhhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xODcyLDYgKzE4
NzIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0
U291cmNlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggXAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCkBAIC0y
OTY5LDcgKzI5NzAsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKSB7CiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5jcHAgXAog
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAgXAog
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBcCi0gICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKyAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBcCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAKIH0KIAog
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAppbmRleCBl
YzFjYTg4Li5kYzVjNWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKQEAgLTMwLDYgKzMwLDEyIEBACiAjaW5j
bHVkZSAiRkVMaWdodGluZy5oIgogCiAjaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRl
ICJQb2ludExpZ2h0U291cmNlLmgiCisjaW5jbHVkZSAiU3BvdExpZ2h0U291cmNlLmgiCisKKyNp
ZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKyNpbmNsdWRlICJGRUxpZ2h0aW5nTmVv
blNJTUQuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMwMSw2ICszMDcs
OSBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkqIHBpeGVscywgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgaWYgKHdpZHRoID49IDMgJiYgaGVpZ2h0ID49IDMp
IHsKICAgICAgICAgLy8gSW50ZXJpb3IgcGl4ZWxzCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01Q
SUxFUihHQ0MpCisgICAgICAgIGRyYXdJbnRlcmlvclBpeGVscyhkYXRhLCBwYWludGluZ0RhdGEp
OworI2Vsc2UKICAgICAgICAgZm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNl
ZEJ5T25lOyArK3kpIHsKICAgICAgICAgICAgIG9mZnNldCA9IHkgKiBkYXRhLndpZHRoTXVsdGlw
bGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6ZTsKICAgICAgICAgICAgIGZvciAoaW50IHggPSAx
OyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXpl
KSB7CkBAIC0zMDgsNiArMzE3LDcgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoQnl0
ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAgICAgICAgICAgICBp
bmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgeCwgeSwgY0ZhY3RvcjFk
aXY0LCBjRmFjdG9yMWRpdjQsIG5vcm1hbFZlY3Rvcik7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KKyNlbmRpZgogICAgIH0KIAogICAgIGludCBsYXN0UGl4ZWwgPSBkYXRhLndpZHRoTXVsdGlw
bGllZEJ5UGl4ZWxTaXplICogaGVpZ2h0OwpAQCAtMzU0LDYgKzM2NCwxMDYgQEAgdm9pZCBGRUxp
Z2h0aW5nOjphcHBseSgpCiAgICAgZHJhd0xpZ2h0aW5nKHNyY1BpeGVsQXJyYXksIGFic29sdXRl
UGFpbnRTaXplLndpZHRoKCksIGFic29sdXRlUGFpbnRTaXplLmhlaWdodCgpKTsKIH0KIAorI2lm
IENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCitzdGF0aWMgaW50IGdldFBvd2VyQ29l
ZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KQoreworICAgIGludCBpLCByZXN1bHQ7CisKKyAgICBp
ZiAoZXhwb25lbnQgPCAwKQorICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsKKwor
ICAgIGlmIChleHBvbmVudCA+IDYzLjk5KQorICAgICAgICBleHBvbmVudCA9IDYzLjk5OworCisg
ICAgZXhwb25lbnQgLz0gNjQ7CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGkgPSAxMTsgaSA+
PSAwOyAtLWkpIHsKKyAgICAgICAgZXhwb25lbnQgKj0gMjsKKyAgICAgICAgaWYgKGV4cG9uZW50
ID49IDEpIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7CisgICAgICAgICAgICBleHBv
bmVudCAtPSAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Zv
aWQgRkVMaWdodGluZzo6ZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGln
aHRTb3VyY2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIEZFTGlnaHRpbmdQ
YWludGluZ0RhdGFGb3JOZW9uIG5lb25EYXRhOworICAgIGNoYXIgYnVmZmVyW3NpemVvZihGRUxp
Z2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uKSArIDE2XTsKKyAgICBGRUxpZ2h0aW5nRmxvYXRB
cmd1bWVudHNGb3JOZW9uKiBmbG9hdEFyZ3VtZW50cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8RkVMaWdo
dGluZ0Zsb2F0QXJndW1lbnRzRm9yTmVvbio+KChyZWludGVycHJldF9jYXN0PGxvbmc+KGJ1ZmZl
cikgKyAxNSkgJiB+MHhmKTsKKworICAgIG5lb25EYXRhLnBpeGVscyA9IGRhdGEucGl4ZWxzLT5k
YXRhKCk7CisgICAgbmVvbkRhdGEud2lkdGhEZWNyZWFzZWRCeVR3byA9IGRhdGEud2lkdGhEZWNy
ZWFzZWRCeU9uZSAtIDE7CisgICAgbmVvbkRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlUd28gPSBkYXRh
LmhlaWdodERlY3JlYXNlZEJ5T25lIC0gMTsKKyAgICBuZW9uRGF0YS5mbGFncyA9IDA7CisgICAg
bmVvbkRhdGEuc3BlY3VsYXJFeHBvbmVudCA9IDA7CisgICAgbmVvbkRhdGEuY29uZUV4cG9uZW50
ID0gMDsKKyAgICBuZW9uRGF0YS5mbG9hdEFyZ3VtZW50cyA9IGZsb2F0QXJndW1lbnRzOworICAg
IG5lb25EYXRhLnBhaW50aW5nQ29uc3RhbnRzID0gc19GRUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVv
bjsKKworICAgIC8vIFNldCBsaWdodCBzb3VyY2UgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1l
bnRzLT5jb25zdE9uZSA9IDE7CisKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JSZWQgPSBtX2xp
Z2h0aW5nQ29sb3IucmVkKCk7CisgICAgZmxvYXRBcmd1bWVudHMtPmNvbG9yR3JlZW4gPSBtX2xp
Z2h0aW5nQ29sb3IuZ3JlZW4oKTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JCbHVlID0gbV9s
aWdodGluZ0NvbG9yLmJsdWUoKTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzQgPSAwOwor
CisgICAgaWYgKG1fbGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19QT0lOVCkgeworICAgICAgICBu
ZW9uRGF0YS5mbGFncyB8PSBGTEFHX1BPSU5UX0xJR0hUOworICAgICAgICBQb2ludExpZ2h0U291
cmNlKiBwb2ludExpZ2h0U291cmNlID0gc3RhdGljX2Nhc3Q8UG9pbnRMaWdodFNvdXJjZSo+KG1f
bGlnaHRTb3VyY2UuZ2V0KCkpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRYID0gcG9p
bnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5s
aWdodFkgPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRB
cmd1bWVudHMtPmxpZ2h0WiA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOworICAg
ICAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzIgPSAwOworICAgIH0gZWxzZSBpZiAobV9saWdo
dFNvdXJjZS0+dHlwZSgpID09IExTX1NQT1QpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0g
RkxBR19TUE9UX0xJR0hUOworICAgICAgICBTcG90TGlnaHRTb3VyY2UqIHNwb3RMaWdodFNvdXJj
ZSA9IHN0YXRpY19jYXN0PFNwb3RMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOwor
ICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRYID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlv
bigpLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WSA9IHNwb3RMaWdodFNvdXJj
ZS0+cG9zaXRpb24oKS55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFogPSBzcG90
TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+cGFk
ZGluZzIgPSAwOworCisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaXJlY3Rpb25YID0gcGFpbnRp
bmdEYXRhLmRpcmVjdGlvblZlY3Rvci54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaXJl
Y3Rpb25ZID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci55KCk7CisgICAgICAgIGZsb2F0
QXJndW1lbnRzLT5kaXJlY3Rpb25aID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci56KCk7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5wYWRkaW5nMyA9IDA7CisKKyAgICAgICAgZmxvYXRB
cmd1bWVudHMtPmNvbmVDdXRPZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQ7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5jb25lRnVsbExpZ2h0ID0gcGFpbnRpbmdEYXRhLmNv
bmVGdWxsTGlnaHQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5jb25lQ3V0T2ZmUmFuZ2UgPSBw
YWludGluZ0RhdGEuY29uZUN1dE9mZkxpbWl0IC0gcGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7
CisgICAgICAgIG5lb25EYXRhLmNvbmVFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2llbnRzKHNw
b3RMaWdodFNvdXJjZS0+c3BlY3VsYXJFeHBvbmVudCgpKTsKKyAgICAgICAgaWYgKHNwb3RMaWdo
dFNvdXJjZS0+c3BlY3VsYXJFeHBvbmVudCgpID09IDEpCisgICAgICAgICAgICBuZW9uRGF0YS5m
bGFncyB8PSBGTEFHX0NPTkVfRVhQT05FTlRfSVNfMTsKKyAgICB9IGVsc2UgeworICAgICAgICBB
U1NFUlQobV9saWdodFNvdXJjZS50eXBlID09IExTX0RJU1RBTlQpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy0+bGlnaHRYID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLngoKTsKKyAgICAgICAg
ZmxvYXRBcmd1bWVudHMtPmxpZ2h0WSA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci55KCk7Cisg
ICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFogPSBwYWludGluZ0RhdGEubGlnaHRWZWN0b3Iu
eigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzIgPSAxOworICAgIH0KKworICAg
IC8vIFNldCBsaWdodG5pZyBhcmd1bWVudHMuCisgICAgZmxvYXRBcmd1bWVudHMtPnN1cmZhY2VT
Y2FsZSA9IGRhdGEuc3VyZmFjZVNjYWxlOworICAgIGZsb2F0QXJndW1lbnRzLT5taW51c1N1cmZh
Y2VTY2FsZURpdmlkZWRCeUZvdXIgPSAtZGF0YS5zdXJmYWNlU2NhbGUgLyA0OworICAgIGlmICht
X2xpZ2h0aW5nVHlwZSA9PSBGRUxpZ2h0aW5nOjpEaWZmdXNlTGlnaHRpbmcpCisgICAgICAgIGZs
b2F0QXJndW1lbnRzLT5kaWZmdXNlQ29uc3RhbnQgPSBtX2RpZmZ1c2VDb25zdGFudDsKKyAgICBl
bHNlIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9MSUdIVDsKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMtPmRpZmZ1c2VDb25zdGFudCA9IG1fc3BlY3VsYXJDb25zdGFu
dDsKKyAgICAgICAgbmVvbkRhdGEuc3BlY3VsYXJFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2ll
bnRzKG1fc3BlY3VsYXJFeHBvbmVudCk7CisgICAgICAgIGlmIChtX3NwZWN1bGFyRXhwb25lbnQg
PT0gMSkKKyAgICAgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfRVhQT05F
TlRfSVNfMTsKKyAgICB9CisgICAgaWYgKGZsb2F0QXJndW1lbnRzLT5kaWZmdXNlQ29uc3RhbnQg
PT0gMSkKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19ESUZGVVNFX0NPTlNUX0lTXzE7
CisKKyAgICBuZW9uRHJhd0xpZ2h0aW5nKCZuZW9uRGF0YSk7Cit9CisjZW5kaWYgLy8gQ1BVKEFS
TV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShGSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBmYTFjMGFhLi4zZGM0NmU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGln
aHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TGlnaHRpbmcuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgog
I2luY2x1ZGUgIkxpZ2h0U291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgorI2lu
Y2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiAvLyBDb21tb24gYmFzZSBjbGFzcyBmb3IgRkVEaWZm
dXNlTGlnaHRpbmcgYW5kIEZFU3BlY3VsYXJMaWdodGluZwogCkBAIC03OSw2ICs4MCwxMCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRQaXhlbChpbnQgb2Zmc2V0LCBMaWdodGluZ0RhdGEmLCBM
aWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiwKICAgICAgICAgICAgICAgICAgIGludCBsaWdodFgs
IGludCBsaWdodFksIGZsb2F0IGZhY3RvclgsIGZsb2F0IGZhY3RvclksIEludFBvaW50JiBub3Jt
YWxWZWN0b3IpOwogCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisgICAgdm9p
ZCBkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5n
RGF0YSYpOworI2VuZGlmCisKICAgICBMaWdodGluZ1R5cGUgbV9saWdodGluZ1R5cGU7CiAgICAg
UmVmUHRyPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdo
dGluZ05lb25TSU1ELmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDYy
ZGUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmNwcApAQCAtMCwwICsxLDQxNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0
IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZFTGlnaHRpbmdOZW9uU0lNRC5oIgorCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01Q
SUxFUihHQ0MpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhlc2UgY29uc3RhbnRzIGFy
ZSBjb3BpZWQgdG8gdGhlIGZvbGxvd2luZyBTSU1EIHJlZ2lzdGVyczoKKy8vICAgQUxQSEFYX1Eg
QUxQSEFZX1EgUkVNQVBYX0QgUkVNQVBZX0QKKworc2hvcnQgc19GRUxpZ2h0aW5nQ29uc3RhbnRz
Rm9yTmVvbltdIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMHgxMCkpKSA9IHsKKyAgICAvLyBBbHBo
YSBjb2VmZmljaWVudHMuCisgICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAtMSwKKyAgICAwLCAt
MSwgLTIsIC0xLCAwLCAxLCAyLCAxLAorICAgIC8vIFJlbWFwcGluZyBpbmRpY2llcy4KKyAgICAw
eDBmMGUsIDB4MDMwMiwgMHgwNTA0LCAweDA3MDYsCisgICAgMHgwYjBhLCAweDEzMTIsIDB4MTUx
NCwgMHgxNzE2LAorfTsKKworI2RlZmluZSBBU1NUUklORyhzdHIpICNzdHIKKyNkZWZpbmUgVE9T
VFJJTkcodmFsdWUpIEFTU1RSSU5HKHZhbHVlKQorCisjZGVmaW5lIFBJWEVMU19PRkZTRVQgVE9T
VFJJTkcoMCkKKyNkZWZpbmUgV0lEVEhfT0ZGU0VUIFRPU1RSSU5HKDQpCisjZGVmaW5lIEhFSUdI
VF9PRkZTRVQgVE9TVFJJTkcoOCkKKyNkZWZpbmUgRkxBR1NfT0ZGU0VUIFRPU1RSSU5HKDEyKQor
I2RlZmluZSBTUEVDVUxBUl9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMTYpCisjZGVmaW5lIENP
TkVfRVhQT05FTlRfT0ZGU0VUIFRPU1RSSU5HKDIwKQorI2RlZmluZSBGTE9BVF9BUkdVTUVOVFNf
T0ZGU0VUIFRPU1RSSU5HKDI0KQorI2RlZmluZSBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgVE9T
VFJJTkcoMjgpCisjZGVmaW5lIE5MICJcbiIKKworLy8gUmVnaXN0ZXIgYWxsb2NhdGlvbgorI2Rl
ZmluZSBQQUlOVElOR19EQVRBX1IgICAgICAgInIxMSIKKyNkZWZpbmUgUkVTRVRfV0lEVEhfUiAg
ICAgICAgIFBBSU5USU5HX0RBVEFfUgorI2RlZmluZSBQSVhFTFNfUiAgICAgICAgICAgICAgInI0
IgorI2RlZmluZSBXSURUSF9SICAgICAgICAgICAgICAgInI1IgorI2RlZmluZSBIRUlHSFRfUiAg
ICAgICAgICAgICAgInI2IgorI2RlZmluZSBGTEFHU19SICAgICAgICAgICAgICAgInI3IgorI2Rl
ZmluZSBTUEVDVUxBUl9FWFBPTkVOVF9SICAgInI4IgorI2RlZmluZSBDT05FX0VYUE9ORU5UX1Ig
ICAgICAgInIxMCIKKyNkZWZpbmUgU0NBTkxJTkVfUiAgICAgICAgICAgICJyMTIiCisKKyNkZWZp
bmUgVE1QMV9RICAgICAgICAgICAgICAgICJxMCIKKyNkZWZpbmUgVE1QMV9EMCAgICAgICAgICAg
ICAgICJkMCIKKyNkZWZpbmUgVE1QMV9TMCAgICAgICAgICAgICAgICJzMCIKKyNkZWZpbmUgVE1Q
MV9TMSAgICAgICAgICAgICAgICJzMSIKKyNkZWZpbmUgVE1QMV9EMSAgICAgICAgICAgICAgICJk
MSIKKyNkZWZpbmUgVE1QMV9TMiAgICAgICAgICAgICAgICJzMiIKKyNkZWZpbmUgVE1QMV9TMyAg
ICAgICAgICAgICAgICJzMyIKKyNkZWZpbmUgVE1QMl9RICAgICAgICAgICAgICAgICJxMSIKKyNk
ZWZpbmUgVE1QMl9EMCAgICAgICAgICAgICAgICJkMiIKKyNkZWZpbmUgVE1QMl9TMCAgICAgICAg
ICAgICAgICJzNCIKKyNkZWZpbmUgVE1QMl9TMSAgICAgICAgICAgICAgICJzNSIKKyNkZWZpbmUg
VE1QMl9EMSAgICAgICAgICAgICAgICJkMyIKKyNkZWZpbmUgVE1QMl9TMiAgICAgICAgICAgICAg
ICJzNiIKKyNkZWZpbmUgVE1QMl9TMyAgICAgICAgICAgICAgICJzNyIKKyNkZWZpbmUgVE1QM19R
ICAgICAgICAgICAgICAgICJxMiIKKyNkZWZpbmUgVE1QM19EMCAgICAgICAgICAgICAgICJkNCIK
KyNkZWZpbmUgVE1QM19TMCAgICAgICAgICAgICAgICJzOCIKKyNkZWZpbmUgVE1QM19TMSAgICAg
ICAgICAgICAgICJzOSIKKyNkZWZpbmUgVE1QM19EMSAgICAgICAgICAgICAgICJkNSIKKyNkZWZp
bmUgVE1QM19TMiAgICAgICAgICAgICAgICJzMTAiCisjZGVmaW5lIFRNUDNfUzMgICAgICAgICAg
ICAgICAiczExIgorCisjZGVmaW5lIENPU0lORV9PRl9BTkdMRSAgICAgICAiczEyIgorI2RlZmlu
ZSBQT1dGX0lOVF9TICAgICAgICAgICAgInMxMyIKKyNkZWZpbmUgUE9XRl9GUkFDX1MgICAgICAg
ICAgICJzMTQiCisjZGVmaW5lIFNQT1RfQ09MT1JfUSAgICAgICAgICAicTQiCisKKy8vIEJlY2F1
c2Ugb2YgVk1JTiBhbmQgVk1BWCBDT05TVF9aRVJPX1MgYW5kIENPTlNUX09ORV9TCisvLyBtdXN0
IGJlIHBsYWNlZCBvbiB0aGUgc2FtZSBzaWRlIG9mIHRoZSBkb3VibGUgdmVjdG9yCisKKy8vIEN1
cnJlbnQgcGl4ZWwgcG9zaXRpb24KKyNkZWZpbmUgUE9TSVRJT05fUSAgICAgICAgICAgICJxNSIK
KyNkZWZpbmUgUE9TSVRJT05fWF9TICAgICAgICAgICJzMjAiCisjZGVmaW5lIFBPU0lUSU9OX1lf
UyAgICAgICAgICAiczIxIgorI2RlZmluZSBQT1NJVElPTl9aX1MgICAgICAgICAgInMyMiIKKyNk
ZWZpbmUgQ09OU1RfWkVST19ISV9EICAgICAgICJkMTEiCisjZGVmaW5lIENPTlNUX1pFUk9fUyAg
ICAgICAgICAiczIzIgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAg
ICAgVmFyaWFibGUgYXJndW1lbnRzCisvLyBNaXNjIGFyZ3VtZW50cworI2RlZmluZSBSRUFEMV9S
QU5HRSAgICAgICAgICAgImQxMi1kMTUiCisjZGVmaW5lIFJFQUQyX1JBTkdFICAgICAgICAgICAi
ZDE2LWQxOSIKKyNkZWZpbmUgUkVBRDNfUkFOR0UgICAgICAgICAgICJkMjAtZDIxIgorCisjZGVm
aW5lIFNDQUxFX1MgICAgICAgICAgICAgICAiczI0IgorI2RlZmluZSBTQ0FMRV9ESVY0X1MgICAg
ICAgICAgInMyNSIKKyNkZWZpbmUgRElGRlVTRV9DT05TVF9TICAgICAgICJzMjYiCisKKy8vIExp
Z2h0IHNvdXJjZSBwb3NpdGlvbgorI2RlZmluZSBDT05FX0NVVF9PRkZfUyAgICAgICAgInMyOCIK
KyNkZWZpbmUgQ09ORV9GVUxMX0xJR0hUX1MgICAgICJzMjkiCisjZGVmaW5lIENPTkVfQ1VUX09G
Rl9SQU5HRV9TICAiczMwIgorI2RlZmluZSBDT05TVF9PTkVfSElfRCAgICAgICAgImQxNSIKKyNk
ZWZpbmUgQ09OU1RfT05FX1MgICAgICAgICAgICJzMzEiCisKKyNkZWZpbmUgTElHSFRfUSAgICAg
ICAgICAgICAgICJxOCIKKyNkZWZpbmUgRElSRUNUSU9OX1EgICAgICAgICAgICJxOSIKKyNkZWZp
bmUgQ09MT1JfUSAgICAgICAgICAgICAgICJxMTAiCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyAgICBDb25zdGFudCBjb2VmZmljaWVudHMKKyNkZWZpbmUgUkVBRDRfUkFO
R0UgICAgICAgICAgICJkMjItZDI1IgorI2RlZmluZSBSRUFENV9SQU5HRSAgICAgICAgICAgImQy
Ni1kMjciCisKKyNkZWZpbmUgQUxQSEFYX1EgICAgICAgICAgICAgICJxMTEiCisjZGVmaW5lIEFM
UEhBWV9RICAgICAgICAgICAgICAicTEyIgorI2RlZmluZSBSRU1BUFhfRCAgICAgICAgICAgICAg
ImQyNiIKKyNkZWZpbmUgUkVNQVBZX0QgICAgICAgICAgICAgICJkMjciCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNkZWZpbmUgQUxMX1JPV1NfRCAgICAgICAgICAgICJ7
ZDI4LGQyOSxkMzB9IgorI2RlZmluZSBUT1BfUk9XX0QgICAgICAgICAgICAgImQyOCIKKyNkZWZp
bmUgTUlERExFX1JPV19EICAgICAgICAgICJkMjkiCisjZGVmaW5lIEJPVFRPTV9ST1dfRCAgICAg
ICAgICAiZDMwIgorCisjZGVmaW5lIEdFVF9MRU5HVEgoc291cmNlLCB0ZW1wKSBcCisgICAgInZt
dWwuZjMyICIgdGVtcCMjX1EgIiwgIiBzb3VyY2UjI19RICIsICIgc291cmNlIyNfUSBOTCBcCisg
ICAgInZhZGQuZjMyICIgc291cmNlIyNfUzMgIiwgIiB0ZW1wIyNfUzAgIiwgIiB0ZW1wIyNfUzEg
TkwgXAorICAgICJ2YWRkLmYzMiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMgIiwgIiB0
ZW1wIyNfUzIgTkwgXAorICAgICJ2c3FydC5mMzIgIiBzb3VyY2UjI19TMyAiLCAiIHNvdXJjZSMj
X1MzIE5MCisKKy8vIGRlc3RpbmF0aW9uIyNfUzMgY2FuIGNvbnRhaW4gdGhlIG11bHRpcGx5IG9m
IGxlbmd0aC4KKyNkZWZpbmUgRE9UX1BST0RVQ1QoZGVzdGluYXRpb24sIHNvdXJjZTEsIHNvdXJj
ZTIpIFwKKyAgICAidm11bC5mMzIgIiBkZXN0aW5hdGlvbiMjX1EgIiwgIiBzb3VyY2UxIyNfUSAi
LCAiIHNvdXJjZTIjI19RIE5MIFwKKyAgICAidmFkZC5mMzIgIiBkZXN0aW5hdGlvbiMjX1MwICIs
ICIgZGVzdGluYXRpb24jI19TMCAiLCAiIGRlc3RpbmF0aW9uIyNfUzEgTkwgXAorICAgICJ2YWRk
LmYzMiAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1MwICIsICIgZGVzdGlu
YXRpb24jI19TMiBOTAorCisjZGVmaW5lIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1Qobm9ybWFs
VmVjdG9yTGVuZ3RoLCBkb3RQcm9kdWN0TGVuZ3RoKSBcCisgICAgInRzdCAiIEZMQUdTX1IgIiwg
IyIgVE9TVFJJTkcoRkxBR19ESUZGVVNFX0NPTlNUX0lTXzEpIE5MIFwKKyAgICAidm11bGVxLmYz
MiAiIFRNUDJfUzEgIiwgIiBESUZGVVNFX0NPTlNUX1MgIiwgIiBub3JtYWxWZWN0b3JMZW5ndGgg
TkwgXAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEgIiwgIiBkb3RQcm9k
dWN0TGVuZ3RoIE5MIFwKKyAgICAidmRpdm5lLmYzMiAiIFRNUDJfUzEgIiwgIiBub3JtYWxWZWN0
b3JMZW5ndGggIiwgIiBkb3RQcm9kdWN0TGVuZ3RoIE5MCisKKyNkZWZpbmUgUE9XRl9TUVIodmFs
dWUsIGV4cG9uZW50LCBjdXJyZW50LCByZW1haW5pbmcpIFwKKyAgICAidHN0ICIgZXhwb25lbnQg
IiwgIyIgQVNTVFJJTkcoY3VycmVudCkgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwg
IiB2YWx1ZSAiLCAiIFBPV0ZfSU5UX1MgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBB
U1NUUklORyhyZW1haW5pbmcpIE5MIFwKKyAgICAidm11bG5lLmYzMiAiIFBPV0ZfSU5UX1MgIiwg
IiBQT1dGX0lOVF9TICIsICIgUE9XRl9JTlRfUyBOTAorCisjZGVmaW5lIFBPV0ZfU1FSVCh2YWx1
ZSwgZXhwb25lbnQsIGN1cnJlbnQsIHJlbWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAi
LCAjIiBBU1NUUklORyhyZW1haW5pbmcpIE5MIFwKKyAgICAidnNxcnRuZS5mMzIgIiBQT1dGX0ZS
QUNfUyAiLCAiIFBPV0ZfRlJBQ19TIE5MIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIgQVNT
VFJJTkcoY3VycmVudCkgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwgIiB2YWx1ZSAi
LCAiIFBPV0ZfRlJBQ19TIE5MCisKKyNkZWZpbmUgUE9XRih2YWx1ZSwgZXhwb25lbnQpIFwKKyAg
ICAidHN0ICIgZXhwb25lbnQgIiwgIzB4ZmMwIiBOTCBcCisgICAgInZtb3ZuZS5mMzIgIiBQT1dG
X0lOVF9TICIsICIgdmFsdWUgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjMHgwM2YiIE5M
IFwKKyAgICAidm1vdm5lLmYzMiAiIFBPV0ZfRlJBQ19TICIsICIgdmFsdWUgTkwgXAorICAgICJ2
bW92LmYzMiAiIHZhbHVlICIsICIgQ09OU1RfT05FX1MgTkwgXAorICAgIFwKKyAgICBQT1dGX1NR
Uih2YWx1ZSwgZXhwb25lbnQsIDB4MDQwLCAweGY4MCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBl
eHBvbmVudCwgMHgwODAsIDB4ZjAwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAw
eDEwMCwgMHhlMDApIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MjAwLCAweGMw
MCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHg0MDAsIDB4ODAwKSBcCisgICAg
InRzdCAiIGV4cG9uZW50ICIsICMweDgwMCIgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUg
IiwgIiB2YWx1ZSAiLCAiIFBPV0ZfSU5UX1MgTkwgXAorICAgIFwKKyAgICBQT1dGX1NRUlQodmFs
dWUsIGV4cG9uZW50LCAweDIwLCAweDNmKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVu
dCwgMHgxMCwgMHgxZikgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDgsIDB4
MGYpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDA0LCAweDA3KSBcCisgICAg
UE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwMiwgMHgwMykgXAorICAgIFBPV0ZfU1FSVCh2
YWx1ZSwgZXhwb25lbnQsIDB4MDEsIDB4MDEpCisKK2FzbSAoCisiLmdsb2JsICIgVE9TVFJJTkco
bmVvbkRyYXdMaWdodGluZykgTkwKK1RPU1RSSU5HKG5lb25EcmF3TGlnaHRpbmcpICI6IiBOTAor
ICAgIC8vIE11c3QgYmUgYWxpZ25lZCB0byA4IGJ5dGVzLgorICAgICJzdG1kYiBzcCEsIHtyNC1y
OCwgcjEwLCByMTEsIGxyfSIgTkwKKyAgICAidnN0bWRiIHNwISwge2Q4LWQxNX0iIE5MCisgICAg
Im1vdiAiIFBBSU5USU5HX0RBVEFfUiAiLCByMCIgTkwKKyAgICAibGRyIHIwLCBbIiBQQUlOVElO
R19EQVRBX1IgIiwgIyIgRkxPQVRfQVJHVU1FTlRTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyIHIx
LCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgRFJBV0lOR19DT05TVEFOVFNfT0ZGU0VUICJdIiBO
TAorICAgICJsZHIgIiBQSVhFTFNfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgUElYRUxT
X09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgV0lEVEhfUiAiLCBbIiBQQUlOVElOR19EQVRBX1Ig
IiwgIyIgV0lEVEhfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBIRUlHSFRfUiAiLCBbIiBQQUlO
VElOR19EQVRBX1IgIiwgIyIgSEVJR0hUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRkxBR1Nf
UiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgRkxBR1NfT0ZGU0VUICJdIiBOTAorICAgICJs
ZHIgIiBTUEVDVUxBUl9FWFBPTkVOVF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBTUEVD
VUxBUl9FWFBPTkVOVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIENPTkVfRVhQT05FTlRfUiAi
LCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgQ09ORV9FWFBPTkVOVF9PRkZTRVQgIl0iIE5MCisg
ICAgInZsZDEuZjMyIHsgIiBSRUFEMV9SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLmYz
MiB7ICIgUkVBRDJfUkFOR0UgIiB9LCBbcjBdISIgTkwKKyAgICAidmxkMS5mMzIgeyAiIFJFQUQz
X1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuczE2IHsiIFJFQUQ0X1JBTkdFICJ9LCBb
cjFdISIgTkwKKyAgICAidmxkMS5zMTYgeyIgUkVBRDVfUkFOR0UgIn0sIFtyMV0hIiBOTAorICAg
ICJtb3YgIiBTQ0FOTElORV9SICIsICIgV0lEVEhfUiAiLCBsc2wgIzIiIE5MCisgICAgImFkZCAi
IFNDQU5MSU5FX1IgIiwgIiBTQ0FOTElORV9SICIsICM4IiBOTAorICAgICJhZGQgIiBQSVhFTFNf
UiAiLCAiIFBJWEVMU19SICIsICIgU0NBTkxJTkVfUiBOTAorICAgICJhZGQgIiBQSVhFTFNfUiAi
LCAiIFBJWEVMU19SICIsICMzIiBOTAorICAgICJtb3YgcjAsICMwIiBOTAorICAgICJ2bW92LmYz
MiAiIENPTlNUX1pFUk9fUyAiLCByMCIgTkwKKyAgICAidm1vdi5mMzIgIiBQT1NJVElPTl9ZX1Mg
IiwgIiBDT05TVF9PTkVfUyBOTAorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZM
QUdfU1BPVF9MSUdIVCkgTkwKKyAgICAidm1vdi5mMzIgIiBTUE9UX0NPTE9SX1EgIiwgIiBDT0xP
Ul9RIE5MCisgICAgIm1vdiAiIFJFU0VUX1dJRFRIX1IgIiwgIiBXSURUSF9SIE5MCisKKyIubWFp
bmxvb3A6IiBOTAorICAgICJtb3YgcjMsICMzIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9O
X1hfUyAiLCAiIENPTlNUX09ORV9TIE5MCisKKyIuc2NhbmxpbmU6IiBOTAorICAgIC8vIFJlYWRp
bmcgdGhlIG5leHQgcGl4ZWwgdG8gdGhlIFJPVyBkYXRhLgorICAgICJsZHJiIHIwLCBbIiBQSVhF
TFNfUiAiLCAtIiBTQ0FOTElORV9SICJdIiBOTAorICAgICJsZHJiIHIxLCBbIiBQSVhFTFNfUiAi
LCArIiBTQ0FOTElORV9SICJdIiBOTAorICAgICJsZHJiIHIyLCBbIiBQSVhFTFNfUiAiXSwgIzQi
IE5MCisgICAgInZleHQuczE2ICIgVE9QX1JPV19EICIsICIgVE9QX1JPV19EICIsICIgVE9QX1JP
V19EICIsICMzIiBOTAorICAgICJ2ZXh0LnMxNiAiIE1JRERMRV9ST1dfRCAiLCAiIE1JRERMRV9S
T1dfRCAiLCAiIE1JRERMRV9ST1dfRCAiLCAjMyIgTkwKKyAgICAidmV4dC5zMTYgIiBCT1RUT01f
Uk9XX0QgIiwgIiBCT1RUT01fUk9XX0QgIiwgIiBCT1RUT01fUk9XX0QgIiwgIzMiIE5MCisgICAg
InZtb3YuczE2ICIgVE9QX1JPV19EICJbMV0sIHIwIiBOTAorICAgICJ2bW92LnMxNiAiIE1JRERM
RV9ST1dfRCAiWzFdLCByMiIgTkwKKyAgICAidm1vdi5zMTYgIiBCT1RUT01fUk9XX0QgIlsxXSwg
cjEiIE5MCisKKyAgICAic3VicyByMywgcjMsICMxIiBOTAorICAgICJibmUgLnNjYW5saW5lIiBO
TAorCisgICAgLy8gTGlnaHQgdmVjdG9yIGdvZXMgdG8gVE1QMV9RLgorICAgICJ0c3QgIiBGTEFH
U19SICIsICMiIFRPU1RSSU5HKEZMQUdfUE9JTlRfTElHSFQgfCBGTEFHX1NQT1RfTElHSFQpIE5M
CisgICAgImJlcSAuZGlzdGFudExpZ2h0IiBOTAorCisgICAgInZtb3YuczE2IHIzLCAiIE1JRERM
RV9ST1dfRCAiWzJdIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1pfUyAiLCByMyIgTkwK
KyAgICAidmN2dC5mMzIuczMyICIgUE9TSVRJT05fWl9TICIsICIgUE9TSVRJT05fWl9TIE5MCisg
ICAgInZtdWwuZjMyICIgUE9TSVRJT05fWl9TICIsICIgUE9TSVRJT05fWl9TICIsICIgU0NBTEVf
UyBOTAorCisgICAgInZzdWIuZjMyICIgVE1QMV9RICIsICIgTElHSFRfUSAiLCAiIFBPU0lUSU9O
X1EgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDEsIFRNUDIpCisKKyAgICAidHN0ICIgRkxBR1NfUiAi
LCAjIiBUT1NUUklORyhGTEFHX1NQT1RfTElHSFQpIE5MCisgICAgImJuZSAuY29zaW5lT2ZBbmds
ZSIgTkwKKyIudmlzaWJsZVBpeGVsOiIgTkwKKworICAgIC8vIE1vdmluZyB0aGUgOCBhbHBoYSB2
YWx1ZSB0byBBTFBIQS4KKyAgICAidnRibC44ICIgVE1QM19EMCAiLCAiIEFMTF9ST1dTX0QgIiwg
IiBSRU1BUFhfRCBOTAorICAgICJ2dGJsLjggIiBUTVAzX0QxICIsICIgQUxMX1JPV1NfRCAiLCAi
IFJFTUFQWV9EIE5MCisKKyAgICAvLyBNdWx0aXBseSBieSBBTFBIQVggYW5kIEFMUEhBWS4KKyAg
ICAidm11bC5zMTYgIiBUTVAyX1EgIiwgIiBUTVAzX1EgIiwgIiBBTFBIQVhfUSBOTAorICAgICJ2
cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDEgTkwKKyAgICAidnBh
ZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZwYWRk
LnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMCBOTAorICAgICJ2bW92LnMx
NiByMCwgIiBUTVAyX0QwICJbMF0iIE5MCisKKyAgICAidm11bC5zMTYgIiBUTVAyX1EgIiwgIiBU
TVAzX1EgIiwgIiBBTFBIQVlfUSBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1Q
Ml9EMCAiLCAiIFRNUDJfRDEgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJf
RDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0Qw
ICIsICIgVE1QMl9EMCBOTAorICAgICJ2bW92LnMxNiByMSwgIiBUTVAyX0QwICJbMF0iIE5MCisK
KyAgICAvLyBDYWxjdWxhdGluZyBsaWdodC4KKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NU
UklORyhGTEFHX1NQT1RfTElHSFQpIE5MCisgICAgImJlcSAuZW5kTGlnaHQiIE5MCisKKyAgICAi
dm5lZy5mMzIgIiBUTVAzX1MxICIsICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInRzdCAiIEZM
QUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19DT05FX0VYUE9ORU5UX0lTXzEpIE5MCisgICAgImJl
cSAuY29uZUV4cFBvd2YiIE5MCisiLmNvbmVFeHBQb3dmRmluaXNoZWQ6IiBOTAorCisgICAgInZj
bXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgQ09ORV9GVUxMX0xJR0hUX1MgTkwKKyAgICAi
Zm1zdGF0IiBOTAorICAgICJiaGkgLmN1dE9mZiIgTkwKKyIuY3V0T2ZmRmluaXNoZWQ6IiBOTAor
CisgICAgInZtaW4uZjMyICIgVE1QM19EMCAiLCAiIFRNUDNfRDAgIiwgIiBDT05TVF9PTkVfSElf
RCBOTAorICAgICJ2bXVsLmYzMiAiIENPTE9SX1EgIiwgIiBTUE9UX0NPTE9SX1EgIiwgIiBUTVAz
X0QwICJbMV0iIE5MCisKKyIuZW5kTGlnaHQ6IiBOTAorICAgIC8vIHIwIGNvbnRhaW5zIG5vcm1h
bFZlY3RvciBYLgorICAgIC8vIHIxIGNvbnRhaW5zIG5vcm1hbFZlY3RvciBZLgorICAgIC8vIFRN
UDFfUSBjb250YWlucyB0aGUgbGlnaHQgdmVjdG9yIGFuZCBpdHMgbGVuZ3RoLgorICAgIC8vIENP
TE9SX1EgY29udGFpbnMgdGhlIGNvbG9yIG9mIHRoZSBsaWdodCB2ZWN0b3IuCisKKyAgICAvLyBU
ZXN0aW5nIGJvdGggcjAgYW5kIHIxIGFyZSB6ZXJvIChOb3JtYWwgdmVjdG9yIGlzICgwLCAwLCAx
KSkuCisgICAgIm9ycnMgcjIsIHIwLCByMSIgTkwKKyAgICAiYm5lIC5ub3JtYWxWZWN0b3JJc05v
blplcm8iIE5MCisKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNV
TEFSX0xJR0hUKSBOTAorICAgICJibmUgLnNwZWN1bGFyTGlnaHQxIiBOTAorCisgICAgTVVMVElQ
TFlfQllfRElGRlVTRV9DT05TVChUTVAxX1MyLCBUTVAxX1MzKQorICAgICJiIC5saWdodFN0cmVu
Z3RoQ2FsY3VsYXRlZCIgTkwKKworIi5zcGVjdWxhckxpZ2h0MToiIE5MCisgICAgLy8gQ2FsY3Vs
YXRpbmcgc3BlY3VsYXIgbGlnaHRpbmcgbGlnaHQgc3RyZW5ndGguCisgICAgInZhZGQuZjMyICIg
VE1QMV9TMiAiLCAiIFRNUDFfUzIgIiwgIiBUTVAxX1MzIE5MCisgICAgR0VUX0xFTkdUSChUTVAx
LCBUTVAyKQorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxB
Ul9FWFBPTkVOVF9JU18xKSBOTAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDFf
UzIgIiwgIiBUTVAxX1MzIE5MCisgICAgImJlcSAuc3BlY3VsYXJFeHBQb3dmIiBOTAorCisgICAg
TVVMVElQTFlfQllfRElGRlVTRV9DT05TVChUTVAxX1MyLCBUTVAxX1MzKQorICAgICJiIC5saWdo
dFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKworIi5ub3JtYWxWZWN0b3JJc05vblplcm86IiBOTAor
ICAgIC8vIENhbGN1bGF0aW5nIHNwZWN1bGFyIGxpZ2h0aW5nIGxpZ2h0IHN0cmVuZ3RoLgorICAg
ICJ2bW92LnMzMiAiIFRNUDJfUzAgIiwgcjAiIE5MCisgICAgInZjdnQuZjMyLnMzMiAiIFRNUDJf
UzAgIiwgIiBUTVAyX1MwIE5MCisgICAgInZtdWwuZjMyICIgVE1QMl9TMCAiLCAiIFRNUDJfUzAg
IiwgIiBTQ0FMRV9ESVY0X1MgTkwKKyAgICAidm1vdi5zMzIgIiBUTVAyX1MxICIsIHIxIiBOTAor
ICAgICJ2Y3Z0LmYzMi5zMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSBOTAorICAgICJ2bXVsLmYz
MiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxICIsICIgU0NBTEVfRElWNF9TIE5MCisgICAgInZtb3Yu
ZjMyICIgVE1QMl9TMiAiLCAiIENPTlNUX09ORV9TIE5MCisgICAgR0VUX0xFTkdUSChUTVAyLCBU
TVAzKQorCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9M
SUdIVCkgTkwKKyAgICAiYm5lIC5zcGVjdWxhckxpZ2h0MiIgTkwKKworICAgIC8vIENhbGN1bGF0
aW5nIGRpZmZ1c2UgbGlnaHRpbmcgbGlnaHQgc3RyZW5ndGguCisgICAgRE9UX1BST0RVQ1QoVE1Q
MywgVE1QMiwgVE1QMSkKKyAgICBNVUxUSVBMWV9CWV9ESUZGVVNFX0NPTlNUKFRNUDNfUzAsIFRN
UDNfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxjdWxhdGVkIiBOTAorCisiLnNwZWN1bGFy
TGlnaHQyOiIgTkwKKyAgICAvLyBDYWxjdWxhdGluZyBzcGVjdWxhciBsaWdodGluZyBsaWdodCBz
dHJlbmd0aC4KKyAgICAidmFkZC5mMzIgIiBUTVAxX1MyICIsICIgVE1QMV9TMiAiLCAiIFRNUDFf
UzMgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDEsIFRNUDMpCisgICAgRE9UX1BST0RVQ1QoVE1QMywg
VE1QMiwgVE1QMSkKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BF
Q1VMQVJfRVhQT05FTlRfSVNfMSkgTkwKKyAgICAidmRpdmVxLmYzMiAiIFRNUDJfUzEgIiwgIiBU
TVAzX1MwICIsICIgVE1QM19TMyBOTAorICAgICJiZXEgLnNwZWN1bGFyRXhwUG93ZiIgTkwKKyAg
ICBNVUxUSVBMWV9CWV9ESUZGVVNFX0NPTlNUKFRNUDNfUzAsIFRNUDNfUzMpCisKKyIubGlnaHRT
dHJlbmd0aENhbGN1bGF0ZWQ6IiBOTAorICAgIC8vIFRNUDJfUzEgY29udGFpbnMgdGhlIGxpZ2h0
IHN0cmVuZ3RoLgorICAgICJ2bWF4LmYzMiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgQ09O
U1RfWkVST19ISV9EIE5MCisgICAgInZtaW4uZjMyICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwg
IiBDT05TVF9PTkVfSElfRCBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDNfUSAiLCAiIENPTE9SX1Eg
IiwgIiBUTVAyX0QwICJbMV0iIE5MCisgICAgInZjdnQudTMyLmYzMiAiIFRNUDNfUSAiLCAiIFRN
UDNfUSBOTAorICAgICJ2bW92LnUzMiByMiwgcjMsICIgVE1QM19TMCAiLCAiIFRNUDNfUzEgTkwK
KyAgICAic3RyYiByMiwgWyIgUElYRUxTX1IgIiwgIy0xMV0iIE5MCisgICAgInN0cmIgcjMsIFsi
IFBJWEVMU19SICIsICMtMTBdIiBOTAorICAgICJ2bW92LnUzMiByMiwgIiBUTVAzX1MyIE5MCisg
ICAgInN0cmIgcjIsIFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisKKyAgICAvLyBDb250aW51ZSBz
Y2FubGluZS4KKyIuaW52aXNpYmxlUGl4ZWw6IiBOTAorICAgICJ2YWRkLmYzMiAiIFBPU0lUSU9O
X1hfUyAiLCAiIENPTlNUX09ORV9TIE5MCisgICAgIm1vdiByMywgIzEiIE5MCisgICAgInN1YnMg
IiBXSURUSF9SICIsICIgV0lEVEhfUiAiLCAjMSIgTkwKKyAgICAiYm5lIC5zY2FubGluZSIgTkwK
KworICAgIC8vIE5leHQgbGluZQorICAgICJ2YWRkLmYzMiAiIFBPU0lUSU9OX1lfUyAiLCAiIENP
TlNUX09ORV9TIE5MCisgICAgIm1vdiAiIFdJRFRIX1IgIiwgIiBSRVNFVF9XSURUSF9SIE5MCisg
ICAgInN1YnMgIiBIRUlHSFRfUiAiLCAiIEhFSUdIVF9SICIsICMxIiBOTAorICAgICJibmUgLm1h
aW5sb29wIiBOTAorCisgICAgInZsZG1pYSBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJsZG1pYSBz
cCEsIHtyNC1yOCwgcjEwLCByMTEsIHBjfSIgTkwKKworIi5kaXN0YW50TGlnaHQ6IiBOTAorICAg
ICJ2bW92LmYzMiAiIFRNUDFfUSAiLCAiIExJR0hUX1EgTkwKKyAgICAiYiAudmlzaWJsZVBpeGVs
IiBOTAorCisiLmNvc2luZU9mQW5nbGU6IiBOTAorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRNUDEs
IERJUkVDVElPTikKKyAgICAidmRpdi5mMzIgIiBDT1NJTkVfT0ZfQU5HTEUgIiwgIiBUTVAzX1Mw
ICIsICIgVE1QMV9TMyBOTAorICAgICJ2Y21wLmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIENP
TkVfQ1VUX09GRl9TIE5MCisgICAgImZtc3RhdCIgTkwKKyAgICAiYmxzIC52aXNpYmxlUGl4ZWwi
IE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInN0cmggcjAsIFsiIFBJWEVMU19SICIsICMt
MTFdIiBOTAorICAgICJzdHJiIHIwLCBbIiBQSVhFTFNfUiAiLCAjLTldIiBOTAorICAgICJiIC5p
bnZpc2libGVQaXhlbCIgTkwKKworIi5jdXRPZmY6IiBOTAorICAgICJ2c3ViLmYzMiAiIFRNUDNf
UzAgIiwgIiBDT05FX0NVVF9PRkZfUyAiLCAiIENPU0lORV9PRl9BTkdMRSBOTAorICAgICJ2ZGl2
LmYzMiAiIFRNUDNfUzAgIiwgIiBUTVAzX1MwICIsICIgQ09ORV9DVVRfT0ZGX1JBTkdFX1MgTkwK
KyAgICAidm11bC5mMzIgIiBUTVAzX1MxICIsICIgVE1QM19TMSAiLCAiIFRNUDNfUzAgTkwKKyAg
ICAiYiAuY3V0T2ZmRmluaXNoZWQiIE5MCisKKyIuY29uZUV4cFBvd2Y6IiBOTAorICAgIFBPV0Yo
VE1QM19TMSwgQ09ORV9FWFBPTkVOVF9SKQorICAgICJiIC5jb25lRXhwUG93ZkZpbmlzaGVkIiBO
TAorCisiLnNwZWN1bGFyRXhwUG93ZjoiIE5MCisgICAgUE9XRihUTVAyX1MxLCBTUEVDVUxBUl9F
WFBPTkVOVF9SKQorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfRElGRlVT
RV9DT05TVF9JU18xKSBOTAorICAgICJ2bXVsZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEg
IiwgIiBESUZGVVNFX0NPTlNUX1MgTkwKKyAgICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQi
IE5MCispOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDUFUoQVJNX05F
T04pICYmIENPTVBJTEVSKEdDQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFiZDkwOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRp
bmdOZW9uU0lNRC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
VW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBab2x0YW4gSGVyY3pl
ZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lU
WSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZ
IE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgRkVMaWdodGluZ05lb25TSU1EX2gKKyNkZWZpbmUgRkVMaWdodGlu
Z05lb25TSU1EX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgQ1BVKEFSTV9O
RU9OKSAmJiBDT01QSUxFUihHQ0MpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT3RoZXJ3
aXNlOiBEaXN0YW50IExpZ2h0LgorI2RlZmluZSBGTEFHX1BPSU5UX0xJR0hUICAgICAgICAgICAg
ICAgICAweDAxCisjZGVmaW5lIEZMQUdfU1BPVF9MSUdIVCAgICAgICAgICAgICAgICAgIDB4MDIK
KyNkZWZpbmUgRkxBR19DT05FX0VYUE9ORU5UX0lTXzEgICAgICAgICAgMHgwNAorCisvLyBPdGhl
cndpc2U6IERpZmZ1c2UgbGlnaHQuCisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfTElHSFQgICAgICAg
ICAgICAgIDB4MTAKKyNkZWZpbmUgRkxBR19ESUZGVVNFX0NPTlNUX0lTXzEgICAgICAgICAgMHgy
MAorI2RlZmluZSBGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lTXzEgICAgICAweDQwCisKKy8vIE11
c3QgYmUgYWxpZ25lZCB0byAxNiBieXRlcy4KK3N0cnVjdCBGRUxpZ2h0aW5nRmxvYXRBcmd1bWVu
dHNGb3JOZW9uIHsKKyAgICBmbG9hdCBzdXJmYWNlU2NhbGU7CisgICAgZmxvYXQgbWludXNTdXJm
YWNlU2NhbGVEaXZpZGVkQnlGb3VyOworICAgIGZsb2F0IGRpZmZ1c2VDb25zdGFudDsKKyAgICBm
bG9hdCBwYWRkaW5nMTsKKworICAgIGZsb2F0IGNvbmVDdXRPZmZMaW1pdDsKKyAgICBmbG9hdCBj
b25lRnVsbExpZ2h0OworICAgIGZsb2F0IGNvbmVDdXRPZmZSYW5nZTsKKyAgICBmbG9hdCBjb25z
dE9uZTsKKworICAgIGZsb2F0IGxpZ2h0WDsKKyAgICBmbG9hdCBsaWdodFk7CisgICAgZmxvYXQg
bGlnaHRaOworICAgIGZsb2F0IHBhZGRpbmcyOworCisgICAgZmxvYXQgZGlyZWN0aW9uWDsKKyAg
ICBmbG9hdCBkaXJlY3Rpb25ZOworICAgIGZsb2F0IGRpcmVjdGlvblo7CisgICAgZmxvYXQgcGFk
ZGluZzM7CisKKyAgICBmbG9hdCBjb2xvclJlZDsKKyAgICBmbG9hdCBjb2xvckdyZWVuOworICAg
IGZsb2F0IGNvbG9yQmx1ZTsKKyAgICBmbG9hdCBwYWRkaW5nNDsKK307CisKK3N0cnVjdCBGRUxp
Z2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiB7CisgICAgdW5zaWduZWQgY2hhciogcGl4ZWxzOwor
ICAgIGludCB3aWR0aERlY3JlYXNlZEJ5VHdvOworICAgIGludCBoZWlnaHREZWNyZWFzZWRCeVR3
bzsKKyAgICAvLyBDb21iaW5hdGlvbiBvZiBGTEFHIGNvbnN0YW50cyBhYm92ZS4KKyAgICBpbnQg
ZmxhZ3M7CisgICAgaW50IHNwZWN1bGFyRXhwb25lbnQ7CisgICAgaW50IGNvbmVFeHBvbmVudDsK
KyAgICBGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uKiBmbG9hdEFyZ3VtZW50czsKKyAg
ICBzaG9ydCogcGFpbnRpbmdDb25zdGFudHM7Cit9OworCitleHRlcm4gc2hvcnQgc19GRUxpZ2h0
aW5nQ29uc3RhbnRzRm9yTmVvbltdOworCitleHRlcm4gIkMiIHsKK3ZvaWQgbmVvbkRyYXdMaWdo
dGluZyhGRUxpZ2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiopOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKwor
I2VuZGlmIC8vIEZFTGlnaHRpbmdOZW9uU0lNRF9oCi0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84401</attachid>
            <date>2011-03-02 04:46:15 -0800</date>
            <delta_ts>2011-03-24 06:04:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>31877</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA5ODgwMjgwNzEyOWI2Yjk5YWM2ZTVjNGZjZjE1ZDNjOTc5ZDhiMmQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyIE1hciAyMDExIDEzOjQwOjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gbGln
aHQtbmVvbgoKLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggICAgICAg
ICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuY3BwICAgICAgIHwgIDExMCArKysrKwogLi4uL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggfCAgICA1ICsKIC4uLi9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwICAgIHwgIDQ1NyArKysrKysrKysrKysr
KysrKysrKwogLi4uL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oICAg
ICAgfCAgIDk2ICsrKysKIDggZmlsZXMgY2hhbmdlZCwgNjk4IGluc2VydGlvbnMoKyksIDEgZGVs
ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRp
bmdOZW9uU0lNRC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDIyNWIz
NTQuLjAyMGM1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTM0Nyw2
ICszNDcsMTAgQEAKICMgIGVycm9yICJDYW5ub3QgdXNlIGJvdGggb2YgV1RGX0NQVV9BUk1fVFJB
RElUSU9OQUwgYW5kIFdURl9DUFVfQVJNX1RIVU1CMiBwbGF0Zm9ybXMiCiAjZW5kaWYgLyogIWRl
ZmluZWQoV1RGX0NQVV9BUk1fVFJBRElUSU9OQUwpICYmICFkZWZpbmVkKFdURl9DUFVfQVJNX1RI
VU1CMikgKi8KIAorI2lmIGRlZmluZWQoX19BUk1fTkVPTl9fKSAmJiAhZGVmaW5lZChXVEZfQ1BV
X0FSTV9ORU9OKQorI2RlZmluZSBXVEZfQ1BVX0FSTV9ORU9OIDEKKyNlbmRpZgorCiAjZW5kaWYg
LyogQVJNICovCiAKICNpZiBDUFUoQVJNKSB8fCBDUFUoTUlQUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWU5
NTY5Li5hMzViMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDItMTcgIFpv
bHRhbiBIZXJjemVnICA8emhlcmN6ZWdAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcHRpbWl6aW5nIGxpZ2h0bmluZyBmaWx0ZXIg
dG8gQVJNLW5lb24gU0lNRCBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NDU2CisKKyAgICAgICAgTmVvbiBpcyB0aGUgU0lN
RCBpbnN0cnVjdGlvbiBzZXQgZm9yIEFSTS4gVGhpcyBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAg
YWxsb3dzIHRvIHNwZWVkLXVwIHRoZSBsaWdodGluZyBmaWx0ZXIgYnkgNCB0aW1lcyBvbiBBUk0K
KyAgICAgICAgKG9uIFdlYkNvcmUvbWFudWFsLXRlc3RzL3N2Zy1maWx0ZXItYW5pbWF0aW9uLnN2
ZykuCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OmdldFBvd2VyQ29lZmZpY2llbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmRy
YXdJbnRlcmlvclBpeGVscyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVM
aWdodGluZ05lb25TSU1ELmNwcDogQWRkZWQuCisgICAgICAgIChfX2F0dHJpYnV0ZV9fKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQu
aDogQWRkZWQuCisKIDIwMTEtMDMtMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5k
ZXggOGYzZjQzZC4uZDYxZGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTkxLDYgKzkxLDcgQEAgV0VC
Q09SRV9JTkNMVURFUEFUSCA9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpbyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MgXAogICAg
ICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgXAorICAgICQk
U09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vbW9jayBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDQ1OGQ2YTIu
LmJlOWNjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xODcyLDYgKzE4NzIsNyBAQCBIRUFERVJTICs9
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0U291cmNlLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50M0QuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCkBAIC0yOTY5LDcgKzI5NzAsOCBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKSB7CiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBcCi0gICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtL0ZFTGlnaHRpbmdOZW9uU0lNRC5jcHAKIH0KIAogY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX01BVEhNTD0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAppbmRleCBlYzFjYTg4Li5kYzVjNWQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGln
aHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVMaWdodGluZy5jcHAKQEAgLTMwLDYgKzMwLDEyIEBACiAjaW5jbHVkZSAiRkVMaWdodGluZy5o
IgogCiAjaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJQb2ludExpZ2h0U291cmNl
LmgiCisjaW5jbHVkZSAiU3BvdExpZ2h0U291cmNlLmgiCisKKyNpZiBDUFUoQVJNX05FT04pICYm
IENPTVBJTEVSKEdDQykKKyNpbmNsdWRlICJGRUxpZ2h0aW5nTmVvblNJTUQuaCIKKyNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMwMSw2ICszMDcsOSBAQCBib29sIEZFTGlnaHRp
bmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkqIHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KQogCiAgICAgaWYgKHdpZHRoID49IDMgJiYgaGVpZ2h0ID49IDMpIHsKICAgICAgICAgLy8gSW50
ZXJpb3IgcGl4ZWxzCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisgICAgICAg
IGRyYXdJbnRlcmlvclBpeGVscyhkYXRhLCBwYWludGluZ0RhdGEpOworI2Vsc2UKICAgICAgICAg
Zm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lOyArK3kpIHsKICAg
ICAgICAgICAgIG9mZnNldCA9IHkgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICsg
Y1BpeGVsU2l6ZTsKICAgICAgICAgICAgIGZvciAoaW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERl
Y3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXplKSB7CkBAIC0zMDgsNiArMzE3
LDcgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGlu
dCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAgICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZz
ZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgeCwgeSwgY0ZhY3RvcjFkaXY0LCBjRmFjdG9yMWRpdjQs
IG5vcm1hbFZlY3Rvcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyNlbmRpZgogICAgIH0K
IAogICAgIGludCBsYXN0UGl4ZWwgPSBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICog
aGVpZ2h0OwpAQCAtMzU0LDYgKzM2NCwxMDYgQEAgdm9pZCBGRUxpZ2h0aW5nOjphcHBseSgpCiAg
ICAgZHJhd0xpZ2h0aW5nKHNyY1BpeGVsQXJyYXksIGFic29sdXRlUGFpbnRTaXplLndpZHRoKCks
IGFic29sdXRlUGFpbnRTaXplLmhlaWdodCgpKTsKIH0KIAorI2lmIENQVShBUk1fTkVPTikgJiYg
Q09NUElMRVIoR0NDKQorCitzdGF0aWMgaW50IGdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4
cG9uZW50KQoreworICAgIGludCBpLCByZXN1bHQ7CisKKyAgICBpZiAoZXhwb25lbnQgPCAwKQor
ICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsKKworICAgIGlmIChleHBvbmVudCA+
IDYzLjk5KQorICAgICAgICBleHBvbmVudCA9IDYzLjk5OworCisgICAgZXhwb25lbnQgLz0gNjQ7
CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGkgPSAxMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAg
ICAgZXhwb25lbnQgKj0gMjsKKyAgICAgICAgaWYgKGV4cG9uZW50ID49IDEpIHsKKyAgICAgICAg
ICAgIHJlc3VsdCB8PSAxIDw8IGk7CisgICAgICAgICAgICBleHBvbmVudCAtPSAxOworICAgICAg
ICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRkVMaWdodGluZzo6ZHJh
d0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3VyY2U6OlBhaW50aW5n
RGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9u
IG5lb25EYXRhOworICAgIGNoYXIgYnVmZmVyW3NpemVvZihGRUxpZ2h0aW5nRmxvYXRBcmd1bWVu
dHNGb3JOZW9uKSArIDE2XTsKKyAgICBGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uKiBm
bG9hdEFyZ3VtZW50cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8RkVMaWdodGluZ0Zsb2F0QXJndW1lbnRz
Rm9yTmVvbio+KChyZWludGVycHJldF9jYXN0PGxvbmc+KGJ1ZmZlcikgKyAxNSkgJiB+MHhmKTsK
KworICAgIG5lb25EYXRhLnBpeGVscyA9IGRhdGEucGl4ZWxzLT5kYXRhKCk7CisgICAgbmVvbkRh
dGEud2lkdGhEZWNyZWFzZWRCeVR3byA9IGRhdGEud2lkdGhEZWNyZWFzZWRCeU9uZSAtIDE7Cisg
ICAgbmVvbkRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlUd28gPSBkYXRhLmhlaWdodERlY3JlYXNlZEJ5
T25lIC0gMTsKKyAgICBuZW9uRGF0YS5mbGFncyA9IDA7CisgICAgbmVvbkRhdGEuc3BlY3VsYXJF
eHBvbmVudCA9IDA7CisgICAgbmVvbkRhdGEuY29uZUV4cG9uZW50ID0gMDsKKyAgICBuZW9uRGF0
YS5mbG9hdEFyZ3VtZW50cyA9IGZsb2F0QXJndW1lbnRzOworICAgIG5lb25EYXRhLnBhaW50aW5n
Q29uc3RhbnRzID0gc19GRUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbjsKKworICAgIC8vIFNldCBs
aWdodCBzb3VyY2UgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1lbnRzLT5jb25zdE9uZSA9IDE7
CisKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JSZWQgPSBtX2xpZ2h0aW5nQ29sb3IucmVkKCk7
CisgICAgZmxvYXRBcmd1bWVudHMtPmNvbG9yR3JlZW4gPSBtX2xpZ2h0aW5nQ29sb3IuZ3JlZW4o
KTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+Y29sb3JCbHVlID0gbV9saWdodGluZ0NvbG9yLmJsdWUo
KTsKKyAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzQgPSAwOworCisgICAgaWYgKG1fbGlnaHRT
b3VyY2UtPnR5cGUoKSA9PSBMU19QT0lOVCkgeworICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBG
TEFHX1BPSU5UX0xJR0hUOworICAgICAgICBQb2ludExpZ2h0U291cmNlKiBwb2ludExpZ2h0U291
cmNlID0gc3RhdGljX2Nhc3Q8UG9pbnRMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkp
OworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRYID0gcG9pbnRMaWdodFNvdXJjZS0+cG9z
aXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFkgPSBwb2ludExpZ2h0
U291cmNlLT5wb3NpdGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxpZ2h0WiA9
IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50
cy0+cGFkZGluZzIgPSAwOworICAgIH0gZWxzZSBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09
IExTX1NQT1QpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUE9UX0xJR0hUOwor
ICAgICAgICBTcG90TGlnaHRTb3VyY2UqIHNwb3RMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFNw
b3RMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOworICAgICAgICBmbG9hdEFyZ3Vt
ZW50cy0+bGlnaHRYID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLngoKTsKKyAgICAgICAg
ZmxvYXRBcmd1bWVudHMtPmxpZ2h0WSA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS55KCk7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5saWdodFogPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0
aW9uKCkueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+cGFkZGluZzIgPSAwOworCisgICAg
ICAgIGZsb2F0QXJndW1lbnRzLT5kaXJlY3Rpb25YID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZl
Y3Rvci54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaXJlY3Rpb25ZID0gcGFpbnRpbmdE
YXRhLmRpcmVjdGlvblZlY3Rvci55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaXJlY3Rp
b25aID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci56KCk7CisgICAgICAgIGZsb2F0QXJn
dW1lbnRzLT5wYWRkaW5nMyA9IDA7CisKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmNvbmVDdXRP
ZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQ7CisgICAgICAgIGZsb2F0QXJn
dW1lbnRzLT5jb25lRnVsbExpZ2h0ID0gcGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7CisgICAg
ICAgIGZsb2F0QXJndW1lbnRzLT5jb25lQ3V0T2ZmUmFuZ2UgPSBwYWludGluZ0RhdGEuY29uZUN1
dE9mZkxpbWl0IC0gcGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7CisgICAgICAgIG5lb25EYXRh
LmNvbmVFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2llbnRzKHNwb3RMaWdodFNvdXJjZS0+c3Bl
Y3VsYXJFeHBvbmVudCgpKTsKKyAgICAgICAgaWYgKHNwb3RMaWdodFNvdXJjZS0+c3BlY3VsYXJF
eHBvbmVudCgpID09IDEpCisgICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0NPTkVf
RVhQT05FTlRfSVNfMTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQobV9saWdodFNvdXJj
ZS50eXBlID09IExTX0RJU1RBTlQpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy0+bGlnaHRYID0g
cGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMtPmxp
Z2h0WSA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci55KCk7CisgICAgICAgIGZsb2F0QXJndW1l
bnRzLT5saWdodFogPSBwYWludGluZ0RhdGEubGlnaHRWZWN0b3IueigpOworICAgICAgICBmbG9h
dEFyZ3VtZW50cy0+cGFkZGluZzIgPSAxOworICAgIH0KKworICAgIC8vIFNldCBsaWdodG5pZyBh
cmd1bWVudHMuCisgICAgZmxvYXRBcmd1bWVudHMtPnN1cmZhY2VTY2FsZSA9IGRhdGEuc3VyZmFj
ZVNjYWxlOworICAgIGZsb2F0QXJndW1lbnRzLT5taW51c1N1cmZhY2VTY2FsZURpdmlkZWRCeUZv
dXIgPSAtZGF0YS5zdXJmYWNlU2NhbGUgLyA0OworICAgIGlmIChtX2xpZ2h0aW5nVHlwZSA9PSBG
RUxpZ2h0aW5nOjpEaWZmdXNlTGlnaHRpbmcpCisgICAgICAgIGZsb2F0QXJndW1lbnRzLT5kaWZm
dXNlQ29uc3RhbnQgPSBtX2RpZmZ1c2VDb25zdGFudDsKKyAgICBlbHNlIHsKKyAgICAgICAgbmVv
bkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9MSUdIVDsKKyAgICAgICAgZmxvYXRBcmd1bWVu
dHMtPmRpZmZ1c2VDb25zdGFudCA9IG1fc3BlY3VsYXJDb25zdGFudDsKKyAgICAgICAgbmVvbkRh
dGEuc3BlY3VsYXJFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2llbnRzKG1fc3BlY3VsYXJFeHBv
bmVudCk7CisgICAgICAgIGlmIChtX3NwZWN1bGFyRXhwb25lbnQgPT0gMSkKKyAgICAgICAgICAg
IG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfRVhQT05FTlRfSVNfMTsKKyAgICB9Cisg
ICAgaWYgKGZsb2F0QXJndW1lbnRzLT5kaWZmdXNlQ29uc3RhbnQgPT0gMSkKKyAgICAgICAgbmVv
bkRhdGEuZmxhZ3MgfD0gRkxBR19ESUZGVVNFX0NPTlNUX0lTXzE7CisKKyAgICBuZW9uRHJhd0xp
Z2h0aW5nKCZuZW9uRGF0YSk7Cit9CisjZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxF
UihHQ0MpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxU
RVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuaAppbmRleCBmYTFjMGFhLi4zZGM0NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgIkxpZ2h0U291
cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgogCiAvLyBDb21tb24gYmFzZSBjbGFzcyBmb3IgRkVEaWZmdXNlTGlnaHRpbmcgYW5kIEZF
U3BlY3VsYXJMaWdodGluZwogCkBAIC03OSw2ICs4MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBzZXRQaXhlbChpbnQgb2Zmc2V0LCBMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRp
bmdEYXRhJiwKICAgICAgICAgICAgICAgICAgIGludCBsaWdodFgsIGludCBsaWdodFksIGZsb2F0
IGZhY3RvclgsIGZsb2F0IGZhY3RvclksIEludFBvaW50JiBub3JtYWxWZWN0b3IpOwogCisjaWYg
Q1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisgICAgdm9pZCBkcmF3SW50ZXJpb3JQaXhl
bHMoTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYpOworI2VuZGlmCisK
ICAgICBMaWdodGluZ1R5cGUgbV9saWdodGluZ1R5cGU7CiAgICAgUmVmUHRyPExpZ2h0U291cmNl
PiBtX2xpZ2h0U291cmNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWYzYTRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdo
dGluZ05lb25TSU1ELmNwcApAQCAtMCwwICsxLDQ1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChDKSAyMDExIFpvbHRhbiBI
ZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklW
RVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZFTGlnaHRpbmdO
ZW9uU0lNRC5oIgorCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworLy8gVGhlc2UgY29uc3RhbnRzIGFyZSBjb3BpZWQgdG8gdGhlIGZv
bGxvd2luZyBTSU1EIHJlZ2lzdGVyczoKKy8vICAgQUxQSEFYX1EgQUxQSEFZX1EgUkVNQVBYX0Qg
UkVNQVBZX0QKKworc2hvcnQgc19GRUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbltdIF9fYXR0cmli
dXRlX18oKGFsaWduZWQoMHgxMCkpKSA9IHsKKyAgICAvLyBBbHBoYSBjb2VmZmljaWVudHMuCisg
ICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAtMSwKKyAgICAwLCAtMSwgLTIsIC0xLCAwLCAxLCAy
LCAxLAorICAgIC8vIFJlbWFwcGluZyBpbmRpY2llcy4KKyAgICAweDBmMGUsIDB4MDMwMiwgMHgw
NTA0LCAweDA3MDYsCisgICAgMHgwYjBhLCAweDEzMTIsIDB4MTUxNCwgMHgxNzE2LAorfTsKKwor
I2RlZmluZSBBU1NUUklORyhzdHIpICNzdHIKKyNkZWZpbmUgVE9TVFJJTkcodmFsdWUpIEFTU1RS
SU5HKHZhbHVlKQorCisjZGVmaW5lIFBJWEVMU19PRkZTRVQgVE9TVFJJTkcoMCkKKyNkZWZpbmUg
V0lEVEhfT0ZGU0VUIFRPU1RSSU5HKDQpCisjZGVmaW5lIEhFSUdIVF9PRkZTRVQgVE9TVFJJTkco
OCkKKyNkZWZpbmUgRkxBR1NfT0ZGU0VUIFRPU1RSSU5HKDEyKQorI2RlZmluZSBTUEVDVUxBUl9F
WFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMTYpCisjZGVmaW5lIENPTkVfRVhQT05FTlRfT0ZGU0VU
IFRPU1RSSU5HKDIwKQorI2RlZmluZSBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUIFRPU1RSSU5HKDI0
KQorI2RlZmluZSBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgVE9TVFJJTkcoMjgpCisjZGVmaW5l
IE5MICJcbiIKKworLy8gUmVnaXN0ZXIgYWxsb2NhdGlvbgorI2RlZmluZSBQQUlOVElOR19EQVRB
X1IgICAgICAgInIxMSIKKyNkZWZpbmUgUkVTRVRfV0lEVEhfUiAgICAgICAgIFBBSU5USU5HX0RB
VEFfUgorI2RlZmluZSBQSVhFTFNfUiAgICAgICAgICAgICAgInI0IgorI2RlZmluZSBXSURUSF9S
ICAgICAgICAgICAgICAgInI1IgorI2RlZmluZSBIRUlHSFRfUiAgICAgICAgICAgICAgInI2Igor
I2RlZmluZSBGTEFHU19SICAgICAgICAgICAgICAgInI3IgorI2RlZmluZSBTUEVDVUxBUl9FWFBP
TkVOVF9SICAgInI4IgorI2RlZmluZSBDT05FX0VYUE9ORU5UX1IgICAgICAgInIxMCIKKyNkZWZp
bmUgU0NBTkxJTkVfUiAgICAgICAgICAgICJyMTIiCisKKyNkZWZpbmUgVE1QMV9RICAgICAgICAg
ICAgICAgICJxMCIKKyNkZWZpbmUgVE1QMV9EMCAgICAgICAgICAgICAgICJkMCIKKyNkZWZpbmUg
VE1QMV9TMCAgICAgICAgICAgICAgICJzMCIKKyNkZWZpbmUgVE1QMV9TMSAgICAgICAgICAgICAg
ICJzMSIKKyNkZWZpbmUgVE1QMV9EMSAgICAgICAgICAgICAgICJkMSIKKyNkZWZpbmUgVE1QMV9T
MiAgICAgICAgICAgICAgICJzMiIKKyNkZWZpbmUgVE1QMV9TMyAgICAgICAgICAgICAgICJzMyIK
KyNkZWZpbmUgVE1QMl9RICAgICAgICAgICAgICAgICJxMSIKKyNkZWZpbmUgVE1QMl9EMCAgICAg
ICAgICAgICAgICJkMiIKKyNkZWZpbmUgVE1QMl9TMCAgICAgICAgICAgICAgICJzNCIKKyNkZWZp
bmUgVE1QMl9TMSAgICAgICAgICAgICAgICJzNSIKKyNkZWZpbmUgVE1QMl9EMSAgICAgICAgICAg
ICAgICJkMyIKKyNkZWZpbmUgVE1QMl9TMiAgICAgICAgICAgICAgICJzNiIKKyNkZWZpbmUgVE1Q
Ml9TMyAgICAgICAgICAgICAgICJzNyIKKyNkZWZpbmUgVE1QM19RICAgICAgICAgICAgICAgICJx
MiIKKyNkZWZpbmUgVE1QM19EMCAgICAgICAgICAgICAgICJkNCIKKyNkZWZpbmUgVE1QM19TMCAg
ICAgICAgICAgICAgICJzOCIKKyNkZWZpbmUgVE1QM19TMSAgICAgICAgICAgICAgICJzOSIKKyNk
ZWZpbmUgVE1QM19EMSAgICAgICAgICAgICAgICJkNSIKKyNkZWZpbmUgVE1QM19TMiAgICAgICAg
ICAgICAgICJzMTAiCisjZGVmaW5lIFRNUDNfUzMgICAgICAgICAgICAgICAiczExIgorCisjZGVm
aW5lIENPU0lORV9PRl9BTkdMRSAgICAgICAiczEyIgorI2RlZmluZSBQT1dGX0lOVF9TICAgICAg
ICAgICAgInMxMyIKKyNkZWZpbmUgUE9XRl9GUkFDX1MgICAgICAgICAgICJzMTQiCisjZGVmaW5l
IFNQT1RfQ09MT1JfUSAgICAgICAgICAicTQiCisKKy8vIEJlY2F1c2Ugb2YgVk1JTiBhbmQgVk1B
WCBDT05TVF9aRVJPX1MgYW5kIENPTlNUX09ORV9TCisvLyBtdXN0IGJlIHBsYWNlZCBvbiB0aGUg
c2FtZSBzaWRlIG9mIHRoZSBkb3VibGUgdmVjdG9yCisKKy8vIEN1cnJlbnQgcGl4ZWwgcG9zaXRp
b24KKyNkZWZpbmUgUE9TSVRJT05fUSAgICAgICAgICAgICJxNSIKKyNkZWZpbmUgUE9TSVRJT05f
WF9TICAgICAgICAgICJzMjAiCisjZGVmaW5lIFBPU0lUSU9OX1lfUyAgICAgICAgICAiczIxIgor
I2RlZmluZSBQT1NJVElPTl9aX1MgICAgICAgICAgInMyMiIKKyNkZWZpbmUgQ09OU1RfWkVST19I
SV9EICAgICAgICJkMTEiCisjZGVmaW5lIENPTlNUX1pFUk9fUyAgICAgICAgICAiczIzIgorCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgVmFyaWFibGUgYXJndW1l
bnRzCisvLyBNaXNjIGFyZ3VtZW50cworI2RlZmluZSBSRUFEMV9SQU5HRSAgICAgICAgICAgImQx
Mi1kMTUiCisjZGVmaW5lIFJFQUQyX1JBTkdFICAgICAgICAgICAiZDE2LWQxOSIKKyNkZWZpbmUg
UkVBRDNfUkFOR0UgICAgICAgICAgICJkMjAtZDIxIgorCisjZGVmaW5lIFNDQUxFX1MgICAgICAg
ICAgICAgICAiczI0IgorI2RlZmluZSBTQ0FMRV9ESVY0X1MgICAgICAgICAgInMyNSIKKyNkZWZp
bmUgRElGRlVTRV9DT05TVF9TICAgICAgICJzMjYiCisKKy8vIExpZ2h0IHNvdXJjZSBwb3NpdGlv
bgorI2RlZmluZSBDT05FX0NVVF9PRkZfUyAgICAgICAgInMyOCIKKyNkZWZpbmUgQ09ORV9GVUxM
X0xJR0hUX1MgICAgICJzMjkiCisjZGVmaW5lIENPTkVfQ1VUX09GRl9SQU5HRV9TICAiczMwIgor
I2RlZmluZSBDT05TVF9PTkVfSElfRCAgICAgICAgImQxNSIKKyNkZWZpbmUgQ09OU1RfT05FX1Mg
ICAgICAgICAgICJzMzEiCisKKyNkZWZpbmUgTElHSFRfUSAgICAgICAgICAgICAgICJxOCIKKyNk
ZWZpbmUgRElSRUNUSU9OX1EgICAgICAgICAgICJxOSIKKyNkZWZpbmUgQ09MT1JfUSAgICAgICAg
ICAgICAgICJxMTAiCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICBD
b25zdGFudCBjb2VmZmljaWVudHMKKyNkZWZpbmUgUkVBRDRfUkFOR0UgICAgICAgICAgICJkMjIt
ZDI1IgorI2RlZmluZSBSRUFENV9SQU5HRSAgICAgICAgICAgImQyNi1kMjciCisKKyNkZWZpbmUg
QUxQSEFYX1EgICAgICAgICAgICAgICJxMTEiCisjZGVmaW5lIEFMUEhBWV9RICAgICAgICAgICAg
ICAicTEyIgorI2RlZmluZSBSRU1BUFhfRCAgICAgICAgICAgICAgImQyNiIKKyNkZWZpbmUgUkVN
QVBZX0QgICAgICAgICAgICAgICJkMjciCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKKyNkZWZpbmUgQUxMX1JPV1NfRCAgICAgICAgICAgICJ7ZDI4LGQyOSxkMzB9IgorI2Rl
ZmluZSBUT1BfUk9XX0QgICAgICAgICAgICAgImQyOCIKKyNkZWZpbmUgTUlERExFX1JPV19EICAg
ICAgICAgICJkMjkiCisjZGVmaW5lIEJPVFRPTV9ST1dfRCAgICAgICAgICAiZDMwIgorCisjZGVm
aW5lIEdFVF9MRU5HVEgoc291cmNlLCB0ZW1wKSBcCisgICAgInZtdWwuZjMyICIgdGVtcCMjX1Eg
IiwgIiBzb3VyY2UjI19RICIsICIgc291cmNlIyNfUSBOTCBcCisgICAgInZhZGQuZjMyICIgc291
cmNlIyNfUzMgIiwgIiB0ZW1wIyNfUzAgIiwgIiB0ZW1wIyNfUzEgTkwgXAorICAgICJ2YWRkLmYz
MiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMgIiwgIiB0ZW1wIyNfUzIgTkwgXAorICAg
ICJ2c3FydC5mMzIgIiBzb3VyY2UjI19TMyAiLCAiIHNvdXJjZSMjX1MzIE5MCisKKy8vIGRlc3Rp
bmF0aW9uIyNfUzMgY2FuIGNvbnRhaW4gdGhlIG11bHRpcGx5IG9mIGxlbmd0aC4KKyNkZWZpbmUg
RE9UX1BST0RVQ1QoZGVzdGluYXRpb24sIHNvdXJjZTEsIHNvdXJjZTIpIFwKKyAgICAidm11bC5m
MzIgIiBkZXN0aW5hdGlvbiMjX1EgIiwgIiBzb3VyY2UxIyNfUSAiLCAiIHNvdXJjZTIjI19RIE5M
IFwKKyAgICAidmFkZC5mMzIgIiBkZXN0aW5hdGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24jI19T
MCAiLCAiIGRlc3RpbmF0aW9uIyNfUzEgTkwgXAorICAgICJ2YWRkLmYzMiAiIGRlc3RpbmF0aW9u
IyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24jI19TMiBOTAorCisj
ZGVmaW5lIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1Qobm9ybWFsVmVjdG9yTGVuZ3RoLCBkb3RQ
cm9kdWN0TGVuZ3RoKSBcCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19E
SUZGVVNFX0NPTlNUX0lTXzEpIE5MIFwKKyAgICAidm11bGVxLmYzMiAiIFRNUDJfUzEgIiwgIiBE
SUZGVVNFX0NPTlNUX1MgIiwgIiBub3JtYWxWZWN0b3JMZW5ndGggTkwgXAorICAgICJ2ZGl2ZXEu
ZjMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEgIiwgIiBkb3RQcm9kdWN0TGVuZ3RoIE5MIFwKKyAg
ICAidmRpdm5lLmYzMiAiIFRNUDJfUzEgIiwgIiBub3JtYWxWZWN0b3JMZW5ndGggIiwgIiBkb3RQ
cm9kdWN0TGVuZ3RoIE5MCisKKyNkZWZpbmUgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCBjdXJy
ZW50LCByZW1haW5pbmcpIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIgQVNTVFJJTkcoY3Vy
cmVudCkgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwgIiB2YWx1ZSAiLCAiIFBPV0Zf
SU5UX1MgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklORyhyZW1haW5pbmcp
IE5MIFwKKyAgICAidm11bG5lLmYzMiAiIFBPV0ZfSU5UX1MgIiwgIiBQT1dGX0lOVF9TICIsICIg
UE9XRl9JTlRfUyBOTAorCisjZGVmaW5lIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIGN1cnJl
bnQsIHJlbWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklORyhyZW1h
aW5pbmcpIE5MIFwKKyAgICAidnNxcnRuZS5mMzIgIiBQT1dGX0ZSQUNfUyAiLCAiIFBPV0ZfRlJB
Q19TIE5MIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIgQVNTVFJJTkcoY3VycmVudCkgTkwg
XAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwgIiB2YWx1ZSAiLCAiIFBPV0ZfRlJBQ19TIE5M
CisKKy8vIFRoaXMgc2ltcGxpZmllZCBwb3dmIGZ1bmN0aW9uIGlzIHN1ZmZpY2llbnRseSBhY2N1
cmF0ZS4KKyNkZWZpbmUgUE9XRih2YWx1ZSwgZXhwb25lbnQpIFwKKyAgICAidHN0ICIgZXhwb25l
bnQgIiwgIzB4ZmMwIiBOTCBcCisgICAgInZtb3ZuZS5mMzIgIiBQT1dGX0lOVF9TICIsICIgdmFs
dWUgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjMHgwM2YiIE5MIFwKKyAgICAidm1vdm5l
LmYzMiAiIFBPV0ZfRlJBQ19TICIsICIgdmFsdWUgTkwgXAorICAgICJ2bW92LmYzMiAiIHZhbHVl
ICIsICIgQ09OU1RfT05FX1MgTkwgXAorICAgIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25l
bnQsIDB4MDQwLCAweGY4MCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgwODAs
IDB4ZjAwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDEwMCwgMHhlMDApIFwK
KyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MjAwLCAweGMwMCkgXAorICAgIFBPV0Zf
U1FSKHZhbHVlLCBleHBvbmVudCwgMHg0MDAsIDB4ODAwKSBcCisgICAgInRzdCAiIGV4cG9uZW50
ICIsICMweDgwMCIgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwgIiB2YWx1ZSAiLCAi
IFBPV0ZfSU5UX1MgTkwgXAorICAgIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAw
eDIwLCAweDNmKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgxMCwgMHgxZikg
XAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDgsIDB4MGYpIFwKKyAgICBQT1dG
X1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDA0LCAweDA3KSBcCisgICAgUE9XRl9TUVJUKHZhbHVl
LCBleHBvbmVudCwgMHgwMiwgMHgwMykgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQs
IDB4MDEsIDB4MDEpCisKKy8vIFRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtIGlzIGFuIEFSTS1ORU9O
IG9wdGltaXplZCB2ZXJzaW9uIG9mCisvLyB0aGUgbWFpbiBsb29wIGZvdW5kIGluIEZFTGlnaHRp
bmcuY3BwLiBTaW5jZSB0aGUgd2hvbGUgY29kZQorLy8gaXMgcmVkZXNpZ25lZCB0byBiZSBhcyBl
ZmZlY3RpdmUgYXMgcG9zc2libGUgKEFSTSBzcGVjaWZpYworLy8gdGhpbmtpbmcpLCBpdCBpcyBm
b3VyIHRpbWVzIGZhc3RlciB0aGFuIGl0cyBDKysgY291bnRlcnBhcnQuCisKK2FzbSAoCisiLmds
b2JsICIgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgTkwKK1RPU1RSSU5HKG5lb25EcmF3TGln
aHRpbmcpICI6IiBOTAorICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGNsZXZlciByZWdpc3RlciBhbGxv
Y2F0aW9uLCBub3RoaW5nIGlzIHN0b3JlZCBvbiB0aGUgc3RhY2sKKyAgICAvLyBleGNlcHQgdGhl
IHNhdmVkIHJlZ2lzdGVycy4KKyAgICAvLyBTdGFjayBtdXN0IGJlIGFsaWduZWQgdG8gOCBieXRl
cy4KKyAgICAic3RtZGIgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBscn0iIE5MCisgICAgInZzdG1k
YiBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJtb3YgIiBQQUlOVElOR19EQVRBX1IgIiwgcjAiIE5M
CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIHR3byBhcmd1bWVudHMgYXJlIGxvYWRlZCB0byBTSU1E
IHJlZ2lzdGVycy4KKyAgICAibGRyIHIwLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgRkxPQVRf
QVJHVU1FTlRTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyIHIxLCBbIiBQQUlOVElOR19EQVRBX1Ig
IiwgIyIgRFJBV0lOR19DT05TVEFOVFNfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBQSVhFTFNf
UiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgUElYRUxTX09GRlNFVCAiXSIgTkwKKyAgICAi
bGRyICIgV0lEVEhfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgV0lEVEhfT0ZGU0VUICJd
IiBOTAorICAgICJsZHIgIiBIRUlHSFRfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgSEVJ
R0hUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRkxBR1NfUiAiLCBbIiBQQUlOVElOR19EQVRB
X1IgIiwgIyIgRkxBR1NfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTUEVDVUxBUl9FWFBPTkVO
VF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBTUEVDVUxBUl9FWFBPTkVOVF9PRkZTRVQg
Il0iIE5MCisgICAgImxkciAiIENPTkVfRVhQT05FTlRfUiAiLCBbIiBQQUlOVElOR19EQVRBX1Ig
IiwgIyIgQ09ORV9FWFBPTkVOVF9PRkZTRVQgIl0iIE5MCisKKyAgICAvLyBMb2FkIGFsbCBkYXRh
IHRvIHRoZSBTSU1EIHJlZ2lzdGVycyB3aXRoIHRoZSBsZWFzdCBudW1iZXIgb2YgaW5zdHJ1Y3Rp
b25zLgorICAgICJ2bGQxLmYzMiB7ICIgUkVBRDFfUkFOR0UgIiB9LCBbcjBdISIgTkwKKyAgICAi
dmxkMS5mMzIgeyAiIFJFQUQyX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuZjMyIHsg
IiBSRUFEM19SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLnMxNiB7IiBSRUFENF9SQU5H
RSAifSwgW3IxXSEiIE5MCisgICAgInZsZDEuczE2IHsiIFJFQUQ1X1JBTkdFICJ9LCBbcjFdISIg
TkwKKworICAgIC8vIEluaXRpYWxpemluZyBsb2NhbCB2YXJpYWJsZXMuCisgICAgIm1vdiAiIFND
QU5MSU5FX1IgIiwgIiBXSURUSF9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRkICIgU0NBTkxJTkVf
UiAiLCAiIFNDQU5MSU5FX1IgIiwgIzgiIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIgUElY
RUxTX1IgIiwgIiBTQ0FOTElORV9SIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIgUElYRUxT
X1IgIiwgIzMiIE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInZtb3YuZjMyICIgQ09OU1Rf
WkVST19TICIsIHIwIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1lfUyAiLCAiIENPTlNU
X09ORV9TIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUE9UX0xJ
R0hUKSBOTAorICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAiIENPTE9SX1EgTkwKKyAg
ICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKKworIi5tYWlubG9vcDoiIE5M
CisgICAgIm1vdiByMywgIzMiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWF9TICIsICIg
Q09OU1RfT05FX1MgTkwKKworIi5zY2FubGluZToiIE5MCisgICAgLy8gVGhlIFJPVyByZWdpc3Rl
cnMgYXJlIHN0b3JpbmcgdGhlIGFscGhhIGNoYW5uZWwgb2YgdGhlIGxhc3QgdGhyZWUgcGl4ZWxz
LgorICAgIC8vIFRoZSBhbHBoYSBjaGFubmVsIGlzIHN0b3JlZCBhcyBzaWduZWQgc2hvcnQgKHNp
bnQxNikgdmFsdWVzLiBUaGUgZm91cnRoIHZhbHVlCisgICAgLy8gaXMgZ2FyYmFnZS4gVGhlIGZv
bGxvd2luZyBpbnN0cnVjdGlvbnMgYXJlIHNoaWZ0aW5nIG91dCB0aGUgdW5uZWNlc3NhcnkgYWxw
aGEKKyAgICAvLyB2YWx1ZXMgYW5kIGxvYWQgdGhlIG5leHQgb25lcy4KKyAgICAibGRyYiByMCwg
WyIgUElYRUxTX1IgIiwgLSIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMSwgWyIgUElY
RUxTX1IgIiwgKyIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMiwgWyIgUElYRUxTX1Ig
Il0sICM0IiBOTAorICAgICJ2ZXh0LnMxNiAiIFRPUF9ST1dfRCAiLCAiIFRPUF9ST1dfRCAiLCAi
IFRPUF9ST1dfRCAiLCAjMyIgTkwKKyAgICAidmV4dC5zMTYgIiBNSURETEVfUk9XX0QgIiwgIiBN
SURETEVfUk9XX0QgIiwgIiBNSURETEVfUk9XX0QgIiwgIzMiIE5MCisgICAgInZleHQuczE2ICIg
Qk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JPV19EICIsICMzIiBO
TAorICAgICJ2bW92LnMxNiAiIFRPUF9ST1dfRCAiWzFdLCByMCIgTkwKKyAgICAidm1vdi5zMTYg
IiBNSURETEVfUk9XX0QgIlsxXSwgcjIiIE5MCisgICAgInZtb3YuczE2ICIgQk9UVE9NX1JPV19E
ICJbMV0sIHIxIiBOTAorCisgICAgLy8gVGhlIHR3byBib3JkZXIgcGl4ZWxzIChyaWdodG1vc3Qg
YW5kIGxlZnRtb3N0KSBhcmUgc2tpcHBlZCB3aGVuCisgICAgLy8gdGhlIG5leHQgc2NhbmxpbmUg
aXMgcmVhY2hlZC4gSXQgYWxzbyBqdW1wcywgd2hlbiB0aGUgYWxnb3JpdGhtCisgICAgLy8gaXMg
c3RhcnRlZCwgYW5kIHRoZSBmaXJzdCBmcmVlIGFscGhhIHZhbHVlcyBhcmUgbG9hZGVkIHRvIGVh
Y2ggcm93LgorICAgICJzdWJzIHIzLCByMywgIzEiIE5MCisgICAgImJuZSAuc2NhbmxpbmUiIE5M
CisKKyAgICAvLyBUaGUgbGlnaHQgdmVjdG9yIGdvZXMgdG8gVE1QMV9RLiBJdCBpcyBjb25zdGFu
dCBpbiBjYXNlIG9mIGRpc3RhbnQgbGlnaHQuCisgICAgLy8gVGhlIGZvdXJ0aCB2YWx1ZSBjb250
YWlucyB0aGUgbGVuZ3RoIG9mIHRoZSBsaWdodCB2ZWN0b3IuCisgICAgInRzdCAiIEZMQUdTX1Ig
IiwgIyIgVE9TVFJJTkcoRkxBR19QT0lOVF9MSUdIVCB8IEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAg
ICAiYmVxIC5kaXN0YW50TGlnaHQiIE5MCisKKyAgICAidm1vdi5zMTYgcjMsICIgTUlERExFX1JP
V19EICJbMl0iIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWl9TICIsIHIzIiBOTAorICAg
ICJ2Y3Z0LmYzMi5zMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgTkwKKyAgICAi
dm11bC5mMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgIiwgIiBTQ0FMRV9TIE5M
CisKKyAgICAidnN1Yi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RICIsICIgUE9TSVRJT05fUSBO
TAorICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMikKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMi
IFRPU1RSSU5HKEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYm5lIC5jb3NpbmVPZkFuZ2xlIiBO
TAorIi52aXNpYmxlUGl4ZWw6IiBOTAorCisgICAgLy8gICAgIHwgLTEgIDAgIDEgfCAgICAgIHwg
LTEgLTIgLTEgfAorICAgIC8vIFggPSB8IC0yICAwICAyIHwgIFkgPSB8ICAwICAwICAwIHwKKyAg
ICAvLyAgICAgfCAtMSAgMCAgMSB8ICAgICAgfCAgMSAgMiAgMSB8CisKKyAgICAvLyBNdWx0aXBs
eSB0aGUgYWxwaGEgdmFsdWVzIGJ5IHRoZSBYIGFuZCBZIG1hdHJpY2llcy4KKworICAgIC8vIE1v
dmluZyB0aGUgOCBhbHBoYSB2YWx1ZSB0byBUTVAzLgorICAgICJ2dGJsLjggIiBUTVAzX0QwICIs
ICIgQUxMX1JPV1NfRCAiLCAiIFJFTUFQWF9EIE5MCisgICAgInZ0YmwuOCAiIFRNUDNfRDEgIiwg
IiBBTExfUk9XU19EICIsICIgUkVNQVBZX0QgTkwKKworICAgICJ2bXVsLnMxNiAiIFRNUDJfUSAi
LCAiIFRNUDNfUSAiLCAiIEFMUEhBWF9RIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwg
IiBUTVAyX0QwICIsICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIg
VE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRN
UDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIwLCAiIFRNUDJfRDAgIlswXSIg
TkwKKworICAgICJ2bXVsLnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAiIEFMUEhBWV9RIE5M
CisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMSBOTAor
ICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAg
ICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAg
InZtb3YuczE2IHIxLCAiIFRNUDJfRDAgIlswXSIgTkwKKworICAgIC8vIHIwIGFuZCByMSBjb250
YWlucyB0aGUgWCBhbmQgWSBjb29yZGluYXRlcyBvZiB0aGUKKyAgICAvLyBub3JtYWwgdmVjdG9y
LCByZXNwZWN0aXZlbHkuCisKKyAgICAvLyBDYWxjdWxhdGluZyB0aGUgc3BvdCBsaWdodCBzdHJl
bmd0aC4KKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQT1RfTElHSFQp
IE5MCisgICAgImJlcSAuZW5kTGlnaHQiIE5MCisKKyAgICAidm5lZy5mMzIgIiBUTVAzX1MxICIs
ICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkco
RkxBR19DT05FX0VYUE9ORU5UX0lTXzEpIE5MCisgICAgImJlcSAuY29uZUV4cFBvd2YiIE5MCisi
LmNvbmVFeHBQb3dmRmluaXNoZWQ6IiBOTAorCisgICAgLy8gU21vb3RoaW5nIHRoZSBjb25lIGVk
Z2UgaWYgbmVjZXNzYXJ5LgorICAgICJ2Y21wLmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIENP
TkVfRlVMTF9MSUdIVF9TIE5MCisgICAgImZtc3RhdCIgTkwKKyAgICAiYmhpIC5jdXRPZmYiIE5M
CisiLmN1dE9mZkZpbmlzaGVkOiIgTkwKKworICAgICJ2bWluLmYzMiAiIFRNUDNfRDAgIiwgIiBU
TVAzX0QwICIsICIgQ09OU1RfT05FX0hJX0QgTkwKKyAgICAidm11bC5mMzIgIiBDT0xPUl9RICIs
ICIgU1BPVF9DT0xPUl9RICIsICIgVE1QM19EMCAiWzFdIiBOTAorCisiLmVuZExpZ2h0OiIgTkwK
KyAgICAvLyBTdW1tYXJpemU6CisgICAgLy8gcjAgYW5kIHIxIGNvbnRhaW5zIHRoZSBub3JtYWxW
ZWN0b3IuCisgICAgLy8gVE1QMV9RIGNvbnRhaW5zIHRoZSBsaWdodCB2ZWN0b3IgYW5kIGl0cyBs
ZW5ndGguCisgICAgLy8gQ09MT1JfUSBjb250YWlucyB0aGUgY29sb3Igb2YgdGhlIGxpZ2h0IHZl
Y3Rvci4KKworICAgIC8vIFRlc3Qgd2hldGhlciBib3RoIHIwIGFuZCByMSBhcmUgemVybyAoTm9y
bWFsIHZlY3RvciBpcyAoMCwgMCwgMSkpLgorICAgICJvcnJzIHIyLCByMCwgcjEiIE5MCisgICAg
ImJuZSAubm9ybWFsVmVjdG9ySXNOb25aZXJvIiBOTAorCisgICAgInRzdCAiIEZMQUdTX1IgIiwg
IyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9MSUdIVCkgTkwKKyAgICAiYm5lIC5zcGVjdWxhckxp
Z2h0MSIgTkwKKworICAgIC8vIENhbGN1bGF0ZSBkaWZmdXNlIGxpZ2h0IHN0cmVuZ3RoLgorICAg
IE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QMV9TMiwgVE1QMV9TMykKKyAgICAiYiAubGln
aHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCisKKyIuc3BlY3VsYXJMaWdodDE6IiBOTAorICAgIC8v
IENhbGN1bGF0aW5nIHNwZWN1bGFyIGxpZ2h0IHN0cmVuZ3RoLgorICAgICJ2YWRkLmYzMiAiIFRN
UDFfUzIgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBOTAorICAgIEdFVF9MRU5HVEgoVE1QMSwg
VE1QMikKKworICAgIC8vIFdoZW4gdGhlIGV4cG9uZW50IGlzIDEsIHdlIGRvbid0IG5lZWQgdG8g
Y2FsbCBhbiBleHBlbnNpdmUgcG93ZiBmdW5jdGlvbi4KKyAgICAidHN0ICIgRkxBR1NfUiAiLCAj
IiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lTXzEpIE5MCisgICAgInZkaXZlcS5m
MzIgIiBUTVAyX1MxICIsICIgVE1QMV9TMiAiLCAiIFRNUDFfUzMgTkwKKyAgICAiYmVxIC5zcGVj
dWxhckV4cFBvd2YiIE5MCisKKyAgICBNVUxUSVBMWV9CWV9ESUZGVVNFX0NPTlNUKFRNUDFfUzIs
IFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxjdWxhdGVkIiBOTAorCisiLm5vcm1h
bFZlY3RvcklzTm9uWmVybzoiIE5MCisgICAgLy8gTm9ybWFsIHZlY3RvciBnb2VzIHRvIFRNUDIs
IGFuZCBpdHMgbGVuZ3RoIGlzIGNhbGN1bGF0ZWQgYXMgd2VsbC4KKyAgICAidm1vdi5zMzIgIiBU
TVAyX1MwICIsIHIwIiBOTAorICAgICJ2Y3Z0LmYzMi5zMzIgIiBUTVAyX1MwICIsICIgVE1QMl9T
MCBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDJfUzAgIiwgIiBUTVAyX1MwICIsICIgU0NBTEVfRElW
NF9TIE5MCisgICAgInZtb3YuczMyICIgVE1QMl9TMSAiLCByMSIgTkwKKyAgICAidmN2dC5mMzIu
czMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEgTkwKKyAgICAidm11bC5mMzIgIiBUTVAyX1MxICIs
ICIgVE1QMl9TMSAiLCAiIFNDQUxFX0RJVjRfUyBOTAorICAgICJ2bW92LmYzMiAiIFRNUDJfUzIg
IiwgIiBDT05TVF9PTkVfUyBOTAorICAgIEdFVF9MRU5HVEgoVE1QMiwgVE1QMykKKworICAgICJ0
c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfTElHSFQpIE5MCisgICAg
ImJuZSAuc3BlY3VsYXJMaWdodDIiIE5MCisKKyAgICAvLyBDYWxjdWxhdGluZyBkaWZmdXNlIGxp
Z2h0IHN0cmVuZ3RoLgorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRNUDIsIFRNUDEpCisgICAgTVVM
VElQTFlfQllfRElGRlVTRV9DT05TVChUTVAzX1MwLCBUTVAzX1MzKQorICAgICJiIC5saWdodFN0
cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKworIi5zcGVjdWxhckxpZ2h0MjoiIE5MCisgICAgLy8gQ2Fs
Y3VsYXRpbmcgc3BlY3VsYXIgbGlnaHQgc3RyZW5ndGguCisgICAgInZhZGQuZjMyICIgVE1QMV9T
MiAiLCAiIFRNUDFfUzIgIiwgIiBUTVAxX1MzIE5MCisgICAgR0VUX0xFTkdUSChUTVAxLCBUTVAz
KQorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRNUDIsIFRNUDEpCisKKyAgICAvLyBXaGVuIHRoZSBl
eHBvbmVudCBpcyAxLCB3ZSBkb24ndCBuZWVkIHRvIGNhbGwgYW4gZXhwZW5zaXZlIHBvd2YgZnVu
Y3Rpb24uCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9F
WFBPTkVOVF9JU18xKSBOTAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDNfUzAg
IiwgIiBUTVAzX1MzIE5MCisgICAgImJlcSAuc3BlY3VsYXJFeHBQb3dmIiBOTAorICAgIE1VTFRJ
UExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykKKworIi5saWdodFN0cmVuZ3Ro
Q2FsY3VsYXRlZDoiIE5MCisgICAgLy8gVE1QMl9TMSBjb250YWlucyB0aGUgbGlnaHQgc3RyZW5n
dGguIENsYW1wIGl0IHRvIFswLCAxXQorICAgICJ2bWF4LmYzMiAiIFRNUDJfRDAgIiwgIiBUTVAy
X0QwICIsICIgQ09OU1RfWkVST19ISV9EIE5MCisgICAgInZtaW4uZjMyICIgVE1QMl9EMCAiLCAi
IFRNUDJfRDAgIiwgIiBDT05TVF9PTkVfSElfRCBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDNfUSAi
LCAiIENPTE9SX1EgIiwgIiBUTVAyX0QwICJbMV0iIE5MCisgICAgInZjdnQudTMyLmYzMiAiIFRN
UDNfUSAiLCAiIFRNUDNfUSBOTAorICAgICJ2bW92LnUzMiByMiwgcjMsICIgVE1QM19TMCAiLCAi
IFRNUDNfUzEgTkwKKyAgICAvLyBUaGUgY29sb3IgdmFsdWVzIGFyZSBzdG9yZWQgaW4tcGxhY2Uu
CisgICAgInN0cmIgcjIsIFsiIFBJWEVMU19SICIsICMtMTFdIiBOTAorICAgICJzdHJiIHIzLCBb
IiBQSVhFTFNfUiAiLCAjLTEwXSIgTkwKKyAgICAidm1vdi51MzIgcjIsICIgVE1QM19TMiBOTAor
ICAgICJzdHJiIHIyLCBbIiBQSVhFTFNfUiAiLCAjLTldIiBOTAorCisgICAgLy8gQ29udGludWUg
dG8gdGhlIG5leHQgcGl4ZWwuCisiLmJsYWNrUGl4ZWw6IiBOTAorICAgICJ2YWRkLmYzMiAiIFBP
U0lUSU9OX1hfUyAiLCAiIENPTlNUX09ORV9TIE5MCisgICAgIm1vdiByMywgIzEiIE5MCisgICAg
InN1YnMgIiBXSURUSF9SICIsICIgV0lEVEhfUiAiLCAjMSIgTkwKKyAgICAiYm5lIC5zY2FubGlu
ZSIgTkwKKworICAgIC8vIElmIHRoZSBlbmQgb2YgdGhlIHNjYW5saW5lIGlzIHJlYWNoZWQsIHdl
IGNvbnRpbnVlCisgICAgLy8gdG8gdGhlIG5leHQgc2NhbmxpbmUuCisgICAgInZhZGQuZjMyICIg
UE9TSVRJT05fWV9TICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICAibW92ICIgV0lEVEhfUiAiLCAi
IFJFU0VUX1dJRFRIX1IgTkwKKyAgICAic3VicyAiIEhFSUdIVF9SICIsICIgSEVJR0hUX1IgIiwg
IzEiIE5MCisgICAgImJuZSAubWFpbmxvb3AiIE5MCisKKyAgICAvLyBSZXR1cm4uCisgICAgInZs
ZG1pYSBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJsZG1pYSBzcCEsIHtyNC1yOCwgcjEwLCByMTEs
IHBjfSIgTkwKKworIi5kaXN0YW50TGlnaHQ6IiBOTAorICAgIC8vIEluIGNhc2Ugb2YgZGlzdGFu
dCBsaWdodCwgdGhlIGxpZ2h0IHZlY3RvciBpcyBjb25zdGFudCwKKyAgICAvLyB3ZSBzaW1wbHkg
Y29weSBpdC4KKyAgICAidm1vdi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RIE5MCisgICAgImIg
LnZpc2libGVQaXhlbCIgTkwKKworIi5jb3NpbmVPZkFuZ2xlOiIgTkwKKyAgICAvLyBJZiB0aGUg
cGl4ZWwgaXMgb3V0c2lkZSBvZiB0aGUgY29uZSBhbmdsZSwgaXQgaXMgc2ltcGx5IGEgYmxhY2sg
cGl4ZWwuCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMSwgRElSRUNUSU9OKQorICAgICJ2ZGl2
LmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIFRNUDNfUzAgIiwgIiBUTVAxX1MzIE5MCisgICAg
InZjbXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgQ09ORV9DVVRfT0ZGX1MgTkwKKyAgICAi
Zm1zdGF0IiBOTAorICAgICJibHMgLnZpc2libGVQaXhlbCIgTkwKKyAgICAibW92IHIwLCAjMCIg
TkwKKyAgICAic3RyaCByMCwgWyIgUElYRUxTX1IgIiwgIy0xMV0iIE5MCisgICAgInN0cmIgcjAs
IFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisgICAgImIgLmJsYWNrUGl4ZWwiIE5MCisKKyIuY3V0
T2ZmOiIgTkwKKyAgICAvLyBTbW9vdGhpbmcgdGhlIGxpZ2h0IHN0cmVuZ3RoIG9uIHRoZSBjb25l
IGVkZ2UuCisgICAgInZzdWIuZjMyICIgVE1QM19TMCAiLCAiIENPTkVfQ1VUX09GRl9TICIsICIg
Q09TSU5FX09GX0FOR0xFIE5MCisgICAgInZkaXYuZjMyICIgVE1QM19TMCAiLCAiIFRNUDNfUzAg
IiwgIiBDT05FX0NVVF9PRkZfUkFOR0VfUyBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDNfUzEgIiwg
IiBUTVAzX1MxICIsICIgVE1QM19TMCBOTAorICAgICJiIC5jdXRPZmZGaW5pc2hlZCIgTkwKKwor
Ii5jb25lRXhwUG93ZjoiIE5MCisgICAgUE9XRihUTVAzX1MxLCBDT05FX0VYUE9ORU5UX1IpCisg
ICAgImIgLmNvbmVFeHBQb3dmRmluaXNoZWQiIE5MCisKKyIuc3BlY3VsYXJFeHBQb3dmOiIgTkwK
KyAgICBQT1dGKFRNUDJfUzEsIFNQRUNVTEFSX0VYUE9ORU5UX1IpCisgICAgInRzdCAiIEZMQUdT
X1IgIiwgIyIgVE9TVFJJTkcoRkxBR19ESUZGVVNFX0NPTlNUX0lTXzEpIE5MCisgICAgInZtdWxl
cS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIERJRkZVU0VfQ09OU1RfUyBOTAorICAg
ICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKyk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdo
dGluZ05lb25TSU1ELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTmVvblNJTUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42YWJkOTA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05lb25TSU1ELmgKQEAgLTAsMCArMSw5NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29w
eXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUxpZ2h0aW5n
TmVvblNJTURfaAorI2RlZmluZSBGRUxpZ2h0aW5nTmVvblNJTURfaAorCisjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CisKKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBPdGhlcndpc2U6IERpc3RhbnQgTGlnaHQuCisjZGVmaW5l
IEZMQUdfUE9JTlRfTElHSFQgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgRkxBR19TUE9U
X0xJR0hUICAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBGTEFHX0NPTkVfRVhQT05FTlRf
SVNfMSAgICAgICAgICAweDA0CisKKy8vIE90aGVyd2lzZTogRGlmZnVzZSBsaWdodC4KKyNkZWZp
bmUgRkxBR19TUEVDVUxBUl9MSUdIVCAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTEFHX0RJ
RkZVU0VfQ09OU1RfSVNfMSAgICAgICAgICAweDIwCisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfRVhQ
T05FTlRfSVNfMSAgICAgIDB4NDAKKworLy8gTXVzdCBiZSBhbGlnbmVkIHRvIDE2IGJ5dGVzLgor
c3RydWN0IEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24geworICAgIGZsb2F0IHN1cmZh
Y2VTY2FsZTsKKyAgICBmbG9hdCBtaW51c1N1cmZhY2VTY2FsZURpdmlkZWRCeUZvdXI7CisgICAg
ZmxvYXQgZGlmZnVzZUNvbnN0YW50OworICAgIGZsb2F0IHBhZGRpbmcxOworCisgICAgZmxvYXQg
Y29uZUN1dE9mZkxpbWl0OworICAgIGZsb2F0IGNvbmVGdWxsTGlnaHQ7CisgICAgZmxvYXQgY29u
ZUN1dE9mZlJhbmdlOworICAgIGZsb2F0IGNvbnN0T25lOworCisgICAgZmxvYXQgbGlnaHRYOwor
ICAgIGZsb2F0IGxpZ2h0WTsKKyAgICBmbG9hdCBsaWdodFo7CisgICAgZmxvYXQgcGFkZGluZzI7
CisKKyAgICBmbG9hdCBkaXJlY3Rpb25YOworICAgIGZsb2F0IGRpcmVjdGlvblk7CisgICAgZmxv
YXQgZGlyZWN0aW9uWjsKKyAgICBmbG9hdCBwYWRkaW5nMzsKKworICAgIGZsb2F0IGNvbG9yUmVk
OworICAgIGZsb2F0IGNvbG9yR3JlZW47CisgICAgZmxvYXQgY29sb3JCbHVlOworICAgIGZsb2F0
IHBhZGRpbmc0OworfTsKKworc3RydWN0IEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIHsK
KyAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHM7CisgICAgaW50IHdpZHRoRGVjcmVhc2VkQnlUd287
CisgICAgaW50IGhlaWdodERlY3JlYXNlZEJ5VHdvOworICAgIC8vIENvbWJpbmF0aW9uIG9mIEZM
QUcgY29uc3RhbnRzIGFib3ZlLgorICAgIGludCBmbGFnczsKKyAgICBpbnQgc3BlY3VsYXJFeHBv
bmVudDsKKyAgICBpbnQgY29uZUV4cG9uZW50OworICAgIEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50
c0Zvck5lb24qIGZsb2F0QXJndW1lbnRzOworICAgIHNob3J0KiBwYWludGluZ0NvbnN0YW50czsK
K307CisKK2V4dGVybiBzaG9ydCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW107CisKK2V4
dGVybiAiQyIgewordm9pZCBuZW9uRHJhd0xpZ2h0aW5nKEZFTGlnaHRpbmdQYWludGluZ0RhdGFG
b3JOZW9uKik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQVShB
Uk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCisjZW5kaWYgLy8gRkVMaWdodGluZ05lb25TSU1E
X2gKLS0gCjEuNi41Cgo=
</data>
<flag name="review"
          id="76372"
          type_id="1"
          status="-"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86762</attachid>
            <date>2011-03-24 06:04:06 -0700</date>
            <delta_ts>2011-04-11 00:37:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>32333</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSBmOTBmZjBlMzAyZTNjMDg1NjcxY2IyY2E4NjVmMGZlOWUwZGViZDdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBoem9saSA8aHpvbGlAY3V0ZTQuaW5mLnUtc3plZ2VkLmh1PgpE
YXRlOiBUaHUsIDI0IE1hciAyMDExIDE0OjAwOjA0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gbGln
aHQtbmVvbgoKLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggICAgICAg
ICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuY3BwICAgICAgIHwgIDEyMyArKysrKysKIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIHwgICAgNSArCiAuLi4vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwICAgICAgICB8ICA0NTkgKysrKysrKysrKysr
KysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVP
Ti5oIHwgICA5NiArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDcxMyBpbnNlcnRpb25zKCspLCAxIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdO
RU9OLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggZjAzYTNkNC4uZmQz
NGU0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMzUyLDYgKzM1Miwx
MCBAQAogIyAgZXJyb3IgIkNhbm5vdCB1c2UgYm90aCBvZiBXVEZfQ1BVX0FSTV9UUkFESVRJT05B
TCBhbmQgV1RGX0NQVV9BUk1fVEhVTUIyIHBsYXRmb3JtcyIKICNlbmRpZiAvKiAhZGVmaW5lZChX
VEZfQ1BVX0FSTV9UUkFESVRJT05BTCkgJiYgIWRlZmluZWQoV1RGX0NQVV9BUk1fVEhVTUIyKSAq
LwogCisjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmICFkZWZpbmVkKFdURl9DUFVfQVJNX05F
T04pCisjZGVmaW5lIFdURl9DUFVfQVJNX05FT04gMQorI2VuZGlmCisKICNlbmRpZiAvKiBBUk0g
Ki8KIAogI2lmIENQVShBUk0pIHx8IENQVShNSVBTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwZjJmOTkuLjkw
MmFmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0wMi0xNyAgWm9sdGFuIEhl
cmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXppbmcgbGlnaHRuaW5nIGZpbHRlciB0byBBUk0t
TkVPTiBTSU1EIGluc3RydWN0aW9uIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQ0NTYKKworICAgICAgICBORU9OIGlzIHRoZSBTSU1EIGluc3Ry
dWN0aW9uIHNldCBmb3IgQVJNLiBUaGlzIGluc3RydWN0aW9uIHNldAorICAgICAgICBhbGxvd3Mg
dG8gc3BlZWQtdXAgdGhlIGxpZ2h0aW5nIGZpbHRlciBieSA0IHRpbWVzIG9uIEFSTQorICAgICAg
ICAob24gV2ViQ29yZS9tYW51YWwtdGVzdHMvc3ZnLWZpbHRlci1hbmltYXRpb24uc3ZnKS4KKwor
ICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UG93
ZXJDb2VmZmljaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZHJhd0ludGVy
aW9yUGl4ZWxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRp
bmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5n
TkVPTi5jcHA6IEFkZGVkLgorICAgICAgICAoX19hdHRyaWJ1dGVfXyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaDogQWRkZWQuCisKIDIw
MTEtMDMtMjQgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXYXMg
YmVpbmcgYSBsaXR0bGUgYnJhaW5kZWFkIHdoZW4gSSBjb21taXR0ZWQgdGhpcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cmkKaW5kZXggMzY0NDE4NC4uMGM0ZTU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTkxLDYgKzkxLDcg
QEAgV0VCQ09SRV9JTkNMVURFUEFUSCA9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpbyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mg
XAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgXAor
ICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtIFwK
ICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAgXAogICAg
ICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMgXAogICAg
ICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggMGVmOGVkYS4uMmQ1Njk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE4OTcsNiArMTg5
Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvTGlnaHRT
b3VyY2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBcCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UG9pbnQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmggXApAQCAtMzAxMiw3
ICszMDEzLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9MSkgewogICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwIFwKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3BwIFwKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgXAotICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgXAorICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKIH0KIAogY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAppbmRleCBlYzFjYTg4Li41
ODY5MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKQEAgLTMwLDYgKzMwLDEzIEBACiAjaW5jbHVkZSAiRkVM
aWdodGluZy5oIgogCiAjaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJQb2ludExp
Z2h0U291cmNlLmgiCisjaW5jbHVkZSAiU3BvdExpZ2h0U291cmNlLmgiCisKKyNpZiBDUFUoQVJN
X05FT04pICYmIENPTVBJTEVSKEdDQykKKyNpbmNsdWRlICJGRUxpZ2h0aW5nTkVPTi5oIgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTMwMSw2ICszMDgsOSBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkq
IHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgaWYgKHdpZHRoID49IDMgJiYg
aGVpZ2h0ID49IDMpIHsKICAgICAgICAgLy8gSW50ZXJpb3IgcGl4ZWxzCisjaWYgQ1BVKEFSTV9O
RU9OKSAmJiBDT01QSUxFUihHQ0MpCisgICAgICAgIGRyYXdJbnRlcmlvclBpeGVscyhkYXRhLCBw
YWludGluZ0RhdGEpOworI2Vsc2UKICAgICAgICAgZm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhl
aWdodERlY3JlYXNlZEJ5T25lOyArK3kpIHsKICAgICAgICAgICAgIG9mZnNldCA9IHkgKiBkYXRh
LndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6ZTsKICAgICAgICAgICAgIGZv
ciAoaW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCAr
PSBjUGl4ZWxTaXplKSB7CkBAIC0zMDgsNiArMzE4LDcgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3
TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAg
ICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgeCwg
eSwgY0ZhY3RvcjFkaXY0LCBjRmFjdG9yMWRpdjQsIG5vcm1hbFZlY3Rvcik7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIGludCBsYXN0UGl4ZWwgPSBkYXRh
LndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICogaGVpZ2h0OwpAQCAtMzU0LDYgKzM2NSwxMTgg
QEAgdm9pZCBGRUxpZ2h0aW5nOjphcHBseSgpCiAgICAgZHJhd0xpZ2h0aW5nKHNyY1BpeGVsQXJy
YXksIGFic29sdXRlUGFpbnRTaXplLndpZHRoKCksIGFic29sdXRlUGFpbnRTaXplLmhlaWdodCgp
KTsKIH0KIAorI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCitzdGF0aWMgaW50
IGdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KQoreworICAgIC8vIENhbGxpbmcg
YSBwb3dmIGZ1bmN0aW9uIGZyb20gdGhlIGFzc2VtYmx5IGNvZGUgd291bGQgcmVxdWlyZSB0byBz
YXZlCisgICAgLy8gYW5kIHJlbG9hZCBhIGxvdCBvZiBORU9OIHJlZ2lzdGVycy4gU2luY2UgdGhl
IGJhc2UgaXMgaW4gcmFuZ2UgWzAuLjFdCisgICAgLy8gYW5kIG9ubHkgOCBiaXQgcHJlY2lzaW9u
IGlzIHJlcXVpcmVkLCB3ZSB1c2Ugb3VyIG93biBwb3dmIGZ1bmN0aW9uLgorICAgIC8vIFRoaXMg
aXMgcHJvYmFibHkgbm90IHRoZSBiZXN0LCBidXQgaXQgdXNlcyBvbmx5IGEgZmV3IHJlZ2lzdGVy
cyBhbmQKKyAgICAvLyBnaXZlcyB1cyBlbm91Z2ggcHJlY2lzaW9uIChtb2RpZnlpbmcgdGhlIGV4
cG9uZW50IGZpZWxkIGRpcmVjdGx5IHdvdWxkCisgICAgLy8gYWxzbyBiZSBwb3NzaWJsZSkuCisK
KyAgICAvLyBGaXJzdCwgd2UgbGltaXQgdGhlIGV4cG9uZW50IHRvIG1heGltdW0gb2YgNjQsIHdo
aWNoIGdpdmVzIHVzIGVub3VnaAorICAgIC8vIHByZWNpc2lvbi4gV2Ugc3BsaXQgdGhlIGV4cG9u
ZW50IHRvIGFuIGludGVnZXIgYW5kIGZyYWN0aW9uIHBhcnQsCisgICAgLy8gc2luY2UgYV54ID0g
KGFeeSkqKGFeeikgd2hlcmUgeCA9IHkrei4gVGhlIGludGVnZXIgZXhwb25lbnQgb2YgdGhlCisg
ICAgLy8gcG93ZXIgaXMgZXN0aW1hdGVkIGJ5IHNxdWFyZSwgYW5kIHRoZSBmcmFjdGlvbiBleHBv
bmVudCBvZiB0aGUgcG93ZXIKKyAgICAvLyBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlIHJvb3QgYXNz
ZW1ibHkgaW5zdHJ1Y3Rpb25zLgorICAgIGludCBpLCByZXN1bHQ7CisKKyAgICBpZiAoZXhwb25l
bnQgPCAwKQorICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsKKworICAgIGlmIChl
eHBvbmVudCA+IDYzLjk5KQorICAgICAgICBleHBvbmVudCA9IDYzLjk5OworCisgICAgZXhwb25l
bnQgLz0gNjQ7CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGkgPSAxMTsgaSA+PSAwOyAtLWkp
IHsKKyAgICAgICAgZXhwb25lbnQgKj0gMjsKKyAgICAgICAgaWYgKGV4cG9uZW50ID49IDEpIHsK
KyAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7CisgICAgICAgICAgICBleHBvbmVudCAtPSAx
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgRkVMaWdo
dGluZzo6ZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3VyY2U6
OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIFdURl9BTElHTkVEKEZFTGlnaHRp
bmdGbG9hdEFyZ3VtZW50c0Zvck5lb24sIGZsb2F0QXJndW1lbnRzLCAxNik7CisKKyAgICBGRUxp
Z2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiBuZW9uRGF0YSA9IHsKKyAgICAgICAgZGF0YS5waXhl
bHMtPmRhdGEoKSwKKyAgICAgICAgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lIC0gMSwKKyAgICAg
ICAgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZSAtIDEsCisgICAgICAgIDAsCisgICAgICAgIDAs
CisgICAgICAgIDAsCisgICAgICAgICZmbG9hdEFyZ3VtZW50cywKKyAgICAgICAgc19GRUxpZ2h0
aW5nQ29uc3RhbnRzRm9yTmVvbgorICAgIH07CisKKyAgICAvLyBTZXQgbGlnaHQgc291cmNlIGFy
Z3VtZW50cy4KKyAgICBmbG9hdEFyZ3VtZW50cy5jb25zdE9uZSA9IDE7CisKKyAgICBmbG9hdEFy
Z3VtZW50cy5jb2xvclJlZCA9IG1fbGlnaHRpbmdDb2xvci5yZWQoKTsKKyAgICBmbG9hdEFyZ3Vt
ZW50cy5jb2xvckdyZWVuID0gbV9saWdodGluZ0NvbG9yLmdyZWVuKCk7CisgICAgZmxvYXRBcmd1
bWVudHMuY29sb3JCbHVlID0gbV9saWdodGluZ0NvbG9yLmJsdWUoKTsKKyAgICBmbG9hdEFyZ3Vt
ZW50cy5wYWRkaW5nNCA9IDA7CisKKyAgICBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09IExT
X1BPSU5UKSB7CisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfUE9JTlRfTElHSFQ7Cisg
ICAgICAgIFBvaW50TGlnaHRTb3VyY2UqIHBvaW50TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxQ
b2ludExpZ2h0U291cmNlKj4obV9saWdodFNvdXJjZS5nZXQoKSk7CisgICAgICAgIGZsb2F0QXJn
dW1lbnRzLmxpZ2h0WCA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOworICAgICAg
ICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnko
KTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcG9pbnRMaWdodFNvdXJjZS0+cG9z
aXRpb24oKS56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMDsKKyAgICB9
IGVsc2UgaWYgKG1fbGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19TUE9UKSB7CisgICAgICAgIG5l
b25EYXRhLmZsYWdzIHw9IEZMQUdfU1BPVF9MSUdIVDsKKyAgICAgICAgU3BvdExpZ2h0U291cmNl
KiBzcG90TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxTcG90TGlnaHRTb3VyY2UqPihtX2xpZ2h0
U291cmNlLmdldCgpKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gc3BvdExpZ2h0
U291cmNlLT5wb3NpdGlvbigpLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZID0g
c3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMu
bGlnaHRaID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAgICAgZmxvYXRB
cmd1bWVudHMucGFkZGluZzIgPSAwOworCisgICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVjdGlv
blggPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9yLngoKTsKKyAgICAgICAgZmxvYXRBcmd1
bWVudHMuZGlyZWN0aW9uWSA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueSgpOworICAg
ICAgICBmbG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25aID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZl
Y3Rvci56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmczID0gMDsKKworICAgICAg
ICBmbG9hdEFyZ3VtZW50cy5jb25lQ3V0T2ZmTGltaXQgPSBwYWludGluZ0RhdGEuY29uZUN1dE9m
ZkxpbWl0OworICAgICAgICBmbG9hdEFyZ3VtZW50cy5jb25lRnVsbExpZ2h0ID0gcGFpbnRpbmdE
YXRhLmNvbmVGdWxsTGlnaHQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVDdXRPZmZSYW5n
ZSA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQgLSBwYWludGluZ0RhdGEuY29uZUZ1bGxM
aWdodDsKKyAgICAgICAgbmVvbkRhdGEuY29uZUV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmljaWVu
dHMoc3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkpOworICAgICAgICBpZiAoc3Bv
dExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkgPT0gMSkKKyAgICAgICAgICAgIG5lb25E
YXRhLmZsYWdzIHw9IEZMQUdfQ09ORV9FWFBPTkVOVF9JU18xOworICAgIH0gZWxzZSB7CisgICAg
ICAgIEFTU0VSVChtX2xpZ2h0U291cmNlLnR5cGUgPT0gTFNfRElTVEFOVCk7CisgICAgICAgIGZs
b2F0QXJndW1lbnRzLmxpZ2h0WCA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci54KCk7CisgICAg
ICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci55KCk7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WiA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rv
ci56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMTsKKyAgICB9CisKKyAg
ICAvLyBTZXQgbGlnaHRuaWcgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1lbnRzLnN1cmZhY2VT
Y2FsZSA9IGRhdGEuc3VyZmFjZVNjYWxlOworICAgIGZsb2F0QXJndW1lbnRzLm1pbnVzU3VyZmFj
ZVNjYWxlRGl2aWRlZEJ5Rm91ciA9IC1kYXRhLnN1cmZhY2VTY2FsZSAvIDQ7CisgICAgaWYgKG1f
bGlnaHRpbmdUeXBlID09IEZFTGlnaHRpbmc6OkRpZmZ1c2VMaWdodGluZykKKyAgICAgICAgZmxv
YXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9kaWZmdXNlQ29uc3RhbnQ7CisgICAgZWxz
ZSB7CisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfTElHSFQ7CisgICAg
ICAgIGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9IG1fc3BlY3VsYXJDb25zdGFudDsK
KyAgICAgICAgbmVvbkRhdGEuc3BlY3VsYXJFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2llbnRz
KG1fc3BlY3VsYXJFeHBvbmVudCk7CisgICAgICAgIGlmIChtX3NwZWN1bGFyRXhwb25lbnQgPT0g
MSkKKyAgICAgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfRVhQT05FTlRf
SVNfMTsKKyAgICB9CisgICAgaWYgKGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9PSAx
KQorICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMTsKKwor
ICAgIG5lb25EcmF3TGlnaHRpbmcoJm5lb25EYXRhKTsKK30KKyNlbmRpZiAvLyBDUFUoQVJNX05F
T04pICYmIENPTVBJTEVSKEdDQykKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKEZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IGZhMWMwYWEuLjNkYzQ2ZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdo
dGluZy5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCiAjaW5j
bHVkZSAiTGlnaHRTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CisjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CiAKIC8vIENvbW1vbiBiYXNlIGNsYXNzIGZvciBGRURpZmZ1c2VM
aWdodGluZyBhbmQgRkVTcGVjdWxhckxpZ2h0aW5nCiAKQEAgLTc5LDYgKzgwLDEwIEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldFBpeGVsKGludCBvZmZzZXQsIExpZ2h0aW5nRGF0YSYsIExpZ2h0
U291cmNlOjpQYWludGluZ0RhdGEmLAogICAgICAgICAgICAgICAgICAgaW50IGxpZ2h0WCwgaW50
IGxpZ2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50UG9pbnQmIG5vcm1hbFZl
Y3Rvcik7CiAKKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKyAgICB2b2lkIGRy
YXdJbnRlcmlvclBpeGVscyhMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRh
Jik7CisjZW5kaWYKKwogICAgIExpZ2h0aW5nVHlwZSBtX2xpZ2h0aW5nVHlwZTsKICAgICBSZWZQ
dHI8TGlnaHRTb3VyY2U+IG1fbGlnaHRTb3VyY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9O
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODFiODIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05FT04uY3BwCkBAIC0wLDAgKzEsNDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWm9sdGFu
IEhlcmN6ZWcKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5J
VkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRkVMaWdodGlu
Z05FT04uaCIKKworI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZXNlIGNvbnN0
YW50cyBhcmUgY29waWVkIHRvIHRoZSBmb2xsb3dpbmcgU0lNRCByZWdpc3RlcnM6CisvLyAgIEFM
UEhBWF9RIEFMUEhBWV9RIFJFTUFQWF9EIFJFTUFQWV9ECisKK1dURl9BTElHTkVEKHNob3J0LCBz
X0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW10sIDE2KSA9IHsKKyAgICAvLyBBbHBoYSBjb2Vm
ZmljaWVudHMuCisgICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAtMSwKKyAgICAwLCAtMSwgLTIs
IC0xLCAwLCAxLCAyLCAxLAorICAgIC8vIFJlbWFwcGluZyBpbmRpY2llcy4KKyAgICAweDBmMGUs
IDB4MDMwMiwgMHgwNTA0LCAweDA3MDYsCisgICAgMHgwYjBhLCAweDEzMTIsIDB4MTUxNCwgMHgx
NzE2LAorfTsKKworI2RlZmluZSBBU1NUUklORyhzdHIpICNzdHIKKyNkZWZpbmUgVE9TVFJJTkco
dmFsdWUpIEFTU1RSSU5HKHZhbHVlKQorCisjZGVmaW5lIFBJWEVMU19PRkZTRVQgVE9TVFJJTkco
MCkKKyNkZWZpbmUgV0lEVEhfT0ZGU0VUIFRPU1RSSU5HKDQpCisjZGVmaW5lIEhFSUdIVF9PRkZT
RVQgVE9TVFJJTkcoOCkKKyNkZWZpbmUgRkxBR1NfT0ZGU0VUIFRPU1RSSU5HKDEyKQorI2RlZmlu
ZSBTUEVDVUxBUl9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMTYpCisjZGVmaW5lIENPTkVfRVhQ
T05FTlRfT0ZGU0VUIFRPU1RSSU5HKDIwKQorI2RlZmluZSBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VU
IFRPU1RSSU5HKDI0KQorI2RlZmluZSBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgVE9TVFJJTkco
MjgpCisjZGVmaW5lIE5MICJcbiIKKworLy8gUmVnaXN0ZXIgYWxsb2NhdGlvbgorI2RlZmluZSBQ
QUlOVElOR19EQVRBX1IgICAgICAgInIxMSIKKyNkZWZpbmUgUkVTRVRfV0lEVEhfUiAgICAgICAg
IFBBSU5USU5HX0RBVEFfUgorI2RlZmluZSBQSVhFTFNfUiAgICAgICAgICAgICAgInI0IgorI2Rl
ZmluZSBXSURUSF9SICAgICAgICAgICAgICAgInI1IgorI2RlZmluZSBIRUlHSFRfUiAgICAgICAg
ICAgICAgInI2IgorI2RlZmluZSBGTEFHU19SICAgICAgICAgICAgICAgInI3IgorI2RlZmluZSBT
UEVDVUxBUl9FWFBPTkVOVF9SICAgInI4IgorI2RlZmluZSBDT05FX0VYUE9ORU5UX1IgICAgICAg
InIxMCIKKyNkZWZpbmUgU0NBTkxJTkVfUiAgICAgICAgICAgICJyMTIiCisKKyNkZWZpbmUgVE1Q
MV9RICAgICAgICAgICAgICAgICJxMCIKKyNkZWZpbmUgVE1QMV9EMCAgICAgICAgICAgICAgICJk
MCIKKyNkZWZpbmUgVE1QMV9TMCAgICAgICAgICAgICAgICJzMCIKKyNkZWZpbmUgVE1QMV9TMSAg
ICAgICAgICAgICAgICJzMSIKKyNkZWZpbmUgVE1QMV9EMSAgICAgICAgICAgICAgICJkMSIKKyNk
ZWZpbmUgVE1QMV9TMiAgICAgICAgICAgICAgICJzMiIKKyNkZWZpbmUgVE1QMV9TMyAgICAgICAg
ICAgICAgICJzMyIKKyNkZWZpbmUgVE1QMl9RICAgICAgICAgICAgICAgICJxMSIKKyNkZWZpbmUg
VE1QMl9EMCAgICAgICAgICAgICAgICJkMiIKKyNkZWZpbmUgVE1QMl9TMCAgICAgICAgICAgICAg
ICJzNCIKKyNkZWZpbmUgVE1QMl9TMSAgICAgICAgICAgICAgICJzNSIKKyNkZWZpbmUgVE1QMl9E
MSAgICAgICAgICAgICAgICJkMyIKKyNkZWZpbmUgVE1QMl9TMiAgICAgICAgICAgICAgICJzNiIK
KyNkZWZpbmUgVE1QMl9TMyAgICAgICAgICAgICAgICJzNyIKKyNkZWZpbmUgVE1QM19RICAgICAg
ICAgICAgICAgICJxMiIKKyNkZWZpbmUgVE1QM19EMCAgICAgICAgICAgICAgICJkNCIKKyNkZWZp
bmUgVE1QM19TMCAgICAgICAgICAgICAgICJzOCIKKyNkZWZpbmUgVE1QM19TMSAgICAgICAgICAg
ICAgICJzOSIKKyNkZWZpbmUgVE1QM19EMSAgICAgICAgICAgICAgICJkNSIKKyNkZWZpbmUgVE1Q
M19TMiAgICAgICAgICAgICAgICJzMTAiCisjZGVmaW5lIFRNUDNfUzMgICAgICAgICAgICAgICAi
czExIgorCisjZGVmaW5lIENPU0lORV9PRl9BTkdMRSAgICAgICAiczEyIgorI2RlZmluZSBQT1dG
X0lOVF9TICAgICAgICAgICAgInMxMyIKKyNkZWZpbmUgUE9XRl9GUkFDX1MgICAgICAgICAgICJz
MTQiCisjZGVmaW5lIFNQT1RfQ09MT1JfUSAgICAgICAgICAicTQiCisKKy8vIEJlY2F1c2Ugb2Yg
Vk1JTiBhbmQgVk1BWCBDT05TVF9aRVJPX1MgYW5kIENPTlNUX09ORV9TCisvLyBtdXN0IGJlIHBs
YWNlZCBvbiB0aGUgc2FtZSBzaWRlIG9mIHRoZSBkb3VibGUgdmVjdG9yCisKKy8vIEN1cnJlbnQg
cGl4ZWwgcG9zaXRpb24KKyNkZWZpbmUgUE9TSVRJT05fUSAgICAgICAgICAgICJxNSIKKyNkZWZp
bmUgUE9TSVRJT05fWF9TICAgICAgICAgICJzMjAiCisjZGVmaW5lIFBPU0lUSU9OX1lfUyAgICAg
ICAgICAiczIxIgorI2RlZmluZSBQT1NJVElPTl9aX1MgICAgICAgICAgInMyMiIKKyNkZWZpbmUg
Q09OU1RfWkVST19ISV9EICAgICAgICJkMTEiCisjZGVmaW5lIENPTlNUX1pFUk9fUyAgICAgICAg
ICAiczIzIgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgVmFy
aWFibGUgYXJndW1lbnRzCisvLyBNaXNjIGFyZ3VtZW50cworI2RlZmluZSBSRUFEMV9SQU5HRSAg
ICAgICAgICAgImQxMi1kMTUiCisjZGVmaW5lIFJFQUQyX1JBTkdFICAgICAgICAgICAiZDE2LWQx
OSIKKyNkZWZpbmUgUkVBRDNfUkFOR0UgICAgICAgICAgICJkMjAtZDIxIgorCisjZGVmaW5lIFND
QUxFX1MgICAgICAgICAgICAgICAiczI0IgorI2RlZmluZSBTQ0FMRV9ESVY0X1MgICAgICAgICAg
InMyNSIKKyNkZWZpbmUgRElGRlVTRV9DT05TVF9TICAgICAgICJzMjYiCisKKy8vIExpZ2h0IHNv
dXJjZSBwb3NpdGlvbgorI2RlZmluZSBDT05FX0NVVF9PRkZfUyAgICAgICAgInMyOCIKKyNkZWZp
bmUgQ09ORV9GVUxMX0xJR0hUX1MgICAgICJzMjkiCisjZGVmaW5lIENPTkVfQ1VUX09GRl9SQU5H
RV9TICAiczMwIgorI2RlZmluZSBDT05TVF9PTkVfSElfRCAgICAgICAgImQxNSIKKyNkZWZpbmUg
Q09OU1RfT05FX1MgICAgICAgICAgICJzMzEiCisKKyNkZWZpbmUgTElHSFRfUSAgICAgICAgICAg
ICAgICJxOCIKKyNkZWZpbmUgRElSRUNUSU9OX1EgICAgICAgICAgICJxOSIKKyNkZWZpbmUgQ09M
T1JfUSAgICAgICAgICAgICAgICJxMTAiCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLyAgICBDb25zdGFudCBjb2VmZmljaWVudHMKKyNkZWZpbmUgUkVBRDRfUkFOR0UgICAg
ICAgICAgICJkMjItZDI1IgorI2RlZmluZSBSRUFENV9SQU5HRSAgICAgICAgICAgImQyNi1kMjci
CisKKyNkZWZpbmUgQUxQSEFYX1EgICAgICAgICAgICAgICJxMTEiCisjZGVmaW5lIEFMUEhBWV9R
ICAgICAgICAgICAgICAicTEyIgorI2RlZmluZSBSRU1BUFhfRCAgICAgICAgICAgICAgImQyNiIK
KyNkZWZpbmUgUkVNQVBZX0QgICAgICAgICAgICAgICJkMjciCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyNkZWZpbmUgQUxMX1JPV1NfRCAgICAgICAgICAgICJ7ZDI4LGQy
OSxkMzB9IgorI2RlZmluZSBUT1BfUk9XX0QgICAgICAgICAgICAgImQyOCIKKyNkZWZpbmUgTUlE
RExFX1JPV19EICAgICAgICAgICJkMjkiCisjZGVmaW5lIEJPVFRPTV9ST1dfRCAgICAgICAgICAi
ZDMwIgorCisjZGVmaW5lIEdFVF9MRU5HVEgoc291cmNlLCB0ZW1wKSBcCisgICAgInZtdWwuZjMy
ICIgdGVtcCMjX1EgIiwgIiBzb3VyY2UjI19RICIsICIgc291cmNlIyNfUSBOTCBcCisgICAgInZh
ZGQuZjMyICIgc291cmNlIyNfUzMgIiwgIiB0ZW1wIyNfUzAgIiwgIiB0ZW1wIyNfUzEgTkwgXAor
ICAgICJ2YWRkLmYzMiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMgIiwgIiB0ZW1wIyNf
UzIgTkwgXAorICAgICJ2c3FydC5mMzIgIiBzb3VyY2UjI19TMyAiLCAiIHNvdXJjZSMjX1MzIE5M
CisKKy8vIGRlc3RpbmF0aW9uIyNfUzMgY2FuIGNvbnRhaW4gdGhlIG11bHRpcGx5IG9mIGxlbmd0
aC4KKyNkZWZpbmUgRE9UX1BST0RVQ1QoZGVzdGluYXRpb24sIHNvdXJjZTEsIHNvdXJjZTIpIFwK
KyAgICAidm11bC5mMzIgIiBkZXN0aW5hdGlvbiMjX1EgIiwgIiBzb3VyY2UxIyNfUSAiLCAiIHNv
dXJjZTIjI19RIE5MIFwKKyAgICAidmFkZC5mMzIgIiBkZXN0aW5hdGlvbiMjX1MwICIsICIgZGVz
dGluYXRpb24jI19TMCAiLCAiIGRlc3RpbmF0aW9uIyNfUzEgTkwgXAorICAgICJ2YWRkLmYzMiAi
IGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1MwICIsICIgZGVzdGluYXRpb24j
I19TMiBOTAorCisjZGVmaW5lIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1Qobm9ybWFsVmVjdG9y
TGVuZ3RoLCBkb3RQcm9kdWN0TGVuZ3RoKSBcCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9T
VFJJTkcoRkxBR19ESUZGVVNFX0NPTlNUX0lTXzEpIE5MIFwKKyAgICAidm11bGVxLmYzMiAiIFRN
UDJfUzEgIiwgIiBESUZGVVNFX0NPTlNUX1MgIiwgIiBub3JtYWxWZWN0b3JMZW5ndGggTkwgXAor
ICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEgIiwgIiBkb3RQcm9kdWN0TGVu
Z3RoIE5MIFwKKyAgICAidmRpdm5lLmYzMiAiIFRNUDJfUzEgIiwgIiBub3JtYWxWZWN0b3JMZW5n
dGggIiwgIiBkb3RQcm9kdWN0TGVuZ3RoIE5MCisKKyNkZWZpbmUgUE9XRl9TUVIodmFsdWUsIGV4
cG9uZW50LCBjdXJyZW50LCByZW1haW5pbmcpIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIg
QVNTVFJJTkcoY3VycmVudCkgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwgIiB2YWx1
ZSAiLCAiIFBPV0ZfSU5UX1MgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklO
RyhyZW1haW5pbmcpIE5MIFwKKyAgICAidm11bG5lLmYzMiAiIFBPV0ZfSU5UX1MgIiwgIiBQT1dG
X0lOVF9TICIsICIgUE9XRl9JTlRfUyBOTAorCisjZGVmaW5lIFBPV0ZfU1FSVCh2YWx1ZSwgZXhw
b25lbnQsIGN1cnJlbnQsIHJlbWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBB
U1NUUklORyhyZW1haW5pbmcpIE5MIFwKKyAgICAidnNxcnRuZS5mMzIgIiBQT1dGX0ZSQUNfUyAi
LCAiIFBPV0ZfRlJBQ19TIE5MIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIyIgQVNTVFJJTkco
Y3VycmVudCkgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwgIiB2YWx1ZSAiLCAiIFBP
V0ZfRlJBQ19TIE5MCisKKy8vIFRoaXMgc2ltcGxpZmllZCBwb3dmIGZ1bmN0aW9uIGlzIHN1ZmZp
Y2llbnRseSBhY2N1cmF0ZS4KKyNkZWZpbmUgUE9XRih2YWx1ZSwgZXhwb25lbnQpIFwKKyAgICAi
dHN0ICIgZXhwb25lbnQgIiwgIzB4ZmMwIiBOTCBcCisgICAgInZtb3ZuZS5mMzIgIiBQT1dGX0lO
VF9TICIsICIgdmFsdWUgTkwgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjMHgwM2YiIE5MIFwK
KyAgICAidm1vdm5lLmYzMiAiIFBPV0ZfRlJBQ19TICIsICIgdmFsdWUgTkwgXAorICAgICJ2bW92
LmYzMiAiIHZhbHVlICIsICIgQ09OU1RfT05FX1MgTkwgXAorICAgIFwKKyAgICBQT1dGX1NRUih2
YWx1ZSwgZXhwb25lbnQsIDB4MDQwLCAweGY4MCkgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBv
bmVudCwgMHgwODAsIDB4ZjAwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDEw
MCwgMHhlMDApIFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MjAwLCAweGMwMCkg
XAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHg0MDAsIDB4ODAwKSBcCisgICAgInRz
dCAiIGV4cG9uZW50ICIsICMweDgwMCIgTkwgXAorICAgICJ2bXVsbmUuZjMyICIgdmFsdWUgIiwg
IiB2YWx1ZSAiLCAiIFBPV0ZfSU5UX1MgTkwgXAorICAgIFwKKyAgICBQT1dGX1NRUlQodmFsdWUs
IGV4cG9uZW50LCAweDIwLCAweDNmKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwg
MHgxMCwgMHgxZikgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MDgsIDB4MGYp
IFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDA0LCAweDA3KSBcCisgICAgUE9X
Rl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwMiwgMHgwMykgXAorICAgIFBPV0ZfU1FSVCh2YWx1
ZSwgZXhwb25lbnQsIDB4MDEsIDB4MDEpCisKKy8vIFRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtIGlz
IGFuIEFSTS1ORU9OIG9wdGltaXplZCB2ZXJzaW9uIG9mCisvLyB0aGUgbWFpbiBsb29wIGZvdW5k
IGluIEZFTGlnaHRpbmcuY3BwLiBTaW5jZSB0aGUgd2hvbGUgY29kZQorLy8gaXMgcmVkZXNpZ25l
ZCB0byBiZSBhcyBlZmZlY3RpdmUgYXMgcG9zc2libGUgKEFSTSBzcGVjaWZpYworLy8gdGhpbmtp
bmcpLCBpdCBpcyBmb3VyIHRpbWVzIGZhc3RlciB0aGFuIGl0cyBDKysgY291bnRlcnBhcnQuCisK
K2FzbSAoCisiLmdsb2JsICIgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgTkwKK1RPU1RSSU5H
KG5lb25EcmF3TGlnaHRpbmcpICI6IiBOTAorICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGNsZXZlciBy
ZWdpc3RlciBhbGxvY2F0aW9uLCBub3RoaW5nIGlzIHN0b3JlZCBvbiB0aGUgc3RhY2sKKyAgICAv
LyBleGNlcHQgdGhlIHNhdmVkIHJlZ2lzdGVycy4KKyAgICAvLyBTdGFjayBtdXN0IGJlIGFsaWdu
ZWQgdG8gOCBieXRlcy4KKyAgICAic3RtZGIgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBscn0iIE5M
CisgICAgInZzdG1kYiBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJtb3YgIiBQQUlOVElOR19EQVRB
X1IgIiwgcjAiIE5MCisKKyAgICAvLyBUaGUgZm9sbG93aW5nIHR3byBhcmd1bWVudHMgYXJlIGxv
YWRlZCB0byBTSU1EIHJlZ2lzdGVycy4KKyAgICAibGRyIHIwLCBbIiBQQUlOVElOR19EQVRBX1Ig
IiwgIyIgRkxPQVRfQVJHVU1FTlRTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyIHIxLCBbIiBQQUlO
VElOR19EQVRBX1IgIiwgIyIgRFJBV0lOR19DT05TVEFOVFNfT0ZGU0VUICJdIiBOTAorICAgICJs
ZHIgIiBQSVhFTFNfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgUElYRUxTX09GRlNFVCAi
XSIgTkwKKyAgICAibGRyICIgV0lEVEhfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgV0lE
VEhfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBIRUlHSFRfUiAiLCBbIiBQQUlOVElOR19EQVRB
X1IgIiwgIyIgSEVJR0hUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRkxBR1NfUiAiLCBbIiBQ
QUlOVElOR19EQVRBX1IgIiwgIyIgRkxBR1NfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTUEVD
VUxBUl9FWFBPTkVOVF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBTUEVDVUxBUl9FWFBP
TkVOVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIENPTkVfRVhQT05FTlRfUiAiLCBbIiBQQUlO
VElOR19EQVRBX1IgIiwgIyIgQ09ORV9FWFBPTkVOVF9PRkZTRVQgIl0iIE5MCisKKyAgICAvLyBM
b2FkIGFsbCBkYXRhIHRvIHRoZSBTSU1EIHJlZ2lzdGVycyB3aXRoIHRoZSBsZWFzdCBudW1iZXIg
b2YgaW5zdHJ1Y3Rpb25zLgorICAgICJ2bGQxLmYzMiB7ICIgUkVBRDFfUkFOR0UgIiB9LCBbcjBd
ISIgTkwKKyAgICAidmxkMS5mMzIgeyAiIFJFQUQyX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAg
InZsZDEuZjMyIHsgIiBSRUFEM19SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLnMxNiB7
IiBSRUFENF9SQU5HRSAifSwgW3IxXSEiIE5MCisgICAgInZsZDEuczE2IHsiIFJFQUQ1X1JBTkdF
ICJ9LCBbcjFdISIgTkwKKworICAgIC8vIEluaXRpYWxpemluZyBsb2NhbCB2YXJpYWJsZXMuCisg
ICAgIm1vdiAiIFNDQU5MSU5FX1IgIiwgIiBXSURUSF9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRk
ICIgU0NBTkxJTkVfUiAiLCAiIFNDQU5MSU5FX1IgIiwgIzgiIE5MCisgICAgImFkZCAiIFBJWEVM
U19SICIsICIgUElYRUxTX1IgIiwgIiBTQ0FOTElORV9SIE5MCisgICAgImFkZCAiIFBJWEVMU19S
ICIsICIgUElYRUxTX1IgIiwgIzMiIE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInZtb3Yu
ZjMyICIgQ09OU1RfWkVST19TICIsIHIwIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1lf
UyAiLCAiIENPTlNUX09ORV9TIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkco
RkxBR19TUE9UX0xJR0hUKSBOTAorICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAiIENP
TE9SX1EgTkwKKyAgICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKKworIi5t
YWlubG9vcDoiIE5MCisgICAgIm1vdiByMywgIzMiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJ
T05fWF9TICIsICIgQ09OU1RfT05FX1MgTkwKKworIi5zY2FubGluZToiIE5MCisgICAgLy8gVGhl
IFJPVyByZWdpc3RlcnMgYXJlIHN0b3JpbmcgdGhlIGFscGhhIGNoYW5uZWwgb2YgdGhlIGxhc3Qg
dGhyZWUgcGl4ZWxzLgorICAgIC8vIFRoZSBhbHBoYSBjaGFubmVsIGlzIHN0b3JlZCBhcyBzaWdu
ZWQgc2hvcnQgKHNpbnQxNikgdmFsdWVzLiBUaGUgZm91cnRoIHZhbHVlCisgICAgLy8gaXMgZ2Fy
YmFnZS4gVGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgYXJlIHNoaWZ0aW5nIG91dCB0aGUgdW5u
ZWNlc3NhcnkgYWxwaGEKKyAgICAvLyB2YWx1ZXMgYW5kIGxvYWQgdGhlIG5leHQgb25lcy4KKyAg
ICAibGRyYiByMCwgWyIgUElYRUxTX1IgIiwgLSIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRy
YiByMSwgWyIgUElYRUxTX1IgIiwgKyIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMiwg
WyIgUElYRUxTX1IgIl0sICM0IiBOTAorICAgICJ2ZXh0LnMxNiAiIFRPUF9ST1dfRCAiLCAiIFRP
UF9ST1dfRCAiLCAiIFRPUF9ST1dfRCAiLCAjMyIgTkwKKyAgICAidmV4dC5zMTYgIiBNSURETEVf
Uk9XX0QgIiwgIiBNSURETEVfUk9XX0QgIiwgIiBNSURETEVfUk9XX0QgIiwgIzMiIE5MCisgICAg
InZleHQuczE2ICIgQk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JP
V19EICIsICMzIiBOTAorICAgICJ2bW92LnMxNiAiIFRPUF9ST1dfRCAiWzFdLCByMCIgTkwKKyAg
ICAidm1vdi5zMTYgIiBNSURETEVfUk9XX0QgIlsxXSwgcjIiIE5MCisgICAgInZtb3YuczE2ICIg
Qk9UVE9NX1JPV19EICJbMV0sIHIxIiBOTAorCisgICAgLy8gVGhlIHR3byBib3JkZXIgcGl4ZWxz
IChyaWdodG1vc3QgYW5kIGxlZnRtb3N0KSBhcmUgc2tpcHBlZCB3aGVuCisgICAgLy8gdGhlIG5l
eHQgc2NhbmxpbmUgaXMgcmVhY2hlZC4gSXQgYWxzbyBqdW1wcywgd2hlbiB0aGUgYWxnb3JpdGht
CisgICAgLy8gaXMgc3RhcnRlZCwgYW5kIHRoZSBmaXJzdCBmcmVlIGFscGhhIHZhbHVlcyBhcmUg
bG9hZGVkIHRvIGVhY2ggcm93LgorICAgICJzdWJzIHIzLCByMywgIzEiIE5MCisgICAgImJuZSAu
c2NhbmxpbmUiIE5MCisKKyAgICAvLyBUaGUgbGlnaHQgdmVjdG9yIGdvZXMgdG8gVE1QMV9RLiBJ
dCBpcyBjb25zdGFudCBpbiBjYXNlIG9mIGRpc3RhbnQgbGlnaHQuCisgICAgLy8gVGhlIGZvdXJ0
aCB2YWx1ZSBjb250YWlucyB0aGUgbGVuZ3RoIG9mIHRoZSBsaWdodCB2ZWN0b3IuCisgICAgInRz
dCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19QT0lOVF9MSUdIVCB8IEZMQUdfU1BPVF9M
SUdIVCkgTkwKKyAgICAiYmVxIC5kaXN0YW50TGlnaHQiIE5MCisKKyAgICAidm1vdi5zMTYgcjMs
ICIgTUlERExFX1JPV19EICJbMl0iIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWl9TICIs
IHIzIiBOTAorICAgICJ2Y3Z0LmYzMi5zMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9a
X1MgTkwKKyAgICAidm11bC5mMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgIiwg
IiBTQ0FMRV9TIE5MCisKKyAgICAidnN1Yi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RICIsICIg
UE9TSVRJT05fUSBOTAorICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMikKKworICAgICJ0c3QgIiBG
TEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYm5lIC5jb3Np
bmVPZkFuZ2xlIiBOTAorIi52aXNpYmxlUGl4ZWw6IiBOTAorCisgICAgLy8gICAgIHwgLTEgIDAg
IDEgfCAgICAgIHwgLTEgLTIgLTEgfAorICAgIC8vIFggPSB8IC0yICAwICAyIHwgIFkgPSB8ICAw
ICAwICAwIHwKKyAgICAvLyAgICAgfCAtMSAgMCAgMSB8ICAgICAgfCAgMSAgMiAgMSB8CisKKyAg
ICAvLyBNdWx0aXBseSB0aGUgYWxwaGEgdmFsdWVzIGJ5IHRoZSBYIGFuZCBZIG1hdHJpY2llcy4K
KworICAgIC8vIE1vdmluZyB0aGUgOCBhbHBoYSB2YWx1ZSB0byBUTVAzLgorICAgICJ2dGJsLjgg
IiBUTVAzX0QwICIsICIgQUxMX1JPV1NfRCAiLCAiIFJFTUFQWF9EIE5MCisgICAgInZ0YmwuOCAi
IFRNUDNfRDEgIiwgIiBBTExfUk9XU19EICIsICIgUkVNQVBZX0QgTkwKKworICAgICJ2bXVsLnMx
NiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAiIEFMUEhBWF9RIE5MCisgICAgInZwYWRkLnMxNiAi
IFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBU
TVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1Q
Ml9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwIE5MCisgICAgInZtb3YuczE2IHIwLCAiIFRN
UDJfRDAgIlswXSIgTkwKKworICAgICJ2bXVsLnMxNiAiIFRNUDJfUSAiLCAiIFRNUDNfUSAiLCAi
IEFMUEhBWV9RIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIg
VE1QMl9EMSBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRN
UDJfRDAgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAy
X0QwIE5MCisgICAgInZtb3YuczE2IHIxLCAiIFRNUDJfRDAgIlswXSIgTkwKKworICAgIC8vIHIw
IGFuZCByMSBjb250YWlucyB0aGUgWCBhbmQgWSBjb29yZGluYXRlcyBvZiB0aGUKKyAgICAvLyBu
b3JtYWwgdmVjdG9yLCByZXNwZWN0aXZlbHkuCisKKyAgICAvLyBDYWxjdWxhdGluZyB0aGUgc3Bv
dCBsaWdodCBzdHJlbmd0aC4KKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFH
X1NQT1RfTElHSFQpIE5MCisgICAgImJlcSAuZW5kTGlnaHQiIE5MCisKKyAgICAidm5lZy5mMzIg
IiBUTVAzX1MxICIsICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwg
IyIgVE9TVFJJTkcoRkxBR19DT05FX0VYUE9ORU5UX0lTXzEpIE5MCisgICAgImJlcSAuY29uZUV4
cFBvd2YiIE5MCisiLmNvbmVFeHBQb3dmRmluaXNoZWQ6IiBOTAorCisgICAgLy8gU21vb3RoaW5n
IHRoZSBjb25lIGVkZ2UgaWYgbmVjZXNzYXJ5LgorICAgICJ2Y21wLmYzMiAiIENPU0lORV9PRl9B
TkdMRSAiLCAiIENPTkVfRlVMTF9MSUdIVF9TIE5MCisgICAgImZtc3RhdCIgTkwKKyAgICAiYmhp
IC5jdXRPZmYiIE5MCisiLmN1dE9mZkZpbmlzaGVkOiIgTkwKKworICAgICJ2bWluLmYzMiAiIFRN
UDNfRDAgIiwgIiBUTVAzX0QwICIsICIgQ09OU1RfT05FX0hJX0QgTkwKKyAgICAidm11bC5mMzIg
IiBDT0xPUl9RICIsICIgU1BPVF9DT0xPUl9RICIsICIgVE1QM19EMCAiWzFdIiBOTAorCisiLmVu
ZExpZ2h0OiIgTkwKKyAgICAvLyBTdW1tYXJpemU6CisgICAgLy8gcjAgYW5kIHIxIGNvbnRhaW5z
IHRoZSBub3JtYWxWZWN0b3IuCisgICAgLy8gVE1QMV9RIGNvbnRhaW5zIHRoZSBsaWdodCB2ZWN0
b3IgYW5kIGl0cyBsZW5ndGguCisgICAgLy8gQ09MT1JfUSBjb250YWlucyB0aGUgY29sb3Igb2Yg
dGhlIGxpZ2h0IHZlY3Rvci4KKworICAgIC8vIFRlc3Qgd2hldGhlciBib3RoIHIwIGFuZCByMSBh
cmUgemVybyAoTm9ybWFsIHZlY3RvciBpcyAoMCwgMCwgMSkpLgorICAgICJvcnJzIHIyLCByMCwg
cjEiIE5MCisgICAgImJuZSAubm9ybWFsVmVjdG9ySXNOb25aZXJvIiBOTAorCisgICAgInRzdCAi
IEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9MSUdIVCkgTkwKKyAgICAiYm5l
IC5zcGVjdWxhckxpZ2h0MSIgTkwKKworICAgIC8vIENhbGN1bGF0ZSBkaWZmdXNlIGxpZ2h0IHN0
cmVuZ3RoLgorICAgIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QMV9TMiwgVE1QMV9TMykK
KyAgICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCisKKyIuc3BlY3VsYXJMaWdodDE6
IiBOTAorICAgIC8vIENhbGN1bGF0aW5nIHNwZWN1bGFyIGxpZ2h0IHN0cmVuZ3RoLgorICAgICJ2
YWRkLmYzMiAiIFRNUDFfUzIgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBOTAorICAgIEdFVF9M
RU5HVEgoVE1QMSwgVE1QMikKKworICAgIC8vIFdoZW4gdGhlIGV4cG9uZW50IGlzIDEsIHdlIGRv
bid0IG5lZWQgdG8gY2FsbCBhbiBleHBlbnNpdmUgcG93ZiBmdW5jdGlvbi4KKyAgICAidHN0ICIg
RkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lTXzEpIE5MCisg
ICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMV9TMiAiLCAiIFRNUDFfUzMgTkwKKyAg
ICAiYmVxIC5zcGVjdWxhckV4cFBvd2YiIE5MCisKKyAgICBNVUxUSVBMWV9CWV9ESUZGVVNFX0NP
TlNUKFRNUDFfUzIsIFRNUDFfUzMpCisgICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxjdWxhdGVkIiBO
TAorCisiLm5vcm1hbFZlY3RvcklzTm9uWmVybzoiIE5MCisgICAgLy8gTm9ybWFsIHZlY3RvciBn
b2VzIHRvIFRNUDIsIGFuZCBpdHMgbGVuZ3RoIGlzIGNhbGN1bGF0ZWQgYXMgd2VsbC4KKyAgICAi
dm1vdi5zMzIgIiBUTVAyX1MwICIsIHIwIiBOTAorICAgICJ2Y3Z0LmYzMi5zMzIgIiBUTVAyX1Mw
ICIsICIgVE1QMl9TMCBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDJfUzAgIiwgIiBUTVAyX1MwICIs
ICIgU0NBTEVfRElWNF9TIE5MCisgICAgInZtb3YuczMyICIgVE1QMl9TMSAiLCByMSIgTkwKKyAg
ICAidmN2dC5mMzIuczMyICIgVE1QMl9TMSAiLCAiIFRNUDJfUzEgTkwKKyAgICAidm11bC5mMzIg
IiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIFNDQUxFX0RJVjRfUyBOTAorICAgICJ2bW92LmYz
MiAiIFRNUDJfUzIgIiwgIiBDT05TVF9PTkVfUyBOTAorICAgIEdFVF9MRU5HVEgoVE1QMiwgVE1Q
MykKKworICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfTElH
SFQpIE5MCisgICAgImJuZSAuc3BlY3VsYXJMaWdodDIiIE5MCisKKyAgICAvLyBDYWxjdWxhdGlu
ZyBkaWZmdXNlIGxpZ2h0IHN0cmVuZ3RoLgorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRNUDIsIFRN
UDEpCisgICAgTVVMVElQTFlfQllfRElGRlVTRV9DT05TVChUTVAzX1MwLCBUTVAzX1MzKQorICAg
ICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKworIi5zcGVjdWxhckxpZ2h0MjoiIE5M
CisgICAgLy8gQ2FsY3VsYXRpbmcgc3BlY3VsYXIgbGlnaHQgc3RyZW5ndGguCisgICAgInZhZGQu
ZjMyICIgVE1QMV9TMiAiLCAiIFRNUDFfUzIgIiwgIiBUTVAxX1MzIE5MCisgICAgR0VUX0xFTkdU
SChUTVAxLCBUTVAzKQorICAgIERPVF9QUk9EVUNUKFRNUDMsIFRNUDIsIFRNUDEpCisKKyAgICAv
LyBXaGVuIHRoZSBleHBvbmVudCBpcyAxLCB3ZSBkb24ndCBuZWVkIHRvIGNhbGwgYW4gZXhwZW5z
aXZlIHBvd2YgZnVuY3Rpb24uCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxB
R19TUEVDVUxBUl9FWFBPTkVOVF9JU18xKSBOTAorICAgICJ2ZGl2ZXEuZjMyICIgVE1QMl9TMSAi
LCAiIFRNUDNfUzAgIiwgIiBUTVAzX1MzIE5MCisgICAgImJlcSAuc3BlY3VsYXJFeHBQb3dmIiBO
TAorICAgIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QM19TMCwgVE1QM19TMykKKworIi5s
aWdodFN0cmVuZ3RoQ2FsY3VsYXRlZDoiIE5MCisgICAgLy8gVE1QMl9TMSBjb250YWlucyB0aGUg
bGlnaHQgc3RyZW5ndGguIENsYW1wIGl0IHRvIFswLCAxXQorICAgICJ2bWF4LmYzMiAiIFRNUDJf
RDAgIiwgIiBUTVAyX0QwICIsICIgQ09OU1RfWkVST19ISV9EIE5MCisgICAgInZtaW4uZjMyICIg
VE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBDT05TVF9PTkVfSElfRCBOTAorICAgICJ2bXVsLmYz
MiAiIFRNUDNfUSAiLCAiIENPTE9SX1EgIiwgIiBUTVAyX0QwICJbMV0iIE5MCisgICAgInZjdnQu
dTMyLmYzMiAiIFRNUDNfUSAiLCAiIFRNUDNfUSBOTAorICAgICJ2bW92LnUzMiByMiwgcjMsICIg
VE1QM19TMCAiLCAiIFRNUDNfUzEgTkwKKyAgICAvLyBUaGUgY29sb3IgdmFsdWVzIGFyZSBzdG9y
ZWQgaW4tcGxhY2UuCisgICAgInN0cmIgcjIsIFsiIFBJWEVMU19SICIsICMtMTFdIiBOTAorICAg
ICJzdHJiIHIzLCBbIiBQSVhFTFNfUiAiLCAjLTEwXSIgTkwKKyAgICAidm1vdi51MzIgcjIsICIg
VE1QM19TMiBOTAorICAgICJzdHJiIHIyLCBbIiBQSVhFTFNfUiAiLCAjLTldIiBOTAorCisgICAg
Ly8gQ29udGludWUgdG8gdGhlIG5leHQgcGl4ZWwuCisiLmJsYWNrUGl4ZWw6IiBOTAorICAgICJ2
YWRkLmYzMiAiIFBPU0lUSU9OX1hfUyAiLCAiIENPTlNUX09ORV9TIE5MCisgICAgIm1vdiByMywg
IzEiIE5MCisgICAgInN1YnMgIiBXSURUSF9SICIsICIgV0lEVEhfUiAiLCAjMSIgTkwKKyAgICAi
Ym5lIC5zY2FubGluZSIgTkwKKworICAgIC8vIElmIHRoZSBlbmQgb2YgdGhlIHNjYW5saW5lIGlz
IHJlYWNoZWQsIHdlIGNvbnRpbnVlCisgICAgLy8gdG8gdGhlIG5leHQgc2NhbmxpbmUuCisgICAg
InZhZGQuZjMyICIgUE9TSVRJT05fWV9TICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICAibW92ICIg
V0lEVEhfUiAiLCAiIFJFU0VUX1dJRFRIX1IgTkwKKyAgICAic3VicyAiIEhFSUdIVF9SICIsICIg
SEVJR0hUX1IgIiwgIzEiIE5MCisgICAgImJuZSAubWFpbmxvb3AiIE5MCisKKyAgICAvLyBSZXR1
cm4uCisgICAgInZsZG1pYSBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJsZG1pYSBzcCEsIHtyNC1y
OCwgcjEwLCByMTEsIHBjfSIgTkwKKworIi5kaXN0YW50TGlnaHQ6IiBOTAorICAgIC8vIEluIGNh
c2Ugb2YgZGlzdGFudCBsaWdodCwgdGhlIGxpZ2h0IHZlY3RvciBpcyBjb25zdGFudCwKKyAgICAv
LyB3ZSBzaW1wbHkgY29weSBpdC4KKyAgICAidm1vdi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9R
IE5MCisgICAgImIgLnZpc2libGVQaXhlbCIgTkwKKworIi5jb3NpbmVPZkFuZ2xlOiIgTkwKKyAg
ICAvLyBJZiB0aGUgcGl4ZWwgaXMgb3V0c2lkZSBvZiB0aGUgY29uZSBhbmdsZSwgaXQgaXMgc2lt
cGx5IGEgYmxhY2sgcGl4ZWwuCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMSwgRElSRUNUSU9O
KQorICAgICJ2ZGl2LmYzMiAiIENPU0lORV9PRl9BTkdMRSAiLCAiIFRNUDNfUzAgIiwgIiBUTVAx
X1MzIE5MCisgICAgInZjbXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgQ09ORV9DVVRfT0ZG
X1MgTkwKKyAgICAiZm1zdGF0IiBOTAorICAgICJibHMgLnZpc2libGVQaXhlbCIgTkwKKyAgICAi
bW92IHIwLCAjMCIgTkwKKyAgICAic3RyaCByMCwgWyIgUElYRUxTX1IgIiwgIy0xMV0iIE5MCisg
ICAgInN0cmIgcjAsIFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisgICAgImIgLmJsYWNrUGl4ZWwi
IE5MCisKKyIuY3V0T2ZmOiIgTkwKKyAgICAvLyBTbW9vdGhpbmcgdGhlIGxpZ2h0IHN0cmVuZ3Ro
IG9uIHRoZSBjb25lIGVkZ2UuCisgICAgInZzdWIuZjMyICIgVE1QM19TMCAiLCAiIENPTkVfQ1VU
X09GRl9TICIsICIgQ09TSU5FX09GX0FOR0xFIE5MCisgICAgInZkaXYuZjMyICIgVE1QM19TMCAi
LCAiIFRNUDNfUzAgIiwgIiBDT05FX0NVVF9PRkZfUkFOR0VfUyBOTAorICAgICJ2bXVsLmYzMiAi
IFRNUDNfUzEgIiwgIiBUTVAzX1MxICIsICIgVE1QM19TMCBOTAorICAgICJiIC5jdXRPZmZGaW5p
c2hlZCIgTkwKKworIi5jb25lRXhwUG93ZjoiIE5MCisgICAgUE9XRihUTVAzX1MxLCBDT05FX0VY
UE9ORU5UX1IpCisgICAgImIgLmNvbmVFeHBQb3dmRmluaXNoZWQiIE5MCisKKyIuc3BlY3VsYXJF
eHBQb3dmOiIgTkwKKyAgICBQT1dGKFRNUDJfUzEsIFNQRUNVTEFSX0VYUE9ORU5UX1IpCisgICAg
InRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19ESUZGVVNFX0NPTlNUX0lTXzEpIE5M
CisgICAgInZtdWxlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIERJRkZVU0VfQ09O
U1RfUyBOTAorICAgICJiIC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKyk7CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIo
R0NDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVMaWdodGluZ05FT04uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNmFiZDkwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKQEAgLTAsMCArMSw5NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29w
eXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUxpZ2h0aW5n
TmVvblNJTURfaAorI2RlZmluZSBGRUxpZ2h0aW5nTmVvblNJTURfaAorCisjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CisKKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBPdGhlcndpc2U6IERpc3RhbnQgTGlnaHQuCisjZGVmaW5l
IEZMQUdfUE9JTlRfTElHSFQgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgRkxBR19TUE9U
X0xJR0hUICAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBGTEFHX0NPTkVfRVhQT05FTlRf
SVNfMSAgICAgICAgICAweDA0CisKKy8vIE90aGVyd2lzZTogRGlmZnVzZSBsaWdodC4KKyNkZWZp
bmUgRkxBR19TUEVDVUxBUl9MSUdIVCAgICAgICAgICAgICAgMHgxMAorI2RlZmluZSBGTEFHX0RJ
RkZVU0VfQ09OU1RfSVNfMSAgICAgICAgICAweDIwCisjZGVmaW5lIEZMQUdfU1BFQ1VMQVJfRVhQ
T05FTlRfSVNfMSAgICAgIDB4NDAKKworLy8gTXVzdCBiZSBhbGlnbmVkIHRvIDE2IGJ5dGVzLgor
c3RydWN0IEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24geworICAgIGZsb2F0IHN1cmZh
Y2VTY2FsZTsKKyAgICBmbG9hdCBtaW51c1N1cmZhY2VTY2FsZURpdmlkZWRCeUZvdXI7CisgICAg
ZmxvYXQgZGlmZnVzZUNvbnN0YW50OworICAgIGZsb2F0IHBhZGRpbmcxOworCisgICAgZmxvYXQg
Y29uZUN1dE9mZkxpbWl0OworICAgIGZsb2F0IGNvbmVGdWxsTGlnaHQ7CisgICAgZmxvYXQgY29u
ZUN1dE9mZlJhbmdlOworICAgIGZsb2F0IGNvbnN0T25lOworCisgICAgZmxvYXQgbGlnaHRYOwor
ICAgIGZsb2F0IGxpZ2h0WTsKKyAgICBmbG9hdCBsaWdodFo7CisgICAgZmxvYXQgcGFkZGluZzI7
CisKKyAgICBmbG9hdCBkaXJlY3Rpb25YOworICAgIGZsb2F0IGRpcmVjdGlvblk7CisgICAgZmxv
YXQgZGlyZWN0aW9uWjsKKyAgICBmbG9hdCBwYWRkaW5nMzsKKworICAgIGZsb2F0IGNvbG9yUmVk
OworICAgIGZsb2F0IGNvbG9yR3JlZW47CisgICAgZmxvYXQgY29sb3JCbHVlOworICAgIGZsb2F0
IHBhZGRpbmc0OworfTsKKworc3RydWN0IEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIHsK
KyAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHM7CisgICAgaW50IHdpZHRoRGVjcmVhc2VkQnlUd287
CisgICAgaW50IGhlaWdodERlY3JlYXNlZEJ5VHdvOworICAgIC8vIENvbWJpbmF0aW9uIG9mIEZM
QUcgY29uc3RhbnRzIGFib3ZlLgorICAgIGludCBmbGFnczsKKyAgICBpbnQgc3BlY3VsYXJFeHBv
bmVudDsKKyAgICBpbnQgY29uZUV4cG9uZW50OworICAgIEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50
c0Zvck5lb24qIGZsb2F0QXJndW1lbnRzOworICAgIHNob3J0KiBwYWludGluZ0NvbnN0YW50czsK
K307CisKK2V4dGVybiBzaG9ydCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW107CisKK2V4
dGVybiAiQyIgewordm9pZCBuZW9uRHJhd0xpZ2h0aW5nKEZFTGlnaHRpbmdQYWludGluZ0RhdGFG
b3JOZW9uKik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQVShB
Uk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCisjZW5kaWYgLy8gRkVMaWdodGluZ05lb25TSU1E
X2gKLS0gCjEuNi41Cgo=
</data>
<flag name="review"
          id="79089"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88974</attachid>
            <date>2011-04-11 00:37:06 -0700</date>
            <delta_ts>2011-04-14 03:59:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-light-neon.patch</filename>
            <type>text/plain</type>
            <size>32427</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSBhNWQ5MjA0ZDhlZGRmMzZmM2JlNDhlY2UwYWNjNzRmYmU2YjE5MjM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBNb24sIDExIEFwciAyMDExIDA5OjM0OjQwICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gbGlnaHQtbmVvbgoKLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgg
ICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDIyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwICAgICAgIHwgIDEyMyArKysrKysKIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIHwgICAgNSArCiAuLi4vZ3Jh
cGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwICAgICAgICB8ICA0NjQgKysrKysr
KysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0
aW5nTkVPTi5oIHwgICA5NiArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDcxOCBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGln
aHRpbmdORU9OLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDJmMmU0
Yi4uMzg5YmFhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMzUyLDYg
KzM1MiwxMCBAQAogIyAgZXJyb3IgIkNhbm5vdCB1c2UgYm90aCBvZiBXVEZfQ1BVX0FSTV9UUkFE
SVRJT05BTCBhbmQgV1RGX0NQVV9BUk1fVEhVTUIyIHBsYXRmb3JtcyIKICNlbmRpZiAvKiAhZGVm
aW5lZChXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCkgJiYgIWRlZmluZWQoV1RGX0NQVV9BUk1fVEhV
TUIyKSAqLwogCisjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmICFkZWZpbmVkKFdURl9DUFVf
QVJNX05FT04pCisjZGVmaW5lIFdURl9DUFVfQVJNX05FT04gMQorI2VuZGlmCisKICNlbmRpZiAv
KiBBUk0gKi8KIAogI2lmIENQVShBUk0pIHx8IENQVShNSVBTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdkMjNj
MzYuLjQ2NjE5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0wNC0xMCAgWm9s
dGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXppbmcgbGlnaHRuaW5nIGZpbHRlciB0
byBBUk0tTkVPTiBTSU1EIGluc3RydWN0aW9uIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ0NTYKKworICAgICAgICBORU9OIGlzIHRoZSBTSU1E
IGluc3RydWN0aW9uIHNldCBmb3IgQVJNLiBUaGlzIGluc3RydWN0aW9uIHNldAorICAgICAgICBh
bGxvd3MgdG8gc3BlZWQtdXAgdGhlIGxpZ2h0aW5nIGZpbHRlciBieSA0IHRpbWVzIG9uIEFSTQor
ICAgICAgICAob24gV2ViQ29yZS9tYW51YWwtdGVzdHMvc3ZnLWZpbHRlci1hbmltYXRpb24uc3Zn
KS4KKworICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0UG93ZXJDb2VmZmljaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZHJh
d0ludGVyaW9yUGl4ZWxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TGlnaHRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxp
Z2h0aW5nTkVPTi5jcHA6IEFkZGVkLgorICAgICAgICAoX19hdHRyaWJ1dGVfXyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaDogQWRkZWQu
CisKIDIwMTEtMDQtMTAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2ZXJ0IHRoZSBGbG9hdFJlY3QuY3BwIHBhcnQgb2YgcjgzNDIyLCBzaW5jZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaQppbmRleCA5NmMyNzYyLi41MDIxNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTMs
NiArOTMsNyBAQCBXRUJDT1JFX0lOQ0xVREVQQVRIID0gXAogICAgICQkU09VUkNFX0RJUi9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycyBcCisgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0gXAogICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCBjYzIwYTgyLi4zYjQ3MzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTky
Miw2ICsxOTIyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9MaWdodFNvdXJjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFs
cGhhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oIFwK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCkBA
IC0zMDQwLDcgKzMwNDEsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKSB7
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBcCi0g
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKyAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBcCisgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcAogfQogCiBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfTUFUSE1MPTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCmluZGV4IGVj
MWNhODguLjEzYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApAQCAtMzAsNiArMzAsMTMgQEAKICNpbmNs
dWRlICJGRUxpZ2h0aW5nLmgiCiAKICNpbmNsdWRlICJMaWdodFNvdXJjZS5oIgorI2luY2x1ZGUg
IlBvaW50TGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJTcG90TGlnaHRTb3VyY2UuaCIKKworI2lm
IENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorI2luY2x1ZGUgIkZFTGlnaHRpbmdORU9O
LmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzAxLDYgKzMwOCw5IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKEJ5
dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAKICAgICBpZiAod2lkdGgg
Pj0gMyAmJiBoZWlnaHQgPj0gMykgewogICAgICAgICAvLyBJbnRlcmlvciBwaXhlbHMKKyNpZiBD
UFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKyAgICAgICAgZHJhd0ludGVyaW9yUGl4ZWxz
KGRhdGEsIHBhaW50aW5nRGF0YSk7CisjZWxzZQogICAgICAgICBmb3IgKGludCB5ID0gMTsgeSA8
IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmU7ICsreSkgewogICAgICAgICAgICAgb2Zmc2V0ID0g
eSAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKyBjUGl4ZWxTaXplOwogICAgICAg
ICAgICAgZm9yIChpbnQgeCA9IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwg
b2Zmc2V0ICs9IGNQaXhlbFNpemUpIHsKQEAgLTMwOCw2ICszMTgsNyBAQCBib29sIEZFTGlnaHRp
bmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkqIHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KQogICAgICAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdE
YXRhLCB4LCB5LCBjRmFjdG9yMWRpdjQsIGNGYWN0b3IxZGl2NCwgbm9ybWFsVmVjdG9yKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgaW50IGxhc3RQaXhl
bCA9IGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKiBoZWlnaHQ7CkBAIC0zNTQsNiAr
MzY1LDExOCBAQCB2b2lkIEZFTGlnaHRpbmc6OmFwcGx5KCkKICAgICBkcmF3TGlnaHRpbmcoc3Jj
UGl4ZWxBcnJheSwgYWJzb2x1dGVQYWludFNpemUud2lkdGgoKSwgYWJzb2x1dGVQYWludFNpemUu
aGVpZ2h0KCkpOwogfQogCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKK3N0
YXRpYyBpbnQgZ2V0UG93ZXJDb2VmZmljaWVudHMoZmxvYXQgZXhwb25lbnQpCit7CisgICAgLy8g
Q2FsbGluZyBhIHBvd2YgZnVuY3Rpb24gZnJvbSB0aGUgYXNzZW1ibHkgY29kZSB3b3VsZCByZXF1
aXJlIHRvIHNhdmUKKyAgICAvLyBhbmQgcmVsb2FkIGEgbG90IG9mIE5FT04gcmVnaXN0ZXJzLiBT
aW5jZSB0aGUgYmFzZSBpcyBpbiByYW5nZSBbMC4uMV0KKyAgICAvLyBhbmQgb25seSA4IGJpdCBw
cmVjaXNpb24gaXMgcmVxdWlyZWQsIHdlIHVzZSBvdXIgb3duIHBvd2YgZnVuY3Rpb24uCisgICAg
Ly8gVGhpcyBpcyBwcm9iYWJseSBub3QgdGhlIGJlc3QsIGJ1dCBpdCB1c2VzIG9ubHkgYSBmZXcg
cmVnaXN0ZXJzIGFuZAorICAgIC8vIGdpdmVzIHVzIGVub3VnaCBwcmVjaXNpb24gKG1vZGlmeWlu
ZyB0aGUgZXhwb25lbnQgZmllbGQgZGlyZWN0bHkgd291bGQKKyAgICAvLyBhbHNvIGJlIHBvc3Np
YmxlKS4KKworICAgIC8vIEZpcnN0LCB3ZSBsaW1pdCB0aGUgZXhwb25lbnQgdG8gbWF4aW11bSBv
ZiA2NCwgd2hpY2ggZ2l2ZXMgdXMgZW5vdWdoCisgICAgLy8gcHJlY2lzaW9uLiBXZSBzcGxpdCB0
aGUgZXhwb25lbnQgdG8gYW4gaW50ZWdlciBhbmQgZnJhY3Rpb24gcGFydCwKKyAgICAvLyBzaW5j
ZSBhXnggPSAoYV55KSooYV56KSB3aGVyZSB4ID0geSt6LiBUaGUgaW50ZWdlciBleHBvbmVudCBv
ZiB0aGUKKyAgICAvLyBwb3dlciBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlLCBhbmQgdGhlIGZyYWN0
aW9uIGV4cG9uZW50IG9mIHRoZSBwb3dlcgorICAgIC8vIGlzIGVzdGltYXRlZCBieSBzcXVhcmUg
cm9vdCBhc3NlbWJseSBpbnN0cnVjdGlvbnMuCisgICAgaW50IGksIHJlc3VsdDsKKworICAgIGlm
IChleHBvbmVudCA8IDApCisgICAgICAgIGV4cG9uZW50ID0gMSAvICgtZXhwb25lbnQpOworCisg
ICAgaWYgKGV4cG9uZW50ID4gNjMuOTkpCisgICAgICAgIGV4cG9uZW50ID0gNjMuOTk7CisKKyAg
ICBleHBvbmVudCAvPSA2NDsKKyAgICByZXN1bHQgPSAwOworICAgIGZvciAoaSA9IDExOyBpID49
IDA7IC0taSkgeworICAgICAgICBleHBvbmVudCAqPSAyOworICAgICAgICBpZiAoZXhwb25lbnQg
Pj0gMSkgeworICAgICAgICAgICAgcmVzdWx0IHw9IDEgPDwgaTsKKyAgICAgICAgICAgIGV4cG9u
ZW50IC09IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9p
ZCBGRUxpZ2h0aW5nOjpkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdo
dFNvdXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0RhdGEpCit7CisgICAgV1RGX0FMSUdORUQo
RkVMaWdodGluZ0Zsb2F0QXJndW1lbnRzRm9yTmVvbiwgZmxvYXRBcmd1bWVudHMsIDE2KTsKKwor
ICAgIEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIG5lb25EYXRhID0geworICAgICAgICBk
YXRhLnBpeGVscy0+ZGF0YSgpLAorICAgICAgICBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUgLSAx
LAorICAgICAgICBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lIC0gMSwKKyAgICAgICAgMCwKKyAg
ICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgJmZsb2F0QXJndW1lbnRzLAorICAgICAgICBm
ZUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbigpCisgICAgfTsKKworICAgIC8vIFNldCBsaWdodCBz
b3VyY2UgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1lbnRzLmNvbnN0T25lID0gMTsKKworICAg
IGZsb2F0QXJndW1lbnRzLmNvbG9yUmVkID0gbV9saWdodGluZ0NvbG9yLnJlZCgpOworICAgIGZs
b2F0QXJndW1lbnRzLmNvbG9yR3JlZW4gPSBtX2xpZ2h0aW5nQ29sb3IuZ3JlZW4oKTsKKyAgICBm
bG9hdEFyZ3VtZW50cy5jb2xvckJsdWUgPSBtX2xpZ2h0aW5nQ29sb3IuYmx1ZSgpOworICAgIGZs
b2F0QXJndW1lbnRzLnBhZGRpbmc0ID0gMDsKKworICAgIGlmIChtX2xpZ2h0U291cmNlLT50eXBl
KCkgPT0gTFNfUE9JTlQpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19QT0lOVF9M
SUdIVDsKKyAgICAgICAgUG9pbnRMaWdodFNvdXJjZSogcG9pbnRMaWdodFNvdXJjZSA9IHN0YXRp
Y19jYXN0PFBvaW50TGlnaHRTb3VyY2UqPihtX2xpZ2h0U291cmNlLmdldCgpKTsKKyAgICAgICAg
ZmxvYXRBcmd1bWVudHMubGlnaHRYID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0
aW9uKCkueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBwb2ludExpZ2h0U291
cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAw
OworICAgIH0gZWxzZSBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09IExTX1NQT1QpIHsKKyAg
ICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUE9UX0xJR0hUOworICAgICAgICBTcG90TGln
aHRTb3VyY2UqIHNwb3RMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFNwb3RMaWdodFNvdXJjZSo+
KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBz
cG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5s
aWdodFkgPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy5saWdodFogPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOworICAgICAg
ICBmbG9hdEFyZ3VtZW50cy5wYWRkaW5nMiA9IDA7CisKKyAgICAgICAgZmxvYXRBcmd1bWVudHMu
ZGlyZWN0aW9uWCA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueCgpOworICAgICAgICBm
bG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25ZID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci55
KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVjdGlvblogPSBwYWludGluZ0RhdGEuZGly
ZWN0aW9uVmVjdG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzMgPSAwOwor
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVDdXRPZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5j
b25lQ3V0T2ZmTGltaXQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVGdWxsTGlnaHQgPSBw
YWludGluZ0RhdGEuY29uZUZ1bGxMaWdodDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUN1
dE9mZlJhbmdlID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdCAtIHBhaW50aW5nRGF0YS5j
b25lRnVsbExpZ2h0OworICAgICAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQgPSBnZXRQb3dlckNv
ZWZmaWNpZW50cyhzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSk7CisgICAgICAg
IGlmIChzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSA9PSAxKQorICAgICAgICAg
ICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19DT05FX0VYUE9ORU5UX0lTXzE7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1fbGlnaHRTb3VyY2UudHlwZSA9PSBMU19ESVNUQU5UKTsKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLngo
KTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVj
dG9yLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcGFpbnRpbmdEYXRhLmxp
Z2h0VmVjdG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAxOworICAg
IH0KKworICAgIC8vIFNldCBsaWdodGluZyBhcmd1bWVudHMuCisgICAgZmxvYXRBcmd1bWVudHMu
c3VyZmFjZVNjYWxlID0gZGF0YS5zdXJmYWNlU2NhbGU7CisgICAgZmxvYXRBcmd1bWVudHMubWlu
dXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyID0gLWRhdGEuc3VyZmFjZVNjYWxlIC8gNDsKKyAg
ICBpZiAobV9saWdodGluZ1R5cGUgPT0gRkVMaWdodGluZzo6RGlmZnVzZUxpZ2h0aW5nKQorICAg
ICAgICBmbG9hdEFyZ3VtZW50cy5kaWZmdXNlQ29uc3RhbnQgPSBtX2RpZmZ1c2VDb25zdGFudDsK
KyAgICBlbHNlIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9MSUdI
VDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9zcGVjdWxhckNv
bnN0YW50OworICAgICAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gZ2V0UG93ZXJDb2Vm
ZmljaWVudHMobV9zcGVjdWxhckV4cG9uZW50KTsKKyAgICAgICAgaWYgKG1fc3BlY3VsYXJFeHBv
bmVudCA9PSAxKQorICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9F
WFBPTkVOVF9JU18xOworICAgIH0KKyAgICBpZiAoZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0
YW50ID09IDEpCisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfRElGRlVTRV9DT05TVF9J
U18xOworCisgICAgbmVvbkRyYXdMaWdodGluZygmbmVvbkRhdGEpOworfQorI2VuZGlmIC8vIENQ
VShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKaW5kZXggZmExYzBhYS4uM2RjNDZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3Qu
aCIKICNpbmNsdWRlICJMaWdodFNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4K
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAogLy8gQ29tbW9uIGJhc2UgY2xhc3MgZm9yIEZF
RGlmZnVzZUxpZ2h0aW5nIGFuZCBGRVNwZWN1bGFyTGlnaHRpbmcKIApAQCAtNzksNiArODAsMTAg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRh
JiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYsCiAgICAgICAgICAgICAgICAgICBpbnQgbGln
aHRYLCBpbnQgbGlnaHRZLCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRQb2ludCYg
bm9ybWFsVmVjdG9yKTsKIAorI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorICAg
IHZvaWQgZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWlu
dGluZ0RhdGEmKTsKKyNlbmRpZgorCiAgICAgTGlnaHRpbmdUeXBlIG1fbGlnaHRpbmdUeXBlOwog
ICAgIFJlZlB0cjxMaWdodFNvdXJjZT4gbV9saWdodFNvdXJjZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdo
dGluZ05FT04uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MDdmMWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKQEAgLTAsMCArMSw0NjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBab2x0YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
RUxpZ2h0aW5nTkVPTi5oIgorCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisK
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhl
c2UgY29uc3RhbnRzIGFyZSBjb3BpZWQgdG8gdGhlIGZvbGxvd2luZyBTSU1EIHJlZ2lzdGVyczoK
Ky8vICAgQUxQSEFYX1EgQUxQSEFZX1EgUkVNQVBYX0QgUkVNQVBZX0QKKworV1RGX0FMSUdORUQo
c2hvcnQsIHNfRkVMaWdodGluZ0NvbnN0YW50c0Zvck5lb25bXSwgMTYpID0geworICAgIC8vIEFs
cGhhIGNvZWZmaWNpZW50cy4KKyAgICAtMiwgMSwgMCwgLTEsIDIsIDEsIDAsIC0xLAorICAgIDAs
IC0xLCAtMiwgLTEsIDAsIDEsIDIsIDEsCisgICAgLy8gUmVtYXBwaW5nIGluZGljaWVzLgorICAg
IDB4MGYwZSwgMHgwMzAyLCAweDA1MDQsIDB4MDcwNiwKKyAgICAweDBiMGEsIDB4MTMxMiwgMHgx
NTE0LCAweDE3MTYsCit9OworCitzaG9ydCogZmVMaWdodGluZ0NvbnN0YW50c0Zvck5lb24oKQor
eworICAgIHJldHVybiBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uOworfQorCisjZGVmaW5l
IEFTU1RSSU5HKHN0cikgI3N0cgorI2RlZmluZSBUT1NUUklORyh2YWx1ZSkgQVNTVFJJTkcodmFs
dWUpCisKKyNkZWZpbmUgUElYRUxTX09GRlNFVCBUT1NUUklORygwKQorI2RlZmluZSBXSURUSF9P
RkZTRVQgVE9TVFJJTkcoNCkKKyNkZWZpbmUgSEVJR0hUX09GRlNFVCBUT1NUUklORyg4KQorI2Rl
ZmluZSBGTEFHU19PRkZTRVQgVE9TVFJJTkcoMTIpCisjZGVmaW5lIFNQRUNVTEFSX0VYUE9ORU5U
X09GRlNFVCBUT1NUUklORygxNikKKyNkZWZpbmUgQ09ORV9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJ
TkcoMjApCisjZGVmaW5lIEZMT0FUX0FSR1VNRU5UU19PRkZTRVQgVE9TVFJJTkcoMjQpCisjZGVm
aW5lIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCBUT1NUUklORygyOCkKKyNkZWZpbmUgTkwgIlxu
IgorCisvLyBSZWdpc3RlciBhbGxvY2F0aW9uCisjZGVmaW5lIFBBSU5USU5HX0RBVEFfUiAgICAg
ICAicjExIgorI2RlZmluZSBSRVNFVF9XSURUSF9SICAgICAgICAgUEFJTlRJTkdfREFUQV9SCisj
ZGVmaW5lIFBJWEVMU19SICAgICAgICAgICAgICAicjQiCisjZGVmaW5lIFdJRFRIX1IgICAgICAg
ICAgICAgICAicjUiCisjZGVmaW5lIEhFSUdIVF9SICAgICAgICAgICAgICAicjYiCisjZGVmaW5l
IEZMQUdTX1IgICAgICAgICAgICAgICAicjciCisjZGVmaW5lIFNQRUNVTEFSX0VYUE9ORU5UX1Ig
ICAicjgiCisjZGVmaW5lIENPTkVfRVhQT05FTlRfUiAgICAgICAicjEwIgorI2RlZmluZSBTQ0FO
TElORV9SICAgICAgICAgICAgInIxMiIKKworI2RlZmluZSBUTVAxX1EgICAgICAgICAgICAgICAg
InEwIgorI2RlZmluZSBUTVAxX0QwICAgICAgICAgICAgICAgImQwIgorI2RlZmluZSBUTVAxX1Mw
ICAgICAgICAgICAgICAgInMwIgorI2RlZmluZSBUTVAxX1MxICAgICAgICAgICAgICAgInMxIgor
I2RlZmluZSBUTVAxX0QxICAgICAgICAgICAgICAgImQxIgorI2RlZmluZSBUTVAxX1MyICAgICAg
ICAgICAgICAgInMyIgorI2RlZmluZSBUTVAxX1MzICAgICAgICAgICAgICAgInMzIgorI2RlZmlu
ZSBUTVAyX1EgICAgICAgICAgICAgICAgInExIgorI2RlZmluZSBUTVAyX0QwICAgICAgICAgICAg
ICAgImQyIgorI2RlZmluZSBUTVAyX1MwICAgICAgICAgICAgICAgInM0IgorI2RlZmluZSBUTVAy
X1MxICAgICAgICAgICAgICAgInM1IgorI2RlZmluZSBUTVAyX0QxICAgICAgICAgICAgICAgImQz
IgorI2RlZmluZSBUTVAyX1MyICAgICAgICAgICAgICAgInM2IgorI2RlZmluZSBUTVAyX1MzICAg
ICAgICAgICAgICAgInM3IgorI2RlZmluZSBUTVAzX1EgICAgICAgICAgICAgICAgInEyIgorI2Rl
ZmluZSBUTVAzX0QwICAgICAgICAgICAgICAgImQ0IgorI2RlZmluZSBUTVAzX1MwICAgICAgICAg
ICAgICAgInM4IgorI2RlZmluZSBUTVAzX1MxICAgICAgICAgICAgICAgInM5IgorI2RlZmluZSBU
TVAzX0QxICAgICAgICAgICAgICAgImQ1IgorI2RlZmluZSBUTVAzX1MyICAgICAgICAgICAgICAg
InMxMCIKKyNkZWZpbmUgVE1QM19TMyAgICAgICAgICAgICAgICJzMTEiCisKKyNkZWZpbmUgQ09T
SU5FX09GX0FOR0xFICAgICAgICJzMTIiCisjZGVmaW5lIFBPV0ZfSU5UX1MgICAgICAgICAgICAi
czEzIgorI2RlZmluZSBQT1dGX0ZSQUNfUyAgICAgICAgICAgInMxNCIKKyNkZWZpbmUgU1BPVF9D
T0xPUl9RICAgICAgICAgICJxNCIKKworLy8gQmVjYXVzZSBvZiBWTUlOIGFuZCBWTUFYIENPTlNU
X1pFUk9fUyBhbmQgQ09OU1RfT05FX1MKKy8vIG11c3QgYmUgcGxhY2VkIG9uIHRoZSBzYW1lIHNp
ZGUgb2YgdGhlIGRvdWJsZSB2ZWN0b3IKKworLy8gQ3VycmVudCBwaXhlbCBwb3NpdGlvbgorI2Rl
ZmluZSBQT1NJVElPTl9RICAgICAgICAgICAgInE1IgorI2RlZmluZSBQT1NJVElPTl9YX1MgICAg
ICAgICAgInMyMCIKKyNkZWZpbmUgUE9TSVRJT05fWV9TICAgICAgICAgICJzMjEiCisjZGVmaW5l
IFBPU0lUSU9OX1pfUyAgICAgICAgICAiczIyIgorI2RlZmluZSBDT05TVF9aRVJPX0hJX0QgICAg
ICAgImQxMSIKKyNkZWZpbmUgQ09OU1RfWkVST19TICAgICAgICAgICJzMjMiCisKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICBWYXJpYWJsZSBhcmd1bWVudHMKKy8v
IE1pc2MgYXJndW1lbnRzCisjZGVmaW5lIFJFQUQxX1JBTkdFICAgICAgICAgICAiZDEyLWQxNSIK
KyNkZWZpbmUgUkVBRDJfUkFOR0UgICAgICAgICAgICJkMTYtZDE5IgorI2RlZmluZSBSRUFEM19S
QU5HRSAgICAgICAgICAgImQyMC1kMjEiCisKKyNkZWZpbmUgU0NBTEVfUyAgICAgICAgICAgICAg
ICJzMjQiCisjZGVmaW5lIFNDQUxFX0RJVjRfUyAgICAgICAgICAiczI1IgorI2RlZmluZSBESUZG
VVNFX0NPTlNUX1MgICAgICAgInMyNiIKKworLy8gTGlnaHQgc291cmNlIHBvc2l0aW9uCisjZGVm
aW5lIENPTkVfQ1VUX09GRl9TICAgICAgICAiczI4IgorI2RlZmluZSBDT05FX0ZVTExfTElHSFRf
UyAgICAgInMyOSIKKyNkZWZpbmUgQ09ORV9DVVRfT0ZGX1JBTkdFX1MgICJzMzAiCisjZGVmaW5l
IENPTlNUX09ORV9ISV9EICAgICAgICAiZDE1IgorI2RlZmluZSBDT05TVF9PTkVfUyAgICAgICAg
ICAgInMzMSIKKworI2RlZmluZSBMSUdIVF9RICAgICAgICAgICAgICAgInE4IgorI2RlZmluZSBE
SVJFQ1RJT05fUSAgICAgICAgICAgInE5IgorI2RlZmluZSBDT0xPUl9RICAgICAgICAgICAgICAg
InExMCIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgIENvbnN0YW50
IGNvZWZmaWNpZW50cworI2RlZmluZSBSRUFENF9SQU5HRSAgICAgICAgICAgImQyMi1kMjUiCisj
ZGVmaW5lIFJFQUQ1X1JBTkdFICAgICAgICAgICAiZDI2LWQyNyIKKworI2RlZmluZSBBTFBIQVhf
USAgICAgICAgICAgICAgInExMSIKKyNkZWZpbmUgQUxQSEFZX1EgICAgICAgICAgICAgICJxMTIi
CisjZGVmaW5lIFJFTUFQWF9EICAgICAgICAgICAgICAiZDI2IgorI2RlZmluZSBSRU1BUFlfRCAg
ICAgICAgICAgICAgImQyNyIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
I2RlZmluZSBBTExfUk9XU19EICAgICAgICAgICAgIntkMjgsZDI5LGQzMH0iCisjZGVmaW5lIFRP
UF9ST1dfRCAgICAgICAgICAgICAiZDI4IgorI2RlZmluZSBNSURETEVfUk9XX0QgICAgICAgICAg
ImQyOSIKKyNkZWZpbmUgQk9UVE9NX1JPV19EICAgICAgICAgICJkMzAiCisKKyNkZWZpbmUgR0VU
X0xFTkdUSChzb3VyY2UsIHRlbXApIFwKKyAgICAidm11bC5mMzIgIiB0ZW1wIyNfUSAiLCAiIHNv
dXJjZSMjX1EgIiwgIiBzb3VyY2UjI19RIE5MIFwKKyAgICAidmFkZC5mMzIgIiBzb3VyY2UjI19T
MyAiLCAiIHRlbXAjI19TMCAiLCAiIHRlbXAjI19TMSBOTCBcCisgICAgInZhZGQuZjMyICIgc291
cmNlIyNfUzMgIiwgIiBzb3VyY2UjI19TMyAiLCAiIHRlbXAjI19TMiBOTCBcCisgICAgInZzcXJ0
LmYzMiAiIHNvdXJjZSMjX1MzICIsICIgc291cmNlIyNfUzMgTkwKKworLy8gZGVzdGluYXRpb24j
I19TMyBjYW4gY29udGFpbiB0aGUgbXVsdGlwbHkgb2YgbGVuZ3RoLgorI2RlZmluZSBET1RfUFJP
RFVDVChkZXN0aW5hdGlvbiwgc291cmNlMSwgc291cmNlMikgXAorICAgICJ2bXVsLmYzMiAiIGRl
c3RpbmF0aW9uIyNfUSAiLCAiIHNvdXJjZTEjI19RICIsICIgc291cmNlMiMjX1EgTkwgXAorICAg
ICJ2YWRkLmYzMiAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1MwICIsICIg
ZGVzdGluYXRpb24jI19TMSBOTCBcCisgICAgInZhZGQuZjMyICIgZGVzdGluYXRpb24jI19TMCAi
LCAiIGRlc3RpbmF0aW9uIyNfUzAgIiwgIiBkZXN0aW5hdGlvbiMjX1MyIE5MCisKKyNkZWZpbmUg
TVVMVElQTFlfQllfRElGRlVTRV9DT05TVChub3JtYWxWZWN0b3JMZW5ndGgsIGRvdFByb2R1Y3RM
ZW5ndGgpIFwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX0RJRkZVU0Vf
Q09OU1RfSVNfMSkgTkwgXAorICAgICJ2bXVsZXEuZjMyICIgVE1QMl9TMSAiLCAiIERJRkZVU0Vf
Q09OU1RfUyAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0aCBOTCBcCisgICAgInZkaXZlcS5mMzIgIiBU
TVAyX1MxICIsICIgVE1QMl9TMSAiLCAiIGRvdFByb2R1Y3RMZW5ndGggTkwgXAorICAgICJ2ZGl2
bmUuZjMyICIgVE1QMl9TMSAiLCAiIG5vcm1hbFZlY3Rvckxlbmd0aCAiLCAiIGRvdFByb2R1Y3RM
ZW5ndGggTkwKKworI2RlZmluZSBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIGN1cnJlbnQsIHJl
bWFpbmluZykgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklORyhjdXJyZW50KSBO
TCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIsICIgUE9XRl9JTlRfUyBO
TCBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RSSU5HKHJlbWFpbmluZykgTkwgXAor
ICAgICJ2bXVsbmUuZjMyICIgUE9XRl9JTlRfUyAiLCAiIFBPV0ZfSU5UX1MgIiwgIiBQT1dGX0lO
VF9TIE5MCisKKyNkZWZpbmUgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgY3VycmVudCwgcmVt
YWluaW5nKSBcCisgICAgInRzdCAiIGV4cG9uZW50ICIsICMiIEFTU1RSSU5HKHJlbWFpbmluZykg
TkwgXAorICAgICJ2c3FydG5lLmYzMiAiIFBPV0ZfRlJBQ19TICIsICIgUE9XRl9GUkFDX1MgTkwg
XAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAjIiBBU1NUUklORyhjdXJyZW50KSBOTCBcCisgICAg
InZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIsICIgUE9XRl9GUkFDX1MgTkwKKworLy8g
VGhpcyBzaW1wbGlmaWVkIHBvd2YgZnVuY3Rpb24gaXMgc3VmZmljaWVudGx5IGFjY3VyYXRlLgor
I2RlZmluZSBQT1dGKHZhbHVlLCBleHBvbmVudCkgXAorICAgICJ0c3QgIiBleHBvbmVudCAiLCAj
MHhmYzAiIE5MIFwKKyAgICAidm1vdm5lLmYzMiAiIFBPV0ZfSU5UX1MgIiwgIiB2YWx1ZSBOTCBc
CisgICAgInRzdCAiIGV4cG9uZW50ICIsICMweDAzZiIgTkwgXAorICAgICJ2bW92bmUuZjMyICIg
UE9XRl9GUkFDX1MgIiwgIiB2YWx1ZSBOTCBcCisgICAgInZtb3YuZjMyICIgdmFsdWUgIiwgIiBD
T05TVF9PTkVfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgw
NDAsIDB4ZjgwKSBcCisgICAgUE9XRl9TUVIodmFsdWUsIGV4cG9uZW50LCAweDA4MCwgMHhmMDAp
IFwKKyAgICBQT1dGX1NRUih2YWx1ZSwgZXhwb25lbnQsIDB4MTAwLCAweGUwMCkgXAorICAgIFBP
V0ZfU1FSKHZhbHVlLCBleHBvbmVudCwgMHgyMDAsIDB4YzAwKSBcCisgICAgUE9XRl9TUVIodmFs
dWUsIGV4cG9uZW50LCAweDQwMCwgMHg4MDApIFwKKyAgICAidHN0ICIgZXhwb25lbnQgIiwgIzB4
ODAwIiBOTCBcCisgICAgInZtdWxuZS5mMzIgIiB2YWx1ZSAiLCAiIHZhbHVlICIsICIgUE9XRl9J
TlRfUyBOTCBcCisgICAgXAorICAgIFBPV0ZfU1FSVCh2YWx1ZSwgZXhwb25lbnQsIDB4MjAsIDB4
M2YpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9uZW50LCAweDEwLCAweDFmKSBcCisgICAg
UE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwOCwgMHgwZikgXAorICAgIFBPV0ZfU1FSVCh2
YWx1ZSwgZXhwb25lbnQsIDB4MDQsIDB4MDcpIFwKKyAgICBQT1dGX1NRUlQodmFsdWUsIGV4cG9u
ZW50LCAweDAyLCAweDAzKSBcCisgICAgUE9XRl9TUVJUKHZhbHVlLCBleHBvbmVudCwgMHgwMSwg
MHgwMSkKKworLy8gVGhlIGZvbGxvd2luZyBhbGdvcml0aG0gaXMgYW4gQVJNLU5FT04gb3B0aW1p
emVkIHZlcnNpb24gb2YKKy8vIHRoZSBtYWluIGxvb3AgZm91bmQgaW4gRkVMaWdodGluZy5jcHAu
IFNpbmNlIHRoZSB3aG9sZSBjb2RlCisvLyBpcyByZWRlc2lnbmVkIHRvIGJlIGFzIGVmZmVjdGl2
ZSBhcyBwb3NzaWJsZSAoQVJNIHNwZWNpZmljCisvLyB0aGlua2luZyksIGl0IGlzIGZvdXIgdGlt
ZXMgZmFzdGVyIHRoYW4gaXRzIEMrKyBjb3VudGVycGFydC4KKworYXNtICggLy8gTk9MSU5UCisi
Lmdsb2JsICIgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgTkwKK1RPU1RSSU5HKG5lb25EcmF3
TGlnaHRpbmcpICI6IiBOTAorICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGNsZXZlciByZWdpc3RlciBh
bGxvY2F0aW9uLCBub3RoaW5nIGlzIHN0b3JlZCBvbiB0aGUgc3RhY2sKKyAgICAvLyBleGNlcHQg
dGhlIHNhdmVkIHJlZ2lzdGVycy4KKyAgICAvLyBTdGFjayBtdXN0IGJlIGFsaWduZWQgdG8gOCBi
eXRlcy4KKyAgICAic3RtZGIgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBscn0iIE5MCisgICAgInZz
dG1kYiBzcCEsIHtkOC1kMTV9IiBOTAorICAgICJtb3YgIiBQQUlOVElOR19EQVRBX1IgIiwgcjAi
IE5MCisKKyAgICAvLyBUaGUgZm9sbG93aW5nIHR3byBhcmd1bWVudHMgYXJlIGxvYWRlZCB0byBT
SU1EIHJlZ2lzdGVycy4KKyAgICAibGRyIHIwLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgRkxP
QVRfQVJHVU1FTlRTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyIHIxLCBbIiBQQUlOVElOR19EQVRB
X1IgIiwgIyIgRFJBV0lOR19DT05TVEFOVFNfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBQSVhF
TFNfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgUElYRUxTX09GRlNFVCAiXSIgTkwKKyAg
ICAibGRyICIgV0lEVEhfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgV0lEVEhfT0ZGU0VU
ICJdIiBOTAorICAgICJsZHIgIiBIRUlHSFRfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIg
SEVJR0hUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRkxBR1NfUiAiLCBbIiBQQUlOVElOR19E
QVRBX1IgIiwgIyIgRkxBR1NfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTUEVDVUxBUl9FWFBP
TkVOVF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBTUEVDVUxBUl9FWFBPTkVOVF9PRkZT
RVQgIl0iIE5MCisgICAgImxkciAiIENPTkVfRVhQT05FTlRfUiAiLCBbIiBQQUlOVElOR19EQVRB
X1IgIiwgIyIgQ09ORV9FWFBPTkVOVF9PRkZTRVQgIl0iIE5MCisKKyAgICAvLyBMb2FkIGFsbCBk
YXRhIHRvIHRoZSBTSU1EIHJlZ2lzdGVycyB3aXRoIHRoZSBsZWFzdCBudW1iZXIgb2YgaW5zdHJ1
Y3Rpb25zLgorICAgICJ2bGQxLmYzMiB7ICIgUkVBRDFfUkFOR0UgIiB9LCBbcjBdISIgTkwKKyAg
ICAidmxkMS5mMzIgeyAiIFJFQUQyX1JBTkdFICIgfSwgW3IwXSEiIE5MCisgICAgInZsZDEuZjMy
IHsgIiBSRUFEM19SQU5HRSAiIH0sIFtyMF0hIiBOTAorICAgICJ2bGQxLnMxNiB7IiBSRUFENF9S
QU5HRSAifSwgW3IxXSEiIE5MCisgICAgInZsZDEuczE2IHsiIFJFQUQ1X1JBTkdFICJ9LCBbcjFd
ISIgTkwKKworICAgIC8vIEluaXRpYWxpemluZyBsb2NhbCB2YXJpYWJsZXMuCisgICAgIm1vdiAi
IFNDQU5MSU5FX1IgIiwgIiBXSURUSF9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRkICIgU0NBTkxJ
TkVfUiAiLCAiIFNDQU5MSU5FX1IgIiwgIzgiIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIg
UElYRUxTX1IgIiwgIiBTQ0FOTElORV9SIE5MCisgICAgImFkZCAiIFBJWEVMU19SICIsICIgUElY
RUxTX1IgIiwgIzMiIE5MCisgICAgIm1vdiByMCwgIzAiIE5MCisgICAgInZtb3YuZjMyICIgQ09O
U1RfWkVST19TICIsIHIwIiBOTAorICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1lfUyAiLCAiIENP
TlNUX09ORV9TIE5MCisgICAgInRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUE9U
X0xJR0hUKSBOTAorICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAiIENPTE9SX1EgTkwK
KyAgICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKKworIi5tYWlubG9vcDoi
IE5MCisgICAgIm1vdiByMywgIzMiIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWF9TICIs
ICIgQ09OU1RfT05FX1MgTkwKKworIi5zY2FubGluZToiIE5MCisgICAgLy8gVGhlIFJPVyByZWdp
c3RlcnMgYXJlIHN0b3JpbmcgdGhlIGFscGhhIGNoYW5uZWwgb2YgdGhlIGxhc3QgdGhyZWUgcGl4
ZWxzLgorICAgIC8vIFRoZSBhbHBoYSBjaGFubmVsIGlzIHN0b3JlZCBhcyBzaWduZWQgc2hvcnQg
KHNpbnQxNikgdmFsdWVzLiBUaGUgZm91cnRoIHZhbHVlCisgICAgLy8gaXMgZ2FyYmFnZS4gVGhl
IGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgYXJlIHNoaWZ0aW5nIG91dCB0aGUgdW5uZWNlc3Nhcnkg
YWxwaGEKKyAgICAvLyB2YWx1ZXMgYW5kIGxvYWQgdGhlIG5leHQgb25lcy4KKyAgICAibGRyYiBy
MCwgWyIgUElYRUxTX1IgIiwgLSIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMSwgWyIg
UElYRUxTX1IgIiwgKyIgU0NBTkxJTkVfUiAiXSIgTkwKKyAgICAibGRyYiByMiwgWyIgUElYRUxT
X1IgIl0sICM0IiBOTAorICAgICJ2ZXh0LnMxNiAiIFRPUF9ST1dfRCAiLCAiIFRPUF9ST1dfRCAi
LCAiIFRPUF9ST1dfRCAiLCAjMyIgTkwKKyAgICAidmV4dC5zMTYgIiBNSURETEVfUk9XX0QgIiwg
IiBNSURETEVfUk9XX0QgIiwgIiBNSURETEVfUk9XX0QgIiwgIzMiIE5MCisgICAgInZleHQuczE2
ICIgQk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JPV19EICIsICIgQk9UVE9NX1JPV19EICIsICMz
IiBOTAorICAgICJ2bW92LnMxNiAiIFRPUF9ST1dfRCAiWzFdLCByMCIgTkwKKyAgICAidm1vdi5z
MTYgIiBNSURETEVfUk9XX0QgIlsxXSwgcjIiIE5MCisgICAgInZtb3YuczE2ICIgQk9UVE9NX1JP
V19EICJbMV0sIHIxIiBOTAorCisgICAgLy8gVGhlIHR3byBib3JkZXIgcGl4ZWxzIChyaWdodG1v
c3QgYW5kIGxlZnRtb3N0KSBhcmUgc2tpcHBlZCB3aGVuCisgICAgLy8gdGhlIG5leHQgc2Nhbmxp
bmUgaXMgcmVhY2hlZC4gSXQgYWxzbyBqdW1wcywgd2hlbiB0aGUgYWxnb3JpdGhtCisgICAgLy8g
aXMgc3RhcnRlZCwgYW5kIHRoZSBmaXJzdCBmcmVlIGFscGhhIHZhbHVlcyBhcmUgbG9hZGVkIHRv
IGVhY2ggcm93LgorICAgICJzdWJzIHIzLCByMywgIzEiIE5MCisgICAgImJuZSAuc2NhbmxpbmUi
IE5MCisKKyAgICAvLyBUaGUgbGlnaHQgdmVjdG9yIGdvZXMgdG8gVE1QMV9RLiBJdCBpcyBjb25z
dGFudCBpbiBjYXNlIG9mIGRpc3RhbnQgbGlnaHQuCisgICAgLy8gVGhlIGZvdXJ0aCB2YWx1ZSBj
b250YWlucyB0aGUgbGVuZ3RoIG9mIHRoZSBsaWdodCB2ZWN0b3IuCisgICAgInRzdCAiIEZMQUdT
X1IgIiwgIyIgVE9TVFJJTkcoRkxBR19QT0lOVF9MSUdIVCB8IEZMQUdfU1BPVF9MSUdIVCkgTkwK
KyAgICAiYmVxIC5kaXN0YW50TGlnaHQiIE5MCisKKyAgICAidm1vdi5zMTYgcjMsICIgTUlERExF
X1JPV19EICJbMl0iIE5MCisgICAgInZtb3YuZjMyICIgUE9TSVRJT05fWl9TICIsIHIzIiBOTAor
ICAgICJ2Y3Z0LmYzMi5zMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgTkwKKyAg
ICAidm11bC5mMzIgIiBQT1NJVElPTl9aX1MgIiwgIiBQT1NJVElPTl9aX1MgIiwgIiBTQ0FMRV9T
IE5MCisKKyAgICAidnN1Yi5mMzIgIiBUTVAxX1EgIiwgIiBMSUdIVF9RICIsICIgUE9TSVRJT05f
USBOTAorICAgIEdFVF9MRU5HVEgoVE1QMSwgVE1QMikKKworICAgICJ0c3QgIiBGTEFHU19SICIs
ICMiIFRPU1RSSU5HKEZMQUdfU1BPVF9MSUdIVCkgTkwKKyAgICAiYm5lIC5jb3NpbmVPZkFuZ2xl
IiBOTAorIi52aXNpYmxlUGl4ZWw6IiBOTAorCisgICAgLy8gICAgIHwgLTEgIDAgIDEgfCAgICAg
IHwgLTEgLTIgLTEgfAorICAgIC8vIFggPSB8IC0yICAwICAyIHwgIFkgPSB8ICAwICAwICAwIHwK
KyAgICAvLyAgICAgfCAtMSAgMCAgMSB8ICAgICAgfCAgMSAgMiAgMSB8CisKKyAgICAvLyBNdWx0
aXBseSB0aGUgYWxwaGEgdmFsdWVzIGJ5IHRoZSBYIGFuZCBZIG1hdHJpY2VzLgorCisgICAgLy8g
TW92aW5nIHRoZSA4IGFscGhhIHZhbHVlIHRvIFRNUDMuCisgICAgInZ0YmwuOCAiIFRNUDNfRDAg
IiwgIiBBTExfUk9XU19EICIsICIgUkVNQVBYX0QgTkwKKyAgICAidnRibC44ICIgVE1QM19EMSAi
LCAiIEFMTF9ST1dTX0QgIiwgIiBSRU1BUFlfRCBOTAorCisgICAgInZtdWwuczE2ICIgVE1QMl9R
ICIsICIgVE1QM19RICIsICIgQUxQSEFYX1EgTkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAi
LCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QxIE5MCisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwg
IiBUTVAyX0QwICIsICIgVE1QMl9EMCBOTAorICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIg
VE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAgICAidm1vdi5zMTYgcjAsICIgVE1QMl9EMCAiWzBd
IiBOTAorCisgICAgInZtdWwuczE2ICIgVE1QMl9RICIsICIgVE1QM19RICIsICIgQUxQSEFZX1Eg
TkwKKyAgICAidnBhZGQuczE2ICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgIiwgIiBUTVAyX0QxIE5M
CisgICAgInZwYWRkLnMxNiAiIFRNUDJfRDAgIiwgIiBUTVAyX0QwICIsICIgVE1QMl9EMCBOTAor
ICAgICJ2cGFkZC5zMTYgIiBUTVAyX0QwICIsICIgVE1QMl9EMCAiLCAiIFRNUDJfRDAgTkwKKyAg
ICAidm1vdi5zMTYgcjEsICIgVE1QMl9EMCAiWzBdIiBOTAorCisgICAgLy8gcjAgYW5kIHIxIGNv
bnRhaW5zIHRoZSBYIGFuZCBZIGNvb3JkaW5hdGVzIG9mIHRoZQorICAgIC8vIG5vcm1hbCB2ZWN0
b3IsIHJlc3BlY3RpdmVseS4KKworICAgIC8vIENhbGN1bGF0aW5nIHRoZSBzcG90IGxpZ2h0IHN0
cmVuZ3RoLgorICAgICJ0c3QgIiBGTEFHU19SICIsICMiIFRPU1RSSU5HKEZMQUdfU1BPVF9MSUdI
VCkgTkwKKyAgICAiYmVxIC5lbmRMaWdodCIgTkwKKworICAgICJ2bmVnLmYzMiAiIFRNUDNfUzEg
IiwgIiBDT1NJTkVfT0ZfQU5HTEUgTkwKKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklO
RyhGTEFHX0NPTkVfRVhQT05FTlRfSVNfMSkgTkwKKyAgICAiYmVxIC5jb25lRXhwUG93ZiIgTkwK
KyIuY29uZUV4cFBvd2ZGaW5pc2hlZDoiIE5MCisKKyAgICAvLyBTbW9vdGhpbmcgdGhlIGNvbmUg
ZWRnZSBpZiBuZWNlc3NhcnkuCisgICAgInZjbXAuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIg
Q09ORV9GVUxMX0xJR0hUX1MgTkwKKyAgICAiZm1zdGF0IiBOTAorICAgICJiaGkgLmN1dE9mZiIg
TkwKKyIuY3V0T2ZmRmluaXNoZWQ6IiBOTAorCisgICAgInZtaW4uZjMyICIgVE1QM19EMCAiLCAi
IFRNUDNfRDAgIiwgIiBDT05TVF9PTkVfSElfRCBOTAorICAgICJ2bXVsLmYzMiAiIENPTE9SX1Eg
IiwgIiBTUE9UX0NPTE9SX1EgIiwgIiBUTVAzX0QwICJbMV0iIE5MCisKKyIuZW5kTGlnaHQ6IiBO
TAorICAgIC8vIFN1bW1hcml6ZToKKyAgICAvLyByMCBhbmQgcjEgY29udGFpbnMgdGhlIG5vcm1h
bFZlY3Rvci4KKyAgICAvLyBUTVAxX1EgY29udGFpbnMgdGhlIGxpZ2h0IHZlY3RvciBhbmQgaXRz
IGxlbmd0aC4KKyAgICAvLyBDT0xPUl9RIGNvbnRhaW5zIHRoZSBjb2xvciBvZiB0aGUgbGlnaHQg
dmVjdG9yLgorCisgICAgLy8gVGVzdCB3aGV0aGVyIGJvdGggcjAgYW5kIHIxIGFyZSB6ZXJvIChO
b3JtYWwgdmVjdG9yIGlzICgwLCAwLCAxKSkuCisgICAgIm9ycnMgcjIsIHIwLCByMSIgTkwKKyAg
ICAiYm5lIC5ub3JtYWxWZWN0b3JJc05vblplcm8iIE5MCisKKyAgICAidHN0ICIgRkxBR1NfUiAi
LCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFSX0xJR0hUKSBOTAorICAgICJibmUgLnNwZWN1bGFy
TGlnaHQxIiBOTAorCisgICAgLy8gQ2FsY3VsYXRlIGRpZmZ1c2UgbGlnaHQgc3RyZW5ndGguCisg
ICAgTVVMVElQTFlfQllfRElGRlVTRV9DT05TVChUTVAxX1MyLCBUTVAxX1MzKQorICAgICJiIC5s
aWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKKworIi5zcGVjdWxhckxpZ2h0MToiIE5MCisgICAg
Ly8gQ2FsY3VsYXRpbmcgc3BlY3VsYXIgbGlnaHQgc3RyZW5ndGguCisgICAgInZhZGQuZjMyICIg
VE1QMV9TMiAiLCAiIFRNUDFfUzIgIiwgIiBUTVAxX1MzIE5MCisgICAgR0VUX0xFTkdUSChUTVAx
LCBUTVAyKQorCisgICAgLy8gV2hlbiB0aGUgZXhwb25lbnQgaXMgMSwgd2UgZG9uJ3QgbmVlZCB0
byBjYWxsIGFuIGV4cGVuc2l2ZSBwb3dmIGZ1bmN0aW9uLgorICAgICJ0c3QgIiBGTEFHU19SICIs
ICMiIFRPU1RSSU5HKEZMQUdfU1BFQ1VMQVJfRVhQT05FTlRfSVNfMSkgTkwKKyAgICAidmRpdmVx
LmYzMiAiIFRNUDJfUzEgIiwgIiBUTVAxX1MyICIsICIgVE1QMV9TMyBOTAorICAgICJiZXEgLnNw
ZWN1bGFyRXhwUG93ZiIgTkwKKworICAgIE1VTFRJUExZX0JZX0RJRkZVU0VfQ09OU1QoVE1QMV9T
MiwgVE1QMV9TMykKKyAgICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCisKKyIubm9y
bWFsVmVjdG9ySXNOb25aZXJvOiIgTkwKKyAgICAvLyBOb3JtYWwgdmVjdG9yIGdvZXMgdG8gVE1Q
MiwgYW5kIGl0cyBsZW5ndGggaXMgY2FsY3VsYXRlZCBhcyB3ZWxsLgorICAgICJ2bW92LnMzMiAi
IFRNUDJfUzAgIiwgcjAiIE5MCisgICAgInZjdnQuZjMyLnMzMiAiIFRNUDJfUzAgIiwgIiBUTVAy
X1MwIE5MCisgICAgInZtdWwuZjMyICIgVE1QMl9TMCAiLCAiIFRNUDJfUzAgIiwgIiBTQ0FMRV9E
SVY0X1MgTkwKKyAgICAidm1vdi5zMzIgIiBUTVAyX1MxICIsIHIxIiBOTAorICAgICJ2Y3Z0LmYz
Mi5zMzIgIiBUTVAyX1MxICIsICIgVE1QMl9TMSBOTAorICAgICJ2bXVsLmYzMiAiIFRNUDJfUzEg
IiwgIiBUTVAyX1MxICIsICIgU0NBTEVfRElWNF9TIE5MCisgICAgInZtb3YuZjMyICIgVE1QMl9T
MiAiLCAiIENPTlNUX09ORV9TIE5MCisgICAgR0VUX0xFTkdUSChUTVAyLCBUTVAzKQorCisgICAg
InRzdCAiIEZMQUdTX1IgIiwgIyIgVE9TVFJJTkcoRkxBR19TUEVDVUxBUl9MSUdIVCkgTkwKKyAg
ICAiYm5lIC5zcGVjdWxhckxpZ2h0MiIgTkwKKworICAgIC8vIENhbGN1bGF0aW5nIGRpZmZ1c2Ug
bGlnaHQgc3RyZW5ndGguCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMiwgVE1QMSkKKyAgICBN
VUxUSVBMWV9CWV9ESUZGVVNFX0NPTlNUKFRNUDNfUzAsIFRNUDNfUzMpCisgICAgImIgLmxpZ2h0
U3RyZW5ndGhDYWxjdWxhdGVkIiBOTAorCisiLnNwZWN1bGFyTGlnaHQyOiIgTkwKKyAgICAvLyBD
YWxjdWxhdGluZyBzcGVjdWxhciBsaWdodCBzdHJlbmd0aC4KKyAgICAidmFkZC5mMzIgIiBUTVAx
X1MyICIsICIgVE1QMV9TMiAiLCAiIFRNUDFfUzMgTkwKKyAgICBHRVRfTEVOR1RIKFRNUDEsIFRN
UDMpCisgICAgRE9UX1BST0RVQ1QoVE1QMywgVE1QMiwgVE1QMSkKKworICAgIC8vIFdoZW4gdGhl
IGV4cG9uZW50IGlzIDEsIHdlIGRvbid0IG5lZWQgdG8gY2FsbCBhbiBleHBlbnNpdmUgcG93ZiBm
dW5jdGlvbi4KKyAgICAidHN0ICIgRkxBR1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX1NQRUNVTEFS
X0VYUE9ORU5UX0lTXzEpIE5MCisgICAgInZkaXZlcS5mMzIgIiBUTVAyX1MxICIsICIgVE1QM19T
MCAiLCAiIFRNUDNfUzMgTkwKKyAgICAiYmVxIC5zcGVjdWxhckV4cFBvd2YiIE5MCisgICAgTVVM
VElQTFlfQllfRElGRlVTRV9DT05TVChUTVAzX1MwLCBUTVAzX1MzKQorCisiLmxpZ2h0U3RyZW5n
dGhDYWxjdWxhdGVkOiIgTkwKKyAgICAvLyBUTVAyX1MxIGNvbnRhaW5zIHRoZSBsaWdodCBzdHJl
bmd0aC4gQ2xhbXAgaXQgdG8gWzAsIDFdCisgICAgInZtYXguZjMyICIgVE1QMl9EMCAiLCAiIFRN
UDJfRDAgIiwgIiBDT05TVF9aRVJPX0hJX0QgTkwKKyAgICAidm1pbi5mMzIgIiBUTVAyX0QwICIs
ICIgVE1QMl9EMCAiLCAiIENPTlNUX09ORV9ISV9EIE5MCisgICAgInZtdWwuZjMyICIgVE1QM19R
ICIsICIgQ09MT1JfUSAiLCAiIFRNUDJfRDAgIlsxXSIgTkwKKyAgICAidmN2dC51MzIuZjMyICIg
VE1QM19RICIsICIgVE1QM19RIE5MCisgICAgInZtb3YudTMyIHIyLCByMywgIiBUTVAzX1MwICIs
ICIgVE1QM19TMSBOTAorICAgIC8vIFRoZSBjb2xvciB2YWx1ZXMgYXJlIHN0b3JlZCBpbi1wbGFj
ZS4KKyAgICAic3RyYiByMiwgWyIgUElYRUxTX1IgIiwgIy0xMV0iIE5MCisgICAgInN0cmIgcjMs
IFsiIFBJWEVMU19SICIsICMtMTBdIiBOTAorICAgICJ2bW92LnUzMiByMiwgIiBUTVAzX1MyIE5M
CisgICAgInN0cmIgcjIsIFsiIFBJWEVMU19SICIsICMtOV0iIE5MCisKKyAgICAvLyBDb250aW51
ZSB0byB0aGUgbmV4dCBwaXhlbC4KKyIuYmxhY2tQaXhlbDoiIE5MCisgICAgInZhZGQuZjMyICIg
UE9TSVRJT05fWF9TICIsICIgQ09OU1RfT05FX1MgTkwKKyAgICAibW92IHIzLCAjMSIgTkwKKyAg
ICAic3VicyAiIFdJRFRIX1IgIiwgIiBXSURUSF9SICIsICMxIiBOTAorICAgICJibmUgLnNjYW5s
aW5lIiBOTAorCisgICAgLy8gSWYgdGhlIGVuZCBvZiB0aGUgc2NhbmxpbmUgaXMgcmVhY2hlZCwg
d2UgY29udGludWUKKyAgICAvLyB0byB0aGUgbmV4dCBzY2FubGluZS4KKyAgICAidmFkZC5mMzIg
IiBQT1NJVElPTl9ZX1MgIiwgIiBDT05TVF9PTkVfUyBOTAorICAgICJtb3YgIiBXSURUSF9SICIs
ICIgUkVTRVRfV0lEVEhfUiBOTAorICAgICJzdWJzICIgSEVJR0hUX1IgIiwgIiBIRUlHSFRfUiAi
LCAjMSIgTkwKKyAgICAiYm5lIC5tYWlubG9vcCIgTkwKKworICAgIC8vIFJldHVybi4KKyAgICAi
dmxkbWlhIHNwISwge2Q4LWQxNX0iIE5MCisgICAgImxkbWlhIHNwISwge3I0LXI4LCByMTAsIHIx
MSwgcGN9IiBOTAorCisiLmRpc3RhbnRMaWdodDoiIE5MCisgICAgLy8gSW4gY2FzZSBvZiBkaXN0
YW50IGxpZ2h0LCB0aGUgbGlnaHQgdmVjdG9yIGlzIGNvbnN0YW50LAorICAgIC8vIHdlIHNpbXBs
eSBjb3B5IGl0LgorICAgICJ2bW92LmYzMiAiIFRNUDFfUSAiLCAiIExJR0hUX1EgTkwKKyAgICAi
YiAudmlzaWJsZVBpeGVsIiBOTAorCisiLmNvc2luZU9mQW5nbGU6IiBOTAorICAgIC8vIElmIHRo
ZSBwaXhlbCBpcyBvdXRzaWRlIG9mIHRoZSBjb25lIGFuZ2xlLCBpdCBpcyBzaW1wbHkgYSBibGFj
ayBwaXhlbC4KKyAgICBET1RfUFJPRFVDVChUTVAzLCBUTVAxLCBESVJFQ1RJT04pCisgICAgInZk
aXYuZjMyICIgQ09TSU5FX09GX0FOR0xFICIsICIgVE1QM19TMCAiLCAiIFRNUDFfUzMgTkwKKyAg
ICAidmNtcC5mMzIgIiBDT1NJTkVfT0ZfQU5HTEUgIiwgIiBDT05FX0NVVF9PRkZfUyBOTAorICAg
ICJmbXN0YXQiIE5MCisgICAgImJscyAudmlzaWJsZVBpeGVsIiBOTAorICAgICJtb3YgcjAsICMw
IiBOTAorICAgICJzdHJoIHIwLCBbIiBQSVhFTFNfUiAiLCAjLTExXSIgTkwKKyAgICAic3RyYiBy
MCwgWyIgUElYRUxTX1IgIiwgIy05XSIgTkwKKyAgICAiYiAuYmxhY2tQaXhlbCIgTkwKKworIi5j
dXRPZmY6IiBOTAorICAgIC8vIFNtb290aGluZyB0aGUgbGlnaHQgc3RyZW5ndGggb24gdGhlIGNv
bmUgZWRnZS4KKyAgICAidnN1Yi5mMzIgIiBUTVAzX1MwICIsICIgQ09ORV9DVVRfT0ZGX1MgIiwg
IiBDT1NJTkVfT0ZfQU5HTEUgTkwKKyAgICAidmRpdi5mMzIgIiBUTVAzX1MwICIsICIgVE1QM19T
MCAiLCAiIENPTkVfQ1VUX09GRl9SQU5HRV9TIE5MCisgICAgInZtdWwuZjMyICIgVE1QM19TMSAi
LCAiIFRNUDNfUzEgIiwgIiBUTVAzX1MwIE5MCisgICAgImIgLmN1dE9mZkZpbmlzaGVkIiBOTAor
CisiLmNvbmVFeHBQb3dmOiIgTkwKKyAgICBQT1dGKFRNUDNfUzEsIENPTkVfRVhQT05FTlRfUikK
KyAgICAiYiAuY29uZUV4cFBvd2ZGaW5pc2hlZCIgTkwKKworIi5zcGVjdWxhckV4cFBvd2Y6IiBO
TAorICAgIFBPV0YoVE1QMl9TMSwgU1BFQ1VMQVJfRVhQT05FTlRfUikKKyAgICAidHN0ICIgRkxB
R1NfUiAiLCAjIiBUT1NUUklORyhGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMSkgTkwKKyAgICAidm11
bGVxLmYzMiAiIFRNUDJfUzEgIiwgIiBUTVAyX1MxICIsICIgRElGRlVTRV9DT05TVF9TIE5MCisg
ICAgImIgLmxpZ2h0U3RyZW5ndGhDYWxjdWxhdGVkIiBOTAorKTsgLy8gTk9MSU5UCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIo
R0NDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVMaWdodGluZ05FT04uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZDgzYjdmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKQEAgLTAsMCArMSw5NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29w
eXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUxpZ2h0aW5n
TmVvbl9oCisjZGVmaW5lIEZFTGlnaHRpbmdOZW9uX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgorCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworLy8gT3RoZXJ3aXNlOiBEaXN0YW50IExpZ2h0LgorI2RlZmluZSBGTEFHX1BP
SU5UX0xJR0hUICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIEZMQUdfU1BPVF9MSUdIVCAg
ICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgRkxBR19DT05FX0VYUE9ORU5UX0lTXzEgICAg
ICAgICAgMHgwNAorCisvLyBPdGhlcndpc2U6IERpZmZ1c2UgbGlnaHQuCisjZGVmaW5lIEZMQUdf
U1BFQ1VMQVJfTElHSFQgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRkxBR19ESUZGVVNFX0NP
TlNUX0lTXzEgICAgICAgICAgMHgyMAorI2RlZmluZSBGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lT
XzEgICAgICAweDQwCisKKy8vIE11c3QgYmUgYWxpZ25lZCB0byAxNiBieXRlcy4KK3N0cnVjdCBG
RUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uIHsKKyAgICBmbG9hdCBzdXJmYWNlU2NhbGU7
CisgICAgZmxvYXQgbWludXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyOworICAgIGZsb2F0IGRp
ZmZ1c2VDb25zdGFudDsKKyAgICBmbG9hdCBwYWRkaW5nMTsKKworICAgIGZsb2F0IGNvbmVDdXRP
ZmZMaW1pdDsKKyAgICBmbG9hdCBjb25lRnVsbExpZ2h0OworICAgIGZsb2F0IGNvbmVDdXRPZmZS
YW5nZTsKKyAgICBmbG9hdCBjb25zdE9uZTsKKworICAgIGZsb2F0IGxpZ2h0WDsKKyAgICBmbG9h
dCBsaWdodFk7CisgICAgZmxvYXQgbGlnaHRaOworICAgIGZsb2F0IHBhZGRpbmcyOworCisgICAg
ZmxvYXQgZGlyZWN0aW9uWDsKKyAgICBmbG9hdCBkaXJlY3Rpb25ZOworICAgIGZsb2F0IGRpcmVj
dGlvblo7CisgICAgZmxvYXQgcGFkZGluZzM7CisKKyAgICBmbG9hdCBjb2xvclJlZDsKKyAgICBm
bG9hdCBjb2xvckdyZWVuOworICAgIGZsb2F0IGNvbG9yQmx1ZTsKKyAgICBmbG9hdCBwYWRkaW5n
NDsKK307CisKK3N0cnVjdCBGRUxpZ2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiB7CisgICAgdW5z
aWduZWQgY2hhciogcGl4ZWxzOworICAgIGludCB3aWR0aERlY3JlYXNlZEJ5VHdvOworICAgIGlu
dCBoZWlnaHREZWNyZWFzZWRCeVR3bzsKKyAgICAvLyBDb21iaW5hdGlvbiBvZiBGTEFHIGNvbnN0
YW50cyBhYm92ZS4KKyAgICBpbnQgZmxhZ3M7CisgICAgaW50IHNwZWN1bGFyRXhwb25lbnQ7Cisg
ICAgaW50IGNvbmVFeHBvbmVudDsKKyAgICBGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9u
KiBmbG9hdEFyZ3VtZW50czsKKyAgICBzaG9ydCogcGFpbnRpbmdDb25zdGFudHM7Cit9OworCitz
aG9ydCogZmVMaWdodGluZ0NvbnN0YW50c0Zvck5lb24oKTsKKworZXh0ZXJuICJDIiB7Cit2b2lk
IG5lb25EcmF3TGlnaHRpbmcoRkVMaWdodGluZ1BhaW50aW5nRGF0YUZvck5lb24qKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01Q
SUxFUihHQ0MpCisKKyNlbmRpZiAvLyBGRUxpZ2h0aW5nTmVvbl9oCi0tIAoxLjYuNQoK
</data>
<flag name="review"
          id="81595"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>