<?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>109755</bug_id>
          
          <creation_ts>2013-02-13 15:14:01 -0800</creation_ts>
          <short_desc>Add support for using ARM FFT in WebAudio</short_desc>
          <delta_ts>2013-04-02 13:23:18 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raymond Toy">rtoy</reporter>
          <assigned_to name="Raymond Toy">rtoy</assigned_to>
          <cc>crogers</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>felipeg</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>peter</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rtoy</cc>
    
    <cc>rtoy</cc>
    
    <cc>sergio</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832402</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-13 15:14:01 -0800</bug_when>
    <thetext>Add support for using ARM FFT in WebAudio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832405</commentid>
    <comment_count>1</comment_count>
      <attachid>188194</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-13 15:17:03 -0800</bug_when>
    <thetext>Created attachment 188194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832407</commentid>
    <comment_count>2</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-13 15:19:18 -0800</bug_when>
    <thetext>Blocked by https://codereview.chromium.org/12260023/ which creates the required use_arm_fft variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832409</commentid>
    <comment_count>3</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-13 15:24:45 -0800</bug_when>
    <thetext>+ felipeg@</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832970</commentid>
    <comment_count>4</comment_count>
    <who name="felipe">felipeg</who>
    <bug_when>2013-02-14 04:51:12 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; + felipeg@


LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839686</commentid>
    <comment_count>5</comment_count>
      <attachid>189788</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-22 10:03:19 -0800</bug_when>
    <thetext>Created attachment 189788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839689</commentid>
    <comment_count>6</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-22 10:08:59 -0800</bug_when>
    <thetext>Please review at your convenience.  This patch adds support for using the ARM FFT routines from OpenMAX DL.

As mentioned earlier, this cannot be checked in until https://codereview.chromium.org/12260023/ is reviewed and checked in.  That CL creates the necessary use_arm_fft variable to control whether the ARM FFT routines are used.

Also, use_arm_fft cannot be enabled until the new third party library in third_party/openmax_dl is made available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843123</commentid>
    <comment_count>7</comment_count>
      <attachid>189788</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-27 08:54:00 -0800</bug_when>
    <thetext>Comment on attachment 189788
Patch

Attachment 189788 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/16783347</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843220</commentid>
    <comment_count>8</comment_count>
      <attachid>189788</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-27 10:25:31 -0800</bug_when>
    <thetext>Comment on attachment 189788
Patch

You may need to roll forward the Chromium revision in Source/WebKit/chromium/DEPS in order to pick up the use_arm_fft gyp variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843607</commentid>
    <comment_count>9</comment_count>
      <attachid>189788</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-02-27 16:20:17 -0800</bug_when>
    <thetext>Comment on attachment 189788
Patch

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

The FFT code itself seems pretty straight-forward.  Have you been able to run your code against the Web Audio layout tests, especially &quot;convolution-mono-mono.html&quot;??    Somebody like Tony Chang should review the .gyp file changes, since I&apos;m not the best reviewer for that part.

Seems like this shouldn&apos;t land until the actual chromium third_party library is in place, R- for right now

&gt; Source/WebCore/ChangeLog:3
&gt; +        Add support for using ARM FFT in WebAudio

Instead of using the term &quot;ARM FFT&quot; I think it&apos;s better to be more specific.  For example, in the different FFTFrame implementations, we don&apos;t have one called FFTFrameIntel, since there are several different library back-ends which target x86.

I&apos;m not sure what the best name is.  Maybe it&apos;s &quot;OpenMax&quot;?  But it should be more specific since it&apos;s possible there could be different &quot;ARM&quot; libraries.

This name change should be taken into account for the ChangeLog comment, the file-name FFTFrameARM, WTF_USE_WEBAUDIO_ARMFFT, etc.

&gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:41
&gt; +

nit: extra blank line

&gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:173
&gt; +

nit: extra blank line

&gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:191
&gt; +    int bufSize;

bufSize should be defined just before usage (line 195)

&gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:192
&gt; +    OMXResult status;

nit: this line should be merged with line 195

&gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:193
&gt; +    OMXFFTSpec_R_F32* context = 0;

context should be defined as late as possible (just before 197)

&gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:198
&gt; +        context = (OMXFFTSpec_R_F32*) malloc(bufSize);

use static_cast&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844177</commentid>
    <comment_count>10</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-02-28 10:13:03 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 189788 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189788&amp;action=review
&gt; 
&gt; The FFT code itself seems pretty straight-forward.  Have you been able to run your code against the Web Audio layout tests, especially &quot;convolution-mono-mono.html&quot;??    Somebody like Tony Chang should review the .gyp file changes, since I&apos;m not the best reviewer for that part.
&gt; 
&gt; Seems like this shouldn&apos;t land until the actual chromium third_party library is in place, R- for right now

When the library is in place, I&apos;ll update this code accordingly.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Add support for using ARM FFT in WebAudio
&gt; 
&gt; Instead of using the term &quot;ARM FFT&quot; I think it&apos;s better to be more specific.  For example, in the different FFTFrame implementations, we don&apos;t have one called FFTFrameIntel, since there are several different library back-ends which target x86.
&gt; 
&gt; I&apos;m not sure what the best name is.  Maybe it&apos;s &quot;OpenMax&quot;?  But it should be more specific since it&apos;s possible there could be different &quot;ARM&quot; libraries.

How about &quot;OpenMAX_DL&quot;, since that is the actual name of the OpenMAX spec/library that we are using.
&gt; 
&gt; This name change should be taken into account for the ChangeLog comment, the file-name FFTFrameARM, WTF_USE_WEBAUDIO_ARMFFT, etc.

Yes, I will update the names accordingly.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:41
&gt; &gt; +
&gt; 
&gt; nit: extra blank line
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:173
&gt; &gt; +
&gt; 
&gt; nit: extra blank line
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:191
&gt; &gt; +    int bufSize;
&gt; 
&gt; bufSize should be defined just before usage (line 195)
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:192
&gt; &gt; +    OMXResult status;
&gt; 
&gt; nit: this line should be merged with line 195
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:193
&gt; &gt; +    OMXFFTSpec_R_F32* context = 0;
&gt; 
&gt; context should be defined as late as possible (just before 197)
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:198
&gt; &gt; +        context = (OMXFFTSpec_R_F32*) malloc(bufSize);
&gt; 
&gt; use static_cast&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844289</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-02-28 11:40:49 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 189788 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189788&amp;action=review
&gt; &gt; 
&gt; &gt; The FFT code itself seems pretty straight-forward.  Have you been able to run your code against the Web Audio layout tests, especially &quot;convolution-mono-mono.html&quot;??    Somebody like Tony Chang should review the .gyp file changes, since I&apos;m not the best reviewer for that part.
&gt; &gt; 
&gt; &gt; Seems like this shouldn&apos;t land until the actual chromium third_party library is in place, R- for right now
&gt; 
&gt; When the library is in place, I&apos;ll update this code accordingly.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; +        Add support for using ARM FFT in WebAudio
&gt; &gt; 
&gt; &gt; Instead of using the term &quot;ARM FFT&quot; I think it&apos;s better to be more specific.  For example, in the different FFTFrame implementations, we don&apos;t have one called FFTFrameIntel, since there are several different library back-ends which target x86.
&gt; &gt; 
&gt; &gt; I&apos;m not sure what the best name is.  Maybe it&apos;s &quot;OpenMax&quot;?  But it should be more specific since it&apos;s possible there could be different &quot;ARM&quot; libraries.
&gt; 
&gt; How about &quot;OpenMAX_DL&quot;, since that is the actual name of the OpenMAX spec/library that we are using.

Seems ok with me.  I&apos;m not sure about the &quot;_&quot; as far as the style guide goes.  Maybe Ken Russell or others would have an opinion there.

&gt; &gt; 
&gt; &gt; This name change should be taken into account for the ChangeLog comment, the file-name FFTFrameARM, WTF_USE_WEBAUDIO_ARMFFT, etc.
&gt; 
&gt; Yes, I will update the names accordingly.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:41
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; nit: extra blank line
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:173
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; nit: extra blank line
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:191
&gt; &gt; &gt; +    int bufSize;
&gt; &gt; 
&gt; &gt; bufSize should be defined just before usage (line 195)
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:192
&gt; &gt; &gt; +    OMXResult status;
&gt; &gt; 
&gt; &gt; nit: this line should be merged with line 195
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:193
&gt; &gt; &gt; +    OMXFFTSpec_R_F32* context = 0;
&gt; &gt; 
&gt; &gt; context should be defined as late as possible (just before 197)
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:198
&gt; &gt; &gt; +        context = (OMXFFTSpec_R_F32*) malloc(bufSize);
&gt; &gt; 
&gt; &gt; use static_cast&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848083</commentid>
    <comment_count>12</comment_count>
      <attachid>191568</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-05 14:35:26 -0800</bug_when>
    <thetext>Created attachment 191568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848202</commentid>
    <comment_count>13</comment_count>
      <attachid>191593</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-05 16:10:48 -0800</bug_when>
    <thetext>Created attachment 191593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849018</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-03-06 10:21:02 -0800</bug_when>
    <thetext>Is this ready for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849064</commentid>
    <comment_count>15</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-06 10:51:45 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Is this ready for review?

Almost.  I need to make one more update due to a change in the name of the FFT library.  I&apos;ll upload that shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849068</commentid>
    <comment_count>16</comment_count>
      <attachid>191793</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-06 10:57:25 -0800</bug_when>
    <thetext>Created attachment 191793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849107</commentid>
    <comment_count>17</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-06 11:15:07 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 189788 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189788&amp;action=review
&gt; 
&gt; The FFT code itself seems pretty straight-forward.  Have you been able to run your code against the Web Audio layout tests, especially &quot;convolution-mono-mono.html&quot;??    Somebody like Tony Chang should review the .gyp file changes, since I&apos;m not the best reviewer for that part.

I have not yet been able to run the webaudio layout tests, but I did run convolution-mono-mono.html which passes.

&gt; 
&gt; Seems like this shouldn&apos;t land until the actual chromium third_party library is in place, R- for right now
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Add support for using ARM FFT in WebAudio
&gt; 
&gt; Instead of using the term &quot;ARM FFT&quot; I think it&apos;s better to be more specific.  For example, in the different FFTFrame implementations, we don&apos;t have one called FFTFrameIntel, since there are several different library back-ends which target x86.
&gt; 
&gt; I&apos;m not sure what the best name is.  Maybe it&apos;s &quot;OpenMax&quot;?  But it should be more specific since it&apos;s possible there could be different &quot;ARM&quot; libraries.
&gt; 
&gt; This name change should be taken into account for the ChangeLog comment, the file-name FFTFrameARM, WTF_USE_WEBAUDIO_ARMFFT, etc.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:41
&gt; &gt; +
&gt; 
&gt; nit: extra blank line
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:173
&gt; &gt; +
&gt; 
&gt; nit: extra blank line
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:191
&gt; &gt; +    int bufSize;
&gt; 
&gt; bufSize should be defined just before usage (line 195)
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:192
&gt; &gt; +    OMXResult status;
&gt; 
&gt; nit: this line should be merged with line 195
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:193
&gt; &gt; +    OMXFFTSpec_R_F32* context = 0;
&gt; 
&gt; context should be defined as late as possible (just before 197)
&gt; 
&gt; &gt; Source/WebCore/platform/audio/android/FFTFrameARM.cpp:198
&gt; &gt; +        context = (OMXFFTSpec_R_F32*) malloc(bufSize);
&gt; 
&gt; use static_cast&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849202</commentid>
    <comment_count>18</comment_count>
      <attachid>191793</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-06 12:45:37 -0800</bug_when>
    <thetext>Comment on attachment 191793
Patch

Attachment 191793 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17057081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849245</commentid>
    <comment_count>19</comment_count>
      <attachid>191793</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-06 13:26:22 -0800</bug_when>
    <thetext>Comment on attachment 191793
Patch

Please review when you can.  I believe all review comments have been addressed.  Also, please note that this cannot be committed until https://codereview.chromium.org/12260023/  lands, which adds the required use_openmax_dl_fft gyp variable.  This is what is currently causing the cr-android bot to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849468</commentid>
    <comment_count>20</comment_count>
      <attachid>191793</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-06 16:55:10 -0800</bug_when>
    <thetext>Comment on attachment 191793
Patch

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

Please get a green cr-android before landing this patch (i.e., land the chromium side change, roll WebKit DEPS, reupload the patch).

&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:1941
&gt; +            [&apos;include&apos;, &apos;platform/audio/android/FFTFrameOpenMAXDL\\.cpp$&apos;],

Nit: It&apos;s probably a bit better to name this file platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp.  It looks like we don&apos;t have any other android subdirectories (since they are part of the chromium port) and we have a filename regex rule that already handles files that end in Android.cpp.  Which means you don&apos;t need this line if the filename ends in Android.cpp.

&gt; Source/WebKit/chromium/features.gypi:229
&gt; +      [&apos;OS!=&quot;mac&quot;&apos;, {
&gt; +        &apos;conditions&apos; : [
&gt; +          [&apos;OS==&quot;android&quot;&apos;, {

Nit: The nesting here is confusing.  I would keep the OS!=&quot;android&quot; and OS!=&quot;mac&quot; section and add a section below OS==&quot;android&quot; that is OS==&quot;android&quot; and use_openmax_dl_fft!=0 for setting WTF_USE_WEBAUDIO_OPENMAX_DL_FFT=1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850317</commentid>
    <comment_count>21</comment_count>
      <attachid>192053</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-07 11:22:13 -0800</bug_when>
    <thetext>Created attachment 192053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850319</commentid>
    <comment_count>22</comment_count>
      <attachid>191793</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-07 11:24:14 -0800</bug_when>
    <thetext>Comment on attachment 191793
Patch

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

&gt;&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:1941
&gt;&gt; +            [&apos;include&apos;, &apos;platform/audio/android/FFTFrameOpenMAXDL\\.cpp$&apos;],
&gt; 
&gt; Nit: It&apos;s probably a bit better to name this file platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp.  It looks like we don&apos;t have any other android subdirectories (since they are part of the chromium port) and we have a filename regex rule that already handles files that end in Android.cpp.  Which means you don&apos;t need this line if the filename ends in Android.cpp.

Renamed file as suggested.  Updated WebCore.gypi with the new name.

&gt;&gt; Source/WebKit/chromium/features.gypi:229
&gt;&gt; +          [&apos;OS==&quot;android&quot;&apos;, {
&gt; 
&gt; Nit: The nesting here is confusing.  I would keep the OS!=&quot;android&quot; and OS!=&quot;mac&quot; section and add a section below OS==&quot;android&quot; that is OS==&quot;android&quot; and use_openmax_dl_fft!=0 for setting WTF_USE_WEBAUDIO_OPENMAX_DL_FFT=1.

Yes, this is clearer.  Fixed as sugggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850366</commentid>
    <comment_count>23</comment_count>
      <attachid>192053</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-07 12:15:59 -0800</bug_when>
    <thetext>Comment on attachment 192053
Patch

Attachment 192053 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17013432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862825</commentid>
    <comment_count>24</comment_count>
      <attachid>194868</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-25 09:14:26 -0700</bug_when>
    <thetext>Created attachment 194868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862846</commentid>
    <comment_count>25</comment_count>
      <attachid>194868</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2013-03-25 09:35:15 -0700</bug_when>
    <thetext>Comment on attachment 194868
Patch

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

&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:285
&gt; +         &apos;&lt;(DEPTH)/third_party/openmax_dl&apos;

Where does the openmax_dl directory come from? The directory doesn&apos;t seem to exist in the Chromium tree, nor is defined in the DEPS files..

&gt; Source/WebKit/chromium/features.gypi:236
&gt; +          &apos;ENABLE_WEB_AUDIO=1&apos;,

So building Chromium with use_openmax_dl_fft=1 enables the Web Audio API for Android? I don&apos;t think this is clear from the variable&apos;s name, nor is it documented in common.gypi. Should a comment be added somewhere to clarify this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862851</commentid>
    <comment_count>26</comment_count>
      <attachid>194868</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-25 09:43:03 -0700</bug_when>
    <thetext>Comment on attachment 194868
Patch

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

&gt;&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:285
&gt;&gt; +         &apos;&lt;(DEPTH)/third_party/openmax_dl&apos;
&gt; 
&gt; Where does the openmax_dl directory come from? The directory doesn&apos;t seem to exist in the Chromium tree, nor is defined in the DEPS files..

The DEPS change that adds the openmax_dl directory was reverted due to a license check failure.  I&apos;m working on that.

&gt;&gt; Source/WebKit/chromium/features.gypi:236
&gt;&gt; +          &apos;ENABLE_WEB_AUDIO=1&apos;,
&gt; 
&gt; So building Chromium with use_openmax_dl_fft=1 enables the Web Audio API for Android? I don&apos;t think this is clear from the variable&apos;s name, nor is it documented in common.gypi. Should a comment be added somewhere to clarify this?

Yes, I can add a comment.  

Setting use_openmax_dl_fft=1 is enough to get oscillators and most parts of webaudio working.  The other part (decoding audio files from memory) is not yet done, but it would always be compiled in since it only depends on existing functionality in chromium and Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862902</commentid>
    <comment_count>27</comment_count>
      <attachid>194886</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-25 10:50:50 -0700</bug_when>
    <thetext>Created attachment 194886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862903</commentid>
    <comment_count>28</comment_count>
      <attachid>194868</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-25 10:53:19 -0700</bug_when>
    <thetext>Comment on attachment 194868
Patch

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

&gt;&gt;&gt; Source/WebKit/chromium/features.gypi:236
&gt;&gt;&gt; +          &apos;ENABLE_WEB_AUDIO=1&apos;,
&gt;&gt; 
&gt;&gt; So building Chromium with use_openmax_dl_fft=1 enables the Web Audio API for Android? I don&apos;t think this is clear from the variable&apos;s name, nor is it documented in common.gypi. Should a comment be added somewhere to clarify this?
&gt; 
&gt; Yes, I can add a comment.  
&gt; 
&gt; Setting use_openmax_dl_fft=1 is enough to get oscillators and most parts of webaudio working.  The other part (decoding audio files from memory) is not yet done, but it would always be compiled in since it only depends on existing functionality in chromium and Android.

Comment added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863185</commentid>
    <comment_count>29</comment_count>
      <attachid>194886</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-03-25 17:06:16 -0700</bug_when>
    <thetext>Comment on attachment 194886
Patch

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

Looks ok if comments are addressed --- I&apos;m trusting that the layout test &quot;convolution-mono-mono.html&quot; has been run and passes.

&gt; Source/WebCore/platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp:136
&gt; +        for (unsigned k = 1; k &lt; m_FFTSize / 2; ++k) {

It&apos;s better to calculate m_FFTSize / 2 outside of this loop and put in local var.

&gt; Source/WebCore/platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp:154
&gt; +        for (unsigned k = 1; k &lt; m_FFTSize / 2; ++k) {

It&apos;s better to calculate m_FFTSize / 2 outside of this loop and put in local var.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863727</commentid>
    <comment_count>30</comment_count>
      <attachid>195099</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-26 09:28:39 -0700</bug_when>
    <thetext>Created attachment 195099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863728</commentid>
    <comment_count>31</comment_count>
      <attachid>194886</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-26 09:29:22 -0700</bug_when>
    <thetext>Comment on attachment 194886
Patch

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

&gt;&gt; Source/WebCore/platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp:136
&gt;&gt; +        for (unsigned k = 1; k &lt; m_FFTSize / 2; ++k) {
&gt; 
&gt; It&apos;s better to calculate m_FFTSize / 2 outside of this loop and put in local var.

Done.

&gt;&gt; Source/WebCore/platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp:154
&gt;&gt; +        for (unsigned k = 1; k &lt; m_FFTSize / 2; ++k) {
&gt; 
&gt; It&apos;s better to calculate m_FFTSize / 2 outside of this loop and put in local var.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863732</commentid>
    <comment_count>32</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-26 09:32:26 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 194886 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194886&amp;action=review
&gt; 
&gt; Looks ok if comments are addressed --- I&apos;m trusting that the layout test &quot;convolution-mono-mono.html&quot; has been run and passes.

Comments addressed.  Yes, the convolution-mono-mono test passes, except I ran a shorter version.  I will address this test and the remaining webaudio tests when the rest of the Android support is implemented.

&gt; 
&gt; &gt; Source/WebCore/platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp:136
&gt; &gt; +        for (unsigned k = 1; k &lt; m_FFTSize / 2; ++k) {
&gt; 
&gt; It&apos;s better to calculate m_FFTSize / 2 outside of this loop and put in local var.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp:154
&gt; &gt; +        for (unsigned k = 1; k &lt; m_FFTSize / 2; ++k) {
&gt; 
&gt; It&apos;s better to calculate m_FFTSize / 2 outside of this loop and put in local var.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863951</commentid>
    <comment_count>33</comment_count>
      <attachid>195149</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-26 13:20:46 -0700</bug_when>
    <thetext>Created attachment 195149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865746</commentid>
    <comment_count>34</comment_count>
      <attachid>195630</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-03-28 13:18:52 -0700</bug_when>
    <thetext>Created attachment 195630
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865751</commentid>
    <comment_count>35</comment_count>
      <attachid>195630</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 13:20:57 -0700</bug_when>
    <thetext>Comment on attachment 195630
Patch for landing

Rejecting attachment 195630 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 195630, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

crogers@google.com found in /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog does not appear to be a valid reviewer according to committers.py.
/mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-commit-queue.appspot.com/results/17288733</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868171</commentid>
    <comment_count>36</comment_count>
      <attachid>196212</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2013-04-02 12:42:42 -0700</bug_when>
    <thetext>Created attachment 196212
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868203</commentid>
    <comment_count>37</comment_count>
      <attachid>196212</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 13:23:13 -0700</bug_when>
    <thetext>Comment on attachment 196212
Patch for landing

Clearing flags on attachment: 196212

Committed r147491: &lt;http://trac.webkit.org/changeset/147491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868204</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 13:23:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188194</attachid>
            <date>2013-02-13 15:17:03 -0800</date>
            <delta_ts>2013-02-22 10:03:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130213151332.patch</filename>
            <type>text/plain</type>
            <size>14430</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyZGM3MTc5MDA4OTlh
OTQyZjY0ZmE0OWI5OGM2NzE3MjY4M2UyOC4uMTZmZTY4ZGNlNDA5Njc4NWFmMjY0MmQwYTg2NjA2
MTI1NzU3NjI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTEzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oOgorICAgICAgICAoRkZURnJh
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZUFSTS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6RkZURnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6OmNsZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6On5GRlRGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlwbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0lu
dmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OnJlYWxEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbWFnRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRG
cmFtZTo6Y29udGV4dEZvclNpemUpOgorCiAyMDEzLTAyLTEyICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgIEFYOiBjcmFzaCB3aGVuIGFjY2Vzc2luZyBB
Y2Nlc3NpYmlsaXR5U2Nyb2xsYmFyIGFmdGVyIHBhZ2UgaGFzIGJlZW4gdW5sb2FkZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjczZWIyMGQ5OTI2OWQ2ZTg4YjYyYTZkNDBlMjRkZDNk
YjAwMDc2NC4uNzQxZTVhMWYyMmZhODFjYWFkMGE5NzlkMThmZmM4MmZiMWUxNTk5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0xMyAgUmF5bW9u
ZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5n
IEFSTSBGRlQgaW4gV2ViQXVkaW8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTc1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMy0wMi0xMiAgWW9zaGlmdW1pIElu
b3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEJ1aWxkIGZp
eCBmb3IgQ2hyb21pdW0tV2luLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApp
bmRleCBlZTRjNjI3NGY3NTFlYzZiNDMyYjc0MWRiNzJlMjMzZTQyZDRjYzEzLi5hY2VmNWNjMzJl
NzY5YzA0NWM5OTk2ODU5N2VkZjc2MWViYTZjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cApAQCAtMjc5LDYgKzI3OSwxMSBAQAogICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291cmNlczE5LmNwcCcs
CiAgICAgICAgIF0sCiAgICAgICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQiIGFuZCB1c2VfYXJt
X2ZmdCE9MCcsIHsKKyAgICAgICAnd2ViY29yZV9pbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAn
PChERVBUSCkvdGhpcmRfcGFydHkvb3Blbm1heCcKKyAgICAgICBdCisgICAgIH1dLAogICAgIF0s
CiAgIH0sICAjIHZhcmlhYmxlcwogCkBAIC0xNTc1LDYgKzE1ODAsMTMgQEAKICAgICAgICAgICAg
ICc8KGNocm9taXVtX3NyY19kaXIpL3RoaXJkX3BhcnR5L2ZmbXBlZy9mZm1wZWcuZ3lwOmZmbXBl
ZycsCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCisgICAgICAgWyciV1RGX1VTRV9XRUJBVURJ
T19BUk1GRlQ9MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBl
bmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAg
ICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heCcsCisgICAgICAg
ICAgIF0sCisgICAgICAgICB9LAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRvd3Mgc2hhcmVk
IGJ1aWxkZXIgbmVlZHMgZXh0cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBbJ09TPT0id2lu
IiBhbmQgIldURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVmaW5lcycsIHsK
ICAgICAgICAgICAnZXhwb3J0X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKQEAgLTE5MjIsNiArMTkz
NCw4IEBACiAgICAgICAgICAgICBbJ2V4Y2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSWNvbkNocm9taXVtXFwuY3BwJCddLAogICAgICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZETVhQYXJzZXJcXC5jcHAkJ10sCiAgICAgICAgICAgICBb
J2V4Y2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q2FjaGVTa2lhXFwuY3BwJCdd
LAorICAgICAgICAgICAgIyBXZSBjYW4gdXNlIHRoaXMgZm9yIHRoZSBmYXN0IEFSTSBGRlQuCisg
ICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZUFS
TVxcLmNwcCQnXSwKICAgICAgICAgICBdLAogICAgICAgICB9LCB7ICMgT1MhPSJhbmRyb2lkIgog
ICAgICAgICAgICdzb3VyY2VzLyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4OTkzZDE1Zjg4MmEy
MTRkNGMzZGQwMmZlZmY4NjU2ODRmOTQ5YzAyLi41YTc5MzFlMmQ3MmRhNThkZDgyNzBjZDJkZjFm
N2Q0OTk2YjkyYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjU1LDYgKzM2NTUsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vYXVkaW8vWmVyb1BvbGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9a
ZXJvUG9sZS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1l
QVJNLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vQXVkaW9CdXND
aHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlv
RGVzdGluYXRpb25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2No
cm9taXVtL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAppbmRleCAwYTZkODczNDgyZGY3YzkzZDhkY2EwODU1MGI5
YWE0ZTIxNzFkOGNmLi4yYmQ3N2U5YjA3NDZmYWVhOTk2NWVjNWJjZThjYmUyZjBkMjVhN2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCkBAIC02MCw3ICs2
MCw3IEBAIHB1YmxpYzoKICAgICAgIAogICAgICAgICB1bnNpZ25lZCBpbml0aWFsU2l6ZSA9IHNp
emVvZihUKSAqIG47CiAKLSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVTRShXRUJBVURJ
T19GRk1QRUcpIHx8IFVTRShXRUJBVURJT19BUk1GRlQpCiAgICAgICAgIGNvbnN0IHNpemVfdCBh
bGlnbm1lbnQgPSAzMjsKICNlbHNlCiAgICAgICAgIGNvbnN0IHNpemVfdCBhbGlnbm1lbnQgPSAx
NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCmluZGV4IDZjMTUzNDlk
OTcxODY4OWUzNTM5M2Y4YzBlNWRlYjJhNTgyM2E0NGEuLjc5YzM1MWY3ZDE5MTk1MzQxYTBiYmZm
OTY2YzE5OTZjMTU5MjlkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0ZGVEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJh
bWUuaApAQCAtNTQsOSArNTQsMTQgQEAgR19CRUdJTl9ERUNMUwogR19FTkRfREVDTFMKICNlbmRp
ZiAvLyBVU0UoV0VCQVVESU9fR1NUUkVBTUVSKQogCi0jaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykK
KyNpZiBVU0UoV0VCQVVESU9fQVJNRkZUKQorLy8gV0VCQVVESU9fQVJNRkZUIG92ZXJyaWRlcyBX
RUJBVURJT19GRk1QRUcgYmVjYXVzZSB3ZSB3YW50IHRvIHVzZSBBUk0ncyBGRlQgaW5zdGVhZCBv
ZiBGRk1QRUcncworLy8gRkZULgorI2luY2x1ZGUgImRsL3NwL2FwaS9hcm1TUC5oIgorI2luY2x1
ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykKIHN0cnVj
dCBSREZUQ29udGV4dDsKLSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2VuZGlmCiAK
ICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3OCw2ICsxODMsMTcgQEAgcHJp
dmF0ZToKICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNlbmRpZiAvLyBVU0UoV0VC
QVVESU9fSVBQKQogCisjaWYgVVNFKFdFQkFVRElPX0FSTUZGVCkKKyAgICBzdGF0aWMgT01YRkZU
U3BlY19SX0YzMiogY29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZGVFNpemUpOworCisgICAg
T01YRkZUU3BlY19SX0YzMiogbV9mb3J3YXJkQ29udGV4dDsKKyAgICBPTVhGRlRTcGVjX1JfRjMy
KiBtX2ludmVyc2VDb250ZXh0OworCisgICAgQXVkaW9GbG9hdEFycmF5IG1fY29tcGxleERhdGE7
CisgICAgQXVkaW9GbG9hdEFycmF5IG1fcmVhbERhdGE7CisgICAgQXVkaW9GbG9hdEFycmF5IG1f
aW1hZ0RhdGE7CisjZW5kaWYKKyAgICAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0
dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcApp
bmRleCA2YTI3YmU1ZjY3OWVmMDQzNDA2OGVjOTI1NWQzMjlhZmQ4NDczOGM2Li4zYTEwOGFjMzQw
OTk5YmUwMWRiZjk2ZjFjZjZjZWUwZmIwZTJjYjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2lmIEVO
QUJMRShXRUJfQVVESU8pCiAKLSNpZiAhT1MoREFSV0lOKSAmJiAhVVNFKFdFQkFVRElPX01LTCkg
JiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9fR1NUUkVBTUVSKSAmJiAh
VVNFKFdFQkFVRElPX0lQUCkKKyNpZiAhT1MoREFSV0lOKSAmJiAhVVNFKFdFQkFVRElPX01LTCkg
JiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9fR1NUUkVBTUVSKSAmJiAh
VVNFKFdFQkFVRElPX0lQUCkgJiYgIVVTRShXRUJBVURJT19BUk1GRlQpCiAKICNpbmNsdWRlICJG
RlRGcmFtZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9h
bmRyb2lkL0ZGVEZyYW1lQVJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Fu
ZHJvaWQvRkZURnJhbWVBUk0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MzYzOGUyNmM1NzJkMDMxOGQ3YzFk
ZjMyYWRlZGZhMzkyNmYwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1lQVJNLmNwcApAQCAtMCwwICsxLDIwOSBAQAorLyog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworI2lmIE9TKEFO
RFJPSUQpICYmIFVTRShXRUJBVURJT19BUk1GRlQpCisKKyNpbmNsdWRlICJGRlRGcmFtZS5oIgor
CisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKKyNpbmNs
dWRlICJkbC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvb214U1AuaCIKKwor
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworCitj
b25zdCBpbnQga01heEZGVFBvdzJTaXplID0gMTU7CisKKy8vIE5vcm1hbCBjb25zdHJ1Y3Rvcjog
YWxsb2NhdGVzIGZvciBhIGdpdmVuIGZmdFNpemUuCitGRlRGcmFtZTo6RkZURnJhbWUodW5zaWdu
ZWQgZmZ0U2l6ZSkKKyAgICA6IG1fRkZUU2l6ZShmZnRTaXplKQorICAgICwgbV9sb2cyRkZUU2l6
ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obG9nMihmZnRTaXplKSkpCisgICAgLCBtX2ZvcndhcmRD
b250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRh
KGZmdFNpemUpCisgICAgLCBtX3JlYWxEYXRhKGZmdFNpemUgLyAyKQorICAgICwgbV9pbWFnRGF0
YShmZnRTaXplIC8gMikKK3sKKyAgICAvLyBXZSBvbmx5IGFsbG93IHBvd2VyIG9mIHR3by4KKyAg
ICBBU1NFUlQoMVVMIDw8IG1fbG9nMkZGVFNpemUgPT0gbV9GRlRTaXplKTsKKworICAgIG1fZm9y
d2FyZENvbnRleHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKyAgICBtX2ludmVy
c2VDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7Cit9CisKKy8vIENyZWF0
ZXMgYSBibGFuay9lbXB0eSBmcmFtZSAoaW50ZXJwb2xhdGUoKSBtdXN0IGxhdGVyIGJlIGNhbGxl
ZCkuCitGRlRGcmFtZTo6RkZURnJhbWUoKQorICAgIDogbV9GRlRTaXplKDApCisgICAgLCBtX2xv
ZzJGRlRTaXplKDApCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VD
b250ZXh0KDApCit7Cit9CisKKy8vIENvcHkgY29uc3RydWN0b3IuCitGRlRGcmFtZTo6RkZURnJh
bWUoY29uc3QgRkZURnJhbWUmIGZyYW1lKQorICAgIDogbV9GRlRTaXplKGZyYW1lLm1fRkZUU2l6
ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoZnJhbWUubV9sb2cyRkZUU2l6ZSkKKyAgICAsIG1fZm9y
d2FyZENvbnRleHQoMCkKKyAgICAsIG1faW52ZXJzZUNvbnRleHQoMCkKKyAgICAsIG1fY29tcGxl
eERhdGEoZnJhbWUubV9GRlRTaXplKQorICAgICwgbV9yZWFsRGF0YShmcmFtZS5tX0ZGVFNpemUg
LyAyKQorICAgICwgbV9pbWFnRGF0YShmcmFtZS5tX0ZGVFNpemUgLyAyKQoreworICAgIG1fZm9y
d2FyZENvbnRleHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKyAgICBtX2ludmVy
c2VDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisKKyAgICAvLyBDb3B5
L3NldHVwIGZyYW1lIGRhdGEuCisgICAgdW5zaWduZWQgbmJ5dGVzID0gc2l6ZW9mKGZsb2F0KSAq
IChtX0ZGVFNpemUgLyAyKTsKKyAgICBtZW1jcHkocmVhbERhdGEoKSwgZnJhbWUucmVhbERhdGEo
KSwgbmJ5dGVzKTsKKyAgICBtZW1jcHkoaW1hZ0RhdGEoKSwgZnJhbWUuaW1hZ0RhdGEoKSwgbmJ5
dGVzKTsKK30KKwordm9pZCBGRlRGcmFtZTo6aW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgRkZU
RnJhbWU6OmNsZWFudXAoKQoreworfQorCitGRlRGcmFtZTo6fkZGVEZyYW1lKCkKK3sKKyAgICBm
cmVlKG1fZm9yd2FyZENvbnRleHQpOworICAgIGZyZWUobV9pbnZlcnNlQ29udGV4dCk7Cit9CisK
K3ZvaWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKK3sKKyAgICBG
RlRGcmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAgRkZURnJhbWUmIGZyYW1lMiA9IGNvbnN0X2Nh
c3Q8RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBmbG9hdCogcmVhbFAxID0gZnJhbWUxLnJlYWxE
YXRhKCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZyYW1lMS5pbWFnRGF0YSgpOworICAgIGNvbnN0
IGZsb2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERhdGEoKTsKKyAgICBjb25zdCBmbG9hdCogaW1h
Z1AyID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAgICB1bnNpZ25lZCBoYWxmU2l6ZSA9IGZmdFNp
emUoKSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSByZWFsUDFbMF07CisgICAgZmxvYXQgaW1hZzAg
PSBpbWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRoOjp6dm11bChyZWFsUDEsIGltYWdQMSwgcmVh
bFAyLCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBoYWxmU2l6ZSk7IAorCisgICAgLy8gTXVsdGlw
bHkgdGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBvbmVudAorICAgIHJlYWxQMVswXSA9IHJlYWww
ICogcmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9IGltYWcwICogaW1hZ1AyWzBdOworCisgICAg
Ly8gU2NhbGUgYWNjb3VudHMgdGhlIHBlY3VsaWFyIHNjYWxpbmcgb2YgdmVjTGliIG9uIHRoZSBN
YWMuCisgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSByaWdodCBzY2FsaW5nIGFsbCB0aGUgd2F5IGJh
Y2sgdG8gaW52ZXJzZSBGRlQuCisgICAgLy8gRklYTUU6IGlmIHdlIGNoYW5nZSB0aGUgc2NhbGlu
ZyBvbiB0aGUgTWFjIHRoZW4gdGhpcyBzY2FsZQorICAgIC8vIGZhY3RvciB3aWxsIG5lZWQgdG8g
Y2hhbmdlIHRvby4KKyAgICBmbG9hdCBzY2FsZSA9IDAuNWY7CisKKyAgICBWZWN0b3JNYXRoOjp2
c211bChyZWFsUDEsIDEsICZzY2FsZSwgcmVhbFAxLCAxLCBoYWxmU2l6ZSk7CisgICAgVmVjdG9y
TWF0aDo6dnNtdWwoaW1hZ1AxLCAxLCAmc2NhbGUsIGltYWdQMSwgMSwgaGFsZlNpemUpOworfQor
Cit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9hdCogZGF0YSkKK3sKKyAgICBBU1NFUlQo
bV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9mb3J3YXJkQ29udGV4dCkgeworICAgICAg
ICBBdWRpb0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZGVFNpemUgKyAyKTsKKworICAgICAgICBv
bXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwgY29tcGxleEZGVC5kYXRhKCksIG1fZm9y
d2FyZENvbnRleHQpOworCisgICAgICAgIC8vIFNwbGl0IEZGVCBkYXRhIGludG8gcmVhbCBhbmQg
aW1hZ2luYXJ5IGFycmF5cy4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8IG1fRkZU
U2l6ZSAvIDI7ICsraykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMiAqIGs7CisgICAgICAg
ICAgICBtX3JlYWxEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleF07CisgICAgICAgICAgICBtX2lt
YWdEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleCArIDFdOworICAgICAgICB9CisgICAgICAgIG1f
cmVhbERhdGFbMV0gPSBjb21wbGV4RkZUWzBdOworICAgICAgICBtX2ltYWdEYXRhWzBdID0gY29t
cGxleEZGVFttX0ZGVFNpemUgKyAxXTsKKyAgICB9Cit9CisKK3ZvaWQgRkZURnJhbWU6OmRvSW52
ZXJzZUZGVChmbG9hdCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9pbnZlcnNlQ29udGV4dCk7CisK
KyAgICBpZiAobV9pbnZlcnNlQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgZmZ0
RGF0YShtX0ZGVFNpemUgKyAyKTsKKworICAgICAgICAvLyBQYWNrIHRoZSByZWFsIGFuZCBpbWFn
aW5hcnkgZGF0YSBpbnRvIHRoZSBjb21wbGV4IGFycmF5IGZvcm1hdAorICAgICAgICBmb3IgKHVu
c2lnbmVkIGsgPSAxOyBrIDwgbV9GRlRTaXplIC8gMjsgKytrKSB7CisgICAgICAgICAgICBpbnQg
aW5kZXggPSAyICogazsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFsRGF0YVtr
XTsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107CisgICAg
ICAgIH0KKyAgICAgICAgZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07CisgICAgICAgIGZmdERh
dGFbMV0gPSAwOworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRhWzBdOwor
ICAgICAgICBmZnREYXRhW21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAgb214U1Bf
RkZUSW52X0NDU1RvUl9GMzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVyc2VDb250
ZXh0KTsKKworICAgIH0KK30KKworZmxvYXQqIEZGVEZyYW1lOjpyZWFsRGF0YSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxEYXRhLmRhdGEoKSk7Cit9CisK
K2Zsb2F0KiBGRlRGcmFtZTo6aW1hZ0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdF9j
YXN0PGZsb2F0Kj4obV9pbWFnRGF0YS5kYXRhKCkpOworfQorCitPTVhGRlRTcGVjX1JfRjMyKiBG
RlRGcmFtZTo6Y29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZGVFNpemUpCit7CisgICAgQVNT
RVJUKGxvZzJGRlRTaXplKTsKKyAgICBBU1NFUlQobG9nMkZGVFNpemUgPCBrTWF4RkZUUG93MlNp
emUpOworICAgIGludCBidWZTaXplOworICAgIE9NWFJlc3VsdCBzdGF0dXM7CisgICAgT01YRkZU
U3BlY19SX0YzMiogY29udGV4dCA9IDA7CisKKyAgICBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZT
aXplX1JfRjMyKGxvZzJGRlRTaXplLCAmYnVmU2l6ZSk7CisKKyAgICBpZiAoc3RhdHVzID09IE9N
WF9TdHNfTm9FcnIpIHsKKyAgICAgICAgY29udGV4dCA9IChPTVhGRlRTcGVjX1JfRjMyKikgbWFs
bG9jKGJ1ZlNpemUpOworICAgICAgICBvbXhTUF9GRlRJbml0X1JfRjMyKGNvbnRleHQsIGxvZzJG
RlRTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gI2lmIE9TKEFORFJPSUQpICYmICFVU0UoV0VCQVVESU9f
RkZNUEVHKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQppbmRleCBmM2Y5ZmQ1MTkxMjNjODRlNDJmYjgxNDA4ZjRmNTE4OGNiOGQx
NzQ3Li42OTdkYzFmZjlhZWJjMmRiMjliYzFiZjM1ZDM2NmJiNGM4OGU0MTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xNzgsNyArMTc4LDYgQEAKICAgICAgICAgICAj
IEZJWE1FOiBEaXNhYmxlIG9uY2UgdGhlIGxpbmtpbmcgZXJyb3IgaGFzIGJlZW4gcmVzb2x2ZWQu
CiAgICAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2
MzYKICAgICAgICAgICAnRU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEnLAotICAgICAgICAgICdFTkFC
TEVfV0VCX0FVRElPPTAnLAogICAgICAgICAgICdXVEZfVVNFX05BVElWRV9GVUxMU0NSRUVOX1ZJ
REVPPTEnLAogICAgICAgICBdLAogICAgICAgICAnZW5hYmxlX3RvdWNoX2ljb25fbG9hZGluZyc6
IDEsCkBAIC0yMTcsOSArMjE2LDIzIEBACiAgICAgICAgIF0sCiAgICAgICB9XSwKICAgICAgICMg
TWFjIE9TIFggdXNlcyBBY2NlbGVyYXRlLmZyYW1ld29yayBGRlQgYnkgZGVmYXVsdCBpbnN0ZWFk
IG9mIEZGbXBlZy4KLSAgICAgIFsnT1MhPSJtYWMiIGFuZCBPUyE9ImFuZHJvaWQiJywgewotICAg
ICAgICAnZmVhdHVyZV9kZWZpbmVzJzogWwotICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElPX0ZG
TVBFRz0xJywKKyAgICAgIFsnT1MhPSJtYWMiJywgeworICAgICAgICAnY29uZGl0aW9ucycgOiBb
CisgICAgICAgICAgWydPUz09ImFuZHJvaWQiJywgeworICAgICAgICAgICAgJ2NvbmRpdGlvbnMn
OiBbCisgICAgICAgICAgICAgIFsndXNlX2FybV9mZnQhPTAnLCB7CisgICAgICAgICAgICAgICAg
J2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAgICAgICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElP
X0FSTUZGVD0xJywKKyAgICAgICAgICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTEnLAorICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgIH1dLAorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICB9LCB7CisgICAgICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAgICAgICAg
ICAgICdXVEZfVVNFX1dFQkFVRElPX0ZGTVBFRz0xJywKKyAgICAgICAgICAgICAgICdFTkFCTEVf
V0VCX0FVRElPPTEnLAorICAgICAgICAgICAgIF0sCisgICAgICAgICAgfV0sCiAgICAgICAgIF0s
CiAgICAgICB9XSwKICAgICAgIFsnT1M9PSJ3aW4iIG9yIE9TPT0iYW5kcm9pZCIgb3IgdXNlX3gx
MT09MScsIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189788</attachid>
            <date>2013-02-22 10:03:19 -0800</date>
            <delta_ts>2013-03-05 14:35:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130222095938.patch</filename>
            <type>text/plain</type>
            <size>14721</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVhZjE5YjMzODQ3NjA4
NTAzMzUwY2NkZDQ0ZDFjMDY4NGJlMjVkOC4uZDM2MjBhZDNhMzRlN2ZhOGZjN2FkMzg4NjJlN2Y4
OGUzZTZiOTRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTIyICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgYW5kCisgICAgICAgIEZGVEZy
YW1lQVJNLmNwcCB3aGVuIHVzZV9hcm1fZmZ0IGlzIGVuYWJsZWQuCisgICAgICAgICogV2ViQ29y
ZS5neXBpOiBBZGQgc291cmNlIEZGVEZyYW1lQVJNLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRl
KTogTmVlZCAzMi1ieXRlIGFsaWdudG1lbnQgd2l0aCB0aGUKKyAgICAgICAgQVJNIEZGVC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oOgorICAgICAgICAoRkZURnJhbWUpOiBT
dXBwb3J0IEFSTSBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3Bw
OiBTdXBwb3J0IEFSTSBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZy
YW1lQVJNLmNwcDogQWRkZWQuICBJbXBsZW1lbnRzIHRoZQorICAgICAgICBuZWNlc3NhcnkgaW50
ZXJmYWNlIHVzaW5nIHRoZSBBUk0gRkZUIHJvdXRpbmVzLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNsZWFu
dXApOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OmRvRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAg
ICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZG
VEZyYW1lOjppbWFnRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y29udGV4dEZv
clNpemUpOgorCiAyMDEzLTAyLTIxICBBbG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIE1hcmsgR3JhcGhpY3NMYXllcnMgYXMgb3BhcXVlIHdoZW4gcG9zc2li
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2ExYWQ5NzUyYmQ4OTZmNWIwMWRhMjFl
OGMyMjA0MjhjYTJjMjA0Ny4uOTEyYmNjYjEzOTkyNmU5NjNlOTk4NzY0NWM1YjIwNGNkOWZkODUz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0y
MiAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHVzaW5nIEFSTSBGRlQgaW4gV2ViQXVkaW8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTc1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaTogU3VwcG9ydCBidWlsZGluZyB3
aXRoIHRoZSBBUk0gRkZULgorCiAyMDEzLTAyLTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEdldCByaWQgb2YgcGFyc2Vk
VVJMIGluIHVpU291cmNlQ29kZSwgdXNlIG5hbWUgYW5kIHBhdGggZm9yIGRpc3BsYXlOYW1lIGlu
c3RlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IDczMDkwMzk3
NmMyNmM2ZTExNDIwOGNjNzk1MGJkN2VjMGJkZDY3NTQuLmU4YTU5Njg4ZjIzZjUxMWVmNmY5MDBj
ZTZkZjA1YzM0MGM5NWRlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CkBAIC0yODAsNiArMjgwLDExIEBACiAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9E
SVIpL3dlYmtpdC9iaW5kaW5ncy9WOERlcml2ZWRTb3VyY2VzMTkuY3BwJywKICAgICAgICAgXSwK
ICAgICAgIH1dLAorICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9hcm1fZmZ0IT0wJywgewor
ICAgICAgICd3ZWJjb3JlX2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgICc8KERFUFRIKS90aGly
ZF9wYXJ0eS9vcGVubWF4X2RsJworICAgICAgIF0KKyAgICAgfV0sCiAgICAgXSwKICAgfSwgICMg
dmFyaWFibGVzCiAKQEAgLTE1NzYsNiArMTU4MSwxNiBAQAogICAgICAgICAgICAgJzwoY2hyb21p
dW1fc3JjX2RpcikvdGhpcmRfcGFydHkvZmZtcGVnL2ZmbXBlZy5neXA6ZmZtcGVnJywKICAgICAg
ICAgICBdLAogICAgICAgICB9XSwKKyAgICAgICBbJyJXVEZfVVNFX1dFQkFVRElPX0FSTUZGVD0x
IiBpbiBmZWF0dXJlX2RlZmluZXMnLCB7CisgICAgICAgICAnZGlyZWN0X2RlcGVuZGVudF9zZXR0
aW5ncyc6IHsKKyAgICAgICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgICAgICAnPChj
aHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9vcGVubWF4X2RsJywKKyAgICAgICAgICAgXSwK
KyAgICAgICAgIH0sCisgICAgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAgICAnPChj
aHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9vcGVubWF4X2RsL2RsL2RsLmd5cDphcm1fZmZ0
JywKKyAgICAgICAgIF0sCisgICAgICAgfV0sCiAgICAgICAgICMgV2luZG93cyBzaGFyZWQgYnVp
bGRlciBuZWVkcyBleHRyYSBoZWxwIGZvciBsaW5rYWdlCiAgICAgICAgIFsnT1M9PSJ3aW4iIGFu
ZCAiV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgewogICAg
ICAgICAgICdleHBvcnRfZGVwZW5kZW50X3NldHRpbmdzJzogWwpAQCAtMTkyMyw2ICsxOTM4LDcg
QEAKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
Y29uQ2hyb21pdW1cXC5jcHAkJ10sCiAgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVkRNWFBhcnNlclxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnZXhj
bHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDYWNoZVNraWFcXC5jcHAkJ10sCisg
ICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZUFS
TVxcLmNwcCQnXSwKICAgICAgICAgICBdLAogICAgICAgICB9LCB7ICMgT1MhPSJhbmRyb2lkIgog
ICAgICAgICAgICdzb3VyY2VzLyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiYTU2YmNiMmUxMjUz
ZWIxNGI1YWMwNGE3OGE5YzI3OTk4OGZmZjQzLi5kYzcxZGIwZWM2OWUyY2NlNjUxODNkNDhlMDQ3
MTRlZTgzNjJjNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjcwLDYgKzM2NzAsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vYXVkaW8vWmVyb1BvbGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9a
ZXJvUG9sZS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1l
QVJNLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vQXVkaW9CdXND
aHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlv
RGVzdGluYXRpb25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2No
cm9taXVtL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAppbmRleCAwYTZkODczNDgyZGY3YzkzZDhkY2EwODU1MGI5
YWE0ZTIxNzFkOGNmLi4yYmQ3N2U5YjA3NDZmYWVhOTk2NWVjNWJjZThjYmUyZjBkMjVhN2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCkBAIC02MCw3ICs2
MCw3IEBAIHB1YmxpYzoKICAgICAgIAogICAgICAgICB1bnNpZ25lZCBpbml0aWFsU2l6ZSA9IHNp
emVvZihUKSAqIG47CiAKLSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVTRShXRUJBVURJ
T19GRk1QRUcpIHx8IFVTRShXRUJBVURJT19BUk1GRlQpCiAgICAgICAgIGNvbnN0IHNpemVfdCBh
bGlnbm1lbnQgPSAzMjsKICNlbHNlCiAgICAgICAgIGNvbnN0IHNpemVfdCBhbGlnbm1lbnQgPSAx
NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCmluZGV4IDU1YWQwOWJl
NjNmNTVlODhmMmE0MzhkNWU4M2UxYWQ0MWMxYmZhYTcuLmUwODI5MDFiNWQ4YTY2MDQ0ZWRiMDA4
NGZhYmI0YjNiYTkyNGNhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0ZGVEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJh
bWUuaApAQCAtNTQsOSArNTQsMTIgQEAgR19CRUdJTl9ERUNMUwogR19FTkRfREVDTFMKICNlbmRp
ZiAvLyBVU0UoV0VCQVVESU9fR1NUUkVBTUVSKQogCi0jaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykK
KyNpZiBVU0UoV0VCQVVESU9fQVJNRkZUKQorI2luY2x1ZGUgImRsL3NwL2FwaS9hcm1TUC5oIgor
I2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykK
IHN0cnVjdCBSREZUQ29udGV4dDsKLSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2Vu
ZGlmCiAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3Nyw2ICsxODAsMTcg
QEAgcHJpdmF0ZToKICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNlbmRpZiAvLyBV
U0UoV0VCQVVESU9fSVBQKQogCisjaWYgVVNFKFdFQkFVRElPX0FSTUZGVCkKKyAgICBzdGF0aWMg
T01YRkZUU3BlY19SX0YzMiogY29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZGVFNpemUpOwor
CisgICAgT01YRkZUU3BlY19SX0YzMiogbV9mb3J3YXJkQ29udGV4dDsKKyAgICBPTVhGRlRTcGVj
X1JfRjMyKiBtX2ludmVyc2VDb250ZXh0OworCisgICAgQXVkaW9GbG9hdEFycmF5IG1fY29tcGxl
eERhdGE7CisgICAgQXVkaW9GbG9hdEFycmF5IG1fcmVhbERhdGE7CisgICAgQXVkaW9GbG9hdEFy
cmF5IG1faW1hZ0RhdGE7CisjZW5kaWYKKyAgICAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVf
RkZUCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRG
cmFtZVN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHVi
LmNwcAppbmRleCA2YTI3YmU1ZjY3OWVmMDQzNDA2OGVjOTI1NWQzMjlhZmQ4NDczOGM2Li4zYTEw
OGFjMzQwOTk5YmUwMWRiZjk2ZjFjZjZjZWUwZmIwZTJjYjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAog
I2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpZiAhT1MoREFSV0lOKSAmJiAhVVNFKFdFQkFVRElP
X01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9fR1NUUkVBTUVS
KSAmJiAhVVNFKFdFQkFVRElPX0lQUCkKKyNpZiAhT1MoREFSV0lOKSAmJiAhVVNFKFdFQkFVRElP
X01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9fR1NUUkVBTUVS
KSAmJiAhVVNFKFdFQkFVRElPX0lQUCkgJiYgIVVTRShXRUJBVURJT19BUk1GRlQpCiAKICNpbmNs
dWRlICJGRlRGcmFtZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9hbmRyb2lkL0ZGVEZyYW1lQVJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2FuZHJvaWQvRkZURnJhbWVBUk0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MzYzOGUyNmM1NzJkMDMx
OGQ3YzFkZjMyYWRlZGZhMzkyNmYwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1lQVJNLmNwcApAQCAtMCwwICsxLDIwOSBA
QAorLyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworI2lm
IE9TKEFORFJPSUQpICYmIFVTRShXRUJBVURJT19BUk1GRlQpCisKKyNpbmNsdWRlICJGRlRGcmFt
ZS5oIgorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIK
KyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvb214U1Au
aCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworCitjb25zdCBpbnQga01heEZGVFBvdzJTaXplID0gMTU7CisKKy8vIE5vcm1hbCBjb25zdHJ1
Y3RvcjogYWxsb2NhdGVzIGZvciBhIGdpdmVuIGZmdFNpemUuCitGRlRGcmFtZTo6RkZURnJhbWUo
dW5zaWduZWQgZmZ0U2l6ZSkKKyAgICA6IG1fRkZUU2l6ZShmZnRTaXplKQorICAgICwgbV9sb2cy
RkZUU2l6ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obG9nMihmZnRTaXplKSkpCisgICAgLCBtX2Zv
cndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0KDApCisgICAgLCBtX2NvbXBs
ZXhEYXRhKGZmdFNpemUpCisgICAgLCBtX3JlYWxEYXRhKGZmdFNpemUgLyAyKQorICAgICwgbV9p
bWFnRGF0YShmZnRTaXplIC8gMikKK3sKKyAgICAvLyBXZSBvbmx5IGFsbG93IHBvd2VyIG9mIHR3
by4KKyAgICBBU1NFUlQoMVVMIDw8IG1fbG9nMkZGVFNpemUgPT0gbV9GRlRTaXplKTsKKworICAg
IG1fZm9yd2FyZENvbnRleHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKyAgICBt
X2ludmVyc2VDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7Cit9CisKKy8v
IENyZWF0ZXMgYSBibGFuay9lbXB0eSBmcmFtZSAoaW50ZXJwb2xhdGUoKSBtdXN0IGxhdGVyIGJl
IGNhbGxlZCkuCitGRlRGcmFtZTo6RkZURnJhbWUoKQorICAgIDogbV9GRlRTaXplKDApCisgICAg
LCBtX2xvZzJGRlRTaXplKDApCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2lu
dmVyc2VDb250ZXh0KDApCit7Cit9CisKKy8vIENvcHkgY29uc3RydWN0b3IuCitGRlRGcmFtZTo6
RkZURnJhbWUoY29uc3QgRkZURnJhbWUmIGZyYW1lKQorICAgIDogbV9GRlRTaXplKGZyYW1lLm1f
RkZUU2l6ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoZnJhbWUubV9sb2cyRkZUU2l6ZSkKKyAgICAs
IG1fZm9yd2FyZENvbnRleHQoMCkKKyAgICAsIG1faW52ZXJzZUNvbnRleHQoMCkKKyAgICAsIG1f
Y29tcGxleERhdGEoZnJhbWUubV9GRlRTaXplKQorICAgICwgbV9yZWFsRGF0YShmcmFtZS5tX0ZG
VFNpemUgLyAyKQorICAgICwgbV9pbWFnRGF0YShmcmFtZS5tX0ZGVFNpemUgLyAyKQoreworICAg
IG1fZm9yd2FyZENvbnRleHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKyAgICBt
X2ludmVyc2VDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisKKyAgICAv
LyBDb3B5L3NldHVwIGZyYW1lIGRhdGEuCisgICAgdW5zaWduZWQgbmJ5dGVzID0gc2l6ZW9mKGZs
b2F0KSAqIChtX0ZGVFNpemUgLyAyKTsKKyAgICBtZW1jcHkocmVhbERhdGEoKSwgZnJhbWUucmVh
bERhdGEoKSwgbmJ5dGVzKTsKKyAgICBtZW1jcHkoaW1hZ0RhdGEoKSwgZnJhbWUuaW1hZ0RhdGEo
KSwgbmJ5dGVzKTsKK30KKwordm9pZCBGRlRGcmFtZTo6aW5pdGlhbGl6ZSgpCit7Cit9CisKK3Zv
aWQgRkZURnJhbWU6OmNsZWFudXAoKQoreworfQorCitGRlRGcmFtZTo6fkZGVEZyYW1lKCkKK3sK
KyAgICBmcmVlKG1fZm9yd2FyZENvbnRleHQpOworICAgIGZyZWUobV9pbnZlcnNlQ29udGV4dCk7
Cit9CisKK3ZvaWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKK3sK
KyAgICBGRlRGcmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAgRkZURnJhbWUmIGZyYW1lMiA9IGNv
bnN0X2Nhc3Q8RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBmbG9hdCogcmVhbFAxID0gZnJhbWUx
LnJlYWxEYXRhKCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZyYW1lMS5pbWFnRGF0YSgpOworICAg
IGNvbnN0IGZsb2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERhdGEoKTsKKyAgICBjb25zdCBmbG9h
dCogaW1hZ1AyID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAgICB1bnNpZ25lZCBoYWxmU2l6ZSA9
IGZmdFNpemUoKSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSByZWFsUDFbMF07CisgICAgZmxvYXQg
aW1hZzAgPSBpbWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRoOjp6dm11bChyZWFsUDEsIGltYWdQ
MSwgcmVhbFAyLCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBoYWxmU2l6ZSk7IAorCisgICAgLy8g
TXVsdGlwbHkgdGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBvbmVudAorICAgIHJlYWxQMVswXSA9
IHJlYWwwICogcmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9IGltYWcwICogaW1hZ1AyWzBdOwor
CisgICAgLy8gU2NhbGUgYWNjb3VudHMgdGhlIHBlY3VsaWFyIHNjYWxpbmcgb2YgdmVjTGliIG9u
IHRoZSBNYWMuCisgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSByaWdodCBzY2FsaW5nIGFsbCB0aGUg
d2F5IGJhY2sgdG8gaW52ZXJzZSBGRlQuCisgICAgLy8gRklYTUU6IGlmIHdlIGNoYW5nZSB0aGUg
c2NhbGluZyBvbiB0aGUgTWFjIHRoZW4gdGhpcyBzY2FsZQorICAgIC8vIGZhY3RvciB3aWxsIG5l
ZWQgdG8gY2hhbmdlIHRvby4KKyAgICBmbG9hdCBzY2FsZSA9IDAuNWY7CisKKyAgICBWZWN0b3JN
YXRoOjp2c211bChyZWFsUDEsIDEsICZzY2FsZSwgcmVhbFAxLCAxLCBoYWxmU2l6ZSk7CisgICAg
VmVjdG9yTWF0aDo6dnNtdWwoaW1hZ1AxLCAxLCAmc2NhbGUsIGltYWdQMSwgMSwgaGFsZlNpemUp
OworfQorCit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9hdCogZGF0YSkKK3sKKyAgICBB
U1NFUlQobV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9mb3J3YXJkQ29udGV4dCkgewor
ICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZGVFNpemUgKyAyKTsKKworICAg
ICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwgY29tcGxleEZGVC5kYXRhKCks
IG1fZm9yd2FyZENvbnRleHQpOworCisgICAgICAgIC8vIFNwbGl0IEZGVCBkYXRhIGludG8gcmVh
bCBhbmQgaW1hZ2luYXJ5IGFycmF5cy4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8
IG1fRkZUU2l6ZSAvIDI7ICsraykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMiAqIGs7Cisg
ICAgICAgICAgICBtX3JlYWxEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleF07CisgICAgICAgICAg
ICBtX2ltYWdEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleCArIDFdOworICAgICAgICB9CisgICAg
ICAgIG1fcmVhbERhdGFbMV0gPSBjb21wbGV4RkZUWzBdOworICAgICAgICBtX2ltYWdEYXRhWzBd
ID0gY29tcGxleEZGVFttX0ZGVFNpemUgKyAxXTsKKyAgICB9Cit9CisKK3ZvaWQgRkZURnJhbWU6
OmRvSW52ZXJzZUZGVChmbG9hdCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9pbnZlcnNlQ29udGV4
dCk7CisKKyAgICBpZiAobV9pbnZlcnNlQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJy
YXkgZmZ0RGF0YShtX0ZGVFNpemUgKyAyKTsKKworICAgICAgICAvLyBQYWNrIHRoZSByZWFsIGFu
ZCBpbWFnaW5hcnkgZGF0YSBpbnRvIHRoZSBjb21wbGV4IGFycmF5IGZvcm1hdAorICAgICAgICBm
b3IgKHVuc2lnbmVkIGsgPSAxOyBrIDwgbV9GRlRTaXplIC8gMjsgKytrKSB7CisgICAgICAgICAg
ICBpbnQgaW5kZXggPSAyICogazsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFs
RGF0YVtrXTsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107
CisgICAgICAgIH0KKyAgICAgICAgZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07CisgICAgICAg
IGZmdERhdGFbMV0gPSAwOworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRh
WzBdOworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAg
b214U1BfRkZUSW52X0NDU1RvUl9GMzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVy
c2VDb250ZXh0KTsKKworICAgIH0KK30KKworZmxvYXQqIEZGVEZyYW1lOjpyZWFsRGF0YSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxEYXRhLmRhdGEoKSk7
Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6aW1hZ0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBj
b25zdF9jYXN0PGZsb2F0Kj4obV9pbWFnRGF0YS5kYXRhKCkpOworfQorCitPTVhGRlRTcGVjX1Jf
RjMyKiBGRlRGcmFtZTo6Y29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZGVFNpemUpCit7Cisg
ICAgQVNTRVJUKGxvZzJGRlRTaXplKTsKKyAgICBBU1NFUlQobG9nMkZGVFNpemUgPCBrTWF4RkZU
UG93MlNpemUpOworICAgIGludCBidWZTaXplOworICAgIE9NWFJlc3VsdCBzdGF0dXM7CisgICAg
T01YRkZUU3BlY19SX0YzMiogY29udGV4dCA9IDA7CisKKyAgICBzdGF0dXMgPSBvbXhTUF9GRlRH
ZXRCdWZTaXplX1JfRjMyKGxvZzJGRlRTaXplLCAmYnVmU2l6ZSk7CisKKyAgICBpZiAoc3RhdHVz
ID09IE9NWF9TdHNfTm9FcnIpIHsKKyAgICAgICAgY29udGV4dCA9IChPTVhGRlRTcGVjX1JfRjMy
KikgbWFsbG9jKGJ1ZlNpemUpOworICAgICAgICBvbXhTUF9GRlRJbml0X1JfRjMyKGNvbnRleHQs
IGxvZzJGRlRTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gI2lmIE9TKEFORFJPSUQpICYmICFVU0UoV0VC
QVVESU9fRkZNUEVHKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA3N2IyYzc2YzQ0YTMyZmE5MzMwNGNlNGJjZDA3ZTIx
MDVmZTljNTU4Li43MjFhZmU3YTliYTJjNGFlOGZlNDVkMDdkMjlkYzM1ZDFmYzBjZjk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xODEsNyArMTgxLDYgQEAKICAgICAg
ICAgICAjIEZJWE1FOiBEaXNhYmxlIG9uY2UgdGhlIGxpbmtpbmcgZXJyb3IgaGFzIGJlZW4gcmVz
b2x2ZWQuCiAgICAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODg2MzYKICAgICAgICAgICAnRU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEnLAotICAgICAgICAg
ICdFTkFCTEVfV0VCX0FVRElPPTAnLAogICAgICAgICAgICdXVEZfVVNFX05BVElWRV9GVUxMU0NS
RUVOX1ZJREVPPTEnLAogICAgICAgICBdLAogICAgICAgICAnZW5hYmxlX3RvdWNoX2ljb25fbG9h
ZGluZyc6IDEsCkBAIC0yMjAsOSArMjE5LDIzIEBACiAgICAgICAgIF0sCiAgICAgICB9XSwKICAg
ICAgICMgTWFjIE9TIFggdXNlcyBBY2NlbGVyYXRlLmZyYW1ld29yayBGRlQgYnkgZGVmYXVsdCBp
bnN0ZWFkIG9mIEZGbXBlZy4KLSAgICAgIFsnT1MhPSJtYWMiIGFuZCBPUyE9ImFuZHJvaWQiJywg
ewotICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzogWwotICAgICAgICAgICdXVEZfVVNFX1dFQkFV
RElPX0ZGTVBFRz0xJywKKyAgICAgIFsnT1MhPSJtYWMiJywgeworICAgICAgICAnY29uZGl0aW9u
cycgOiBbCisgICAgICAgICAgWydPUz09ImFuZHJvaWQiJywgeworICAgICAgICAgICAgJ2NvbmRp
dGlvbnMnOiBbCisgICAgICAgICAgICAgIFsndXNlX2FybV9mZnQhPTAnLCB7CisgICAgICAgICAg
ICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAgICAgICAgICAgICAgICdXVEZfVVNFX1dF
QkFVRElPX0FSTUZGVD0xJywKKyAgICAgICAgICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTEn
LAorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgIH1dLAorICAgICAgICAgICAgXSwK
KyAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAg
ICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElPX0ZGTVBFRz0xJywKKyAgICAgICAgICAgICAgICdF
TkFCTEVfV0VCX0FVRElPPTEnLAorICAgICAgICAgICAgIF0sCisgICAgICAgICAgfV0sCiAgICAg
ICAgIF0sCiAgICAgICB9XSwKICAgICAgIFsnT1M9PSJ3aW4iIG9yIE9TPT0iYW5kcm9pZCIgb3Ig
dXNlX3gxMT09MScsIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191568</attachid>
            <date>2013-03-05 14:35:26 -0800</date>
            <delta_ts>2013-03-05 16:10:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130305143132.patch</filename>
            <type>text/plain</type>
            <size>14487</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIzMzM1MGMxOTIxZjgz
NTZiNWJmY2M0ZjRjNWVjYTRmZGM5ZmQ4MC4uMjYyOGIwOWQ1NGM0NTEwMDFhMDc3NjIxODk1M2Nh
MmNjMmE1M2ViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgYW5kCisgICAgICAgIEZGVEZy
YW1lT3Blbk1BWERMLmNwcCB3aGVuIHVzZV9vcGVubWF4X2RsX2ZmdCBpcyBlbmFibGVkLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkIHNvdXJjZSBGRlRGcmFtZU9wZW5NQVhETC5jcHAKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0FycmF5OjphbGxvY2F0ZSk6IE5lZWQgMzItYnl0ZSBhbGlnbnRtZW50IHdpdGggdGhlCisg
ICAgICAgIE9wZW5NQVggREwgRkZULgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
Lmg6CisgICAgICAgIChGRlRGcmFtZSk6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwOiBTdXBwb3J0IE9wZW5NQVggREwgRkZU
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETC5jcHA6
IEFkZGVkLiAgSW1wbGVtZW50cyB0aGUKKyAgICAgICAgbmVjZXNzYXJ5IGludGVyZmFjZSB1c2lu
ZyB0aGUgT3Blbk1BWCBETCBGRlQgcm91dGluZXMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpGRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRG
cmFtZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y2xlYW51cCk6
CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6fkZGVEZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZG9G
RlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvSW52ZXJzZUZGVCk6CisgICAgICAg
IChXZWJDb3JlOjpGRlRGcmFtZTo6cmVhbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJh
bWU6OmltYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpjb250ZXh0Rm9yU2l6
ZSk6CisKIDIwMTMtMDMtMDQgIFVkYXkgS2lyYW4gIDx1ZGF5a2lyYW5AbW90b3JvbGEuY29tPgog
CiAgICAgICAgIGdldFByb3BlcnR5VmFsdWUgZm9yIC13ZWJraXQtdGV4dC1zdHJva2UgcmV0dXJu
cyBudWxsLCBzaG91bGQgY29tcHV0ZSB0aGUgc2hvcnRoYW5kIHZhbHVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDBlNWE2ZDZmNzY3YzE3OWJlNWY1OGZlYWFkMjUxZTY0MGFlMTljZjcu
LmI2ZTUwZmFmZDAwN2NmN2IyMTIyYTk3ODk0M2JkMzE0NzgwYjlmMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMDUgIFJheW1vbmQgVG95ICA8
cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZU
IGluIFdlYkF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDk3NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZlYXR1cmVzLmd5cGk6IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBE
TCBGRlQuCisKIDIwMTMtMDMtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNv
bT4KIAogICAgICAgICBBWDogY2VsbEZvckNvbHVtbkFuZFJvdyBmYWlscyBmb3IgdGFibGVzIHdp
dGggaGlkZGVuIHRhYmxlIGNlbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CmluZGV4IDdjZDU5MTU2OThlOTgyZWEwODM2ZGI0NjM4MTRmMjYwY2M2YTU1MDQuLmIyMWI2OTll
ODNhMGYzY2RjY2YzMDQ5OGI1MzRlNzcwNjY1OWY1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCkBAIC0yODAsNiArMjgwLDExIEBACiAgICAgICAgICAgJzwoU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncy9WOERlcml2ZWRTb3VyY2VzMTkuY3Bw
JywKICAgICAgICAgXSwKICAgICAgIH1dLAorICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9v
cGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAgICAnd2ViY29yZV9pbmNsdWRlX2RpcnMnOiBbCisg
ICAgICAgICAnPChERVBUSCkvdGhpcmRfcGFydHkvb3Blbm1heF9kbCcKKyAgICAgICBdCisgICAg
IH1dLAogICAgIF0sCiAgIH0sICAjIHZhcmlhYmxlcwogCkBAIC0xNTc2LDYgKzE1ODEsMTYgQEAK
ICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3RoaXJkX3BhcnR5L2ZmbXBlZy9mZm1w
ZWcuZ3lwOmZmbXBlZycsCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCisgICAgICAgWyciV1RG
X1VTRV9XRUJBVURJT19PUEVOTUFYX0RMX0ZGVD0xIiBpbiBmZWF0dXJlX2RlZmluZXMnLCB7Cisg
ICAgICAgICAnZGlyZWN0X2RlcGVuZGVudF9zZXR0aW5ncyc6IHsKKyAgICAgICAgICAgJ2luY2x1
ZGVfZGlycyc6IFsKKyAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0
eS9vcGVubWF4X2RsJywKKyAgICAgICAgICAgXSwKKyAgICAgICAgIH0sCisgICAgICAgICAnZGVw
ZW5kZW5jaWVzJzogWworICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0
eS9vcGVubWF4X2RsL2RsL2RsLmd5cDphcm1fZmZ0JywKKyAgICAgICAgIF0sCisgICAgICAgfV0s
CiAgICAgICAgICMgV2luZG93cyBzaGFyZWQgYnVpbGRlciBuZWVkcyBleHRyYSBoZWxwIGZvciBs
aW5rYWdlCiAgICAgICAgIFsnT1M9PSJ3aW4iIGFuZCAiV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9
MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgewogICAgICAgICAgICdleHBvcnRfZGVwZW5kZW50X3Nl
dHRpbmdzJzogWwpAQCAtMTkyMyw2ICsxOTM4LDcgQEAKICAgICAgICAgICAgIFsnZXhjbHVkZScs
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1cXC5jcHAkJ10sCiAgICAg
ICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVkRNWFBhcnNl
clxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ZvbnRDYWNoZVNraWFcXC5jcHAkJ10sCisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxh
dGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETFxcLmNwcCQnXSwKICAgICAgICAg
ICBdLAogICAgICAgICB9LCB7ICMgT1MhPSJhbmRyb2lkIgogICAgICAgICAgICdzb3VyY2VzLyc6
IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0MTFiYjcxMzA1ZGEyMzExYjRiYzg5MmU0NDc0M2IzNzA4
NzQ5ZmNiLi4zNjhhMmFhNDRiMjkxMzA2YWI5NDU3NDRlYWFiNDBmMDgyOTkxNzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zNzc4LDYgKzM3NzgsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1
ZGlvL1ZlY3Rvck1hdGguaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vWmVyb1BvbGUu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9aZXJvUG9sZS5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1lT3Blbk1BWERMLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vQXVkaW9CdXNDaHJvbWl1bS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvRGVzdGluYXRpb25DaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvRGVz
dGluYXRpb25DaHJvbWl1bS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaAppbmRleCAwYTZkODczNDgyZGY3YzkzZDhkY2EwODU1MGI5YWE0ZTIxNzFkOGNmLi5i
MTYxY2YyNjI2ZjJiZDk0N2I0MmRmOGVlMjdiZTQ2MmNhYWUwM2VjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoK
ICAgICAgIAogICAgICAgICB1bnNpZ25lZCBpbml0aWFsU2l6ZSA9IHNpemVvZihUKSAqIG47CiAK
LSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVTRShXRUJBVURJT19GRk1QRUcpIHx8IFVT
RShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKICAgICAgICAgY29uc3Qgc2l6ZV90IGFsaWdubWVu
dCA9IDMyOwogI2Vsc2UKICAgICAgICAgY29uc3Qgc2l6ZV90IGFsaWdubWVudCA9IDE2OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKaW5kZXggNTVhZDA5YmU2M2Y1NWU4
OGYyYTQzOGQ1ZTgzZTFhZDQxYzFiZmFhNy4uNTIyY2I1ZmJjODAyYTNmOTFhMjEwZDEzNDk4ZDgz
YTI1OTY0YjM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZU
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCkBA
IC01NCw5ICs1NCwxMiBAQCBHX0JFR0lOX0RFQ0xTCiBHX0VORF9ERUNMUwogI2VuZGlmIC8vIFVT
RShXRUJBVURJT19HU1RSRUFNRVIpCiAKLSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVT
RShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIK
KyNpbmNsdWRlICJkbC9zcC9hcGkvb214U1AuaCIKKyNlbGlmIFVTRShXRUJBVURJT19GRk1QRUcp
CiBzdHJ1Y3QgUkRGVENvbnRleHQ7Ci0jZW5kaWYgLy8gVVNFKFdFQkFVRElPX0ZGTVBFRykKKyNl
bmRpZgogCiAjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAogCkBAIC0xNzcsNiArMTgwLDE3
IEBAIHByaXZhdGU6CiAgICAgQXVkaW9GbG9hdEFycmF5IG1faW1hZ0RhdGE7CiAjZW5kaWYgLy8g
VVNFKFdFQkFVRElPX0lQUCkKIAorI2lmIFVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKyAg
ICBzdGF0aWMgT01YRkZUU3BlY19SX0YzMiogY29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZG
VFNpemUpOworCisgICAgT01YRkZUU3BlY19SX0YzMiogbV9mb3J3YXJkQ29udGV4dDsKKyAgICBP
TVhGRlRTcGVjX1JfRjMyKiBtX2ludmVyc2VDb250ZXh0OworCisgICAgQXVkaW9GbG9hdEFycmF5
IG1fY29tcGxleERhdGE7CisgICAgQXVkaW9GbG9hdEFycmF5IG1fcmVhbERhdGE7CisgICAgQXVk
aW9GbG9hdEFycmF5IG1faW1hZ0RhdGE7CisjZW5kaWYKKyAgICAKICNlbmRpZiAvLyAhVVNFX0FD
Q0VMRVJBVEVfRkZUCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZVN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZU
RnJhbWVTdHViLmNwcAppbmRleCA2YTI3YmU1ZjY3OWVmMDQzNDA2OGVjOTI1NWQzMjlhZmQ4NDcz
OGM2Li4zYWQzMjg0YzNhZjJmNDQ3MGQ2MjFhOWRjMjI1MTdmODkzZTNmMzYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpZiAhT1MoREFSV0lOKSAmJiAhVVNF
KFdFQkFVRElPX01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9f
R1NUUkVBTUVSKSAmJiAhVVNFKFdFQkFVRElPX0lQUCkKKyNpZiAhT1MoREFSV0lOKSAmJiAhVVNF
KFdFQkFVRElPX01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9f
R1NUUkVBTUVSKSAmJiAhVVNFKFdFQkFVRElPX0lQUCkgJiYgIVVTRShXRUJBVURJT19PUEVOTUFY
X0RMX0ZGVCkKIAogI2luY2x1ZGUgIkZGVEZyYW1lLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2FuZHJvaWQvRkZURnJhbWVPcGVuTUFYREwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWRiOTkxZGI5ZjRlMjdhNTJjMmE0ZDQzY2Q2MjU0YWU1OTc4YTYxMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2FuZHJvaWQvRkZU
RnJhbWVPcGVuTUFYREwuY3BwCkBAIC0wLDAgKzEsMjAwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaWYgT1MoQU5EUk9JRCkgJiYgVVNFKFdF
QkFVRElPX09QRU5NQVhfRExfRkZUKQorCisjaW5jbHVkZSAiRkZURnJhbWUuaCIKKworI2luY2x1
ZGUgIkF1ZGlvQXJyYXkuaCIKKyNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCisjaW5jbHVkZSAiZGwv
c3AvYXBpL2FybVNQLmgiCisjaW5jbHVkZSAiZGwvc3AvYXBpL29teFNQLmgiCisKKyNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKworY29uc3QgaW50
IGtNYXhGRlRQb3cyU2l6ZSA9IDE1OworCisvLyBOb3JtYWwgY29uc3RydWN0b3I6IGFsbG9jYXRl
cyBmb3IgYSBnaXZlbiBmZnRTaXplLgorRkZURnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNp
emUpCisgICAgOiBtX0ZGVFNpemUoZmZ0U2l6ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGxvZzIoZmZ0U2l6ZSkpKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgw
KQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQorICAgICwgbV9jb21wbGV4RGF0YShmZnRTaXpl
KQorICAgICwgbV9yZWFsRGF0YShmZnRTaXplIC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZmZ0U2l6
ZSAvIDIpCit7CisgICAgLy8gV2Ugb25seSBhbGxvdyBwb3dlciBvZiB0d28uCisgICAgQVNTRVJU
KDFVTCA8PCBtX2xvZzJGRlRTaXplID09IG1fRkZUU2l6ZSk7CisKKyAgICBtX2ZvcndhcmRDb250
ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4
dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworfQorCisvLyBDcmVhdGVzIGEgYmxh
bmsvZW1wdHkgZnJhbWUgKGludGVycG9sYXRlKCkgbXVzdCBsYXRlciBiZSBjYWxsZWQpLgorRkZU
RnJhbWU6OkZGVEZyYW1lKCkKKyAgICA6IG1fRkZUU2l6ZSgwKQorICAgICwgbV9sb2cyRkZUU2l6
ZSgwKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgw
KQoreworfQorCisvLyBDb3B5IGNvbnN0cnVjdG9yLgorRkZURnJhbWU6OkZGVEZyYW1lKGNvbnN0
IEZGVEZyYW1lJiBmcmFtZSkKKyAgICA6IG1fRkZUU2l6ZShmcmFtZS5tX0ZGVFNpemUpCisgICAg
LCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9nMkZGVFNpemUpCisgICAgLCBtX2ZvcndhcmRDb250
ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZy
YW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fcmVhbERhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKKyAg
ICAsIG1faW1hZ0RhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKK3sKKyAgICBtX2ZvcndhcmRDb250
ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4
dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworCisgICAgLy8gQ29weS9zZXR1cCBm
cmFtZSBkYXRhLgorICAgIHVuc2lnbmVkIG5ieXRlcyA9IHNpemVvZihmbG9hdCkgKiAobV9GRlRT
aXplIC8gMik7CisgICAgbWVtY3B5KHJlYWxEYXRhKCksIGZyYW1lLnJlYWxEYXRhKCksIG5ieXRl
cyk7CisgICAgbWVtY3B5KGltYWdEYXRhKCksIGZyYW1lLmltYWdEYXRhKCksIG5ieXRlcyk7Cit9
CisKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxpemUoKQoreworfQorCit2b2lkIEZGVEZyYW1lOjpj
bGVhbnVwKCkKK3sKK30KKworRkZURnJhbWU6On5GRlRGcmFtZSgpCit7CisgICAgZnJlZShtX2Zv
cndhcmRDb250ZXh0KTsKKyAgICBmcmVlKG1faW52ZXJzZUNvbnRleHQpOworfQorCit2b2lkIEZG
VEZyYW1lOjptdWx0aXBseShjb25zdCBGRlRGcmFtZSYgZnJhbWUpCit7CisgICAgRkZURnJhbWUm
IGZyYW1lMSA9ICp0aGlzOworICAgIEZGVEZyYW1lJiBmcmFtZTIgPSBjb25zdF9jYXN0PEZGVEZy
YW1lJj4oZnJhbWUpOworCisgICAgZmxvYXQqIHJlYWxQMSA9IGZyYW1lMS5yZWFsRGF0YSgpOwor
ICAgIGZsb2F0KiBpbWFnUDEgPSBmcmFtZTEuaW1hZ0RhdGEoKTsKKyAgICBjb25zdCBmbG9hdCog
cmVhbFAyID0gZnJhbWUyLnJlYWxEYXRhKCk7CisgICAgY29uc3QgZmxvYXQqIGltYWdQMiA9IGZy
YW1lMi5pbWFnRGF0YSgpOworCisgICAgdW5zaWduZWQgaGFsZlNpemUgPSBmZnRTaXplKCkgLyAy
OworICAgIGZsb2F0IHJlYWwwID0gcmVhbFAxWzBdOworICAgIGZsb2F0IGltYWcwID0gaW1hZ1Ax
WzBdOworCisgICAgVmVjdG9yTWF0aDo6enZtdWwocmVhbFAxLCBpbWFnUDEsIHJlYWxQMiwgaW1h
Z1AyLCByZWFsUDEsIGltYWdQMSwgaGFsZlNpemUpOyAKKworICAgIC8vIE11bHRpcGx5IHRoZSBw
YWNrZWQgREMvbnlxdWlzdCBjb21wb25lbnQKKyAgICByZWFsUDFbMF0gPSByZWFsMCAqIHJlYWxQ
MlswXTsKKyAgICBpbWFnUDFbMF0gPSBpbWFnMCAqIGltYWdQMlswXTsKK30KKwordm9pZCBGRlRG
cmFtZTo6ZG9GRlQoY29uc3QgZmxvYXQqIGRhdGEpCit7CisgICAgQVNTRVJUKG1fZm9yd2FyZENv
bnRleHQpOworCisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpIHsKKyAgICAgICAgQXVkaW9GbG9h
dEFycmF5IGNvbXBsZXhGRlQobV9GRlRTaXplICsgMik7CisKKyAgICAgICAgb214U1BfRkZURndk
X1JUb0NDU19GMzJfU2ZzKGRhdGEsIGNvbXBsZXhGRlQuZGF0YSgpLCBtX2ZvcndhcmRDb250ZXh0
KTsKKworICAgICAgICAvLyBTcGxpdCBGRlQgZGF0YSBpbnRvIHJlYWwgYW5kIGltYWdpbmFyeSBh
cnJheXMuCisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBtX0ZGVFNpemUgLyAyOyAr
K2spIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIgKiBrOworICAgICAgICAgICAgbV9yZWFs
RGF0YVtrXSA9IGNvbXBsZXhGRlRbaW5kZXhdOworICAgICAgICAgICAgbV9pbWFnRGF0YVtrXSA9
IGNvbXBsZXhGRlRbaW5kZXggKyAxXTsKKyAgICAgICAgfQorICAgICAgICBtX3JlYWxEYXRhWzBd
ID0gY29tcGxleEZGVFswXTsKKyAgICAgICAgbV9pbWFnRGF0YVswXSA9IGNvbXBsZXhGRlRbbV9G
RlRTaXplXTsKKyAgICB9Cit9CisKK3ZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZGVChmbG9hdCog
ZGF0YSkKK3sKKyAgICBBU1NFUlQobV9pbnZlcnNlQ29udGV4dCk7CisKKyAgICBpZiAobV9pbnZl
cnNlQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgZmZ0RGF0YShtX0ZGVFNpemUg
KyAyKTsKKworICAgICAgICAvLyBQYWNrIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBpbnRv
IHRoZSBjb21wbGV4IGFycmF5IGZvcm1hdAorICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSAxOyBr
IDwgbV9GRlRTaXplIC8gMjsgKytrKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAyICogazsK
KyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFsRGF0YVtrXTsKKyAgICAgICAgICAg
IGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107CisgICAgICAgIH0KKyAgICAgICAg
ZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07CisgICAgICAgIGZmdERhdGFbMV0gPSAwOworICAg
ICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRhWzBdOworICAgICAgICBmZnREYXRh
W21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAgb214U1BfRkZUSW52X0NDU1RvUl9G
MzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVyc2VDb250ZXh0KTsKKworICAgIH0K
K30KKworZmxvYXQqIEZGVEZyYW1lOjpyZWFsRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNv
bnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxEYXRhLmRhdGEoKSk7Cit9CisKK2Zsb2F0KiBGRlRGcmFt
ZTo6aW1hZ0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4obV9p
bWFnRGF0YS5kYXRhKCkpOworfQorCitPTVhGRlRTcGVjX1JfRjMyKiBGRlRGcmFtZTo6Y29udGV4
dEZvclNpemUodW5zaWduZWQgbG9nMkZGVFNpemUpCit7CisgICAgQVNTRVJUKGxvZzJGRlRTaXpl
KTsKKyAgICBBU1NFUlQobG9nMkZGVFNpemUgPCBrTWF4RkZUUG93MlNpemUpOworICAgIGludCBi
dWZTaXplOworICAgIE9NWFJlc3VsdCBzdGF0dXM7CisgICAgT01YRkZUU3BlY19SX0YzMiogY29u
dGV4dCA9IDA7CisKKyAgICBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyKGxvZzJG
RlRTaXplLCAmYnVmU2l6ZSk7CisKKyAgICBpZiAoc3RhdHVzID09IE9NWF9TdHNfTm9FcnIpIHsK
KyAgICAgICAgY29udGV4dCA9IChPTVhGRlRTcGVjX1JfRjMyKikgbWFsbG9jKGJ1ZlNpemUpOwor
ICAgICAgICBvbXhTUF9GRlRJbml0X1JfRjMyKGNvbnRleHQsIGxvZzJGRlRTaXplKTsKKyAgICB9
CisKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gI2lmIE9TKEFORFJPSUQpICYmICFVU0UoV0VCQVVESU9fRkZNUEVHKQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpp
bmRleCBkMTkxNGJkMjIwNGViMmVlZWI5MTAyM2MyOGVmNjI5MjE1YzkzMTQxLi5hNjlhMjYwMDU1
MzE5YzcyN2VjMzY0OTlkNmYzYjcwNTVhNTUwM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpCkBAIC0xODMsNyArMTgzLDYgQEAKICAgICAgICAgICAjIEZJWE1FOiBEaXNhYmxl
IG9uY2UgdGhlIGxpbmtpbmcgZXJyb3IgaGFzIGJlZW4gcmVzb2x2ZWQuCiAgICAgICAgICAgIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2MzYKICAgICAgICAgICAn
RU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEnLAotICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTAn
LAogICAgICAgICAgICdXVEZfVVNFX05BVElWRV9GVUxMU0NSRUVOX1ZJREVPPTEnLAogICAgICAg
ICBdLAogICAgICAgICAnZW5hYmxlX3RvdWNoX2ljb25fbG9hZGluZyc6IDEsCkBAIC0yMjUsOSAr
MjI0LDIzIEBACiAgICAgICAgIF0sCiAgICAgICB9XSwKICAgICAgICMgTWFjIE9TIFggdXNlcyBB
Y2NlbGVyYXRlLmZyYW1ld29yayBGRlQgYnkgZGVmYXVsdCBpbnN0ZWFkIG9mIEZGbXBlZy4KLSAg
ICAgIFsnT1MhPSJtYWMiIGFuZCBPUyE9ImFuZHJvaWQiJywgewotICAgICAgICAnZmVhdHVyZV9k
ZWZpbmVzJzogWwotICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElPX0ZGTVBFRz0xJywKKyAgICAg
IFsnT1MhPSJtYWMiJywgeworICAgICAgICAnY29uZGl0aW9ucycgOiBbCisgICAgICAgICAgWydP
Uz09ImFuZHJvaWQiJywgeworICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiBbCisgICAgICAgICAg
ICAgIFsndXNlX29wZW5tYXhfZGxfZmZ0IT0wJywgeworICAgICAgICAgICAgICAgICdmZWF0dXJl
X2RlZmluZXMnOiBbCisgICAgICAgICAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19PUEVOTUFY
X0RMX0ZGVD0xJywKKyAgICAgICAgICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTEnLAorICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgIH1dLAorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICB9LCB7CisgICAgICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAgICAgICAg
ICAgICdXVEZfVVNFX1dFQkFVRElPX0ZGTVBFRz0xJywKKyAgICAgICAgICAgICAgICdFTkFCTEVf
V0VCX0FVRElPPTEnLAorICAgICAgICAgICAgIF0sCisgICAgICAgICAgfV0sCiAgICAgICAgIF0s
CiAgICAgICB9XSwKICAgICAgIFsnT1M9PSJ3aW4iIG9yIE9TPT0iYW5kcm9pZCIgb3IgdXNlX3gx
MT09MScsIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191593</attachid>
            <date>2013-03-05 16:10:48 -0800</date>
            <delta_ts>2013-03-06 10:57:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130305160654.patch</filename>
            <type>text/plain</type>
            <size>14551</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIzMzM1MGMxOTIxZjgz
NTZiNWJmY2M0ZjRjNWVjYTRmZGM5ZmQ4MC4uMjYyOGIwOWQ1NGM0NTEwMDFhMDc3NjIxODk1M2Nh
MmNjMmE1M2ViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgYW5kCisgICAgICAgIEZGVEZy
YW1lT3Blbk1BWERMLmNwcCB3aGVuIHVzZV9vcGVubWF4X2RsX2ZmdCBpcyBlbmFibGVkLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkIHNvdXJjZSBGRlRGcmFtZU9wZW5NQVhETC5jcHAKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0FycmF5OjphbGxvY2F0ZSk6IE5lZWQgMzItYnl0ZSBhbGlnbnRtZW50IHdpdGggdGhlCisg
ICAgICAgIE9wZW5NQVggREwgRkZULgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
Lmg6CisgICAgICAgIChGRlRGcmFtZSk6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwOiBTdXBwb3J0IE9wZW5NQVggREwgRkZU
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETC5jcHA6
IEFkZGVkLiAgSW1wbGVtZW50cyB0aGUKKyAgICAgICAgbmVjZXNzYXJ5IGludGVyZmFjZSB1c2lu
ZyB0aGUgT3Blbk1BWCBETCBGRlQgcm91dGluZXMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpGRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRG
cmFtZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y2xlYW51cCk6
CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6fkZGVEZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZG9G
RlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvSW52ZXJzZUZGVCk6CisgICAgICAg
IChXZWJDb3JlOjpGRlRGcmFtZTo6cmVhbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJh
bWU6OmltYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpjb250ZXh0Rm9yU2l6
ZSk6CisKIDIwMTMtMDMtMDQgIFVkYXkgS2lyYW4gIDx1ZGF5a2lyYW5AbW90b3JvbGEuY29tPgog
CiAgICAgICAgIGdldFByb3BlcnR5VmFsdWUgZm9yIC13ZWJraXQtdGV4dC1zdHJva2UgcmV0dXJu
cyBudWxsLCBzaG91bGQgY29tcHV0ZSB0aGUgc2hvcnRoYW5kIHZhbHVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDBlNWE2ZDZmNzY3YzE3OWJlNWY1OGZlYWFkMjUxZTY0MGFlMTljZjcu
LmI2ZTUwZmFmZDAwN2NmN2IyMTIyYTk3ODk0M2JkMzE0NzgwYjlmMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMDUgIFJheW1vbmQgVG95ICA8
cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZU
IGluIFdlYkF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDk3NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZlYXR1cmVzLmd5cGk6IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBE
TCBGRlQuCisKIDIwMTMtMDMtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNv
bT4KIAogICAgICAgICBBWDogY2VsbEZvckNvbHVtbkFuZFJvdyBmYWlscyBmb3IgdGFibGVzIHdp
dGggaGlkZGVuIHRhYmxlIGNlbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CmluZGV4IDdjZDU5MTU2OThlOTgyZWEwODM2ZGI0NjM4MTRmMjYwY2M2YTU1MDQuLmIyMWI2OTll
ODNhMGYzY2RjY2YzMDQ5OGI1MzRlNzcwNjY1OWY1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCkBAIC0yODAsNiArMjgwLDExIEBACiAgICAgICAgICAgJzwoU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncy9WOERlcml2ZWRTb3VyY2VzMTkuY3Bw
JywKICAgICAgICAgXSwKICAgICAgIH1dLAorICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9v
cGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAgICAnd2ViY29yZV9pbmNsdWRlX2RpcnMnOiBbCisg
ICAgICAgICAnPChERVBUSCkvdGhpcmRfcGFydHkvb3Blbm1heF9kbCcKKyAgICAgICBdCisgICAg
IH1dLAogICAgIF0sCiAgIH0sICAjIHZhcmlhYmxlcwogCkBAIC0xNTc2LDYgKzE1ODEsMTYgQEAK
ICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3RoaXJkX3BhcnR5L2ZmbXBlZy9mZm1w
ZWcuZ3lwOmZmbXBlZycsCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCisgICAgICAgWyciV1RG
X1VTRV9XRUJBVURJT19PUEVOTUFYX0RMX0ZGVD0xIiBpbiBmZWF0dXJlX2RlZmluZXMnLCB7Cisg
ICAgICAgICAnZGlyZWN0X2RlcGVuZGVudF9zZXR0aW5ncyc6IHsKKyAgICAgICAgICAgJ2luY2x1
ZGVfZGlycyc6IFsKKyAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0
eS9vcGVubWF4X2RsJywKKyAgICAgICAgICAgXSwKKyAgICAgICAgIH0sCisgICAgICAgICAnZGVw
ZW5kZW5jaWVzJzogWworICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0
eS9vcGVubWF4X2RsL2RsL2RsLmd5cDphcm1fZmZ0JywKKyAgICAgICAgIF0sCisgICAgICAgfV0s
CiAgICAgICAgICMgV2luZG93cyBzaGFyZWQgYnVpbGRlciBuZWVkcyBleHRyYSBoZWxwIGZvciBs
aW5rYWdlCiAgICAgICAgIFsnT1M9PSJ3aW4iIGFuZCAiV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9
MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgewogICAgICAgICAgICdleHBvcnRfZGVwZW5kZW50X3Nl
dHRpbmdzJzogWwpAQCAtMTkyMyw2ICsxOTM4LDcgQEAKICAgICAgICAgICAgIFsnZXhjbHVkZScs
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1cXC5jcHAkJ10sCiAgICAg
ICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVkRNWFBhcnNl
clxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ZvbnRDYWNoZVNraWFcXC5jcHAkJ10sCisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxh
dGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETFxcLmNwcCQnXSwKICAgICAgICAg
ICBdLAogICAgICAgICB9LCB7ICMgT1MhPSJhbmRyb2lkIgogICAgICAgICAgICdzb3VyY2VzLyc6
IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0MTFiYjcxMzA1ZGEyMzExYjRiYzg5MmU0NDc0M2IzNzA4
NzQ5ZmNiLi4zNjhhMmFhNDRiMjkxMzA2YWI5NDU3NDRlYWFiNDBmMDgyOTkxNzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zNzc4LDYgKzM3NzgsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1
ZGlvL1ZlY3Rvck1hdGguaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vWmVyb1BvbGUu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9aZXJvUG9sZS5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1lT3Blbk1BWERMLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vQXVkaW9CdXNDaHJvbWl1bS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvRGVzdGluYXRpb25DaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvRGVz
dGluYXRpb25DaHJvbWl1bS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaAppbmRleCAwYTZkODczNDgyZGY3YzkzZDhkY2EwODU1MGI5YWE0ZTIxNzFkOGNmLi5i
MTYxY2YyNjI2ZjJiZDk0N2I0MmRmOGVlMjdiZTQ2MmNhYWUwM2VjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoK
ICAgICAgIAogICAgICAgICB1bnNpZ25lZCBpbml0aWFsU2l6ZSA9IHNpemVvZihUKSAqIG47CiAK
LSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVTRShXRUJBVURJT19GRk1QRUcpIHx8IFVT
RShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKICAgICAgICAgY29uc3Qgc2l6ZV90IGFsaWdubWVu
dCA9IDMyOwogI2Vsc2UKICAgICAgICAgY29uc3Qgc2l6ZV90IGFsaWdubWVudCA9IDE2OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKaW5kZXggNTVhZDA5YmU2M2Y1NWU4
OGYyYTQzOGQ1ZTgzZTFhZDQxYzFiZmFhNy4uNTIyY2I1ZmJjODAyYTNmOTFhMjEwZDEzNDk4ZDgz
YTI1OTY0YjM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZU
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCkBA
IC01NCw5ICs1NCwxMiBAQCBHX0JFR0lOX0RFQ0xTCiBHX0VORF9ERUNMUwogI2VuZGlmIC8vIFVT
RShXRUJBVURJT19HU1RSRUFNRVIpCiAKLSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVT
RShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIK
KyNpbmNsdWRlICJkbC9zcC9hcGkvb214U1AuaCIKKyNlbGlmIFVTRShXRUJBVURJT19GRk1QRUcp
CiBzdHJ1Y3QgUkRGVENvbnRleHQ7Ci0jZW5kaWYgLy8gVVNFKFdFQkFVRElPX0ZGTVBFRykKKyNl
bmRpZgogCiAjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAogCkBAIC0xNzcsNiArMTgwLDE3
IEBAIHByaXZhdGU6CiAgICAgQXVkaW9GbG9hdEFycmF5IG1faW1hZ0RhdGE7CiAjZW5kaWYgLy8g
VVNFKFdFQkFVRElPX0lQUCkKIAorI2lmIFVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKyAg
ICBzdGF0aWMgT01YRkZUU3BlY19SX0YzMiogY29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZG
VFNpemUpOworCisgICAgT01YRkZUU3BlY19SX0YzMiogbV9mb3J3YXJkQ29udGV4dDsKKyAgICBP
TVhGRlRTcGVjX1JfRjMyKiBtX2ludmVyc2VDb250ZXh0OworCisgICAgQXVkaW9GbG9hdEFycmF5
IG1fY29tcGxleERhdGE7CisgICAgQXVkaW9GbG9hdEFycmF5IG1fcmVhbERhdGE7CisgICAgQXVk
aW9GbG9hdEFycmF5IG1faW1hZ0RhdGE7CisjZW5kaWYKKyAgICAKICNlbmRpZiAvLyAhVVNFX0FD
Q0VMRVJBVEVfRkZUCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZVN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZU
RnJhbWVTdHViLmNwcAppbmRleCA2YTI3YmU1ZjY3OWVmMDQzNDA2OGVjOTI1NWQzMjlhZmQ4NDcz
OGM2Li4zYWQzMjg0YzNhZjJmNDQ3MGQ2MjFhOWRjMjI1MTdmODkzZTNmMzYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpZiAhT1MoREFSV0lOKSAmJiAhVVNF
KFdFQkFVRElPX01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9f
R1NUUkVBTUVSKSAmJiAhVVNFKFdFQkFVRElPX0lQUCkKKyNpZiAhT1MoREFSV0lOKSAmJiAhVVNF
KFdFQkFVRElPX01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVESU9f
R1NUUkVBTUVSKSAmJiAhVVNFKFdFQkFVRElPX0lQUCkgJiYgIVVTRShXRUJBVURJT19PUEVOTUFY
X0RMX0ZGVCkKIAogI2luY2x1ZGUgIkZGVEZyYW1lLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2FuZHJvaWQvRkZURnJhbWVPcGVuTUFYREwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGRlNjlkNmExMGEwZTk5MGFlZjgxOTlmMWEzMjA1ODNkMWYzNWUyMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2FuZHJvaWQvRkZU
RnJhbWVPcGVuTUFYREwuY3BwCkBAIC0wLDAgKzEsMTk4IEBACisvKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaWYgT1MoQU5EUk9JRCkgJiYgVVNFKFdF
QkFVRElPX09QRU5NQVhfRExfRkZUKQorCisjaW5jbHVkZSAiRkZURnJhbWUuaCIKKworI2luY2x1
ZGUgIkF1ZGlvQXJyYXkuaCIKKyNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCisjaW5jbHVkZSAiZGwv
c3AvYXBpL2FybVNQLmgiCisjaW5jbHVkZSAiZGwvc3AvYXBpL29teFNQLmgiCisKKyNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGludCBr
TWF4RkZUUG93MlNpemUgPSAxNTsKKworLy8gTm9ybWFsIGNvbnN0cnVjdG9yOiBhbGxvY2F0ZXMg
Zm9yIGEgZ2l2ZW4gZmZ0U2l6ZS4KK0ZGVEZyYW1lOjpGRlRGcmFtZSh1bnNpZ25lZCBmZnRTaXpl
KQorICAgIDogbV9GRlRTaXplKGZmdFNpemUpCisgICAgLCBtX2xvZzJGRlRTaXplKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihsb2cyKGZmdFNpemUpKSkKKyAgICAsIG1fZm9yd2FyZENvbnRleHQoMCkK
KyAgICAsIG1faW52ZXJzZUNvbnRleHQoMCkKKyAgICAsIG1fY29tcGxleERhdGEoZmZ0U2l6ZSkK
KyAgICAsIG1fcmVhbERhdGEoZmZ0U2l6ZSAvIDIpCisgICAgLCBtX2ltYWdEYXRhKGZmdFNpemUg
LyAyKQoreworICAgIC8vIFdlIG9ubHkgYWxsb3cgcG93ZXIgb2YgdHdvLgorICAgIEFTU0VSVCgx
VUwgPDwgbV9sb2cyRkZUU2l6ZSA9PSBtX0ZGVFNpemUpOworCisgICAgbV9mb3J3YXJkQ29udGV4
dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworICAgIG1faW52ZXJzZUNvbnRleHQg
PSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKK30KKworLy8gQ3JlYXRlcyBhIGJsYW5r
L2VtcHR5IGZyYW1lIChpbnRlcnBvbGF0ZSgpIG11c3QgbGF0ZXIgYmUgY2FsbGVkKS4KK0ZGVEZy
YW1lOjpGRlRGcmFtZSgpCisgICAgOiBtX0ZGVFNpemUoMCkKKyAgICAsIG1fbG9nMkZGVFNpemUo
MCkKKyAgICAsIG1fZm9yd2FyZENvbnRleHQoMCkKKyAgICAsIG1faW52ZXJzZUNvbnRleHQoMCkK
K3sKK30KKworLy8gQ29weSBjb25zdHJ1Y3Rvci4KK0ZGVEZyYW1lOjpGRlRGcmFtZShjb25zdCBG
RlRGcmFtZSYgZnJhbWUpCisgICAgOiBtX0ZGVFNpemUoZnJhbWUubV9GRlRTaXplKQorICAgICwg
bV9sb2cyRkZUU2l6ZShmcmFtZS5tX2xvZzJGRlRTaXplKQorICAgICwgbV9mb3J3YXJkQ29udGV4
dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQorICAgICwgbV9jb21wbGV4RGF0YShmcmFt
ZS5tX0ZGVFNpemUpCisgICAgLCBtX3JlYWxEYXRhKGZyYW1lLm1fRkZUU2l6ZSAvIDIpCisgICAg
LCBtX2ltYWdEYXRhKGZyYW1lLm1fRkZUU2l6ZSAvIDIpCit7CisgICAgbV9mb3J3YXJkQ29udGV4
dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworICAgIG1faW52ZXJzZUNvbnRleHQg
PSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKworICAgIC8vIENvcHkvc2V0dXAgZnJh
bWUgZGF0YS4KKyAgICB1bnNpZ25lZCBuYnl0ZXMgPSBzaXplb2YoZmxvYXQpICogKG1fRkZUU2l6
ZSAvIDIpOworICAgIG1lbWNweShyZWFsRGF0YSgpLCBmcmFtZS5yZWFsRGF0YSgpLCBuYnl0ZXMp
OworICAgIG1lbWNweShpbWFnRGF0YSgpLCBmcmFtZS5pbWFnRGF0YSgpLCBuYnl0ZXMpOworfQor
Cit2b2lkIEZGVEZyYW1lOjppbml0aWFsaXplKCkKK3sKK30KKwordm9pZCBGRlRGcmFtZTo6Y2xl
YW51cCgpCit7Cit9CisKK0ZGVEZyYW1lOjp+RkZURnJhbWUoKQoreworICAgIGlmIChtX2Zvcndh
cmRDb250ZXh0KQorICAgICAgICBmcmVlKG1fZm9yd2FyZENvbnRleHQpOworICAgIGlmIChtX2lu
dmVyc2VDb250ZXh0KQorICAgICAgICBmcmVlKG1faW52ZXJzZUNvbnRleHQpOworfQorCit2b2lk
IEZGVEZyYW1lOjptdWx0aXBseShjb25zdCBGRlRGcmFtZSYgZnJhbWUpCit7CisgICAgRkZURnJh
bWUmIGZyYW1lMSA9ICp0aGlzOworICAgIEZGVEZyYW1lJiBmcmFtZTIgPSBjb25zdF9jYXN0PEZG
VEZyYW1lJj4oZnJhbWUpOworCisgICAgZmxvYXQqIHJlYWxQMSA9IGZyYW1lMS5yZWFsRGF0YSgp
OworICAgIGZsb2F0KiBpbWFnUDEgPSBmcmFtZTEuaW1hZ0RhdGEoKTsKKyAgICBjb25zdCBmbG9h
dCogcmVhbFAyID0gZnJhbWUyLnJlYWxEYXRhKCk7CisgICAgY29uc3QgZmxvYXQqIGltYWdQMiA9
IGZyYW1lMi5pbWFnRGF0YSgpOworCisgICAgdW5zaWduZWQgaGFsZlNpemUgPSBmZnRTaXplKCkg
LyAyOworICAgIGZsb2F0IHJlYWwwID0gcmVhbFAxWzBdOworICAgIGZsb2F0IGltYWcwID0gaW1h
Z1AxWzBdOworCisgICAgVmVjdG9yTWF0aDo6enZtdWwocmVhbFAxLCBpbWFnUDEsIHJlYWxQMiwg
aW1hZ1AyLCByZWFsUDEsIGltYWdQMSwgaGFsZlNpemUpOyAKKworICAgIC8vIE11bHRpcGx5IHRo
ZSBwYWNrZWQgREMvbnlxdWlzdCBjb21wb25lbnQKKyAgICByZWFsUDFbMF0gPSByZWFsMCAqIHJl
YWxQMlswXTsKKyAgICBpbWFnUDFbMF0gPSBpbWFnMCAqIGltYWdQMlswXTsKK30KKwordm9pZCBG
RlRGcmFtZTo6ZG9GRlQoY29uc3QgZmxvYXQqIGRhdGEpCit7CisgICAgQVNTRVJUKG1fZm9yd2Fy
ZENvbnRleHQpOworCisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpIHsKKyAgICAgICAgQXVkaW9G
bG9hdEFycmF5IGNvbXBsZXhGRlQobV9GRlRTaXplICsgMik7CisKKyAgICAgICAgb214U1BfRkZU
RndkX1JUb0NDU19GMzJfU2ZzKGRhdGEsIGNvbXBsZXhGRlQuZGF0YSgpLCBtX2ZvcndhcmRDb250
ZXh0KTsKKworICAgICAgICAvLyBTcGxpdCBGRlQgZGF0YSBpbnRvIHJlYWwgYW5kIGltYWdpbmFy
eSBhcnJheXMuCisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBtX0ZGVFNpemUgLyAy
OyArK2spIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIgKiBrOworICAgICAgICAgICAgbV9y
ZWFsRGF0YVtrXSA9IGNvbXBsZXhGRlRbaW5kZXhdOworICAgICAgICAgICAgbV9pbWFnRGF0YVtr
XSA9IGNvbXBsZXhGRlRbaW5kZXggKyAxXTsKKyAgICAgICAgfQorICAgICAgICBtX3JlYWxEYXRh
WzBdID0gY29tcGxleEZGVFswXTsKKyAgICAgICAgbV9pbWFnRGF0YVswXSA9IGNvbXBsZXhGRlRb
bV9GRlRTaXplXTsKKyAgICB9Cit9CisKK3ZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZGVChmbG9h
dCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9pbnZlcnNlQ29udGV4dCk7CisKKyAgICBpZiAobV9p
bnZlcnNlQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgZmZ0RGF0YShtX0ZGVFNp
emUgKyAyKTsKKworICAgICAgICAvLyBQYWNrIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0YSBp
bnRvIHRoZSBjb21wbGV4IGFycmF5IGZvcm1hdAorICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSAx
OyBrIDwgbV9GRlRTaXplIC8gMjsgKytrKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAyICog
azsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFsRGF0YVtrXTsKKyAgICAgICAg
ICAgIGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107CisgICAgICAgIH0KKyAgICAg
ICAgZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07CisgICAgICAgIGZmdERhdGFbMV0gPSAwOwor
ICAgICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRhWzBdOworICAgICAgICBmZnRE
YXRhW21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAgb214U1BfRkZUSW52X0NDU1Rv
Ul9GMzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVyc2VDb250ZXh0KTsKKyAgICB9
Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6cmVhbERhdGEoKSBjb25zdAoreworICAgIHJldHVybiBj
b25zdF9jYXN0PGZsb2F0Kj4obV9yZWFsRGF0YS5kYXRhKCkpOworfQorCitmbG9hdCogRkZURnJh
bWU6OmltYWdEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+KG1f
aW1hZ0RhdGEuZGF0YSgpKTsKK30KKworT01YRkZUU3BlY19SX0YzMiogRkZURnJhbWU6OmNvbnRl
eHRGb3JTaXplKHVuc2lnbmVkIGxvZzJGRlRTaXplKQoreworICAgIEFTU0VSVChsb2cyRkZUU2l6
ZSk7CisgICAgQVNTRVJUKGxvZzJGRlRTaXplIDwga01heEZGVFBvdzJTaXplKTsKKyAgICBpbnQg
YnVmU2l6ZTsKKyAgICBPTVhSZXN1bHQgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX0Yz
Mihsb2cyRkZUU2l6ZSwgJmJ1ZlNpemUpOworCisgICAgaWYgKHN0YXR1cyA9PSBPTVhfU3RzX05v
RXJyKSB7CisgICAgICAgIE9NWEZGVFNwZWNfUl9GMzIqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxP
TVhGRlRTcGVjX1JfRjMyKj4obWFsbG9jKGJ1ZlNpemUpKTsKKyAgICAgICAgb214U1BfRkZUSW5p
dF9SX0YzMihjb250ZXh0LCBsb2cyRkZUU2l6ZSk7CisgICAgICAgIHJldHVybiBjb250ZXh0Owor
ICAgIH0KKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyAjaWYgT1MoQU5EUk9JRCkgJiYgIVVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkKaW5kZXggZDE5MTRiZDIyMDRlYjJlZWViOTEwMjNjMjhlZjYyOTIxNWM5MzE0MS4uYTY5
YTI2MDA1NTMxOWM3MjdlYzM2NDk5ZDZmM2I3MDU1YTU1MDNmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTgzLDcgKzE4Myw2IEBACiAgICAgICAgICAgIyBGSVhNRTog
RGlzYWJsZSBvbmNlIHRoZSBsaW5raW5nIGVycm9yIGhhcyBiZWVuIHJlc29sdmVkLgogICAgICAg
ICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NjM2CiAgICAg
ICAgICAgJ0VOQUJMRV9TSEFSRURfV09SS0VSUz0xJywKLSAgICAgICAgICAnRU5BQkxFX1dFQl9B
VURJTz0wJywKICAgICAgICAgICAnV1RGX1VTRV9OQVRJVkVfRlVMTFNDUkVFTl9WSURFTz0xJywK
ICAgICAgICAgXSwKICAgICAgICAgJ2VuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcnOiAxLApAQCAt
MjI1LDkgKzIyNCwyMyBAQAogICAgICAgICBdLAogICAgICAgfV0sCiAgICAgICAjIE1hYyBPUyBY
IHVzZXMgQWNjZWxlcmF0ZS5mcmFtZXdvcmsgRkZUIGJ5IGRlZmF1bHQgaW5zdGVhZCBvZiBGRm1w
ZWcuCi0gICAgICBbJ09TIT0ibWFjIiBhbmQgT1MhPSJhbmRyb2lkIicsIHsKLSAgICAgICAgJ2Zl
YXR1cmVfZGVmaW5lcyc6IFsKLSAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9MScs
CisgICAgICBbJ09TIT0ibWFjIicsIHsKKyAgICAgICAgJ2NvbmRpdGlvbnMnIDogWworICAgICAg
ICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogWworICAg
ICAgICAgICAgICBbJ3VzZV9vcGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAgICAgICAgICAgICAn
ZmVhdHVyZV9kZWZpbmVzJzogWworICAgICAgICAgICAgICAgICAgJ1dURl9VU0VfV0VCQVVESU9f
T1BFTk1BWF9ETF9GRlQ9MScsCisgICAgICAgICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0x
JywKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICB9XSwKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgfSwgeworICAgICAgICAgICAgICdmZWF0dXJlX2RlZmluZXMnOiBbCisgICAg
ICAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9MScsCisgICAgICAgICAgICAgICAn
RU5BQkxFX1dFQl9BVURJTz0xJywKKyAgICAgICAgICAgICBdLAorICAgICAgICAgIH1dLAogICAg
ICAgICBdLAogICAgICAgfV0sCiAgICAgICBbJ09TPT0id2luIiBvciBPUz09ImFuZHJvaWQiIG9y
IHVzZV94MTE9PTEnLCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191793</attachid>
            <date>2013-03-06 10:57:25 -0800</date>
            <delta_ts>2013-03-07 11:24:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130306105330.patch</filename>
            <type>text/plain</type>
            <size>14554</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIzMzM1MGMxOTIxZjgz
NTZiNWJmY2M0ZjRjNWVjYTRmZGM5ZmQ4MC4uMjYyOGIwOWQ1NGM0NTEwMDFhMDc3NjIxODk1M2Nh
MmNjMmE1M2ViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgYW5kCisgICAgICAgIEZGVEZy
YW1lT3Blbk1BWERMLmNwcCB3aGVuIHVzZV9vcGVubWF4X2RsX2ZmdCBpcyBlbmFibGVkLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkIHNvdXJjZSBGRlRGcmFtZU9wZW5NQVhETC5jcHAKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0FycmF5OjphbGxvY2F0ZSk6IE5lZWQgMzItYnl0ZSBhbGlnbnRtZW50IHdpdGggdGhlCisg
ICAgICAgIE9wZW5NQVggREwgRkZULgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
Lmg6CisgICAgICAgIChGRlRGcmFtZSk6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwOiBTdXBwb3J0IE9wZW5NQVggREwgRkZU
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETC5jcHA6
IEFkZGVkLiAgSW1wbGVtZW50cyB0aGUKKyAgICAgICAgbmVjZXNzYXJ5IGludGVyZmFjZSB1c2lu
ZyB0aGUgT3Blbk1BWCBETCBGRlQgcm91dGluZXMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpGRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRG
cmFtZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y2xlYW51cCk6
CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6fkZGVEZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6ZG9G
RlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvSW52ZXJzZUZGVCk6CisgICAgICAg
IChXZWJDb3JlOjpGRlRGcmFtZTo6cmVhbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJh
bWU6OmltYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpjb250ZXh0Rm9yU2l6
ZSk6CisKIDIwMTMtMDMtMDQgIFVkYXkgS2lyYW4gIDx1ZGF5a2lyYW5AbW90b3JvbGEuY29tPgog
CiAgICAgICAgIGdldFByb3BlcnR5VmFsdWUgZm9yIC13ZWJraXQtdGV4dC1zdHJva2UgcmV0dXJu
cyBudWxsLCBzaG91bGQgY29tcHV0ZSB0aGUgc2hvcnRoYW5kIHZhbHVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDBlNWE2ZDZmNzY3YzE3OWJlNWY1OGZlYWFkMjUxZTY0MGFlMTljZjcu
LmI2ZTUwZmFmZDAwN2NmN2IyMTIyYTk3ODk0M2JkMzE0NzgwYjlmMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMDUgIFJheW1vbmQgVG95ICA8
cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZU
IGluIFdlYkF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDk3NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZlYXR1cmVzLmd5cGk6IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBE
TCBGRlQuCisKIDIwMTMtMDMtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNv
bT4KIAogICAgICAgICBBWDogY2VsbEZvckNvbHVtbkFuZFJvdyBmYWlscyBmb3IgdGFibGVzIHdp
dGggaGlkZGVuIHRhYmxlIGNlbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CmluZGV4IDdjZDU5MTU2OThlOTgyZWEwODM2ZGI0NjM4MTRmMjYwY2M2YTU1MDQuLjAzNjg3ZDMw
MmY2YzU3ZDRlMTUzNmI4MmE2NmU4Y2EyYmYxMzFlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCkBAIC0yODAsNiArMjgwLDExIEBACiAgICAgICAgICAgJzwoU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncy9WOERlcml2ZWRTb3VyY2VzMTkuY3Bw
JywKICAgICAgICAgXSwKICAgICAgIH1dLAorICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9v
cGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAgICAnd2ViY29yZV9pbmNsdWRlX2RpcnMnOiBbCisg
ICAgICAgICAnPChERVBUSCkvdGhpcmRfcGFydHkvb3Blbm1heF9kbCcKKyAgICAgICBdCisgICAg
IH1dLAogICAgIF0sCiAgIH0sICAjIHZhcmlhYmxlcwogCkBAIC0xNTc2LDYgKzE1ODEsMTYgQEAK
ICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3RoaXJkX3BhcnR5L2ZmbXBlZy9mZm1w
ZWcuZ3lwOmZmbXBlZycsCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCisgICAgICAgWyciV1RG
X1VTRV9XRUJBVURJT19PUEVOTUFYX0RMX0ZGVD0xIiBpbiBmZWF0dXJlX2RlZmluZXMnLCB7Cisg
ICAgICAgICAnZGlyZWN0X2RlcGVuZGVudF9zZXR0aW5ncyc6IHsKKyAgICAgICAgICAgJ2luY2x1
ZGVfZGlycyc6IFsKKyAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0
eS9vcGVubWF4X2RsJywKKyAgICAgICAgICAgXSwKKyAgICAgICAgIH0sCisgICAgICAgICAnZGVw
ZW5kZW5jaWVzJzogWworICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0
eS9vcGVubWF4X2RsL2RsL2RsLmd5cDpvcGVubWF4X2RsJywKKyAgICAgICAgIF0sCisgICAgICAg
fV0sCiAgICAgICAgICMgV2luZG93cyBzaGFyZWQgYnVpbGRlciBuZWVkcyBleHRyYSBoZWxwIGZv
ciBsaW5rYWdlCiAgICAgICAgIFsnT1M9PSJ3aW4iIGFuZCAiV1RGX1VTRV9XRUJBVURJT19GRk1Q
RUc9MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgewogICAgICAgICAgICdleHBvcnRfZGVwZW5kZW50
X3NldHRpbmdzJzogWwpAQCAtMTkyMyw2ICsxOTM4LDcgQEAKICAgICAgICAgICAgIFsnZXhjbHVk
ZScsICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1cXC5jcHAkJ10sCiAg
ICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVkRNWFBh
cnNlclxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ZvbnRDYWNoZVNraWFcXC5jcHAkJ10sCisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAn
cGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETFxcLmNwcCQnXSwKICAgICAg
ICAgICBdLAogICAgICAgICB9LCB7ICMgT1MhPSJhbmRyb2lkIgogICAgICAgICAgICdzb3VyY2Vz
Lyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0MTFiYjcxMzA1ZGEyMzExYjRiYzg5MmU0NDc0M2Iz
NzA4NzQ5ZmNiLi4zNjhhMmFhNDRiMjkxMzA2YWI5NDU3NDRlYWFiNDBmMDgyOTkxNzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0zNzc4LDYgKzM3NzgsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2F1ZGlvL1ZlY3Rvck1hdGguaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vWmVyb1Bv
bGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9aZXJvUG9sZS5oJywKKyAgICAg
ICAgICAgICdwbGF0Zm9ybS9hdWRpby9hbmRyb2lkL0ZGVEZyYW1lT3Blbk1BWERMLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vQXVkaW9CdXNDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvRGVzdGluYXRpb25D
aHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlv
RGVzdGluYXRpb25DaHJvbWl1bS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQXJyYXkuaAppbmRleCAwYTZkODczNDgyZGY3YzkzZDhkY2EwODU1MGI5YWE0ZTIxNzFkOGNm
Li5iMTYxY2YyNjI2ZjJiZDk0N2I0MmRmOGVlMjdiZTQ2MmNhYWUwM2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1Ymxp
YzoKICAgICAgIAogICAgICAgICB1bnNpZ25lZCBpbml0aWFsU2l6ZSA9IHNpemVvZihUKSAqIG47
CiAKLSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lmIFVTRShXRUJBVURJT19GRk1QRUcpIHx8
IFVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKICAgICAgICAgY29uc3Qgc2l6ZV90IGFsaWdu
bWVudCA9IDMyOwogI2Vsc2UKICAgICAgICAgY29uc3Qgc2l6ZV90IGFsaWdubWVudCA9IDE2Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKaW5kZXggNTVhZDA5YmU2M2Y1
NWU4OGYyYTQzOGQ1ZTgzZTFhZDQxYzFiZmFhNy4uNTIyY2I1ZmJjODAyYTNmOTFhMjEwZDEzNDk4
ZDgzYTI1OTY0YjM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
RkZURnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5o
CkBAIC01NCw5ICs1NCwxMiBAQCBHX0JFR0lOX0RFQ0xTCiBHX0VORF9ERUNMUwogI2VuZGlmIC8v
IFVTRShXRUJBVURJT19HU1RSRUFNRVIpCiAKLSNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2lm
IFVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1Au
aCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvb214U1AuaCIKKyNlbGlmIFVTRShXRUJBVURJT19GRk1Q
RUcpCiBzdHJ1Y3QgUkRGVENvbnRleHQ7Ci0jZW5kaWYgLy8gVVNFKFdFQkFVRElPX0ZGTVBFRykK
KyNlbmRpZgogCiAjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAogCkBAIC0xNzcsNiArMTgw
LDE3IEBAIHByaXZhdGU6CiAgICAgQXVkaW9GbG9hdEFycmF5IG1faW1hZ0RhdGE7CiAjZW5kaWYg
Ly8gVVNFKFdFQkFVRElPX0lQUCkKIAorI2lmIFVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkK
KyAgICBzdGF0aWMgT01YRkZUU3BlY19SX0YzMiogY29udGV4dEZvclNpemUodW5zaWduZWQgbG9n
MkZGVFNpemUpOworCisgICAgT01YRkZUU3BlY19SX0YzMiogbV9mb3J3YXJkQ29udGV4dDsKKyAg
ICBPTVhGRlRTcGVjX1JfRjMyKiBtX2ludmVyc2VDb250ZXh0OworCisgICAgQXVkaW9GbG9hdEFy
cmF5IG1fY29tcGxleERhdGE7CisgICAgQXVkaW9GbG9hdEFycmF5IG1fcmVhbERhdGE7CisgICAg
QXVkaW9GbG9hdEFycmF5IG1faW1hZ0RhdGE7CisjZW5kaWYKKyAgICAKICNlbmRpZiAvLyAhVVNF
X0FDQ0VMRVJBVEVfRkZUCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
RkZURnJhbWVTdHViLmNwcAppbmRleCA2YTI3YmU1ZjY3OWVmMDQzNDA2OGVjOTI1NWQzMjlhZmQ4
NDczOGM2Li4zYWQzMjg0YzNhZjJmNDQ3MGQ2MjFhOWRjMjI1MTdmODkzZTNmMzYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKQEAgLTI5LDcg
KzI5LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpZiAhT1MoREFSV0lOKSAmJiAh
VVNFKFdFQkFVRElPX01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVE
SU9fR1NUUkVBTUVSKSAmJiAhVVNFKFdFQkFVRElPX0lQUCkKKyNpZiAhT1MoREFSV0lOKSAmJiAh
VVNFKFdFQkFVRElPX01LTCkgJiYgIVVTRShXRUJBVURJT19GRk1QRUcpICYmICFVU0UoV0VCQVVE
SU9fR1NUUkVBTUVSKSAmJiAhVVNFKFdFQkFVRElPX0lQUCkgJiYgIVVTRShXRUJBVURJT19PUEVO
TUFYX0RMX0ZGVCkKIAogI2luY2x1ZGUgIkZGVEZyYW1lLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2FuZHJvaWQvRkZURnJhbWVPcGVuTUFYREwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vYW5kcm9pZC9GRlRGcmFtZU9wZW5NQVhETC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGRlNjlkNmExMGEwZTk5MGFlZjgxOTlmMWEzMjA1ODNkMWYzNWUyMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2FuZHJvaWQv
RkZURnJhbWVPcGVuTUFYREwuY3BwCkBAIC0wLDAgKzEsMTk4IEBACisvKiBDb3B5cmlnaHQgKEMp
IDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaWYgT1MoQU5EUk9JRCkgJiYgVVNF
KFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorCisjaW5jbHVkZSAiRkZURnJhbWUuaCIKKworI2lu
Y2x1ZGUgIkF1ZGlvQXJyYXkuaCIKKyNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCisjaW5jbHVkZSAi
ZGwvc3AvYXBpL2FybVNQLmgiCisjaW5jbHVkZSAiZGwvc3AvYXBpL29teFNQLmgiCisKKyNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGlu
dCBrTWF4RkZUUG93MlNpemUgPSAxNTsKKworLy8gTm9ybWFsIGNvbnN0cnVjdG9yOiBhbGxvY2F0
ZXMgZm9yIGEgZ2l2ZW4gZmZ0U2l6ZS4KK0ZGVEZyYW1lOjpGRlRGcmFtZSh1bnNpZ25lZCBmZnRT
aXplKQorICAgIDogbV9GRlRTaXplKGZmdFNpemUpCisgICAgLCBtX2xvZzJGRlRTaXplKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihsb2cyKGZmdFNpemUpKSkKKyAgICAsIG1fZm9yd2FyZENvbnRleHQo
MCkKKyAgICAsIG1faW52ZXJzZUNvbnRleHQoMCkKKyAgICAsIG1fY29tcGxleERhdGEoZmZ0U2l6
ZSkKKyAgICAsIG1fcmVhbERhdGEoZmZ0U2l6ZSAvIDIpCisgICAgLCBtX2ltYWdEYXRhKGZmdFNp
emUgLyAyKQoreworICAgIC8vIFdlIG9ubHkgYWxsb3cgcG93ZXIgb2YgdHdvLgorICAgIEFTU0VS
VCgxVUwgPDwgbV9sb2cyRkZUU2l6ZSA9PSBtX0ZGVFNpemUpOworCisgICAgbV9mb3J3YXJkQ29u
dGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworICAgIG1faW52ZXJzZUNvbnRl
eHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKK30KKworLy8gQ3JlYXRlcyBhIGJs
YW5rL2VtcHR5IGZyYW1lIChpbnRlcnBvbGF0ZSgpIG11c3QgbGF0ZXIgYmUgY2FsbGVkKS4KK0ZG
VEZyYW1lOjpGRlRGcmFtZSgpCisgICAgOiBtX0ZGVFNpemUoMCkKKyAgICAsIG1fbG9nMkZGVFNp
emUoMCkKKyAgICAsIG1fZm9yd2FyZENvbnRleHQoMCkKKyAgICAsIG1faW52ZXJzZUNvbnRleHQo
MCkKK3sKK30KKworLy8gQ29weSBjb25zdHJ1Y3Rvci4KK0ZGVEZyYW1lOjpGRlRGcmFtZShjb25z
dCBGRlRGcmFtZSYgZnJhbWUpCisgICAgOiBtX0ZGVFNpemUoZnJhbWUubV9GRlRTaXplKQorICAg
ICwgbV9sb2cyRkZUU2l6ZShmcmFtZS5tX2xvZzJGRlRTaXplKQorICAgICwgbV9mb3J3YXJkQ29u
dGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQorICAgICwgbV9jb21wbGV4RGF0YShm
cmFtZS5tX0ZGVFNpemUpCisgICAgLCBtX3JlYWxEYXRhKGZyYW1lLm1fRkZUU2l6ZSAvIDIpCisg
ICAgLCBtX2ltYWdEYXRhKGZyYW1lLm1fRkZUU2l6ZSAvIDIpCit7CisgICAgbV9mb3J3YXJkQ29u
dGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworICAgIG1faW52ZXJzZUNvbnRl
eHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKworICAgIC8vIENvcHkvc2V0dXAg
ZnJhbWUgZGF0YS4KKyAgICB1bnNpZ25lZCBuYnl0ZXMgPSBzaXplb2YoZmxvYXQpICogKG1fRkZU
U2l6ZSAvIDIpOworICAgIG1lbWNweShyZWFsRGF0YSgpLCBmcmFtZS5yZWFsRGF0YSgpLCBuYnl0
ZXMpOworICAgIG1lbWNweShpbWFnRGF0YSgpLCBmcmFtZS5pbWFnRGF0YSgpLCBuYnl0ZXMpOwor
fQorCit2b2lkIEZGVEZyYW1lOjppbml0aWFsaXplKCkKK3sKK30KKwordm9pZCBGRlRGcmFtZTo6
Y2xlYW51cCgpCit7Cit9CisKK0ZGVEZyYW1lOjp+RkZURnJhbWUoKQoreworICAgIGlmIChtX2Zv
cndhcmRDb250ZXh0KQorICAgICAgICBmcmVlKG1fZm9yd2FyZENvbnRleHQpOworICAgIGlmICht
X2ludmVyc2VDb250ZXh0KQorICAgICAgICBmcmVlKG1faW52ZXJzZUNvbnRleHQpOworfQorCit2
b2lkIEZGVEZyYW1lOjptdWx0aXBseShjb25zdCBGRlRGcmFtZSYgZnJhbWUpCit7CisgICAgRkZU
RnJhbWUmIGZyYW1lMSA9ICp0aGlzOworICAgIEZGVEZyYW1lJiBmcmFtZTIgPSBjb25zdF9jYXN0
PEZGVEZyYW1lJj4oZnJhbWUpOworCisgICAgZmxvYXQqIHJlYWxQMSA9IGZyYW1lMS5yZWFsRGF0
YSgpOworICAgIGZsb2F0KiBpbWFnUDEgPSBmcmFtZTEuaW1hZ0RhdGEoKTsKKyAgICBjb25zdCBm
bG9hdCogcmVhbFAyID0gZnJhbWUyLnJlYWxEYXRhKCk7CisgICAgY29uc3QgZmxvYXQqIGltYWdQ
MiA9IGZyYW1lMi5pbWFnRGF0YSgpOworCisgICAgdW5zaWduZWQgaGFsZlNpemUgPSBmZnRTaXpl
KCkgLyAyOworICAgIGZsb2F0IHJlYWwwID0gcmVhbFAxWzBdOworICAgIGZsb2F0IGltYWcwID0g
aW1hZ1AxWzBdOworCisgICAgVmVjdG9yTWF0aDo6enZtdWwocmVhbFAxLCBpbWFnUDEsIHJlYWxQ
MiwgaW1hZ1AyLCByZWFsUDEsIGltYWdQMSwgaGFsZlNpemUpOyAKKworICAgIC8vIE11bHRpcGx5
IHRoZSBwYWNrZWQgREMvbnlxdWlzdCBjb21wb25lbnQKKyAgICByZWFsUDFbMF0gPSByZWFsMCAq
IHJlYWxQMlswXTsKKyAgICBpbWFnUDFbMF0gPSBpbWFnMCAqIGltYWdQMlswXTsKK30KKwordm9p
ZCBGRlRGcmFtZTo6ZG9GRlQoY29uc3QgZmxvYXQqIGRhdGEpCit7CisgICAgQVNTRVJUKG1fZm9y
d2FyZENvbnRleHQpOworCisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpIHsKKyAgICAgICAgQXVk
aW9GbG9hdEFycmF5IGNvbXBsZXhGRlQobV9GRlRTaXplICsgMik7CisKKyAgICAgICAgb214U1Bf
RkZURndkX1JUb0NDU19GMzJfU2ZzKGRhdGEsIGNvbXBsZXhGRlQuZGF0YSgpLCBtX2ZvcndhcmRD
b250ZXh0KTsKKworICAgICAgICAvLyBTcGxpdCBGRlQgZGF0YSBpbnRvIHJlYWwgYW5kIGltYWdp
bmFyeSBhcnJheXMuCisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBtX0ZGVFNpemUg
LyAyOyArK2spIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIgKiBrOworICAgICAgICAgICAg
bV9yZWFsRGF0YVtrXSA9IGNvbXBsZXhGRlRbaW5kZXhdOworICAgICAgICAgICAgbV9pbWFnRGF0
YVtrXSA9IGNvbXBsZXhGRlRbaW5kZXggKyAxXTsKKyAgICAgICAgfQorICAgICAgICBtX3JlYWxE
YXRhWzBdID0gY29tcGxleEZGVFswXTsKKyAgICAgICAgbV9pbWFnRGF0YVswXSA9IGNvbXBsZXhG
RlRbbV9GRlRTaXplXTsKKyAgICB9Cit9CisKK3ZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZGVChm
bG9hdCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9pbnZlcnNlQ29udGV4dCk7CisKKyAgICBpZiAo
bV9pbnZlcnNlQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgZmZ0RGF0YShtX0ZG
VFNpemUgKyAyKTsKKworICAgICAgICAvLyBQYWNrIHRoZSByZWFsIGFuZCBpbWFnaW5hcnkgZGF0
YSBpbnRvIHRoZSBjb21wbGV4IGFycmF5IGZvcm1hdAorICAgICAgICBmb3IgKHVuc2lnbmVkIGsg
PSAxOyBrIDwgbV9GRlRTaXplIC8gMjsgKytrKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAy
ICogazsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFsRGF0YVtrXTsKKyAgICAg
ICAgICAgIGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107CisgICAgICAgIH0KKyAg
ICAgICAgZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07CisgICAgICAgIGZmdERhdGFbMV0gPSAw
OworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRhWzBdOworICAgICAgICBm
ZnREYXRhW21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAgb214U1BfRkZUSW52X0ND
U1RvUl9GMzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVyc2VDb250ZXh0KTsKKyAg
ICB9Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6cmVhbERhdGEoKSBjb25zdAoreworICAgIHJldHVy
biBjb25zdF9jYXN0PGZsb2F0Kj4obV9yZWFsRGF0YS5kYXRhKCkpOworfQorCitmbG9hdCogRkZU
RnJhbWU6OmltYWdEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+
KG1faW1hZ0RhdGEuZGF0YSgpKTsKK30KKworT01YRkZUU3BlY19SX0YzMiogRkZURnJhbWU6OmNv
bnRleHRGb3JTaXplKHVuc2lnbmVkIGxvZzJGRlRTaXplKQoreworICAgIEFTU0VSVChsb2cyRkZU
U2l6ZSk7CisgICAgQVNTRVJUKGxvZzJGRlRTaXplIDwga01heEZGVFBvdzJTaXplKTsKKyAgICBp
bnQgYnVmU2l6ZTsKKyAgICBPTVhSZXN1bHQgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9S
X0YzMihsb2cyRkZUU2l6ZSwgJmJ1ZlNpemUpOworCisgICAgaWYgKHN0YXR1cyA9PSBPTVhfU3Rz
X05vRXJyKSB7CisgICAgICAgIE9NWEZGVFNwZWNfUl9GMzIqIGNvbnRleHQgPSBzdGF0aWNfY2Fz
dDxPTVhGRlRTcGVjX1JfRjMyKj4obWFsbG9jKGJ1ZlNpemUpKTsKKyAgICAgICAgb214U1BfRkZU
SW5pdF9SX0YzMihjb250ZXh0LCBsb2cyRkZUU2l6ZSk7CisgICAgICAgIHJldHVybiBjb250ZXh0
OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyAjaWYgT1MoQU5EUk9JRCkgJiYgIVVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZG
VCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1
cmVzLmd5cGkKaW5kZXggZDE5MTRiZDIyMDRlYjJlZWViOTEwMjNjMjhlZjYyOTIxNWM5MzE0MS4u
YTY5YTI2MDA1NTMxOWM3MjdlYzM2NDk5ZDZmM2I3MDU1YTU1MDNmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTgzLDcgKzE4Myw2IEBACiAgICAgICAgICAgIyBGSVhN
RTogRGlzYWJsZSBvbmNlIHRoZSBsaW5raW5nIGVycm9yIGhhcyBiZWVuIHJlc29sdmVkLgogICAg
ICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NjM2CiAg
ICAgICAgICAgJ0VOQUJMRV9TSEFSRURfV09SS0VSUz0xJywKLSAgICAgICAgICAnRU5BQkxFX1dF
Ql9BVURJTz0wJywKICAgICAgICAgICAnV1RGX1VTRV9OQVRJVkVfRlVMTFNDUkVFTl9WSURFTz0x
JywKICAgICAgICAgXSwKICAgICAgICAgJ2VuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcnOiAxLApA
QCAtMjI1LDkgKzIyNCwyMyBAQAogICAgICAgICBdLAogICAgICAgfV0sCiAgICAgICAjIE1hYyBP
UyBYIHVzZXMgQWNjZWxlcmF0ZS5mcmFtZXdvcmsgRkZUIGJ5IGRlZmF1bHQgaW5zdGVhZCBvZiBG
Rm1wZWcuCi0gICAgICBbJ09TIT0ibWFjIiBhbmQgT1MhPSJhbmRyb2lkIicsIHsKLSAgICAgICAg
J2ZlYXR1cmVfZGVmaW5lcyc6IFsKLSAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9
MScsCisgICAgICBbJ09TIT0ibWFjIicsIHsKKyAgICAgICAgJ2NvbmRpdGlvbnMnIDogWworICAg
ICAgICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogWwor
ICAgICAgICAgICAgICBbJ3VzZV9vcGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAgICAgICAgICAg
ICAnZmVhdHVyZV9kZWZpbmVzJzogWworICAgICAgICAgICAgICAgICAgJ1dURl9VU0VfV0VCQVVE
SU9fT1BFTk1BWF9ETF9GRlQ9MScsCisgICAgICAgICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJ
Tz0xJywKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICB9XSwKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgfSwgeworICAgICAgICAgICAgICdmZWF0dXJlX2RlZmluZXMnOiBbCisg
ICAgICAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9MScsCisgICAgICAgICAgICAg
ICAnRU5BQkxFX1dFQl9BVURJTz0xJywKKyAgICAgICAgICAgICBdLAorICAgICAgICAgIH1dLAog
ICAgICAgICBdLAogICAgICAgfV0sCiAgICAgICBbJ09TPT0id2luIiBvciBPUz09ImFuZHJvaWQi
IG9yIHVzZV94MTE9PTEnLCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192053</attachid>
            <date>2013-03-07 11:22:13 -0800</date>
            <delta_ts>2013-03-25 09:14:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130307111817.patch</filename>
            <type>text/plain</type>
            <size>13789</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIzMzM1MGMxOTIxZjgz
NTZiNWJmY2M0ZjRjNWVjYTRmZGM5ZmQ4MC4uOGExNjkzMWFkNDRhNDllOTE1NzAxMTIyM2M2ODI3
YzgxNzk3Zjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTA1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgd2hlbiB1c2Vfb3Blbm1heF9k
bF9mZnQgaXMgZW5hYmxlZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBzb3VyY2UgRkZU
RnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRlKTogTmVlZCAz
Mi1ieXRlIGFsaWdudG1lbnQgd2l0aCB0aGUKKyAgICAgICAgT3Blbk1BWCBETCBGRlQuCisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKTogU3Vw
cG9ydCBPcGVuTUFYIERMIEZGVAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1
Yi5jcHA6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9GRlRGcmFtZU9wZW5NQVhETEFuZHJvaWQuY3BwOiBBZGRlZC4gIEltcGxlbWVudHMg
dGhlCisgICAgICAgIG5lY2Vzc2FyeSBpbnRlcmZhY2UgdXNpbmcgdGhlIE9wZW5NQVggREwgRkZU
IHJvdXRpbmVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFt
ZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNsZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbWFnRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y29udGV4dEZvclNpemUpOgorCiAyMDEzLTAzLTA0ICBV
ZGF5IEtpcmFuICA8dWRheWtpcmFuQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBnZXRQcm9wZXJ0
eVZhbHVlIGZvciAtd2Via2l0LXRleHQtc3Ryb2tlIHJldHVybnMgbnVsbCwgc2hvdWxkIGNvbXB1
dGUgdGhlIHNob3J0aGFuZCB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwZTVh
NmQ2Zjc2N2MxNzliZTVmNThmZWFhZDI1MWU2NDBhZTE5Y2Y3Li5iNmU1MGZhZmQwMDdjZjdiMjEy
MmE5Nzg5NDNiZDMxNDc4MGI5ZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDEzLTAzLTA1ICBSYXltb25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBp
OiBTdXBwb3J0IGJ1aWxkaW5nIHdpdGggdGhlIE9wZW5NQVggREwgRkZULgorCiAyMDEzLTAzLTA0
ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IGNl
bGxGb3JDb2x1bW5BbmRSb3cgZmFpbHMgZm9yIHRhYmxlcyB3aXRoIGhpZGRlbiB0YWJsZSBjZWxs
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCA3Y2Q1OTE1Njk4ZTk4
MmVhMDgzNmRiNDYzODE0ZjI2MGNjNmE1NTA0Li44NjIzMzcyOTQwMjI4ZmZmODMyYmUxNTdhNjI5
MGQ0N2Y5MDU5MDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJD
b3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAt
MjgwLDYgKzI4MCwxMSBAQAogICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93
ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291cmNlczE5LmNwcCcsCiAgICAgICAgIF0sCiAgICAg
ICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQiIGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7
CisgICAgICAgJ3dlYmNvcmVfaW5jbHVkZV9kaXJzJzogWworICAgICAgICAgJzwoREVQVEgpL3Ro
aXJkX3BhcnR5L29wZW5tYXhfZGwnCisgICAgICAgXQorICAgICB9XSwKICAgICBdLAogICB9LCAg
IyB2YXJpYWJsZXMKIApAQCAtMTU3Niw2ICsxNTgxLDE2IEBACiAgICAgICAgICAgICAnPChjaHJv
bWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9mZm1wZWcvZmZtcGVnLmd5cDpmZm1wZWcnLAogICAg
ICAgICAgIF0sCiAgICAgICAgIH1dLAorICAgICAgIFsnIldURl9VU0VfV0VCQVVESU9fT1BFTk1B
WF9ETF9GRlQ9MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBl
bmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAg
ICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heF9kbCcsCisgICAg
ICAgICAgIF0sCisgICAgICAgICB9LAorICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAg
ICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heF9kbC9kbC9kbC5n
eXA6b3Blbm1heF9kbCcsCisgICAgICAgICBdLAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRv
d3Mgc2hhcmVkIGJ1aWxkZXIgbmVlZHMgZXh0cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBb
J09TPT0id2luIiBhbmQgIldURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVm
aW5lcycsIHsKICAgICAgICAgICAnZXhwb3J0X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCA0MTFiYjcxMzA1ZGEyMzExYjRiYzg5MmU0NDc0M2IzNzA4NzQ5ZmNiLi40
ZTNlYzQwNDhiMzczMDE2MTU1NjA3ZWUzYzRmNzJhZGUxMGVmNjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zNzgxLDYgKzM3ODEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9t
aXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCmluZGV4IDBhNmQ4NzM0
ODJkZjdjOTNkOGRjYTA4NTUwYjlhYTRlMjE3MWQ4Y2YuLmIxNjFjZjI2MjZmMmJkOTQ3YjQyZGY4
ZWUyN2JlNDYyY2FhZTAzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0FycmF5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgCiAgICAgICAgIHVuc2ln
bmVkIGluaXRpYWxTaXplID0gc2l6ZW9mKFQpICogbjsKIAotI2lmIFVTRShXRUJBVURJT19GRk1Q
RUcpCisjaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykgfHwgVVNFKFdFQkFVRElPX09QRU5NQVhfRExf
RkZUKQogICAgICAgICBjb25zdCBzaXplX3QgYWxpZ25tZW50ID0gMzI7CiAjZWxzZQogICAgICAg
ICBjb25zdCBzaXplX3QgYWxpZ25tZW50ID0gMTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRkZURnJhbWUuaAppbmRleCA1NWFkMDliZTYzZjU1ZTg4ZjJhNDM4ZDVlODNlMWFkNDFjMWJm
YWE3Li41MjJjYjVmYmM4MDJhM2Y5MWEyMTBkMTM0OThkODNhMjU5NjRiMzVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKQEAgLTU0LDkgKzU0LDEyIEBAIEdfQkVH
SU5fREVDTFMKIEdfRU5EX0RFQ0xTCiAjZW5kaWYgLy8gVVNFKFdFQkFVRElPX0dTVFJFQU1FUikK
IAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcpCisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExf
RkZUKQorI2luY2x1ZGUgImRsL3NwL2FwaS9hcm1TUC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9v
bXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykKIHN0cnVjdCBSREZUQ29udGV4dDsK
LSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZNUEVHKQorI2VuZGlmCiAKICNlbmRpZiAvLyAhVVNF
X0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3Nyw2ICsxODAsMTcgQEAgcHJpdmF0ZToKICAgICBBdWRp
b0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNlbmRpZiAvLyBVU0UoV0VCQVVESU9fSVBQKQogCisj
aWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorICAgIHN0YXRpYyBPTVhGRlRTcGVjX1Jf
RjMyKiBjb250ZXh0Rm9yU2l6ZSh1bnNpZ25lZCBsb2cyRkZUU2l6ZSk7CisKKyAgICBPTVhGRlRT
cGVjX1JfRjMyKiBtX2ZvcndhcmRDb250ZXh0OworICAgIE9NWEZGVFNwZWNfUl9GMzIqIG1faW52
ZXJzZUNvbnRleHQ7CisKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9jb21wbGV4RGF0YTsKKyAgICBB
dWRpb0Zsb2F0QXJyYXkgbV9yZWFsRGF0YTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0
YTsKKyNlbmRpZgorICAgIAogI2VuZGlmIC8vICFVU0VfQUNDRUxFUkFURV9GRlQKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCmluZGV4IDZh
MjdiZTVmNjc5ZWYwNDM0MDY4ZWM5MjU1ZDMyOWFmZDg0NzM4YzYuLjNhZDMyODRjM2FmMmY0NDcw
ZDYyMWE5ZGMyMjUxN2Y4OTNlM2YzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vRkZURnJhbWVTdHViLmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKFdF
Ql9BVURJTykKIAotI2lmICFPUyhEQVJXSU4pICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNF
KFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShXRUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VC
QVVESU9fSVBQKQorI2lmICFPUyhEQVJXSU4pICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNF
KFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShXRUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VC
QVVESU9fSVBQKSAmJiAhVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQogCiAjaW5jbHVkZSAi
RkZURnJhbWUuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZyYW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGRlNjlkNmExMGEwZTk5MGFlZjgxOTlmMWEzMjA1ODNkMWYzNWUyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZyYW1l
T3Blbk1BWERMQW5kcm9pZC5jcHAKQEAgLTAsMCArMSwxOTggQEAKKy8qIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNpZiBPUyhBTkRST0lEKSAmJiBVU0Uo
V0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisKKyNpbmNsdWRlICJGRlRGcmFtZS5oIgorCisjaW5j
bHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKKyNpbmNsdWRlICJk
bC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvb214U1AuaCIKKworI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgaW50
IGtNYXhGRlRQb3cyU2l6ZSA9IDE1OworCisvLyBOb3JtYWwgY29uc3RydWN0b3I6IGFsbG9jYXRl
cyBmb3IgYSBnaXZlbiBmZnRTaXplLgorRkZURnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNp
emUpCisgICAgOiBtX0ZGVFNpemUoZmZ0U2l6ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGxvZzIoZmZ0U2l6ZSkpKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgw
KQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQorICAgICwgbV9jb21wbGV4RGF0YShmZnRTaXpl
KQorICAgICwgbV9yZWFsRGF0YShmZnRTaXplIC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZmZ0U2l6
ZSAvIDIpCit7CisgICAgLy8gV2Ugb25seSBhbGxvdyBwb3dlciBvZiB0d28uCisgICAgQVNTRVJU
KDFVTCA8PCBtX2xvZzJGRlRTaXplID09IG1fRkZUU2l6ZSk7CisKKyAgICBtX2ZvcndhcmRDb250
ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4
dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworfQorCisvLyBDcmVhdGVzIGEgYmxh
bmsvZW1wdHkgZnJhbWUgKGludGVycG9sYXRlKCkgbXVzdCBsYXRlciBiZSBjYWxsZWQpLgorRkZU
RnJhbWU6OkZGVEZyYW1lKCkKKyAgICA6IG1fRkZUU2l6ZSgwKQorICAgICwgbV9sb2cyRkZUU2l6
ZSgwKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgw
KQoreworfQorCisvLyBDb3B5IGNvbnN0cnVjdG9yLgorRkZURnJhbWU6OkZGVEZyYW1lKGNvbnN0
IEZGVEZyYW1lJiBmcmFtZSkKKyAgICA6IG1fRkZUU2l6ZShmcmFtZS5tX0ZGVFNpemUpCisgICAg
LCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9nMkZGVFNpemUpCisgICAgLCBtX2ZvcndhcmRDb250
ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZy
YW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fcmVhbERhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKKyAg
ICAsIG1faW1hZ0RhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKK3sKKyAgICBtX2ZvcndhcmRDb250
ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4
dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZGVFNpemUpOworCisgICAgLy8gQ29weS9zZXR1cCBm
cmFtZSBkYXRhLgorICAgIHVuc2lnbmVkIG5ieXRlcyA9IHNpemVvZihmbG9hdCkgKiAobV9GRlRT
aXplIC8gMik7CisgICAgbWVtY3B5KHJlYWxEYXRhKCksIGZyYW1lLnJlYWxEYXRhKCksIG5ieXRl
cyk7CisgICAgbWVtY3B5KGltYWdEYXRhKCksIGZyYW1lLmltYWdEYXRhKCksIG5ieXRlcyk7Cit9
CisKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxpemUoKQoreworfQorCit2b2lkIEZGVEZyYW1lOjpj
bGVhbnVwKCkKK3sKK30KKworRkZURnJhbWU6On5GRlRGcmFtZSgpCit7CisgICAgaWYgKG1fZm9y
d2FyZENvbnRleHQpCisgICAgICAgIGZyZWUobV9mb3J3YXJkQ29udGV4dCk7CisgICAgaWYgKG1f
aW52ZXJzZUNvbnRleHQpCisgICAgICAgIGZyZWUobV9pbnZlcnNlQ29udGV4dCk7Cit9CisKK3Zv
aWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKK3sKKyAgICBGRlRG
cmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAgRkZURnJhbWUmIGZyYW1lMiA9IGNvbnN0X2Nhc3Q8
RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBmbG9hdCogcmVhbFAxID0gZnJhbWUxLnJlYWxEYXRh
KCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZyYW1lMS5pbWFnRGF0YSgpOworICAgIGNvbnN0IGZs
b2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERhdGEoKTsKKyAgICBjb25zdCBmbG9hdCogaW1hZ1Ay
ID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAgICB1bnNpZ25lZCBoYWxmU2l6ZSA9IGZmdFNpemUo
KSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSByZWFsUDFbMF07CisgICAgZmxvYXQgaW1hZzAgPSBp
bWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRoOjp6dm11bChyZWFsUDEsIGltYWdQMSwgcmVhbFAy
LCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBoYWxmU2l6ZSk7IAorCisgICAgLy8gTXVsdGlwbHkg
dGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBvbmVudAorICAgIHJlYWxQMVswXSA9IHJlYWwwICog
cmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9IGltYWcwICogaW1hZ1AyWzBdOworfQorCit2b2lk
IEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9hdCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9mb3J3
YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9mb3J3YXJkQ29udGV4dCkgeworICAgICAgICBBdWRp
b0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZGVFNpemUgKyAyKTsKKworICAgICAgICBvbXhTUF9G
RlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwgY29tcGxleEZGVC5kYXRhKCksIG1fZm9yd2FyZENv
bnRleHQpOworCisgICAgICAgIC8vIFNwbGl0IEZGVCBkYXRhIGludG8gcmVhbCBhbmQgaW1hZ2lu
YXJ5IGFycmF5cy4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8IG1fRkZUU2l6ZSAv
IDI7ICsraykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMiAqIGs7CisgICAgICAgICAgICBt
X3JlYWxEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleF07CisgICAgICAgICAgICBtX2ltYWdEYXRh
W2tdID0gY29tcGxleEZGVFtpbmRleCArIDFdOworICAgICAgICB9CisgICAgICAgIG1fcmVhbERh
dGFbMF0gPSBjb21wbGV4RkZUWzBdOworICAgICAgICBtX2ltYWdEYXRhWzBdID0gY29tcGxleEZG
VFttX0ZGVFNpemVdOworICAgIH0KK30KKwordm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZs
b2F0KiBkYXRhKQoreworICAgIEFTU0VSVChtX2ludmVyc2VDb250ZXh0KTsKKworICAgIGlmICht
X2ludmVyc2VDb250ZXh0KSB7CisgICAgICAgIEF1ZGlvRmxvYXRBcnJheSBmZnREYXRhKG1fRkZU
U2l6ZSArIDIpOworCisgICAgICAgIC8vIFBhY2sgdGhlIHJlYWwgYW5kIGltYWdpbmFyeSBkYXRh
IGludG8gdGhlIGNvbXBsZXggYXJyYXkgZm9ybWF0CisgICAgICAgIGZvciAodW5zaWduZWQgayA9
IDE7IGsgPCBtX0ZGVFNpemUgLyAyOyArK2spIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIg
KiBrOworICAgICAgICAgICAgZmZ0RGF0YVtpbmRleF0gPSBtX3JlYWxEYXRhW2tdOworICAgICAg
ICAgICAgZmZ0RGF0YVtpbmRleCArIDFdID0gbV9pbWFnRGF0YVtrXTsKKyAgICAgICAgfQorICAg
ICAgICBmZnREYXRhWzBdID0gbV9yZWFsRGF0YVswXTsKKyAgICAgICAgZmZ0RGF0YVsxXSA9IDA7
CisgICAgICAgIGZmdERhdGFbbV9GRlRTaXplXSA9IG1faW1hZ0RhdGFbMF07CisgICAgICAgIGZm
dERhdGFbbV9GRlRTaXplICsgMV0gPSAwOworICAgIAorICAgICAgICBvbXhTUF9GRlRJbnZfQ0NT
VG9SX0YzMl9TZnMoZmZ0RGF0YS5kYXRhKCksIGRhdGEsIG1faW52ZXJzZUNvbnRleHQpOworICAg
IH0KK30KKworZmxvYXQqIEZGVEZyYW1lOjpyZWFsRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxEYXRhLmRhdGEoKSk7Cit9CisKK2Zsb2F0KiBGRlRG
cmFtZTo6aW1hZ0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4o
bV9pbWFnRGF0YS5kYXRhKCkpOworfQorCitPTVhGRlRTcGVjX1JfRjMyKiBGRlRGcmFtZTo6Y29u
dGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZGVFNpemUpCit7CisgICAgQVNTRVJUKGxvZzJGRlRT
aXplKTsKKyAgICBBU1NFUlQobG9nMkZGVFNpemUgPCBrTWF4RkZUUG93MlNpemUpOworICAgIGlu
dCBidWZTaXplOworICAgIE9NWFJlc3VsdCBzdGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1Jf
RjMyKGxvZzJGRlRTaXplLCAmYnVmU2l6ZSk7CisKKyAgICBpZiAoc3RhdHVzID09IE9NWF9TdHNf
Tm9FcnIpIHsKKyAgICAgICAgT01YRkZUU3BlY19SX0YzMiogY29udGV4dCA9IHN0YXRpY19jYXN0
PE9NWEZGVFNwZWNfUl9GMzIqPihtYWxsb2MoYnVmU2l6ZSkpOworICAgICAgICBvbXhTUF9GRlRJ
bml0X1JfRjMyKGNvbnRleHQsIGxvZzJGRlRTaXplKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQ7
CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vICNpZiBPUyhBTkRST0lEKSAmJiAhVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZU
KQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQppbmRleCBkMTkxNGJkMjIwNGViMmVlZWI5MTAyM2MyOGVmNjI5MjE1YzkzMTQxLi5h
NTJlZjBmMjlkMDQ5NjIzOTFkZDIzNWZlMGE3YWE1ZGE4YjJhMDQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xODMsNyArMTgzLDYgQEAKICAgICAgICAgICAjIEZJWE1F
OiBEaXNhYmxlIG9uY2UgdGhlIGxpbmtpbmcgZXJyb3IgaGFzIGJlZW4gcmVzb2x2ZWQuCiAgICAg
ICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2MzYKICAg
ICAgICAgICAnRU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEnLAotICAgICAgICAgICdFTkFCTEVfV0VC
X0FVRElPPTAnLAogICAgICAgICAgICdXVEZfVVNFX05BVElWRV9GVUxMU0NSRUVOX1ZJREVPPTEn
LAogICAgICAgICBdLAogICAgICAgICAnZW5hYmxlX3RvdWNoX2ljb25fbG9hZGluZyc6IDEsCkBA
IC0yMzAsNiArMjI5LDEyIEBACiAgICAgICAgICAgJ1dURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEn
LAogICAgICAgICBdLAogICAgICAgfV0sCisgICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9v
cGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAg
ICAgICAnV1RGX1VTRV9XRUJBVURJT19PUEVOTUFYX0RMX0ZGVD0xJywKKyAgICAgICAgICAnRU5B
QkxFX1dFQl9BVURJTz0xJywKKyAgICAgICAgXSwKKyAgICAgIH1dLAogICAgICAgWydPUz09Indp
biIgb3IgT1M9PSJhbmRyb2lkIiBvciB1c2VfeDExPT0xJywgewogICAgICAgICAnZmVhdHVyZV9k
ZWZpbmVzJzogWwogICAgICAgICAgICdFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUw9MScsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194868</attachid>
            <date>2013-03-25 09:14:26 -0700</date>
            <delta_ts>2013-03-25 10:53:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130325091010.patch</filename>
            <type>text/plain</type>
            <size>13705</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg5MjcwYWRmNjQ0ZjA0
YzczZWI1ODNlMzg1OWRkZTVkOThlYTk3Ni4uODMzODk5ZGQwNzQ2MGI0YWZmNDc2OGMyMGJhOWRl
NmMxYmIwNzJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTI1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgd2hlbiB1c2Vfb3Blbm1heF9k
bF9mZnQgaXMgZW5hYmxlZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBzb3VyY2UgRkZU
RnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRlKTogTmVlZCAz
Mi1ieXRlIGFsaWdudG1lbnQgd2l0aCB0aGUKKyAgICAgICAgT3Blbk1BWCBETCBGRlQuCisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKTogU3Vw
cG9ydCBPcGVuTUFYIERMIEZGVAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1
Yi5jcHA6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9GRlRGcmFtZU9wZW5NQVhETEFuZHJvaWQuY3BwOiBBZGRlZC4gIEltcGxlbWVudHMg
dGhlCisgICAgICAgIG5lY2Vzc2FyeSBpbnRlcmZhY2UgdXNpbmcgdGhlIE9wZW5NQVggREwgRkZU
IHJvdXRpbmVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFt
ZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNsZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbWFnRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y29udGV4dEZvclNpemUpOgorCiAyMDEzLTAzLTI1ICBF
dWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEZpeCBKU0RvY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBkYjY5
M2M0OGQ0MmJmM2IzNDg3ZjNlOWQ2ZDZkMzZhYjg4ZjM5ODkuLmQyMjJkNDJiZmU0YjY3YjQyNmVl
NTk1ODVhNGUyODA1MjM4ZjhhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTMtMDMtMjUgIFJheW1vbmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZUIGluIFdlYkF1ZGlvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6
IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBETCBGRlQuCisKIDIwMTMtMDMtMjQg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBSb2xsIGNocm9taXVtIGRlcHMgdG8gMTkwMzExLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAppbmRleCBlNjJlNjMzZmJiNTdmZmRhM2IzMzliNTNhMGMxMzNhYzA5M2E5NTA1
Li45YzA5ZmEyNjU4NTY1ZWQzNmEyZGU1ZDY1YWEyZDE4Y2JjMTZhYjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjgwLDYgKzI4MCwxMSBAQAogICAgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291
cmNlczE5LmNwcCcsCiAgICAgICAgIF0sCiAgICAgICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQi
IGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgJ3dlYmNvcmVfaW5jbHVkZV9k
aXJzJzogWworICAgICAgICAgJzwoREVQVEgpL3RoaXJkX3BhcnR5L29wZW5tYXhfZGwnCisgICAg
ICAgXQorICAgICB9XSwKICAgICBdLAogICB9LCAgIyB2YXJpYWJsZXMKIApAQCAtMTU5MCw2ICsx
NTk1LDE2IEBACiAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9m
Zm1wZWcvZmZtcGVnLmd5cDpmZm1wZWcnLAogICAgICAgICAgIF0sCiAgICAgICAgIH1dLAorICAg
ICAgIFsnIldURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MSIgaW4gZmVhdHVyZV9kZWZp
bmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAg
ICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbCcsCisgICAgICAgICAgIF0sCisgICAgICAgICB9LAorICAg
ICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbC9kbC9kbC5neXA6b3Blbm1heF9kbCcsCisgICAgICAgICBd
LAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRvd3Mgc2hhcmVkIGJ1aWxkZXIgbmVlZHMgZXh0
cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBbJ09TPT0id2luIiBhbmQgIldURl9VU0VfV0VC
QVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVmaW5lcycsIHsKICAgICAgICAgICAnZXhwb3J0
X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4YmI2NGQzNDFjN2Q0
ODM4YTQ1OWU4MTdjZWZjMjdmMmMzNGFlMzcyLi5hMjY3MDEwZDAwMmI3YmYzYTg4ZWEzNzRiZTA3
OWM4MWUyYzc5ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zODE3LDYgKzM4MTcsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rl
c3RpbmF0aW9uQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21p
dW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9BcnJheS5oCmluZGV4IDBhNmQ4NzM0ODJkZjdjOTNkOGRjYTA4NTUwYjlhYTRlMjE3
MWQ4Y2YuLmIxNjFjZjI2MjZmMmJkOTQ3YjQyZGY4ZWUyN2JlNDYyY2FhZTAzZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxTaXplID0gc2l6ZW9mKFQp
ICogbjsKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcpCisjaWYgVVNFKFdFQkFVRElPX0ZGTVBF
RykgfHwgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQogICAgICAgICBjb25zdCBzaXplX3Qg
YWxpZ25tZW50ID0gMzI7CiAjZWxzZQogICAgICAgICBjb25zdCBzaXplX3QgYWxpZ25tZW50ID0g
MTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAppbmRleCA1NWFkMDli
ZTYzZjU1ZTg4ZjJhNDM4ZDVlODNlMWFkNDFjMWJmYWE3Li41MjJjYjVmYmM4MDJhM2Y5MWEyMTBk
MTM0OThkODNhMjU5NjRiMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZy
YW1lLmgKQEAgLTU0LDkgKzU0LDEyIEBAIEdfQkVHSU5fREVDTFMKIEdfRU5EX0RFQ0xTCiAjZW5k
aWYgLy8gVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcp
CisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorI2luY2x1ZGUgImRsL3NwL2FwaS9h
cm1TUC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElP
X0ZGTVBFRykKIHN0cnVjdCBSREZUQ29udGV4dDsKLSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZN
UEVHKQorI2VuZGlmCiAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3Nyw2
ICsxODAsMTcgQEAgcHJpdmF0ZToKICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNl
bmRpZiAvLyBVU0UoV0VCQVVESU9fSVBQKQogCisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExf
RkZUKQorICAgIHN0YXRpYyBPTVhGRlRTcGVjX1JfRjMyKiBjb250ZXh0Rm9yU2l6ZSh1bnNpZ25l
ZCBsb2cyRkZUU2l6ZSk7CisKKyAgICBPTVhGRlRTcGVjX1JfRjMyKiBtX2ZvcndhcmRDb250ZXh0
OworICAgIE9NWEZGVFNwZWNfUl9GMzIqIG1faW52ZXJzZUNvbnRleHQ7CisKKyAgICBBdWRpb0Zs
b2F0QXJyYXkgbV9jb21wbGV4RGF0YTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9yZWFsRGF0YTsK
KyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKKyNlbmRpZgorICAgIAogI2VuZGlmIC8v
ICFVU0VfQUNDRUxFUkFURV9GRlQKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZVN0dWIuY3BwCmluZGV4IDZhMjdiZTVmNjc5ZWYwNDM0MDY4ZWM5MjU1ZDMy
OWFmZDg0NzM4YzYuLjNhZDMyODRjM2FmMmY0NDcwZDYyMWE5ZGMyMjUxN2Y4OTNlM2YzNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcApAQCAt
MjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKQorI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKSAmJiAhVVNFKFdFQkFVRElP
X09QRU5NQVhfRExfRkZUKQogCiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExB
bmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZy
YW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRlNjlkNmExMGEwZTk5MGFlZjgx
OTlmMWEzMjA1ODNkMWYzNWUyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZyYW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKQEAgLTAs
MCArMSwxOTggQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisKKyNpZiBPUyhBTkRST0lEKSAmJiBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisK
KyNpbmNsdWRlICJGRlRGcmFtZS5oIgorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1
ZGUgIlZlY3Rvck1hdGguaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRl
ICJkbC9zcC9hcGkvb214U1AuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgaW50IGtNYXhGRlRQb3cyU2l6ZSA9IDE1OworCisv
LyBOb3JtYWwgY29uc3RydWN0b3I6IGFsbG9jYXRlcyBmb3IgYSBnaXZlbiBmZnRTaXplLgorRkZU
RnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNpemUpCisgICAgOiBtX0ZGVFNpemUoZmZ0U2l6
ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxvZzIoZmZ0U2l6
ZSkpKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgw
KQorICAgICwgbV9jb21wbGV4RGF0YShmZnRTaXplKQorICAgICwgbV9yZWFsRGF0YShmZnRTaXpl
IC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZmZ0U2l6ZSAvIDIpCit7CisgICAgLy8gV2Ugb25seSBh
bGxvdyBwb3dlciBvZiB0d28uCisgICAgQVNTRVJUKDFVTCA8PCBtX2xvZzJGRlRTaXplID09IG1f
RkZUU2l6ZSk7CisKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworfQorCisvLyBDcmVhdGVzIGEgYmxhbmsvZW1wdHkgZnJhbWUgKGludGVycG9sYXRl
KCkgbXVzdCBsYXRlciBiZSBjYWxsZWQpLgorRkZURnJhbWU6OkZGVEZyYW1lKCkKKyAgICA6IG1f
RkZUU2l6ZSgwKQorICAgICwgbV9sb2cyRkZUU2l6ZSgwKQorICAgICwgbV9mb3J3YXJkQ29udGV4
dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQoreworfQorCisvLyBDb3B5IGNvbnN0cnVj
dG9yLgorRkZURnJhbWU6OkZGVEZyYW1lKGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKKyAgICA6IG1f
RkZUU2l6ZShmcmFtZS5tX0ZGVFNpemUpCisgICAgLCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9n
MkZGVFNpemUpCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250
ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZyYW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fcmVh
bERhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZnJhbWUubV9GRlRT
aXplIC8gMikKK3sKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworCisgICAgLy8gQ29weS9zZXR1cCBmcmFtZSBkYXRhLgorICAgIHVuc2lnbmVkIG5i
eXRlcyA9IHNpemVvZihmbG9hdCkgKiAobV9GRlRTaXplIC8gMik7CisgICAgbWVtY3B5KHJlYWxE
YXRhKCksIGZyYW1lLnJlYWxEYXRhKCksIG5ieXRlcyk7CisgICAgbWVtY3B5KGltYWdEYXRhKCks
IGZyYW1lLmltYWdEYXRhKCksIG5ieXRlcyk7Cit9CisKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxp
emUoKQoreworfQorCit2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKK3sKK30KKworRkZURnJhbWU6
On5GRlRGcmFtZSgpCit7CisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpCisgICAgICAgIGZyZWUo
bV9mb3J3YXJkQ29udGV4dCk7CisgICAgaWYgKG1faW52ZXJzZUNvbnRleHQpCisgICAgICAgIGZy
ZWUobV9pbnZlcnNlQ29udGV4dCk7Cit9CisKK3ZvaWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0
IEZGVEZyYW1lJiBmcmFtZSkKK3sKKyAgICBGRlRGcmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAg
RkZURnJhbWUmIGZyYW1lMiA9IGNvbnN0X2Nhc3Q8RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBm
bG9hdCogcmVhbFAxID0gZnJhbWUxLnJlYWxEYXRhKCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZy
YW1lMS5pbWFnRGF0YSgpOworICAgIGNvbnN0IGZsb2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERh
dGEoKTsKKyAgICBjb25zdCBmbG9hdCogaW1hZ1AyID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAg
ICB1bnNpZ25lZCBoYWxmU2l6ZSA9IGZmdFNpemUoKSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSBy
ZWFsUDFbMF07CisgICAgZmxvYXQgaW1hZzAgPSBpbWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRo
Ojp6dm11bChyZWFsUDEsIGltYWdQMSwgcmVhbFAyLCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBo
YWxmU2l6ZSk7IAorCisgICAgLy8gTXVsdGlwbHkgdGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBv
bmVudAorICAgIHJlYWxQMVswXSA9IHJlYWwwICogcmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9
IGltYWcwICogaW1hZ1AyWzBdOworfQorCit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9h
dCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9m
b3J3YXJkQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZG
VFNpemUgKyAyKTsKKworICAgICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwg
Y29tcGxleEZGVC5kYXRhKCksIG1fZm9yd2FyZENvbnRleHQpOworCisgICAgICAgIC8vIFNwbGl0
IEZGVCBkYXRhIGludG8gcmVhbCBhbmQgaW1hZ2luYXJ5IGFycmF5cy4KKyAgICAgICAgZm9yICh1
bnNpZ25lZCBrID0gMTsgayA8IG1fRkZUU2l6ZSAvIDI7ICsraykgeworICAgICAgICAgICAgaW50
IGluZGV4ID0gMiAqIGs7CisgICAgICAgICAgICBtX3JlYWxEYXRhW2tdID0gY29tcGxleEZGVFtp
bmRleF07CisgICAgICAgICAgICBtX2ltYWdEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleCArIDFd
OworICAgICAgICB9CisgICAgICAgIG1fcmVhbERhdGFbMF0gPSBjb21wbGV4RkZUWzBdOworICAg
ICAgICBtX2ltYWdEYXRhWzBdID0gY29tcGxleEZGVFttX0ZGVFNpemVdOworICAgIH0KK30KKwor
dm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZsb2F0KiBkYXRhKQoreworICAgIEFTU0VSVCht
X2ludmVyc2VDb250ZXh0KTsKKworICAgIGlmIChtX2ludmVyc2VDb250ZXh0KSB7CisgICAgICAg
IEF1ZGlvRmxvYXRBcnJheSBmZnREYXRhKG1fRkZUU2l6ZSArIDIpOworCisgICAgICAgIC8vIFBh
Y2sgdGhlIHJlYWwgYW5kIGltYWdpbmFyeSBkYXRhIGludG8gdGhlIGNvbXBsZXggYXJyYXkgZm9y
bWF0CisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBtX0ZGVFNpemUgLyAyOyArK2sp
IHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIgKiBrOworICAgICAgICAgICAgZmZ0RGF0YVtp
bmRleF0gPSBtX3JlYWxEYXRhW2tdOworICAgICAgICAgICAgZmZ0RGF0YVtpbmRleCArIDFdID0g
bV9pbWFnRGF0YVtrXTsKKyAgICAgICAgfQorICAgICAgICBmZnREYXRhWzBdID0gbV9yZWFsRGF0
YVswXTsKKyAgICAgICAgZmZ0RGF0YVsxXSA9IDA7CisgICAgICAgIGZmdERhdGFbbV9GRlRTaXpl
XSA9IG1faW1hZ0RhdGFbMF07CisgICAgICAgIGZmdERhdGFbbV9GRlRTaXplICsgMV0gPSAwOwor
ICAgIAorICAgICAgICBvbXhTUF9GRlRJbnZfQ0NTVG9SX0YzMl9TZnMoZmZ0RGF0YS5kYXRhKCks
IGRhdGEsIG1faW52ZXJzZUNvbnRleHQpOworICAgIH0KK30KKworZmxvYXQqIEZGVEZyYW1lOjpy
ZWFsRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxE
YXRhLmRhdGEoKSk7Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6aW1hZ0RhdGEoKSBjb25zdAorewor
ICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4obV9pbWFnRGF0YS5kYXRhKCkpOworfQorCitP
TVhGRlRTcGVjX1JfRjMyKiBGRlRGcmFtZTo6Y29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZG
VFNpemUpCit7CisgICAgQVNTRVJUKGxvZzJGRlRTaXplKTsKKyAgICBBU1NFUlQobG9nMkZGVFNp
emUgPCBrTWF4RkZUUG93MlNpemUpOworICAgIGludCBidWZTaXplOworICAgIE9NWFJlc3VsdCBz
dGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyKGxvZzJGRlRTaXplLCAmYnVmU2l6ZSk7
CisKKyAgICBpZiAoc3RhdHVzID09IE9NWF9TdHNfTm9FcnIpIHsKKyAgICAgICAgT01YRkZUU3Bl
Y19SX0YzMiogY29udGV4dCA9IHN0YXRpY19jYXN0PE9NWEZGVFNwZWNfUl9GMzIqPihtYWxsb2Mo
YnVmU2l6ZSkpOworICAgICAgICBvbXhTUF9GRlRJbml0X1JfRjMyKGNvbnRleHQsIGxvZzJGRlRT
aXplKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICNpZiBPUyhBTkRST0lEKSAm
JiAhVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBlMmI4M2M0ZjdhOTNl
YmIyMmViNmQ0YTc2MWQ5MDFhNDcwOTUwZGM2Li5mMmU0YzM0MGQwZWI0ZGRiMjA3NmJlOWNmNTg5
YzQyZmRiMTNmOGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xODQs
NyArMTg0LDYgQEAKICAgICAgICAgICAjIEZJWE1FOiBEaXNhYmxlIG9uY2UgdGhlIGxpbmtpbmcg
ZXJyb3IgaGFzIGJlZW4gcmVzb2x2ZWQuCiAgICAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2MzYKICAgICAgICAgICAnRU5BQkxFX1NIQVJFRF9XT1JL
RVJTPTEnLAotICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTAnLAogICAgICAgICAgICdXVEZf
VVNFX05BVElWRV9GVUxMU0NSRUVOX1ZJREVPPTEnLAogICAgICAgICBdLAogICAgICAgICAnZW5h
YmxlX3RvdWNoX2ljb25fbG9hZGluZyc6IDEsCkBAIC0yMzEsNiArMjMwLDEyIEBACiAgICAgICAg
ICAgJ1dURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEnLAogICAgICAgICBdLAogICAgICAgfV0sCisg
ICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9vcGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAg
ICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19PUEVO
TUFYX0RMX0ZGVD0xJywKKyAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0xJywKKyAgICAgICAg
XSwKKyAgICAgIH1dLAogICAgICAgWydPUz09IndpbiIgb3IgT1M9PSJhbmRyb2lkIiBvciB1c2Vf
eDExPT0xJywgewogICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzogWwogICAgICAgICAgICdFTkFC
TEVfT1BFTlRZUEVfVkVSVElDQUw9MScsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194886</attachid>
            <date>2013-03-25 10:50:50 -0700</date>
            <delta_ts>2013-03-26 09:29:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130325104634.patch</filename>
            <type>text/plain</type>
            <size>13837</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg5MjcwYWRmNjQ0ZjA0
YzczZWI1ODNlMzg1OWRkZTVkOThlYTk3Ni4uODMzODk5ZGQwNzQ2MGI0YWZmNDc2OGMyMGJhOWRl
NmMxYmIwNzJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTI1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgd2hlbiB1c2Vfb3Blbm1heF9k
bF9mZnQgaXMgZW5hYmxlZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBzb3VyY2UgRkZU
RnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRlKTogTmVlZCAz
Mi1ieXRlIGFsaWdudG1lbnQgd2l0aCB0aGUKKyAgICAgICAgT3Blbk1BWCBETCBGRlQuCisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKTogU3Vw
cG9ydCBPcGVuTUFYIERMIEZGVAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1
Yi5jcHA6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9GRlRGcmFtZU9wZW5NQVhETEFuZHJvaWQuY3BwOiBBZGRlZC4gIEltcGxlbWVudHMg
dGhlCisgICAgICAgIG5lY2Vzc2FyeSBpbnRlcmZhY2UgdXNpbmcgdGhlIE9wZW5NQVggREwgRkZU
IHJvdXRpbmVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFt
ZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNsZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbWFnRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y29udGV4dEZvclNpemUpOgorCiAyMDEzLTAzLTI1ICBF
dWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEZpeCBKU0RvY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBkYjY5
M2M0OGQ0MmJmM2IzNDg3ZjNlOWQ2ZDZkMzZhYjg4ZjM5ODkuLmQyMjJkNDJiZmU0YjY3YjQyNmVl
NTk1ODVhNGUyODA1MjM4ZjhhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTMtMDMtMjUgIFJheW1vbmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZUIGluIFdlYkF1ZGlvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6
IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBETCBGRlQuCisKIDIwMTMtMDMtMjQg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBSb2xsIGNocm9taXVtIGRlcHMgdG8gMTkwMzExLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAppbmRleCBlNjJlNjMzZmJiNTdmZmRhM2IzMzliNTNhMGMxMzNhYzA5M2E5NTA1
Li45YzA5ZmEyNjU4NTY1ZWQzNmEyZGU1ZDY1YWEyZDE4Y2JjMTZhYjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjgwLDYgKzI4MCwxMSBAQAogICAgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291
cmNlczE5LmNwcCcsCiAgICAgICAgIF0sCiAgICAgICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQi
IGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgJ3dlYmNvcmVfaW5jbHVkZV9k
aXJzJzogWworICAgICAgICAgJzwoREVQVEgpL3RoaXJkX3BhcnR5L29wZW5tYXhfZGwnCisgICAg
ICAgXQorICAgICB9XSwKICAgICBdLAogICB9LCAgIyB2YXJpYWJsZXMKIApAQCAtMTU5MCw2ICsx
NTk1LDE2IEBACiAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9m
Zm1wZWcvZmZtcGVnLmd5cDpmZm1wZWcnLAogICAgICAgICAgIF0sCiAgICAgICAgIH1dLAorICAg
ICAgIFsnIldURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MSIgaW4gZmVhdHVyZV9kZWZp
bmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAg
ICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbCcsCisgICAgICAgICAgIF0sCisgICAgICAgICB9LAorICAg
ICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbC9kbC9kbC5neXA6b3Blbm1heF9kbCcsCisgICAgICAgICBd
LAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRvd3Mgc2hhcmVkIGJ1aWxkZXIgbmVlZHMgZXh0
cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBbJ09TPT0id2luIiBhbmQgIldURl9VU0VfV0VC
QVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVmaW5lcycsIHsKICAgICAgICAgICAnZXhwb3J0
X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4YmI2NGQzNDFjN2Q0
ODM4YTQ1OWU4MTdjZWZjMjdmMmMzNGFlMzcyLi5hMjY3MDEwZDAwMmI3YmYzYTg4ZWEzNzRiZTA3
OWM4MWUyYzc5ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zODE3LDYgKzM4MTcsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rl
c3RpbmF0aW9uQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21p
dW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9BcnJheS5oCmluZGV4IDBhNmQ4NzM0ODJkZjdjOTNkOGRjYTA4NTUwYjlhYTRlMjE3
MWQ4Y2YuLmIxNjFjZjI2MjZmMmJkOTQ3YjQyZGY4ZWUyN2JlNDYyY2FhZTAzZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxTaXplID0gc2l6ZW9mKFQp
ICogbjsKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcpCisjaWYgVVNFKFdFQkFVRElPX0ZGTVBF
RykgfHwgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQogICAgICAgICBjb25zdCBzaXplX3Qg
YWxpZ25tZW50ID0gMzI7CiAjZWxzZQogICAgICAgICBjb25zdCBzaXplX3QgYWxpZ25tZW50ID0g
MTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAppbmRleCA1NWFkMDli
ZTYzZjU1ZTg4ZjJhNDM4ZDVlODNlMWFkNDFjMWJmYWE3Li41MjJjYjVmYmM4MDJhM2Y5MWEyMTBk
MTM0OThkODNhMjU5NjRiMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZy
YW1lLmgKQEAgLTU0LDkgKzU0LDEyIEBAIEdfQkVHSU5fREVDTFMKIEdfRU5EX0RFQ0xTCiAjZW5k
aWYgLy8gVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcp
CisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorI2luY2x1ZGUgImRsL3NwL2FwaS9h
cm1TUC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElP
X0ZGTVBFRykKIHN0cnVjdCBSREZUQ29udGV4dDsKLSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZN
UEVHKQorI2VuZGlmCiAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3Nyw2
ICsxODAsMTcgQEAgcHJpdmF0ZToKICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNl
bmRpZiAvLyBVU0UoV0VCQVVESU9fSVBQKQogCisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExf
RkZUKQorICAgIHN0YXRpYyBPTVhGRlRTcGVjX1JfRjMyKiBjb250ZXh0Rm9yU2l6ZSh1bnNpZ25l
ZCBsb2cyRkZUU2l6ZSk7CisKKyAgICBPTVhGRlRTcGVjX1JfRjMyKiBtX2ZvcndhcmRDb250ZXh0
OworICAgIE9NWEZGVFNwZWNfUl9GMzIqIG1faW52ZXJzZUNvbnRleHQ7CisKKyAgICBBdWRpb0Zs
b2F0QXJyYXkgbV9jb21wbGV4RGF0YTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9yZWFsRGF0YTsK
KyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKKyNlbmRpZgorICAgIAogI2VuZGlmIC8v
ICFVU0VfQUNDRUxFUkFURV9GRlQKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZVN0dWIuY3BwCmluZGV4IDZhMjdiZTVmNjc5ZWYwNDM0MDY4ZWM5MjU1ZDMy
OWFmZDg0NzM4YzYuLjNhZDMyODRjM2FmMmY0NDcwZDYyMWE5ZGMyMjUxN2Y4OTNlM2YzNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcApAQCAt
MjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKQorI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKSAmJiAhVVNFKFdFQkFVRElP
X09QRU5NQVhfRExfRkZUKQogCiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExB
bmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZy
YW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRlNjlkNmExMGEwZTk5MGFlZjgx
OTlmMWEzMjA1ODNkMWYzNWUyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZyYW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKQEAgLTAs
MCArMSwxOTggQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisKKyNpZiBPUyhBTkRST0lEKSAmJiBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisK
KyNpbmNsdWRlICJGRlRGcmFtZS5oIgorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1
ZGUgIlZlY3Rvck1hdGguaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRl
ICJkbC9zcC9hcGkvb214U1AuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgaW50IGtNYXhGRlRQb3cyU2l6ZSA9IDE1OworCisv
LyBOb3JtYWwgY29uc3RydWN0b3I6IGFsbG9jYXRlcyBmb3IgYSBnaXZlbiBmZnRTaXplLgorRkZU
RnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNpemUpCisgICAgOiBtX0ZGVFNpemUoZmZ0U2l6
ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxvZzIoZmZ0U2l6
ZSkpKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgw
KQorICAgICwgbV9jb21wbGV4RGF0YShmZnRTaXplKQorICAgICwgbV9yZWFsRGF0YShmZnRTaXpl
IC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZmZ0U2l6ZSAvIDIpCit7CisgICAgLy8gV2Ugb25seSBh
bGxvdyBwb3dlciBvZiB0d28uCisgICAgQVNTRVJUKDFVTCA8PCBtX2xvZzJGRlRTaXplID09IG1f
RkZUU2l6ZSk7CisKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworfQorCisvLyBDcmVhdGVzIGEgYmxhbmsvZW1wdHkgZnJhbWUgKGludGVycG9sYXRl
KCkgbXVzdCBsYXRlciBiZSBjYWxsZWQpLgorRkZURnJhbWU6OkZGVEZyYW1lKCkKKyAgICA6IG1f
RkZUU2l6ZSgwKQorICAgICwgbV9sb2cyRkZUU2l6ZSgwKQorICAgICwgbV9mb3J3YXJkQ29udGV4
dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQoreworfQorCisvLyBDb3B5IGNvbnN0cnVj
dG9yLgorRkZURnJhbWU6OkZGVEZyYW1lKGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKKyAgICA6IG1f
RkZUU2l6ZShmcmFtZS5tX0ZGVFNpemUpCisgICAgLCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9n
MkZGVFNpemUpCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250
ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZyYW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fcmVh
bERhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZnJhbWUubV9GRlRT
aXplIC8gMikKK3sKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworCisgICAgLy8gQ29weS9zZXR1cCBmcmFtZSBkYXRhLgorICAgIHVuc2lnbmVkIG5i
eXRlcyA9IHNpemVvZihmbG9hdCkgKiAobV9GRlRTaXplIC8gMik7CisgICAgbWVtY3B5KHJlYWxE
YXRhKCksIGZyYW1lLnJlYWxEYXRhKCksIG5ieXRlcyk7CisgICAgbWVtY3B5KGltYWdEYXRhKCks
IGZyYW1lLmltYWdEYXRhKCksIG5ieXRlcyk7Cit9CisKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxp
emUoKQoreworfQorCit2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKK3sKK30KKworRkZURnJhbWU6
On5GRlRGcmFtZSgpCit7CisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpCisgICAgICAgIGZyZWUo
bV9mb3J3YXJkQ29udGV4dCk7CisgICAgaWYgKG1faW52ZXJzZUNvbnRleHQpCisgICAgICAgIGZy
ZWUobV9pbnZlcnNlQ29udGV4dCk7Cit9CisKK3ZvaWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0
IEZGVEZyYW1lJiBmcmFtZSkKK3sKKyAgICBGRlRGcmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAg
RkZURnJhbWUmIGZyYW1lMiA9IGNvbnN0X2Nhc3Q8RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBm
bG9hdCogcmVhbFAxID0gZnJhbWUxLnJlYWxEYXRhKCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZy
YW1lMS5pbWFnRGF0YSgpOworICAgIGNvbnN0IGZsb2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERh
dGEoKTsKKyAgICBjb25zdCBmbG9hdCogaW1hZ1AyID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAg
ICB1bnNpZ25lZCBoYWxmU2l6ZSA9IGZmdFNpemUoKSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSBy
ZWFsUDFbMF07CisgICAgZmxvYXQgaW1hZzAgPSBpbWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRo
Ojp6dm11bChyZWFsUDEsIGltYWdQMSwgcmVhbFAyLCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBo
YWxmU2l6ZSk7IAorCisgICAgLy8gTXVsdGlwbHkgdGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBv
bmVudAorICAgIHJlYWxQMVswXSA9IHJlYWwwICogcmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9
IGltYWcwICogaW1hZ1AyWzBdOworfQorCit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9h
dCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9m
b3J3YXJkQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZG
VFNpemUgKyAyKTsKKworICAgICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwg
Y29tcGxleEZGVC5kYXRhKCksIG1fZm9yd2FyZENvbnRleHQpOworCisgICAgICAgIC8vIFNwbGl0
IEZGVCBkYXRhIGludG8gcmVhbCBhbmQgaW1hZ2luYXJ5IGFycmF5cy4KKyAgICAgICAgZm9yICh1
bnNpZ25lZCBrID0gMTsgayA8IG1fRkZUU2l6ZSAvIDI7ICsraykgeworICAgICAgICAgICAgaW50
IGluZGV4ID0gMiAqIGs7CisgICAgICAgICAgICBtX3JlYWxEYXRhW2tdID0gY29tcGxleEZGVFtp
bmRleF07CisgICAgICAgICAgICBtX2ltYWdEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleCArIDFd
OworICAgICAgICB9CisgICAgICAgIG1fcmVhbERhdGFbMF0gPSBjb21wbGV4RkZUWzBdOworICAg
ICAgICBtX2ltYWdEYXRhWzBdID0gY29tcGxleEZGVFttX0ZGVFNpemVdOworICAgIH0KK30KKwor
dm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZsb2F0KiBkYXRhKQoreworICAgIEFTU0VSVCht
X2ludmVyc2VDb250ZXh0KTsKKworICAgIGlmIChtX2ludmVyc2VDb250ZXh0KSB7CisgICAgICAg
IEF1ZGlvRmxvYXRBcnJheSBmZnREYXRhKG1fRkZUU2l6ZSArIDIpOworCisgICAgICAgIC8vIFBh
Y2sgdGhlIHJlYWwgYW5kIGltYWdpbmFyeSBkYXRhIGludG8gdGhlIGNvbXBsZXggYXJyYXkgZm9y
bWF0CisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBtX0ZGVFNpemUgLyAyOyArK2sp
IHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIgKiBrOworICAgICAgICAgICAgZmZ0RGF0YVtp
bmRleF0gPSBtX3JlYWxEYXRhW2tdOworICAgICAgICAgICAgZmZ0RGF0YVtpbmRleCArIDFdID0g
bV9pbWFnRGF0YVtrXTsKKyAgICAgICAgfQorICAgICAgICBmZnREYXRhWzBdID0gbV9yZWFsRGF0
YVswXTsKKyAgICAgICAgZmZ0RGF0YVsxXSA9IDA7CisgICAgICAgIGZmdERhdGFbbV9GRlRTaXpl
XSA9IG1faW1hZ0RhdGFbMF07CisgICAgICAgIGZmdERhdGFbbV9GRlRTaXplICsgMV0gPSAwOwor
ICAgIAorICAgICAgICBvbXhTUF9GRlRJbnZfQ0NTVG9SX0YzMl9TZnMoZmZ0RGF0YS5kYXRhKCks
IGRhdGEsIG1faW52ZXJzZUNvbnRleHQpOworICAgIH0KK30KKworZmxvYXQqIEZGVEZyYW1lOjpy
ZWFsRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX3JlYWxE
YXRhLmRhdGEoKSk7Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6aW1hZ0RhdGEoKSBjb25zdAorewor
ICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4obV9pbWFnRGF0YS5kYXRhKCkpOworfQorCitP
TVhGRlRTcGVjX1JfRjMyKiBGRlRGcmFtZTo6Y29udGV4dEZvclNpemUodW5zaWduZWQgbG9nMkZG
VFNpemUpCit7CisgICAgQVNTRVJUKGxvZzJGRlRTaXplKTsKKyAgICBBU1NFUlQobG9nMkZGVFNp
emUgPCBrTWF4RkZUUG93MlNpemUpOworICAgIGludCBidWZTaXplOworICAgIE9NWFJlc3VsdCBz
dGF0dXMgPSBvbXhTUF9GRlRHZXRCdWZTaXplX1JfRjMyKGxvZzJGRlRTaXplLCAmYnVmU2l6ZSk7
CisKKyAgICBpZiAoc3RhdHVzID09IE9NWF9TdHNfTm9FcnIpIHsKKyAgICAgICAgT01YRkZUU3Bl
Y19SX0YzMiogY29udGV4dCA9IHN0YXRpY19jYXN0PE9NWEZGVFNwZWNfUl9GMzIqPihtYWxsb2Mo
YnVmU2l6ZSkpOworICAgICAgICBvbXhTUF9GRlRJbml0X1JfRjMyKGNvbnRleHQsIGxvZzJGRlRT
aXplKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICNpZiBPUyhBTkRST0lEKSAm
JiAhVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBlMmI4M2M0ZjdhOTNl
YmIyMmViNmQ0YTc2MWQ5MDFhNDcwOTUwZGM2Li5hOGRlNTMwYTZmZjFlNjkzYWRkYzRmZTE2YzMw
MjJlMTA1NjE2MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xODQs
NyArMTg0LDYgQEAKICAgICAgICAgICAjIEZJWE1FOiBEaXNhYmxlIG9uY2UgdGhlIGxpbmtpbmcg
ZXJyb3IgaGFzIGJlZW4gcmVzb2x2ZWQuCiAgICAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2MzYKICAgICAgICAgICAnRU5BQkxFX1NIQVJFRF9XT1JL
RVJTPTEnLAotICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTAnLAogICAgICAgICAgICdXVEZf
VVNFX05BVElWRV9GVUxMU0NSRUVOX1ZJREVPPTEnLAogICAgICAgICBdLAogICAgICAgICAnZW5h
YmxlX3RvdWNoX2ljb25fbG9hZGluZyc6IDEsCkBAIC0yMzEsNiArMjMwLDE0IEBACiAgICAgICAg
ICAgJ1dURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEnLAogICAgICAgICBdLAogICAgICAgfV0sCisg
ICAgICBbJ09TPT0iYW5kcm9pZCIgYW5kIHVzZV9vcGVubWF4X2RsX2ZmdCE9MCcsIHsKKyAgICAg
ICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKKyAgICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19PUEVO
TUFYX0RMX0ZGVD0xJywKKyAgICAgICAgICAjIEVuYWJsaW5nIHRoZSBGRlQgaXMgZW5vdWdoIHRv
IGVuYWJsZSBXZWJBdWRpbyBzdXBwb3J0IHRvCisgICAgICAgICAgIyBhbGxvdyBtb3N0IFdlYkF1
ZGlvIGZlYXR1cmVzIHRvIHdvcmsgb24gQW5kcm9pZC4KKyAgICAgICAgICAnRU5BQkxFX1dFQl9B
VURJTz0xJywKKyAgICAgICAgXSwKKyAgICAgIH1dLAogICAgICAgWydPUz09IndpbiIgb3IgT1M9
PSJhbmRyb2lkIiBvciB1c2VfeDExPT0xJywgewogICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzog
WwogICAgICAgICAgICdFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUw9MScsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195099</attachid>
            <date>2013-03-26 09:28:39 -0700</date>
            <delta_ts>2013-03-26 13:20:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130326092422.patch</filename>
            <type>text/plain</type>
            <size>13889</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg5MjcwYWRmNjQ0ZjA0
YzczZWI1ODNlMzg1OWRkZTVkOThlYTk3Ni4uODMzODk5ZGQwNzQ2MGI0YWZmNDc2OGMyMGJhOWRl
NmMxYmIwNzJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTI1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgd2hlbiB1c2Vfb3Blbm1heF9k
bF9mZnQgaXMgZW5hYmxlZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBzb3VyY2UgRkZU
RnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRlKTogTmVlZCAz
Mi1ieXRlIGFsaWdudG1lbnQgd2l0aCB0aGUKKyAgICAgICAgT3Blbk1BWCBETCBGRlQuCisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKTogU3Vw
cG9ydCBPcGVuTUFYIERMIEZGVAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1
Yi5jcHA6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9GRlRGcmFtZU9wZW5NQVhETEFuZHJvaWQuY3BwOiBBZGRlZC4gIEltcGxlbWVudHMg
dGhlCisgICAgICAgIG5lY2Vzc2FyeSBpbnRlcmZhY2UgdXNpbmcgdGhlIE9wZW5NQVggREwgRkZU
IHJvdXRpbmVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFt
ZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNsZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbWFnRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y29udGV4dEZvclNpemUpOgorCiAyMDEzLTAzLTI1ICBF
dWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEZpeCBKU0RvY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBkYjY5
M2M0OGQ0MmJmM2IzNDg3ZjNlOWQ2ZDZkMzZhYjg4ZjM5ODkuLmQyMjJkNDJiZmU0YjY3YjQyNmVl
NTk1ODVhNGUyODA1MjM4ZjhhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTMtMDMtMjUgIFJheW1vbmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZUIGluIFdlYkF1ZGlvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6
IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBETCBGRlQuCisKIDIwMTMtMDMtMjQg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBSb2xsIGNocm9taXVtIGRlcHMgdG8gMTkwMzExLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAppbmRleCBlNjJlNjMzZmJiNTdmZmRhM2IzMzliNTNhMGMxMzNhYzA5M2E5NTA1
Li45YzA5ZmEyNjU4NTY1ZWQzNmEyZGU1ZDY1YWEyZDE4Y2JjMTZhYjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjgwLDYgKzI4MCwxMSBAQAogICAgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291
cmNlczE5LmNwcCcsCiAgICAgICAgIF0sCiAgICAgICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQi
IGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgJ3dlYmNvcmVfaW5jbHVkZV9k
aXJzJzogWworICAgICAgICAgJzwoREVQVEgpL3RoaXJkX3BhcnR5L29wZW5tYXhfZGwnCisgICAg
ICAgXQorICAgICB9XSwKICAgICBdLAogICB9LCAgIyB2YXJpYWJsZXMKIApAQCAtMTU5MCw2ICsx
NTk1LDE2IEBACiAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9m
Zm1wZWcvZmZtcGVnLmd5cDpmZm1wZWcnLAogICAgICAgICAgIF0sCiAgICAgICAgIH1dLAorICAg
ICAgIFsnIldURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MSIgaW4gZmVhdHVyZV9kZWZp
bmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAg
ICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbCcsCisgICAgICAgICAgIF0sCisgICAgICAgICB9LAorICAg
ICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbC9kbC9kbC5neXA6b3Blbm1heF9kbCcsCisgICAgICAgICBd
LAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRvd3Mgc2hhcmVkIGJ1aWxkZXIgbmVlZHMgZXh0
cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBbJ09TPT0id2luIiBhbmQgIldURl9VU0VfV0VC
QVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVmaW5lcycsIHsKICAgICAgICAgICAnZXhwb3J0
X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4YmI2NGQzNDFjN2Q0
ODM4YTQ1OWU4MTdjZWZjMjdmMmMzNGFlMzcyLi5hMjY3MDEwZDAwMmI3YmYzYTg4ZWEzNzRiZTA3
OWM4MWUyYzc5ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zODE3LDYgKzM4MTcsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rl
c3RpbmF0aW9uQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21p
dW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9BcnJheS5oCmluZGV4IDBhNmQ4NzM0ODJkZjdjOTNkOGRjYTA4NTUwYjlhYTRlMjE3
MWQ4Y2YuLmIxNjFjZjI2MjZmMmJkOTQ3YjQyZGY4ZWUyN2JlNDYyY2FhZTAzZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxTaXplID0gc2l6ZW9mKFQp
ICogbjsKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcpCisjaWYgVVNFKFdFQkFVRElPX0ZGTVBF
RykgfHwgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQogICAgICAgICBjb25zdCBzaXplX3Qg
YWxpZ25tZW50ID0gMzI7CiAjZWxzZQogICAgICAgICBjb25zdCBzaXplX3QgYWxpZ25tZW50ID0g
MTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAppbmRleCA1NWFkMDli
ZTYzZjU1ZTg4ZjJhNDM4ZDVlODNlMWFkNDFjMWJmYWE3Li41MjJjYjVmYmM4MDJhM2Y5MWEyMTBk
MTM0OThkODNhMjU5NjRiMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZy
YW1lLmgKQEAgLTU0LDkgKzU0LDEyIEBAIEdfQkVHSU5fREVDTFMKIEdfRU5EX0RFQ0xTCiAjZW5k
aWYgLy8gVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcp
CisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorI2luY2x1ZGUgImRsL3NwL2FwaS9h
cm1TUC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElP
X0ZGTVBFRykKIHN0cnVjdCBSREZUQ29udGV4dDsKLSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZN
UEVHKQorI2VuZGlmCiAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3Nyw2
ICsxODAsMTcgQEAgcHJpdmF0ZToKICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNl
bmRpZiAvLyBVU0UoV0VCQVVESU9fSVBQKQogCisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExf
RkZUKQorICAgIHN0YXRpYyBPTVhGRlRTcGVjX1JfRjMyKiBjb250ZXh0Rm9yU2l6ZSh1bnNpZ25l
ZCBsb2cyRkZUU2l6ZSk7CisKKyAgICBPTVhGRlRTcGVjX1JfRjMyKiBtX2ZvcndhcmRDb250ZXh0
OworICAgIE9NWEZGVFNwZWNfUl9GMzIqIG1faW52ZXJzZUNvbnRleHQ7CisKKyAgICBBdWRpb0Zs
b2F0QXJyYXkgbV9jb21wbGV4RGF0YTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9yZWFsRGF0YTsK
KyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKKyNlbmRpZgorICAgIAogI2VuZGlmIC8v
ICFVU0VfQUNDRUxFUkFURV9GRlQKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZVN0dWIuY3BwCmluZGV4IDZhMjdiZTVmNjc5ZWYwNDM0MDY4ZWM5MjU1ZDMy
OWFmZDg0NzM4YzYuLjNhZDMyODRjM2FmMmY0NDcwZDYyMWE5ZGMyMjUxN2Y4OTNlM2YzNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcApAQCAt
MjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKQorI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKSAmJiAhVVNFKFdFQkFVRElP
X09QRU5NQVhfRExfRkZUKQogCiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExB
bmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZy
YW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMzMjA2NjBlNTQ2Yjc5OGY2NjIy
ODY2NGZjMjZmMTViMGE2NjA2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZyYW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKQEAgLTAs
MCArMSwyMDIgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisKKyNpZiBPUyhBTkRST0lEKSAmJiBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisK
KyNpbmNsdWRlICJGRlRGcmFtZS5oIgorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1
ZGUgIlZlY3Rvck1hdGguaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRl
ICJkbC9zcC9hcGkvb214U1AuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgaW50IGtNYXhGRlRQb3cyU2l6ZSA9IDE1OworCisv
LyBOb3JtYWwgY29uc3RydWN0b3I6IGFsbG9jYXRlcyBmb3IgYSBnaXZlbiBmZnRTaXplLgorRkZU
RnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNpemUpCisgICAgOiBtX0ZGVFNpemUoZmZ0U2l6
ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxvZzIoZmZ0U2l6
ZSkpKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgw
KQorICAgICwgbV9jb21wbGV4RGF0YShmZnRTaXplKQorICAgICwgbV9yZWFsRGF0YShmZnRTaXpl
IC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZmZ0U2l6ZSAvIDIpCit7CisgICAgLy8gV2Ugb25seSBh
bGxvdyBwb3dlciBvZiB0d28uCisgICAgQVNTRVJUKDFVTCA8PCBtX2xvZzJGRlRTaXplID09IG1f
RkZUU2l6ZSk7CisKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworfQorCisvLyBDcmVhdGVzIGEgYmxhbmsvZW1wdHkgZnJhbWUgKGludGVycG9sYXRl
KCkgbXVzdCBsYXRlciBiZSBjYWxsZWQpLgorRkZURnJhbWU6OkZGVEZyYW1lKCkKKyAgICA6IG1f
RkZUU2l6ZSgwKQorICAgICwgbV9sb2cyRkZUU2l6ZSgwKQorICAgICwgbV9mb3J3YXJkQ29udGV4
dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQoreworfQorCisvLyBDb3B5IGNvbnN0cnVj
dG9yLgorRkZURnJhbWU6OkZGVEZyYW1lKGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKKyAgICA6IG1f
RkZUU2l6ZShmcmFtZS5tX0ZGVFNpemUpCisgICAgLCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9n
MkZGVFNpemUpCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250
ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZyYW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fcmVh
bERhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZnJhbWUubV9GRlRT
aXplIC8gMikKK3sKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworCisgICAgLy8gQ29weS9zZXR1cCBmcmFtZSBkYXRhLgorICAgIHVuc2lnbmVkIG5i
eXRlcyA9IHNpemVvZihmbG9hdCkgKiAobV9GRlRTaXplIC8gMik7CisgICAgbWVtY3B5KHJlYWxE
YXRhKCksIGZyYW1lLnJlYWxEYXRhKCksIG5ieXRlcyk7CisgICAgbWVtY3B5KGltYWdEYXRhKCks
IGZyYW1lLmltYWdEYXRhKCksIG5ieXRlcyk7Cit9CisKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxp
emUoKQoreworfQorCit2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKK3sKK30KKworRkZURnJhbWU6
On5GRlRGcmFtZSgpCit7CisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpCisgICAgICAgIGZyZWUo
bV9mb3J3YXJkQ29udGV4dCk7CisgICAgaWYgKG1faW52ZXJzZUNvbnRleHQpCisgICAgICAgIGZy
ZWUobV9pbnZlcnNlQ29udGV4dCk7Cit9CisKK3ZvaWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0
IEZGVEZyYW1lJiBmcmFtZSkKK3sKKyAgICBGRlRGcmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAg
RkZURnJhbWUmIGZyYW1lMiA9IGNvbnN0X2Nhc3Q8RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBm
bG9hdCogcmVhbFAxID0gZnJhbWUxLnJlYWxEYXRhKCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZy
YW1lMS5pbWFnRGF0YSgpOworICAgIGNvbnN0IGZsb2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERh
dGEoKTsKKyAgICBjb25zdCBmbG9hdCogaW1hZ1AyID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAg
ICB1bnNpZ25lZCBoYWxmU2l6ZSA9IGZmdFNpemUoKSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSBy
ZWFsUDFbMF07CisgICAgZmxvYXQgaW1hZzAgPSBpbWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRo
Ojp6dm11bChyZWFsUDEsIGltYWdQMSwgcmVhbFAyLCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBo
YWxmU2l6ZSk7IAorCisgICAgLy8gTXVsdGlwbHkgdGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBv
bmVudAorICAgIHJlYWxQMVswXSA9IHJlYWwwICogcmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9
IGltYWcwICogaW1hZ1AyWzBdOworfQorCit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9h
dCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9m
b3J3YXJkQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZG
VFNpemUgKyAyKTsKKworICAgICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwg
Y29tcGxleEZGVC5kYXRhKCksIG1fZm9yd2FyZENvbnRleHQpOworCisgICAgICAgIGludCBsZW4g
PSBtX0ZGVFNpemUgLyAyOworCisgICAgICAgIC8vIFNwbGl0IEZGVCBkYXRhIGludG8gcmVhbCBh
bmQgaW1hZ2luYXJ5IGFycmF5cy4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8IGxl
bjsgKytrKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAyICogazsKKyAgICAgICAgICAgIG1f
cmVhbERhdGFba10gPSBjb21wbGV4RkZUW2luZGV4XTsKKyAgICAgICAgICAgIG1faW1hZ0RhdGFb
a10gPSBjb21wbGV4RkZUW2luZGV4ICsgMV07CisgICAgICAgIH0KKyAgICAgICAgbV9yZWFsRGF0
YVswXSA9IGNvbXBsZXhGRlRbMF07CisgICAgICAgIG1faW1hZ0RhdGFbMF0gPSBjb21wbGV4RkZU
W21fRkZUU2l6ZV07CisgICAgfQorfQorCit2b2lkIEZGVEZyYW1lOjpkb0ludmVyc2VGRlQoZmxv
YXQqIGRhdGEpCit7CisgICAgQVNTRVJUKG1faW52ZXJzZUNvbnRleHQpOworCisgICAgaWYgKG1f
aW52ZXJzZUNvbnRleHQpIHsKKyAgICAgICAgQXVkaW9GbG9hdEFycmF5IGZmdERhdGEobV9GRlRT
aXplICsgMik7CisKKyAgICAgICAgaW50IGxlbiA9IG1fRkZUU2l6ZSAvIDI7CisKKyAgICAgICAg
Ly8gUGFjayB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5IGRhdGEgaW50byB0aGUgY29tcGxleCBhcnJh
eSBmb3JtYXQKKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8IGxlbjsgKytrKSB7Cisg
ICAgICAgICAgICBpbnQgaW5kZXggPSAyICogazsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhd
ID0gbV9yZWFsRGF0YVtrXTsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1h
Z0RhdGFba107CisgICAgICAgIH0KKyAgICAgICAgZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07
CisgICAgICAgIGZmdERhdGFbMV0gPSAwOworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBt
X2ltYWdEYXRhWzBdOworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAK
KyAgICAgICAgb214U1BfRkZUSW52X0NDU1RvUl9GMzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRh
LCBtX2ludmVyc2VDb250ZXh0KTsKKyAgICB9Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6cmVhbERh
dGEoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4obV9yZWFsRGF0YS5k
YXRhKCkpOworfQorCitmbG9hdCogRkZURnJhbWU6OmltYWdEYXRhKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+KG1faW1hZ0RhdGEuZGF0YSgpKTsKK30KKworT01YRkZU
U3BlY19SX0YzMiogRkZURnJhbWU6OmNvbnRleHRGb3JTaXplKHVuc2lnbmVkIGxvZzJGRlRTaXpl
KQoreworICAgIEFTU0VSVChsb2cyRkZUU2l6ZSk7CisgICAgQVNTRVJUKGxvZzJGRlRTaXplIDwg
a01heEZGVFBvdzJTaXplKTsKKyAgICBpbnQgYnVmU2l6ZTsKKyAgICBPTVhSZXN1bHQgc3RhdHVz
ID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX0YzMihsb2cyRkZUU2l6ZSwgJmJ1ZlNpemUpOworCisg
ICAgaWYgKHN0YXR1cyA9PSBPTVhfU3RzX05vRXJyKSB7CisgICAgICAgIE9NWEZGVFNwZWNfUl9G
MzIqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxPTVhGRlRTcGVjX1JfRjMyKj4obWFsbG9jKGJ1ZlNp
emUpKTsKKyAgICAgICAgb214U1BfRkZUSW5pdF9SX0YzMihjb250ZXh0LCBsb2cyRkZUU2l6ZSk7
CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAjaWYgT1MoQU5EUk9JRCkgJiYgIVVT
RShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggZTJiODNjNGY3YTkzZWJiMjJl
YjZkNGE3NjFkOTAxYTQ3MDk1MGRjNi4uYThkZTUzMGE2ZmYxZTY5M2FkZGM0ZmUxNmMzMDIyZTEw
NTYxNjA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTg0LDcgKzE4
NCw2IEBACiAgICAgICAgICAgIyBGSVhNRTogRGlzYWJsZSBvbmNlIHRoZSBsaW5raW5nIGVycm9y
IGhhcyBiZWVuIHJlc29sdmVkLgogICAgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4NjM2CiAgICAgICAgICAgJ0VOQUJMRV9TSEFSRURfV09SS0VSUz0x
JywKLSAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0wJywKICAgICAgICAgICAnV1RGX1VTRV9O
QVRJVkVfRlVMTFNDUkVFTl9WSURFTz0xJywKICAgICAgICAgXSwKICAgICAgICAgJ2VuYWJsZV90
b3VjaF9pY29uX2xvYWRpbmcnOiAxLApAQCAtMjMxLDYgKzIzMCwxNCBAQAogICAgICAgICAgICdX
VEZfVVNFX1dFQkFVRElPX0ZGTVBFRz0xJywKICAgICAgICAgXSwKICAgICAgIH1dLAorICAgICAg
WydPUz09ImFuZHJvaWQiIGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgICdm
ZWF0dXJlX2RlZmluZXMnOiBbCisgICAgICAgICAgJ1dURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9E
TF9GRlQ9MScsCisgICAgICAgICAgIyBFbmFibGluZyB0aGUgRkZUIGlzIGVub3VnaCB0byBlbmFi
bGUgV2ViQXVkaW8gc3VwcG9ydCB0bworICAgICAgICAgICMgYWxsb3cgbW9zdCBXZWJBdWRpbyBm
ZWF0dXJlcyB0byB3b3JrIG9uIEFuZHJvaWQuCisgICAgICAgICAgJ0VOQUJMRV9XRUJfQVVESU89
MScsCisgICAgICAgIF0sCisgICAgICB9XSwKICAgICAgIFsnT1M9PSJ3aW4iIG9yIE9TPT0iYW5k
cm9pZCIgb3IgdXNlX3gxMT09MScsIHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKICAg
ICAgICAgICAnRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMPTEnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195149</attachid>
            <date>2013-03-26 13:20:46 -0700</date>
            <delta_ts>2013-03-28 13:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109755-20130326131629.patch</filename>
            <type>text/plain</type>
            <size>13899</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg5MjcwYWRmNjQ0ZjA0
YzczZWI1ODNlMzg1OWRkZTVkOThlYTk3Ni4uODMzODk5ZGQwNzQ2MGI0YWZmNDc2OGMyMGJhOWRl
NmMxYmIwNzJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTI1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6IEFkZCBkZXBlbmRlbmN5IG9uIG9wZW5tYXhfZGwgd2hlbiB1c2Vfb3Blbm1heF9k
bF9mZnQgaXMgZW5hYmxlZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBzb3VyY2UgRkZU
RnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OmFsbG9jYXRlKTogTmVlZCAz
Mi1ieXRlIGFsaWdudG1lbnQgd2l0aCB0aGUKKyAgICAgICAgT3Blbk1BWCBETCBGRlQuCisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKTogU3Vw
cG9ydCBPcGVuTUFYIERMIEZGVAorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1
Yi5jcHA6IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9GRlRGcmFtZU9wZW5NQVhETEFuZHJvaWQuY3BwOiBBZGRlZC4gIEltcGxlbWVudHMg
dGhlCisgICAgICAgIG5lY2Vzc2FyeSBpbnRlcmZhY2UgdXNpbmcgdGhlIE9wZW5NQVggREwgRkZU
IHJvdXRpbmVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFt
ZTo6RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNsZWFudXApOgorICAgICAgICAoV2ViQ29yZTo6
RkZURnJhbWU6On5GRlRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6bXVsdGlw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmRvRkZUKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjpkb0ludmVyc2VGRlQpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OnJlYWxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbWFnRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6Y29udGV4dEZvclNpemUpOgorCiAyMDEzLTAzLTI1ICBF
dWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEZpeCBKU0RvY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBkYjY5
M2M0OGQ0MmJmM2IzNDg3ZjNlOWQ2ZDZkMzZhYjg4ZjM5ODkuLmQyMjJkNDJiZmU0YjY3YjQyNmVl
NTk1ODVhNGUyODA1MjM4ZjhhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTMtMDMtMjUgIFJheW1vbmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBBUk0gRkZUIGluIFdlYkF1ZGlvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6
IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCB0aGUgT3Blbk1BWCBETCBGRlQuCisKIDIwMTMtMDMtMjQg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBSb2xsIGNocm9taXVtIGRlcHMgdG8gMTkwMzExLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAppbmRleCBlNjJlNjMzZmJiNTdmZmRhM2IzMzliNTNhMGMxMzNhYzA5M2E5NTA1
Li45YzA5ZmEyNjU4NTY1ZWQzNmEyZGU1ZDY1YWEyZDE4Y2JjMTZhYjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjgwLDYgKzI4MCwxMSBAQAogICAgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291
cmNlczE5LmNwcCcsCiAgICAgICAgIF0sCiAgICAgICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQi
IGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgJ3dlYmNvcmVfaW5jbHVkZV9k
aXJzJzogWworICAgICAgICAgJzwoREVQVEgpL3RoaXJkX3BhcnR5L29wZW5tYXhfZGwnCisgICAg
ICAgXQorICAgICB9XSwKICAgICBdLAogICB9LCAgIyB2YXJpYWJsZXMKIApAQCAtMTU5MCw2ICsx
NTk1LDE2IEBACiAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9m
Zm1wZWcvZmZtcGVnLmd5cDpmZm1wZWcnLAogICAgICAgICAgIF0sCiAgICAgICAgIH1dLAorICAg
ICAgIFsnIldURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MSIgaW4gZmVhdHVyZV9kZWZp
bmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAg
ICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbCcsCisgICAgICAgICAgIF0sCisgICAgICAgICB9LAorICAg
ICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
dGhpcmRfcGFydHkvb3Blbm1heF9kbC9kbC9kbC5neXA6b3Blbm1heF9kbCcsCisgICAgICAgICBd
LAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRvd3Mgc2hhcmVkIGJ1aWxkZXIgbmVlZHMgZXh0
cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBbJ09TPT0id2luIiBhbmQgIldURl9VU0VfV0VC
QVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVmaW5lcycsIHsKICAgICAgICAgICAnZXhwb3J0
X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4YmI2NGQzNDFjN2Q0
ODM4YTQ1OWU4MTdjZWZjMjdmMmMzNGFlMzcyLi5hMjY3MDEwZDAwMmI3YmYzYTg4ZWEzNzRiZTA3
OWM4MWUyYzc5ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zODE3LDYgKzM4MTcsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rl
c3RpbmF0aW9uQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21p
dW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9BcnJheS5oCmluZGV4IDBhNmQ4NzM0ODJkZjdjOTNkOGRjYTA4NTUwYjlhYTRlMjE3
MWQ4Y2YuLmIxNjFjZjI2MjZmMmJkOTQ3YjQyZGY4ZWUyN2JlNDYyY2FhZTAzZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxTaXplID0gc2l6ZW9mKFQp
ICogbjsKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcpCisjaWYgVVNFKFdFQkFVRElPX0ZGTVBF
RykgfHwgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQogICAgICAgICBjb25zdCBzaXplX3Qg
YWxpZ25tZW50ID0gMzI7CiAjZWxzZQogICAgICAgICBjb25zdCBzaXplX3QgYWxpZ25tZW50ID0g
MTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAppbmRleCA1NWFkMDli
ZTYzZjU1ZTg4ZjJhNDM4ZDVlODNlMWFkNDFjMWJmYWE3Li41MjJjYjVmYmM4MDJhM2Y5MWEyMTBk
MTM0OThkODNhMjU5NjRiMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZy
YW1lLmgKQEAgLTU0LDkgKzU0LDEyIEBAIEdfQkVHSU5fREVDTFMKIEdfRU5EX0RFQ0xTCiAjZW5k
aWYgLy8gVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKIAotI2lmIFVTRShXRUJBVURJT19GRk1QRUcp
CisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExfRkZUKQorI2luY2x1ZGUgImRsL3NwL2FwaS9h
cm1TUC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorI2VsaWYgVVNFKFdFQkFVRElP
X0ZGTVBFRykKIHN0cnVjdCBSREZUQ29udGV4dDsKLSNlbmRpZiAvLyBVU0UoV0VCQVVESU9fRkZN
UEVHKQorI2VuZGlmCiAKICNlbmRpZiAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCiAKQEAgLTE3Nyw2
ICsxODAsMTcgQEAgcHJpdmF0ZToKICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKICNl
bmRpZiAvLyBVU0UoV0VCQVVESU9fSVBQKQogCisjaWYgVVNFKFdFQkFVRElPX09QRU5NQVhfRExf
RkZUKQorICAgIHN0YXRpYyBPTVhGRlRTcGVjX1JfRjMyKiBjb250ZXh0Rm9yU2l6ZSh1bnNpZ25l
ZCBsb2cyRkZUU2l6ZSk7CisKKyAgICBPTVhGRlRTcGVjX1JfRjMyKiBtX2ZvcndhcmRDb250ZXh0
OworICAgIE9NWEZGVFNwZWNfUl9GMzIqIG1faW52ZXJzZUNvbnRleHQ7CisKKyAgICBBdWRpb0Zs
b2F0QXJyYXkgbV9jb21wbGV4RGF0YTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9yZWFsRGF0YTsK
KyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbWFnRGF0YTsKKyNlbmRpZgorICAgIAogI2VuZGlmIC8v
ICFVU0VfQUNDRUxFUkFURV9GRlQKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZVN0dWIuY3BwCmluZGV4IDZhMjdiZTVmNjc5ZWYwNDM0MDY4ZWM5MjU1ZDMy
OWFmZDg0NzM4YzYuLjNhZDMyODRjM2FmMmY0NDcwZDYyMWE5ZGMyMjUxN2Y4OTNlM2YzNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcApAQCAt
MjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKQorI2lmICFPUyhEQVJXSU4p
ICYmICFVU0UoV0VCQVVESU9fTUtMKSAmJiAhVVNFKFdFQkFVRElPX0ZGTVBFRykgJiYgIVVTRShX
RUJBVURJT19HU1RSRUFNRVIpICYmICFVU0UoV0VCQVVESU9fSVBQKSAmJiAhVVNFKFdFQkFVRElP
X09QRU5NQVhfRExfRkZUKQogCiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExB
bmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZy
YW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThmZDNhMjE1MzQ1ZWMxMTBhMDQ1
MDgyZGM2Y2ExNjcwYTVjZmFiYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2Nocm9taXVtL0ZGVEZyYW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKQEAgLTAs
MCArMSwyMDIgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisKKyNpZiBPUyhBTkRST0lEKSAmJiBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisK
KyNpbmNsdWRlICJGRlRGcmFtZS5oIgorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1
ZGUgIlZlY3Rvck1hdGguaCIKKyNpbmNsdWRlICJkbC9zcC9hcGkvYXJtU1AuaCIKKyNpbmNsdWRl
ICJkbC9zcC9hcGkvb214U1AuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgaW50IGtNYXhGRlRQb3cyU2l6ZSA9IDE1OworCisv
LyBOb3JtYWwgY29uc3RydWN0b3I6IGFsbG9jYXRlcyBmb3IgYSBnaXZlbiBmZnRTaXplLgorRkZU
RnJhbWU6OkZGVEZyYW1lKHVuc2lnbmVkIGZmdFNpemUpCisgICAgOiBtX0ZGVFNpemUoZmZ0U2l6
ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxvZzIoZmZ0U2l6
ZSkpKQorICAgICwgbV9mb3J3YXJkQ29udGV4dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgw
KQorICAgICwgbV9jb21wbGV4RGF0YShmZnRTaXplKQorICAgICwgbV9yZWFsRGF0YShmZnRTaXpl
IC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZmZ0U2l6ZSAvIDIpCit7CisgICAgLy8gV2Ugb25seSBh
bGxvdyBwb3dlciBvZiB0d28uCisgICAgQVNTRVJUKDFVTCA8PCBtX2xvZzJGRlRTaXplID09IG1f
RkZUU2l6ZSk7CisKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworfQorCisvLyBDcmVhdGVzIGEgYmxhbmsvZW1wdHkgZnJhbWUgKGludGVycG9sYXRl
KCkgbXVzdCBsYXRlciBiZSBjYWxsZWQpLgorRkZURnJhbWU6OkZGVEZyYW1lKCkKKyAgICA6IG1f
RkZUU2l6ZSgwKQorICAgICwgbV9sb2cyRkZUU2l6ZSgwKQorICAgICwgbV9mb3J3YXJkQ29udGV4
dCgwKQorICAgICwgbV9pbnZlcnNlQ29udGV4dCgwKQoreworfQorCisvLyBDb3B5IGNvbnN0cnVj
dG9yLgorRkZURnJhbWU6OkZGVEZyYW1lKGNvbnN0IEZGVEZyYW1lJiBmcmFtZSkKKyAgICA6IG1f
RkZUU2l6ZShmcmFtZS5tX0ZGVFNpemUpCisgICAgLCBtX2xvZzJGRlRTaXplKGZyYW1lLm1fbG9n
MkZGVFNpemUpCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250
ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZyYW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fcmVh
bERhdGEoZnJhbWUubV9GRlRTaXplIC8gMikKKyAgICAsIG1faW1hZ0RhdGEoZnJhbWUubV9GRlRT
aXplIC8gMikKK3sKKyAgICBtX2ZvcndhcmRDb250ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cy
RkZUU2l6ZSk7CisgICAgbV9pbnZlcnNlQ29udGV4dCA9IGNvbnRleHRGb3JTaXplKG1fbG9nMkZG
VFNpemUpOworCisgICAgLy8gQ29weS9zZXR1cCBmcmFtZSBkYXRhLgorICAgIHVuc2lnbmVkIG5i
eXRlcyA9IHNpemVvZihmbG9hdCkgKiAobV9GRlRTaXplIC8gMik7CisgICAgbWVtY3B5KHJlYWxE
YXRhKCksIGZyYW1lLnJlYWxEYXRhKCksIG5ieXRlcyk7CisgICAgbWVtY3B5KGltYWdEYXRhKCks
IGZyYW1lLmltYWdEYXRhKCksIG5ieXRlcyk7Cit9CisKK3ZvaWQgRkZURnJhbWU6OmluaXRpYWxp
emUoKQoreworfQorCit2b2lkIEZGVEZyYW1lOjpjbGVhbnVwKCkKK3sKK30KKworRkZURnJhbWU6
On5GRlRGcmFtZSgpCit7CisgICAgaWYgKG1fZm9yd2FyZENvbnRleHQpCisgICAgICAgIGZyZWUo
bV9mb3J3YXJkQ29udGV4dCk7CisgICAgaWYgKG1faW52ZXJzZUNvbnRleHQpCisgICAgICAgIGZy
ZWUobV9pbnZlcnNlQ29udGV4dCk7Cit9CisKK3ZvaWQgRkZURnJhbWU6Om11bHRpcGx5KGNvbnN0
IEZGVEZyYW1lJiBmcmFtZSkKK3sKKyAgICBGRlRGcmFtZSYgZnJhbWUxID0gKnRoaXM7CisgICAg
RkZURnJhbWUmIGZyYW1lMiA9IGNvbnN0X2Nhc3Q8RkZURnJhbWUmPihmcmFtZSk7CisKKyAgICBm
bG9hdCogcmVhbFAxID0gZnJhbWUxLnJlYWxEYXRhKCk7CisgICAgZmxvYXQqIGltYWdQMSA9IGZy
YW1lMS5pbWFnRGF0YSgpOworICAgIGNvbnN0IGZsb2F0KiByZWFsUDIgPSBmcmFtZTIucmVhbERh
dGEoKTsKKyAgICBjb25zdCBmbG9hdCogaW1hZ1AyID0gZnJhbWUyLmltYWdEYXRhKCk7CisKKyAg
ICB1bnNpZ25lZCBoYWxmU2l6ZSA9IGZmdFNpemUoKSAvIDI7CisgICAgZmxvYXQgcmVhbDAgPSBy
ZWFsUDFbMF07CisgICAgZmxvYXQgaW1hZzAgPSBpbWFnUDFbMF07CisKKyAgICBWZWN0b3JNYXRo
Ojp6dm11bChyZWFsUDEsIGltYWdQMSwgcmVhbFAyLCBpbWFnUDIsIHJlYWxQMSwgaW1hZ1AxLCBo
YWxmU2l6ZSk7IAorCisgICAgLy8gTXVsdGlwbHkgdGhlIHBhY2tlZCBEQy9ueXF1aXN0IGNvbXBv
bmVudAorICAgIHJlYWxQMVswXSA9IHJlYWwwICogcmVhbFAyWzBdOworICAgIGltYWdQMVswXSA9
IGltYWcwICogaW1hZ1AyWzBdOworfQorCit2b2lkIEZGVEZyYW1lOjpkb0ZGVChjb25zdCBmbG9h
dCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICBpZiAobV9m
b3J3YXJkQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgY29tcGxleEZGVChtX0ZG
VFNpemUgKyAyKTsKKworICAgICAgICBvbXhTUF9GRlRGd2RfUlRvQ0NTX0YzMl9TZnMoZGF0YSwg
Y29tcGxleEZGVC5kYXRhKCksIG1fZm9yd2FyZENvbnRleHQpOworCisgICAgICAgIHVuc2lnbmVk
IGxlbiA9IG1fRkZUU2l6ZSAvIDI7CisKKyAgICAgICAgLy8gU3BsaXQgRkZUIGRhdGEgaW50byBy
ZWFsIGFuZCBpbWFnaW5hcnkgYXJyYXlzLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSAxOyBr
IDwgbGVuOyArK2spIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDIgKiBrOworICAgICAgICAg
ICAgbV9yZWFsRGF0YVtrXSA9IGNvbXBsZXhGRlRbaW5kZXhdOworICAgICAgICAgICAgbV9pbWFn
RGF0YVtrXSA9IGNvbXBsZXhGRlRbaW5kZXggKyAxXTsKKyAgICAgICAgfQorICAgICAgICBtX3Jl
YWxEYXRhWzBdID0gY29tcGxleEZGVFswXTsKKyAgICAgICAgbV9pbWFnRGF0YVswXSA9IGNvbXBs
ZXhGRlRbbV9GRlRTaXplXTsKKyAgICB9Cit9CisKK3ZvaWQgRkZURnJhbWU6OmRvSW52ZXJzZUZG
VChmbG9hdCogZGF0YSkKK3sKKyAgICBBU1NFUlQobV9pbnZlcnNlQ29udGV4dCk7CisKKyAgICBp
ZiAobV9pbnZlcnNlQ29udGV4dCkgeworICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgZmZ0RGF0YSht
X0ZGVFNpemUgKyAyKTsKKworICAgICAgICB1bnNpZ25lZCBsZW4gPSBtX0ZGVFNpemUgLyAyOwor
CisgICAgICAgIC8vIFBhY2sgdGhlIHJlYWwgYW5kIGltYWdpbmFyeSBkYXRhIGludG8gdGhlIGNv
bXBsZXggYXJyYXkgZm9ybWF0CisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBsZW47
ICsraykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMiAqIGs7CisgICAgICAgICAgICBmZnRE
YXRhW2luZGV4XSA9IG1fcmVhbERhdGFba107CisgICAgICAgICAgICBmZnREYXRhW2luZGV4ICsg
MV0gPSBtX2ltYWdEYXRhW2tdOworICAgICAgICB9CisgICAgICAgIGZmdERhdGFbMF0gPSBtX3Jl
YWxEYXRhWzBdOworICAgICAgICBmZnREYXRhWzFdID0gMDsKKyAgICAgICAgZmZ0RGF0YVttX0ZG
VFNpemVdID0gbV9pbWFnRGF0YVswXTsKKyAgICAgICAgZmZ0RGF0YVttX0ZGVFNpemUgKyAxXSA9
IDA7CisgICAgCisgICAgICAgIG9teFNQX0ZGVEludl9DQ1NUb1JfRjMyX1NmcyhmZnREYXRhLmRh
dGEoKSwgZGF0YSwgbV9pbnZlcnNlQ29udGV4dCk7CisgICAgfQorfQorCitmbG9hdCogRkZURnJh
bWU6OnJlYWxEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+KG1f
cmVhbERhdGEuZGF0YSgpKTsKK30KKworZmxvYXQqIEZGVEZyYW1lOjppbWFnRGF0YSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8ZmxvYXQqPihtX2ltYWdEYXRhLmRhdGEoKSk7Cit9
CisKK09NWEZGVFNwZWNfUl9GMzIqIEZGVEZyYW1lOjpjb250ZXh0Rm9yU2l6ZSh1bnNpZ25lZCBs
b2cyRkZUU2l6ZSkKK3sKKyAgICBBU1NFUlQobG9nMkZGVFNpemUpOworICAgIEFTU0VSVChsb2cy
RkZUU2l6ZSA8IGtNYXhGRlRQb3cyU2l6ZSk7CisgICAgaW50IGJ1ZlNpemU7CisgICAgT01YUmVz
dWx0IHN0YXR1cyA9IG9teFNQX0ZGVEdldEJ1ZlNpemVfUl9GMzIobG9nMkZGVFNpemUsICZidWZT
aXplKTsKKworICAgIGlmIChzdGF0dXMgPT0gT01YX1N0c19Ob0VycikgeworICAgICAgICBPTVhG
RlRTcGVjX1JfRjMyKiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8T01YRkZUU3BlY19SX0YzMio+KG1h
bGxvYyhidWZTaXplKSk7CisgICAgICAgIG9teFNQX0ZGVEluaXRfUl9GMzIoY29udGV4dCwgbG9n
MkZGVFNpemUpOworICAgICAgICByZXR1cm4gY29udGV4dDsKKyAgICB9CisKKyAgICByZXR1cm4g
MDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gI2lmIE9TKEFORFJP
SUQpICYmICFVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5n
eXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGUyYjgzYzRm
N2E5M2ViYjIyZWI2ZDRhNzYxZDkwMWE0NzA5NTBkYzYuLmE4ZGU1MzBhNmZmMWU2OTNhZGRjNGZl
MTZjMzAyMmUxMDU2MTYwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAg
LTE4NCw3ICsxODQsNiBAQAogICAgICAgICAgICMgRklYTUU6IERpc2FibGUgb25jZSB0aGUgbGlu
a2luZyBlcnJvciBoYXMgYmVlbiByZXNvbHZlZC4KICAgICAgICAgICAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYzNgogICAgICAgICAgICdFTkFCTEVfU0hBUkVE
X1dPUktFUlM9MScsCi0gICAgICAgICAgJ0VOQUJMRV9XRUJfQVVESU89MCcsCiAgICAgICAgICAg
J1dURl9VU0VfTkFUSVZFX0ZVTExTQ1JFRU5fVklERU89MScsCiAgICAgICAgIF0sCiAgICAgICAg
ICdlbmFibGVfdG91Y2hfaWNvbl9sb2FkaW5nJzogMSwKQEAgLTIzMSw2ICsyMzAsMTQgQEAKICAg
ICAgICAgICAnV1RGX1VTRV9XRUJBVURJT19GRk1QRUc9MScsCiAgICAgICAgIF0sCiAgICAgICB9
XSwKKyAgICAgIFsnT1M9PSJhbmRyb2lkIiBhbmQgdXNlX29wZW5tYXhfZGxfZmZ0IT0wJywgewor
ICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzogWworICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElP
X09QRU5NQVhfRExfRkZUPTEnLAorICAgICAgICAgICMgRW5hYmxpbmcgdGhlIEZGVCBpcyBlbm91
Z2ggdG8gZW5hYmxlIFdlYkF1ZGlvIHN1cHBvcnQgdG8KKyAgICAgICAgICAjIGFsbG93IG1vc3Qg
V2ViQXVkaW8gZmVhdHVyZXMgdG8gd29yayBvbiBBbmRyb2lkLgorICAgICAgICAgICdFTkFCTEVf
V0VCX0FVRElPPTEnLAorICAgICAgICBdLAorICAgICAgfV0sCiAgICAgICBbJ09TPT0id2luIiBv
ciBPUz09ImFuZHJvaWQiIG9yIHVzZV94MTE9PTEnLCB7CiAgICAgICAgICdmZWF0dXJlX2RlZmlu
ZXMnOiBbCiAgICAgICAgICAgJ0VOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTD0xJywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195630</attachid>
            <date>2013-03-28 13:18:52 -0700</date>
            <delta_ts>2013-04-02 12:42:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109755-20130328131849.patch</filename>
            <type>text/plain</type>
            <size>13964</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NmExNjJmNzYzMTQ0
MWM4ZTE1YzQ2NDc1ZmU0NGQ1ZTM1Y2FlOS4uNjlmYjk0N2MwYTBjYWJjNGQ3ZDY5MWM4ZDkxMjVh
YzAxN2UyYjhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTI1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgY3JvZ2Vyc0Bnb29n
bGUuY29tLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwOiBBZGQgZGVwZW5kZW5jeSBvbiBvcGVubWF4X2RsIHdoZW4gdXNlX29wZW5t
YXhfZGxfZmZ0IGlzIGVuYWJsZWQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGQgc291cmNl
IEZGVEZyYW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb0FycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5OjphbGxvY2F0ZSk6IE5l
ZWQgMzItYnl0ZSBhbGlnbnRtZW50IHdpdGggdGhlCisgICAgICAgIE9wZW5NQVggREwgRkZULgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmg6CisgICAgICAgIChGRlRGcmFtZSk6
IFN1cHBvcnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFt
ZVN0dWIuY3BwOiBTdXBwb3J0IE9wZW5NQVggREwgRkZUCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcDogQWRkZWQuICBJbXBsZW1l
bnRzIHRoZQorICAgICAgICBuZWNlc3NhcnkgaW50ZXJmYWNlIHVzaW5nIHRoZSBPcGVuTUFYIERM
IEZGVCByb3V0aW5lcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RkZU
RnJhbWU6OkZGVEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpjbGVhbnVwKToKKyAgICAgICAgKFdlYkNv
cmU6OkZGVEZyYW1lOjp+RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6Om11
bHRpcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ZGVCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZy
YW1lOjpyZWFsRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6aW1hZ0RhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6OmNvbnRleHRGb3JTaXplKToKKwogMjAxMy0wMy0y
NyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2hyb21pdW0gTWFj
IGZhaWxzIHRvIGJ1aWxkIGFmdGVyIHIxNDY5OTUgYmVjYXVzZSB0aGUgbmV3IE5TRm9udCBjYXRl
Z29yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhYjk1YzVjMjdiZTI3NGUxODFhNGNj
ODE2NmVkZDlhODgwYWE0MDUwLi45YWM0MDFmOTE3MGJiYzVhNzA4NmJhOThkMTkxNzE2ZmZkYjhl
YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTAz
LTI1ICBSYXltb25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgdXNpbmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgY3Jv
Z2Vyc0Bnb29nbGUuY29tLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaTogU3VwcG9ydCBidWls
ZGluZyB3aXRoIHRoZSBPcGVuTUFYIERMIEZGVC4KKwogMjAxMy0wMy0yNyAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGRvY2st
dG8tcmlnaHQgb2YgdGhlIFdlYiBJbnNwZWN0b3IgaW4gdGhlIE1hYyBwb3J0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCAyNWFiZjg1NTYxYTFlNTQ5YzdiMDNhNTIx
NWZlNDliNTYwYjk3OGExLi5jMDZhMDBhOTY0MmRjNmQzNjZlOTE2ZmY0YzUzNWJhYjI0NzQ2YTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjgwLDYgKzI4MCwx
MSBAQAogICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGlu
Z3MvVjhEZXJpdmVkU291cmNlczE5LmNwcCcsCiAgICAgICAgIF0sCiAgICAgICB9XSwKKyAgICAg
WydPUz09ImFuZHJvaWQiIGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgJ3dl
YmNvcmVfaW5jbHVkZV9kaXJzJzogWworICAgICAgICAgJzwoREVQVEgpL3RoaXJkX3BhcnR5L29w
ZW5tYXhfZGwnCisgICAgICAgXQorICAgICB9XSwKICAgICBdLAogICB9LCAgIyB2YXJpYWJsZXMK
IApAQCAtMTU5MCw2ICsxNTk1LDE2IEBACiAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGly
KS90aGlyZF9wYXJ0eS9mZm1wZWcvZmZtcGVnLmd5cDpmZm1wZWcnLAogICAgICAgICAgIF0sCiAg
ICAgICAgIH1dLAorICAgICAgIFsnIldURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MSIg
aW4gZmVhdHVyZV9kZWZpbmVzJywgeworICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGlu
Z3MnOiB7CisgICAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgJzwoY2hy
b21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heF9kbCcsCisgICAgICAgICAgIF0sCisg
ICAgICAgICB9LAorICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgICAgJzwoY2hy
b21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heF9kbC9kbC9kbC5neXA6b3Blbm1heF9k
bCcsCisgICAgICAgICBdLAorICAgICAgIH1dLAogICAgICAgICAjIFdpbmRvd3Mgc2hhcmVkIGJ1
aWxkZXIgbmVlZHMgZXh0cmEgaGVscCBmb3IgbGlua2FnZQogICAgICAgICBbJ09TPT0id2luIiBh
bmQgIldURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEiIGluIGZlYXR1cmVfZGVmaW5lcycsIHsKICAg
ICAgICAgICAnZXhwb3J0X2RlcGVuZGVudF9zZXR0aW5ncyc6IFsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAxNGYzOWIxNjk3OTIyMDU2OTc2MDU3OTcxMDQ4MDFkODQyZDJiNmQyLi40Yjg1OGEyZDRlY2Yx
MDBiNWUxZTE3MTYyMjkwZmQ4ZTkzMmYxN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNzgwLDYg
KzM3ODAsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVz
Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRp
b0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hdWRpby9j
aHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vYXVkaW8vZmZtcGVnL0ZGVEZyYW1lRkZNUEVHLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vYXVkaW8vbWFjL0ZGVEZyYW1lTWFjLmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vYXVkaW8vbWtsL0ZGVEZyYW1lTUtMLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKaW5kZXggMGE2ZDg3MzQ4MmRmN2M5M2Q4ZGNhMDg1NTBi
OWFhNGUyMTcxZDhjZi4uYjE2MWNmMjYyNmYyYmQ5NDdiNDJkZjhlZTI3YmU0NjJjYWFlMDNlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgICAKICAgICAgICAgdW5zaWduZWQgaW5pdGlhbFNpemUgPSBz
aXplb2YoVCkgKiBuOwogCi0jaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykKKyNpZiBVU0UoV0VCQVVE
SU9fRkZNUEVHKSB8fCBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCiAgICAgICAgIGNvbnN0
IHNpemVfdCBhbGlnbm1lbnQgPSAzMjsKICNlbHNlCiAgICAgICAgIGNvbnN0IHNpemVfdCBhbGln
bm1lbnQgPSAxNjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZG
VEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCmluZGV4
IDU1YWQwOWJlNjNmNTVlODhmMmE0MzhkNWU4M2UxYWQ0MWMxYmZhYTcuLjUyMmNiNWZiYzgwMmEz
ZjkxYTIxMGQxMzQ5OGQ4M2EyNTk2NGIzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRkZURnJhbWUuaApAQCAtNTQsOSArNTQsMTIgQEAgR19CRUdJTl9ERUNMUwogR19FTkRfREVD
TFMKICNlbmRpZiAvLyBVU0UoV0VCQVVESU9fR1NUUkVBTUVSKQogCi0jaWYgVVNFKFdFQkFVRElP
X0ZGTVBFRykKKyNpZiBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisjaW5jbHVkZSAiZGwv
c3AvYXBpL2FybVNQLmgiCisjaW5jbHVkZSAiZGwvc3AvYXBpL29teFNQLmgiCisjZWxpZiBVU0Uo
V0VCQVVESU9fRkZNUEVHKQogc3RydWN0IFJERlRDb250ZXh0OwotI2VuZGlmIC8vIFVTRShXRUJB
VURJT19GRk1QRUcpCisjZW5kaWYKIAogI2VuZGlmIC8vICFVU0VfQUNDRUxFUkFURV9GRlQKIApA
QCAtMTc3LDYgKzE4MCwxNyBAQCBwcml2YXRlOgogICAgIEF1ZGlvRmxvYXRBcnJheSBtX2ltYWdE
YXRhOwogI2VuZGlmIC8vIFVTRShXRUJBVURJT19JUFApCiAKKyNpZiBVU0UoV0VCQVVESU9fT1BF
Tk1BWF9ETF9GRlQpCisgICAgc3RhdGljIE9NWEZGVFNwZWNfUl9GMzIqIGNvbnRleHRGb3JTaXpl
KHVuc2lnbmVkIGxvZzJGRlRTaXplKTsKKworICAgIE9NWEZGVFNwZWNfUl9GMzIqIG1fZm9yd2Fy
ZENvbnRleHQ7CisgICAgT01YRkZUU3BlY19SX0YzMiogbV9pbnZlcnNlQ29udGV4dDsKKworICAg
IEF1ZGlvRmxvYXRBcnJheSBtX2NvbXBsZXhEYXRhOworICAgIEF1ZGlvRmxvYXRBcnJheSBtX3Jl
YWxEYXRhOworICAgIEF1ZGlvRmxvYXRBcnJheSBtX2ltYWdEYXRhOworI2VuZGlmCisgICAgCiAj
ZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKaW5kZXggNmEyN2JlNWY2NzllZjA0MzQwNjhl
YzkyNTVkMzI5YWZkODQ3MzhjNi4uM2FkMzI4NGMzYWYyZjQ0NzBkNjIxYTlkYzIyNTE3Zjg5M2Uz
ZjM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVT
dHViLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIu
Y3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaWYgIU9T
KERBUldJTikgJiYgIVVTRShXRUJBVURJT19NS0wpICYmICFVU0UoV0VCQVVESU9fRkZNUEVHKSAm
JiAhVVNFKFdFQkFVRElPX0dTVFJFQU1FUikgJiYgIVVTRShXRUJBVURJT19JUFApCisjaWYgIU9T
KERBUldJTikgJiYgIVVTRShXRUJBVURJT19NS0wpICYmICFVU0UoV0VCQVVESU9fRkZNUEVHKSAm
JiAhVVNFKFdFQkFVRElPX0dTVFJFQU1FUikgJiYgIVVTRShXRUJBVURJT19JUFApICYmICFVU0Uo
V0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCiAKICNpbmNsdWRlICJGRlRGcmFtZS5oIgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9GRlRGcmFtZU9w
ZW5NQVhETEFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21p
dW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGZkM2EyMTUzNDVl
YzExMGEwNDUwODJkYzZjYTE2NzBhNWNmYWJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNw
cApAQCAtMCwwICsxLDIwMiBAQAorLyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KFdFQl9BVURJTykKKworI2lmIE9TKEFORFJPSUQpICYmIFVTRShXRUJBVURJT19PUEVOTUFYX0RM
X0ZGVCkKKworI2luY2x1ZGUgIkZGVEZyYW1lLmgiCisKKyNpbmNsdWRlICJBdWRpb0FycmF5Lmgi
CisjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9hcm1TUC5oIgor
I2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBpbnQga01heEZGVFBvdzJTaXplID0g
MTU7CisKKy8vIE5vcm1hbCBjb25zdHJ1Y3RvcjogYWxsb2NhdGVzIGZvciBhIGdpdmVuIGZmdFNp
emUuCitGRlRGcmFtZTo6RkZURnJhbWUodW5zaWduZWQgZmZ0U2l6ZSkKKyAgICA6IG1fRkZUU2l6
ZShmZnRTaXplKQorICAgICwgbV9sb2cyRkZUU2l6ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obG9n
MihmZnRTaXplKSkpCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VD
b250ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZmdFNpemUpCisgICAgLCBtX3JlYWxEYXRh
KGZmdFNpemUgLyAyKQorICAgICwgbV9pbWFnRGF0YShmZnRTaXplIC8gMikKK3sKKyAgICAvLyBX
ZSBvbmx5IGFsbG93IHBvd2VyIG9mIHR3by4KKyAgICBBU1NFUlQoMVVMIDw8IG1fbG9nMkZGVFNp
emUgPT0gbV9GRlRTaXplKTsKKworICAgIG1fZm9yd2FyZENvbnRleHQgPSBjb250ZXh0Rm9yU2l6
ZShtX2xvZzJGRlRTaXplKTsKKyAgICBtX2ludmVyc2VDb250ZXh0ID0gY29udGV4dEZvclNpemUo
bV9sb2cyRkZUU2l6ZSk7Cit9CisKKy8vIENyZWF0ZXMgYSBibGFuay9lbXB0eSBmcmFtZSAoaW50
ZXJwb2xhdGUoKSBtdXN0IGxhdGVyIGJlIGNhbGxlZCkuCitGRlRGcmFtZTo6RkZURnJhbWUoKQor
ICAgIDogbV9GRlRTaXplKDApCisgICAgLCBtX2xvZzJGRlRTaXplKDApCisgICAgLCBtX2Zvcndh
cmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0KDApCit7Cit9CisKKy8vIENvcHkg
Y29uc3RydWN0b3IuCitGRlRGcmFtZTo6RkZURnJhbWUoY29uc3QgRkZURnJhbWUmIGZyYW1lKQor
ICAgIDogbV9GRlRTaXplKGZyYW1lLm1fRkZUU2l6ZSkKKyAgICAsIG1fbG9nMkZGVFNpemUoZnJh
bWUubV9sb2cyRkZUU2l6ZSkKKyAgICAsIG1fZm9yd2FyZENvbnRleHQoMCkKKyAgICAsIG1faW52
ZXJzZUNvbnRleHQoMCkKKyAgICAsIG1fY29tcGxleERhdGEoZnJhbWUubV9GRlRTaXplKQorICAg
ICwgbV9yZWFsRGF0YShmcmFtZS5tX0ZGVFNpemUgLyAyKQorICAgICwgbV9pbWFnRGF0YShmcmFt
ZS5tX0ZGVFNpemUgLyAyKQoreworICAgIG1fZm9yd2FyZENvbnRleHQgPSBjb250ZXh0Rm9yU2l6
ZShtX2xvZzJGRlRTaXplKTsKKyAgICBtX2ludmVyc2VDb250ZXh0ID0gY29udGV4dEZvclNpemUo
bV9sb2cyRkZUU2l6ZSk7CisKKyAgICAvLyBDb3B5L3NldHVwIGZyYW1lIGRhdGEuCisgICAgdW5z
aWduZWQgbmJ5dGVzID0gc2l6ZW9mKGZsb2F0KSAqIChtX0ZGVFNpemUgLyAyKTsKKyAgICBtZW1j
cHkocmVhbERhdGEoKSwgZnJhbWUucmVhbERhdGEoKSwgbmJ5dGVzKTsKKyAgICBtZW1jcHkoaW1h
Z0RhdGEoKSwgZnJhbWUuaW1hZ0RhdGEoKSwgbmJ5dGVzKTsKK30KKwordm9pZCBGRlRGcmFtZTo6
aW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgRkZURnJhbWU6OmNsZWFudXAoKQoreworfQorCitG
RlRGcmFtZTo6fkZGVEZyYW1lKCkKK3sKKyAgICBpZiAobV9mb3J3YXJkQ29udGV4dCkKKyAgICAg
ICAgZnJlZShtX2ZvcndhcmRDb250ZXh0KTsKKyAgICBpZiAobV9pbnZlcnNlQ29udGV4dCkKKyAg
ICAgICAgZnJlZShtX2ludmVyc2VDb250ZXh0KTsKK30KKwordm9pZCBGRlRGcmFtZTo6bXVsdGlw
bHkoY29uc3QgRkZURnJhbWUmIGZyYW1lKQoreworICAgIEZGVEZyYW1lJiBmcmFtZTEgPSAqdGhp
czsKKyAgICBGRlRGcmFtZSYgZnJhbWUyID0gY29uc3RfY2FzdDxGRlRGcmFtZSY+KGZyYW1lKTsK
KworICAgIGZsb2F0KiByZWFsUDEgPSBmcmFtZTEucmVhbERhdGEoKTsKKyAgICBmbG9hdCogaW1h
Z1AxID0gZnJhbWUxLmltYWdEYXRhKCk7CisgICAgY29uc3QgZmxvYXQqIHJlYWxQMiA9IGZyYW1l
Mi5yZWFsRGF0YSgpOworICAgIGNvbnN0IGZsb2F0KiBpbWFnUDIgPSBmcmFtZTIuaW1hZ0RhdGEo
KTsKKworICAgIHVuc2lnbmVkIGhhbGZTaXplID0gZmZ0U2l6ZSgpIC8gMjsKKyAgICBmbG9hdCBy
ZWFsMCA9IHJlYWxQMVswXTsKKyAgICBmbG9hdCBpbWFnMCA9IGltYWdQMVswXTsKKworICAgIFZl
Y3Rvck1hdGg6Onp2bXVsKHJlYWxQMSwgaW1hZ1AxLCByZWFsUDIsIGltYWdQMiwgcmVhbFAxLCBp
bWFnUDEsIGhhbGZTaXplKTsgCisKKyAgICAvLyBNdWx0aXBseSB0aGUgcGFja2VkIERDL255cXVp
c3QgY29tcG9uZW50CisgICAgcmVhbFAxWzBdID0gcmVhbDAgKiByZWFsUDJbMF07CisgICAgaW1h
Z1AxWzBdID0gaW1hZzAgKiBpbWFnUDJbMF07Cit9CisKK3ZvaWQgRkZURnJhbWU6OmRvRkZUKGNv
bnN0IGZsb2F0KiBkYXRhKQoreworICAgIEFTU0VSVChtX2ZvcndhcmRDb250ZXh0KTsKKworICAg
IGlmIChtX2ZvcndhcmRDb250ZXh0KSB7CisgICAgICAgIEF1ZGlvRmxvYXRBcnJheSBjb21wbGV4
RkZUKG1fRkZUU2l6ZSArIDIpOworCisgICAgICAgIG9teFNQX0ZGVEZ3ZF9SVG9DQ1NfRjMyX1Nm
cyhkYXRhLCBjb21wbGV4RkZULmRhdGEoKSwgbV9mb3J3YXJkQ29udGV4dCk7CisKKyAgICAgICAg
dW5zaWduZWQgbGVuID0gbV9GRlRTaXplIC8gMjsKKworICAgICAgICAvLyBTcGxpdCBGRlQgZGF0
YSBpbnRvIHJlYWwgYW5kIGltYWdpbmFyeSBhcnJheXMuCisgICAgICAgIGZvciAodW5zaWduZWQg
ayA9IDE7IGsgPCBsZW47ICsraykgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMiAqIGs7Cisg
ICAgICAgICAgICBtX3JlYWxEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleF07CisgICAgICAgICAg
ICBtX2ltYWdEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleCArIDFdOworICAgICAgICB9CisgICAg
ICAgIG1fcmVhbERhdGFbMF0gPSBjb21wbGV4RkZUWzBdOworICAgICAgICBtX2ltYWdEYXRhWzBd
ID0gY29tcGxleEZGVFttX0ZGVFNpemVdOworICAgIH0KK30KKwordm9pZCBGRlRGcmFtZTo6ZG9J
bnZlcnNlRkZUKGZsb2F0KiBkYXRhKQoreworICAgIEFTU0VSVChtX2ludmVyc2VDb250ZXh0KTsK
KworICAgIGlmIChtX2ludmVyc2VDb250ZXh0KSB7CisgICAgICAgIEF1ZGlvRmxvYXRBcnJheSBm
ZnREYXRhKG1fRkZUU2l6ZSArIDIpOworCisgICAgICAgIHVuc2lnbmVkIGxlbiA9IG1fRkZUU2l6
ZSAvIDI7CisKKyAgICAgICAgLy8gUGFjayB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5IGRhdGEgaW50
byB0aGUgY29tcGxleCBhcnJheSBmb3JtYXQKKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsg
ayA8IGxlbjsgKytrKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAyICogazsKKyAgICAgICAg
ICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFsRGF0YVtrXTsKKyAgICAgICAgICAgIGZmdERhdGFb
aW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107CisgICAgICAgIH0KKyAgICAgICAgZmZ0RGF0YVsw
XSA9IG1fcmVhbERhdGFbMF07CisgICAgICAgIGZmdERhdGFbMV0gPSAwOworICAgICAgICBmZnRE
YXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRhWzBdOworICAgICAgICBmZnREYXRhW21fRkZUU2l6
ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAgb214U1BfRkZUSW52X0NDU1RvUl9GMzJfU2ZzKGZm
dERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVyc2VDb250ZXh0KTsKKyAgICB9Cit9CisKK2Zsb2F0
KiBGRlRGcmFtZTo6cmVhbERhdGEoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdF9jYXN0PGZs
b2F0Kj4obV9yZWFsRGF0YS5kYXRhKCkpOworfQorCitmbG9hdCogRkZURnJhbWU6OmltYWdEYXRh
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxmbG9hdCo+KG1faW1hZ0RhdGEuZGF0
YSgpKTsKK30KKworT01YRkZUU3BlY19SX0YzMiogRkZURnJhbWU6OmNvbnRleHRGb3JTaXplKHVu
c2lnbmVkIGxvZzJGRlRTaXplKQoreworICAgIEFTU0VSVChsb2cyRkZUU2l6ZSk7CisgICAgQVNT
RVJUKGxvZzJGRlRTaXplIDwga01heEZGVFBvdzJTaXplKTsKKyAgICBpbnQgYnVmU2l6ZTsKKyAg
ICBPTVhSZXN1bHQgc3RhdHVzID0gb214U1BfRkZUR2V0QnVmU2l6ZV9SX0YzMihsb2cyRkZUU2l6
ZSwgJmJ1ZlNpemUpOworCisgICAgaWYgKHN0YXR1cyA9PSBPTVhfU3RzX05vRXJyKSB7CisgICAg
ICAgIE9NWEZGVFNwZWNfUl9GMzIqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxPTVhGRlRTcGVjX1Jf
RjMyKj4obWFsbG9jKGJ1ZlNpemUpKTsKKyAgICAgICAgb214U1BfRkZUSW5pdF9SX0YzMihjb250
ZXh0LCBsb2cyRkZUU2l6ZSk7CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKworICAg
IHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAjaWYg
T1MoQU5EUk9JRCkgJiYgIVVTRShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2Zl
YXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXgg
ZTJiODNjNGY3YTkzZWJiMjJlYjZkNGE3NjFkOTAxYTQ3MDk1MGRjNi4uYThkZTUzMGE2ZmYxZTY5
M2FkZGM0ZmUxNmMzMDIyZTEwNTYxNjA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaQpAQCAtMTg0LDcgKzE4NCw2IEBACiAgICAgICAgICAgIyBGSVhNRTogRGlzYWJsZSBvbmNl
IHRoZSBsaW5raW5nIGVycm9yIGhhcyBiZWVuIHJlc29sdmVkLgogICAgICAgICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NjM2CiAgICAgICAgICAgJ0VOQUJM
RV9TSEFSRURfV09SS0VSUz0xJywKLSAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0wJywKICAg
ICAgICAgICAnV1RGX1VTRV9OQVRJVkVfRlVMTFNDUkVFTl9WSURFTz0xJywKICAgICAgICAgXSwK
ICAgICAgICAgJ2VuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcnOiAxLApAQCAtMjMxLDYgKzIzMCwx
NCBAQAogICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElPX0ZGTVBFRz0xJywKICAgICAgICAgXSwK
ICAgICAgIH1dLAorICAgICAgWydPUz09ImFuZHJvaWQiIGFuZCB1c2Vfb3Blbm1heF9kbF9mZnQh
PTAnLCB7CisgICAgICAgICdmZWF0dXJlX2RlZmluZXMnOiBbCisgICAgICAgICAgJ1dURl9VU0Vf
V0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MScsCisgICAgICAgICAgIyBFbmFibGluZyB0aGUgRkZU
IGlzIGVub3VnaCB0byBlbmFibGUgV2ViQXVkaW8gc3VwcG9ydCB0bworICAgICAgICAgICMgYWxs
b3cgbW9zdCBXZWJBdWRpbyBmZWF0dXJlcyB0byB3b3JrIG9uIEFuZHJvaWQuCisgICAgICAgICAg
J0VOQUJMRV9XRUJfQVVESU89MScsCisgICAgICAgIF0sCisgICAgICB9XSwKICAgICAgIFsnT1M9
PSJ3aW4iIG9yIE9TPT0iYW5kcm9pZCIgb3IgdXNlX3gxMT09MScsIHsKICAgICAgICAgJ2ZlYXR1
cmVfZGVmaW5lcyc6IFsKICAgICAgICAgICAnRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMPTEnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196212</attachid>
            <date>2013-04-02 12:42:42 -0700</date>
            <delta_ts>2013-04-02 13:23:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109755-20130402124233.patch</filename>
            <type>text/plain</type>
            <size>13928</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmOTIxOWM4MzM4MTky
MzkyNjUwN2Y0OTM3MTM0YzVkOGJlYjhmZS4uZTZlNDFiYmI0YWEyNzVlY2NiZGMyOWZkNWZiY2Mx
NzlhYjBiZTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTI1ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNp
bmcgQVJNIEZGVCBpbiBXZWJBdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgUm9nZXJz
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwOiBBZGQgZGVwZW5kZW5jeSBvbiBvcGVubWF4X2RsIHdoZW4gdXNlX29wZW5tYXhfZGxf
ZmZ0IGlzIGVuYWJsZWQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGQgc291cmNlIEZGVEZy
YW1lT3Blbk1BWERMQW5kcm9pZC5jcHAKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Fy
cmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5OjphbGxvY2F0ZSk6IE5lZWQgMzIt
Ynl0ZSBhbGlnbnRtZW50IHdpdGggdGhlCisgICAgICAgIE9wZW5NQVggREwgRkZULgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmg6CisgICAgICAgIChGRlRGcmFtZSk6IFN1cHBv
cnQgT3Blbk1BWCBETCBGRlQKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZVN0dWIu
Y3BwOiBTdXBwb3J0IE9wZW5NQVggREwgRkZUCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY2hy
b21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcDogQWRkZWQuICBJbXBsZW1lbnRzIHRo
ZQorICAgICAgICBuZWNlc3NhcnkgaW50ZXJmYWNlIHVzaW5nIHRoZSBPcGVuTUFYIERMIEZGVCBy
b3V0aW5lcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6
OkZGVEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjppbml0aWFsaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpjbGVhbnVwKToKKyAgICAgICAgKFdlYkNvcmU6OkZG
VEZyYW1lOjp+RkZURnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RkZURnJhbWU6Om11bHRpcGx5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpkb0ZGVCk6CisgICAgICAgIChXZWJDb3Jl
OjpGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKToKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpy
ZWFsRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGRlRGcmFtZTo6aW1hZ0RhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6RkZURnJhbWU6OmNvbnRleHRGb3JTaXplKToKKwogMjAxMy0wNC0wMSAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSAndGhpcycg
ZXZhbHVhdGUgdG8gdGhlIGNvcnJlY3Qgb2JqZWN0IHdoZW4gcGF1c2VkIGluIHRoZSBEZWJ1Z2dl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYTU4OTZmNmIxNDcxNmJlMTZlOGQzNzI1
ZTIyOWE5ZGYxN2ZhMWM5My4uM2U2MzE0MDRkYTE5MGVmMTUzMzM4MzQ2N2M3ZWQwNDcyOTJlNTZh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMy0y
NSAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHVzaW5nIEFSTSBGRlQgaW4gV2ViQXVkaW8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTc1NQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlz
IFJvZ2Vycy4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IFN1cHBvcnQgYnVpbGRpbmcgd2l0
aCB0aGUgT3Blbk1BWCBETCBGRlQuCisKIDIwMTMtMDMtMzAgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSB1bnVzZWQgaW5jbHVkZXMg
b2Ygc3RkaW8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCAxZDJl
MzIwYzk0OTA0NDBiYmQ4NzAwYzhkNTNiMmNlYTE2ZDQ2OGNiLi43ZDYwOWQ4NDY3MjU1N2U1YWVj
NTAzMTBkOWUxNGNjMzgyYThhMWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cApAQCAtMjgwLDYgKzI4MCwxMSBAQAogICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhEZXJpdmVkU291cmNlczE5LmNwcCcsCiAgICAgICAg
IF0sCiAgICAgICB9XSwKKyAgICAgWydPUz09ImFuZHJvaWQiIGFuZCB1c2Vfb3Blbm1heF9kbF9m
ZnQhPTAnLCB7CisgICAgICAgJ3dlYmNvcmVfaW5jbHVkZV9kaXJzJzogWworICAgICAgICAgJzwo
REVQVEgpL3RoaXJkX3BhcnR5L29wZW5tYXhfZGwnCisgICAgICAgXQorICAgICB9XSwKICAgICBd
LAogICB9LCAgIyB2YXJpYWJsZXMKIApAQCAtMTU5MCw2ICsxNTk1LDE2IEBACiAgICAgICAgICAg
ICAnPChjaHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9mZm1wZWcvZmZtcGVnLmd5cDpmZm1w
ZWcnLAogICAgICAgICAgIF0sCiAgICAgICAgIH1dLAorICAgICAgIFsnIldURl9VU0VfV0VCQVVE
SU9fT1BFTk1BWF9ETF9GRlQ9MSIgaW4gZmVhdHVyZV9kZWZpbmVzJywgeworICAgICAgICAgJ2Rp
cmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CisgICAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBb
CisgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heF9k
bCcsCisgICAgICAgICAgIF0sCisgICAgICAgICB9LAorICAgICAgICAgJ2RlcGVuZGVuY2llcyc6
IFsKKyAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvb3Blbm1heF9k
bC9kbC9kbC5neXA6b3Blbm1heF9kbCcsCisgICAgICAgICBdLAorICAgICAgIH1dLAogICAgICAg
ICAjIFdpbmRvd3Mgc2hhcmVkIGJ1aWxkZXIgbmVlZHMgZXh0cmEgaGVscCBmb3IgbGlua2FnZQog
ICAgICAgICBbJ09TPT0id2luIiBhbmQgIldURl9VU0VfV0VCQVVESU9fRkZNUEVHPTEiIGluIGZl
YXR1cmVfZGVmaW5lcycsIHsKICAgICAgICAgICAnZXhwb3J0X2RlcGVuZGVudF9zZXR0aW5ncyc6
IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwZjU1NDNiNDdjZTZlM2NkMDA0NTdiNTc5M2IyYjM5OGJh
ZjA1ZDhiLi4xYzgwNWUyY2QxNGJjMDdlYTBkZjEyMzJiZDNlZDdmYWRlMWJiODVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zNzgwLDYgKzM3ODAsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2F1
ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExB
bmRyb2lkLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vZmZtcGVnL0ZGVEZyYW1l
RkZNUEVHLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vbWFjL0ZGVEZyYW1lTWFj
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYXVkaW8vbWtsL0ZGVEZyYW1lTUtMLmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKaW5kZXggMGE2ZDg3
MzQ4MmRmN2M5M2Q4ZGNhMDg1NTBiOWFhNGUyMTcxZDhjZi4uYjE2MWNmMjYyNmYyYmQ5NDdiNDJk
ZjhlZTI3YmU0NjJjYWFlMDNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9BcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQXJyYXkuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAKICAgICAgICAgdW5z
aWduZWQgaW5pdGlhbFNpemUgPSBzaXplb2YoVCkgKiBuOwogCi0jaWYgVVNFKFdFQkFVRElPX0ZG
TVBFRykKKyNpZiBVU0UoV0VCQVVESU9fRkZNUEVHKSB8fCBVU0UoV0VCQVVESU9fT1BFTk1BWF9E
TF9GRlQpCiAgICAgICAgIGNvbnN0IHNpemVfdCBhbGlnbm1lbnQgPSAzMjsKICNlbHNlCiAgICAg
ICAgIGNvbnN0IHNpemVfdCBhbGlnbm1lbnQgPSAxNjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9GRlRGcmFtZS5oCmluZGV4IDU1YWQwOWJlNjNmNTVlODhmMmE0MzhkNWU4M2UxYWQ0MWMx
YmZhYTcuLjUyMmNiNWZiYzgwMmEzZjkxYTIxMGQxMzQ5OGQ4M2EyNTk2NGIzNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaApAQCAtNTQsOSArNTQsMTIgQEAgR19C
RUdJTl9ERUNMUwogR19FTkRfREVDTFMKICNlbmRpZiAvLyBVU0UoV0VCQVVESU9fR1NUUkVBTUVS
KQogCi0jaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykKKyNpZiBVU0UoV0VCQVVESU9fT1BFTk1BWF9E
TF9GRlQpCisjaW5jbHVkZSAiZGwvc3AvYXBpL2FybVNQLmgiCisjaW5jbHVkZSAiZGwvc3AvYXBp
L29teFNQLmgiCisjZWxpZiBVU0UoV0VCQVVESU9fRkZNUEVHKQogc3RydWN0IFJERlRDb250ZXh0
OwotI2VuZGlmIC8vIFVTRShXRUJBVURJT19GRk1QRUcpCisjZW5kaWYKIAogI2VuZGlmIC8vICFV
U0VfQUNDRUxFUkFURV9GRlQKIApAQCAtMTc3LDYgKzE4MCwxNyBAQCBwcml2YXRlOgogICAgIEF1
ZGlvRmxvYXRBcnJheSBtX2ltYWdEYXRhOwogI2VuZGlmIC8vIFVTRShXRUJBVURJT19JUFApCiAK
KyNpZiBVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCisgICAgc3RhdGljIE9NWEZGVFNwZWNf
Ul9GMzIqIGNvbnRleHRGb3JTaXplKHVuc2lnbmVkIGxvZzJGRlRTaXplKTsKKworICAgIE9NWEZG
VFNwZWNfUl9GMzIqIG1fZm9yd2FyZENvbnRleHQ7CisgICAgT01YRkZUU3BlY19SX0YzMiogbV9p
bnZlcnNlQ29udGV4dDsKKworICAgIEF1ZGlvRmxvYXRBcnJheSBtX2NvbXBsZXhEYXRhOworICAg
IEF1ZGlvRmxvYXRBcnJheSBtX3JlYWxEYXRhOworICAgIEF1ZGlvRmxvYXRBcnJheSBtX2ltYWdE
YXRhOworI2VuZGlmCisgICAgCiAjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAKaW5kZXgg
NmEyN2JlNWY2NzllZjA0MzQwNjhlYzkyNTVkMzI5YWZkODQ3MzhjNi4uM2FkMzI4NGMzYWYyZjQ0
NzBkNjIxYTlkYzIyNTE3Zjg5M2UzZjM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vRkZURnJhbWVTdHViLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9GRlRGcmFtZVN0dWIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpZiBFTkFCTEUo
V0VCX0FVRElPKQogCi0jaWYgIU9TKERBUldJTikgJiYgIVVTRShXRUJBVURJT19NS0wpICYmICFV
U0UoV0VCQVVESU9fRkZNUEVHKSAmJiAhVVNFKFdFQkFVRElPX0dTVFJFQU1FUikgJiYgIVVTRShX
RUJBVURJT19JUFApCisjaWYgIU9TKERBUldJTikgJiYgIVVTRShXRUJBVURJT19NS0wpICYmICFV
U0UoV0VCQVVESU9fRkZNUEVHKSAmJiAhVVNFKFdFQkFVRElPX0dTVFJFQU1FUikgJiYgIVVTRShX
RUJBVURJT19JUFApICYmICFVU0UoV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQpCiAKICNpbmNsdWRl
ICJGRlRGcmFtZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jaHJvbWl1bS9GRlRGcmFtZU9wZW5NQVhETEFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJhbWVPcGVuTUFYRExBbmRyb2lkLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hOGZkM2EyMTUzNDVlYzExMGEwNDUwODJkYzZjYTE2NzBhNWNmYWJhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY2hyb21pdW0vRkZURnJh
bWVPcGVuTUFYRExBbmRyb2lkLmNwcApAQCAtMCwwICsxLDIwMiBAQAorLyogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworI2lmIE9TKEFORFJPSUQpICYmIFVT
RShXRUJBVURJT19PUEVOTUFYX0RMX0ZGVCkKKworI2luY2x1ZGUgIkZGVEZyYW1lLmgiCisKKyNp
bmNsdWRlICJBdWRpb0FycmF5LmgiCisjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgorI2luY2x1ZGUg
ImRsL3NwL2FwaS9hcm1TUC5oIgorI2luY2x1ZGUgImRsL3NwL2FwaS9vbXhTUC5oIgorCisjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBp
bnQga01heEZGVFBvdzJTaXplID0gMTU7CisKKy8vIE5vcm1hbCBjb25zdHJ1Y3RvcjogYWxsb2Nh
dGVzIGZvciBhIGdpdmVuIGZmdFNpemUuCitGRlRGcmFtZTo6RkZURnJhbWUodW5zaWduZWQgZmZ0
U2l6ZSkKKyAgICA6IG1fRkZUU2l6ZShmZnRTaXplKQorICAgICwgbV9sb2cyRkZUU2l6ZShzdGF0
aWNfY2FzdDx1bnNpZ25lZD4obG9nMihmZnRTaXplKSkpCisgICAgLCBtX2ZvcndhcmRDb250ZXh0
KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0KDApCisgICAgLCBtX2NvbXBsZXhEYXRhKGZmdFNp
emUpCisgICAgLCBtX3JlYWxEYXRhKGZmdFNpemUgLyAyKQorICAgICwgbV9pbWFnRGF0YShmZnRT
aXplIC8gMikKK3sKKyAgICAvLyBXZSBvbmx5IGFsbG93IHBvd2VyIG9mIHR3by4KKyAgICBBU1NF
UlQoMVVMIDw8IG1fbG9nMkZGVFNpemUgPT0gbV9GRlRTaXplKTsKKworICAgIG1fZm9yd2FyZENv
bnRleHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKyAgICBtX2ludmVyc2VDb250
ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7Cit9CisKKy8vIENyZWF0ZXMgYSBi
bGFuay9lbXB0eSBmcmFtZSAoaW50ZXJwb2xhdGUoKSBtdXN0IGxhdGVyIGJlIGNhbGxlZCkuCitG
RlRGcmFtZTo6RkZURnJhbWUoKQorICAgIDogbV9GRlRTaXplKDApCisgICAgLCBtX2xvZzJGRlRT
aXplKDApCisgICAgLCBtX2ZvcndhcmRDb250ZXh0KDApCisgICAgLCBtX2ludmVyc2VDb250ZXh0
KDApCit7Cit9CisKKy8vIENvcHkgY29uc3RydWN0b3IuCitGRlRGcmFtZTo6RkZURnJhbWUoY29u
c3QgRkZURnJhbWUmIGZyYW1lKQorICAgIDogbV9GRlRTaXplKGZyYW1lLm1fRkZUU2l6ZSkKKyAg
ICAsIG1fbG9nMkZGVFNpemUoZnJhbWUubV9sb2cyRkZUU2l6ZSkKKyAgICAsIG1fZm9yd2FyZENv
bnRleHQoMCkKKyAgICAsIG1faW52ZXJzZUNvbnRleHQoMCkKKyAgICAsIG1fY29tcGxleERhdGEo
ZnJhbWUubV9GRlRTaXplKQorICAgICwgbV9yZWFsRGF0YShmcmFtZS5tX0ZGVFNpemUgLyAyKQor
ICAgICwgbV9pbWFnRGF0YShmcmFtZS5tX0ZGVFNpemUgLyAyKQoreworICAgIG1fZm9yd2FyZENv
bnRleHQgPSBjb250ZXh0Rm9yU2l6ZShtX2xvZzJGRlRTaXplKTsKKyAgICBtX2ludmVyc2VDb250
ZXh0ID0gY29udGV4dEZvclNpemUobV9sb2cyRkZUU2l6ZSk7CisKKyAgICAvLyBDb3B5L3NldHVw
IGZyYW1lIGRhdGEuCisgICAgdW5zaWduZWQgbmJ5dGVzID0gc2l6ZW9mKGZsb2F0KSAqIChtX0ZG
VFNpemUgLyAyKTsKKyAgICBtZW1jcHkocmVhbERhdGEoKSwgZnJhbWUucmVhbERhdGEoKSwgbmJ5
dGVzKTsKKyAgICBtZW1jcHkoaW1hZ0RhdGEoKSwgZnJhbWUuaW1hZ0RhdGEoKSwgbmJ5dGVzKTsK
K30KKwordm9pZCBGRlRGcmFtZTo6aW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgRkZURnJhbWU6
OmNsZWFudXAoKQoreworfQorCitGRlRGcmFtZTo6fkZGVEZyYW1lKCkKK3sKKyAgICBpZiAobV9m
b3J3YXJkQ29udGV4dCkKKyAgICAgICAgZnJlZShtX2ZvcndhcmRDb250ZXh0KTsKKyAgICBpZiAo
bV9pbnZlcnNlQ29udGV4dCkKKyAgICAgICAgZnJlZShtX2ludmVyc2VDb250ZXh0KTsKK30KKwor
dm9pZCBGRlRGcmFtZTo6bXVsdGlwbHkoY29uc3QgRkZURnJhbWUmIGZyYW1lKQoreworICAgIEZG
VEZyYW1lJiBmcmFtZTEgPSAqdGhpczsKKyAgICBGRlRGcmFtZSYgZnJhbWUyID0gY29uc3RfY2Fz
dDxGRlRGcmFtZSY+KGZyYW1lKTsKKworICAgIGZsb2F0KiByZWFsUDEgPSBmcmFtZTEucmVhbERh
dGEoKTsKKyAgICBmbG9hdCogaW1hZ1AxID0gZnJhbWUxLmltYWdEYXRhKCk7CisgICAgY29uc3Qg
ZmxvYXQqIHJlYWxQMiA9IGZyYW1lMi5yZWFsRGF0YSgpOworICAgIGNvbnN0IGZsb2F0KiBpbWFn
UDIgPSBmcmFtZTIuaW1hZ0RhdGEoKTsKKworICAgIHVuc2lnbmVkIGhhbGZTaXplID0gZmZ0U2l6
ZSgpIC8gMjsKKyAgICBmbG9hdCByZWFsMCA9IHJlYWxQMVswXTsKKyAgICBmbG9hdCBpbWFnMCA9
IGltYWdQMVswXTsKKworICAgIFZlY3Rvck1hdGg6Onp2bXVsKHJlYWxQMSwgaW1hZ1AxLCByZWFs
UDIsIGltYWdQMiwgcmVhbFAxLCBpbWFnUDEsIGhhbGZTaXplKTsgCisKKyAgICAvLyBNdWx0aXBs
eSB0aGUgcGFja2VkIERDL255cXVpc3QgY29tcG9uZW50CisgICAgcmVhbFAxWzBdID0gcmVhbDAg
KiByZWFsUDJbMF07CisgICAgaW1hZ1AxWzBdID0gaW1hZzAgKiBpbWFnUDJbMF07Cit9CisKK3Zv
aWQgRkZURnJhbWU6OmRvRkZUKGNvbnN0IGZsb2F0KiBkYXRhKQoreworICAgIEFTU0VSVChtX2Zv
cndhcmRDb250ZXh0KTsKKworICAgIGlmIChtX2ZvcndhcmRDb250ZXh0KSB7CisgICAgICAgIEF1
ZGlvRmxvYXRBcnJheSBjb21wbGV4RkZUKG1fRkZUU2l6ZSArIDIpOworCisgICAgICAgIG9teFNQ
X0ZGVEZ3ZF9SVG9DQ1NfRjMyX1NmcyhkYXRhLCBjb21wbGV4RkZULmRhdGEoKSwgbV9mb3J3YXJk
Q29udGV4dCk7CisKKyAgICAgICAgdW5zaWduZWQgbGVuID0gbV9GRlRTaXplIC8gMjsKKworICAg
ICAgICAvLyBTcGxpdCBGRlQgZGF0YSBpbnRvIHJlYWwgYW5kIGltYWdpbmFyeSBhcnJheXMuCisg
ICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBsZW47ICsraykgeworICAgICAgICAgICAg
aW50IGluZGV4ID0gMiAqIGs7CisgICAgICAgICAgICBtX3JlYWxEYXRhW2tdID0gY29tcGxleEZG
VFtpbmRleF07CisgICAgICAgICAgICBtX2ltYWdEYXRhW2tdID0gY29tcGxleEZGVFtpbmRleCAr
IDFdOworICAgICAgICB9CisgICAgICAgIG1fcmVhbERhdGFbMF0gPSBjb21wbGV4RkZUWzBdOwor
ICAgICAgICBtX2ltYWdEYXRhWzBdID0gY29tcGxleEZGVFttX0ZGVFNpemVdOworICAgIH0KK30K
Kwordm9pZCBGRlRGcmFtZTo6ZG9JbnZlcnNlRkZUKGZsb2F0KiBkYXRhKQoreworICAgIEFTU0VS
VChtX2ludmVyc2VDb250ZXh0KTsKKworICAgIGlmIChtX2ludmVyc2VDb250ZXh0KSB7CisgICAg
ICAgIEF1ZGlvRmxvYXRBcnJheSBmZnREYXRhKG1fRkZUU2l6ZSArIDIpOworCisgICAgICAgIHVu
c2lnbmVkIGxlbiA9IG1fRkZUU2l6ZSAvIDI7CisKKyAgICAgICAgLy8gUGFjayB0aGUgcmVhbCBh
bmQgaW1hZ2luYXJ5IGRhdGEgaW50byB0aGUgY29tcGxleCBhcnJheSBmb3JtYXQKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBrID0gMTsgayA8IGxlbjsgKytrKSB7CisgICAgICAgICAgICBpbnQgaW5k
ZXggPSAyICogazsKKyAgICAgICAgICAgIGZmdERhdGFbaW5kZXhdID0gbV9yZWFsRGF0YVtrXTsK
KyAgICAgICAgICAgIGZmdERhdGFbaW5kZXggKyAxXSA9IG1faW1hZ0RhdGFba107CisgICAgICAg
IH0KKyAgICAgICAgZmZ0RGF0YVswXSA9IG1fcmVhbERhdGFbMF07CisgICAgICAgIGZmdERhdGFb
MV0gPSAwOworICAgICAgICBmZnREYXRhW21fRkZUU2l6ZV0gPSBtX2ltYWdEYXRhWzBdOworICAg
ICAgICBmZnREYXRhW21fRkZUU2l6ZSArIDFdID0gMDsKKyAgICAKKyAgICAgICAgb214U1BfRkZU
SW52X0NDU1RvUl9GMzJfU2ZzKGZmdERhdGEuZGF0YSgpLCBkYXRhLCBtX2ludmVyc2VDb250ZXh0
KTsKKyAgICB9Cit9CisKK2Zsb2F0KiBGRlRGcmFtZTo6cmVhbERhdGEoKSBjb25zdAoreworICAg
IHJldHVybiBjb25zdF9jYXN0PGZsb2F0Kj4obV9yZWFsRGF0YS5kYXRhKCkpOworfQorCitmbG9h
dCogRkZURnJhbWU6OmltYWdEYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxm
bG9hdCo+KG1faW1hZ0RhdGEuZGF0YSgpKTsKK30KKworT01YRkZUU3BlY19SX0YzMiogRkZURnJh
bWU6OmNvbnRleHRGb3JTaXplKHVuc2lnbmVkIGxvZzJGRlRTaXplKQoreworICAgIEFTU0VSVChs
b2cyRkZUU2l6ZSk7CisgICAgQVNTRVJUKGxvZzJGRlRTaXplIDwga01heEZGVFBvdzJTaXplKTsK
KyAgICBpbnQgYnVmU2l6ZTsKKyAgICBPTVhSZXN1bHQgc3RhdHVzID0gb214U1BfRkZUR2V0QnVm
U2l6ZV9SX0YzMihsb2cyRkZUU2l6ZSwgJmJ1ZlNpemUpOworCisgICAgaWYgKHN0YXR1cyA9PSBP
TVhfU3RzX05vRXJyKSB7CisgICAgICAgIE9NWEZGVFNwZWNfUl9GMzIqIGNvbnRleHQgPSBzdGF0
aWNfY2FzdDxPTVhGRlRTcGVjX1JfRjMyKj4obWFsbG9jKGJ1ZlNpemUpKTsKKyAgICAgICAgb214
U1BfRkZUSW5pdF9SX0YzMihjb250ZXh0LCBsb2cyRkZUU2l6ZSk7CisgICAgICAgIHJldHVybiBj
b250ZXh0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyAjaWYgT1MoQU5EUk9JRCkgJiYgIVVTRShXRUJBVURJT19PUEVOTUFY
X0RMX0ZGVCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L2ZlYXR1cmVzLmd5cGkKaW5kZXggMmRjMGIyM2ViZWY4NTUxYWJkODMxODZjYzE3NmQ4MTIxNGRm
ZjBkYy4uYzU3MjI3YTI5ZTBmYzQwNjBiODhhMjg4ZTA2NzdkN2U4YzFhMDY5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTg1LDcgKzE4NSw2IEBACiAgICAgICAgICAg
IyBGSVhNRTogRGlzYWJsZSBvbmNlIHRoZSBsaW5raW5nIGVycm9yIGhhcyBiZWVuIHJlc29sdmVk
LgogICAgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4
NjM2CiAgICAgICAgICAgJ0VOQUJMRV9TSEFSRURfV09SS0VSUz0xJywKLSAgICAgICAgICAnRU5B
QkxFX1dFQl9BVURJTz0wJywKICAgICAgICAgICAnV1RGX1VTRV9OQVRJVkVfRlVMTFNDUkVFTl9W
SURFTz0xJywKICAgICAgICAgXSwKICAgICAgICAgJ2VuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcn
OiAxLApAQCAtMjMyLDYgKzIzMSwxNCBAQAogICAgICAgICAgICdXVEZfVVNFX1dFQkFVRElPX0ZG
TVBFRz0xJywKICAgICAgICAgXSwKICAgICAgIH1dLAorICAgICAgWydPUz09ImFuZHJvaWQiIGFu
ZCB1c2Vfb3Blbm1heF9kbF9mZnQhPTAnLCB7CisgICAgICAgICdmZWF0dXJlX2RlZmluZXMnOiBb
CisgICAgICAgICAgJ1dURl9VU0VfV0VCQVVESU9fT1BFTk1BWF9ETF9GRlQ9MScsCisgICAgICAg
ICAgIyBFbmFibGluZyB0aGUgRkZUIGlzIGVub3VnaCB0byBlbmFibGUgV2ViQXVkaW8gc3VwcG9y
dCB0bworICAgICAgICAgICMgYWxsb3cgbW9zdCBXZWJBdWRpbyBmZWF0dXJlcyB0byB3b3JrIG9u
IEFuZHJvaWQuCisgICAgICAgICAgJ0VOQUJMRV9XRUJfQVVESU89MScsCisgICAgICAgIF0sCisg
ICAgICB9XSwKICAgICAgIFsnT1M9PSJ3aW4iIG9yIE9TPT0iYW5kcm9pZCIgb3IgdXNlX3gxMT09
MScsIHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKICAgICAgICAgICAnRU5BQkxFX09Q
RU5UWVBFX1ZFUlRJQ0FMPTEnLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>