<?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>77018</bug_id>
          
          <creation_ts>2012-01-25 09:17:30 -0800</creation_ts>
          <short_desc>implement Number.toLocaleString() using ICU</short_desc>
          <delta_ts>2015-12-13 16:35:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>147610</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>111729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eli Fidler">efidler</reporter>
          <assigned_to name="Eli Fidler">efidler</assigned_to>
          <cc>andy</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>levin+threading</cc>
    
    <cc>lquinn</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pnormand</cc>
    
    <cc>pp</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wingo</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>542340</commentid>
    <comment_count>0</comment_count>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-01-25 09:17:30 -0800</bug_when>
    <thetext>ICU provides methods to do locale-specific number to string conversion, which can make Number.toLocaleString actually useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542403</commentid>
    <comment_count>1</comment_count>
      <attachid>123967</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-01-25 10:08:43 -0800</bug_when>
    <thetext>Created attachment 123967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542419</commentid>
    <comment_count>2</comment_count>
      <attachid>123967</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-25 10:22:24 -0800</bug_when>
    <thetext>Comment on attachment 123967
Patch

Attachment 123967 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11294611</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542586</commentid>
    <comment_count>3</comment_count>
      <attachid>124001</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-01-25 13:42:03 -0800</bug_when>
    <thetext>Created attachment 124001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543239</commentid>
    <comment_count>4</comment_count>
      <attachid>124001</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-26 10:24:58 -0800</bug_when>
    <thetext>Comment on attachment 124001
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:4
&gt; +        Implement Number.toLocaleString() using ICU
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=77018

Changes like this need test coverage.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:70
&gt; +    UErrorCode status = U_ZERO_ERROR;
&gt; +    UNumberFormat* nf = unum_open(UNUM_DEFAULT, 0, 0, 0, 0, &amp;status);
&gt; +    if (!nf || U_FAILURE(status))
&gt; +        return jsEmptyString(exec);

To make this useful for platforms other than RIM, this should pass in a default locale. While both POSIX and ICU have a default locale concept, it’s a global concept so on most platforms it’s not something that WebKit can set without affecting other code running in the same process.

Because of that, we should continue to follow the design we have in WebCore where we have a platform-specific function to return the appropriate locale for ICU usage. I didn’t insist on this for the last patch because it was a function with locale-specific implementations for many platforms already, and the old code that the ICU code was replacing was using a POSIX call. But here we are doing a new implementation used by many platforms and so I think proper locale handling for WebKit is a must.

Creating a new UNumberFormat object each time formatLocaleNumber is called is likely to be extremely slow. We should do an implementation where it is cached.

&gt; Source/JavaScriptCore/wtf/DecimalNumber.cpp:164
&gt; +unsigned DecimalNumber::toStringDecimal(char* buffer, unsigned bufferLength) const
&gt; +{
&gt; +    ASSERT_UNUSED(bufferLength, bufferLength &gt;= bufferLengthForStringDecimal());
&gt; +
&gt; +    // Should always be at least one digit to add to the string!
&gt; +    ASSERT(m_precision);
&gt; +    char* next = buffer;

Is there a way to deal with this without copying and pasting an entire function? In other cases we have used templates for this sort of thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548134</commentid>
    <comment_count>5</comment_count>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-02 13:42:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 124001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124001&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:4
&gt; &gt; +        Implement Number.toLocaleString() using ICU
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=77018
&gt; 
&gt; Changes like this need test coverage.

I&apos;ve added some minimal test coverage, but we don&apos;t really have a way to do locale-specific testing.

&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:70
&gt; &gt; +    UErrorCode status = U_ZERO_ERROR;
&gt; &gt; +    UNumberFormat* nf = unum_open(UNUM_DEFAULT, 0, 0, 0, 0, &amp;status);
&gt; &gt; +    if (!nf || U_FAILURE(status))
&gt; &gt; +        return jsEmptyString(exec);
&gt; 
&gt; To make this useful for platforms other than RIM, this should pass in a default locale. While both POSIX and ICU have a default locale concept, it’s a global concept so on most platforms it’s not something that WebKit can set without affecting other code running in the same process.
&gt; 
&gt; Because of that, we should continue to follow the design we have in WebCore where we have a platform-specific function to return the appropriate locale for ICU usage. I didn’t insist on this for the last patch because it was a function with locale-specific implementations for many platforms already, and the old code that the ICU code was replacing was using a POSIX call. But here we are doing a new implementation used by many platforms and so I think proper locale handling for WebKit is a must.
&gt; 

Ok, I added currentNumericLocaleID(). I totally made up the OS(DARWIN) implementation, so hopefully it&apos;s ok. This code doesn&apos;t actually execute on Darwin, since the ICU version is too old to have unum_formatDecimal().

&gt; Creating a new UNumberFormat object each time formatLocaleNumber is called is likely to be extremely slow. We should do an implementation where it is cached.
&gt; 

Added a cache.

&gt; &gt; Source/JavaScriptCore/wtf/DecimalNumber.cpp:164
&gt; &gt; +unsigned DecimalNumber::toStringDecimal(char* buffer, unsigned bufferLength) const
&gt; &gt; +{
&gt; &gt; +    ASSERT_UNUSED(bufferLength, bufferLength &gt;= bufferLengthForStringDecimal());
&gt; &gt; +
&gt; &gt; +    // Should always be at least one digit to add to the string!
&gt; &gt; +    ASSERT(m_precision);
&gt; &gt; +    char* next = buffer;
&gt; 
&gt; Is there a way to deal with this without copying and pasting an entire function? In other cases we have used templates for this sort of thing.

Switched to a template function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548136</commentid>
    <comment_count>6</comment_count>
      <attachid>125181</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-02 13:43:52 -0800</bug_when>
    <thetext>Created attachment 125181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548281</commentid>
    <comment_count>7</comment_count>
      <attachid>125181</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-02 17:37:25 -0800</bug_when>
    <thetext>Comment on attachment 125181
Patch

Attachment 125181 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11421006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548702</commentid>
    <comment_count>8</comment_count>
      <attachid>125324</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-03 07:38:39 -0800</bug_when>
    <thetext>Created attachment 125324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548832</commentid>
    <comment_count>9</comment_count>
      <attachid>125324</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-03 10:36:05 -0800</bug_when>
    <thetext>Comment on attachment 125324
Patch

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

This patch is not applying in EWS, probably because we have gotten rid of JavaScriptCore.exp. I suggest you rebase the patch to adapt to that change.

&gt; Source/JavaScriptCore/GNUmakefile.list.am:772
&gt; +	Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp \

The file names should have ICU in all caps. I’m not sure why UnicodeIcu.h is named wrong, but I highly suggest not repeating that mistake.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:44
&gt; +#if USE(ICU_UNICODE) &amp;&amp; !UCONFIG_NO_FORMATTING &amp;&amp; defined(ICU_VERSION_AT_LEAST) &amp;&amp; ICU_VERSION_AT_LEAST(4, 4, 0)

Rather than repeating this expression over and over again, I suggest we put a named macro somewhere, perhaps in UnicodeIcu.h. USE_ICU_FOR_NUMBER_FORMATTING is a possible name.

&gt; Source/JavaScriptCore/wtf/DecimalNumber.cpp:160
&gt; +template unsigned DecimalNumber::toStringDecimal(char* buffer, unsigned bufferLength) const;
&gt; +template unsigned DecimalNumber::toStringDecimal(UChar* buffer, unsigned bufferLength) const;

I’m not sure all the compilers we use support this; I haven’t seen any other explicit template instantiation. We need the EWS to work to answer that question.

&gt; Source/JavaScriptCore/wtf/DecimalNumber.h:88
&gt; +    template &lt;typename T&gt;
&gt; +    WTF_EXPORT_PRIVATE unsigned toStringDecimal(T* buffer, unsigned bufferLength) const;

Not sure the export macro works properly in a case like that. We need the EWS to tell us.

&gt; Source/JavaScriptCore/wtf/unicode/UnicodeMacrosFromICU.h:103
&gt; +#define ICU_VERSION (U_ICU_VERSION_MAJOR_NUM * 10000 + U_ICU_VERSION_MINOR_NUM * 100 + U_ICU_VERSION_PATCHLEVEL_NUM)
&gt; +#define ICU_VERSION_AT_LEAST(major, minor, patch) (ICU_VERSION &gt;= (major * 10000 + minor * 100 + patch))

This doesn’t make sense to me. This header is used on many systems that do not have ICU at all. Any use of this macro probably won’t compile. I think we need a different approach.

&gt; Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp:36
&gt; +    return CFStringGetCStringPtr(localeID, CFStringGetSystemEncoding());

CFStringGetCStringPtr is not guaranteed to return a non-NULL value for a string. It’s also not correct to use the system encoding in the C string. Locale identifiers are probably in ASCII or UTF-8. It’s just random to let the system encoding have any impact on this. There is working code to do this kind of thing in the currentSearchLocaleID function in TextBreakIteratorInternalICUMac.mm and you should make sure this code is more like that. That code gets the conversion to a C string and caching and buffer management right, and this code gets it wrong.

&gt; Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp:38
&gt; +    return uloc_getDefault();

Seems OK to return a 0 here as long as we document it, since 0 gives default locale behavior in the ICU API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548833</commentid>
    <comment_count>10</comment_count>
      <attachid>125324</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-03 10:36:11 -0800</bug_when>
    <thetext>Comment on attachment 125324
Patch

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

This patch is not applying in EWS, probably because we have gotten rid of JavaScriptCore.exp. I suggest you rebase the patch to adapt to that change.

&gt; Source/JavaScriptCore/GNUmakefile.list.am:772
&gt; +	Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp \

The file names should have ICU in all caps. I’m not sure why UnicodeIcu.h is named wrong, but I highly suggest not repeating that mistake.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:44
&gt; +#if USE(ICU_UNICODE) &amp;&amp; !UCONFIG_NO_FORMATTING &amp;&amp; defined(ICU_VERSION_AT_LEAST) &amp;&amp; ICU_VERSION_AT_LEAST(4, 4, 0)

Rather than repeating this expression over and over again, I suggest we put a named macro somewhere, perhaps in UnicodeIcu.h. USE_ICU_FOR_NUMBER_FORMATTING is a possible name.

&gt; Source/JavaScriptCore/wtf/DecimalNumber.cpp:160
&gt; +template unsigned DecimalNumber::toStringDecimal(char* buffer, unsigned bufferLength) const;
&gt; +template unsigned DecimalNumber::toStringDecimal(UChar* buffer, unsigned bufferLength) const;

I’m not sure all the compilers we use support this; I haven’t seen any other explicit template instantiation. We need the EWS to work to answer that question.

&gt; Source/JavaScriptCore/wtf/DecimalNumber.h:88
&gt; +    template &lt;typename T&gt;
&gt; +    WTF_EXPORT_PRIVATE unsigned toStringDecimal(T* buffer, unsigned bufferLength) const;

Not sure the export macro works properly in a case like that. We need the EWS to tell us.

&gt; Source/JavaScriptCore/wtf/unicode/UnicodeMacrosFromICU.h:103
&gt; +#define ICU_VERSION (U_ICU_VERSION_MAJOR_NUM * 10000 + U_ICU_VERSION_MINOR_NUM * 100 + U_ICU_VERSION_PATCHLEVEL_NUM)
&gt; +#define ICU_VERSION_AT_LEAST(major, minor, patch) (ICU_VERSION &gt;= (major * 10000 + minor * 100 + patch))

This doesn’t make sense to me. This header is used on many systems that do not have ICU at all. Any use of this macro probably won’t compile. I think we need a different approach.

&gt; Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp:36
&gt; +    return CFStringGetCStringPtr(localeID, CFStringGetSystemEncoding());

CFStringGetCStringPtr is not guaranteed to return a non-NULL value for a string. It’s also not correct to use the system encoding in the C string. Locale identifiers are probably in ASCII or UTF-8. It’s just random to let the system encoding have any impact on this. There is working code to do this kind of thing in the currentSearchLocaleID function in TextBreakIteratorInternalICUMac.mm and you should make sure this code is more like that. That code gets the conversion to a C string and caching and buffer management right, and this code gets it wrong.

&gt; Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp:38
&gt; +    return uloc_getDefault();

Seems OK to return a 0 here as long as we document it, since 0 gives default locale behavior in the ICU API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548837</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-03 10:38:04 -0800</bug_when>
    <thetext>Sorry about the double comment. Reason for that is described in bug 77750.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555835</commentid>
    <comment_count>12</comment_count>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-13 18:20:34 -0800</bug_when>
    <thetext>Sorry it took so long to update the patch.

(In reply to comment #10)
&gt; (From update of attachment 125324 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125324&amp;action=review
&gt; 
&gt; This patch is not applying in EWS, probably because we have gotten rid of JavaScriptCore.exp. I suggest you rebase the patch to adapt to that change.
&gt; 

rebased

&gt; &gt; Source/JavaScriptCore/GNUmakefile.list.am:772
&gt; &gt; +	Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp \
&gt; 
&gt; The file names should have ICU in all caps. I’m not sure why UnicodeIcu.h is named wrong, but I highly suggest not repeating that mistake.
&gt; 

done

&gt; &gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:44
&gt; &gt; +#if USE(ICU_UNICODE) &amp;&amp; !UCONFIG_NO_FORMATTING &amp;&amp; defined(ICU_VERSION_AT_LEAST) &amp;&amp; ICU_VERSION_AT_LEAST(4, 4, 0)
&gt; 
&gt; Rather than repeating this expression over and over again, I suggest we put a named macro somewhere, perhaps in UnicodeIcu.h. USE_ICU_FOR_NUMBER_FORMATTING is a possible name.
&gt;

I switched to a single macro in NumberPrototype.cpp
 
&gt; &gt; Source/JavaScriptCore/wtf/DecimalNumber.cpp:160
&gt; &gt; +template unsigned DecimalNumber::toStringDecimal(char* buffer, unsigned bufferLength) const;
&gt; &gt; +template unsigned DecimalNumber::toStringDecimal(UChar* buffer, unsigned bufferLength) const;
&gt; 
&gt; I’m not sure all the compilers we use support this; I haven’t seen any other explicit template instantiation. We need the EWS to work to answer that question.
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/DecimalNumber.h:88
&gt; &gt; +    template &lt;typename T&gt;
&gt; &gt; +    WTF_EXPORT_PRIVATE unsigned toStringDecimal(T* buffer, unsigned bufferLength) const;
&gt; 
&gt; Not sure the export macro works properly in a case like that. We need the EWS to tell us.
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/unicode/UnicodeMacrosFromICU.h:103
&gt; &gt; +#define ICU_VERSION (U_ICU_VERSION_MAJOR_NUM * 10000 + U_ICU_VERSION_MINOR_NUM * 100 + U_ICU_VERSION_PATCHLEVEL_NUM)
&gt; &gt; +#define ICU_VERSION_AT_LEAST(major, minor, patch) (ICU_VERSION &gt;= (major * 10000 + minor * 100 + patch))
&gt; 
&gt; This doesn’t make sense to me. This header is used on many systems that do not have ICU at all. Any use of this macro probably won’t compile. I think we need a different approach.

dropped the macros from that file

&gt; &gt; Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp:36
&gt; &gt; +    return CFStringGetCStringPtr(localeID, CFStringGetSystemEncoding());
&gt; 
&gt; CFStringGetCStringPtr is not guaranteed to return a non-NULL value for a string. It’s also not correct to use the system encoding in the C string. Locale identifiers are probably in ASCII or UTF-8. It’s just random to let the system encoding have any impact on this. There is working code to do this kind of thing in the currentSearchLocaleID function in TextBreakIteratorInternalICUMac.mm and you should make sure this code is more like that. That code gets the conversion to a C string and caching and buffer management right, and this code gets it wrong.
&gt; 

This function isn&apos;t called on OSX/IOS since the ICU version is currently too old, so I replaced it with a #error. I don&apos;t really have enough experience with CF to be confident getting this correct.

&gt; &gt; Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.cpp:38
&gt; &gt; +    return uloc_getDefault();
&gt; 
&gt; Seems OK to return a 0 here as long as we document it, since 0 gives default locale behavior in the ICU API.

I&apos;m happier returning the actual locale since this function could be useful for something other than passing to unum_open()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555836</commentid>
    <comment_count>13</comment_count>
      <attachid>126881</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-13 18:20:58 -0800</bug_when>
    <thetext>Created attachment 126881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556337</commentid>
    <comment_count>14</comment_count>
      <attachid>126987</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-14 09:18:23 -0800</bug_when>
    <thetext>Created attachment 126987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556339</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 09:20:58 -0800</bug_when>
    <thetext>Attachment 126987 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556348</commentid>
    <comment_count>16</comment_count>
      <attachid>126987</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-14 09:36:36 -0800</bug_when>
    <thetext>Comment on attachment 126987
Patch

Attachment 126987 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11523286</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556378</commentid>
    <comment_count>17</comment_count>
      <attachid>126987</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-14 10:14:48 -0800</bug_when>
    <thetext>Comment on attachment 126987
Patch

Attachment 126987 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11518338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557427</commentid>
    <comment_count>18</comment_count>
      <attachid>127206</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-02-15 11:39:57 -0800</bug_when>
    <thetext>Created attachment 127206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557917</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 22:48:50 -0800</bug_when>
    <thetext>Attachment 127206 did not pass style-queue:

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

Source/JavaScriptCore/wtf/unicode/icu/UnicodeICU.cpp:33:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571805</commentid>
    <comment_count>20</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2012-03-06 06:34:45 -0800</bug_when>
    <thetext>Regarding attachment 127206:
&gt; +        * JavaScriptCore.exp:

Probably need to trim this from the ChangeLog.

(In reply to comment #4)
&gt; (From update of attachment 124001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124001&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:4
&gt; &gt; +        Implement Number.toLocaleString() using ICU
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=77018
&gt; 
&gt; Changes like this need test coverage.

Is there any possible test to make?  The spec is very vague.

I would expect that formatting &quot;1&quot; could even produce numbers in other scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572733</commentid>
    <comment_count>21</comment_count>
      <attachid>127206</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-07 02:52:45 -0800</bug_when>
    <thetext>Comment on attachment 127206
Patch

Attachment 127206 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11834930</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576701</commentid>
    <comment_count>22</comment_count>
      <attachid>131447</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-03-12 16:34:01 -0700</bug_when>
    <thetext>Created attachment 131447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576742</commentid>
    <comment_count>23</comment_count>
      <attachid>131447</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-12 17:01:08 -0700</bug_when>
    <thetext>Comment on attachment 131447
Patch

Attachment 131447 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11945160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576910</commentid>
    <comment_count>24</comment_count>
      <attachid>131447</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-12 19:19:20 -0700</bug_when>
    <thetext>Comment on attachment 131447
Patch

Attachment 131447 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11948223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577073</commentid>
    <comment_count>25</comment_count>
      <attachid>131447</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-12 23:08:32 -0700</bug_when>
    <thetext>Comment on attachment 131447
Patch

Attachment 131447 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11947349</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579704</commentid>
    <comment_count>26</comment_count>
      <attachid>132114</attachid>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-03-15 13:52:16 -0700</bug_when>
    <thetext>Created attachment 132114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579719</commentid>
    <comment_count>27</comment_count>
      <attachid>132114</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-15 14:07:08 -0700</bug_when>
    <thetext>Comment on attachment 132114
Patch

Attachment 132114 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11957746</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579728</commentid>
    <comment_count>28</comment_count>
      <attachid>132114</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-15 14:13:42 -0700</bug_when>
    <thetext>Comment on attachment 132114
Patch

Attachment 132114 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11958738</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579761</commentid>
    <comment_count>29</comment_count>
      <attachid>132114</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-15 14:45:04 -0700</bug_when>
    <thetext>Comment on attachment 132114
Patch

Attachment 132114 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11957758</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596901</commentid>
    <comment_count>30</comment_count>
      <attachid>135902</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-05 14:12:49 -0700</bug_when>
    <thetext>Created attachment 135902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596903</commentid>
    <comment_count>31</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-05 14:15:13 -0700</bug_when>
    <thetext>Build against ToT and try to fix win build. Efl and Qt build will probably still fail, unless something changed on the build machines (different icu lib version for instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596929</commentid>
    <comment_count>32</comment_count>
      <attachid>135902</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-05 14:52:41 -0700</bug_when>
    <thetext>Comment on attachment 135902
Patch

Attachment 135902 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12336540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596953</commentid>
    <comment_count>33</comment_count>
      <attachid>135916</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-05 15:07:57 -0700</bug_when>
    <thetext>Created attachment 135916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596955</commentid>
    <comment_count>34</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-05 15:10:16 -0700</bug_when>
    <thetext>Gtk fix got lost in the new patch. Also speculative fix for efl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597026</commentid>
    <comment_count>35</comment_count>
      <attachid>135916</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-05 16:49:35 -0700</bug_when>
    <thetext>Comment on attachment 135916
Patch

Attachment 135916 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12339572</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597039</commentid>
    <comment_count>36</comment_count>
      <attachid>135916</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-05 16:59:53 -0700</bug_when>
    <thetext>Comment on attachment 135916
Patch

Attachment 135916 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12337525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599373</commentid>
    <comment_count>37</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-10 10:19:07 -0700</bug_when>
    <thetext>From irc, efl buildbot uses ubuntu 10.4, which uses icu 4.2, and unum_formatDecimal was added in icu 4.4. This explains the efl build problem with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599550</commentid>
    <comment_count>38</comment_count>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-04-10 13:01:44 -0700</bug_when>
    <thetext>The patch checks ICU_VERSION &gt;= 40400. If they have ICU 4.2, none of this code should be compiled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599556</commentid>
    <comment_count>39</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-10 13:07:18 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; The patch checks ICU_VERSION &gt;= 40400. If they have ICU 4.2, none of this code should be compiled.

So the question may be, is ICU_VERSION picked up correctly...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599572</commentid>
    <comment_count>40</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-10 13:30:29 -0700</bug_when>
    <thetext>The bot seems to be in a quite messy situation, with ICU 4.4 being installed into /usr/local. ICU 4.4 is being picked up by CMake, so I wonder why that error is happening.

I&apos;ll see what I can find out locally, will report back in a few hours.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599774</commentid>
    <comment_count>41</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-10 16:21:10 -0700</bug_when>
    <thetext>In ICU 4.4.2 (which was installed into /usr/local and being correctly picked up by CMake), unum_formatDecimal was marked as draft API and, even though configure showed draft APIs were being built, the symbol was not found in the generated .so files.

I&apos;ve decided to go nuclear and just updated ICU to v4.9.1.1, which is the latest one. Please resubmit the patch for us to see if it works now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599776</commentid>
    <comment_count>42</comment_count>
      <attachid>136568</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-10 16:23:27 -0700</bug_when>
    <thetext>Created attachment 136568
Retry to see if elf builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599895</commentid>
    <comment_count>43</comment_count>
      <attachid>136568</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-10 18:22:04 -0700</bug_when>
    <thetext>Comment on attachment 136568
Retry to see if elf builds

Attachment 136568 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12386094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600227</commentid>
    <comment_count>44</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-11 06:34:42 -0700</bug_when>
    <thetext>Hi Raphael,

(In reply to comment #41)
&gt; In ICU 4.4.2 (which was installed into /usr/local and being correctly picked up by CMake), unum_formatDecimal was marked as draft API and, even though configure showed draft APIs were being built, the symbol was not found in the generated .so files.
&gt; 
&gt; I&apos;ve decided to go nuclear and just updated ICU to v4.9.1.1, which is the latest one. Please resubmit the patch for us to see if it works now.

That seems to have fixed the Efl build with this patch, thanks for your hard work!
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600233</commentid>
    <comment_count>45</comment_count>
      <attachid>136665</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-11 06:59:26 -0700</bug_when>
    <thetext>Created attachment 136665
Checking Qt build again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600239</commentid>
    <comment_count>46</comment_count>
      <attachid>136665</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-11 07:16:50 -0700</bug_when>
    <thetext>Comment on attachment 136665
Checking Qt build again

Attachment 136665 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12386384</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600271</commentid>
    <comment_count>47</comment_count>
      <attachid>136665</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-11 08:07:31 -0700</bug_when>
    <thetext>Comment on attachment 136665
Checking Qt build again

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

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:122
&gt; +        length = unum_formatDecimal(nf, numberString, length, buffer, WTF::NumberToStringBufferLength, 0, &amp;status);

It seems unum_formatDecimal() is missing from our ICU. (4.4.1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600284</commentid>
    <comment_count>48</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-11 08:26:05 -0700</bug_when>
    <thetext>Hi Ossy,

(In reply to comment #47)
&gt; (From update of attachment 136665 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136665&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:122
&gt; &gt; +        length = unum_formatDecimal(nf, numberString, length, buffer, WTF::NumberToStringBufferLength, 0, &amp;status);
&gt; 
&gt; It seems unum_formatDecimal() is missing from our ICU. (4.4.1)

Thanks for digging into this!
Eli, maybe the ICU_VERSION check needs to verify against something higher than 4.4.0? Rafael reported problems with 4.4.2 too....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600311</commentid>
    <comment_count>49</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-11 09:13:45 -0700</bug_when>
    <thetext>Yeah, as I mentioned in comment #41, even though the API is marked as draft in the 4.4 series and ICU was built _with_ draft API functions, it didn&apos;t seem to be present in the generated .so files.

I guess checking for &gt;= 4.6 (when the call was marked as stable API) is safer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600423</commentid>
    <comment_count>50</comment_count>
      <attachid>136705</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-11 11:01:03 -0700</bug_when>
    <thetext>Created attachment 136705
Require libicuuc &gt;= 4.6

Trying with a new requirement of libicuuc &gt;= 4.6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600526</commentid>
    <comment_count>51</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-11 13:11:39 -0700</bug_when>
    <thetext>Thanks to the help of rakuco and Ossy, the patch now builds and links fine. Let the reviewing begin :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608089</commentid>
    <comment_count>52</comment_count>
      <attachid>136705</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 15:30:04 -0700</bug_when>
    <thetext>Comment on attachment 136705
Require libicuuc &gt;= 4.6

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

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:68
&gt; +static UNumberFormat* cachedNumberFormatter = 0;

This global is used only inside the formatLocaleNumber function, so I suggest moving it in there.

Or, better, we could put it in per-thread globals so we don’t have to do all the locking.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:75
&gt; +static JSCell* formatLocaleNumber(ExecState* exec, JSValue v)

Could we use a word, numberValue or value, instead of the letter “v” here please?

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:81
&gt; +    UNumberFormat* nf = 0;

Could we use a word, formatter, instead of the letters “nf” here please?

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:83
&gt; +        const char* cachedNumberFormatterLocale = unum_getLocaleByType(cachedNumberFormatter, ULOC_REQUESTED_LOCALE, &amp;status);

This looks inefficient. The value of caching a formatter is lost if we are doing all this work every time.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:90
&gt; +            // locale changed... we&apos;ll need a new formatter

WebKit comments are typically formatted as sentences.

    // Locale changed, so we&apos;ll need a new formatter.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:110
&gt; +        int32_t num = v.asInt32();

Our coding style typically prefers a word, number, over the abbreviation “num” for a local variable like this one.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:117
&gt; +        if (v.isDouble())
&gt; +            num = v.asDouble();
&gt; +        else
&gt; +            num = v.toNumber(exec);

Why the special case for v.isDouble? That’s already what toNumber would do, so why add extra code.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:119
&gt; +        DecimalNumber d(num);

Please use a word here rather than the letter “d” for the name of this local variable.

&gt; Source/WTF/wtf/unicode/icu/UnicodeICU.cpp:36
&gt; +#if OS(DARWIN) &amp;&amp; USE(CF) &amp;&amp; !PLATFORM(QT)
&gt; +    // Mac OS X doesn&apos;t set UNIX locale to match user-selected one, so ICU default doesn&apos;t work.
&gt; +    // FIXME: Need a way to get the numeric locale on Darwin
&gt; +    CRASH();
&gt; +#else

If the ifdef was around the function implementation then we’d get a link time failure instead of a runtime crash, which is much better. Please put the ifdef around the entire function, not just in the body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857143</commentid>
    <comment_count>53</comment_count>
      <attachid>193569</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-18 08:39:48 -0700</bug_when>
    <thetext>Created attachment 193569
Rebased and updated patch

I&apos;ve rebased the patch and updated to address review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857149</commentid>
    <comment_count>54</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-18 08:42:35 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; (From update of attachment 136705 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136705&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:68
&gt; &gt; +static UNumberFormat* cachedNumberFormatter = 0;
&gt; 
&gt; This global is used only inside the formatLocaleNumber function, so I suggest moving it in there.
&gt; 
&gt; Or, better, we could put it in per-thread globals so we don’t have to do all the locking.

I&apos;ve left the mutex for now, because I&apos;m not sure how to make the formatter global per-thread. I guess I could use ThreadSpecific, but the formatter is not a C++ class (I think). I could make a small C++ class wrapping the formatter to use it with ThreadSpecific, though.

&gt; &gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:83
&gt; &gt; +        const char* cachedNumberFormatterLocale = unum_getLocaleByType(cachedNumberFormatter, ULOC_REQUESTED_LOCALE, &amp;status);
&gt; 
&gt; This looks inefficient. The value of caching a formatter is lost if we are doing all this work every time.

I think it&apos;s very unlikely that the locale changes at run time, so I&apos;ve removed the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857201</commentid>
    <comment_count>55</comment_count>
      <attachid>193569</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-18 09:33:13 -0700</bug_when>
    <thetext>Comment on attachment 193569
Rebased and updated patch

Attachment 193569 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17141339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857225</commentid>
    <comment_count>56</comment_count>
      <attachid>193588</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-18 09:57:26 -0700</bug_when>
    <thetext>Created attachment 193588
Updated patch

Fixed a typo in BlackBerry WTF cmake file and added also the new file to WTF gyp file. It will still fail for mac because I don&apos;t have a mac to update the XCode files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857425</commentid>
    <comment_count>57</comment_count>
      <attachid>193588</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-18 12:36:28 -0700</bug_when>
    <thetext>Comment on attachment 193588
Updated patch

Attachment 193588 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17192532</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857453</commentid>
    <comment_count>58</comment_count>
      <attachid>193588</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-18 13:06:02 -0700</bug_when>
    <thetext>Comment on attachment 193588
Updated patch

Attachment 193588 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17137439</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874419</commentid>
    <comment_count>59</comment_count>
      <attachid>197728</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-12 01:01:19 -0700</bug_when>
    <thetext>Created attachment 197728
Updated patch to remove gyp changes

Still needs the xcode changes that I can&apos;t do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874422</commentid>
    <comment_count>60</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-12 01:08:14 -0700</bug_when>
    <thetext>Attachment 197728 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/js/number-toLocaleString-expected.txt&apos;, u&apos;LayoutTests/fast/js/number-toLocaleString.html&apos;, u&apos;LayoutTests/fast/js/script-tests/number-toLocaleString.js&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/PlatformEfl.cmake&apos;, u&apos;Source/JavaScriptCore/runtime/NumberPrototype.cpp&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/WTF.vcproj/WTF.vcproj&apos;, u&apos;Source/WTF/wtf/DecimalNumber.cpp&apos;, u&apos;Source/WTF/wtf/DecimalNumber.h&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/unicode/icu/UnicodeICU.cpp&apos;, u&apos;Source/WTF/wtf/unicode/icu/UnicodeIcu.h&apos;]&quot; exit_code: 1
Source/WTF/wtf/unicode/icu/UnicodeICU.cpp:20:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874425</commentid>
    <comment_count>61</comment_count>
      <attachid>197728</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-12 01:20:26 -0700</bug_when>
    <thetext>Comment on attachment 197728
Updated patch to remove gyp changes

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

&gt;&gt; Source/WTF/wtf/unicode/icu/UnicodeICU.cpp:20
&gt;&gt; +#include &quot;UnicodeIcu.h&quot;
&gt; 
&gt; Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]

I wonder why the style checker didn&apos;t complain locally. In any case, I think UnicodeIcu.h should be renamed to UnicodeICU.h but I don&apos;t think it&apos;s appropriate for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874428</commentid>
    <comment_count>62</comment_count>
      <attachid>197728</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-12 01:39:18 -0700</bug_when>
    <thetext>Comment on attachment 197728
Updated patch to remove gyp changes

Attachment 197728 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/103086</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874432</commentid>
    <comment_count>63</comment_count>
      <attachid>197728</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-12 01:48:33 -0700</bug_when>
    <thetext>Comment on attachment 197728
Updated patch to remove gyp changes

Attachment 197728 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/128030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886928</commentid>
    <comment_count>64</comment_count>
      <attachid>197728</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-09 10:00:25 -0700</bug_when>
    <thetext>Comment on attachment 197728
Updated patch to remove gyp changes

Patch does not build on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886931</commentid>
    <comment_count>65</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-09 10:04:39 -0700</bug_when>
    <thetext>(In reply to comment #64)
&gt; (From update of attachment 197728 [details])
&gt; Patch does not build on Mac.

Yes, I said I need help with that, I don&apos;t have a mac, so I uploaded the patch anyway so that it can be reviewed (not necessarily r+&apos;ed). Do you mean the only problem with the patch in this moment is that it needs to update the xcode files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895810</commentid>
    <comment_count>66</comment_count>
      <attachid>203420</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-31 01:33:44 -0700</bug_when>
    <thetext>Created attachment 203420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895822</commentid>
    <comment_count>67</comment_count>
      <attachid>203420</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-31 01:51:27 -0700</bug_when>
    <thetext>Comment on attachment 203420
Patch

Thank you Phil!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895823</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-31 01:53:05 -0700</bug_when>
    <thetext>Attachment 203420 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/js/number-toLocaleString-expected.txt&apos;, u&apos;LayoutTests/fast/js/number-toLocaleString.html&apos;, u&apos;LayoutTests/fast/js/script-tests/number-toLocaleString.js&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/runtime/NumberPrototype.cpp&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/WTF.vcproj/WTF.vcproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/DecimalNumber.cpp&apos;, u&apos;Source/WTF/wtf/DecimalNumber.h&apos;, u&apos;Source/WTF/wtf/unicode/icu/UnicodeICU.cpp&apos;, u&apos;Source/WTF/wtf/unicode/icu/UnicodeIcu.h&apos;]&quot; exit_code: 1
Source/WTF/wtf/unicode/icu/UnicodeICU.cpp:21:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895830</commentid>
    <comment_count>69</comment_count>
      <attachid>203420</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-05-31 02:12:15 -0700</bug_when>
    <thetext>Comment on attachment 203420
Patch

Attachment 203420 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/664236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895834</commentid>
    <comment_count>70</comment_count>
      <attachid>203420</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-05-31 02:33:51 -0700</bug_when>
    <thetext>Comment on attachment 203420
Patch

Attachment 203420 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/657225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006179</commentid>
    <comment_count>71</comment_count>
      <attachid>203420</attachid>
    <who name="Liam Quinn">lquinn</who>
    <bug_when>2014-05-02 15:18:10 -0700</bug_when>
    <thetext>Comment on attachment 203420
Patch

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

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:103
&gt; +        bufferLength = decimalNumber.toStringDecimal(numberString, WTF::NumberToStringBufferLength);

DecimalNumber doesn&apos;t actually check the buffer length in release builds, and WTF::NumberToStringBufferLength assumes exponential notation that toStringDecimal() doesn&apos;t do. This would crash for large numbers and NaN.

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:104
&gt; +        bufferLength = unum_formatDecimal(formatter, numberString, bufferLength, buffer, WTF::NumberToStringBufferLength, 0, &amp;status);

Is there a reason not to use unum_formatDouble instead of unum_formatDecimal? Then you wouldn&apos;t need the DecimalNumber.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045656</commentid>
    <comment_count>72</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-02 21:54:59 -0800</bug_when>
    <thetext>*** Bug 138244 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045658</commentid>
    <comment_count>73</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-02 22:01:29 -0800</bug_when>
    <thetext>This patch title says &quot;implement using ICU&quot;, but this is probably not how we want it implemented. On OS X in particular, the user can configure various aspects number formatting manually, so we can&apos;t just get the data from locale name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148857</commentid>
    <comment_count>74</comment_count>
    <who name="Andy VanWagoner">andy</who>
    <bug_when>2015-12-13 15:43:29 -0800</bug_when>
    <thetext>Is this now a duplicate of 147610?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148862</commentid>
    <comment_count>75</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-13 16:35:48 -0800</bug_when>
    <thetext>Yes, a duplicate. And Alexey’s comment still applies.

*** This bug has been marked as a duplicate of bug 147610 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123967</attachid>
            <date>2012-01-25 10:08:43 -0800</date>
            <delta_ts>2012-01-25 13:41:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120125130842.patch</filename>
            <type>text/plain</type>
            <size>7978</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTE4OWYzZGUyMzU2ZmE5MDk4N2ZjMmU4YmFkOGZjYWY4NmQ1NTA1Li4wODljOWRlMmNmYzBmMDIw
NzY3NDNkMzUzMWE5MmMxNzNhZjY2ZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMi0wMS0yNSAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBhZGRl
ZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAg
ICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0
b1N0cmluZ0RlY2ltYWwpOiBhZGQgY2hhciogdmVyc2lvbiBpbiBhZGRpdGlvbiB0byBVQ2hhciog
dmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3RmL3Vu
aWNvZGUvaWN1L1VuaWNvZGVJY3UuaDogYWRkIElDVV9WRVJTSU9OX0FUX0xFQVNUIG1hY3JvCisK
IDIwMTItMDEtMjQgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgog
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAK
aW5kZXggZmI5MGJjZDE3ZWExNDUxZWU1NDIxNGY4N2I1YTg5YTUzZjE4NzM0OS4uMDFlMTNlM2Ni
MjZjN2ZkNjZiMDQyOGQxZTQwMjZhZTkxOTNmNGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiVWludDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5jbHVkZSAiZHRvYS5oIgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0RlY2ltYWxOdW1iZXIuaD4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvZHRvYS9kb3VibGUtY29udmVyc2lvbi5oPgpAQCAtNDAsNiArNDEsMTAgQEAgdXNp
bmcgbmFtZXNwYWNlIFdURjo6ZG91YmxlX2NvbnZlcnNpb247CiAvLyBUbyBhdm9pZCBjb25mbGlj
dCB3aXRoIFdURjo6U3RyaW5nQnVpbGRlci4KIHR5cGVkZWYgV1RGOjpkb3VibGVfY29udmVyc2lv
bjo6U3RyaW5nQnVpbGRlciBEb3VibGVDb252ZXJzaW9uU3RyaW5nQnVpbGRlcjsKIAorI2lmIFVT
RShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fRk9STUFUVElORyAmJiBJQ1VfVkVSU0lPTl9B
VF9MRUFTVCg0LCA0LCAwKQorI2luY2x1ZGUgPHVuaWNvZGUvdW51bS5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBKU0MgewogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1i
ZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKQEAgLTU1LDYgKzYwLDU3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9u
KEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIFVTRShJQ1VfVU5JQ09ERSkg
JiYgIVVDT05GSUdfTk9fRk9STUFUVElORyAmJiBJQ1VfVkVSU0lPTl9BVF9MRUFTVCg0LCA0LCAw
KQorCitzdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVOdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHYpCit7CisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAg
VU51bWJlckZvcm1hdCogbmYgPSB1bnVtX29wZW4oVU5VTV9ERUZBVUxULCAwLCAwLCAwLCAwLCAm
c3RhdHVzKTsKKyAgICBpZiAoIW5mIHx8IFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1
cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKworICAgIHVudW1fc2V0QXR0cmlidXRlKG5mLCBVTlVN
X01BWF9TSUdOSUZJQ0FOVF9ESUdJVFMsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgp
OworICAgIHVudW1fc2V0QXR0cmlidXRlKG5mLCBVTlVNX1NJR05JRklDQU5UX0RJR0lUU19VU0VE
LCAxKTsKKworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOworICAgIE51bWJlclRvVVN0cmluZ0J1
ZmZlciBidWZmZXI7CisgICAgaW50MzJfdCBsZW5ndGg7CisKKyAgICBpZiAodi5pc0ludDMyKCkp
IHsKKyAgICAgICAgaW50MzJfdCBudW0gPSB2LmFzSW50MzIoKTsKKyAgICAgICAgbGVuZ3RoID0g
dW51bV9mb3JtYXQobmYsIG51bSwgYnVmZmVyLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVu
Z3RoLCAwLCAmc3RhdHVzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb3VibGUgbnVtOworICAg
ICAgICBpZiAodi5pc0RvdWJsZSgpKQorICAgICAgICAgICAgbnVtID0gdi5hc0RvdWJsZSgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBudW0gPSB2LnRvTnVtYmVyKGV4ZWMpOworCisgICAg
ICAgIERlY2ltYWxOdW1iZXIgZChudW0pOworICAgICAgICBjaGFyIG51bWJlclN0cmluZ1tXVEY6
Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoXTsKKyAgICAgICAgbGVuZ3RoID0gZC50b1N0cmlu
Z0RlY2ltYWwobnVtYmVyU3RyaW5nLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoKTsK
KyAgICAgICAgbGVuZ3RoID0gdW51bV9mb3JtYXREZWNpbWFsKG5mLCBudW1iZXJTdHJpbmcsIGxl
bmd0aCwgYnVmZmVyLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoLCAwLCAmc3RhdHVz
KTsKKyAgICB9CisKKyAgICB1bnVtX2Nsb3NlKG5mKTsKKworICAgIGlmIChVX0ZBSUxVUkUoc3Rh
dHVzKSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKK30KKwor
I2Vsc2UKKworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHll
dC4KKworICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisjZW5kaWYKKwogY29uc3Qg
Q2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJlck9i
amVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1iZXJQ
cm90b3R5cGUubHV0LmgKQEAgLTQ3NCw3ICs1MzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoZm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4
ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcAppbmRleCA3
MDMwNGUyZTVmNjMwZGFjMzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2NzgzLi45MzMwZmFiMzY5OGQ2Nzdk
ZjVhOGMwYjRlZjM3OTA1MjM5ZTFmZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RGVjaW1hbE51bWJlci5jcHAKQEAgLTE1NSw2ICsxNTUsNjIgQEAgdW5zaWduZWQgRGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0
aCkgY28KICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKIH0KIAordW5zaWduZWQgRGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdAoreworICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBidWZmZXJMZW5ndGgg
Pj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpKTsKKworICAgIC8vIFNob3VsZCBhbHdh
eXMgYmUgYXQgbGVhc3Qgb25lIGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQorICAgIEFTU0VS
VChtX3ByZWNpc2lvbik7CisgICAgY2hhciogbmV4dCA9IGJ1ZmZlcjsKKworICAgIC8vIGlmIHRo
ZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwgcmVwcmVzZW50YXRpb24g
aXMgb2YgdGhlIGZvcm06CisgICAgLy8gWzxzaWduPl0wLls8emVyb3M+XTxzaWduaWZpY2FuZD4K
KyAgICBpZiAobV9leHBvbmVudCA8IDApIHsKKyAgICAgICAgdW5zaWduZWQgemVyb3MgPSAtbV9l
eHBvbmVudCAtIDE7CisKKyAgICAgICAgaWYgKG1fc2lnbikKKyAgICAgICAgICAgICpuZXh0Kysg
PSAnLSc7CisgICAgICAgICpuZXh0KysgPSAnMCc7CisgICAgICAgICpuZXh0KysgPSAnLic7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB6ZXJvczsgKytpKQorICAgICAgICAgICAg
Km5leHQrKyA9ICcwJzsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcHJlY2lz
aW9uOyArK2kpCisgICAgICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKworICAg
ICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBkaWdpdHNC
ZWZvcmVEZWNpbWFsUG9pbnQgPSBtX2V4cG9uZW50ICsgMTsKKworICAgIC8vIElmIHRoZSBwcmVj
aXNpb24gaXMgPD0gdGhhbiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyB0byBnZXQgdXAgdG8gdGhlIGRl
Y2ltYWwKKyAgICAvLyBwb2ludCwgdGhlbiB0aGVyZSBpcyBubyBmcmFjdGlvbmFsIHBhcnQsIG51
bWJlciBpcyBvZiB0aGUgZm9ybToKKyAgICAvLyBbPHNpZ24+XTxzaWduaWZpY2FuZD5bPHplcm9z
Pl0KKyAgICBpZiAobV9wcmVjaXNpb24gPD0gZGlnaXRzQmVmb3JlRGVjaW1hbFBvaW50KSB7Cisg
ICAgICAgIGlmIChtX3NpZ24pCisgICAgICAgICAgICAqbmV4dCsrID0gJy0nOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcmVjaXNpb247ICsraSkKKyAgICAgICAgICAgICpu
ZXh0KysgPSBtX3NpZ25pZmljYW5kW2ldOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgKGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludCAtIG1fcHJlY2lzaW9uKTsgKytpKQorICAgICAg
ICAgICAgKm5leHQrKyA9ICcwJzsKKworICAgICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKKyAg
ICB9CisKKyAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgbnVtYmVyIHN0YXJ0cyBiZWZvcmUgdGhlIGRl
Y2ltYWwgcG9pbnQsIGFuZCBlbmRzIGFmdGVyIGl0LAorICAgIC8vIGFzIHN1Y2ggaXMgb2YgdGhl
IGZvcm06CisgICAgLy8gWzxzaWduPl08c2lnbmlmaWNhbmQtYmVnaW4+LjxzaWduaWZpY2FuZC1l
bmQ+CisKKyAgICBpZiAobV9zaWduKQorICAgICAgICAqbmV4dCsrID0gJy0nOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBkaWdpdHNCZWZvcmVEZWNpbWFsUG9pbnQ7ICsraSkKKyAgICAg
ICAgKm5leHQrKyA9IG1fc2lnbmlmaWNhbmRbaV07CisgICAgKm5leHQrKyA9ICcuJzsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBkaWdpdHNCZWZvcmVEZWNpbWFsUG9pbnQ7IGkgPCBtX3ByZWNpc2lv
bjsgKytpKQorICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKworICAgIHJldHVy
biBuZXh0IC0gYnVmZmVyOworfQorCiB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4
cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1ZmZlckxl
bmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Rl
Y2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1YmFhNTQ1
NDBjLi5iNTM3NzkwNzQ5Zjg1MDU3MjRlMDA2ODExNWEyNWVlMjllMzI0ZDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaApAQCAtODUsNiArODUsNyBAQCBwdWJs
aWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aEZvclN0cmlu
Z0V4cG9uZW50aWFsKCkgY29uc3Q7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQg
dG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29u
c3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbChjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRXhwb25lbnRpYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWdu
ZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKIAogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2lnbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1
L1VuaWNvZGVJY3UuaAppbmRleCBmZTUyNGIyYTJkYTQ4MDZlZDQ3NWVlNzhjNmFjZjZmNjNlZGFi
MGM4Li40OWY4MmNkZjk3ODJjZTdmZGE3MGExNDgzODYyMzY3NWJlZDllMjM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaApAQCAt
MjksNiArMjksOSBAQAogI2luY2x1ZGUgPHVuaWNvZGUvdXN0cmluZy5oPgogI2luY2x1ZGUgPHVu
aWNvZGUvdXRmMTYuaD4KIAorI2RlZmluZSBJQ1VfVkVSU0lPTiAoVV9JQ1VfVkVSU0lPTl9NQUpP
Ul9OVU0gKiAxMDAwMCArIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNICogMTAwICsgVV9JQ1VfVkVS
U0lPTl9QQVRDSExFVkVMX05VTSkKKyNkZWZpbmUgSUNVX1ZFUlNJT05fQVRfTEVBU1QobWFqb3Is
IG1pbm9yLCBwYXRjaCkgKElDVV9WRVJTSU9OID49IChtYWpvciAqIDEwMDAwICsgbWlub3IgKiAx
MDAgKyBwYXRjaCkpCisKIG5hbWVzcGFjZSBXVEYgewogbmFtZXNwYWNlIFVuaWNvZGUgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124001</attachid>
            <date>2012-01-25 13:42:03 -0800</date>
            <delta_ts>2012-02-02 13:43:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120125164202.patch</filename>
            <type>text/plain</type>
            <size>8673</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTE4OWYzZGUyMzU2ZmE5MDk4N2ZjMmU4YmFkOGZjYWY4NmQ1NTA1Li5jZmYxYzMwYjk1NzU2MjFl
ZGFiMzJhNDBkODRhOThiNTA1NjNlZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMi0wMS0yNSAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBhZGRl
ZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAg
ICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0
b1N0cmluZ0RlY2ltYWwpOiBhZGQgY2hhciogdmVyc2lvbiBpbiBhZGRpdGlvbiB0byBVQ2hhciog
dmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3RmL3Vu
aWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaDogYWRkIElDVV9WRVJTSU9OX0FUX0xFQVNUIG1h
Y3JvCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaDogYWRkIElDVV9WRVJT
SU9OX0FUX0xFQVNUIG1hY3JvCisKIDIwMTItMDEtMjQgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFy
cmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03Njg1NQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggZmI5MGJjZDE3ZWExNDUxZWU1NDIxNGY4N2I1YTg5
YTUzZjE4NzM0OS4uMDFlMTNlM2NiMjZjN2ZkNjZiMDQyOGQxZTQwMjZhZTkxOTNmNGMyNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVWludDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5j
bHVkZSAiZHRvYS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3Rm
L0RlY2ltYWxOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZHRvYS9kb3VibGUtY29udmVyc2lvbi5oPgpA
QCAtNDAsNiArNDEsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjo6ZG91YmxlX2NvbnZlcnNpb247
CiAvLyBUbyBhdm9pZCBjb25mbGljdCB3aXRoIFdURjo6U3RyaW5nQnVpbGRlci4KIHR5cGVkZWYg
V1RGOjpkb3VibGVfY29udmVyc2lvbjo6U3RyaW5nQnVpbGRlciBEb3VibGVDb252ZXJzaW9uU3Ry
aW5nQnVpbGRlcjsKIAorI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fRk9STUFU
VElORyAmJiBJQ1VfVkVSU0lPTl9BVF9MRUFTVCg0LCA0LCAwKQorI2luY2x1ZGUgPHVuaWNvZGUv
dW51bS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKQEAg
LTU1LDYgKzYwLDU3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsKIAor
I2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fRk9STUFUVElORyAmJiBJQ1VfVkVS
U0lPTl9BVF9MRUFTVCg0LCA0LCAwKQorCitzdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVOdW1i
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHYpCit7CisgICAgVUVycm9yQ29kZSBzdGF0dXMg
PSBVX1pFUk9fRVJST1I7CisgICAgVU51bWJlckZvcm1hdCogbmYgPSB1bnVtX29wZW4oVU5VTV9E
RUZBVUxULCAwLCAwLCAwLCAwLCAmc3RhdHVzKTsKKyAgICBpZiAoIW5mIHx8IFVfRkFJTFVSRShz
dGF0dXMpKQorICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKworICAgIHVudW1f
c2V0QXR0cmlidXRlKG5mLCBVTlVNX01BWF9TSUdOSUZJQ0FOVF9ESUdJVFMsIFdURjo6TnVtYmVy
VG9TdHJpbmdCdWZmZXJMZW5ndGgpOworICAgIHVudW1fc2V0QXR0cmlidXRlKG5mLCBVTlVNX1NJ
R05JRklDQU5UX0RJR0lUU19VU0VELCAxKTsKKworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOwor
ICAgIE51bWJlclRvVVN0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgaW50MzJfdCBsZW5ndGg7CisK
KyAgICBpZiAodi5pc0ludDMyKCkpIHsKKyAgICAgICAgaW50MzJfdCBudW0gPSB2LmFzSW50MzIo
KTsKKyAgICAgICAgbGVuZ3RoID0gdW51bV9mb3JtYXQobmYsIG51bSwgYnVmZmVyLCBXVEY6Ok51
bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoLCAwLCAmc3RhdHVzKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBkb3VibGUgbnVtOworICAgICAgICBpZiAodi5pc0RvdWJsZSgpKQorICAgICAgICAgICAg
bnVtID0gdi5hc0RvdWJsZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBudW0gPSB2LnRv
TnVtYmVyKGV4ZWMpOworCisgICAgICAgIERlY2ltYWxOdW1iZXIgZChudW0pOworICAgICAgICBj
aGFyIG51bWJlclN0cmluZ1tXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoXTsKKyAgICAg
ICAgbGVuZ3RoID0gZC50b1N0cmluZ0RlY2ltYWwobnVtYmVyU3RyaW5nLCBXVEY6Ok51bWJlclRv
U3RyaW5nQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgbGVuZ3RoID0gdW51bV9mb3JtYXREZWNpbWFs
KG5mLCBudW1iZXJTdHJpbmcsIGxlbmd0aCwgYnVmZmVyLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVm
ZmVyTGVuZ3RoLCAwLCAmc3RhdHVzKTsKKyAgICB9CisKKyAgICB1bnVtX2Nsb3NlKG5mKTsKKwor
ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmco
ZXhlYyk7CisKKyAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVm
ZmVyLCBsZW5ndGgpKTsKK30KKworI2Vsc2UKKworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1h
dExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhN
RTogTm90IGltcGxlbWVudGVkIHlldC4KKworICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOwor
fQorCisjZW5kaWYKKwogY29uc3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0g
eyAiTnVtYmVyIiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclBy
b3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAog
LyogU291cmNlIGZvciBOdW1iZXJQcm90b3R5cGUubHV0LmgKQEAgLTQ3NCw3ICs1MzAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5n
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1Zh
bHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVy
KHgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNp
bWFsTnVtYmVyLmNwcAppbmRleCA3MDMwNGUyZTVmNjMwZGFjMzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2
NzgzLi45MzMwZmFiMzY5OGQ2NzdkZjVhOGMwYjRlZjM3OTA1MjM5ZTFmZjY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTE1NSw2ICsxNTUsNjIg
QEAgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIs
IHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY28KICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKIH0K
IAordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwg
dW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAoreworICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVy
TGVuZ3RoLCBidWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpKTsK
KworICAgIC8vIFNob3VsZCBhbHdheXMgYmUgYXQgbGVhc3Qgb25lIGRpZ2l0IHRvIGFkZCB0byB0
aGUgc3RyaW5nIQorICAgIEFTU0VSVChtX3ByZWNpc2lvbik7CisgICAgY2hhciogbmV4dCA9IGJ1
ZmZlcjsKKworICAgIC8vIGlmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRl
Y2ltYWwgcmVwcmVzZW50YXRpb24gaXMgb2YgdGhlIGZvcm06CisgICAgLy8gWzxzaWduPl0wLls8
emVyb3M+XTxzaWduaWZpY2FuZD4KKyAgICBpZiAobV9leHBvbmVudCA8IDApIHsKKyAgICAgICAg
dW5zaWduZWQgemVyb3MgPSAtbV9leHBvbmVudCAtIDE7CisKKyAgICAgICAgaWYgKG1fc2lnbikK
KyAgICAgICAgICAgICpuZXh0KysgPSAnLSc7CisgICAgICAgICpuZXh0KysgPSAnMCc7CisgICAg
ICAgICpuZXh0KysgPSAnLic7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB6ZXJv
czsgKytpKQorICAgICAgICAgICAgKm5leHQrKyA9ICcwJzsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fcHJlY2lzaW9uOyArK2kpCisgICAgICAgICAgICAqbmV4dCsrID0gbV9z
aWduaWZpY2FuZFtpXTsKKworICAgICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKKyAgICB9CisK
KyAgICB1bnNpZ25lZCBkaWdpdHNCZWZvcmVEZWNpbWFsUG9pbnQgPSBtX2V4cG9uZW50ICsgMTsK
KworICAgIC8vIElmIHRoZSBwcmVjaXNpb24gaXMgPD0gdGhhbiB0aGUgbnVtYmVyIG9mIGRpZ2l0
cyB0byBnZXQgdXAgdG8gdGhlIGRlY2ltYWwKKyAgICAvLyBwb2ludCwgdGhlbiB0aGVyZSBpcyBu
byBmcmFjdGlvbmFsIHBhcnQsIG51bWJlciBpcyBvZiB0aGUgZm9ybToKKyAgICAvLyBbPHNpZ24+
XTxzaWduaWZpY2FuZD5bPHplcm9zPl0KKyAgICBpZiAobV9wcmVjaXNpb24gPD0gZGlnaXRzQmVm
b3JlRGVjaW1hbFBvaW50KSB7CisgICAgICAgIGlmIChtX3NpZ24pCisgICAgICAgICAgICAqbmV4
dCsrID0gJy0nOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcmVjaXNpb247
ICsraSkKKyAgICAgICAgICAgICpuZXh0KysgPSBtX3NpZ25pZmljYW5kW2ldOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgKGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludCAtIG1fcHJl
Y2lzaW9uKTsgKytpKQorICAgICAgICAgICAgKm5leHQrKyA9ICcwJzsKKworICAgICAgICByZXR1
cm4gbmV4dCAtIGJ1ZmZlcjsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgbnVtYmVy
IHN0YXJ0cyBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQsIGFuZCBlbmRzIGFmdGVyIGl0LAorICAg
IC8vIGFzIHN1Y2ggaXMgb2YgdGhlIGZvcm06CisgICAgLy8gWzxzaWduPl08c2lnbmlmaWNhbmQt
YmVnaW4+LjxzaWduaWZpY2FuZC1lbmQ+CisKKyAgICBpZiAobV9zaWduKQorICAgICAgICAqbmV4
dCsrID0gJy0nOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkaWdpdHNCZWZvcmVEZWNp
bWFsUG9pbnQ7ICsraSkKKyAgICAgICAgKm5leHQrKyA9IG1fc2lnbmlmaWNhbmRbaV07CisgICAg
Km5leHQrKyA9ICcuJzsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBkaWdpdHNCZWZvcmVEZWNpbWFs
UG9pbnQ7IGkgPCBtX3ByZWNpc2lvbjsgKytpKQorICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZp
Y2FuZFtpXTsKKworICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOworfQorCiB1bnNpZ25lZCBEZWNp
bWFsTnVtYmVyOjp0b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1
ZmZlckxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxlbmd0aCwgYnVm
ZmVyTGVuZ3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2Rk
MTM1MmY2MDFjNTc1ZjU1YmFhNTQ1NDBjLi5iNTM3NzkwNzQ5Zjg1MDU3MjRlMDA2ODExNWEyNWVl
MjllMzI0ZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxO
dW1iZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaApA
QCAtODUsNiArODUsNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVk
IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkgY29uc3Q7CiAKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2ln
bmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVk
IHRvU3RyaW5nRGVjaW1hbChjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29u
c3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRXhwb25lbnRpYWwo
VUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKIAogICAgIGJvb2wg
c2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNVLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaAppbmRleCAwOWE3
MDM2ZTMzMDI4NjkwMTgwMWQyNDFmN2JlZmZlMjZhM2I1MDVjLi5jMGZmM2NjMzM0NzM4OGI5ZmRl
YmQ2NjE2NGI1Y2U1NGU5YjlhMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3VuaWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL3VuaWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaApAQCAtOTgsMyArOTgsNyBA
QAogICAgIH0gXAogfQogI2VuZGlmCisKKyNkZWZpbmUgSUNVX1ZFUlNJT04gKFVfSUNVX1ZFUlNJ
T05fTUFKT1JfTlVNICogMTAwMDAgKyBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSAqIDEwMCArIFVf
SUNVX1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0pCisjZGVmaW5lIElDVV9WRVJTSU9OX0FUX0xFQVNU
KG1ham9yLCBtaW5vciwgcGF0Y2gpIChJQ1VfVkVSU0lPTiA+PSAobWFqb3IgKiAxMDAwMCArIG1p
bm9yICogMTAwICsgcGF0Y2gpKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUljdS5oCmluZGV4IGZlNTI0YjJhMmRhNDgwNmVkNDc1ZWU3OGM2
YWNmNmY2M2VkYWIwYzguLjQ5ZjgyY2RmOTc4MmNlN2ZkYTcwYTE0ODM4NjIzNjc1YmVkOWUyMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29k
ZUljdS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29k
ZUljdS5oCkBAIC0yOSw2ICsyOSw5IEBACiAjaW5jbHVkZSA8dW5pY29kZS91c3RyaW5nLmg+CiAj
aW5jbHVkZSA8dW5pY29kZS91dGYxNi5oPgogCisjZGVmaW5lIElDVV9WRVJTSU9OIChVX0lDVV9W
RVJTSU9OX01BSk9SX05VTSAqIDEwMDAwICsgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gKiAxMDAg
KyBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVNKQorI2RlZmluZSBJQ1VfVkVSU0lPTl9BVF9M
RUFTVChtYWpvciwgbWlub3IsIHBhdGNoKSAoSUNVX1ZFUlNJT04gPj0gKG1ham9yICogMTAwMDAg
KyBtaW5vciAqIDEwMCArIHBhdGNoKSkKKwogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3BhY2UgVW5p
Y29kZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125181</attachid>
            <date>2012-02-02 13:43:52 -0800</date>
            <delta_ts>2012-02-03 07:38:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120202164351.patch</filename>
            <type>text/plain</type>
            <size>19121</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
M2VjZmZiMjhmZDI3NTI3YTc5YzIxNDMxMTdmZjJlNjBjODE2MTc3Li4wZWJiMGU5MDU2ODk3ZThm
YjkyYTdhOGZkMzg5NjMxYTVhMjE2NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMi0wMS0yOCAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FjaGVkTnVtYmVyRm9y
bWF0dGVyTXV0ZXgpOiBhZGRlZAorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBh
ZGRlZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAg
ICAgICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwpOiBtYWtlIHRoaXMgYSB0ZW1wbGF0ZSB0byBzdXBwb3J0IGEgY2hh
ciogdmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogd3RmL3VuaWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaDogYWRkIElD
VV9WRVJTSU9OX0FUX0xFQVNUIG1hY3JvCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNv
ZGVJY3UuY3BwOiBhZGRlZAorICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6
IGFkZCBJQ1VfVkVSU0lPTl9BVF9MRUFTVCBtYWNybyBhbmQgbnVtZXJpYyBsb2NhbGUgYWNjZXNz
b3IKKwogMjAxMi0wMS0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIGdldF9ieV92YWxfYXJndW1lbnRzIGlzIGJyb2tlbiBpbiB0aGUgaW50ZXJwcmV0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZGU1MzM4ZGQ0Zjdi
NGJlZjgyOTI1NTliN2JjYzNmNGYxMThlOWMzMS4uOGRiN2RlMzFhZTQ2YjdhNGMzZTFiMzkwNGMx
MzkwMmYxM2QyOWFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTc2OSw2ICs3NjksNyBAQCBlbmRpZgogaWYgVVNFX0lDVV9VTklDT0RFCiBqYXZhc2Ny
aXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUv
aWN1L0NvbGxhdG9ySUNVLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKIGVuZGlmICMgVVNFX0lDVV9VTklDT0RFCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDJmN2IzMTU3ZjZkYmI3ZTBkMzViMWFl
MjRiNzc4ZDkzYTI0NTllMzcuLmU3ZDEyZmUzYTg0YmUxZmRkNjA3Mzk1Y2FmOTE2ODcxZDk3YTM1
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtNTk0LDcg
KzU5NCw3IEBAIF9fWk5LM1dURjEwU3RyaW5nSW1wbDEyaGFzaFNsb3dDYXNlRXYKIF9fWk5LM1dU
RjEwU3RyaW5nSW1wbDE3Z2V0RGF0YTE2U2xvd0Nhc2VFdgogX19aTkszV1RGMTBTdHJpbmdJbXBs
MTl1cGNvbnZlcnRDaGFyYWN0ZXJzRWpqCiBfX1pOSzNXVEYxMkF0b21pY1N0cmluZzVsb3dlckV2
Ci1fX1pOSzNXVEYxM0RlY2ltYWxOdW1iZXIxNXRvU3RyaW5nRGVjaW1hbEVQdGoKK19fWk5LM1dU
RjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdEZWNpbWFsSXRFRWpQVF9qCiBfX1pOSzNXVEYxM0Rl
Y2ltYWxOdW1iZXIxOXRvU3RyaW5nRXhwb25lbnRpYWxFUHRqCiBfX1pOSzNXVEYxM0RlY2ltYWxO
dW1iZXIyOGJ1ZmZlckxlbmd0aEZvclN0cmluZ0RlY2ltYWxFdgogX19aTkszV1RGMTNEZWNpbWFs
TnVtYmVyMzJidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbEV2CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IGI1OWJlMzhkOTcxMmI0MWViOTUyNmQ5
NDhmNDU5ZjdkYmI0NGYxOGQuLjAzYTEwYzIyNjRhODlmZjcwZWFmZDI2MzJhYjQ3ZDQ2MzhhZDYz
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC02NDks
NiArNjQ5LDcgQEAKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5oJywKICAgICAg
ICAgICAgICd3dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3
dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2Rl
L3F0NC9Vbmljb2RlUXQ0LmgnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNv
ZGVXaW5DRS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5D
RS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5v
cmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCBk
ODUxM2QwOTliZDU2ZDkwZGIzZmVkNjJjOTVkMDZlNzU1ZDZkYTYwLi44MzQxYjllYzQyYWJhMzVl
NWYzNmQwYTY4NmVlNTBiYzViOTMzNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLm9yZGVyCkBAIC0xMTI3LDcgKzExMjcsNyBAQCBfX1pOSzNKU0M3SlNBcnJheTEy
c3ViY2xhc3NEYXRhRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsMTZmaW5kSWdub3JpbmdDYXNlRVBL
Y2oKIF9fWk4zV1RGMTRudW1iZXJUb1N0cmluZ0VkUHQKIF9fWk4zV1RGNGR0b2FJTGIxRUxiMEVM
YjBFTGIxRUVFdlBjZGlSYlJpUmoKLV9fWk5LM1dURjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdE
ZWNpbWFsRVB0agorX19aTkszV1RGMTNEZWNpbWFsTnVtYmVyMTV0b1N0cmluZ0RlY2ltYWxJdEVF
alBUX2oKIF9fWk4zV1RGMTBTdHJpbmdJbXBsOHRvRG91YmxlRVBiUzFfCiBfX1pOM1dURjZWZWN0
b3JJakxtMTZFRTZyZXNpemVFbQogX19aTjNXVEZMN211bHRhZGRFUk5TXzZCaWdJbnRFaWkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWQ4YjNkZDU4ZDY2MmFhNDAxNzQwYzFmNTM4
OThiOTA3MjJjMmM0ZS4uODRiZDBlYTlkYjEyYmM3ZDY3MzZhMmRmNDFjNDE2NzMxMzhkODFjYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1ODIsNiArMTU4Miw3IEBACiAJCUY2
OTJBODg3MDI1NTU5N0QwMUZGNjBGNyAvKiBKU1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2OUU4NkMxMTRDNkU1NTEwMDJD
MkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IE51bWJlck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyog
TnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOdW1iZXJP
ZkNvcmVzLmg7IHBhdGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGOTgzNTJGQjE0RDIxN0E2MDBDMURDOTkgLyogVW5pY29kZUljdS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmljb2RlSWN1LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBMTVDMTYxMkIwMzAyODAwM0E1ODNBIC8qIENvbXBs
ZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxleC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGRTFCNDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGli
RXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZExpYkV4dHJhcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2Vj
dGlvbiAqLwpAQCAtMjY0MSw2ICsyNjQyLDcgQEAKIAkJRTE5NTY3OEUwOUU3Q0YxMjAwQjg5RDEz
IC8qIGljdSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Rjk4MzUyRkIxNEQyMTdBNjAwQzFEQzk5IC8qIFVuaWNvZGVJY3UuY3BwICovLAogCQkJCUUxQTg2
MkE4MEQ3RUJCNzYwMDFFQzZBQSAvKiBDb2xsYXRvcklDVS5jcHAgKi8sCiAJCQkJRTE5NTY3OEYw
OUU3Q0YxMjAwQjg5RDEzIC8qIFVuaWNvZGVJY3UuaCAqLywKIAkJCSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCBmYjkwYmNk
MTdlYTE0NTFlZTU0MjE0Zjg3YjVhODlhNTNmMTg3MzQ5Li43MTRhMmNiMmIzZDJmNTgyYTVmOTBk
YzZmYmVjYTIwNWZhNmI2ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJVaW50
MTZXaXRoRnJhY3Rpb24uaCIKICNpbmNsdWRlICJkdG9hLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9h
L2RvdWJsZS1jb252ZXJzaW9uLmg+CkBAIC00MCw2ICs0MSwxMCBAQCB1c2luZyBuYW1lc3BhY2Ug
V1RGOjpkb3VibGVfY29udmVyc2lvbjsKIC8vIFRvIGF2b2lkIGNvbmZsaWN0IHdpdGggV1RGOjpT
dHJpbmdCdWlsZGVyLgogdHlwZWRlZiBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWls
ZGVyIERvdWJsZUNvbnZlcnNpb25TdHJpbmdCdWlsZGVyOwogCisjaWYgVVNFKElDVV9VTklDT0RF
KSAmJiAhVUNPTkZJR19OT19GT1JNQVRUSU5HICYmIGRlZmluZWQoSUNVX1ZFUlNJT05fQVRfTEVB
U1QpICYmIElDVV9WRVJTSU9OX0FUX0xFQVNUKDQsIDQsIDApCisjaW5jbHVkZSA8dW5pY29kZS91
bnVtLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwpAQCAt
NTUsNiArNjAsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVy
UHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAKIG5hbWVzcGFjZSBKU0MgewogCisj
aWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19GT1JNQVRUSU5HICYmIGRlZmluZWQo
SUNVX1ZFUlNJT05fQVRfTEVBU1QpICYmIElDVV9WRVJTSU9OX0FUX0xFQVNUKDQsIDQsIDApCisK
K3N0YXRpYyBVTnVtYmVyRm9ybWF0KiBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworc3RhdGlj
IE11dGV4JiBjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpCit7CisgICAgQXRvbWljYWxseUlu
aXRpYWxpemVkU3RhdGljKE11dGV4JiwgbXV0ZXggPSAqbmV3IE11dGV4KTsKKyAgICByZXR1cm4g
bXV0ZXg7Cit9CisKK3N0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICBBU1NFUlQodi5pc051bWJlcigpKTsKKworICAgIExv
Y2tlcjxNdXRleD4gbG9jayhjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpKTsKKyAgICBVRXJy
b3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBVTnVtYmVyRm9ybWF0KiBuZiA9IDA7
CisgICAgaWYgKGNhY2hlZE51bWJlckZvcm1hdHRlcikgeworICAgICAgICBjb25zdCBjaGFyKiBj
YWNoZWROdW1iZXJGb3JtYXR0ZXJMb2NhbGUgPSB1bnVtX2dldExvY2FsZUJ5VHlwZShjYWNoZWRO
dW1iZXJGb3JtYXR0ZXIsIFVMT0NfUkVRVUVTVEVEX0xPQ0FMRSwgJnN0YXR1cyk7CisgICAgICAg
IEFTU0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7CisgICAgICAgIEFTU0VSVChjYWNoZWROdW1iZXJG
b3JtYXR0ZXJMb2NhbGUpOworCisgICAgICAgIGlmICghc3RyY21wKGNhY2hlZE51bWJlckZvcm1h
dHRlckxvY2FsZSwgY3VycmVudE51bWVyaWNMb2NhbGVJRCgpKSkKKyAgICAgICAgICAgIG5mID0g
Y2FjaGVkTnVtYmVyRm9ybWF0dGVyOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxv
Y2FsZSBjaGFuZ2VkLi4uIHdlJ2xsIG5lZWQgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgICAgICB1
bnVtX2Nsb3NlKGNhY2hlZE51bWJlckZvcm1hdHRlcik7CisgICAgICAgICAgICBjYWNoZWROdW1i
ZXJGb3JtYXR0ZXIgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFuZikgeworICAg
ICAgICBuZiA9IHVudW1fb3BlbihVTlVNX0RFRkFVTFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9j
YWxlSUQoKSwgMCwgJnN0YXR1cyk7CisgICAgICAgIGlmICghbmYgfHwgVV9GQUlMVVJFKHN0YXR1
cykpCisgICAgICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKyAgICAgICAgY2Fj
aGVkTnVtYmVyRm9ybWF0dGVyID0gbmY7CisgICAgfQorCisgICAgdW51bV9zZXRBdHRyaWJ1dGUo
bmYsIFVOVU1fTUFYX1NJR05JRklDQU5UX0RJR0lUUywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aCk7CisgICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fU0lHTklGSUNBTlRfRElH
SVRTX1VTRUQsIDEpOworCisgICAgTnVtYmVyVG9VU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBp
bnQzMl90IGxlbmd0aDsKKworICAgIGlmICh2LmlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90
IG51bSA9IHYuYXNJbnQzMigpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdChuZiwgbnVt
LCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGRvdWJsZSBudW07CisgICAgICAgIGlmICh2LmlzRG91Ymxl
KCkpCisgICAgICAgICAgICBudW0gPSB2LmFzRG91YmxlKCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG51bSA9IHYudG9OdW1iZXIoZXhlYyk7CisKKyAgICAgICAgRGVjaW1hbE51bWJlciBk
KG51bSk7CisgICAgICAgIGNoYXIgbnVtYmVyU3RyaW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZm
ZXJMZW5ndGhdOworICAgICAgICBsZW5ndGggPSBkLnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJp
bmcsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgpOworICAgICAgICBsZW5ndGggPSB1
bnVtX2Zvcm1hdERlY2ltYWwobmYsIG51bWJlclN0cmluZywgbGVuZ3RoLCBidWZmZXIsIFdURjo6
TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0KKworICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7
CisKKyAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBs
ZW5ndGgpKTsKK30KKworI2Vsc2UKKworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2Fs
ZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90
IGltcGxlbWVudGVkIHlldC4KKworICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisj
ZW5kaWYKKwogY29uc3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVt
YmVyIiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlw
ZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291
cmNlIGZvciBOdW1iZXJQcm90b3R5cGUubHV0LmgKQEAgLTQ3NCw3ICs1NTUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCks
IHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVP
ZihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0RlY2ltYWxOdW1iZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVt
YmVyLmNwcAppbmRleCA3MDMwNGUyZTVmNjMwZGFjMzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2NzgzLi5k
OWE3Yjk2NWZlODY5MzE5YjcwNWMxMjk2NGEzMWQ3NmY5NDhhZmQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTk5LDEzICs5OSwxNCBAQCB1bnNp
Z25lZCBEZWNpbWFsTnVtYmVyOjpidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNv
bnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9T
dHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdE
ZWNpbWFsKFQqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFT
U0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBidWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9y
U3RyaW5nRGVjaW1hbCgpKTsKIAogICAgIC8vIFNob3VsZCBhbHdheXMgYmUgYXQgbGVhc3Qgb25l
IGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQogICAgIEFTU0VSVChtX3ByZWNpc2lvbik7Ci0g
ICAgVUNoYXIqIG5leHQgPSBidWZmZXI7CisgICAgVCogbmV4dCA9IGJ1ZmZlcjsKIAogICAgIC8v
IGlmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwgcmVwcmVzZW50
YXRpb24gaXMgb2YgdGhlIGZvcm06CiAgICAgLy8gWzxzaWduPl0wLls8emVyb3M+XTxzaWduaWZp
Y2FuZD4KQEAgLTE1NSw2ICsxNTYsOSBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmlu
Z0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjbwogICAgIHJl
dHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit0ZW1wbGF0ZSB1bnNpZ25lZCBEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNv
bnN0OwordGVtcGxhdGUgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVD
aGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisKIHVuc2lnbmVkIERl
Y2ltYWxOdW1iZXI6OnRvU3RyaW5nRXhwb25lbnRpYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBi
dWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCmluZGV4IDYxZWZmY2RkM2RjNmZj
ZGQxMzUyZjYwMWM1NzVmNTViYWE1NDU0MGMuLmY0YjUxZDdjNjNmNWE5Y2U3YTRhNDg3ODc0OWVl
YTJkNDcyYzJlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1h
bE51bWJlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5o
CkBAIC04NCw3ICs4NCw4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWdu
ZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0
OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbChVQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgorICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2lt
YWwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OwogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJl
dHVybiBtX3NpZ247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKaW5kZXggNWYzMGQwODg5NjE1NzM2NzgzODMyMTZiOTA3NWY5ZWJk
MWQwOWEzYS4uZDRiYjk5NDNkOTUxNWUwMWI2ZjY2NDRhNGQ5ZWE1OGRlNWNiYzlmMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
QEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRo
cmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWluVGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1
bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSWN1LmNw
cAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzODg3ZWFkOGNmMDI4YTE2
MTc3ZjNlMDJiZDlhMWE1NmQ4OTFmYzc5Li5lZTRiYjFhYzYyMzcxMDBiMWVjOGYzNGM5OGYwNjhi
MzgxYmU2YTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTcsNiArNyw3IEBAIExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5n
UHRocmVhZHMuY3BwCiAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmlj
b2RlL2ljdS9Vbmljb2RlSWN1LmNwcAogKQogCiBJRiAoRU5BQkxFX0dMSUJfU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9Vbmljb2RlTWFjcm9z
RnJvbUlDVS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNy
b3NGcm9tSUNVLmgKaW5kZXggMDlhNzAzNmUzMzAyODY5MDE4MDFkMjQxZjdiZWZmZTI2YTNiNTA1
Yy4uYzBmZjNjYzMzNDczODhiOWZkZWJkNjYxNjRiNWNlNTRlOWI5YTAxYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNVLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9t
SUNVLmgKQEAgLTk4LDMgKzk4LDcgQEAKICAgICB9IFwKIH0KICNlbmRpZgorCisjZGVmaW5lIElD
VV9WRVJTSU9OIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSAqIDEwMDAwICsgVV9JQ1VfVkVSU0lP
Tl9NSU5PUl9OVU0gKiAxMDAgKyBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVNKQorI2RlZmlu
ZSBJQ1VfVkVSU0lPTl9BVF9MRUFTVChtYWpvciwgbWlub3IsIHBhdGNoKSAoSUNVX1ZFUlNJT04g
Pj0gKG1ham9yICogMTAwMDAgKyBtaW5vciAqIDEwMCArIHBhdGNoKSkKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODNmYWFjNzM3MmYwY2MzZTk3NzM4ZjJmNzRhZjA2ZDUwNTMyMWJkMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlj
dS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVW5pY29kZUljdS5oIgorCisj
aWYgVVNFKElDVV9VTklDT0RFKQorCisjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CisKK25hbWVz
cGFjZSBXVEYgeworbmFtZXNwYWNlIFVuaWNvZGUgeworCitjb25zdCBjaGFyKiBjdXJyZW50TnVt
ZXJpY0xvY2FsZUlEKCkKK3sKKyNpZiBPUyhEQVJXSU4pICYmIFVTRShDRikKKyAgICAvLyBNYWMg
T1MgWCBkb2Vzbid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwg
c28gSUNVIGRlZmF1bHQgZG9lc24ndCB3b3JrLgorICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4g
Y3VycmVudExvY2FsZShBZG9wdENGLCBDRkxvY2FsZUNvcHlDdXJyZW50KCkpOworICAgIENGU3Ry
aW5nUmVmIGxvY2FsZUlEID0gQ0ZMb2NhbGVHZXRJZGVudGlmaWVyKGN1cnJlbnRMb2NhbGUuZ2V0
KCkpOworCisgICAgcmV0dXJuIENGU3RyaW5nR2V0Q1N0cmluZ1B0cihsb2NhbGVJRCwgQ0ZTdHJp
bmdHZXRTeXN0ZW1FbmNvZGluZygpKTsKKyNlbHNlCisgICAgcmV0dXJuIHVsb2NfZ2V0RGVmYXVs
dCgpOworI2VuZGlmCit9CisKK30gfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2
ZWQ0NzVlZTc4YzZhY2Y2ZjYzZWRhYjBjOC4uNGY2YjE3YzI5OTM1MjVkOTA5YWVkYTk1ODQ0M2Ni
NzEwNjZhZDJhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKQEAgLTI5LDYgKzI5LDkgQEAKICNpbmNsdWRlIDx1bmljb2RlL3Vz
dHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3V0ZjE2Lmg+CiAKKyNkZWZpbmUgSUNVX1ZFUlNJ
T04gKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNICogMTAwMDAgKyBVX0lDVV9WRVJTSU9OX01JTk9S
X05VTSAqIDEwMCArIFVfSUNVX1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0pCisjZGVmaW5lIElDVV9W
RVJTSU9OX0FUX0xFQVNUKG1ham9yLCBtaW5vciwgcGF0Y2gpIChJQ1VfVkVSU0lPTiA+PSAobWFq
b3IgKiAxMDAwMCArIG1pbm9yICogMTAwICsgcGF0Y2gpKQorCiBuYW1lc3BhY2UgV1RGIHsKIG5h
bWVzcGFjZSBVbmljb2RlIHsKIApAQCAtMjMxLDYgKzIzNCw4IEBAIGlubGluZSBpbnQgdW1lbWNh
c2VjbXAoY29uc3QgVUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQogICAgIHJldHVy
biB1X21lbWNhc2VjbXAoYSwgYiwgbGVuLCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKIH0KIAorY29u
c3QgY2hhciogY3VycmVudE51bWVyaWNMb2NhbGVJRCgpOworCiB9IH0KIAogI2VuZGlmIC8vIFdU
Rl9VTklDT0RFX0lDVV9ICmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmQyMzc3MGEzM2QwMDRlNzBkMWFhOWE2ZjVkMjNmNmNh
YmYzYjczNS4uYWUwMzVkODUzMmM0YmM3ZDE3YzY2Yzg3YjY3N2JmYzllOWRiNjkxZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTI4ICBFbGkgRmlkbGVyICA8ZWZpZGxlckByaW0uY29t
PgorCisgICAgICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgdGVz
dHMgYXJlIHF1aXRlIG1pbmltYWwsIHNpbmNlIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gc2V0IHRo
ZQorICAgICAgICBudW1lcmljIGxvY2FsZSBpbiBEUlQuCisKKyAgICAgICAgKiBmYXN0L2pzL251
bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
anMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMv
c2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChp
c05vbkVtcHR5U3RyaW5nKToKKwogMjAxMi0wMS0zMSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdv
b2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRp
b24gY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2Nh
bGVTdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2Nh
bGVTdHJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzIzNTdhNTZlZmMwMTdmZjQ2NDM4
Yzc2N2NjZDY5N2VmMjViODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pz
L251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitQQVNT
IGlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBp
c05vbkVtcHR5U3RyaW5nKCgtMC4wKS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIGlz
Tm9uRW1wdHlTdHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M4
ZDE4ZGMyYjMxMGE5MzExNmQ5N2VhZGFhYjQxYjVlMGMxZDdlMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL251bWJl
ci10b0xvY2FsZVN0cmluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDI2YzdiOWVmOWQyYzFmZWUwZTFkNTk4NTRhMDQxMGYyNDE2YzJiMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJl
ci10b0xvY2FsZVN0cmluZy5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGlzTm9uRW1wdHlT
dHJpbmcocykKK3sKKyAgICByZXR1cm4gdHlwZW9mIHMgPT0gInN0cmluZyIgJiYgL1teXHNdKy8u
dGVzdChzKTsKK30KKworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9j
YWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKC0wLjApLnRv
TG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKDEyMzQu
NTY3KS50b0xvY2FsZVN0cmluZygpKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125324</attachid>
            <date>2012-02-03 07:38:39 -0800</date>
            <delta_ts>2012-02-13 18:20:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120203103837.patch</filename>
            <type>text/plain</type>
            <size>19169</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
M2VjZmZiMjhmZDI3NTI3YTc5YzIxNDMxMTdmZjJlNjBjODE2MTc3Li4wZWJiMGU5MDU2ODk3ZThm
YjkyYTdhOGZkMzg5NjMxYTVhMjE2NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMi0wMS0yOCAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FjaGVkTnVtYmVyRm9y
bWF0dGVyTXV0ZXgpOiBhZGRlZAorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBh
ZGRlZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAg
ICAgICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwpOiBtYWtlIHRoaXMgYSB0ZW1wbGF0ZSB0byBzdXBwb3J0IGEgY2hh
ciogdmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogd3RmL3VuaWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaDogYWRkIElD
VV9WRVJTSU9OX0FUX0xFQVNUIG1hY3JvCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNv
ZGVJY3UuY3BwOiBhZGRlZAorICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6
IGFkZCBJQ1VfVkVSU0lPTl9BVF9MRUFTVCBtYWNybyBhbmQgbnVtZXJpYyBsb2NhbGUgYWNjZXNz
b3IKKwogMjAxMi0wMS0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIGdldF9ieV92YWxfYXJndW1lbnRzIGlzIGJyb2tlbiBpbiB0aGUgaW50ZXJwcmV0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZGU1MzM4ZGQ0Zjdi
NGJlZjgyOTI1NTliN2JjYzNmNGYxMThlOWMzMS4uOGRiN2RlMzFhZTQ2YjdhNGMzZTFiMzkwNGMx
MzkwMmYxM2QyOWFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTc2OSw2ICs3NjksNyBAQCBlbmRpZgogaWYgVVNFX0lDVV9VTklDT0RFCiBqYXZhc2Ny
aXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUv
aWN1L0NvbGxhdG9ySUNVLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKIGVuZGlmICMgVVNFX0lDVV9VTklDT0RFCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDJmN2IzMTU3ZjZkYmI3ZTBkMzViMWFl
MjRiNzc4ZDkzYTI0NTllMzcuLmU3ZDEyZmUzYTg0YmUxZmRkNjA3Mzk1Y2FmOTE2ODcxZDk3YTM1
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtNTk0LDcg
KzU5NCw3IEBAIF9fWk5LM1dURjEwU3RyaW5nSW1wbDEyaGFzaFNsb3dDYXNlRXYKIF9fWk5LM1dU
RjEwU3RyaW5nSW1wbDE3Z2V0RGF0YTE2U2xvd0Nhc2VFdgogX19aTkszV1RGMTBTdHJpbmdJbXBs
MTl1cGNvbnZlcnRDaGFyYWN0ZXJzRWpqCiBfX1pOSzNXVEYxMkF0b21pY1N0cmluZzVsb3dlckV2
Ci1fX1pOSzNXVEYxM0RlY2ltYWxOdW1iZXIxNXRvU3RyaW5nRGVjaW1hbEVQdGoKK19fWk5LM1dU
RjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdEZWNpbWFsSXRFRWpQVF9qCiBfX1pOSzNXVEYxM0Rl
Y2ltYWxOdW1iZXIxOXRvU3RyaW5nRXhwb25lbnRpYWxFUHRqCiBfX1pOSzNXVEYxM0RlY2ltYWxO
dW1iZXIyOGJ1ZmZlckxlbmd0aEZvclN0cmluZ0RlY2ltYWxFdgogX19aTkszV1RGMTNEZWNpbWFs
TnVtYmVyMzJidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbEV2CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IGI1OWJlMzhkOTcxMmI0MWViOTUyNmQ5
NDhmNDU5ZjdkYmI0NGYxOGQuLjAzYTEwYzIyNjRhODlmZjcwZWFmZDI2MzJhYjQ3ZDQ2MzhhZDYz
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC02NDks
NiArNjQ5LDcgQEAKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5oJywKICAgICAg
ICAgICAgICd3dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3
dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2Rl
L3F0NC9Vbmljb2RlUXQ0LmgnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNv
ZGVXaW5DRS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5D
RS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5v
cmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCBk
ODUxM2QwOTliZDU2ZDkwZGIzZmVkNjJjOTVkMDZlNzU1ZDZkYTYwLi44MzQxYjllYzQyYWJhMzVl
NWYzNmQwYTY4NmVlNTBiYzViOTMzNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLm9yZGVyCkBAIC0xMTI3LDcgKzExMjcsNyBAQCBfX1pOSzNKU0M3SlNBcnJheTEy
c3ViY2xhc3NEYXRhRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsMTZmaW5kSWdub3JpbmdDYXNlRVBL
Y2oKIF9fWk4zV1RGMTRudW1iZXJUb1N0cmluZ0VkUHQKIF9fWk4zV1RGNGR0b2FJTGIxRUxiMEVM
YjBFTGIxRUVFdlBjZGlSYlJpUmoKLV9fWk5LM1dURjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdE
ZWNpbWFsRVB0agorX19aTkszV1RGMTNEZWNpbWFsTnVtYmVyMTV0b1N0cmluZ0RlY2ltYWxJdEVF
alBUX2oKIF9fWk4zV1RGMTBTdHJpbmdJbXBsOHRvRG91YmxlRVBiUzFfCiBfX1pOM1dURjZWZWN0
b3JJakxtMTZFRTZyZXNpemVFbQogX19aTjNXVEZMN211bHRhZGRFUk5TXzZCaWdJbnRFaWkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWQ4YjNkZDU4ZDY2MmFhNDAxNzQwYzFmNTM4
OThiOTA3MjJjMmM0ZS4uODRiZDBlYTlkYjEyYmM3ZDY3MzZhMmRmNDFjNDE2NzMxMzhkODFjYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1ODIsNiArMTU4Miw3IEBACiAJCUY2
OTJBODg3MDI1NTU5N0QwMUZGNjBGNyAvKiBKU1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2OUU4NkMxMTRDNkU1NTEwMDJD
MkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IE51bWJlck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyog
TnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOdW1iZXJP
ZkNvcmVzLmg7IHBhdGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGOTgzNTJGQjE0RDIxN0E2MDBDMURDOTkgLyogVW5pY29kZUljdS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmljb2RlSWN1LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBMTVDMTYxMkIwMzAyODAwM0E1ODNBIC8qIENvbXBs
ZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxleC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGRTFCNDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGli
RXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZExpYkV4dHJhcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2Vj
dGlvbiAqLwpAQCAtMjY0MSw2ICsyNjQyLDcgQEAKIAkJRTE5NTY3OEUwOUU3Q0YxMjAwQjg5RDEz
IC8qIGljdSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Rjk4MzUyRkIxNEQyMTdBNjAwQzFEQzk5IC8qIFVuaWNvZGVJY3UuY3BwICovLAogCQkJCUUxQTg2
MkE4MEQ3RUJCNzYwMDFFQzZBQSAvKiBDb2xsYXRvcklDVS5jcHAgKi8sCiAJCQkJRTE5NTY3OEYw
OUU3Q0YxMjAwQjg5RDEzIC8qIFVuaWNvZGVJY3UuaCAqLywKIAkJCSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCBmYjkwYmNk
MTdlYTE0NTFlZTU0MjE0Zjg3YjVhODlhNTNmMTg3MzQ5Li43MTRhMmNiMmIzZDJmNTgyYTVmOTBk
YzZmYmVjYTIwNWZhNmI2ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJVaW50
MTZXaXRoRnJhY3Rpb24uaCIKICNpbmNsdWRlICJkdG9hLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9h
L2RvdWJsZS1jb252ZXJzaW9uLmg+CkBAIC00MCw2ICs0MSwxMCBAQCB1c2luZyBuYW1lc3BhY2Ug
V1RGOjpkb3VibGVfY29udmVyc2lvbjsKIC8vIFRvIGF2b2lkIGNvbmZsaWN0IHdpdGggV1RGOjpT
dHJpbmdCdWlsZGVyLgogdHlwZWRlZiBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWls
ZGVyIERvdWJsZUNvbnZlcnNpb25TdHJpbmdCdWlsZGVyOwogCisjaWYgVVNFKElDVV9VTklDT0RF
KSAmJiAhVUNPTkZJR19OT19GT1JNQVRUSU5HICYmIGRlZmluZWQoSUNVX1ZFUlNJT05fQVRfTEVB
U1QpICYmIElDVV9WRVJTSU9OX0FUX0xFQVNUKDQsIDQsIDApCisjaW5jbHVkZSA8dW5pY29kZS91
bnVtLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwpAQCAt
NTUsNiArNjAsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVy
UHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAKIG5hbWVzcGFjZSBKU0MgewogCisj
aWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19GT1JNQVRUSU5HICYmIGRlZmluZWQo
SUNVX1ZFUlNJT05fQVRfTEVBU1QpICYmIElDVV9WRVJTSU9OX0FUX0xFQVNUKDQsIDQsIDApCisK
K3N0YXRpYyBVTnVtYmVyRm9ybWF0KiBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworc3RhdGlj
IE11dGV4JiBjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpCit7CisgICAgQXRvbWljYWxseUlu
aXRpYWxpemVkU3RhdGljKE11dGV4JiwgbXV0ZXggPSAqbmV3IE11dGV4KTsKKyAgICByZXR1cm4g
bXV0ZXg7Cit9CisKK3N0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICBBU1NFUlQodi5pc051bWJlcigpKTsKKworICAgIExv
Y2tlcjxNdXRleD4gbG9jayhjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpKTsKKyAgICBVRXJy
b3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBVTnVtYmVyRm9ybWF0KiBuZiA9IDA7
CisgICAgaWYgKGNhY2hlZE51bWJlckZvcm1hdHRlcikgeworICAgICAgICBjb25zdCBjaGFyKiBj
YWNoZWROdW1iZXJGb3JtYXR0ZXJMb2NhbGUgPSB1bnVtX2dldExvY2FsZUJ5VHlwZShjYWNoZWRO
dW1iZXJGb3JtYXR0ZXIsIFVMT0NfUkVRVUVTVEVEX0xPQ0FMRSwgJnN0YXR1cyk7CisgICAgICAg
IEFTU0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7CisgICAgICAgIEFTU0VSVChjYWNoZWROdW1iZXJG
b3JtYXR0ZXJMb2NhbGUpOworCisgICAgICAgIGlmICghc3RyY21wKGNhY2hlZE51bWJlckZvcm1h
dHRlckxvY2FsZSwgY3VycmVudE51bWVyaWNMb2NhbGVJRCgpKSkKKyAgICAgICAgICAgIG5mID0g
Y2FjaGVkTnVtYmVyRm9ybWF0dGVyOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxv
Y2FsZSBjaGFuZ2VkLi4uIHdlJ2xsIG5lZWQgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgICAgICB1
bnVtX2Nsb3NlKGNhY2hlZE51bWJlckZvcm1hdHRlcik7CisgICAgICAgICAgICBjYWNoZWROdW1i
ZXJGb3JtYXR0ZXIgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFuZikgeworICAg
ICAgICBuZiA9IHVudW1fb3BlbihVTlVNX0RFRkFVTFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9j
YWxlSUQoKSwgMCwgJnN0YXR1cyk7CisgICAgICAgIGlmICghbmYgfHwgVV9GQUlMVVJFKHN0YXR1
cykpCisgICAgICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKyAgICAgICAgY2Fj
aGVkTnVtYmVyRm9ybWF0dGVyID0gbmY7CisgICAgfQorCisgICAgdW51bV9zZXRBdHRyaWJ1dGUo
bmYsIFVOVU1fTUFYX1NJR05JRklDQU5UX0RJR0lUUywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aCk7CisgICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fU0lHTklGSUNBTlRfRElH
SVRTX1VTRUQsIDEpOworCisgICAgTnVtYmVyVG9VU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBp
bnQzMl90IGxlbmd0aDsKKworICAgIGlmICh2LmlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90
IG51bSA9IHYuYXNJbnQzMigpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdChuZiwgbnVt
LCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGRvdWJsZSBudW07CisgICAgICAgIGlmICh2LmlzRG91Ymxl
KCkpCisgICAgICAgICAgICBudW0gPSB2LmFzRG91YmxlKCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG51bSA9IHYudG9OdW1iZXIoZXhlYyk7CisKKyAgICAgICAgRGVjaW1hbE51bWJlciBk
KG51bSk7CisgICAgICAgIGNoYXIgbnVtYmVyU3RyaW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZm
ZXJMZW5ndGhdOworICAgICAgICBsZW5ndGggPSBkLnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJp
bmcsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgpOworICAgICAgICBsZW5ndGggPSB1
bnVtX2Zvcm1hdERlY2ltYWwobmYsIG51bWJlclN0cmluZywgbGVuZ3RoLCBidWZmZXIsIFdURjo6
TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0KKworICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7
CisKKyAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBs
ZW5ndGgpKTsKK30KKworI2Vsc2UKKworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2Fs
ZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90
IGltcGxlbWVudGVkIHlldC4KKworICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisj
ZW5kaWYKKwogY29uc3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVt
YmVyIiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlw
ZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291
cmNlIGZvciBOdW1iZXJQcm90b3R5cGUubHV0LmgKQEAgLTQ3NCw3ICs1NTUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCks
IHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVP
ZihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0RlY2ltYWxOdW1iZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVt
YmVyLmNwcAppbmRleCA3MDMwNGUyZTVmNjMwZGFjMzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2NzgzLi5k
OWE3Yjk2NWZlODY5MzE5YjcwNWMxMjk2NGEzMWQ3NmY5NDhhZmQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTk5LDEzICs5OSwxNCBAQCB1bnNp
Z25lZCBEZWNpbWFsTnVtYmVyOjpidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNv
bnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9T
dHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdE
ZWNpbWFsKFQqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFT
U0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBidWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9y
U3RyaW5nRGVjaW1hbCgpKTsKIAogICAgIC8vIFNob3VsZCBhbHdheXMgYmUgYXQgbGVhc3Qgb25l
IGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQogICAgIEFTU0VSVChtX3ByZWNpc2lvbik7Ci0g
ICAgVUNoYXIqIG5leHQgPSBidWZmZXI7CisgICAgVCogbmV4dCA9IGJ1ZmZlcjsKIAogICAgIC8v
IGlmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwgcmVwcmVzZW50
YXRpb24gaXMgb2YgdGhlIGZvcm06CiAgICAgLy8gWzxzaWduPl0wLls8emVyb3M+XTxzaWduaWZp
Y2FuZD4KQEAgLTE1NSw2ICsxNTYsOSBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmlu
Z0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjbwogICAgIHJl
dHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit0ZW1wbGF0ZSB1bnNpZ25lZCBEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNv
bnN0OwordGVtcGxhdGUgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVD
aGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisKIHVuc2lnbmVkIERl
Y2ltYWxOdW1iZXI6OnRvU3RyaW5nRXhwb25lbnRpYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBi
dWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCmluZGV4IDYxZWZmY2RkM2RjNmZj
ZGQxMzUyZjYwMWM1NzVmNTViYWE1NDU0MGMuLmY0YjUxZDdjNjNmNWE5Y2U3YTRhNDg3ODc0OWVl
YTJkNDcyYzJlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1h
bE51bWJlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5o
CkBAIC04NCw3ICs4NCw4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWdu
ZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0
OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbChVQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgorICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2lt
YWwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OwogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJl
dHVybiBtX3NpZ247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKaW5kZXggNWYzMGQwODg5NjE1NzM2NzgzODMyMTZiOTA3NWY5ZWJk
MWQwOWEzYS4uZDRiYjk5NDNkOTUxNWUwMWI2ZjY2NDRhNGQ5ZWE1OGRlNWNiYzlmMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
QEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRo
cmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWluVGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1
bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSWN1LmNw
cAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzODg3ZWFkOGNmMDI4YTE2
MTc3ZjNlMDJiZDlhMWE1NmQ4OTFmYzc5Li5lZTRiYjFhYzYyMzcxMDBiMWVjOGYzNGM5OGYwNjhi
MzgxYmU2YTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTcsNiArNyw3IEBAIExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5n
UHRocmVhZHMuY3BwCiAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmlj
b2RlL2ljdS9Vbmljb2RlSWN1LmNwcAogKQogCiBJRiAoRU5BQkxFX0dMSUJfU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9Vbmljb2RlTWFjcm9z
RnJvbUlDVS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNy
b3NGcm9tSUNVLmgKaW5kZXggMDlhNzAzNmUzMzAyODY5MDE4MDFkMjQxZjdiZWZmZTI2YTNiNTA1
Yy4uYzBmZjNjYzMzNDczODhiOWZkZWJkNjYxNjRiNWNlNTRlOWI5YTAxYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNVLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9t
SUNVLmgKQEAgLTk4LDMgKzk4LDcgQEAKICAgICB9IFwKIH0KICNlbmRpZgorCisjZGVmaW5lIElD
VV9WRVJTSU9OIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSAqIDEwMDAwICsgVV9JQ1VfVkVSU0lP
Tl9NSU5PUl9OVU0gKiAxMDAgKyBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVNKQorI2RlZmlu
ZSBJQ1VfVkVSU0lPTl9BVF9MRUFTVChtYWpvciwgbWlub3IsIHBhdGNoKSAoSUNVX1ZFUlNJT04g
Pj0gKG1ham9yICogMTAwMDAgKyBtaW5vciAqIDEwMCArIHBhdGNoKSkKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODNmYWFjNzM3MmYwY2MzZTk3NzM4ZjJmNzRhZjA2ZDUwNTMyMWJkMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlj
dS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVW5pY29kZUljdS5oIgorCisj
aWYgVVNFKElDVV9VTklDT0RFKQorCisjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CisKK25hbWVz
cGFjZSBXVEYgeworbmFtZXNwYWNlIFVuaWNvZGUgeworCitjb25zdCBjaGFyKiBjdXJyZW50TnVt
ZXJpY0xvY2FsZUlEKCkKK3sKKyNpZiBPUyhEQVJXSU4pICYmIFVTRShDRikKKyAgICAvLyBNYWMg
T1MgWCBkb2Vzbid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwg
c28gSUNVIGRlZmF1bHQgZG9lc24ndCB3b3JrLgorICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4g
Y3VycmVudExvY2FsZShBZG9wdENGLCBDRkxvY2FsZUNvcHlDdXJyZW50KCkpOworICAgIENGU3Ry
aW5nUmVmIGxvY2FsZUlEID0gQ0ZMb2NhbGVHZXRJZGVudGlmaWVyKGN1cnJlbnRMb2NhbGUuZ2V0
KCkpOworCisgICAgcmV0dXJuIENGU3RyaW5nR2V0Q1N0cmluZ1B0cihsb2NhbGVJRCwgQ0ZTdHJp
bmdHZXRTeXN0ZW1FbmNvZGluZygpKTsKKyNlbHNlCisgICAgcmV0dXJuIHVsb2NfZ2V0RGVmYXVs
dCgpOworI2VuZGlmCit9CisKK30gfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2
ZWQ0NzVlZTc4YzZhY2Y2ZjYzZWRhYjBjOC4uMWYwYmI5YzdhNGI2NjZhYmM3YjZhZTk1NDVmNzMz
ZmExZDJjNDgzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKQEAgLTI5LDYgKzI5LDkgQEAKICNpbmNsdWRlIDx1bmljb2RlL3Vz
dHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3V0ZjE2Lmg+CiAKKyNkZWZpbmUgSUNVX1ZFUlNJ
T04gKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNICogMTAwMDAgKyBVX0lDVV9WRVJTSU9OX01JTk9S
X05VTSAqIDEwMCArIFVfSUNVX1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0pCisjZGVmaW5lIElDVV9W
RVJTSU9OX0FUX0xFQVNUKG1ham9yLCBtaW5vciwgcGF0Y2gpIChJQ1VfVkVSU0lPTiA+PSAobWFq
b3IgKiAxMDAwMCArIG1pbm9yICogMTAwICsgcGF0Y2gpKQorCiBuYW1lc3BhY2UgV1RGIHsKIG5h
bWVzcGFjZSBVbmljb2RlIHsKIApAQCAtMjMxLDYgKzIzNCwxMCBAQCBpbmxpbmUgaW50IHVtZW1j
YXNlY21wKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKICAgICByZXR1
cm4gdV9tZW1jYXNlY21wKGEsIGIsIGxlbiwgVV9GT0xEX0NBU0VfREVGQVVMVCk7CiB9CiAKK2Nv
bnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKTsKKwogfSB9CiAKK3VzaW5nIFdURjo6
VW5pY29kZTo6Y3VycmVudE51bWVyaWNMb2NhbGVJRDsKKwogI2VuZGlmIC8vIFdURl9VTklDT0RF
X0lDVV9ICmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMmQyMzc3MGEzM2QwMDRlNzBkMWFhOWE2ZjVkMjNmNmNhYmYzYjczNS4u
YWUwMzVkODUzMmM0YmM3ZDE3YzY2Yzg3YjY3N2JmYzllOWRiNjkxZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEyLTAxLTI4ICBFbGkgRmlkbGVyICA8ZWZpZGxlckByaW0uY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgdGVzdHMgYXJlIHF1
aXRlIG1pbmltYWwsIHNpbmNlIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gc2V0IHRoZQorICAgICAg
ICBudW1lcmljIGxvY2FsZSBpbiBEUlQuCisKKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xv
Y2FsZVN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChpc05vbkVtcHR5
U3RyaW5nKToKKwogMjAxMi0wMS0zMSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+
CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb24gY2hhbmdl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzIzNTdhNTZlZmMwMTdmZjQ2NDM4Yzc2N2NjZDY5
N2VmMjViODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10
b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitQQVNTIGlzTm9uRW1w
dHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBpc05vbkVtcHR5
U3RyaW5nKCgtMC4wKS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIGlzTm9uRW1wdHlT
dHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M4ZDE4ZGMyYjMx
MGE5MzExNmQ5N2VhZGFhYjQxYjVlMGMxZDdlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwKQEAgLTAsMCArMSwxMCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL251bWJlci10b0xvY2Fs
ZVN0cmluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDI2YzdiOWVmOWQyYzFmZWUwZTFkNTk4NTRhMDQxMGYyNDE2YzJiMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2Fs
ZVN0cmluZy5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGlzTm9uRW1wdHlTdHJpbmcocykK
K3sKKyAgICByZXR1cm4gdHlwZW9mIHMgPT0gInN0cmluZyIgJiYgL1teXHNdKy8udGVzdChzKTsK
K30KKworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5n
KCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3Ry
aW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKDEyMzQuNTY3KS50b0xv
Y2FsZVN0cmluZygpKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126881</attachid>
            <date>2012-02-13 18:20:58 -0800</date>
            <delta_ts>2012-02-14 09:18:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120213212056.patch</filename>
            <type>text/plain</type>
            <size>17926</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3Mzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDExNmYwMmYxODQxNjc0YjA1MTZkZjc0MWNmYzk0ODk3ZmU1MTljLi41NmZmYWMxYzc0MTE1MGE0
ZTExNDg0MDhiMTA2YTg0YmU0ODkxNTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0wMi0xMyAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FjaGVkTnVtYmVyRm9y
bWF0dGVyTXV0ZXgpOiBhZGRlZAorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBh
ZGRlZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAg
ICAgICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwpOiBtYWtlIHRoaXMgYSB0ZW1wbGF0ZSB0byBzdXBwb3J0IGEgY2hh
ciogdmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwOiBhZGRlZAorICAg
ICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6IGFkZCBJQ1VfVkVSU0lPTl9BVF9M
RUFTVCBtYWNybyBhbmQgbnVtZXJpYyBsb2NhbGUgYWNjZXNzb3IKKwogMjAxMi0wMi0xMCAgUm9s
YW5kIFRha2FjcyAgPHRha2Fjcy5yb2xhbmRAc3R1ZC51LXN6ZWdlZC5odT4KIAogICAgICAgICBb
UXRdIEdDIHNob3VsZCBiZSBwYXJhbGxlbCBvbiBRdCBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA3OWM2ODMyNmQxMTg3ZWE4NzExZGQ1ZjQ0
Mzk0NWE1MTNhODdjZmFjLi5hYWJkMWJkNmM1YTIyZDY0NGVmZjQwYzg1YmNkZDQ1ZDY3NTkzOGY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNzc2LDYg
Kzc3Niw3IEBAIGVuZGlmCiBpZiBVU0VfSUNVX1VOSUNPREUKIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJ
Q1UuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJ
Q1UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJ
Y3UuaAogZW5kaWYgIyBVU0VfSUNVX1VOSUNPREUKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZ3lwaQppbmRleCBiNTliZTM4ZDk3MTJiNDFlYjk1MjZkOTQ4ZjQ1OWY3ZGJi
NDRmMThkLi5hMTIxN2Y4NGE1ZmJjOTE2OGE4YzI4NTMzNGI2YmRlZTJjNDM2YTJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAtNjQ5LDYgKzY0OSw3IEBA
CiAgICAgICAgICAgICAnd3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5jcHAnLAogICAgICAg
ICAgICAgJ3d0Zi91bmljb2RlL2dsaWIvVW5pY29kZUdMaWIuaCcsCiAgICAgICAgICAgICAnd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCcsCisgICAgICAgICAgICAnd3RmL3VuaWNvZGUv
aWN1L1VuaWNvZGVJQ1UuY3BwJywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9xdDQvVW5pY29k
ZVF0NC5oJywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS93aW5jZS9Vbmljb2RlV2luQ0UuY3Bw
JywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS93aW5jZS9Vbmljb2RlV2luQ0UuaCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKaW5kZXggNmZiY2E3ZmNlOWI2
ZGE1MTU3MmYxMWRhZWYyMWNkNWEzNDc3YTZkZS4uOGNjNTU5ZDA4YmQxZWIwZDNmMmExYjg4ZThi
NWY2NGM2NmJmYTA0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5v
cmRlcgpAQCAtMTEyNyw3ICsxMTI3LDcgQEAgX19aTkszSlNDN0pTQXJyYXkxMnN1YmNsYXNzRGF0
YUV2CiBfX1pOM1dURjEwU3RyaW5nSW1wbDE2ZmluZElnbm9yaW5nQ2FzZUVQS2NqCiBfX1pOM1dU
RjE0bnVtYmVyVG9TdHJpbmdFZFB0CiBfX1pOM1dURjRkdG9hSUxiMUVMYjBFTGIwRUxiMUVFRXZQ
Y2RpUmJSaVJqCi1fX1pOSzNXVEYxM0RlY2ltYWxOdW1iZXIxNXRvU3RyaW5nRGVjaW1hbEVQdGoK
K19fWk5LM1dURjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdEZWNpbWFsSXRFRWpQVF9qCiBfX1pO
M1dURjEwU3RyaW5nSW1wbDh0b0RvdWJsZUVQYlMxXwogX19aTjNXVEY2VmVjdG9ySWpMbTE2RUU2
cmVzaXplRW0KIF9fWk4zV1RGTDdtdWx0YWRkRVJOU182QmlnSW50RWlpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDk5N2IwYmJmNDE0MDY0NThmNGRlZTdiNzVkNDYxMDhjZGRjNTZj
YmQuLmY4MDY1NDJiZTE0ZjM2YTRjZmQ5ZmUwNDU3MmU2ODQzYmNjZjUxZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTg3LDYgKzE1ODcsNyBAQAogCQlGNjkyQTg4NzAyNTU1
OTdEMDFGRjYwRjcgLyogSlNWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQlGNjlFODZDMTE0QzZFNTUxMDAyQzJDNjIgLyogTnVt
YmVyT2ZDb3Jlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOdW1i
ZXJPZkNvcmVzLmNwcDsgcGF0aCA9IHd0Zi9OdW1iZXJPZkNvcmVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjY5RTg2QzIxNEM2RTU1MTAwMkMyQzYyIC8qIE51bWJlck9mQ29y
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTnVtYmVyT2ZDb3Jlcy5oOyBw
YXRoID0gd3RmL051bWJlck9mQ29yZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Rjk1ODdCNzAxNERDNzk5NzAwNUZFQkQ4IC8qIFVuaWNvZGVJQ1UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pY29kZUlDVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZEQTE1QzE2MTJCMDMwMjgwMDNBNTgzQSAvKiBDb21wbGV4LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBsZXguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkUxQjQ0NzkwRUNDRDczQjAwNEY0REQxIC8qIFN0ZExpYkV4dHJhcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRMaWJFeHRyYXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KQEAg
LTI2NDcsNiArMjY0OCw3IEBACiAJCUUxOTU2NzhFMDlFN0NGMTIwMEI4OUQxMyAvKiBpY3UgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY5NTg3QjcwMTRE
Qzc5OTcwMDVGRUJEOCAvKiBVbmljb2RlSUNVLmNwcCAqLywKIAkJCQlFMUE4NjJBODBEN0VCQjc2
MDAxRUM2QUEgLyogQ29sbGF0b3JJQ1UuY3BwICovLAogCQkJCUUxOTU2NzhGMDlFN0NGMTIwMEI4
OUQxMyAvKiBVbmljb2RlSWN1LmggKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggZmI5MGJjZDE3ZWExNDUxZWU1
NDIxNGY4N2I1YTg5YTUzZjE4NzM0OS4uNWQ3MTJlYTQ2MmQyNjJhYTcwOTBhMTMzZmRjYjlkMzI2
NzBmZDE3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVWludDE2V2l0aEZyYWN0
aW9uLmgiCiAjaW5jbHVkZSAiZHRvYS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cisj
aW5jbHVkZSA8d3RmL0RlY2ltYWxOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZHRvYS9kb3VibGUtY29u
dmVyc2lvbi5oPgpAQCAtNDAsNiArNDEsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjo6ZG91Ymxl
X2NvbnZlcnNpb247CiAvLyBUbyBhdm9pZCBjb25mbGljdCB3aXRoIFdURjo6U3RyaW5nQnVpbGRl
ci4KIHR5cGVkZWYgV1RGOjpkb3VibGVfY29udmVyc2lvbjo6U3RyaW5nQnVpbGRlciBEb3VibGVD
b252ZXJzaW9uU3RyaW5nQnVpbGRlcjsKIAorI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05G
SUdfTk9fRk9STUFUVElORyAmJiBkZWZpbmVkKElDVV9WRVJTSU9OX0FUX0xFQVNUKSAmJiBJQ1Vf
VkVSU0lPTl9BVF9MRUFTVCg0LCA0LCAwKQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9S
TUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVtLmg+CisjZWxzZQorI2RlZmluZSBVU0Vf
SUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKEV4ZWNTdGF0ZSopOwpAQCAtNTUsNiArNjMsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAK
IG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwor
c3RhdGljIFVOdW1iZXJGb3JtYXQqIGNhY2hlZE51bWJlckZvcm1hdHRlciA9IDA7CitzdGF0aWMg
TXV0ZXgmIGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBt
dXRleDsKK30KKworc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2KQoreworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOworCisgICAgTG9j
a2VyPE11dGV4PiBsb2NrKGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkpOworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIFVOdW1iZXJGb3JtYXQqIG5mID0gMDsK
KyAgICBpZiAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGNh
Y2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSA9IHVudW1fZ2V0TG9jYWxlQnlUeXBlKGNhY2hlZE51
bWJlckZvcm1hdHRlciwgVUxPQ19SRVFVRVNURURfTE9DQUxFLCAmc3RhdHVzKTsKKyAgICAgICAg
QVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAgICAgQVNTRVJUKGNhY2hlZE51bWJlckZv
cm1hdHRlckxvY2FsZSk7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoY2FjaGVkTnVtYmVyRm9ybWF0
dGVyTG9jYWxlLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkpKQorICAgICAgICAgICAgbmYgPSBj
YWNoZWROdW1iZXJGb3JtYXR0ZXI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbG9j
YWxlIGNoYW5nZWQuLi4gd2UnbGwgbmVlZCBhIG5ldyBmb3JtYXR0ZXIKKyAgICAgICAgICAgIHVu
dW1fY2xvc2UoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKTsKKyAgICAgICAgICAgIGNhY2hlZE51bWJl
ckZvcm1hdHRlciA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW5mKSB7CisgICAg
ICAgIG5mID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwgMCwgMCwgY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKCFuZiB8fCBVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworICAgICAgICBjYWNo
ZWROdW1iZXJGb3JtYXR0ZXIgPSBuZjsKKyAgICB9CisKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShu
ZiwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRTLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVy
TGVuZ3RoKTsKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShuZiwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJ
VFNfVVNFRCwgMSk7CisKKyAgICBOdW1iZXJUb1VTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIGlu
dDMyX3QgbGVuZ3RoOworCisgICAgaWYgKHYuaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3Qg
bnVtID0gdi5hc0ludDMyKCk7CisgICAgICAgIGxlbmd0aCA9IHVudW1fZm9ybWF0KG5mLCBudW0s
IGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bTsKKyAgICAgICAgaWYgKHYuaXNEb3VibGUo
KSkKKyAgICAgICAgICAgIG51bSA9IHYuYXNEb3VibGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbnVtID0gdi50b051bWJlcihleGVjKTsKKworICAgICAgICBEZWNpbWFsTnVtYmVyIGQo
bnVtKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aF07CisgICAgICAgIGxlbmd0aCA9IGQudG9TdHJpbmdEZWNpbWFsKG51bWJlclN0cmlu
ZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IHVu
dW1fZm9ybWF0RGVjaW1hbChuZiwgbnVtYmVyU3RyaW5nLCBsZW5ndGgsIGJ1ZmZlciwgV1RGOjpO
dW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfQorCisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsK
KworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxl
TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2KQoreworICAgIC8vIEZJWE1FOiBOb3Qg
aW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0dXJuIHYudG9TdHJpbmcoZXhlYyk7Cit9CisKKyNl
bmRpZgorCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1i
ZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBl
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVyUHJvdG90eXBlKSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAtNDc0LDcgKzU1OCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwg
eCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1iZXIoZXhlYywganNOdW1iZXIoeCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RGVjaW1hbE51bWJlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1i
ZXIuY3BwCmluZGV4IDcwMzA0ZTJlNWY2MzBkYWMzMjBmNTRmNzhmZjdmNzUyN2FkMDY3ODMuLmI5
YzUwZjQ1YWExYjdkMTgxNGVjYzUxZjU4MmJhYjljOTg2ZDU3YTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcApAQCAtOTksMTMgKzk5LDE0IEBAIHVuc2ln
bmVkIERlY2ltYWxOdW1iZXI6OmJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkgY29u
c3QKICAgICByZXR1cm4gbGVuZ3RoOwogfQogCi11bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0
cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0Rl
Y2ltYWwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNT
RVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JT
dHJpbmdEZWNpbWFsKCkpOwogCiAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBhdCBsZWFzdCBvbmUg
ZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCiAgICAgQVNTRVJUKG1fcHJlY2lzaW9uKTsKLSAg
ICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKyAgICBUKiBuZXh0ID0gYnVmZmVyOwogCiAgICAgLy8g
aWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlIHRoZSBudW1iZXIgZGVjaW1hbCByZXByZXNlbnRh
dGlvbiBpcyBvZiB0aGUgZm9ybToKICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJvcz5dPHNpZ25pZmlj
YW5kPgpAQCAtMTU1LDYgKzE1Niw4IEBAIHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5n
RGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvCiAgICAgcmV0
dXJuIG5leHQgLSBidWZmZXI7CiB9CiAKK3RlbXBsYXRlIHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6
OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNv
bnN0OworCiB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5V
U0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4
cG9uZW50aWFsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNp
bWFsTnVtYmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaApp
bmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1YmFhNTQ1NDBjLi5mNGI1MWQ3YzYz
ZjVhOWNlN2E0YTQ4Nzg3NDllZWEyZDQ3MmMyZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0RlY2ltYWxOdW1iZXIuaApAQCAtODQsNyArODQsOCBAQCBwdWJsaWM6CiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aEZvclN0cmluZ0RlY2ltYWwoKSBjb25z
dDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5n
RXhwb25lbnRpYWwoKSBjb25zdDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0
b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5z
aWduZWQgdG9TdHJpbmdEZWNpbWFsKFQqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBj
b25zdDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdFeHBvbmVudGlh
bChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OwogCiAgICAgYm9v
bCBzaWduKCkgY29uc3QgeyByZXR1cm4gbV9zaWduOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IDVmMzBkMDg4OTYxNTcz
Njc4MzgzMjE2YjkwNzVmOWViZDFkMDlhM2EuLjFhZGU4NDEzNzdiNGIwOGYwYWRkOWQ0OGFiMGE4
ZDNhNzZhNjQ0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlCkBAIC01LDYgKzUsNyBAQCBMSVNUKEFQUEVORCBXVEZfU09VUkNF
UwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogICAgIGJsYWNrYmVycnkvTWFpblRocmVhZEJs
YWNrQmVycnkuY3BwCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgdW5pY29k
ZS9pY3UvVW5pY29kZUlDVS5jcHAKICkKIAogTElTVChJTlNFUlQgV1RGX0lOQ0xVREVfRElSRUNU
T1JJRVMgMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUVm
bC5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggMzg4N2VhZDhjZjAyOGExNjE3N2YzZTAyYmQ5YTFhNTZkODkxZmM3OS4uY2I5NDgwZGE1YWM4
MjU3NGI5ZDc0N2Y0Nzc4NDM4ZWMyY2I3ZmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03LDYgKzcsNyBAQCBMSVNUKEFQUEVORCBXVEZfU09V
UkNFUwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0
b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAKICkKIAogSUYgKEVOQUJM
RV9HTElCX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3Vu
aWNvZGUvVW5pY29kZU1hY3Jvc0Zyb21JQ1UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dW5pY29kZS9Vbmljb2RlTWFjcm9zRnJvbUlDVS5oCmluZGV4IDA5YTcwMzZlMzMwMjg2OTAxODAx
ZDI0MWY3YmVmZmUyNmEzYjUwNWMuLmM5YjZjZDYxMDRjMjBlNmI0NmZiYzViZmQ4ZDA1MGQ0OWYy
MmIyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9Vbmlj
b2RlTWFjcm9zRnJvbUlDVS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29k
ZS9Vbmljb2RlTWFjcm9zRnJvbUlDVS5oCkBAIC05OCwzICs5OCw0IEBACiAgICAgfSBcCiB9CiAj
ZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2lj
dS9Vbmljb2RlSUNVLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3Uv
VW5pY29kZUlDVS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAxMTQ1ZTY4Y2MxYmM4ZmM2OWEwNWI3ODVmYWUy
YzgzOWZkYWJlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVW5pY29kZUljdS5oIgorCisjaWYgVVNFKElDVV9VTklDT0RFKQorCisjaW5jbHVkZSA8dW5p
Y29kZS91bG9jLmg+CisKK25hbWVzcGFjZSBXVEYgeworbmFtZXNwYWNlIFVuaWNvZGUgeworCitj
b25zdCBjaGFyKiBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkKK3sKKyNpZiBPUyhEQVJXSU4pICYm
IFVTRShDRikKKyAgICAvLyBNYWMgT1MgWCBkb2Vzbid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRj
aCB1c2VyLXNlbGVjdGVkIG9uZSwgc28gSUNVIGRlZmF1bHQgZG9lc24ndCB3b3JrLgorI2Vycm9y
IE5lZWQgYSB3YXkgdG8gZ2V0IHRoZSBudW1lcmljIGxvY2FsZSBvbiBPU1gvSU9TCisjZWxzZQor
ICAgIHJldHVybiB1bG9jX2dldERlZmF1bHQoKTsKKyNlbmRpZgorfQorCit9IH0KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNv
ZGVJY3UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlj
dS5oCmluZGV4IGZlNTI0YjJhMmRhNDgwNmVkNDc1ZWU3OGM2YWNmNmY2M2VkYWIwYzguLjFmMGJi
OWM3YTRiNjY2YWJjN2I2YWU5NTQ1ZjczM2ZhMWQyYzQ4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCkBAIC0yOSw2ICsyOSw5
IEBACiAjaW5jbHVkZSA8dW5pY29kZS91c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91dGYx
Ni5oPgogCisjZGVmaW5lIElDVV9WRVJTSU9OIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSAqIDEw
MDAwICsgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gKiAxMDAgKyBVX0lDVV9WRVJTSU9OX1BBVENI
TEVWRUxfTlVNKQorI2RlZmluZSBJQ1VfVkVSU0lPTl9BVF9MRUFTVChtYWpvciwgbWlub3IsIHBh
dGNoKSAoSUNVX1ZFUlNJT04gPj0gKG1ham9yICogMTAwMDAgKyBtaW5vciAqIDEwMCArIHBhdGNo
KSkKKwogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3BhY2UgVW5pY29kZSB7CiAKQEAgLTIzMSw2ICsy
MzQsMTAgQEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3QgVUNo
YXIqIGIsIGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVfRk9M
RF9DQVNFX0RFRkFVTFQpOwogfQogCitjb25zdCBjaGFyKiBjdXJyZW50TnVtZXJpY0xvY2FsZUlE
KCk7CisKIH0gfQogCit1c2luZyBXVEY6OlVuaWNvZGU6OmN1cnJlbnROdW1lcmljTG9jYWxlSUQ7
CisKICNlbmRpZiAvLyBXVEZfVU5JQ09ERV9JQ1VfSApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEwMjdjMzk5MzhiMWQ5NGVh
NjBjYzA5ZjU0MWZkNzk2ZDA2YTc2OTQuLmZiOGQ2ZTU5M2JhNWE0MTUxNzAyYzkxODJjM2MzNjU0
ODcwOThmNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMS0yOCAgRWxpIEZpZGxlciAg
PGVmaWRsZXJAcmltLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3Ry
aW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZXNlIHRlc3RzIGFyZSBxdWl0ZSBtaW5pbWFsLCBzaW5jZSB3ZSBkb24ndCBoYXZl
IGEgd2F5IHRvIHNldCB0aGUKKyAgICAgICAgbnVtZXJpYyBsb2NhbGUgaW4gRFJULgorCisgICAg
ICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanM6IEFk
ZGVkLgorICAgICAgICAoaXNOb25FbXB0eVN0cmluZyk6CisKIDIwMTItMDItMTAgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGlt
cGxlbWVudCB1bmRvIGZvciBzZXRPdXRlckhUTUwgdmlhIHVuZG8taW5nIG5lc3RlZCBwcmltaXRp
dmUgY29tbWFuZHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xv
Y2FsZVN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xv
Y2FsZVN0cmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM3MjM1N2E1NmVmYzAxN2ZmNDY0
MzhjNzY3Y2NkNjk3ZWYyNWI4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
anMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BB
U1MgaXNOb25FbXB0eVN0cmluZygoMC4wKS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNT
IGlzTm9uRW1wdHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1Mg
aXNOb25FbXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YzhkMThkYzJiMzEwYTkzMTE2ZDk3ZWFkYWFiNDFiNWUwYzFkN2UyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApAQCAtMCww
ICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVt
YmVyLXRvTG9jYWxlU3RyaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmlu
Zy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MjZjN2I5ZWY5ZDJjMWZlZTBlMWQ1OTg1NGEwNDEwZjI0MTZjMmIx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVt
YmVyLXRvTG9jYWxlU3RyaW5nLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gaXNOb25FbXB0
eVN0cmluZyhzKQoreworICAgIHJldHVybiB0eXBlb2YgcyA9PSAic3RyaW5nIiAmJiAvW15cc10r
Ly50ZXN0KHMpOworfQorCitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9M
b2NhbGVTdHJpbmcoKSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoLTAuMCku
dG9Mb2NhbGVTdHJpbmcoKSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMTIz
NC41NjcpLnRvTG9jYWxlU3RyaW5nKCkpIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126987</attachid>
            <date>2012-02-14 09:18:23 -0800</date>
            <delta_ts>2012-02-15 11:39:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120214121821.patch</filename>
            <type>text/plain</type>
            <size>17828</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODU2Yzg4ZWQ1MDExMjIwMmYwOGRhMDA2ZWU4MWNmNDdhOGI1ZDgxLi4wYWE2OGRmZTU2ODk4ZWVi
YmI5ZjM2NDI3ZGQ3YzZhNTlkMThiNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0wMi0xMyAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FjaGVkTnVtYmVyRm9y
bWF0dGVyTXV0ZXgpOiBhZGRlZAorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBh
ZGRlZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAg
ICAgICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwpOiBtYWtlIHRoaXMgYSB0ZW1wbGF0ZSB0byBzdXBwb3J0IGEgY2hh
ciogdmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwOiBhZGRlZAorICAg
ICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6IGFkZCBJQ1VfVkVSU0lPTl9BVF9M
RUFTVCBtYWNybyBhbmQgbnVtZXJpYyBsb2NhbGUgYWNjZXNzb3IKKwogMjAxMi0wMi0xNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBzdHJlYW0gQW5kcm9pZCdz
IGFkZGl0aW9ucyB0byBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDZmMWIzYWVkMDhhZTY0NmU2ZGExZGY0MzBkOWE2NjY1MWE0ZjhhODIu
LjljMDJhMTkxYmM4MGIxYTY3MTJjZGE3ZDY1NjQ2NGY4NzdhNDg5NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC03ODIsNiArNzgyLDcgQEAgZW5kaWYK
IGlmIFVTRV9JQ1VfVU5JQ09ERQogamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCiBlbmRpZiAjIFVT
RV9JQ1VfVU5JQ09ERQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CmluZGV4IGZhMTMwNmQ1NDU5NGRjMDZjNTI1Y2ZhNjJlMzJhMDhlOTFjZjc0NTYuLmY3M2NhMWZi
ZjRkM2VmNDc0YzM0Yjc0YzAyODM4ZGE4ODVmMjkxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC02NTIsNiArNjUyLDcgQEAKICAgICAgICAgICAgICd3
dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmNwcCcsCiAgICAgICAgICAgICAnd3RmL3VuaWNv
ZGUvZ2xpYi9Vbmljb2RlR0xpYi5oJywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvQ29s
bGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5j
cHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgnLAogICAgICAg
ICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5jcHAnLAogICAgICAgICAgICAg
J3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCA2ZmJjYTdmY2U5YjZkYTUxNTcyZjExZGFlZjIx
Y2Q1YTM0NzdhNmRlLi44Y2M1NTlkMDhiZDFlYjBkM2YyYTFiODhlOGI1ZjY0YzY2YmZhMDQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBAIC0xMTI3LDcg
KzExMjcsNyBAQCBfX1pOSzNKU0M3SlNBcnJheTEyc3ViY2xhc3NEYXRhRXYKIF9fWk4zV1RGMTBT
dHJpbmdJbXBsMTZmaW5kSWdub3JpbmdDYXNlRVBLY2oKIF9fWk4zV1RGMTRudW1iZXJUb1N0cmlu
Z0VkUHQKIF9fWk4zV1RGNGR0b2FJTGIxRUxiMEVMYjBFTGIxRUVFdlBjZGlSYlJpUmoKLV9fWk5L
M1dURjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdEZWNpbWFsRVB0agorX19aTkszV1RGMTNEZWNp
bWFsTnVtYmVyMTV0b1N0cmluZ0RlY2ltYWxJdEVFalBUX2oKIF9fWk4zV1RGMTBTdHJpbmdJbXBs
OHRvRG91YmxlRVBiUzFfCiBfX1pOM1dURjZWZWN0b3JJakxtMTZFRTZyZXNpemVFbQogX19aTjNX
VEZMN211bHRhZGRFUk5TXzZCaWdJbnRFaWkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZmI5OThkZjY4ZDVmYWQ2ODQxYjYxMzU5Y2JmZTY4NmRhZDI3NDE4Mi4uNTY1ZmE3ODM4ZjRm
NjkyMDA4NzJiY2NjOTk4ZmM3ZGZkZjViYjY5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE2MjcsNiArMTYyNyw3IEBACiAJCUY2OTJBODg3MDI1NTU5N0QwMUZGNjBGNyAvKiBK
U1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CiAJCUY2OUU4NkMxMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE51bWJlck9mQ29yZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyog
TnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOdW1iZXJP
ZkNvcmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5NTg3QjcwMTREQzc5OTcw
MDVGRUJEOCAvKiBVbmljb2RlSUNVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVuaWNvZGVJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREEx
NUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb21wbGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMUI0
NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0yNzMxLDYgKzI3MzIsNyBA
QAogCQlFMTk1Njc4RTA5RTdDRjEyMDBCODlEMTMgLyogaWN1ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGOTU4N0I3MDE0REM3OTk3MDA1RkVCRDggLyog
VW5pY29kZUlDVS5jcHAgKi8sCiAJCQkJRTFBODYyQTgwRDdFQkI3NjAwMUVDNkFBIC8qIENvbGxh
dG9ySUNVLmNwcCAqLywKIAkJCQlFMTk1Njc4RjA5RTdDRjEyMDBCODlEMTMgLyogVW5pY29kZUlj
dS5oICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwCmluZGV4IGZiOTBiY2QxN2VhMTQ1MWVlNTQyMTRmODdiNWE4OWE1M2Yx
ODczNDkuLjVkNzEyZWE0NjJkMjYyYWE3MDkwYTEzM2ZkY2I5ZDMyNjcwZmQxNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlVpbnQxNldpdGhGcmFjdGlvbi5oIgogI2luY2x1ZGUg
ImR0b2EuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNp
bWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4KQEAgLTQw
LDYgKzQxLDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogLy8g
VG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBXVEY6OlN0cmluZ0J1aWxkZXIuCiB0eXBlZGVmIFdURjo6
ZG91YmxlX2NvbnZlcnNpb246OlN0cmluZ0J1aWxkZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1
aWxkZXI7CiAKKyNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcg
JiYgZGVmaW5lZChJQ1VfVkVSU0lPTl9BVF9MRUFTVCkgJiYgSUNVX1ZFUlNJT05fQVRfTEVBU1Qo
NCwgNCwgMCkKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMQorI2luY2x1
ZGUgPHVuaWNvZGUvdW51bS5oPgorI2Vsc2UKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZP
Uk1BVFRJTkcgMAorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsK
QEAgLTU1LDYgKzYzLDgyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51
bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsK
IAorI2lmIFVTRV9JQ1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HCisKK3N0YXRpYyBVTnVtYmVyRm9y
bWF0KiBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworc3RhdGljIE11dGV4JiBjYWNoZWROdW1i
ZXJGb3JtYXR0ZXJNdXRleCgpCit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKE11
dGV4JiwgbXV0ZXggPSAqbmV3IE11dGV4KTsKKyAgICByZXR1cm4gbXV0ZXg7Cit9CisKK3N0YXRp
YyBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikK
K3sKKyAgICBBU1NFUlQodi5pc051bWJlcigpKTsKKworICAgIExvY2tlcjxNdXRleD4gbG9jayhj
YWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVf
WkVST19FUlJPUjsKKyAgICBVTnVtYmVyRm9ybWF0KiBuZiA9IDA7CisgICAgaWYgKGNhY2hlZE51
bWJlckZvcm1hdHRlcikgeworICAgICAgICBjb25zdCBjaGFyKiBjYWNoZWROdW1iZXJGb3JtYXR0
ZXJMb2NhbGUgPSB1bnVtX2dldExvY2FsZUJ5VHlwZShjYWNoZWROdW1iZXJGb3JtYXR0ZXIsIFVM
T0NfUkVRVUVTVEVEX0xPQ0FMRSwgJnN0YXR1cyk7CisgICAgICAgIEFTU0VSVChVX1NVQ0NFU1Mo
c3RhdHVzKSk7CisgICAgICAgIEFTU0VSVChjYWNoZWROdW1iZXJGb3JtYXR0ZXJMb2NhbGUpOwor
CisgICAgICAgIGlmICghc3RyY21wKGNhY2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSwgY3VycmVu
dE51bWVyaWNMb2NhbGVJRCgpKSkKKyAgICAgICAgICAgIG5mID0gY2FjaGVkTnVtYmVyRm9ybWF0
dGVyOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxvY2FsZSBjaGFuZ2VkLi4uIHdl
J2xsIG5lZWQgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgICAgICB1bnVtX2Nsb3NlKGNhY2hlZE51
bWJlckZvcm1hdHRlcik7CisgICAgICAgICAgICBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOwor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFuZikgeworICAgICAgICBuZiA9IHVudW1fb3Bl
bihVTlVNX0RFRkFVTFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKSwgMCwgJnN0YXR1
cyk7CisgICAgICAgIGlmICghbmYgfHwgVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgICAgICBy
ZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKyAgICAgICAgY2FjaGVkTnVtYmVyRm9ybWF0dGVy
ID0gbmY7CisgICAgfQorCisgICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fTUFYX1NJR05J
RklDQU5UX0RJR0lUUywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgdW51
bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fU0lHTklGSUNBTlRfRElHSVRTX1VTRUQsIDEpOworCisg
ICAgTnVtYmVyVG9VU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBpbnQzMl90IGxlbmd0aDsKKwor
ICAgIGlmICh2LmlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90IG51bSA9IHYuYXNJbnQzMigp
OworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdChuZiwgbnVtLCBidWZmZXIsIFdURjo6TnVt
YmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGRvdWJsZSBudW07CisgICAgICAgIGlmICh2LmlzRG91YmxlKCkpCisgICAgICAgICAgICBu
dW0gPSB2LmFzRG91YmxlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG51bSA9IHYudG9O
dW1iZXIoZXhlYyk7CisKKyAgICAgICAgRGVjaW1hbE51bWJlciBkKG51bSk7CisgICAgICAgIGNo
YXIgbnVtYmVyU3RyaW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGhdOworICAgICAg
ICBsZW5ndGggPSBkLnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJpbmcsIFdURjo6TnVtYmVyVG9T
dHJpbmdCdWZmZXJMZW5ndGgpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdERlY2ltYWwo
bmYsIG51bWJlclN0cmluZywgbGVuZ3RoLCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZm
ZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0KKworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICByZXR1cm4ganNO
b250cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKK30KKworI2Vs
c2UKKworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4K
KworICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisjZW5kaWYKKwogY29uc3QgQ2xh
c3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJlck9iamVj
dDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1iZXJQcm90
b3R5cGUubHV0LmgKQEAgLTQ3NCw3ICs1NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBp
ZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Zm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcAppbmRleCA3MDMw
NGUyZTVmNjMwZGFjMzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2NzgzLi5iOWM1MGY0NWFhMWI3ZDE4MTRl
Y2M1MWY1ODJiYWI5Yzk4NmQ1N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVj
aW1hbE51bWJlci5jcHAKQEAgLTk5LDEzICs5OSwxNCBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVy
OjpidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0CiAgICAgcmV0dXJuIGxl
bmd0aDsKIH0KIAotdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVDaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPgordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFQqIGJ1ZmZlciwg
dW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVy
TGVuZ3RoLCBidWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpKTsK
IAogICAgIC8vIFNob3VsZCBhbHdheXMgYmUgYXQgbGVhc3Qgb25lIGRpZ2l0IHRvIGFkZCB0byB0
aGUgc3RyaW5nIQogICAgIEFTU0VSVChtX3ByZWNpc2lvbik7Ci0gICAgVUNoYXIqIG5leHQgPSBi
dWZmZXI7CisgICAgVCogbmV4dCA9IGJ1ZmZlcjsKIAogICAgIC8vIGlmIHRoZSBleHBvbmVudCBp
cyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwgcmVwcmVzZW50YXRpb24gaXMgb2YgdGhlIGZv
cm06CiAgICAgLy8gWzxzaWduPl0wLls8emVyb3M+XTxzaWduaWZpY2FuZD4KQEAgLTE1NSw2ICsx
NTYsOCBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1
ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVy
OwogfQogCit0ZW1wbGF0ZSB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwo
VUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogdW5zaWduZWQg
RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlhbChVQ2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgs
IGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmgKaW5kZXggNjFlZmZjZGQzZGM2
ZmNkZDEzNTJmNjAxYzU3NWY1NWJhYTU0NTQwYy4uZjRiNTFkN2M2M2Y1YTljZTdhNGE0ODc4NzQ5
ZWVhMmQ0NzJjMmU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNp
bWFsTnVtYmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVy
LmgKQEAgLTg0LDcgKzg0LDggQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNp
Z25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkgY29uc3Q7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkgY29u
c3Q7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKFVD
aGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVj
aW1hbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRXhwb25lbnRpYWwoVUNoYXIqIGJ1ZmZlciwg
dW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKIAogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2lnbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtQmxhY2tCZXJyeS5jbWFrZQppbmRleCA1ZjMwZDA4ODk2MTU3MzY3ODM4MzIxNmI5MDc1Zjll
YmQxZDA5YTNhLi4xYWRlODQxMzc3YjRiMDhmMGFkZDlkNDhhYjBhOGQzYTc2YTY0NGQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZQpAQCAtNSw2ICs1LDcgQEAgTElTVChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICBUaHJlYWRpbmdQ
dGhyZWFkcy5jcHAKICAgICBibGFja2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAogICAg
IHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorICAgIHVuaWNvZGUvaWN1L1VuaWNvZGVJQ1Uu
Y3BwCiApCiAKIExJU1QoSU5TRVJUIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTIDAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDFhMTNkYmJhMzU1ODRl
MDU2YzQ5MjkxZTM4N2EzMjI1NzEwZDEzMDguLmUzZjdmZGQ3N2E2NzUwMDk0Y2U1M2E3N2M5OTdk
NzU5ZTM1ODE4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm1FZmwuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZQpAQCAtOSw2ICs5LDcgQEAgTElTVChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICBUaHJlYWRp
bmdQdGhyZWFkcy5jcHAKIAogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorICAgIHVu
aWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCiApCiAKIExJU1QoQVBQRU5EIFdURl9MSUJSQVJJRVMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9Vbmljb2RlTWFj
cm9zRnJvbUlDVS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVN
YWNyb3NGcm9tSUNVLmgKaW5kZXggMDlhNzAzNmUzMzAyODY5MDE4MDFkMjQxZjdiZWZmZTI2YTNi
NTA1Yy4uYzliNmNkNjEwNGMyMGU2YjQ2ZmJjNWJmZDhkMDUwZDQ5ZjIyYjI0MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNV
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NG
cm9tSUNVLmgKQEAgLTk4LDMgKzk4LDQgQEAKICAgICB9IFwKIH0KICNlbmRpZgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MDExNDVlNjhjYzFiYzhmYzY5YTA1Yjc4NWZhZTJjODM5ZmRhYmUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmlj
b2RlSUNVLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVbmljb2RlSWN1Lmgi
CisKKyNpZiBVU0UoSUNVX1VOSUNPREUpCisKKyNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4KKwor
bmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7CisKK2NvbnN0IGNoYXIqIGN1cnJl
bnROdW1lcmljTG9jYWxlSUQoKQoreworI2lmIE9TKERBUldJTikgJiYgVVNFKENGKQorICAgIC8v
IE1hYyBPUyBYIGRvZXNuJ3Qgc2V0IFVOSVggbG9jYWxlIHRvIG1hdGNoIHVzZXItc2VsZWN0ZWQg
b25lLCBzbyBJQ1UgZGVmYXVsdCBkb2Vzbid0IHdvcmsuCisjZXJyb3IgTmVlZCBhIHdheSB0byBn
ZXQgdGhlIG51bWVyaWMgbG9jYWxlIG9uIE9TWC9JT1MKKyNlbHNlCisgICAgcmV0dXJuIHVsb2Nf
Z2V0RGVmYXVsdCgpOworI2VuZGlmCit9CisKK30gfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRi
MmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYzZWRhYjBjOC4uMWYwYmI5YzdhNGI2NjZhYmM3YjZh
ZTk1NDVmNzMzZmExZDJjNDgzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKQEAgLTI5LDYgKzI5LDkgQEAKICNpbmNsdWRlIDx1
bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3V0ZjE2Lmg+CiAKKyNkZWZpbmUg
SUNVX1ZFUlNJT04gKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNICogMTAwMDAgKyBVX0lDVV9WRVJT
SU9OX01JTk9SX05VTSAqIDEwMCArIFVfSUNVX1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0pCisjZGVm
aW5lIElDVV9WRVJTSU9OX0FUX0xFQVNUKG1ham9yLCBtaW5vciwgcGF0Y2gpIChJQ1VfVkVSU0lP
TiA+PSAobWFqb3IgKiAxMDAwMCArIG1pbm9yICogMTAwICsgcGF0Y2gpKQorCiBuYW1lc3BhY2Ug
V1RGIHsKIG5hbWVzcGFjZSBVbmljb2RlIHsKIApAQCAtMjMxLDYgKzIzNCwxMCBAQCBpbmxpbmUg
aW50IHVtZW1jYXNlY21wKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikK
ICAgICByZXR1cm4gdV9tZW1jYXNlY21wKGEsIGIsIGxlbiwgVV9GT0xEX0NBU0VfREVGQVVMVCk7
CiB9CiAKK2NvbnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKTsKKwogfSB9CiAKK3Vz
aW5nIFdURjo6VW5pY29kZTo6Y3VycmVudE51bWVyaWNMb2NhbGVJRDsKKwogI2VuZGlmIC8vIFdU
Rl9VTklDT0RFX0lDVV9ICmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmJiOGI2ODE5OTc4MGI1ZjA0NjUwNWYyZjcwYTM2ZWIw
NThlNDUyNS4uYWY5MzgzZTg5OTQ3MzQ4ZjA5YTE2N2Y1MTk5NDFhMmVhMjk4NDc4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTI4ICBFbGkgRmlkbGVyICA8ZWZpZGxlckByaW0uY29t
PgorCisgICAgICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgdGVz
dHMgYXJlIHF1aXRlIG1pbmltYWwsIHNpbmNlIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gc2V0IHRo
ZQorICAgICAgICBudW1lcmljIGxvY2FsZSBpbiBEUlQuCisKKyAgICAgICAgKiBmYXN0L2pzL251
bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
anMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMv
c2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChp
c05vbkVtcHR5U3RyaW5nKToKKwogMjAxMi0wMi0xNCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWtlIFNjcmlwdHNOYXZp
Z2F0b3IgZGVmYXVsdCBmaWxlIHNlbGVjdG9yLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzIz
NTdhNTZlZmMwMTdmZjQ2NDM4Yzc2N2NjZDY5N2VmMjViODMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmco
KSkgaXMgdHJ1ZQorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgtMC4wKS50b0xvY2FsZVN0cmluZygp
KSBpcyB0cnVlCitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmlu
ZygpKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVT
dHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2M4ZDE4ZGMyYjMxMGE5MzExNmQ5N2VhZGFhYjQxYjVlMGMxZDdlMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXIt
dG9Mb2NhbGVTdHJpbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1i
ZXItdG9Mb2NhbGVTdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI2YzdiOWVmOWQyYzFmZWUwZTFkNTk4
NTRhMDQxMGYyNDE2YzJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMv
c2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcwpAQCAtMCwwICsxLDggQEAKK2Z1
bmN0aW9uIGlzTm9uRW1wdHlTdHJpbmcocykKK3sKKyAgICByZXR1cm4gdHlwZW9mIHMgPT0gInN0
cmluZyIgJiYgL1teXHNdKy8udGVzdChzKTsKK30KKworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5
U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1w
dHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9u
RW1wdHlTdHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmluZygpKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127206</attachid>
            <date>2012-02-15 11:39:57 -0800</date>
            <delta_ts>2012-03-12 16:33:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120215143956.patch</filename>
            <type>text/plain</type>
            <size>17794</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODU2Yzg4ZWQ1MDExMjIwMmYwOGRhMDA2ZWU4MWNmNDdhOGI1ZDgxLi4wODkxNzM0NDAwOWUyN2Rl
YTgxMjkwMjE0YjRhYjkwMmNjMDNjOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0wMi0xNCAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FjaGVkTnVtYmVyRm9y
bWF0dGVyTXV0ZXgpOiBhZGRlZAorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOiBh
ZGRlZAorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAg
ICAgICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwpOiBtYWtlIHRoaXMgYSB0ZW1wbGF0ZSB0byBzdXBwb3J0IGEgY2hh
ciogdmVyc2lvbgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwOiBhZGRlZAorICAg
ICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6IGFkZCBJQ1VfVkVSU0lPTl9BVF9M
RUFTVCBtYWNybyBhbmQgbnVtZXJpYyBsb2NhbGUgYWNjZXNzb3IKKwogMjAxMi0wMi0xNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBzdHJlYW0gQW5kcm9pZCdz
IGFkZGl0aW9ucyB0byBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDZmMWIzYWVkMDhhZTY0NmU2ZGExZGY0MzBkOWE2NjY1MWE0ZjhhODIu
LjljMDJhMTkxYmM4MGIxYTY3MTJjZGE3ZDY1NjQ2NGY4NzdhNDg5NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC03ODIsNiArNzgyLDcgQEAgZW5kaWYK
IGlmIFVTRV9JQ1VfVU5JQ09ERQogamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCiBlbmRpZiAjIFVT
RV9JQ1VfVU5JQ09ERQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CmluZGV4IGZhMTMwNmQ1NDU5NGRjMDZjNTI1Y2ZhNjJlMzJhMDhlOTFjZjc0NTYuLmY3M2NhMWZi
ZjRkM2VmNDc0YzM0Yjc0YzAyODM4ZGE4ODVmMjkxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC02NTIsNiArNjUyLDcgQEAKICAgICAgICAgICAgICd3
dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmNwcCcsCiAgICAgICAgICAgICAnd3RmL3VuaWNv
ZGUvZ2xpYi9Vbmljb2RlR0xpYi5oJywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvQ29s
bGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5j
cHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgnLAogICAgICAg
ICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5jcHAnLAogICAgICAgICAgICAg
J3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCA2ZmJjYTdmY2U5YjZkYTUxNTcyZjExZGFlZjIx
Y2Q1YTM0NzdhNmRlLi44Y2M1NTlkMDhiZDFlYjBkM2YyYTFiODhlOGI1ZjY0YzY2YmZhMDQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBAIC0xMTI3LDcg
KzExMjcsNyBAQCBfX1pOSzNKU0M3SlNBcnJheTEyc3ViY2xhc3NEYXRhRXYKIF9fWk4zV1RGMTBT
dHJpbmdJbXBsMTZmaW5kSWdub3JpbmdDYXNlRVBLY2oKIF9fWk4zV1RGMTRudW1iZXJUb1N0cmlu
Z0VkUHQKIF9fWk4zV1RGNGR0b2FJTGIxRUxiMEVMYjBFTGIxRUVFdlBjZGlSYlJpUmoKLV9fWk5L
M1dURjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdEZWNpbWFsRVB0agorX19aTkszV1RGMTNEZWNp
bWFsTnVtYmVyMTV0b1N0cmluZ0RlY2ltYWxJdEVFalBUX2oKIF9fWk4zV1RGMTBTdHJpbmdJbXBs
OHRvRG91YmxlRVBiUzFfCiBfX1pOM1dURjZWZWN0b3JJakxtMTZFRTZyZXNpemVFbQogX19aTjNX
VEZMN211bHRhZGRFUk5TXzZCaWdJbnRFaWkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZmI5OThkZjY4ZDVmYWQ2ODQxYjYxMzU5Y2JmZTY4NmRhZDI3NDE4Mi4uNTY1ZmE3ODM4ZjRm
NjkyMDA4NzJiY2NjOTk4ZmM3ZGZkZjViYjY5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE2MjcsNiArMTYyNyw3IEBACiAJCUY2OTJBODg3MDI1NTU5N0QwMUZGNjBGNyAvKiBK
U1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CiAJCUY2OUU4NkMxMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE51bWJlck9mQ29yZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyog
TnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOdW1iZXJP
ZkNvcmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5NTg3QjcwMTREQzc5OTcw
MDVGRUJEOCAvKiBVbmljb2RlSUNVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVuaWNvZGVJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREEx
NUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb21wbGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMUI0
NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0yNzMxLDYgKzI3MzIsNyBA
QAogCQlFMTk1Njc4RTA5RTdDRjEyMDBCODlEMTMgLyogaWN1ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGOTU4N0I3MDE0REM3OTk3MDA1RkVCRDggLyog
VW5pY29kZUlDVS5jcHAgKi8sCiAJCQkJRTFBODYyQTgwRDdFQkI3NjAwMUVDNkFBIC8qIENvbGxh
dG9ySUNVLmNwcCAqLywKIAkJCQlFMTk1Njc4RjA5RTdDRjEyMDBCODlEMTMgLyogVW5pY29kZUlj
dS5oICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwCmluZGV4IGZiOTBiY2QxN2VhMTQ1MWVlNTQyMTRmODdiNWE4OWE1M2Yx
ODczNDkuLjc0ZjBmNTZmNDRhOTJkYWM5YTZhOGIzOGI0YzhkNmUyMzY5ZGE5OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlVpbnQxNldpdGhGcmFjdGlvbi5oIgogI2luY2x1ZGUg
ImR0b2EuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNp
bWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4KQEAgLTQw
LDYgKzQxLDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogLy8g
VG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBXVEY6OlN0cmluZ0J1aWxkZXIuCiB0eXBlZGVmIFdURjo6
ZG91YmxlX2NvbnZlcnNpb246OlN0cmluZ0J1aWxkZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1
aWxkZXI7CiAKKyNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcg
JiYgZGVmaW5lZChJQ1VfVkVSU0lPTikgJiYgKElDVV9WRVJTSU9OID49IDQwNDAwKQorI2RlZmlu
ZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVt
Lmg+CisjZWxzZQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5k
aWYKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwpAQCAtNTUsNiArNjMsODIg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Q
cmVjaXNpb24oRXhlY1N0YXRlKik7CiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9G
T1JfTlVNQkVSX0ZPUk1BVFRJTkcKKworc3RhdGljIFVOdW1iZXJGb3JtYXQqIGNhY2hlZE51bWJl
ckZvcm1hdHRlciA9IDA7CitzdGF0aWMgTXV0ZXgmIGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4
KCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpu
ZXcgTXV0ZXgpOworICAgIHJldHVybiBtdXRleDsKK30KKworc3RhdGljIEpTQ2VsbCogZm9ybWF0
TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2KQoreworICAgIEFTU0VSVCh2
LmlzTnVtYmVyKCkpOworCisgICAgTG9ja2VyPE11dGV4PiBsb2NrKGNhY2hlZE51bWJlckZvcm1h
dHRlck11dGV4KCkpOworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAg
IFVOdW1iZXJGb3JtYXQqIG5mID0gMDsKKyAgICBpZiAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKSB7
CisgICAgICAgIGNvbnN0IGNoYXIqIGNhY2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSA9IHVudW1f
Z2V0TG9jYWxlQnlUeXBlKGNhY2hlZE51bWJlckZvcm1hdHRlciwgVUxPQ19SRVFVRVNURURfTE9D
QUxFLCAmc3RhdHVzKTsKKyAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAg
ICAgQVNTRVJUKGNhY2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSk7CisKKyAgICAgICAgaWYgKCFz
dHJjbXAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyTG9jYWxlLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlE
KCkpKQorICAgICAgICAgICAgbmYgPSBjYWNoZWROdW1iZXJGb3JtYXR0ZXI7CisgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgLy8gbG9jYWxlIGNoYW5nZWQuLi4gd2UnbGwgbmVlZCBhIG5ldyBm
b3JtYXR0ZXIKKyAgICAgICAgICAgIHVudW1fY2xvc2UoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKTsK
KyAgICAgICAgICAgIGNhY2hlZE51bWJlckZvcm1hdHRlciA9IDA7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoIW5mKSB7CisgICAgICAgIG5mID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwg
MCwgMCwgY3VycmVudE51bWVyaWNMb2NhbGVJRCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYg
KCFuZiB8fCBVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgICAgIHJldHVybiBqc0VtcHR5U3Ry
aW5nKGV4ZWMpOworICAgICAgICBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSBuZjsKKyAgICB9CisK
KyAgICB1bnVtX3NldEF0dHJpYnV0ZShuZiwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRTLCBX
VEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoKTsKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShu
ZiwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJVFNfVVNFRCwgMSk7CisKKyAgICBOdW1iZXJUb1VTdHJp
bmdCdWZmZXIgYnVmZmVyOworICAgIGludDMyX3QgbGVuZ3RoOworCisgICAgaWYgKHYuaXNJbnQz
MigpKSB7CisgICAgICAgIGludDMyX3QgbnVtID0gdi5hc0ludDMyKCk7CisgICAgICAgIGxlbmd0
aCA9IHVudW1fZm9ybWF0KG5mLCBudW0sIGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bTsK
KyAgICAgICAgaWYgKHYuaXNEb3VibGUoKSkKKyAgICAgICAgICAgIG51bSA9IHYuYXNEb3VibGUo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbnVtID0gdi50b051bWJlcihleGVjKTsKKwor
ICAgICAgICBEZWNpbWFsTnVtYmVyIGQobnVtKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdb
V1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aF07CisgICAgICAgIGxlbmd0aCA9IGQudG9T
dHJpbmdEZWNpbWFsKG51bWJlclN0cmluZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0
aCk7CisgICAgICAgIGxlbmd0aCA9IHVudW1fZm9ybWF0RGVjaW1hbChuZiwgbnVtYmVyU3RyaW5n
LCBsZW5ndGgsIGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0
YXR1cyk7CisgICAgfQorCisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1
cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmco
ZXhlYywgVVN0cmluZyhidWZmZXIsIGxlbmd0aCkpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5s
aW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
KQoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0dXJuIHYu
dG9TdHJpbmcoZXhlYyk7Cit9CisKKyNlbmRpZgorCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJOdW1iZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4
ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVy
UHJvdG90eXBlKSB9OwogCiAvKiBTb3VyY2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAt
NDc0LDcgKzU1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVy
KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0
cmluZyhleGVjKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1i
ZXIoZXhlYywganNOdW1iZXIoeCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCmluZGV4IDcwMzA0ZTJlNWY2MzBkYWMzMjBm
NTRmNzhmZjdmNzUyN2FkMDY3ODMuLjU3NGQ1Mjc4ZGQxZGViMjcwOTZlMGFhNDc0Y2QwNGYwYzVj
YmI4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcApA
QCAtOTksMTMgKzk5LDE0IEBAIHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OmJ1ZmZlckxlbmd0aEZv
clN0cmluZ0V4cG9uZW50aWFsKCkgY29uc3QKICAgICByZXR1cm4gbGVuZ3RoOwogfQogCi11bnNp
Z25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWdu
ZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit1bnNpZ25lZCBE
ZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxl
bmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkpOwogCiAgICAgLy8gU2hvdWxk
IGFsd2F5cyBiZSBhdCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCiAgICAg
QVNTRVJUKG1fcHJlY2lzaW9uKTsKLSAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKyAgICBUKiBu
ZXh0ID0gYnVmZmVyOwogCiAgICAgLy8gaWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlIHRoZSBu
dW1iZXIgZGVjaW1hbCByZXByZXNlbnRhdGlvbiBpcyBvZiB0aGUgZm9ybToKICAgICAvLyBbPHNp
Z24+XTAuWzx6ZXJvcz5dPHNpZ25pZmljYW5kPgpAQCAtMTU1LDYgKzE1Niw5IEBAIHVuc2lnbmVk
IERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBi
dWZmZXJMZW5ndGgpIGNvCiAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CiB9CiAKK3RlbXBsYXRl
IHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1
bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OwordGVtcGxhdGUgdW5zaWduZWQgRGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdDsKKwogdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlhbChV
Q2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
X1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJp
bmdFeHBvbmVudGlhbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RGVjaW1hbE51bWJlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVy
LmgKaW5kZXggNjFlZmZjZGQzZGM2ZmNkZDEzNTJmNjAxYzU3NWY1NWJhYTU0NTQwYy4uZjRiNTFk
N2M2M2Y1YTljZTdhNGE0ODc4NzQ5ZWVhMmQ0NzJjMmU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmgKQEAgLTg0LDcgKzg0LDggQEAgcHVibGljOgogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkg
Y29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aEZvclN0
cmluZ0V4cG9uZW50aWFsKCkgY29uc3Q7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWdu
ZWQgdG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3Q7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0
aCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRXhwb25l
bnRpYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKIAogICAg
IGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRleCA1ZjMwZDA4ODk2
MTU3MzY3ODM4MzIxNmI5MDc1ZjllYmQxZDA5YTNhLi4xYWRlODQxMzc3YjRiMDhmMGFkZDlkNDhh
YjBhOGQzYTc2YTY0NGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtNSw2ICs1LDcgQEAgTElTVChBUFBFTkQgV1RGX1NP
VVJDRVMKICAgICBUaHJlYWRpbmdQdGhyZWFkcy5jcHAKICAgICBibGFja2JlcnJ5L01haW5UaHJl
YWRCbGFja0JlcnJ5LmNwcAogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorICAgIHVu
aWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCiApCiAKIExJU1QoSU5TRVJUIFdURl9JTkNMVURFX0RJ
UkVDVE9SSUVTIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm1FZmwuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDFhMTNkYmJhMzU1ODRlMDU2YzQ5MjkxZTM4N2EzMjI1NzEwZDEzMDguLmUzZjdmZGQ3
N2E2NzUwMDk0Y2U1M2E3N2M5OTdkNzU5ZTM1ODE4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtOSw2ICs5LDcgQEAgTElTVChBUFBFTkQgV1RG
X1NPVVJDRVMKICAgICBUaHJlYWRpbmdQdGhyZWFkcy5jcHAKIAogICAgIHVuaWNvZGUvaWN1L0Nv
bGxhdG9ySUNVLmNwcAorICAgIHVuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCiApCiAKIExJU1Qo
QVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvdW5pY29kZS9Vbmljb2RlTWFjcm9zRnJvbUlDVS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNVLmgKaW5kZXggMDlhNzAzNmUzMzAyODY5
MDE4MDFkMjQxZjdiZWZmZTI2YTNiNTA1Yy4uYzliNmNkNjEwNGMyMGU2YjQ2ZmJjNWJmZDhkMDUw
ZDQ5ZjIyYjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L1VuaWNvZGVNYWNyb3NGcm9tSUNVLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91
bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNVLmgKQEAgLTk4LDMgKzk4LDQgQEAKICAgICB9IFwK
IH0KICNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNv
ZGUvaWN1L1VuaWNvZGVJQ1UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDExNDVlNjhjYzFiYzhmYzY5YTA1Yjc4
NWZhZTJjODM5ZmRhYmUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJVbmljb2RlSWN1LmgiCisKKyNpZiBVU0UoSUNVX1VOSUNPREUpCisKKyNpbmNsdWRl
IDx1bmljb2RlL3Vsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7
CisKK2NvbnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKQoreworI2lmIE9TKERBUldJ
TikgJiYgVVNFKENGKQorICAgIC8vIE1hYyBPUyBYIGRvZXNuJ3Qgc2V0IFVOSVggbG9jYWxlIHRv
IG1hdGNoIHVzZXItc2VsZWN0ZWQgb25lLCBzbyBJQ1UgZGVmYXVsdCBkb2Vzbid0IHdvcmsuCisj
ZXJyb3IgTmVlZCBhIHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9jYWxlIG9uIE9TWC9JT1MKKyNl
bHNlCisgICAgcmV0dXJuIHVsb2NfZ2V0RGVmYXVsdCgpOworI2VuZGlmCit9CisKK30gfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3Uv
VW5pY29kZUljdS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmlj
b2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYzZWRhYjBjOC4u
NTQ0ZTU2NjUzYTAwMzNkNzYxYzAxNmMxNzIwNzY4NzVmMzdjNjU3YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKQEAgLTI5LDYg
KzI5LDggQEAKICNpbmNsdWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2Rl
L3V0ZjE2Lmg+CiAKKyNkZWZpbmUgSUNVX1ZFUlNJT04gKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVN
ICogMTAwMDAgKyBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSAqIDEwMCArIFVfSUNVX1ZFUlNJT05f
UEFUQ0hMRVZFTF9OVU0pCisKIG5hbWVzcGFjZSBXVEYgewogbmFtZXNwYWNlIFVuaWNvZGUgewog
CkBAIC0yMzEsNiArMjMzLDEwIEBAIGlubGluZSBpbnQgdW1lbWNhc2VjbXAoY29uc3QgVUNoYXIq
IGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQogICAgIHJldHVybiB1X21lbWNhc2VjbXAoYSwg
YiwgbGVuLCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKIH0KIAorY29uc3QgY2hhciogY3VycmVudE51
bWVyaWNMb2NhbGVJRCgpOworCiB9IH0KIAordXNpbmcgV1RGOjpVbmljb2RlOjpjdXJyZW50TnVt
ZXJpY0xvY2FsZUlEOworCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZWQ1
Yjg0MTEzZmQzODFkY2U3ZDZlZDFhOWFkMWEzN2ZiMTQ3YjY1Li5mMjIxM2NjNDNlYzBjZTAxYTdj
ZGUwMDkxNGQwZjcwYzVkODEzMGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDItMTQg
IEVsaSBGaWRsZXIgIDxlZmlkbGVyQHJpbS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE51bWJl
ci50b0xvY2FsZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBhcmUgcXVpdGUgbWluaW1hbCwgc2luY2Ug
d2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBzZXQgdGhlCisgICAgICAgIG51bWVyaWMgbG9jYWxlIGlu
IERSVC4KKworICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGlzTm9uRW1wdHlTdHJpbmcpOgorCiAyMDEyLTAy
LTE0ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgogCiAgICAg
ICAgIFtHVEtdIGZhc3QvZm9ybXMvaW1wbGljaXQtc3VibWlzc2lvbi5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmM3MjM1N2E1NmVmYzAxN2ZmNDY0MzhjNzY3Y2NkNjk3ZWYyNWI4
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BBU1MgaXNOb25FbXB0eVN0cmlu
ZygoMC4wKS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIGlzTm9uRW1wdHlTdHJpbmco
KC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1MgaXNOb25FbXB0eVN0cmluZygo
MTIzNC41NjcpLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9u
dW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzhkMThkYzJiMzEwYTkzMTE2
ZDk3ZWFkYWFiNDFiNWUwYzFkN2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3RyaW5n
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
anMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MjZjN2I5ZWY5ZDJjMWZlZTBlMWQ1OTg1NGEwNDEwZjI0MTZjMmIxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3RyaW5n
LmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gaXNOb25FbXB0eVN0cmluZyhzKQoreworICAg
IHJldHVybiB0eXBlb2YgcyA9PSAic3RyaW5nIiAmJiAvW15cc10rLy50ZXN0KHMpOworfQorCitz
aG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmcoKSkiKTsK
K3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmcoKSki
KTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxlU3Ry
aW5nKCkpIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131447</attachid>
            <date>2012-03-12 16:34:01 -0700</date>
            <delta_ts>2012-03-15 13:52:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120313003359.patch</filename>
            <type>text/plain</type>
            <size>18363</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZGMzMWUzNjUxMTYwYjEyNmFlZDFmNjExMmY1YTQ5ZGE4ZWUwN2MwLi45Y2I4NGE3OTI4ZmQ3ZDNi
NTg2ZWEzOWRhMGZkZjkyOTljNWFmODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMi0wMy0xMSAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChK
U0M6OmZvcm1hdExvY2FsZU51bWJlcik6IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3Rv
RnVuY1RvTG9jYWxlU3RyaW5nKToKKyAgICAgICAgKiB3dGYvRGVjaW1hbE51bWJlci5jcHA6Cisg
ICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbCk6IG1ha2UgdGhpcyBh
IHRlbXBsYXRlIHRvIHN1cHBvcnQgYSBjaGFyKiB2ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiB3dGYvdW5pY29kZS9pY3Uv
VW5pY29kZUlDVS5jcHA6IGFkZGVkCisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJ
Y3UuaDogYWRkIElDVV9WRVJTSU9OX0FUX0xFQVNUIG1hY3JvIGFuZCBudW1lcmljIGxvY2FsZSBh
Y2Nlc3NvcgorCiAyMDEyLTAzLTEyICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5v
a2lhLmNvbT4KIAogICAgICAgICBNaW5vciBEYXRhTG9nIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDc0YmFhY2M4YmE0
MWU3M2VjODFlMGVhYTNkOWQ0MDk2NzE4MjI2OGMuLjJlYTY4MGQ3MDA5MTdlMzYwNzNkYWI4NTI5
ZTQ2OGY1MTI5YjViYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDMtMTEgIEVsaSBGaWRs
ZXIgIDxlZmlkbGVyQHJpbS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE51bWJlci50b0xvY2Fs
ZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdURi5wcm86IGFkZCBVbmljb2RlSUNVLmNwcCB0byBRdFdlYktpdCBidWls
ZAorCiAyMDEyLTAzLTA3ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAg
VGVhY2ggbWFrZSB0byBidWlsZCBXVEYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDQzMGI1NjRjMDllODhkYjY3MDU3ZTcwNTc0OGMwZDUyM2Q0MzE1OGEu
LjY0ODgyYjY1Y2Y4MTVhZDEzZjk2YTAxNzgxOWI3NDkyNmMzZDJmNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MTcsNiArODE3LDcgQEAgZW5kaWYK
IGlmIFVTRV9JQ1VfVU5JQ09ERQogamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCiBlbmRpZiAjIFVT
RV9JQ1VfVU5JQ09ERQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CmluZGV4IGUxOWRmYjY3YThkYTczMWY2NjdkZTE5NDA5NGE5ODcyZGIzYjk3ODAuLmE2ODdmZmY5
NTdjYzY3NjE0MWU5NzJjZTkwM2NlNGUxZDRkMzMzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC02NTMsNiArNjUzLDcgQEAKICAgICAgICAgICAgICd3
dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmNwcCcsCiAgICAgICAgICAgICAnd3RmL3VuaWNv
ZGUvZ2xpYi9Vbmljb2RlR0xpYi5oJywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvQ29s
bGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5j
cHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgnLAogICAgICAg
ICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5jcHAnLAogICAgICAgICAgICAg
J3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCBlMWUxZjIzMWFmMzM0YjdhNTQ3MGNmZmJmN2I4
OWJlYzhmODcxZjczLi5lYzQ3YmZiYzEzYjg3ZGU3Yzk0NDNjYjE2ZDViODc4MzQ5ZGNjNTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBAIC0xMTI4LDcg
KzExMjgsNyBAQCBfX1pOSzNKU0M3SlNBcnJheTEyc3ViY2xhc3NEYXRhRXYKIF9fWk4zV1RGMTBT
dHJpbmdJbXBsMTZmaW5kSWdub3JpbmdDYXNlRVBLY2oKIF9fWk4zV1RGMTRudW1iZXJUb1N0cmlu
Z0VkUHQKIF9fWk4zV1RGNGR0b2FJTGIxRUxiMEVMYjBFTGIxRUVFdlBjZGlSYlJpUmoKLV9fWk5L
M1dURjEzRGVjaW1hbE51bWJlcjE1dG9TdHJpbmdEZWNpbWFsRVB0agorX19aTkszV1RGMTNEZWNp
bWFsTnVtYmVyMTV0b1N0cmluZ0RlY2ltYWxJdEVFalBUX2oKIF9fWk4zV1RGMTBTdHJpbmdJbXBs
OHRvRG91YmxlRVBiUzFfCiBfX1pOM1dURjZWZWN0b3JJakxtMTZFRTZyZXNpemVFbQogX19aTjNX
VEZMN211bHRhZGRFUk5TXzZCaWdJbnRFaWkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYTcyMDQ2ZTJjOGIyYTc5M2FiMDQ3MTMzODIwMjkzNDI2MDY3NmMzYy4uZTc4NDBhNTBmNWE1
MTg2MTMyYjhhYWVhOTc1ZWM3YTBmODcwNGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE1NzQsNiArMTU3NCw3IEBACiAJCUY2OTJBODg3MDI1NTU5N0QwMUZGNjBGNyAvKiBK
U1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CiAJCUY2OUU4NkMxMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE51bWJlck9mQ29yZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyog
TnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOdW1iZXJP
ZkNvcmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5NTg3QjcwMTREQzc5OTcw
MDVGRUJEOCAvKiBVbmljb2RlSUNVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVuaWNvZGVJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREEx
NUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb21wbGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMUI0
NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0yNzM5LDYgKzI3NDAsNyBA
QAogCQlFMTk1Njc4RTA5RTdDRjEyMDBCODlEMTMgLyogaWN1ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGOTU4N0I3MDE0REM3OTk3MDA1RkVCRDggLyog
VW5pY29kZUlDVS5jcHAgKi8sCiAJCQkJRTFBODYyQTgwRDdFQkI3NjAwMUVDNkFBIC8qIENvbGxh
dG9ySUNVLmNwcCAqLywKIAkJCQlFMTk1Njc4RjA5RTdDRjEyMDBCODlEMTMgLyogVW5pY29kZUlj
dS5oICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwCmluZGV4IDhmOGMzYzAwZjk1OGY1MDEzNjljOTI2NjgyNDg3NDBiZDM4
OTRmYTMuLjNmZDQ1NzJhMWM4NzkwM2I5M2Q5Y2E3NGJjMGFmNTU2ZDg4NTY4N2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlVpbnQxNldpdGhGcmFjdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi9kdG9hLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYv
RGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hL2RvdWJsZS1jb252ZXJzaW9uLmg+CkBA
IC00MCw2ICs0MSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOjpkb3VibGVfY29udmVyc2lvbjsK
IC8vIFRvIGF2b2lkIGNvbmZsaWN0IHdpdGggV1RGOjpTdHJpbmdCdWlsZGVyLgogdHlwZWRlZiBX
VEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWlsZGVyIERvdWJsZUNvbnZlcnNpb25TdHJp
bmdCdWlsZGVyOwogCisjaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19GT1JNQVRU
SU5HICYmIGRlZmluZWQoSUNVX1ZFUlNJT04pICYmIChJQ1VfVkVSU0lPTiA+PSA0MDQwMCkKKyNk
ZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMQorI2luY2x1ZGUgPHVuaWNvZGUv
dW51bS5oPgorI2Vsc2UKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMAor
I2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKQEAgLTU1LDYgKzYz
LDgyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVu
Y1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIFVTRV9J
Q1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HCisKK3N0YXRpYyBVTnVtYmVyRm9ybWF0KiBjYWNoZWRO
dW1iZXJGb3JtYXR0ZXIgPSAwOworc3RhdGljIE11dGV4JiBjYWNoZWROdW1iZXJGb3JtYXR0ZXJN
dXRleCgpCit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKE11dGV4JiwgbXV0ZXgg
PSAqbmV3IE11dGV4KTsKKyAgICByZXR1cm4gbXV0ZXg7Cit9CisKK3N0YXRpYyBKU0NlbGwqIGZv
cm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICBBU1NF
UlQodi5pc051bWJlcigpKTsKKworICAgIExvY2tlcjxNdXRleD4gbG9jayhjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsK
KyAgICBVTnVtYmVyRm9ybWF0KiBuZiA9IDA7CisgICAgaWYgKGNhY2hlZE51bWJlckZvcm1hdHRl
cikgeworICAgICAgICBjb25zdCBjaGFyKiBjYWNoZWROdW1iZXJGb3JtYXR0ZXJMb2NhbGUgPSB1
bnVtX2dldExvY2FsZUJ5VHlwZShjYWNoZWROdW1iZXJGb3JtYXR0ZXIsIFVMT0NfUkVRVUVTVEVE
X0xPQ0FMRSwgJnN0YXR1cyk7CisgICAgICAgIEFTU0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7Cisg
ICAgICAgIEFTU0VSVChjYWNoZWROdW1iZXJGb3JtYXR0ZXJMb2NhbGUpOworCisgICAgICAgIGlm
ICghc3RyY21wKGNhY2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSwgY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpKSkKKyAgICAgICAgICAgIG5mID0gY2FjaGVkTnVtYmVyRm9ybWF0dGVyOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxvY2FsZSBjaGFuZ2VkLi4uIHdlJ2xsIG5lZWQgYSBu
ZXcgZm9ybWF0dGVyCisgICAgICAgICAgICB1bnVtX2Nsb3NlKGNhY2hlZE51bWJlckZvcm1hdHRl
cik7CisgICAgICAgICAgICBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKCFuZikgeworICAgICAgICBuZiA9IHVudW1fb3BlbihVTlVNX0RFRkFV
TFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKSwgMCwgJnN0YXR1cyk7CisgICAgICAg
IGlmICghbmYgfHwgVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgICAgICByZXR1cm4ganNFbXB0
eVN0cmluZyhleGVjKTsKKyAgICAgICAgY2FjaGVkTnVtYmVyRm9ybWF0dGVyID0gbmY7CisgICAg
fQorCisgICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fTUFYX1NJR05JRklDQU5UX0RJR0lU
UywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgdW51bV9zZXRBdHRyaWJ1
dGUobmYsIFVOVU1fU0lHTklGSUNBTlRfRElHSVRTX1VTRUQsIDEpOworCisgICAgTnVtYmVyVG9V
U3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBpbnQzMl90IGxlbmd0aDsKKworICAgIGlmICh2Lmlz
SW50MzIoKSkgeworICAgICAgICBpbnQzMl90IG51bSA9IHYuYXNJbnQzMigpOworICAgICAgICBs
ZW5ndGggPSB1bnVtX2Zvcm1hdChuZiwgbnVtLCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdC
dWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvdWJsZSBu
dW07CisgICAgICAgIGlmICh2LmlzRG91YmxlKCkpCisgICAgICAgICAgICBudW0gPSB2LmFzRG91
YmxlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG51bSA9IHYudG9OdW1iZXIoZXhlYyk7
CisKKyAgICAgICAgRGVjaW1hbE51bWJlciBkKG51bSk7CisgICAgICAgIGNoYXIgbnVtYmVyU3Ry
aW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGhdOworICAgICAgICBsZW5ndGggPSBk
LnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJpbmcsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJM
ZW5ndGgpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdERlY2ltYWwobmYsIG51bWJlclN0
cmluZywgbGVuZ3RoLCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAs
ICZzdGF0dXMpOworICAgIH0KKworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAg
cmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICByZXR1cm4ganNOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKK30KKworI2Vsc2UKKworc3RhdGlj
IGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKworICAgIHJldHVy
biB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisjZW5kaWYKKwogY29uc3QgQ2xhc3NJbmZvIE51bWJl
clByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAw
LCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51
bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1iZXJQcm90b3R5cGUubHV0LmgK
QEAgLTQ3NCw3ICs1NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclBy
b3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXRvVGhpc051
bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoeCku
dG9TdHJpbmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxl
TnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcAppbmRleCA3MDMwNGUyZTVmNjMwZGFj
MzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2NzgzLi41NzRkNTI3OGRkMWRlYjI3MDk2ZTBhYTQ3NGNkMDRm
MGM1Y2JiODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxO
dW1iZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5j
cHAKQEAgLTk5LDEzICs5OSwxNCBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjpidWZmZXJMZW5n
dGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAot
dW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordW5zaWdu
ZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFQqIGJ1ZmZlciwgdW5zaWduZWQgYnVm
ZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBidWZm
ZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpKTsKIAogICAgIC8vIFNo
b3VsZCBhbHdheXMgYmUgYXQgbGVhc3Qgb25lIGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQog
ICAgIEFTU0VSVChtX3ByZWNpc2lvbik7Ci0gICAgVUNoYXIqIG5leHQgPSBidWZmZXI7CisgICAg
VCogbmV4dCA9IGJ1ZmZlcjsKIAogICAgIC8vIGlmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0
aGUgbnVtYmVyIGRlY2ltYWwgcmVwcmVzZW50YXRpb24gaXMgb2YgdGhlIGZvcm06CiAgICAgLy8g
WzxzaWduPl0wLls8emVyb3M+XTxzaWduaWZpY2FuZD4KQEAgLTE1NSw2ICsxNTYsOSBAQCB1bnNp
Z25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWdu
ZWQgYnVmZmVyTGVuZ3RoKSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit0ZW1w
bGF0ZSB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKK3RlbXBsYXRlIHVuc2lnbmVkIERlY2lt
YWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxl
bmd0aCkgY29uc3Q7CisKIHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRXhwb25lbnRp
YWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFT
U0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBidWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9y
U3RyaW5nRXhwb25lbnRpYWwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51
bWJlci5oCmluZGV4IDYxZWZmY2RkM2RjNmZjZGQxMzUyZjYwMWM1NzVmNTViYWE1NDU0MGMuLmY0
YjUxZDdjNjNmNWE5Y2U3YTRhNDg3ODc0OWVlYTJkNDcyYzJlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCkBAIC04NCw3ICs4NCw4IEBAIHB1YmxpYzoKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRGVjaW1h
bCgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhG
b3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHVu
c2lnbmVkIHRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5n
dGgpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0V4
cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CiAK
ICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggNWYzMGQw
ODg5NjE1NzM2NzgzODMyMTZiOTA3NWY5ZWJkMWQwOWEzYS4uMWFkZTg0MTM3N2I0YjA4ZjBhZGQ5
ZDQ4YWIwYThkM2E3NmE2NDRkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdU
Rl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWlu
VGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAg
ICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCAxYTEzZGJiYTM1NTg0ZTA1NmM0OTI5MWUzODdhMzIyNTcxMGQxMzA4Li5lM2Y3
ZmRkNzdhNjc1MDA5NGNlNTNhNzdjOTk3ZDc1OWUzNTgxOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTksNiArOSw3IEBAIExJU1QoQVBQRU5E
IFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAKICAgICB1bmljb2RlL2lj
dS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBM
SVNUKEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODQ1NjJkNDlkMTg1
ODAxNGI5ZjczYTRmZTQ0N2NjNDJiOThiMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIFVTRShJQ1VfVU5JQ09ERSkKKworI2luY2x1ZGUgIlVuaWNvZGVJY3Uu
aCIKKworI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgorCituYW1lc3BhY2UgV1RGIHsKK25hbWVz
cGFjZSBVbmljb2RlIHsKKworY29uc3QgY2hhciogY3VycmVudE51bWVyaWNMb2NhbGVJRCgpCit7
CisjaWYgT1MoREFSV0lOKSAmJiBVU0UoQ0YpICYmICFQTEFURk9STShRVCkKKyAgICAvLyBNYWMg
T1MgWCBkb2Vzbid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwg
c28gSUNVIGRlZmF1bHQgZG9lc24ndCB3b3JrLgorICAgIC8vIEZJWE1FOiBOZWVkIGEgd2F5IHRv
IGdldCB0aGUgbnVtZXJpYyBsb2NhbGUgb24gRGFyd2luCisgICAgQ1JBU0goKTsKKyNlbHNlCisg
ICAgcmV0dXJuIHVsb2NfZ2V0RGVmYXVsdCgpOworI2VuZGlmCit9CisKK30gfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29k
ZUljdS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1
LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYzZWRhYjBjOC4uNTQ0ZTU2
NjUzYTAwMzNkNzYxYzAxNmMxNzIwNzY4NzVmMzdjNjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKQEAgLTI5LDYgKzI5LDgg
QEAKICNpbmNsdWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3V0ZjE2
Lmg+CiAKKyNkZWZpbmUgSUNVX1ZFUlNJT04gKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNICogMTAw
MDAgKyBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSAqIDEwMCArIFVfSUNVX1ZFUlNJT05fUEFUQ0hM
RVZFTF9OVU0pCisKIG5hbWVzcGFjZSBXVEYgewogbmFtZXNwYWNlIFVuaWNvZGUgewogCkBAIC0y
MzEsNiArMjMzLDEwIEBAIGlubGluZSBpbnQgdW1lbWNhc2VjbXAoY29uc3QgVUNoYXIqIGEsIGNv
bnN0IFVDaGFyKiBiLCBpbnQgbGVuKQogICAgIHJldHVybiB1X21lbWNhc2VjbXAoYSwgYiwgbGVu
LCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKIH0KIAorY29uc3QgY2hhciogY3VycmVudE51bWVyaWNM
b2NhbGVJRCgpOworCiB9IH0KIAordXNpbmcgV1RGOjpVbmljb2RlOjpjdXJyZW50TnVtZXJpY0xv
Y2FsZUlEOworCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCBiMTE3YjBkMmQ3NGZjOGZh
YTVkNTQyZTI5MmM4NjFkNmMwYzM1Nzc4Li5lYjg0NzUwMDJiMWExNjU5ODZmOTUyMDUzNDE3Yzc3
Y2ZmOWM4NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dU
Ri9XVEYucHJvCkBAIC0yMTQsNiArMjE0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgdGV4dC9XVEZT
dHJpbmcuY3BwIFwKICAgICB1bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHAgXAogICAgIHVuaWNv
ZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAg
XAogICAgIHVuaWNvZGUvVVRGOC5jcHAKIAogdW5peDogU09VUkNFUyArPSBcCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzE1
NTY1MmUyYzJjYTE3OTg4YzNlOWFjZDNkZGJjNjZmMTVlNmQ5Ny4uNmExY2YyOGQ2ZDk4OWI2NmU1
YjI0ODQ1N2M5NTA5MGM3NGEwZjMwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTE0
ICBFbGkgRmlkbGVyICA8ZWZpZGxlckByaW0uY29tPgorCisgICAgICAgIEltcGxlbWVudCBOdW1i
ZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgdGVzdHMgYXJlIHF1aXRlIG1pbmltYWwsIHNpbmNl
IHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gc2V0IHRoZQorICAgICAgICBudW1lcmljIGxvY2FsZSBp
biBEUlQuCisKKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2Fs
ZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChpc05vbkVtcHR5U3RyaW5nKToKKwogMjAxMi0w
My0xMiAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IENTUzMgY2FsYzogZW5hYmxlIG1peGVkIHBlcmNlbnQvYWJzb2x1dGUgZm9yIGZvbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYzcyMzU3YTU2ZWZjMDE3ZmY0NjQzOGM3NjdjY2Q2OTdlZjI1Yjgz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVT
dHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBpc05vbkVtcHR5U3RyaW5n
KCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1MgaXNOb25FbXB0eVN0cmluZygo
LTAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgx
MjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251
bWJlci10b0xvY2FsZVN0cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjOGQxOGRjMmIzMTBhOTMxMTZk
OTdlYWRhYWI0MWI1ZTBjMWQ3ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQy
NmM3YjllZjlkMmMxZmVlMGUxZDU5ODU0YTA0MTBmMjQxNmMyYjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcu
anMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBpc05vbkVtcHR5U3RyaW5nKHMpCit7CisgICAg
cmV0dXJuIHR5cGVvZiBzID09ICJzdHJpbmciICYmIC9bXlxzXSsvLnRlc3Qocyk7Cit9CisKK3No
b3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMC4wKS50b0xvY2FsZVN0cmluZygpKSIpOwor
c2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgtMC4wKS50b0xvY2FsZVN0cmluZygpKSIp
Oworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgxMjM0LjU2NykudG9Mb2NhbGVTdHJp
bmcoKSkiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132114</attachid>
            <date>2012-03-15 13:52:16 -0700</date>
            <delta_ts>2012-04-05 14:12:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120315215212.patch</filename>
            <type>text/plain</type>
            <size>17944</size>
            <attacher name="Eli Fidler">efidler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODE3OGZjMmIxMTE1M2U1NWU3M2NjODE0ZTBlNjFkMjE0MjEyNGY2Li4yNjAxN2M1MWVkMWYwNTJh
ZjY1NjA0MjY1YjNiYTMzMzQwNGU3ZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMi0wMy0xNSAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmltLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChK
U0M6OmZvcm1hdExvY2FsZU51bWJlcik6IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3Rv
RnVuY1RvTG9jYWxlU3RyaW5nKToKKyAgICAgICAgKiB3dGYvRGVjaW1hbE51bWJlci5jcHA6Cisg
ICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbCk6IGFkZCBjaGFyKiB2
ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2ltYWxOdW1iZXIuaDoKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVmbC5jbWFrZToK
KyAgICAgICAgKiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHA6IGFkZGVkCisgICAgICAg
ICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaDogYWRkIElDVV9WRVJTSU9OIG1hY3JvIGFu
ZCBudW1lcmljIGxvY2FsZSBhY2Nlc3NvcgorCiAyMDEyLTAzLTE0ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBBUk12NyB3b3JrIGFnYWluCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDc0
YmFhY2M4YmE0MWU3M2VjODFlMGVhYTNkOWQ0MDk2NzE4MjI2OGMuLjUxZDY3NDdlNjIyODlmNzU4
ZDQxY2U3NTNiMWQyY2M0NzM3YzY1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDMtMTUg
IEVsaSBGaWRsZXIgIDxlZmlkbGVyQHJpbS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE51bWJl
ci50b0xvY2FsZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdURi5wcm86IGFkZCBVbmljb2RlSUNVLmNwcCB0byBRdFdl
YktpdCBidWlsZAorCiAyMDEyLTAzLTA3ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGVhY2ggbWFrZSB0byBidWlsZCBXVEYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM2OTNlMjIxYTc2YWJiNGFmMDI5NDQ4YzhiNTE4NmYy
YTQ3MjA5NDcuLmU5NzY2OWZkMzQwZDY0ZTc4ZjQ0YTRmNmE1YmFmNTMyNmY0OGVmNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MTcsNiArODE3LDcg
QEAgZW5kaWYKIGlmIFVTRV9JQ1VfVU5JQ09ERQogamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCiBl
bmRpZiAjIFVTRV9JQ1VfVU5JQ09ERQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5neXBpCmluZGV4IGUxOWRmYjY3YThkYTczMWY2NjdkZTE5NDA5NGE5ODcyZGIzYjk3ODAu
LmE2ODdmZmY5NTdjYzY3NjE0MWU5NzJjZTkwM2NlNGUxZDRkMzMzNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC02NTMsNiArNjUzLDcgQEAKICAgICAg
ICAgICAgICd3dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmNwcCcsCiAgICAgICAgICAgICAn
d3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5oJywKICAgICAgICAgICAgICd3dGYvdW5pY29k
ZS9pY3UvQ29sbGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3dGYvdW5pY29kZS9pY3UvVW5p
Y29kZUlDVS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmgn
LAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5jcHAnLAogICAg
ICAgICAgICAgJ3d0Zi91bmljb2RlL3dpbmNlL1VuaWNvZGVXaW5DRS5oJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZWY3NmMwZjQ2YzI0ZDlhMTI5MWZjNTI2NmY1ODIxMzg2ZmZj
OGQyNy4uM2MyY2U5MTg3YTA4NTE2NGU5ZThhMThhNTBmMjExNDNiMGNhZmM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1NzQsNiArMTU3NCw3IEBACiAJCUY2OTJBODg3MDI1
NTU5N0QwMUZGNjBGNyAvKiBKU1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2OUU4NkMxMTRDNkU1NTEwMDJDMkM2MiAvKiBO
dW1iZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE51
bWJlck9mQ29yZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjlFODZDMjE0
QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOdW1iZXJPZkNvcmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY5NTg3QjcwMTREQzc5OTcwMDVGRUJEOCAvKiBVbmljb2RlSUNVLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWNvZGVJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGREExNUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZFMUI0NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBA
IC0yNzM5LDYgKzI3NDAsNyBAQAogCQlFMTk1Njc4RTA5RTdDRjEyMDBCODlEMTMgLyogaWN1ICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGOTU4N0I3MDE0
REM3OTk3MDA1RkVCRDggLyogVW5pY29kZUlDVS5jcHAgKi8sCiAJCQkJRTFBODYyQTgwRDdFQkI3
NjAwMUVDNkFBIC8qIENvbGxhdG9ySUNVLmNwcCAqLywKIAkJCQlFMTk1Njc4RjA5RTdDRjEyMDBC
ODlEMTMgLyogVW5pY29kZUljdS5oICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDhmOGMzYzAwZjk1OGY1MDEz
NjljOTI2NjgyNDg3NDBiZDM4OTRmYTMuLjNmZDQ1NzJhMWM4NzkwM2I5M2Q5Y2E3NGJjMGFmNTU2
ZDg4NTY4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlVpbnQxNldpdGhGcmFj
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hL2RvdWJs
ZS1jb252ZXJzaW9uLmg+CkBAIC00MCw2ICs0MSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOjpk
b3VibGVfY29udmVyc2lvbjsKIC8vIFRvIGF2b2lkIGNvbmZsaWN0IHdpdGggV1RGOjpTdHJpbmdC
dWlsZGVyLgogdHlwZWRlZiBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWlsZGVyIERv
dWJsZUNvbnZlcnNpb25TdHJpbmdCdWlsZGVyOwogCisjaWYgVVNFKElDVV9VTklDT0RFKSAmJiAh
VUNPTkZJR19OT19GT1JNQVRUSU5HICYmIGRlZmluZWQoSUNVX1ZFUlNJT04pICYmIChJQ1VfVkVS
U0lPTiA+PSA0MDQwMCkKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMQor
I2luY2x1ZGUgPHVuaWNvZGUvdW51bS5oPgorI2Vsc2UKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVN
QkVSX0ZPUk1BVFRJTkcgMAorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3Rh
dGUqKTsKQEAgLTU1LDYgKzYzLDgyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorI2lmIFVTRV9JQ1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HCisKK3N0YXRpYyBVTnVt
YmVyRm9ybWF0KiBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworc3RhdGljIE11dGV4JiBjYWNo
ZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpCit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVkU3Rh
dGljKE11dGV4JiwgbXV0ZXggPSAqbmV3IE11dGV4KTsKKyAgICByZXR1cm4gbXV0ZXg7Cit9CisK
K3N0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdikKK3sKKyAgICBBU1NFUlQodi5pc051bWJlcigpKTsKKworICAgIExvY2tlcjxNdXRleD4g
bG9jayhjYWNoZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1
cyA9IFVfWkVST19FUlJPUjsKKyAgICBVTnVtYmVyRm9ybWF0KiBuZiA9IDA7CisgICAgaWYgKGNh
Y2hlZE51bWJlckZvcm1hdHRlcikgeworICAgICAgICBjb25zdCBjaGFyKiBjYWNoZWROdW1iZXJG
b3JtYXR0ZXJMb2NhbGUgPSB1bnVtX2dldExvY2FsZUJ5VHlwZShjYWNoZWROdW1iZXJGb3JtYXR0
ZXIsIFVMT0NfUkVRVUVTVEVEX0xPQ0FMRSwgJnN0YXR1cyk7CisgICAgICAgIEFTU0VSVChVX1NV
Q0NFU1Moc3RhdHVzKSk7CisgICAgICAgIEFTU0VSVChjYWNoZWROdW1iZXJGb3JtYXR0ZXJMb2Nh
bGUpOworCisgICAgICAgIGlmICghc3RyY21wKGNhY2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSwg
Y3VycmVudE51bWVyaWNMb2NhbGVJRCgpKSkKKyAgICAgICAgICAgIG5mID0gY2FjaGVkTnVtYmVy
Rm9ybWF0dGVyOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxvY2FsZSBjaGFuZ2Vk
Li4uIHdlJ2xsIG5lZWQgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgICAgICB1bnVtX2Nsb3NlKGNh
Y2hlZE51bWJlckZvcm1hdHRlcik7CisgICAgICAgICAgICBjYWNoZWROdW1iZXJGb3JtYXR0ZXIg
PSAwOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFuZikgeworICAgICAgICBuZiA9IHVu
dW1fb3BlbihVTlVNX0RFRkFVTFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKSwgMCwg
JnN0YXR1cyk7CisgICAgICAgIGlmICghbmYgfHwgVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAg
ICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKyAgICAgICAgY2FjaGVkTnVtYmVyRm9y
bWF0dGVyID0gbmY7CisgICAgfQorCisgICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fTUFY
X1NJR05JRklDQU5UX0RJR0lUUywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7Cisg
ICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fU0lHTklGSUNBTlRfRElHSVRTX1VTRUQsIDEp
OworCisgICAgTnVtYmVyVG9VU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBpbnQzMl90IGxlbmd0
aDsKKworICAgIGlmICh2LmlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90IG51bSA9IHYuYXNJ
bnQzMigpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdChuZiwgbnVtLCBidWZmZXIsIFdU
Rjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGRvdWJsZSBudW07CisgICAgICAgIGlmICh2LmlzRG91YmxlKCkpCisgICAgICAg
ICAgICBudW0gPSB2LmFzRG91YmxlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG51bSA9
IHYudG9OdW1iZXIoZXhlYyk7CisKKyAgICAgICAgRGVjaW1hbE51bWJlciBkKG51bSk7CisgICAg
ICAgIGNoYXIgbnVtYmVyU3RyaW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGhdOwor
ICAgICAgICBsZW5ndGggPSBkLnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJpbmcsIFdURjo6TnVt
YmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdERl
Y2ltYWwobmYsIG51bWJlclN0cmluZywgbGVuZ3RoLCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJp
bmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0KKworICAgIGlmIChVX0ZBSUxVUkUo
c3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICByZXR1
cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKK30K
KworI2Vsc2UKKworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVk
IHlldC4KKworICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisjZW5kaWYKKwogY29u
c3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJl
ck9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1i
ZXJQcm90b3R5cGUubHV0LmgKQEAgLTQ3NCw3ICs1NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoZm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUq
IGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1i
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcAppbmRl
eCA3MDMwNGUyZTVmNjMwZGFjMzIwZjU0Zjc4ZmY3Zjc1MjdhZDA2NzgzLi5kZDQ5YmYzNjU4YzU0
ZGM2MmM3NDhjNTAzYTRhMjEwOGQyNjlmYjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTk5LDEzICs5OSwxNCBAQCB1bnNpZ25lZCBEZWNpbWFs
TnVtYmVyOjpidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0CiAgICAgcmV0
dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFs
KFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbChU
KiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5V
U0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0Rl
Y2ltYWwoKSk7CiAKICAgICAvLyBTaG91bGQgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBkaWdpdCB0
byBhZGQgdG8gdGhlIHN0cmluZyEKICAgICBBU1NFUlQobV9wcmVjaXNpb24pOwotICAgIFVDaGFy
KiBuZXh0ID0gYnVmZmVyOworICAgIFQqIG5leHQgPSBidWZmZXI7CiAKICAgICAvLyBpZiB0aGUg
ZXhwb25lbnQgaXMgbmVnYXRpdmUgdGhlIG51bWJlciBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlz
IG9mIHRoZSBmb3JtOgogICAgIC8vIFs8c2lnbj5dMC5bPHplcm9zPl08c2lnbmlmaWNhbmQ+CkBA
IC0xNTUsNiArMTU2LDE2IEBAIHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1h
bChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvCiAgICAgcmV0dXJuIG5l
eHQgLSBidWZmZXI7CiB9CiAKK3Vuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1h
bChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVmZmVyLCBidWZmZXJMZW5ndGgpOworfQorCit1bnNp
Z25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoY2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBidWZmZXJMZW5ndGgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwo
YnVmZmVyLCBidWZmZXJMZW5ndGgpOworfQorCiB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0
cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29u
c3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1
ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0RlY2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1
YmFhNTQ1NDBjLi43YWNkNTcyOTE4N2IyNGI5ZDJhMGRkMzMxZjBhMmM4YjZkNmFhNjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaApAQCAtODUsNiArODUsOCBA
QCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aEZv
clN0cmluZ0V4cG9uZW50aWFsKCkgY29uc3Q7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5z
aWduZWQgdG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0
aCkgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1h
bChjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdFeHBvbmVudGlhbChVQ2hhciogYnVmZmVy
LCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OwogCiAgICAgYm9vbCBzaWduKCkgY29uc3Qg
eyByZXR1cm4gbV9zaWduOyB9CkBAIC05Myw2ICs5NSw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCBwcmVjaXNpb24oKSBjb25zdCB7IHJldHVybiBtX3ByZWNpc2lvbjsgfQogCiBwcml2YXRlOgor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWxJbXBsKFQq
IGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogICAgIGJvb2wgbV9zaWdu
OwogICAgIGludCBtX2V4cG9uZW50OwogICAgIER0b2FCdWZmZXIgbV9zaWduaWZpY2FuZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNt
YWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
aW5kZXggNWYzMGQwODg5NjE1NzM2NzgzODMyMTZiOTA3NWY5ZWJkMWQwOWEzYS4uMWFkZTg0MTM3
N2I0YjA4ZjBhZGQ5ZDQ4YWIwYThkM2E3NmE2NDRkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIExJ
U1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxh
Y2tiZXJyeS9NYWluVGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRv
cklDVS5jcHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKElOU0VS
VCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybUVmbC5jbWFrZQppbmRleCAxYTEzZGJiYTM1NTg0ZTA1NmM0OTI5MWUzODdhMzIyNTcx
MGQxMzA4Li5lM2Y3ZmRkNzdhNjc1MDA5NGNlNTNhNzdjOTk3ZDc1OWUzNTgxOGQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTksNiArOSw3IEBA
IExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAKICAg
ICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcAogKQogCiBMSVNUKEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ODQ1NjJkNDlkMTg1ODAxNGI5ZjczYTRmZTQ0N2NjNDJiOThiMzk5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShJQ1VfVU5JQ09ERSkKKworI2luY2x1ZGUg
IlVuaWNvZGVJY3UuaCIKKworI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgorCituYW1lc3BhY2Ug
V1RGIHsKK25hbWVzcGFjZSBVbmljb2RlIHsKKworY29uc3QgY2hhciogY3VycmVudE51bWVyaWNM
b2NhbGVJRCgpCit7CisjaWYgT1MoREFSV0lOKSAmJiBVU0UoQ0YpICYmICFQTEFURk9STShRVCkK
KyAgICAvLyBNYWMgT1MgWCBkb2Vzbid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNl
bGVjdGVkIG9uZSwgc28gSUNVIGRlZmF1bHQgZG9lc24ndCB3b3JrLgorICAgIC8vIEZJWE1FOiBO
ZWVkIGEgd2F5IHRvIGdldCB0aGUgbnVtZXJpYyBsb2NhbGUgb24gRGFyd2luCisgICAgQ1JBU0go
KTsKKyNlbHNlCisgICAgcmV0dXJuIHVsb2NfZ2V0RGVmYXVsdCgpOworI2VuZGlmCit9CisKK30g
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29k
ZS9pY3UvVW5pY29kZUljdS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2lj
dS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYzZWRh
YjBjOC4uY2M3NGE4MjhmNjJmZDAzM2IzNmJkNDU1ZDJmNTY3MDAwZmM2OGViNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKQEAg
LTI5LDYgKzI5LDggQEAKICNpbmNsdWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1
bmljb2RlL3V0ZjE2Lmg+CiAKKyNkZWZpbmUgSUNVX1ZFUlNJT04gKFVfSUNVX1ZFUlNJT05fTUFK
T1JfTlVNICogMTAwMDAgKyBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSAqIDEwMCArIFVfSUNVX1ZF
UlNJT05fUEFUQ0hMRVZFTF9OVU0pCisKIG5hbWVzcGFjZSBXVEYgewogbmFtZXNwYWNlIFVuaWNv
ZGUgewogCkBAIC0yMzEsNiArMjMzLDEwIEBAIGlubGluZSBpbnQgdW1lbWNhc2VjbXAoY29uc3Qg
VUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQogICAgIHJldHVybiB1X21lbWNhc2Vj
bXAoYSwgYiwgbGVuLCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKIH0KIAorV1RGX0VYUE9SVF9QUklW
QVRFIGNvbnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKTsKKwogfSB9CiAKK3VzaW5n
IFdURjo6VW5pY29kZTo6Y3VycmVudE51bWVyaWNMb2NhbGVJRDsKKwogI2VuZGlmIC8vIFdURl9V
TklDT0RFX0lDVV9ICmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RG
L1dURi5wcm8KaW5kZXggYjExN2IwZDJkNzRmYzhmYWE1ZDU0MmUyOTJjODYxZDZjMGMzNTc3OC4u
ZWI4NDc1MDAyYjFhMTY1OTg2Zjk1MjA1MzQxN2M3N2NmZjljODUzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMjE0LDYgKzIxNCw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIHRleHQvV1RGU3RyaW5nLmNwcCBcCiAgICAgdW5pY29kZS9D
b2xsYXRvckRlZmF1bHQuY3BwIFwKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAor
ICAgIHVuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwIFwKICAgICB1bmljb2RlL1VURjguY3BwCiAK
IHVuaXg6IFNPVVJDRVMgKz0gXApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkzMGY1YzdmMDc4YzliYmQ5ZTk4M2NjYmI1MDQy
YjQ4NDdmMjgwODIuLjc1ZTJjMThmYzlmNTNkNmRlNTQyN2FmY2E1Y2UyOGY1MWJjODQ5ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMy0xNSAgRWxpIEZpZGxlciAgPGVmaWRsZXJAcmlt
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcg
SUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAx
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNl
IHRlc3RzIGFyZSBxdWl0ZSBtaW5pbWFsLCBzaW5jZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNl
dCB0aGUKKyAgICAgICAgbnVtZXJpYyBsb2NhbGUgaW4gRFJULgorCisgICAgICAgICogZmFzdC9q
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanM6IEFkZGVkLgorICAgICAg
ICAoaXNOb25FbXB0eVN0cmluZyk6CisKIDIwMTItMDMtMTQgIEFkcmllbm5lIFdhbGtlciAgPGVu
bmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQsIG1hcmsgdHdv
IGNvbXBvc2l0aW5nIHRlc3RzIGFzIHBhc3NpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM3
MjM1N2E1NmVmYzAxN2ZmNDY0MzhjNzY3Y2NkNjk3ZWYyNWI4MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDcgQEAKK1BBU1MgaXNOb25FbXB0eVN0cmluZygoMC4wKS50b0xvY2FsZVN0cmlu
ZygpKSBpcyB0cnVlCitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5n
KCkpIGlzIHRydWUKK1BBU1MgaXNOb25FbXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxlU3Ry
aW5nKCkpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2Fs
ZVN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YzhkMThkYzJiMzEwYTkzMTE2ZDk3ZWFkYWFiNDFiNWUwYzFkN2Uy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVT
dHJpbmcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJl
ci10b0xvY2FsZVN0cmluZy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251
bWJlci10b0xvY2FsZVN0cmluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjZjN2I5ZWY5ZDJjMWZlZTBlMWQ1
OTg1NGEwNDEwZjI0MTZjMmIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmpzCkBAIC0wLDAgKzEsOCBAQAor
ZnVuY3Rpb24gaXNOb25FbXB0eVN0cmluZyhzKQoreworICAgIHJldHVybiB0eXBlb2YgcyA9PSAi
c3RyaW5nIiAmJiAvW15cc10rLy50ZXN0KHMpOworfQorCitzaG91bGRCZVRydWUoImlzTm9uRW1w
dHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmcoKSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25F
bXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmcoKSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNO
b25FbXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxlU3RyaW5nKCkpIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135902</attachid>
            <date>2012-04-05 14:12:49 -0700</date>
            <delta_ts>2012-04-05 15:07:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120405171314.patch</filename>
            <type>text/plain</type>
            <size>15206</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZmFhZDQxZDA3NmViYTlkY2I4MmM3NDNjMTBkZDZiMjk0NDhjNjVhLi44NjBiNDM4MzAzMGU2ZTc0
ZjBmOTVkZjVmY2FlNTIxYmZkMjBhYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wNC0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZU51bWJlcik6
IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToKKwog
MjAxMi0wNC0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1NTE3M2NmOThkOTYwOTk4ZDg5YjJmOWZkMWRkMTg2Y2Fi
MTNlOWYuLjE0NTRjOTQ2Yzc0NmQ3OWNhZTI4OGU5MDI0N2U3N2Y3MDcyZmVmMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTItMDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnBybzogYWRkIFVu
aWNvZGVJQ1UuY3BwIHRvIFF0V2ViS2l0IGJ1aWxkCisgICAgICAgICogV1RGLnZjcHJvai9XVEYu
dmNwcm9qOiBhZGQgVW5pY29kZUlDVS5jcHAgdG8gd2luIGJ1aWxkCisgICAgICAgICogd3RmL0Rl
Y2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbCk6CisgICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6
OnRvU3RyaW5nRGVjaW1hbCk6IGFkZCBjaGFyKiB2ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDoKKyAgICAgICAgKERlY2ltYWxOdW1iZXIpOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcDogYWRkZWQKKyAgICAgICAg
KiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oOiBhZGQgSUNVX1ZFUlNJT04gbWFjcm8gYW5k
IG51bWVyaWMgbG9jYWxlIGFjY2Vzc29yCisKIDIwMTItMDQtMDUgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNFXSBSZW1vdmUgdW5uZWNlc3Nh
cnkgZnVuY3Rpb24gZGVjbGVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDhmOGMzYzAwZjk1OGY1MDEzNjljOTI2Njgy
NDg3NDBiZDM4OTRmYTMuLjNmZDQ1NzJhMWM4NzkwM2I5M2Q5Y2E3NGJjMGFmNTU2ZDg4NTY4N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBl
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlVpbnQxNldpdGhGcmFjdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNs
dWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hL2RvdWJsZS1jb252ZXJz
aW9uLmg+CkBAIC00MCw2ICs0MSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOjpkb3VibGVfY29u
dmVyc2lvbjsKIC8vIFRvIGF2b2lkIGNvbmZsaWN0IHdpdGggV1RGOjpTdHJpbmdCdWlsZGVyLgog
dHlwZWRlZiBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWlsZGVyIERvdWJsZUNvbnZl
cnNpb25TdHJpbmdCdWlsZGVyOwogCisjaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19O
T19GT1JNQVRUSU5HICYmIGRlZmluZWQoSUNVX1ZFUlNJT04pICYmIChJQ1VfVkVSU0lPTiA+PSA0
MDQwMCkKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMQorI2luY2x1ZGUg
PHVuaWNvZGUvdW51bS5oPgorI2Vsc2UKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1B
VFRJTkcgMAorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKQEAg
LTU1LDYgKzYzLDgyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsKIAor
I2lmIFVTRV9JQ1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HCisKK3N0YXRpYyBVTnVtYmVyRm9ybWF0
KiBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworc3RhdGljIE11dGV4JiBjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCgpCit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKE11dGV4
JiwgbXV0ZXggPSAqbmV3IE11dGV4KTsKKyAgICByZXR1cm4gbXV0ZXg7Cit9CisKK3N0YXRpYyBK
U0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdikKK3sK
KyAgICBBU1NFUlQodi5pc051bWJlcigpKTsKKworICAgIExvY2tlcjxNdXRleD4gbG9jayhjYWNo
ZWROdW1iZXJGb3JtYXR0ZXJNdXRleCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVS
T19FUlJPUjsKKyAgICBVTnVtYmVyRm9ybWF0KiBuZiA9IDA7CisgICAgaWYgKGNhY2hlZE51bWJl
ckZvcm1hdHRlcikgeworICAgICAgICBjb25zdCBjaGFyKiBjYWNoZWROdW1iZXJGb3JtYXR0ZXJM
b2NhbGUgPSB1bnVtX2dldExvY2FsZUJ5VHlwZShjYWNoZWROdW1iZXJGb3JtYXR0ZXIsIFVMT0Nf
UkVRVUVTVEVEX0xPQ0FMRSwgJnN0YXR1cyk7CisgICAgICAgIEFTU0VSVChVX1NVQ0NFU1Moc3Rh
dHVzKSk7CisgICAgICAgIEFTU0VSVChjYWNoZWROdW1iZXJGb3JtYXR0ZXJMb2NhbGUpOworCisg
ICAgICAgIGlmICghc3RyY21wKGNhY2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSwgY3VycmVudE51
bWVyaWNMb2NhbGVJRCgpKSkKKyAgICAgICAgICAgIG5mID0gY2FjaGVkTnVtYmVyRm9ybWF0dGVy
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGxvY2FsZSBjaGFuZ2VkLi4uIHdlJ2xs
IG5lZWQgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgICAgICB1bnVtX2Nsb3NlKGNhY2hlZE51bWJl
ckZvcm1hdHRlcik7CisgICAgICAgICAgICBjYWNoZWROdW1iZXJGb3JtYXR0ZXIgPSAwOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKCFuZikgeworICAgICAgICBuZiA9IHVudW1fb3BlbihV
TlVNX0RFRkFVTFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKSwgMCwgJnN0YXR1cyk7
CisgICAgICAgIGlmICghbmYgfHwgVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgICAgICByZXR1
cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKyAgICAgICAgY2FjaGVkTnVtYmVyRm9ybWF0dGVyID0g
bmY7CisgICAgfQorCisgICAgdW51bV9zZXRBdHRyaWJ1dGUobmYsIFVOVU1fTUFYX1NJR05JRklD
QU5UX0RJR0lUUywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgdW51bV9z
ZXRBdHRyaWJ1dGUobmYsIFVOVU1fU0lHTklGSUNBTlRfRElHSVRTX1VTRUQsIDEpOworCisgICAg
TnVtYmVyVG9VU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBpbnQzMl90IGxlbmd0aDsKKworICAg
IGlmICh2LmlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90IG51bSA9IHYuYXNJbnQzMigpOwor
ICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdChuZiwgbnVtLCBidWZmZXIsIFdURjo6TnVtYmVy
VG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGRvdWJsZSBudW07CisgICAgICAgIGlmICh2LmlzRG91YmxlKCkpCisgICAgICAgICAgICBudW0g
PSB2LmFzRG91YmxlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG51bSA9IHYudG9OdW1i
ZXIoZXhlYyk7CisKKyAgICAgICAgRGVjaW1hbE51bWJlciBkKG51bSk7CisgICAgICAgIGNoYXIg
bnVtYmVyU3RyaW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGhdOworICAgICAgICBs
ZW5ndGggPSBkLnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJpbmcsIFdURjo6TnVtYmVyVG9TdHJp
bmdCdWZmZXJMZW5ndGgpOworICAgICAgICBsZW5ndGggPSB1bnVtX2Zvcm1hdERlY2ltYWwobmYs
IG51bWJlclN0cmluZywgbGVuZ3RoLCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJM
ZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0KKworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkK
KyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKK30KKworI2Vsc2UK
Kworc3RhdGljIGlubGluZSBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgdikKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKwor
ICAgIHJldHVybiB2LnRvU3RyaW5nKGV4ZWMpOworfQorCisjZW5kaWYKKwogY29uc3QgQ2xhc3NJ
bmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJlck9iamVjdDo6
c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1iZXJQcm90b3R5
cGUubHV0LmgKQEAgLTQ3NCw3ICs1NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAo
IXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9y
bWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXgg
OWNhNTMzYWFhZGRlMDEwN2M1OWUxM2JhODJmMTg0YmFlYTM2ZTdjNC4uYjg2NGYyZDI5ZjYzZmE3
OTc4OTExNmQxMGJlNTczOTMzODVjMWJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJv
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMjE0LDYgKzIxNCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHRleHQvV1RGU3RyaW5nLmNwcCBcCiAgICAgdW5pY29kZS9Db2xsYXRvckRlZmF1bHQu
Y3BwIFwKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAorICAgIHVuaWNvZGUvaWN1
L1VuaWNvZGVJQ1UuY3BwIFwKICAgICB1bmljb2RlL1VURjguY3BwCiAKIHVuaXg6IFNPVVJDRVMg
Kz0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3Vy
Y2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCBlZGFlNjZjZDZjMTRiNjgyOWIyNWQ1
ZTgwYjcyMzkyNTE1YmY0OTFlLi44ZTI0OTk3MmE2YTNmM2IyYjNmOGE4ZDQzMzdmOWY5YzM1YjU3
ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtMzgyLDYgKzM4MiwxMCBAQAogCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHd0Zlx1bmljb2RlXGljdVxVbmljb2RlSWN1LmgiCiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcdW5pY29k
ZVxpY3VcVW5pY29kZUlDVS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4K
IAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2lt
YWxOdW1iZXIuY3BwIGIvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAKaW5kZXggNzAz
MDRlMmU1ZjYzMGRhYzMyMGY1NGY3OGZmN2Y3NTI3YWQwNjc4My4uZGQ0OWJmMzY1OGM1NGRjNjJj
NzQ4YzUwM2E0YTIxMDhkMjY5ZmI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGVjaW1h
bE51bWJlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTk5
LDEzICs5OSwxNCBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjpidWZmZXJMZW5ndGhGb3JTdHJp
bmdFeHBvbmVudGlhbCgpIGNvbnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQg
RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1
ZmZlckxlbmd0aCkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordW5zaWduZWQgRGVjaW1h
bE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxl
bmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVu
Z3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0RlY2ltYWwoKSk7CiAKICAgICAvLyBTaG91bGQg
YWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBkaWdpdCB0byBhZGQgdG8gdGhlIHN0cmluZyEKICAgICBB
U1NFUlQobV9wcmVjaXNpb24pOwotICAgIFVDaGFyKiBuZXh0ID0gYnVmZmVyOworICAgIFQqIG5l
eHQgPSBidWZmZXI7CiAKICAgICAvLyBpZiB0aGUgZXhwb25lbnQgaXMgbmVnYXRpdmUgdGhlIG51
bWJlciBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlzIG9mIHRoZSBmb3JtOgogICAgIC8vIFs8c2ln
bj5dMC5bPHplcm9zPl08c2lnbmlmaWNhbmQ+CkBAIC0xNTUsNiArMTU2LDE2IEBAIHVuc2lnbmVk
IERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBi
dWZmZXJMZW5ndGgpIGNvCiAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CiB9CiAKK3Vuc2lnbmVk
IERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBi
dWZmZXJMZW5ndGgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVm
ZmVyLCBidWZmZXJMZW5ndGgpOworfQorCit1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmlu
Z0RlY2ltYWwoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVmZmVyLCBidWZmZXJMZW5ndGgpOworfQor
CiB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZm
ZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1
ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50
aWFsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5oIGIvU291
cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5oCmluZGV4IDYxZWZmY2RkM2RjNmZjZGQxMzUyZjYw
MWM1NzVmNTViYWE1NDU0MGMuLjdhY2Q1NzI5MTg3YjI0YjlkMmEwZGQzMzFmMGEyYzhiNmQ2YWE2
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmgKQEAgLTg1LDYgKzg1LDggQEAgcHVibGljOgogICAg
IFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVu
dGlhbCgpIGNvbnN0OwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5n
RGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworICAg
IFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoY2hhciogYnVmZmVy
LCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworCiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHVuc2lnbmVkIHRvU3RyaW5nRXhwb25lbnRpYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVm
ZmVyTGVuZ3RoKSBjb25zdDsKIAogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2ln
bjsgfQpAQCAtOTMsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgcHJlY2lzaW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmVjaXNpb247IH0KIAogcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsSW1wbChUKiBidWZmZXIsIHVuc2ln
bmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisKICAgICBib29sIG1fc2lnbjsKICAgICBpbnQgbV9l
eHBvbmVudDsKICAgICBEdG9hQnVmZmVyIG1fc2lnbmlmaWNhbmQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggNWYzMGQwODg5NjE1NzM2NzgzODMyMTZiOTA3NWY5
ZWJkMWQwOWEzYS4uMWFkZTg0MTM3N2I0YjA4ZjBhZGQ5ZDQ4YWIwYThkM2E3NmE2NDRkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtNSw2ICs1LDcgQEAgTElT
VChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICBUaHJlYWRpbmdQdGhyZWFkcy5jcHAKICAgICBibGFj
a2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9y
SUNVLmNwcAorICAgIHVuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCiApCiAKIExJU1QoSU5TRVJU
IFdURl9JTkNMVURFX0RJUkVDVE9SSUVTIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXgg
MWExM2RiYmEzNTU4NGUwNTZjNDkyOTFlMzg3YTMyMjU3MTBkMTMwOC4uZTNmN2ZkZDc3YTY3NTAw
OTRjZTUzYTc3Yzk5N2Q3NTllMzU4MThkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKQEAg
LTksNiArOSw3IEBAIExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVh
ZHMuY3BwCiAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmljb2RlL2lj
dS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NDU2MmQ0OWQx
ODU4MDE0YjlmNzNhNGZlNDQ3Y2M0MmI5OGIzOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIFVTRShJQ1VfVU5JQ09ERSkKKworI2luY2x1ZGUgIlVuaWNvZGVJY3UuaCIKKworI2lu
Y2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgorCituYW1lc3BhY2UgV1RGIHsKK25hbWVzcGFjZSBVbmlj
b2RlIHsKKworY29uc3QgY2hhciogY3VycmVudE51bWVyaWNMb2NhbGVJRCgpCit7CisjaWYgT1Mo
REFSV0lOKSAmJiBVU0UoQ0YpICYmICFQTEFURk9STShRVCkKKyAgICAvLyBNYWMgT1MgWCBkb2Vz
bid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwgc28gSUNVIGRl
ZmF1bHQgZG9lc24ndCB3b3JrLgorICAgIC8vIEZJWE1FOiBOZWVkIGEgd2F5IHRvIGdldCB0aGUg
bnVtZXJpYyBsb2NhbGUgb24gRGFyd2luCisgICAgQ1JBU0goKTsKKyNlbHNlCisgICAgcmV0dXJu
IHVsb2NfZ2V0RGVmYXVsdCgpOworI2VuZGlmCit9CisKK30gfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaCBiL1NvdXJjZS9XVEYv
d3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAppbmRleCBmZTUyNGIyYTJkYTQ4MDZlZDQ3NWVl
NzhjNmFjZjZmNjNlZGFiMGM4Li5jYzc0YTgyOGY2MmZkMDMzYjM2YmQ0NTVkMmY1NjcwMDBmYzY4
ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgK
KysrIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCkBAIC0yOSw2ICsy
OSw4IEBACiAjaW5jbHVkZSA8dW5pY29kZS91c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91
dGYxNi5oPgogCisjZGVmaW5lIElDVV9WRVJTSU9OIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSAq
IDEwMDAwICsgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gKiAxMDAgKyBVX0lDVV9WRVJTSU9OX1BB
VENITEVWRUxfTlVNKQorCiBuYW1lc3BhY2UgV1RGIHsKIG5hbWVzcGFjZSBVbmljb2RlIHsKIApA
QCAtMjMxLDYgKzIzMywxMCBAQCBpbmxpbmUgaW50IHVtZW1jYXNlY21wKGNvbnN0IFVDaGFyKiBh
LCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKICAgICByZXR1cm4gdV9tZW1jYXNlY21wKGEsIGIs
IGxlbiwgVV9GT0xEX0NBU0VfREVGQVVMVCk7CiB9CiAKK1dURl9FWFBPUlRfUFJJVkFURSBjb25z
dCBjaGFyKiBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCk7CisKIH0gfQogCit1c2luZyBXVEY6OlVu
aWNvZGU6OmN1cnJlbnROdW1lcmljTG9jYWxlSUQ7CisKICNlbmRpZiAvLyBXVEZfVU5JQ09ERV9J
Q1VfSApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGYxNDczNzlkNDdjYzkxZDQ5YjNkZDI4YzcyYzM0YjkzMWI4MjM0ZWIuLjg0
MTA5YTk0MmFjNzhmNzExYjUxNTIyYjVmNTE5OTk2NjY3MGI4MmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMi0wNC0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAgICAgIElt
cGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgdGVzdHMgYXJlIHF1aXRlIG1p
bmltYWwsIHNpbmNlIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gc2V0IHRoZQorICAgICAgICBudW1l
cmljIGxvY2FsZSBpbiBEUlQuCisKKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0
cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvTG9j
YWxlU3RyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251
bWJlci10b0xvY2FsZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChpc05vbkVtcHR5U3RyaW5n
KToKKwogMjAxMi0wNC0wNSAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEFkZGVkIHRha2VSZWNvcmRzIHRvIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIg
cHJvcGVydGllcyBsaXN0LCB0byBmaXggbWFjLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzIz
NTdhNTZlZmMwMTdmZjQ2NDM4Yzc2N2NjZDY5N2VmMjViODMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmco
KSkgaXMgdHJ1ZQorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgtMC4wKS50b0xvY2FsZVN0cmluZygp
KSBpcyB0cnVlCitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmlu
ZygpKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVT
dHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2M4ZDE4ZGMyYjMxMGE5MzExNmQ5N2VhZGFhYjQxYjVlMGMxZDdlMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXIt
dG9Mb2NhbGVTdHJpbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1i
ZXItdG9Mb2NhbGVTdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI2YzdiOWVmOWQyYzFmZWUwZTFkNTk4
NTRhMDQxMGYyNDE2YzJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMv
c2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcwpAQCAtMCwwICsxLDggQEAKK2Z1
bmN0aW9uIGlzTm9uRW1wdHlTdHJpbmcocykKK3sKKyAgICByZXR1cm4gdHlwZW9mIHMgPT0gInN0
cmluZyIgJiYgL1teXHNdKy8udGVzdChzKTsKK30KKworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5
U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1w
dHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9u
RW1wdHlTdHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmluZygpKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135916</attachid>
            <date>2012-04-05 15:07:57 -0700</date>
            <delta_ts>2012-04-10 16:23:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20120405180822.patch</filename>
            <type>text/plain</type>
            <size>16164</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZmFhZDQxZDA3NmViYTlkY2I4MmM3NDNjMTBkZDZiMjk0NDhjNjVhLi44NjBiNDM4MzAzMGU2ZTc0
ZjBmOTVkZjVmY2FlNTIxYmZkMjBhYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wNC0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZU51bWJlcik6
IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToKKwog
MjAxMi0wNC0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1NTE3M2NmOThkOTYwOTk4ZDg5YjJmOWZkMWRkMTg2Y2Fi
MTNlOWYuLjE0NTRjOTQ2Yzc0NmQ3OWNhZTI4OGU5MDI0N2U3N2Y3MDcyZmVmMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTItMDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnBybzogYWRkIFVu
aWNvZGVJQ1UuY3BwIHRvIFF0V2ViS2l0IGJ1aWxkCisgICAgICAgICogV1RGLnZjcHJvai9XVEYu
dmNwcm9qOiBhZGQgVW5pY29kZUlDVS5jcHAgdG8gd2luIGJ1aWxkCisgICAgICAgICogd3RmL0Rl
Y2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbCk6CisgICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6
OnRvU3RyaW5nRGVjaW1hbCk6IGFkZCBjaGFyKiB2ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDoKKyAgICAgICAgKERlY2ltYWxOdW1iZXIpOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcDogYWRkZWQKKyAgICAgICAg
KiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oOiBhZGQgSUNVX1ZFUlNJT04gbWFjcm8gYW5k
IG51bWVyaWMgbG9jYWxlIGFjY2Vzc29yCisKIDIwMTItMDQtMDUgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNFXSBSZW1vdmUgdW5uZWNlc3Nh
cnkgZnVuY3Rpb24gZGVjbGVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCA0NDg4MzRjZjc1NWY3NzBkYjFiN2M0NDViOTZiMTNjM2E0ZTU2NjhlLi5kOTgz
MTRjZDUyMjE2OTBhNTkxNzVhOWZkYzU1NjY5MDZiYWQxZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01LDYgKzUsNyBAQCBMSVNUKEFQUEVORCBKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTCiAKIExJU1QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwog
ICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQorICAgICR7SUNVX0xJQlJBUklFU30KICkKIAogTElT
VChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggOGY4YzNj
MDBmOTU4ZjUwMTM2OWM5MjY2ODI0ODc0MGJkMzg5NGZhMy4uM2ZkNDU3MmExYzg3OTAzYjkzZDlj
YTc0YmMwYWY1NTZkODg1Njg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVWlu
dDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNpbWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4KQEAgLTQwLDYgKzQxLDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogLy8gVG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBX
VEY6OlN0cmluZ0J1aWxkZXIuCiB0eXBlZGVmIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OlN0cmlu
Z0J1aWxkZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1aWxkZXI7CiAKKyNpZiBVU0UoSUNVX1VO
SUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgJiYgZGVmaW5lZChJQ1VfVkVSU0lPTikg
JiYgKElDVV9WRVJTSU9OID49IDQwNDAwKQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9S
TUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVtLmg+CisjZWxzZQorI2RlZmluZSBVU0Vf
SUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKEV4ZWNTdGF0ZSopOwpAQCAtNTUsNiArNjMsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAK
IG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwor
c3RhdGljIFVOdW1iZXJGb3JtYXQqIGNhY2hlZE51bWJlckZvcm1hdHRlciA9IDA7CitzdGF0aWMg
TXV0ZXgmIGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBt
dXRleDsKK30KKworc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2KQoreworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOworCisgICAgTG9j
a2VyPE11dGV4PiBsb2NrKGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkpOworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIFVOdW1iZXJGb3JtYXQqIG5mID0gMDsK
KyAgICBpZiAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGNh
Y2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSA9IHVudW1fZ2V0TG9jYWxlQnlUeXBlKGNhY2hlZE51
bWJlckZvcm1hdHRlciwgVUxPQ19SRVFVRVNURURfTE9DQUxFLCAmc3RhdHVzKTsKKyAgICAgICAg
QVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAgICAgQVNTRVJUKGNhY2hlZE51bWJlckZv
cm1hdHRlckxvY2FsZSk7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoY2FjaGVkTnVtYmVyRm9ybWF0
dGVyTG9jYWxlLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkpKQorICAgICAgICAgICAgbmYgPSBj
YWNoZWROdW1iZXJGb3JtYXR0ZXI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbG9j
YWxlIGNoYW5nZWQuLi4gd2UnbGwgbmVlZCBhIG5ldyBmb3JtYXR0ZXIKKyAgICAgICAgICAgIHVu
dW1fY2xvc2UoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKTsKKyAgICAgICAgICAgIGNhY2hlZE51bWJl
ckZvcm1hdHRlciA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW5mKSB7CisgICAg
ICAgIG5mID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwgMCwgMCwgY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKCFuZiB8fCBVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworICAgICAgICBjYWNo
ZWROdW1iZXJGb3JtYXR0ZXIgPSBuZjsKKyAgICB9CisKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShu
ZiwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRTLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVy
TGVuZ3RoKTsKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShuZiwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJ
VFNfVVNFRCwgMSk7CisKKyAgICBOdW1iZXJUb1VTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIGlu
dDMyX3QgbGVuZ3RoOworCisgICAgaWYgKHYuaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3Qg
bnVtID0gdi5hc0ludDMyKCk7CisgICAgICAgIGxlbmd0aCA9IHVudW1fZm9ybWF0KG5mLCBudW0s
IGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bTsKKyAgICAgICAgaWYgKHYuaXNEb3VibGUo
KSkKKyAgICAgICAgICAgIG51bSA9IHYuYXNEb3VibGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbnVtID0gdi50b051bWJlcihleGVjKTsKKworICAgICAgICBEZWNpbWFsTnVtYmVyIGQo
bnVtKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aF07CisgICAgICAgIGxlbmd0aCA9IGQudG9TdHJpbmdEZWNpbWFsKG51bWJlclN0cmlu
ZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IHVu
dW1fZm9ybWF0RGVjaW1hbChuZiwgbnVtYmVyU3RyaW5nLCBsZW5ndGgsIGJ1ZmZlciwgV1RGOjpO
dW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfQorCisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsK
KworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxl
TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2KQoreworICAgIC8vIEZJWE1FOiBOb3Qg
aW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0dXJuIHYudG9TdHJpbmcoZXhlYyk7Cit9CisKKyNl
bmRpZgorCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1i
ZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBl
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVyUHJvdG90eXBlKSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAtNDc0LDcgKzU1OCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwg
eCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1iZXIoZXhlYywganNOdW1iZXIoeCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZGRiMzAyOWM2NWEz
YzNhM2IxMmUwYmU2OGE0YTA0YTlkZmQ3YjUyLi44MGNlZDIyMzg0OWNkYmI3OWY4YjRiNmIzYTI5
YjNlYTQ0YWVkZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzYsNiArMjM2LDcgQEAg
ZW5kaWYKIGlmIFVTRV9JQ1VfVU5JQ09ERQogd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9X
VEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
aWN1L1VuaWNvZGVJY3UuaAogZW5kaWYgIyBVU0VfSUNVX1VOSUNPREUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDljYTUzM2FhYWRk
ZTAxMDdjNTllMTNiYTgyZjE4NGJhZWEzNmU3YzQuLmI4NjRmMmQyOWY2M2ZhNzk3ODkxMTZkMTBi
ZTU3MzkzMzg1YzFiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3Vy
Y2UvV1RGL1dURi5wcm8KQEAgLTIxNCw2ICsyMTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB0ZXh0
L1dURlN0cmluZy5jcHAgXAogICAgIHVuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCiAgICAg
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIFwKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcCBcCiAgICAgdW5pY29kZS9VVEY4LmNwcAogCiB1bml4OiBTT1VSQ0VTICs9IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYu
dmNwcm9qL1dURi52Y3Byb2oKaW5kZXggZWRhZTY2Y2Q2YzE0YjY4MjliMjVkNWU4MGI3MjM5MjUx
NWJmNDkxZS4uOGUyNDk5NzJhNmEzZjNiMmIzZjhhOGQ0MzM3ZjlmOWMzNWI1N2U5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysrIGIvU291cmNlL1dURi9X
VEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM4Miw2ICszODIsMTAgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5oIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHVuaWNvZGVcaWN1XFVuaWNv
ZGVJQ1UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCTwvRmlsdGVy
PgogCQk8RmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCmluZGV4IDcwMzA0ZTJlNWY2MzBk
YWMzMjBmNTRmNzhmZjdmNzUyN2FkMDY3ODMuLmRkNDliZjM2NThjNTRkYzYyYzc0OGM1MDNhNGEy
MTA4ZDI2OWZiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCkBAIC05OSwxMyArOTksMTQg
QEAgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6YnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRp
YWwoKSBjb25zdAogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKLXVuc2lnbmVkIERlY2ltYWxOdW1i
ZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgp
IGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRv
U3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZm
ZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkpOwogCiAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBh
dCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCiAgICAgQVNTRVJUKG1fcHJl
Y2lzaW9uKTsKLSAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKyAgICBUKiBuZXh0ID0gYnVmZmVy
OwogCiAgICAgLy8gaWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlIHRoZSBudW1iZXIgZGVjaW1h
bCByZXByZXNlbnRhdGlvbiBpcyBvZiB0aGUgZm9ybToKICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJv
cz5dPHNpZ25pZmljYW5kPgpAQCAtMTU1LDYgKzE1NiwxNiBAQCB1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdAoreworICAgIHJldHVybiB0b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVy
TGVuZ3RoKTsKK30KKwordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiB0
b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVyTGVuZ3RoKTsKK30KKwogdW5zaWduZWQg
RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlhbChVQ2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgs
IGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0RlY2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1YmFh
NTQ1NDBjLi43YWNkNTcyOTE4N2IyNGI5ZDJhMGRkMzMxZjBhMmM4YjZkNmFhNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmgKKysrIGIvU291cmNlL1dURi93dGYv
RGVjaW1hbE51bWJlci5oCkBAIC04NSw2ICs4NSw4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSBjb25z
dDsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0
b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KQEAgLTkz
LDYgKzk1LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHByZWNpc2lvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlY2lzaW9uOyB9CiAKIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0OworCiAgICAgYm9vbCBtX3NpZ247CiAgICAgaW50IG1fZXhwb25lbnQ7CiAg
ICAgRHRvYUJ1ZmZlciBtX3NpZ25pZmljYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCmluZGV4IDVmMzBkMDg4OTYxNTczNjc4MzgzMjE2YjkwNzVmOWViZDFkMDlhM2Eu
LjFhZGU4NDEzNzdiNGIwOGYwYWRkOWQ0OGFiMGE4ZDNhNzZhNjQ0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdU
Rl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWlu
VGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAg
ICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDFhMTNkYmJhMzU1
ODRlMDU2YzQ5MjkxZTM4N2EzMjI1NzEwZDEzMDguLmUzZjdmZGQ3N2E2NzUwMDk0Y2U1M2E3N2M5
OTdkNzU5ZTM1ODE4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05LDYgKzksNyBA
QCBMSVNUKEFQUEVORCBXVEZfU09VUkNFUwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAg
ICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlD
VS5jcHAKICkKIAogTElTVChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODQ1NjJkNDlkMTg1ODAxNGI5Zjcz
YTRmZTQ0N2NjNDJiOThiMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdW5p
Y29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0Uo
SUNVX1VOSUNPREUpCisKKyNpbmNsdWRlICJVbmljb2RlSWN1LmgiCisKKyNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7CisKK2Nv
bnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKQoreworI2lmIE9TKERBUldJTikgJiYg
VVNFKENGKSAmJiAhUExBVEZPUk0oUVQpCisgICAgLy8gTWFjIE9TIFggZG9lc24ndCBzZXQgVU5J
WCBsb2NhbGUgdG8gbWF0Y2ggdXNlci1zZWxlY3RlZCBvbmUsIHNvIElDVSBkZWZhdWx0IGRvZXNu
J3Qgd29yay4KKyAgICAvLyBGSVhNRTogTmVlZCBhIHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9j
YWxlIG9uIERhcndpbgorICAgIENSQVNIKCk7CisjZWxzZQorICAgIHJldHVybiB1bG9jX2dldERl
ZmF1bHQoKTsKKyNlbmRpZgorfQorCit9IH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYz
ZWRhYjBjOC4uY2M3NGE4MjhmNjJmZDAzM2IzNmJkNDU1ZDJmNTY3MDAwZmM2OGViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgPHVuaWNvZGUvdXN0cmluZy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdXRmMTYuaD4KIAor
I2RlZmluZSBJQ1VfVkVSU0lPTiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gKiAxMDAwMCArIFVf
SUNVX1ZFUlNJT05fTUlOT1JfTlVNICogMTAwICsgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05V
TSkKKwogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3BhY2UgVW5pY29kZSB7CiAKQEAgLTIzMSw2ICsy
MzMsMTAgQEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3QgVUNo
YXIqIGIsIGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVfRk9M
RF9DQVNFX0RFRkFVTFQpOwogfQogCitXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgY2hhciogY3Vy
cmVudE51bWVyaWNMb2NhbGVJRCgpOworCiB9IH0KIAordXNpbmcgV1RGOjpVbmljb2RlOjpjdXJy
ZW50TnVtZXJpY0xvY2FsZUlEOworCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmMTQ3Mzc5ZDQ3Y2M5MWQ0OWIzZGQyOGM3MmMzNGI5MzFiODIzNGViLi44NDEwOWE5NDJhYzc4
ZjcxMWI1MTUyMmI1ZjUxOTk5NjY2NzBiODJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTnVt
YmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBxdWl0ZSBtaW5pbWFsLCBzaW5j
ZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNldCB0aGUKKyAgICAgICAgbnVtZXJpYyBsb2NhbGUg
aW4gRFJULgorCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2Nh
bGVTdHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoaXNOb25FbXB0eVN0cmluZyk6CisKIDIwMTIt
MDQtMDUgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBBZGRlZCB0YWtlUmVjb3JkcyB0byBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHByb3BlcnRpZXMg
bGlzdCwgdG8gZml4IG1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzcyMzU3YTU2ZWZjMDE3
ZmY0NjQzOGM3NjdjY2Q2OTdlZjI1YjgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUK
K1BBU1MgaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQor
UEFTUyBpc05vbkVtcHR5U3RyaW5nKCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjOGQxOGRjMmIzMTBhOTMxMTZkOTdlYWRhYWI0MWI1ZTBjMWQ3ZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNmM3YjllZjlkMmMxZmVlMGUxZDU5ODU0YTA0MTBmMjQx
NmMyYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBpc05v
bkVtcHR5U3RyaW5nKHMpCit7CisgICAgcmV0dXJuIHR5cGVvZiBzID09ICJzdHJpbmciICYmIC9b
XlxzXSsvLnRlc3Qocyk7Cit9CisKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMC4w
KS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgt
MC4wKS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5n
KCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkiKTsK
</data>
<flag name="commit-queue"
          id="140585"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136568</attachid>
            <date>2012-04-10 16:23:27 -0700</date>
            <delta_ts>2012-04-11 11:01:03 -0700</delta_ts>
            <desc>Retry to see if elf builds</desc>
            <filename>icu.diff</filename>
            <type>text/plain</type>
            <size>16164</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZmFhZDQxZDA3NmViYTlkY2I4MmM3NDNjMTBkZDZiMjk0NDhjNjVhLi44NjBiNDM4MzAzMGU2ZTc0
ZjBmOTVkZjVmY2FlNTIxYmZkMjBhYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wNC0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZU51bWJlcik6
IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToKKwog
MjAxMi0wNC0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1NTE3M2NmOThkOTYwOTk4ZDg5YjJmOWZkMWRkMTg2Y2Fi
MTNlOWYuLjE0NTRjOTQ2Yzc0NmQ3OWNhZTI4OGU5MDI0N2U3N2Y3MDcyZmVmMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTItMDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnBybzogYWRkIFVu
aWNvZGVJQ1UuY3BwIHRvIFF0V2ViS2l0IGJ1aWxkCisgICAgICAgICogV1RGLnZjcHJvai9XVEYu
dmNwcm9qOiBhZGQgVW5pY29kZUlDVS5jcHAgdG8gd2luIGJ1aWxkCisgICAgICAgICogd3RmL0Rl
Y2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbCk6CisgICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6
OnRvU3RyaW5nRGVjaW1hbCk6IGFkZCBjaGFyKiB2ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDoKKyAgICAgICAgKERlY2ltYWxOdW1iZXIpOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcDogYWRkZWQKKyAgICAgICAg
KiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oOiBhZGQgSUNVX1ZFUlNJT04gbWFjcm8gYW5k
IG51bWVyaWMgbG9jYWxlIGFjY2Vzc29yCisKIDIwMTItMDQtMDUgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNFXSBSZW1vdmUgdW5uZWNlc3Nh
cnkgZnVuY3Rpb24gZGVjbGVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCA0NDg4MzRjZjc1NWY3NzBkYjFiN2M0NDViOTZiMTNjM2E0ZTU2NjhlLi5kOTgz
MTRjZDUyMjE2OTBhNTkxNzVhOWZkYzU1NjY5MDZiYWQxZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01LDYgKzUsNyBAQCBMSVNUKEFQUEVORCBKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTCiAKIExJU1QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwog
ICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQorICAgICR7SUNVX0xJQlJBUklFU30KICkKIAogTElT
VChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggOGY4YzNj
MDBmOTU4ZjUwMTM2OWM5MjY2ODI0ODc0MGJkMzg5NGZhMy4uM2ZkNDU3MmExYzg3OTAzYjkzZDlj
YTc0YmMwYWY1NTZkODg1Njg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVWlu
dDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNpbWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4KQEAgLTQwLDYgKzQxLDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogLy8gVG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBX
VEY6OlN0cmluZ0J1aWxkZXIuCiB0eXBlZGVmIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OlN0cmlu
Z0J1aWxkZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1aWxkZXI7CiAKKyNpZiBVU0UoSUNVX1VO
SUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgJiYgZGVmaW5lZChJQ1VfVkVSU0lPTikg
JiYgKElDVV9WRVJTSU9OID49IDQwNDAwKQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9S
TUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVtLmg+CisjZWxzZQorI2RlZmluZSBVU0Vf
SUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKEV4ZWNTdGF0ZSopOwpAQCAtNTUsNiArNjMsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAK
IG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwor
c3RhdGljIFVOdW1iZXJGb3JtYXQqIGNhY2hlZE51bWJlckZvcm1hdHRlciA9IDA7CitzdGF0aWMg
TXV0ZXgmIGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBt
dXRleDsKK30KKworc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2KQoreworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOworCisgICAgTG9j
a2VyPE11dGV4PiBsb2NrKGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkpOworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIFVOdW1iZXJGb3JtYXQqIG5mID0gMDsK
KyAgICBpZiAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGNh
Y2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSA9IHVudW1fZ2V0TG9jYWxlQnlUeXBlKGNhY2hlZE51
bWJlckZvcm1hdHRlciwgVUxPQ19SRVFVRVNURURfTE9DQUxFLCAmc3RhdHVzKTsKKyAgICAgICAg
QVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAgICAgQVNTRVJUKGNhY2hlZE51bWJlckZv
cm1hdHRlckxvY2FsZSk7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoY2FjaGVkTnVtYmVyRm9ybWF0
dGVyTG9jYWxlLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkpKQorICAgICAgICAgICAgbmYgPSBj
YWNoZWROdW1iZXJGb3JtYXR0ZXI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbG9j
YWxlIGNoYW5nZWQuLi4gd2UnbGwgbmVlZCBhIG5ldyBmb3JtYXR0ZXIKKyAgICAgICAgICAgIHVu
dW1fY2xvc2UoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKTsKKyAgICAgICAgICAgIGNhY2hlZE51bWJl
ckZvcm1hdHRlciA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW5mKSB7CisgICAg
ICAgIG5mID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwgMCwgMCwgY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKCFuZiB8fCBVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworICAgICAgICBjYWNo
ZWROdW1iZXJGb3JtYXR0ZXIgPSBuZjsKKyAgICB9CisKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShu
ZiwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRTLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVy
TGVuZ3RoKTsKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShuZiwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJ
VFNfVVNFRCwgMSk7CisKKyAgICBOdW1iZXJUb1VTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIGlu
dDMyX3QgbGVuZ3RoOworCisgICAgaWYgKHYuaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3Qg
bnVtID0gdi5hc0ludDMyKCk7CisgICAgICAgIGxlbmd0aCA9IHVudW1fZm9ybWF0KG5mLCBudW0s
IGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bTsKKyAgICAgICAgaWYgKHYuaXNEb3VibGUo
KSkKKyAgICAgICAgICAgIG51bSA9IHYuYXNEb3VibGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbnVtID0gdi50b051bWJlcihleGVjKTsKKworICAgICAgICBEZWNpbWFsTnVtYmVyIGQo
bnVtKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aF07CisgICAgICAgIGxlbmd0aCA9IGQudG9TdHJpbmdEZWNpbWFsKG51bWJlclN0cmlu
ZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IHVu
dW1fZm9ybWF0RGVjaW1hbChuZiwgbnVtYmVyU3RyaW5nLCBsZW5ndGgsIGJ1ZmZlciwgV1RGOjpO
dW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfQorCisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsK
KworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxl
TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2KQoreworICAgIC8vIEZJWE1FOiBOb3Qg
aW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0dXJuIHYudG9TdHJpbmcoZXhlYyk7Cit9CisKKyNl
bmRpZgorCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1i
ZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBl
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVyUHJvdG90eXBlKSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAtNDc0LDcgKzU1OCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwg
eCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1iZXIoZXhlYywganNOdW1iZXIoeCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZGRiMzAyOWM2NWEz
YzNhM2IxMmUwYmU2OGE0YTA0YTlkZmQ3YjUyLi44MGNlZDIyMzg0OWNkYmI3OWY4YjRiNmIzYTI5
YjNlYTQ0YWVkZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzYsNiArMjM2LDcgQEAg
ZW5kaWYKIGlmIFVTRV9JQ1VfVU5JQ09ERQogd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9X
VEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
aWN1L1VuaWNvZGVJY3UuaAogZW5kaWYgIyBVU0VfSUNVX1VOSUNPREUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDljYTUzM2FhYWRk
ZTAxMDdjNTllMTNiYTgyZjE4NGJhZWEzNmU3YzQuLmI4NjRmMmQyOWY2M2ZhNzk3ODkxMTZkMTBi
ZTU3MzkzMzg1YzFiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3Vy
Y2UvV1RGL1dURi5wcm8KQEAgLTIxNCw2ICsyMTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB0ZXh0
L1dURlN0cmluZy5jcHAgXAogICAgIHVuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCiAgICAg
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIFwKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcCBcCiAgICAgdW5pY29kZS9VVEY4LmNwcAogCiB1bml4OiBTT1VSQ0VTICs9IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYu
dmNwcm9qL1dURi52Y3Byb2oKaW5kZXggZWRhZTY2Y2Q2YzE0YjY4MjliMjVkNWU4MGI3MjM5MjUx
NWJmNDkxZS4uOGUyNDk5NzJhNmEzZjNiMmIzZjhhOGQ0MzM3ZjlmOWMzNWI1N2U5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysrIGIvU291cmNlL1dURi9X
VEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM4Miw2ICszODIsMTAgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5oIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHVuaWNvZGVcaWN1XFVuaWNv
ZGVJQ1UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCTwvRmlsdGVy
PgogCQk8RmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCmluZGV4IDcwMzA0ZTJlNWY2MzBk
YWMzMjBmNTRmNzhmZjdmNzUyN2FkMDY3ODMuLmRkNDliZjM2NThjNTRkYzYyYzc0OGM1MDNhNGEy
MTA4ZDI2OWZiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCkBAIC05OSwxMyArOTksMTQg
QEAgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6YnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRp
YWwoKSBjb25zdAogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKLXVuc2lnbmVkIERlY2ltYWxOdW1i
ZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgp
IGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRv
U3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZm
ZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkpOwogCiAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBh
dCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCiAgICAgQVNTRVJUKG1fcHJl
Y2lzaW9uKTsKLSAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKyAgICBUKiBuZXh0ID0gYnVmZmVy
OwogCiAgICAgLy8gaWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlIHRoZSBudW1iZXIgZGVjaW1h
bCByZXByZXNlbnRhdGlvbiBpcyBvZiB0aGUgZm9ybToKICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJv
cz5dPHNpZ25pZmljYW5kPgpAQCAtMTU1LDYgKzE1NiwxNiBAQCB1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdAoreworICAgIHJldHVybiB0b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVy
TGVuZ3RoKTsKK30KKwordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiB0
b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVyTGVuZ3RoKTsKK30KKwogdW5zaWduZWQg
RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlhbChVQ2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgs
IGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0RlY2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1YmFh
NTQ1NDBjLi43YWNkNTcyOTE4N2IyNGI5ZDJhMGRkMzMxZjBhMmM4YjZkNmFhNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmgKKysrIGIvU291cmNlL1dURi93dGYv
RGVjaW1hbE51bWJlci5oCkBAIC04NSw2ICs4NSw4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSBjb25z
dDsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0
b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KQEAgLTkz
LDYgKzk1LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHByZWNpc2lvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlY2lzaW9uOyB9CiAKIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0OworCiAgICAgYm9vbCBtX3NpZ247CiAgICAgaW50IG1fZXhwb25lbnQ7CiAg
ICAgRHRvYUJ1ZmZlciBtX3NpZ25pZmljYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCmluZGV4IDVmMzBkMDg4OTYxNTczNjc4MzgzMjE2YjkwNzVmOWViZDFkMDlhM2Eu
LjFhZGU4NDEzNzdiNGIwOGYwYWRkOWQ0OGFiMGE4ZDNhNzZhNjQ0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdU
Rl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWlu
VGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAg
ICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDFhMTNkYmJhMzU1
ODRlMDU2YzQ5MjkxZTM4N2EzMjI1NzEwZDEzMDguLmUzZjdmZGQ3N2E2NzUwMDk0Y2U1M2E3N2M5
OTdkNzU5ZTM1ODE4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05LDYgKzksNyBA
QCBMSVNUKEFQUEVORCBXVEZfU09VUkNFUwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAg
ICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlD
VS5jcHAKICkKIAogTElTVChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODQ1NjJkNDlkMTg1ODAxNGI5Zjcz
YTRmZTQ0N2NjNDJiOThiMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdW5p
Y29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0Uo
SUNVX1VOSUNPREUpCisKKyNpbmNsdWRlICJVbmljb2RlSWN1LmgiCisKKyNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7CisKK2Nv
bnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKQoreworI2lmIE9TKERBUldJTikgJiYg
VVNFKENGKSAmJiAhUExBVEZPUk0oUVQpCisgICAgLy8gTWFjIE9TIFggZG9lc24ndCBzZXQgVU5J
WCBsb2NhbGUgdG8gbWF0Y2ggdXNlci1zZWxlY3RlZCBvbmUsIHNvIElDVSBkZWZhdWx0IGRvZXNu
J3Qgd29yay4KKyAgICAvLyBGSVhNRTogTmVlZCBhIHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9j
YWxlIG9uIERhcndpbgorICAgIENSQVNIKCk7CisjZWxzZQorICAgIHJldHVybiB1bG9jX2dldERl
ZmF1bHQoKTsKKyNlbmRpZgorfQorCit9IH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYz
ZWRhYjBjOC4uY2M3NGE4MjhmNjJmZDAzM2IzNmJkNDU1ZDJmNTY3MDAwZmM2OGViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgPHVuaWNvZGUvdXN0cmluZy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdXRmMTYuaD4KIAor
I2RlZmluZSBJQ1VfVkVSU0lPTiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gKiAxMDAwMCArIFVf
SUNVX1ZFUlNJT05fTUlOT1JfTlVNICogMTAwICsgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05V
TSkKKwogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3BhY2UgVW5pY29kZSB7CiAKQEAgLTIzMSw2ICsy
MzMsMTAgQEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3QgVUNo
YXIqIGIsIGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVfRk9M
RF9DQVNFX0RFRkFVTFQpOwogfQogCitXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgY2hhciogY3Vy
cmVudE51bWVyaWNMb2NhbGVJRCgpOworCiB9IH0KIAordXNpbmcgV1RGOjpVbmljb2RlOjpjdXJy
ZW50TnVtZXJpY0xvY2FsZUlEOworCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmMTQ3Mzc5ZDQ3Y2M5MWQ0OWIzZGQyOGM3MmMzNGI5MzFiODIzNGViLi44NDEwOWE5NDJhYzc4
ZjcxMWI1MTUyMmI1ZjUxOTk5NjY2NzBiODJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTnVt
YmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBxdWl0ZSBtaW5pbWFsLCBzaW5j
ZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNldCB0aGUKKyAgICAgICAgbnVtZXJpYyBsb2NhbGUg
aW4gRFJULgorCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2Nh
bGVTdHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoaXNOb25FbXB0eVN0cmluZyk6CisKIDIwMTIt
MDQtMDUgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBBZGRlZCB0YWtlUmVjb3JkcyB0byBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHByb3BlcnRpZXMg
bGlzdCwgdG8gZml4IG1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzcyMzU3YTU2ZWZjMDE3
ZmY0NjQzOGM3NjdjY2Q2OTdlZjI1YjgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUK
K1BBU1MgaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQor
UEFTUyBpc05vbkVtcHR5U3RyaW5nKCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjOGQxOGRjMmIzMTBhOTMxMTZkOTdlYWRhYWI0MWI1ZTBjMWQ3ZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNmM3YjllZjlkMmMxZmVlMGUxZDU5ODU0YTA0MTBmMjQx
NmMyYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBpc05v
bkVtcHR5U3RyaW5nKHMpCit7CisgICAgcmV0dXJuIHR5cGVvZiBzID09ICJzdHJpbmciICYmIC9b
XlxzXSsvLnRlc3Qocyk7Cit9CisKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMC4w
KS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgt
MC4wKS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5n
KCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkiKTsK
</data>
<flag name="commit-queue"
          id="141439"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136665</attachid>
            <date>2012-04-11 06:59:26 -0700</date>
            <delta_ts>2012-04-11 11:01:03 -0700</delta_ts>
            <desc>Checking Qt build again</desc>
            <filename>icu.diff</filename>
            <type>text/plain</type>
            <size>16164</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZmFhZDQxZDA3NmViYTlkY2I4MmM3NDNjMTBkZDZiMjk0NDhjNjVhLi44NjBiNDM4MzAzMGU2ZTc0
ZjBmOTVkZjVmY2FlNTIxYmZkMjBhYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wNC0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZU51bWJlcik6
IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToKKwog
MjAxMi0wNC0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1NTE3M2NmOThkOTYwOTk4ZDg5YjJmOWZkMWRkMTg2Y2Fi
MTNlOWYuLjE0NTRjOTQ2Yzc0NmQ3OWNhZTI4OGU5MDI0N2U3N2Y3MDcyZmVmMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTItMDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnBybzogYWRkIFVu
aWNvZGVJQ1UuY3BwIHRvIFF0V2ViS2l0IGJ1aWxkCisgICAgICAgICogV1RGLnZjcHJvai9XVEYu
dmNwcm9qOiBhZGQgVW5pY29kZUlDVS5jcHAgdG8gd2luIGJ1aWxkCisgICAgICAgICogd3RmL0Rl
Y2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbCk6CisgICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6
OnRvU3RyaW5nRGVjaW1hbCk6IGFkZCBjaGFyKiB2ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDoKKyAgICAgICAgKERlY2ltYWxOdW1iZXIpOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcDogYWRkZWQKKyAgICAgICAg
KiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oOiBhZGQgSUNVX1ZFUlNJT04gbWFjcm8gYW5k
IG51bWVyaWMgbG9jYWxlIGFjY2Vzc29yCisKIDIwMTItMDQtMDUgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNFXSBSZW1vdmUgdW5uZWNlc3Nh
cnkgZnVuY3Rpb24gZGVjbGVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCA0NDg4MzRjZjc1NWY3NzBkYjFiN2M0NDViOTZiMTNjM2E0ZTU2NjhlLi5kOTgz
MTRjZDUyMjE2OTBhNTkxNzVhOWZkYzU1NjY5MDZiYWQxZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01LDYgKzUsNyBAQCBMSVNUKEFQUEVORCBKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTCiAKIExJU1QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwog
ICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQorICAgICR7SUNVX0xJQlJBUklFU30KICkKIAogTElT
VChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggOGY4YzNj
MDBmOTU4ZjUwMTM2OWM5MjY2ODI0ODc0MGJkMzg5NGZhMy4uM2ZkNDU3MmExYzg3OTAzYjkzZDlj
YTc0YmMwYWY1NTZkODg1Njg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVWlu
dDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNpbWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4KQEAgLTQwLDYgKzQxLDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogLy8gVG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBX
VEY6OlN0cmluZ0J1aWxkZXIuCiB0eXBlZGVmIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OlN0cmlu
Z0J1aWxkZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1aWxkZXI7CiAKKyNpZiBVU0UoSUNVX1VO
SUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgJiYgZGVmaW5lZChJQ1VfVkVSU0lPTikg
JiYgKElDVV9WRVJTSU9OID49IDQwNDAwKQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9S
TUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVtLmg+CisjZWxzZQorI2RlZmluZSBVU0Vf
SUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKEV4ZWNTdGF0ZSopOwpAQCAtNTUsNiArNjMsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAK
IG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwor
c3RhdGljIFVOdW1iZXJGb3JtYXQqIGNhY2hlZE51bWJlckZvcm1hdHRlciA9IDA7CitzdGF0aWMg
TXV0ZXgmIGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBt
dXRleDsKK30KKworc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2KQoreworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOworCisgICAgTG9j
a2VyPE11dGV4PiBsb2NrKGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkpOworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIFVOdW1iZXJGb3JtYXQqIG5mID0gMDsK
KyAgICBpZiAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGNh
Y2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSA9IHVudW1fZ2V0TG9jYWxlQnlUeXBlKGNhY2hlZE51
bWJlckZvcm1hdHRlciwgVUxPQ19SRVFVRVNURURfTE9DQUxFLCAmc3RhdHVzKTsKKyAgICAgICAg
QVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAgICAgQVNTRVJUKGNhY2hlZE51bWJlckZv
cm1hdHRlckxvY2FsZSk7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoY2FjaGVkTnVtYmVyRm9ybWF0
dGVyTG9jYWxlLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkpKQorICAgICAgICAgICAgbmYgPSBj
YWNoZWROdW1iZXJGb3JtYXR0ZXI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbG9j
YWxlIGNoYW5nZWQuLi4gd2UnbGwgbmVlZCBhIG5ldyBmb3JtYXR0ZXIKKyAgICAgICAgICAgIHVu
dW1fY2xvc2UoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKTsKKyAgICAgICAgICAgIGNhY2hlZE51bWJl
ckZvcm1hdHRlciA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW5mKSB7CisgICAg
ICAgIG5mID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwgMCwgMCwgY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKCFuZiB8fCBVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworICAgICAgICBjYWNo
ZWROdW1iZXJGb3JtYXR0ZXIgPSBuZjsKKyAgICB9CisKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShu
ZiwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRTLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVy
TGVuZ3RoKTsKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShuZiwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJ
VFNfVVNFRCwgMSk7CisKKyAgICBOdW1iZXJUb1VTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIGlu
dDMyX3QgbGVuZ3RoOworCisgICAgaWYgKHYuaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3Qg
bnVtID0gdi5hc0ludDMyKCk7CisgICAgICAgIGxlbmd0aCA9IHVudW1fZm9ybWF0KG5mLCBudW0s
IGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bTsKKyAgICAgICAgaWYgKHYuaXNEb3VibGUo
KSkKKyAgICAgICAgICAgIG51bSA9IHYuYXNEb3VibGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbnVtID0gdi50b051bWJlcihleGVjKTsKKworICAgICAgICBEZWNpbWFsTnVtYmVyIGQo
bnVtKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aF07CisgICAgICAgIGxlbmd0aCA9IGQudG9TdHJpbmdEZWNpbWFsKG51bWJlclN0cmlu
ZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IHVu
dW1fZm9ybWF0RGVjaW1hbChuZiwgbnVtYmVyU3RyaW5nLCBsZW5ndGgsIGJ1ZmZlciwgV1RGOjpO
dW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfQorCisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsK
KworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxl
TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2KQoreworICAgIC8vIEZJWE1FOiBOb3Qg
aW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0dXJuIHYudG9TdHJpbmcoZXhlYyk7Cit9CisKKyNl
bmRpZgorCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1i
ZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBl
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVyUHJvdG90eXBlKSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAtNDc0LDcgKzU1OCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwg
eCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1iZXIoZXhlYywganNOdW1iZXIoeCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZGRiMzAyOWM2NWEz
YzNhM2IxMmUwYmU2OGE0YTA0YTlkZmQ3YjUyLi44MGNlZDIyMzg0OWNkYmI3OWY4YjRiNmIzYTI5
YjNlYTQ0YWVkZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzYsNiArMjM2LDcgQEAg
ZW5kaWYKIGlmIFVTRV9JQ1VfVU5JQ09ERQogd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9X
VEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
aWN1L1VuaWNvZGVJY3UuaAogZW5kaWYgIyBVU0VfSUNVX1VOSUNPREUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDljYTUzM2FhYWRk
ZTAxMDdjNTllMTNiYTgyZjE4NGJhZWEzNmU3YzQuLmI4NjRmMmQyOWY2M2ZhNzk3ODkxMTZkMTBi
ZTU3MzkzMzg1YzFiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3Vy
Y2UvV1RGL1dURi5wcm8KQEAgLTIxNCw2ICsyMTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB0ZXh0
L1dURlN0cmluZy5jcHAgXAogICAgIHVuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCiAgICAg
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIFwKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcCBcCiAgICAgdW5pY29kZS9VVEY4LmNwcAogCiB1bml4OiBTT1VSQ0VTICs9IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYu
dmNwcm9qL1dURi52Y3Byb2oKaW5kZXggZWRhZTY2Y2Q2YzE0YjY4MjliMjVkNWU4MGI3MjM5MjUx
NWJmNDkxZS4uOGUyNDk5NzJhNmEzZjNiMmIzZjhhOGQ0MzM3ZjlmOWMzNWI1N2U5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysrIGIvU291cmNlL1dURi9X
VEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM4Miw2ICszODIsMTAgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5oIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHVuaWNvZGVcaWN1XFVuaWNv
ZGVJQ1UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCTwvRmlsdGVy
PgogCQk8RmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCmluZGV4IDcwMzA0ZTJlNWY2MzBk
YWMzMjBmNTRmNzhmZjdmNzUyN2FkMDY3ODMuLmRkNDliZjM2NThjNTRkYzYyYzc0OGM1MDNhNGEy
MTA4ZDI2OWZiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCkBAIC05OSwxMyArOTksMTQg
QEAgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6YnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRp
YWwoKSBjb25zdAogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKLXVuc2lnbmVkIERlY2ltYWxOdW1i
ZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgp
IGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRv
U3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZm
ZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkpOwogCiAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBh
dCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCiAgICAgQVNTRVJUKG1fcHJl
Y2lzaW9uKTsKLSAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKyAgICBUKiBuZXh0ID0gYnVmZmVy
OwogCiAgICAgLy8gaWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlIHRoZSBudW1iZXIgZGVjaW1h
bCByZXByZXNlbnRhdGlvbiBpcyBvZiB0aGUgZm9ybToKICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJv
cz5dPHNpZ25pZmljYW5kPgpAQCAtMTU1LDYgKzE1NiwxNiBAQCB1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdAoreworICAgIHJldHVybiB0b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVy
TGVuZ3RoKTsKK30KKwordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiB0
b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVyTGVuZ3RoKTsKK30KKwogdW5zaWduZWQg
RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlhbChVQ2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgs
IGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0RlY2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1YmFh
NTQ1NDBjLi43YWNkNTcyOTE4N2IyNGI5ZDJhMGRkMzMxZjBhMmM4YjZkNmFhNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmgKKysrIGIvU291cmNlL1dURi93dGYv
RGVjaW1hbE51bWJlci5oCkBAIC04NSw2ICs4NSw4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSBjb25z
dDsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0
b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KQEAgLTkz
LDYgKzk1LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHByZWNpc2lvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlY2lzaW9uOyB9CiAKIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0OworCiAgICAgYm9vbCBtX3NpZ247CiAgICAgaW50IG1fZXhwb25lbnQ7CiAg
ICAgRHRvYUJ1ZmZlciBtX3NpZ25pZmljYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCmluZGV4IDVmMzBkMDg4OTYxNTczNjc4MzgzMjE2YjkwNzVmOWViZDFkMDlhM2Eu
LjFhZGU4NDEzNzdiNGIwOGYwYWRkOWQ0OGFiMGE4ZDNhNzZhNjQ0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdU
Rl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWlu
VGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAg
ICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDFhMTNkYmJhMzU1
ODRlMDU2YzQ5MjkxZTM4N2EzMjI1NzEwZDEzMDguLmUzZjdmZGQ3N2E2NzUwMDk0Y2U1M2E3N2M5
OTdkNzU5ZTM1ODE4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05LDYgKzksNyBA
QCBMSVNUKEFQUEVORCBXVEZfU09VUkNFUwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAg
ICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlD
VS5jcHAKICkKIAogTElTVChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODQ1NjJkNDlkMTg1ODAxNGI5Zjcz
YTRmZTQ0N2NjNDJiOThiMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdW5p
Y29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0Uo
SUNVX1VOSUNPREUpCisKKyNpbmNsdWRlICJVbmljb2RlSWN1LmgiCisKKyNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7CisKK2Nv
bnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKQoreworI2lmIE9TKERBUldJTikgJiYg
VVNFKENGKSAmJiAhUExBVEZPUk0oUVQpCisgICAgLy8gTWFjIE9TIFggZG9lc24ndCBzZXQgVU5J
WCBsb2NhbGUgdG8gbWF0Y2ggdXNlci1zZWxlY3RlZCBvbmUsIHNvIElDVSBkZWZhdWx0IGRvZXNu
J3Qgd29yay4KKyAgICAvLyBGSVhNRTogTmVlZCBhIHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9j
YWxlIG9uIERhcndpbgorICAgIENSQVNIKCk7CisjZWxzZQorICAgIHJldHVybiB1bG9jX2dldERl
ZmF1bHQoKTsKKyNlbmRpZgorfQorCit9IH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYz
ZWRhYjBjOC4uY2M3NGE4MjhmNjJmZDAzM2IzNmJkNDU1ZDJmNTY3MDAwZmM2OGViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgPHVuaWNvZGUvdXN0cmluZy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdXRmMTYuaD4KIAor
I2RlZmluZSBJQ1VfVkVSU0lPTiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gKiAxMDAwMCArIFVf
SUNVX1ZFUlNJT05fTUlOT1JfTlVNICogMTAwICsgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05V
TSkKKwogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3BhY2UgVW5pY29kZSB7CiAKQEAgLTIzMSw2ICsy
MzMsMTAgQEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3QgVUNo
YXIqIGIsIGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVfRk9M
RF9DQVNFX0RFRkFVTFQpOwogfQogCitXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgY2hhciogY3Vy
cmVudE51bWVyaWNMb2NhbGVJRCgpOworCiB9IH0KIAordXNpbmcgV1RGOjpVbmljb2RlOjpjdXJy
ZW50TnVtZXJpY0xvY2FsZUlEOworCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmMTQ3Mzc5ZDQ3Y2M5MWQ0OWIzZGQyOGM3MmMzNGI5MzFiODIzNGViLi44NDEwOWE5NDJhYzc4
ZjcxMWI1MTUyMmI1ZjUxOTk5NjY2NzBiODJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTnVt
YmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBxdWl0ZSBtaW5pbWFsLCBzaW5j
ZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNldCB0aGUKKyAgICAgICAgbnVtZXJpYyBsb2NhbGUg
aW4gRFJULgorCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2Nh
bGVTdHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoaXNOb25FbXB0eVN0cmluZyk6CisKIDIwMTIt
MDQtMDUgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBBZGRlZCB0YWtlUmVjb3JkcyB0byBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHByb3BlcnRpZXMg
bGlzdCwgdG8gZml4IG1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzcyMzU3YTU2ZWZjMDE3
ZmY0NjQzOGM3NjdjY2Q2OTdlZjI1YjgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUK
K1BBU1MgaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQor
UEFTUyBpc05vbkVtcHR5U3RyaW5nKCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjOGQxOGRjMmIzMTBhOTMxMTZkOTdlYWRhYWI0MWI1ZTBjMWQ3ZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNmM3YjllZjlkMmMxZmVlMGUxZDU5ODU0YTA0MTBmMjQx
NmMyYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBpc05v
bkVtcHR5U3RyaW5nKHMpCit7CisgICAgcmV0dXJuIHR5cGVvZiBzID09ICJzdHJpbmciICYmIC9b
XlxzXSsvLnRlc3Qocyk7Cit9CisKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMC4w
KS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgt
MC4wKS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5n
KCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkiKTsK
</data>
<flag name="commit-queue"
          id="141546"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136705</attachid>
            <date>2012-04-11 11:01:03 -0700</date>
            <delta_ts>2013-03-18 08:39:48 -0700</delta_ts>
            <desc>Require libicuuc &gt;= 4.6</desc>
            <filename>icu.diff</filename>
            <type>text/plain</type>
            <size>16164</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZmFhZDQxZDA3NmViYTlkY2I4MmM3NDNjMTBkZDZiMjk0NDhjNjVhLi44NjBiNDM4MzAzMGU2ZTc0
ZjBmOTVkZjVmY2FlNTIxYmZkMjBhYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wNC0wNSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpjYWNoZWROdW1iZXJG
b3JtYXR0ZXJNdXRleCk6IGFkZGVkCisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZU51bWJlcik6
IGFkZGVkCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToKKwog
MjAxMi0wNC0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1NTE3M2NmOThkOTYwOTk4ZDg5YjJmOWZkMWRkMTg2Y2Fi
MTNlOWYuLjE0NTRjOTQ2Yzc0NmQ3OWNhZTI4OGU5MDI0N2U3N2Y3MDcyZmVmMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTItMDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnBybzogYWRkIFVu
aWNvZGVJQ1UuY3BwIHRvIFF0V2ViS2l0IGJ1aWxkCisgICAgICAgICogV1RGLnZjcHJvai9XVEYu
dmNwcm9qOiBhZGQgVW5pY29kZUlDVS5jcHAgdG8gd2luIGJ1aWxkCisgICAgICAgICogd3RmL0Rl
Y2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbCk6CisgICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6
OnRvU3RyaW5nRGVjaW1hbCk6IGFkZCBjaGFyKiB2ZXJzaW9uCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDoKKyAgICAgICAgKERlY2ltYWxOdW1iZXIpOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcDogYWRkZWQKKyAgICAgICAg
KiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oOiBhZGQgSUNVX1ZFUlNJT04gbWFjcm8gYW5k
IG51bWVyaWMgbG9jYWxlIGFjY2Vzc29yCisKIDIwMTItMDQtMDUgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNFXSBSZW1vdmUgdW5uZWNlc3Nh
cnkgZnVuY3Rpb24gZGVjbGVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCA0NDg4MzRjZjc1NWY3NzBkYjFiN2M0NDViOTZiMTNjM2E0ZTU2NjhlLi5kOTgz
MTRjZDUyMjE2OTBhNTkxNzVhOWZkYzU1NjY5MDZiYWQxZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01LDYgKzUsNyBAQCBMSVNUKEFQUEVORCBKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTCiAKIExJU1QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwog
ICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQorICAgICR7SUNVX0xJQlJBUklFU30KICkKIAogTElT
VChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggOGY4YzNj
MDBmOTU4ZjUwMTM2OWM5MjY2ODI0ODc0MGJkMzg5NGZhMy4uM2ZkNDU3MmExYzg3OTAzYjkzZDlj
YTc0YmMwYWY1NTZkODg1Njg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVWlu
dDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNpbWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4KQEAgLTQwLDYgKzQxLDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogLy8gVG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBX
VEY6OlN0cmluZ0J1aWxkZXIuCiB0eXBlZGVmIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OlN0cmlu
Z0J1aWxkZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1aWxkZXI7CiAKKyNpZiBVU0UoSUNVX1VO
SUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgJiYgZGVmaW5lZChJQ1VfVkVSU0lPTikg
JiYgKElDVV9WRVJTSU9OID49IDQwNjAwKQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9S
TUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVtLmg+CisjZWxzZQorI2RlZmluZSBVU0Vf
SUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKEV4ZWNTdGF0ZSopOwpAQCAtNTUsNiArNjMsODIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAK
IG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwor
c3RhdGljIFVOdW1iZXJGb3JtYXQqIGNhY2hlZE51bWJlckZvcm1hdHRlciA9IDA7CitzdGF0aWMg
TXV0ZXgmIGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBt
dXRleDsKK30KKworc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2KQoreworICAgIEFTU0VSVCh2LmlzTnVtYmVyKCkpOworCisgICAgTG9j
a2VyPE11dGV4PiBsb2NrKGNhY2hlZE51bWJlckZvcm1hdHRlck11dGV4KCkpOworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIFVOdW1iZXJGb3JtYXQqIG5mID0gMDsK
KyAgICBpZiAoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGNh
Y2hlZE51bWJlckZvcm1hdHRlckxvY2FsZSA9IHVudW1fZ2V0TG9jYWxlQnlUeXBlKGNhY2hlZE51
bWJlckZvcm1hdHRlciwgVUxPQ19SRVFVRVNURURfTE9DQUxFLCAmc3RhdHVzKTsKKyAgICAgICAg
QVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAgICAgQVNTRVJUKGNhY2hlZE51bWJlckZv
cm1hdHRlckxvY2FsZSk7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoY2FjaGVkTnVtYmVyRm9ybWF0
dGVyTG9jYWxlLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkpKQorICAgICAgICAgICAgbmYgPSBj
YWNoZWROdW1iZXJGb3JtYXR0ZXI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbG9j
YWxlIGNoYW5nZWQuLi4gd2UnbGwgbmVlZCBhIG5ldyBmb3JtYXR0ZXIKKyAgICAgICAgICAgIHVu
dW1fY2xvc2UoY2FjaGVkTnVtYmVyRm9ybWF0dGVyKTsKKyAgICAgICAgICAgIGNhY2hlZE51bWJl
ckZvcm1hdHRlciA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW5mKSB7CisgICAg
ICAgIG5mID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwgMCwgMCwgY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKCFuZiB8fCBVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworICAgICAgICBjYWNo
ZWROdW1iZXJGb3JtYXR0ZXIgPSBuZjsKKyAgICB9CisKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShu
ZiwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRTLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVy
TGVuZ3RoKTsKKyAgICB1bnVtX3NldEF0dHJpYnV0ZShuZiwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJ
VFNfVVNFRCwgMSk7CisKKyAgICBOdW1iZXJUb1VTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIGlu
dDMyX3QgbGVuZ3RoOworCisgICAgaWYgKHYuaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3Qg
bnVtID0gdi5hc0ludDMyKCk7CisgICAgICAgIGxlbmd0aCA9IHVudW1fZm9ybWF0KG5mLCBudW0s
IGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bTsKKyAgICAgICAgaWYgKHYuaXNEb3VibGUo
KSkKKyAgICAgICAgICAgIG51bSA9IHYuYXNEb3VibGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbnVtID0gdi50b051bWJlcihleGVjKTsKKworICAgICAgICBEZWNpbWFsTnVtYmVyIGQo
bnVtKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aF07CisgICAgICAgIGxlbmd0aCA9IGQudG9TdHJpbmdEZWNpbWFsKG51bWJlclN0cmlu
ZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IHVu
dW1fZm9ybWF0RGVjaW1hbChuZiwgbnVtYmVyU3RyaW5nLCBsZW5ndGgsIGJ1ZmZlciwgV1RGOjpO
dW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfQorCisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsK
KworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxl
TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2KQoreworICAgIC8vIEZJWE1FOiBOb3Qg
aW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0dXJuIHYudG9TdHJpbmcoZXhlYyk7Cit9CisKKyNl
bmRpZgorCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1i
ZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBl
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVyUHJvdG90eXBlKSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAtNDc0LDcgKzU1OCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwg
eCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1iZXIoZXhlYywganNOdW1iZXIoeCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZGRiMzAyOWM2NWEz
YzNhM2IxMmUwYmU2OGE0YTA0YTlkZmQ3YjUyLi44MGNlZDIyMzg0OWNkYmI3OWY4YjRiNmIzYTI5
YjNlYTQ0YWVkZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzYsNiArMjM2LDcgQEAg
ZW5kaWYKIGlmIFVTRV9JQ1VfVU5JQ09ERQogd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9X
VEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
aWN1L1VuaWNvZGVJY3UuaAogZW5kaWYgIyBVU0VfSUNVX1VOSUNPREUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDljYTUzM2FhYWRk
ZTAxMDdjNTllMTNiYTgyZjE4NGJhZWEzNmU3YzQuLmI4NjRmMmQyOWY2M2ZhNzk3ODkxMTZkMTBi
ZTU3MzkzMzg1YzFiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3Vy
Y2UvV1RGL1dURi5wcm8KQEAgLTIxNCw2ICsyMTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB0ZXh0
L1dURlN0cmluZy5jcHAgXAogICAgIHVuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCiAgICAg
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIFwKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcCBcCiAgICAgdW5pY29kZS9VVEY4LmNwcAogCiB1bml4OiBTT1VSQ0VTICs9IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYu
dmNwcm9qL1dURi52Y3Byb2oKaW5kZXggZWRhZTY2Y2Q2YzE0YjY4MjliMjVkNWU4MGI3MjM5MjUx
NWJmNDkxZS4uOGUyNDk5NzJhNmEzZjNiMmIzZjhhOGQ0MzM3ZjlmOWMzNWI1N2U5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysrIGIvU291cmNlL1dURi9X
VEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM4Miw2ICszODIsMTAgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5oIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHVuaWNvZGVcaWN1XFVuaWNv
ZGVJQ1UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCTwvRmlsdGVy
PgogCQk8RmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCmluZGV4IDcwMzA0ZTJlNWY2MzBk
YWMzMjBmNTRmNzhmZjdmNzUyN2FkMDY3ODMuLmRkNDliZjM2NThjNTRkYzYyYzc0OGM1MDNhNGEy
MTA4ZDI2OWZiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCkBAIC05OSwxMyArOTksMTQg
QEAgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6YnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRp
YWwoKSBjb25zdAogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKLXVuc2lnbmVkIERlY2ltYWxOdW1i
ZXI6OnRvU3RyaW5nRGVjaW1hbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgp
IGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRv
U3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZm
ZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkpOwogCiAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBh
dCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCiAgICAgQVNTRVJUKG1fcHJl
Y2lzaW9uKTsKLSAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKyAgICBUKiBuZXh0ID0gYnVmZmVy
OwogCiAgICAgLy8gaWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlIHRoZSBudW1iZXIgZGVjaW1h
bCByZXByZXNlbnRhdGlvbiBpcyBvZiB0aGUgZm9ybToKICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJv
cz5dPHNpZ25pZmljYW5kPgpAQCAtMTU1LDYgKzE1NiwxNiBAQCB1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOwogfQogCit1bnNpZ25lZCBEZWNpbWFsTnVt
YmVyOjp0b1N0cmluZ0RlY2ltYWwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdAoreworICAgIHJldHVybiB0b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVy
TGVuZ3RoKTsKK30KKwordW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiB0
b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVyTGVuZ3RoKTsKK30KKwogdW5zaWduZWQg
RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlhbChVQ2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5ndGgs
IGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0RlY2ltYWxOdW1iZXIuaAppbmRleCA2MWVmZmNkZDNkYzZmY2RkMTM1MmY2MDFjNTc1ZjU1YmFh
NTQ1NDBjLi43YWNkNTcyOTE4N2IyNGI5ZDJhMGRkMzMxZjBhMmM4YjZkNmFhNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmgKKysrIGIvU291cmNlL1dURi93dGYv
RGVjaW1hbE51bWJlci5oCkBAIC04NSw2ICs4NSw4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSBjb25z
dDsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0
b1N0cmluZ0V4cG9uZW50aWFsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KQEAgLTkz
LDYgKzk1LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHByZWNpc2lvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlY2lzaW9uOyB9CiAKIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0OworCiAgICAgYm9vbCBtX3NpZ247CiAgICAgaW50IG1fZXhwb25lbnQ7CiAg
ICAgRHRvYUJ1ZmZlciBtX3NpZ25pZmljYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCmluZGV4IDVmMzBkMDg4OTYxNTczNjc4MzgzMjE2YjkwNzVmOWViZDFkMDlhM2Eu
LjFhZGU4NDEzNzdiNGIwOGYwYWRkOWQ0OGFiMGE4ZDNhNzZhNjQ0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIExJU1QoQVBQRU5EIFdU
Rl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxhY2tiZXJyeS9NYWlu
VGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAg
ICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBMSVNUKElOU0VSVCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDFhMTNkYmJhMzU1
ODRlMDU2YzQ5MjkxZTM4N2EzMjI1NzEwZDEzMDguLmUzZjdmZGQ3N2E2NzUwMDk0Y2U1M2E3N2M5
OTdkNzU5ZTM1ODE4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05LDYgKzksNyBA
QCBMSVNUKEFQUEVORCBXVEZfU09VUkNFUwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAg
ICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlD
VS5jcHAKICkKIAogTElTVChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODQ1NjJkNDlkMTg1ODAxNGI5Zjcz
YTRmZTQ0N2NjNDJiOThiMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdW5p
Y29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0Uo
SUNVX1VOSUNPREUpCisKKyNpbmNsdWRlICJVbmljb2RlSWN1LmgiCisKKyNpbmNsdWRlIDx1bmlj
b2RlL3Vsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7CisKK2Nv
bnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKQoreworI2lmIE9TKERBUldJTikgJiYg
VVNFKENGKSAmJiAhUExBVEZPUk0oUVQpCisgICAgLy8gTWFjIE9TIFggZG9lc24ndCBzZXQgVU5J
WCBsb2NhbGUgdG8gbWF0Y2ggdXNlci1zZWxlY3RlZCBvbmUsIHNvIElDVSBkZWZhdWx0IGRvZXNu
J3Qgd29yay4KKyAgICAvLyBGSVhNRTogTmVlZCBhIHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9j
YWxlIG9uIERhcndpbgorICAgIENSQVNIKCk7CisjZWxzZQorICAgIHJldHVybiB1bG9jX2dldERl
ZmF1bHQoKTsKKyNlbmRpZgorfQorCit9IH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSWN1LmgKaW5kZXggZmU1MjRiMmEyZGE0ODA2ZWQ0NzVlZTc4YzZhY2Y2ZjYz
ZWRhYjBjOC4uY2M3NGE4MjhmNjJmZDAzM2IzNmJkNDU1ZDJmNTY3MDAwZmM2OGViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgPHVuaWNvZGUvdXN0cmluZy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdXRmMTYuaD4KIAor
I2RlZmluZSBJQ1VfVkVSU0lPTiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gKiAxMDAwMCArIFVf
SUNVX1ZFUlNJT05fTUlOT1JfTlVNICogMTAwICsgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05V
TSkKKwogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3BhY2UgVW5pY29kZSB7CiAKQEAgLTIzMSw2ICsy
MzMsMTAgQEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3QgVUNo
YXIqIGIsIGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVfRk9M
RF9DQVNFX0RFRkFVTFQpOwogfQogCitXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgY2hhciogY3Vy
cmVudE51bWVyaWNMb2NhbGVJRCgpOworCiB9IH0KIAordXNpbmcgV1RGOjpVbmljb2RlOjpjdXJy
ZW50TnVtZXJpY0xvY2FsZUlEOworCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmMTQ3Mzc5ZDQ3Y2M5MWQ0OWIzZGQyOGM3MmMzNGI5MzFiODIzNGViLi44NDEwOWE5NDJhYzc4
ZjcxMWI1MTUyMmI1ZjUxOTk5NjY2NzBiODJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTnVt
YmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBxdWl0ZSBtaW5pbWFsLCBzaW5j
ZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNldCB0aGUKKyAgICAgICAgbnVtZXJpYyBsb2NhbGUg
aW4gRFJULgorCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2Nh
bGVTdHJpbmcuanM6IEFkZGVkLgorICAgICAgICAoaXNOb25FbXB0eVN0cmluZyk6CisKIDIwMTIt
MDQtMDUgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBBZGRlZCB0YWtlUmVjb3JkcyB0byBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHByb3BlcnRpZXMg
bGlzdCwgdG8gZml4IG1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzcyMzU3YTU2ZWZjMDE3
ZmY0NjQzOGM3NjdjY2Q2OTdlZjI1YjgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUK
K1BBU1MgaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQor
UEFTUyBpc05vbkVtcHR5U3RyaW5nKCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjOGQxOGRjMmIzMTBhOTMxMTZkOTdlYWRhYWI0MWI1ZTBjMWQ3ZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNmM3YjllZjlkMmMxZmVlMGUxZDU5ODU0YTA0MTBmMjQx
NmMyYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBpc05v
bkVtcHR5U3RyaW5nKHMpCit7CisgICAgcmV0dXJuIHR5cGVvZiBzID09ICJzdHJpbmciICYmIC9b
XlxzXSsvLnRlc3Qocyk7Cit9CisKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMC4w
KS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5nKCgt
MC4wKS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5n
KCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkiKTsK
</data>
<flag name="review"
          id="141598"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193569</attachid>
            <date>2013-03-18 08:39:48 -0700</date>
            <delta_ts>2013-03-18 09:57:26 -0700</delta_ts>
            <desc>Rebased and updated patch</desc>
            <filename>formatLocaleNumber.diff</filename>
            <type>text/plain</type>
            <size>15116</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNjUyOWEyLi4yMDZiZDBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDMt
MTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IGltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xv
Y2FsZVN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChpc05vbkVtcHR5
U3RyaW5nKToKKwogMjAxMy0wMy0xOCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NjAzMy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCmluZGV4IGM0ZGI5MDMuLjAzZGM2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAzLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxl
U3RyaW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEJhc2VkIG9uIHBhdGNoIGJ5IEVsaSBGaWRsZXIgPGVmaWRsZXJAcmltLmNvbT4g
YW5kIFJvYiBCdWlzCisgICAgICAgIDxyYnVpc0ByaW0uY29tPi4KKworICAgICAgICAqIFBsYXRm
b3JtRWZsLmNtYWtlOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OmxvY2FsZU51bWJlckZvcm1hdHRlcik6IEhlbHBl
ciBmdW5jdGlvbiB0byBnZXQgb3IgY3JlYXRlIHRoZQorICAgICAgICBudW1iZXIgZm9ybWF0dGVy
LgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOgorICAgICAgICAoSlNDOjpudW1i
ZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6IFVzZSBmb3JtYXRMb2NhbGVOdW1iZXIuCisKIDIw
MTMtMDMtMTYgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAg
IERpc2FibGUgSGlnaCBEUEkgQ2FudmFzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmNTA5MmI1Li5kNmIwMTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3Ry
aW5nKCkgdXNpbmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHBhdGNoIGJ5IEVsaSBGaWRsZXIgPGVmaWRsZXJAcmltLmNvbT4gYW5k
IFJvYiBCdWlzCisgICAgICAgIDxyYnVpc0ByaW0uY29tPi4KKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dU
Ri52Y3Byb2o6CisgICAgICAgICogd3RmL0RlY2ltYWxOdW1iZXIuY3BwOgorICAgICAgICAoV1RG
KToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbCk6Cisg
ICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbCk6IEFkZCBjaGFyKiB2
ZXJzaW9uLgorICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmg6CisgICAgICAgIChEZWNpbWFs
TnVtYmVyKToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiB3dGYvdW5pY29kZS9pY3UvVW5p
Y29kZUlDVS5jcHA6IEFkZGVkLgorICAgICAgICAoVW5pY29kZSk6CisgICAgICAgIChXVEY6OlVu
aWNvZGU6OmN1cnJlbnROdW1lcmljTG9jYWxlSUQpOgorICAgICAgICAoV1RGKToKKyAgICAgICAg
KiB3dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oOgorICAgICAgICAoVW5pY29kZSk6IEFkZCBJ
Q1VfVkVSU0lPTiBtYWNybyBhbmQgbnVtZXJpYyBsb2NhbGUgYWNjZXNzb3IuCisKIDIwMTMtMDMt
MTUgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U10gVXBkYXRlIFN0cmluZ0ltcGwncyBlcXVhbCB0byBoYXZlIGEgc2luZ2xlIHZlcnNpb24gb24g
YWxsIHN1cHBvcnRlZCBBcHBsZSBDUFVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pz
L251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pz
L251bWJlci10b0xvY2FsZVN0cmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYmM3MjM1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K1BBU1MgaXNOb25FbXB0eVN0cmluZygoMC4wKS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQ
QVNTIGlzTm9uRW1wdHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BB
U1MgaXNOb25FbXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzhkMThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVtYmVyLXRv
TG9jYWxlU3RyaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjZjN2I5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxlU3Ry
aW5nLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gaXNOb25FbXB0eVN0cmluZyhzKQorewor
ICAgIHJldHVybiB0eXBlb2YgcyA9PSAic3RyaW5nIiAmJiAvW15cc10rLy50ZXN0KHMpOworfQor
CitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVTdHJpbmcoKSki
KTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2NhbGVTdHJpbmco
KSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxl
U3RyaW5nKCkpIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1F
ZmwuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXgg
ZDJiMDYyZi4uNWIzZDMxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtNCw2ICs0LDcgQEAgbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfU09VUkNFUwogCiBs
aXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKICAgICAke0lDVV9JMThOX0xJQlJB
UklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CiApCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDFmMDIyNzAuLjMyNTRhZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAt
MzEsMTAgKzMxLDE4IEBACiAjaW5jbHVkZSAiVWludDE2V2l0aEZyYWN0aW9uLmgiCiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0
Zi9EZWNpbWFsTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EvZG91YmxlLWNvbnZlcnNpb24uaD4K
IAorI2lmIFVTRShJQ1VfVU5JQ09ERSkgJiYgIVVDT05GSUdfTk9fRk9STUFUVElORyAmJiBkZWZp
bmVkKElDVV9WRVJTSU9OKSAmJiAoSUNVX1ZFUlNJT04gPj0gNDA2MDApCisjZGVmaW5lIFVTRV9J
Q1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HIDEKKyNpbmNsdWRlIDx1bmljb2RlL3VudW0uaD4KKyNl
bHNlCisjZGVmaW5lIFVTRV9JQ1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HIDAKKyNlbmRpZgorCiB1
c2luZyBuYW1lc3BhY2UgV1RGOjpkb3VibGVfY29udmVyc2lvbjsKIAogLy8gVG8gYXZvaWQgY29u
ZmxpY3Qgd2l0aCBXVEY6OlN0cmluZ0J1aWxkZXIuCkBAIC01NSw2ICs2Myw2MCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbihF
eGVjU3RhdGUqKTsKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBVU0VfSUNVX0ZPUl9OVU1CRVJf
Rk9STUFUVElORworc3RhdGljIFVOdW1iZXJGb3JtYXQqIGxvY2FsZU51bWJlckZvcm1hdHRlcigp
Cit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKE11dGV4JiwgbXV0ZXggPSAqbmV3
IE11dGV4KTsKKyAgICBMb2NrZXI8TXV0ZXg+IGxvY2sobXV0ZXgpOworICAgIHN0YXRpYyBVTnVt
YmVyRm9ybWF0KiBmb3JtYXR0ZXIgPSAwOworICAgIGlmICghZm9ybWF0dGVyKSB7CisgICAgICAg
IFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBmb3JtYXR0ZXIgPSB1
bnVtX29wZW4oVU5VTV9ERUZBVUxULCAwLCAwLCBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCksIDAs
ICZzdGF0dXMpOworICAgICAgICBpZiAoVV9TVUNDRVNTKHN0YXR1cykpIHsKKyAgICAgICAgICAg
IHVudW1fc2V0QXR0cmlidXRlKGZvcm1hdHRlciwgVU5VTV9NQVhfU0lHTklGSUNBTlRfRElHSVRT
LCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgICAgIHVudW1fc2V0
QXR0cmlidXRlKGZvcm1hdHRlciwgVU5VTV9TSUdOSUZJQ0FOVF9ESUdJVFNfVVNFRCwgMSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZm9ybWF0dGVyOworfQorCitzdGF0aWMgSlND
ZWxsKiBmb3JtYXRMb2NhbGVOdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIEFTU0VSVCh2YWx1ZS5pc051bWJlcigpKTsKKworICAgIFVOdW1iZXJGb3JtYXQqIGZv
cm1hdHRlciA9IGxvY2FsZU51bWJlckZvcm1hdHRlcigpOworICAgIGlmICghZm9ybWF0dGVyKQor
ICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsKKworICAgIFVDaGFyIGJ1ZmZlcltX
VEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoXTsKKyAgICBpbnQzMl90IGJ1ZmZlckxlbmd0
aDsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGlmICh2YWx1
ZS5pc0ludDMyKCkpIHsKKyAgICAgICAgaW50MzJfdCBudW1iZXIgPSB2YWx1ZS5hc0ludDMyKCk7
CisgICAgICAgIGJ1ZmZlckxlbmd0aCA9IHVudW1fZm9ybWF0KGZvcm1hdHRlciwgbnVtYmVyLCBi
dWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS50b051bWJlcihleGVjKTsK
KyAgICAgICAgRGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyKG51bWJlcik7CisgICAgICAgIGNo
YXIgbnVtYmVyU3RyaW5nW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGhdOworICAgICAg
ICBidWZmZXJMZW5ndGggPSBkZWNpbWFsTnVtYmVyLnRvU3RyaW5nRGVjaW1hbChudW1iZXJTdHJp
bmcsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgpOworICAgICAgICBidWZmZXJMZW5n
dGggPSB1bnVtX2Zvcm1hdERlY2ltYWwoZm9ybWF0dGVyLCBudW1iZXJTdHJpbmcsIGJ1ZmZlckxl
bmd0aCwgYnVmZmVyLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoLCAwLCAmc3RhdHVz
KTsKKyAgICB9CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4ganNF
bXB0eVN0cmluZyhleGVjKTsKKworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywg
U3RyaW5nKGJ1ZmZlciwgYnVmZmVyTGVuZ3RoKSk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBK
U0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUp
Cit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQuCisKKyAgICByZXR1cm4ganNT
dHJpbmcoZXhlYywgdmFsdWUudG9TdHJpbmcoZXhlYykpOworfQorI2VuZGlmIC8vIFVTRV9JQ1Vf
Rk9SX05VTUJFUl9GT1JNQVRUSU5HCisKIGNvbnN0IENsYXNzSW5mbyBOdW1iZXJQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIk51bWJlciIsICZOdW1iZXJPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRl
OjpudW1iZXJQcm90b3R5cGVUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShOdW1iZXJQcm90b3R5
cGUpIH07CiAKIC8qIFNvdXJjZSBmb3IgTnVtYmVyUHJvdG90eXBlLmx1dC5oCkBAIC01MjAsNyAr
NTgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0xv
Y2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpLCB4KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHgpLnRvU3RyaW5nKGV4
ZWMpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZU51bWJlcihleGVj
LCBqc051bWJlcih4KSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1ZhbHVlT2YoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IGIxZTgyNWYuLjE5NGZlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI2Niw2ICsy
NjYsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9Vbmlj
b2RlTWFjcm9zRnJvbUlDVS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xs
YXRvcklDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3Uu
aCBcCisgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAgXAogICAg
IFNvdXJjZS9XVEYvd3RmL3VybC9hcGkvUGFyc2VkVVJMLmNwcCBcCiAgICAgU291cmNlL1dURi93
dGYvdXJsL2FwaS9QYXJzZWRVUkwuaCBcCiAgICAgU291cmNlL1dURi93dGYvdXJsL2FwaS9VUkxC
dWZmZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dU
Ri5wcm8KaW5kZXggZGY5ODAxZC4uNzczMTQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYu
cHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMjUyLDYgKzI1Miw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIHRleHQvV1RGU3RyaW5nLmNwcCBcCiAgICAgdW5pY29kZS9Db2xsYXRvckRlZmF1
bHQuY3BwIFwKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAorICAgIHVuaWNvZGUv
aWN1L1VuaWNvZGVJQ1UuY3BwIFwKICAgICB1bmljb2RlL1VURjguY3BwCiAKIHVuaXg6IFNPVVJD
RVMgKz0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCAzZmM5Yjc5Li5lYTA0ZTcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2Uv
V1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtMzgyLDYgKzM4MiwxMCBAQAogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHd0Zlx1bmljb2RlXGljdVxVbmljb2RlSWN1LmgiCiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcdW5pY29k
ZVxpY3VcVW5pY29kZUlDVS5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8L0Zp
bHRlcj4KIAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0RlY2ltYWxOdW1iZXIuY3BwIGIvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAKaW5k
ZXggZDMzYTVhZS4uYTc0ZTUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGVjaW1hbE51
bWJlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTk5LDEz
ICs5OSwxNCBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjpidWZmZXJMZW5ndGhGb3JTdHJpbmdF
eHBvbmVudGlhbCgpIGNvbnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQgRGVj
aW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKExDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZl
ckxlbmd0aCkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordW5zaWduZWQgRGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsSW1wbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0
aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3Ro
ID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0RlY2ltYWwoKSk7CiAKICAgICAvLyBTaG91bGQgYWx3
YXlzIGJlIGF0IGxlYXN0IG9uZSBkaWdpdCB0byBhZGQgdG8gdGhlIHN0cmluZyEKICAgICBBU1NF
UlQobV9wcmVjaXNpb24pOwotICAgIExDaGFyKiBuZXh0ID0gYnVmZmVyOworICAgIFQqIG5leHQg
PSBidWZmZXI7CiAKICAgICAvLyBpZiB0aGUgZXhwb25lbnQgaXMgbmVnYXRpdmUgdGhlIG51bWJl
ciBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlzIG9mIHRoZSBmb3JtOgogICAgIC8vIFs8c2lnbj5d
MC5bPHplcm9zPl08c2lnbmlmaWNhbmQ+CkBAIC0xNTUsNiArMTU2LDE2IEBAIHVuc2lnbmVkIERl
Y2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZm
ZXJMZW5ndGgpIGNvCiAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CiB9CiAKK3Vuc2lnbmVkIERl
Y2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZm
ZXJMZW5ndGgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVmZmVy
LCBidWZmZXJMZW5ndGgpOworfQorCit1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0Rl
Y2ltYWwoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVmZmVyLCBidWZmZXJMZW5ndGgpOworfQorCiB1
bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4cG9uZW50aWFsKExDaGFyKiBidWZmZXIs
IHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZl
ckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFs
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5oIGIvU291cmNl
L1dURi93dGYvRGVjaW1hbE51bWJlci5oCmluZGV4IDE4MTkxMTAuLmZlNzQ3MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9E
ZWNpbWFsTnVtYmVyLmgKQEAgLTg1LDYgKzg1LDggQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRf
UFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgpIGNvbnN0
OwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbChMQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworICAgIFdURl9FWFBPUlRf
UFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBi
dWZmZXJMZW5ndGgpIGNvbnN0OworCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRv
U3RyaW5nRXhwb25lbnRpYWwoTENoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBj
b25zdDsKIAogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbjsgfQpAQCAtOTMs
NiArOTUsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgcHJlY2lzaW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wcmVjaXNpb247IH0KIAogcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
dW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsSW1wbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxl
bmd0aCkgY29uc3Q7CisKICAgICBib29sIG1fc2lnbjsKICAgICBpbnQgbV9leHBvbmVudDsKICAg
ICBEdG9hQnVmZmVyIG1fc2lnbmlmaWNhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUJsYWNrQmVy
cnkuY21ha2UKaW5kZXggYTdmZmY5My4uZDUzNWY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZQpAQCAtNSw2ICs1LDcgQEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMK
ICAgICBUaHJlYWRpbmdQdGhyZWFkcy5jcHAKICAgICBibGFja2JlcnJ5L01haW5UaHJlYWRCbGFj
a0JlcnJ5LmNwcAogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAorICAgIG5pY29kZS9p
Y3UvVW5pY29kZUlDVS5jcHAKICkKIAogbGlzdChJTlNFUlQgV1RGX0lOQ0xVREVfRElSRUNUT1JJ
RVMgMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTY1ZjA2Li42MjczOWI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTAsNiArMTAsNyBAQCBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAgICAgdW5pY29kZS9pY3UvQ29s
bGF0b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAKICkKIAogbGlzdChB
UFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9p
Y3UvVW5pY29kZUlDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzVjNzc5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVW5pY29kZUljdS5oIgorCisjaWYgVVNFKElD
VV9VTklDT0RFKQorCisjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CisKK25hbWVzcGFjZSBXVEYg
eworbmFtZXNwYWNlIFVuaWNvZGUgeworCisjaWYgT1MoREFSV0lOKSAmJiBVU0UoQ0YpICYmICFQ
TEFURk9STShRVCkKKy8vIE1hYyBPUyBYIGRvZXNuJ3Qgc2V0IFVOSVggbG9jYWxlIHRvIG1hdGNo
IHVzZXItc2VsZWN0ZWQgb25lLCBzbyBJQ1UgZGVmYXVsdCBkb2Vzbid0IHdvcmsuCisvLyBGSVhN
RTogTmVlZCBhIHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9jYWxlIG9uIERhcndpbi4KKyNlbHNl
Citjb25zdCBjaGFyKiBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gdWxv
Y19nZXREZWZhdWx0KCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgVW5pY29kZQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShJQ1VfVU5JQ09ERSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaCBiL1NvdXJjZS9XVEYv
d3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAppbmRleCA0ODY3ZjY1Li4yMGNiY2ViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291
cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCkBAIC0zMSw2ICszMSw4IEBACiAj
aW5jbHVkZSA8dW5pY29kZS91c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91dGYxNi5oPgog
CisjZGVmaW5lIElDVV9WRVJTSU9OIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSAqIDEwMDAwICsg
VV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gKiAxMDAgKyBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxf
TlVNKQorCiBuYW1lc3BhY2UgV1RGIHsKIAogbmFtZXNwYWNlIFVuaWNvZGUgewpAQCAtMjI4LDEw
ICsyMzAsMTQgQEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3Qg
VUNoYXIqIGIsIGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVf
Rk9MRF9DQVNFX0RFRkFVTFQpOwogfQogCitXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgY2hhciog
Y3VycmVudE51bWVyaWNMb2NhbGVJRCgpOworCiB9IC8vIG5hbWVzcGFjZSBVbmljb2RlCiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgogCit1c2luZyBXVEY6OlVuaWNvZGU6OmN1cnJlbnROdW1lcmljTG9j
YWxlSUQ7CisKICNlbmRpZiAvLyBVU0UoSUNVX1VOSUNPREUpCiAKICNlbmRpZiAvLyBXVEZfVU5J
Q09ERV9JQ1VfSAo=
</data>
<flag name="commit-queue"
          id="215148"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193588</attachid>
            <date>2013-03-18 09:57:26 -0700</date>
            <delta_ts>2013-04-12 01:01:19 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>formatLocaleNumber2.diff</filename>
            <type>text/plain</type>
            <size>15620</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNjUyOWEyLi4yMDZiZDBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDMt
MTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IGltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL251bWJlci10b0xv
Y2FsZVN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChpc05vbkVtcHR5
U3RyaW5nKToKKwogMjAxMy0wMy0xOCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NjAzMy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzcyMzU3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgwLjApLnRvTG9j
YWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1MgaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2Nh
bGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgxMjM0LjU2NykudG9M
b2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2Fs
ZVN0cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjOGQxOGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0
cmluZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVy
LXRvTG9jYWxlU3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVt
YmVyLXRvTG9jYWxlU3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQyNmM3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10
ZXN0cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBp
c05vbkVtcHR5U3RyaW5nKHMpCit7CisgICAgcmV0dXJuIHR5cGVvZiBzID09ICJzdHJpbmciICYm
IC9bXlxzXSsvLnRlc3Qocyk7Cit9CisKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygo
MC4wKS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3RyaW5n
KCgtMC4wKS50b0xvY2FsZVN0cmluZygpKSIpOworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3Ry
aW5nKCgxMjM0LjU2NykudG9Mb2NhbGVTdHJpbmcoKSkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CmluZGV4IGM0ZGI5MDMuLjAzZGM2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTAzLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBpbXBsZW1lbnQgTnVtYmVyLnRvTG9jYWxlU3RyaW5nKCkgdXNp
bmcgSUNVCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NzAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJh
c2VkIG9uIHBhdGNoIGJ5IEVsaSBGaWRsZXIgPGVmaWRsZXJAcmltLmNvbT4gYW5kIFJvYiBCdWlz
CisgICAgICAgIDxyYnVpc0ByaW0uY29tPi4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtl
OgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQyk6
CisgICAgICAgIChKU0M6OmxvY2FsZU51bWJlckZvcm1hdHRlcik6IEhlbHBlciBmdW5jdGlvbiB0
byBnZXQgb3IgY3JlYXRlIHRoZQorICAgICAgICBudW1iZXIgZm9ybWF0dGVyLgorICAgICAgICAo
SlNDOjpmb3JtYXRMb2NhbGVOdW1iZXIpOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyk6IFVzZSBmb3JtYXRMb2NhbGVOdW1iZXIuCisKIDIwMTMtMDMtMTYgIFBy
YXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgSGln
aCBEUEkgQ2FudmFzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IGQyYjA2MmYuLjViM2QzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTQsNiArNCw3IEBAIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfTElCUkFSSUVTCiAgICAgJHtJQ1VfSTE4
Tl9MSUJSQVJJRVN9CisgICAgJHtJQ1VfTElCUkFSSUVTfQogKQogCiBsaXN0KEFQUEVORCBKYXZh
U2NyaXB0Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCAxZjAyMjcwLi4zMjU0YWYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5j
cHAKQEAgLTMxLDEwICszMSwxOCBAQAogI2luY2x1ZGUgIlVpbnQxNldpdGhGcmFjdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNs
dWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hL2RvdWJsZS1jb252ZXJz
aW9uLmg+CiAKKyNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcg
JiYgZGVmaW5lZChJQ1VfVkVSU0lPTikgJiYgKElDVV9WRVJTSU9OID49IDQwNjAwKQorI2RlZmlu
ZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAxCisjaW5jbHVkZSA8dW5pY29kZS91bnVt
Lmg+CisjZWxzZQorI2RlZmluZSBVU0VfSUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORyAwCisjZW5k
aWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjo6ZG91YmxlX2NvbnZlcnNpb247CiAKIC8vIFRvIGF2
b2lkIGNvbmZsaWN0IHdpdGggV1RGOjpTdHJpbmdCdWlsZGVyLgpAQCAtNTUsNiArNjMsNjAgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVj
aXNpb24oRXhlY1N0YXRlKik7CiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFX0lDVV9GT1Jf
TlVNQkVSX0ZPUk1BVFRJTkcKK3N0YXRpYyBVTnVtYmVyRm9ybWF0KiBsb2NhbGVOdW1iZXJGb3Jt
YXR0ZXIoKQoreworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhNdXRleCYsIG11dGV4
ID0gKm5ldyBNdXRleCk7CisgICAgTG9ja2VyPE11dGV4PiBsb2NrKG11dGV4KTsKKyAgICBzdGF0
aWMgVU51bWJlckZvcm1hdCogZm9ybWF0dGVyID0gMDsKKyAgICBpZiAoIWZvcm1hdHRlcikgewor
ICAgICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgZm9ybWF0
dGVyID0gdW51bV9vcGVuKFVOVU1fREVGQVVMVCwgMCwgMCwgY3VycmVudE51bWVyaWNMb2NhbGVJ
RCgpLCAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfU1VDQ0VTUyhzdGF0dXMpKSB7CisgICAg
ICAgICAgICB1bnVtX3NldEF0dHJpYnV0ZShmb3JtYXR0ZXIsIFVOVU1fTUFYX1NJR05JRklDQU5U
X0RJR0lUUywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgICAgICB1
bnVtX3NldEF0dHJpYnV0ZShmb3JtYXR0ZXIsIFVOVU1fU0lHTklGSUNBTlRfRElHSVRTX1VTRUQs
IDEpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZvcm1hdHRlcjsKK30KKworc3Rh
dGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSkKK3sKKyAgICBBU1NFUlQodmFsdWUuaXNOdW1iZXIoKSk7CisKKyAgICBVTnVtYmVyRm9y
bWF0KiBmb3JtYXR0ZXIgPSBsb2NhbGVOdW1iZXJGb3JtYXR0ZXIoKTsKKyAgICBpZiAoIWZvcm1h
dHRlcikKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICBVQ2hhciBi
dWZmZXJbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aF07CisgICAgaW50MzJfdCBidWZm
ZXJMZW5ndGg7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBp
ZiAodmFsdWUuaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgbnVtYmVyID0gdmFsdWUuYXNJ
bnQzMigpOworICAgICAgICBidWZmZXJMZW5ndGggPSB1bnVtX2Zvcm1hdChmb3JtYXR0ZXIsIG51
bWJlciwgYnVmZmVyLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoLCAwLCAmc3RhdHVz
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb3VibGUgbnVtYmVyID0gdmFsdWUudG9OdW1iZXIo
ZXhlYyk7CisgICAgICAgIERlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcihudW1iZXIpOworICAg
ICAgICBjaGFyIG51bWJlclN0cmluZ1tXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoXTsK
KyAgICAgICAgYnVmZmVyTGVuZ3RoID0gZGVjaW1hbE51bWJlci50b1N0cmluZ0RlY2ltYWwobnVt
YmVyU3RyaW5nLCBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgYnVm
ZmVyTGVuZ3RoID0gdW51bV9mb3JtYXREZWNpbWFsKGZvcm1hdHRlciwgbnVtYmVyU3RyaW5nLCBi
dWZmZXJMZW5ndGgsIGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwg
JnN0YXR1cyk7CisgICAgfQorICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0
dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5n
KGV4ZWMsIFN0cmluZyhidWZmZXIsIGJ1ZmZlckxlbmd0aCkpOworfQorI2Vsc2UKK3N0YXRpYyBp
bmxpbmUgSlNDZWxsKiBmb3JtYXRMb2NhbGVOdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorCisgICAgcmV0
dXJuIGpzU3RyaW5nKGV4ZWMsIHZhbHVlLnRvU3RyaW5nKGV4ZWMpKTsKK30KKyNlbmRpZiAvLyBV
U0VfSUNVX0ZPUl9OVU1CRVJfRk9STUFUVElORworCiBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJOdW1iZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8sIDAsIEV4
ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVtYmVy
UHJvdG90eXBlKSB9OwogCiAvKiBTb3VyY2UgZm9yIE51bWJlclByb3RvdHlwZS5sdXQuaApAQCAt
NTIwLDcgKzU4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghdG9UaGlzTnVtYmVy
KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0
cmluZyhleGVjKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVOdW1i
ZXIoZXhlYywganNOdW1iZXIoeCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjUwOTJiNS4u
YTlkMzlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wMy0xOCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgaW1wbGVtZW50IE51bWJlci50
b0xvY2FsZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBieSBFbGkgRmlkbGVyIDxlZmlkbGVyQHJp
bS5jb20+IGFuZCBSb2IgQnVpcworICAgICAgICA8cmJ1aXNAcmltLmNvbT4uCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAgICAqIFdU
Ri5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIHd0Zi9E
ZWNpbWFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OkRlY2ltYWxO
dW1iZXI6OnRvU3RyaW5nRGVjaW1hbEltcGwpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwpOiBBZGQgY2hhciogdmVyc2lvbi4KKyAgICAgICAgKiB3dGYvRGVj
aW1hbE51bWJlci5oOgorICAgICAgICAoRGVjaW1hbE51bWJlcik6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6
CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFVuaWNvZGUpOgorICAgICAgICAoV1RGOjpVbmljb2RlOjpjdXJyZW50TnVtZXJpY0xvY2Fs
ZUlEKToKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJ
Y3UuaDoKKyAgICAgICAgKFVuaWNvZGUpOiBBZGQgSUNVX1ZFUlNJT04gbWFjcm8gYW5kIG51bWVy
aWMgbG9jYWxlIGFjY2Vzc29yLgorCiAyMDEzLTAzLTE1ICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFVwZGF0ZSBTdHJpbmdJbXBsJ3MgZXF1
YWwgdG8gaGF2ZSBhIHNpbmdsZSB2ZXJzaW9uIG9uIGFsbCBzdXBwb3J0ZWQgQXBwbGUgQ1BVcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIxZTgyNWYuLjE5NGZlNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTI2Niw2ICsyNjYsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNl
L1dURi93dGYvdW5pY29kZS9Vbmljb2RlTWFjcm9zRnJvbUlDVS5oIFwKICAgICBTb3VyY2UvV1RG
L3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3Vu
aWNvZGUvaWN1L1VuaWNvZGVJY3UuaCBcCisgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9pY3Uv
VW5pY29kZUlDVS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL3VybC9hcGkvUGFyc2VkVVJMLmNw
cCBcCiAgICAgU291cmNlL1dURi93dGYvdXJsL2FwaS9QYXJzZWRVUkwuaCBcCiAgICAgU291cmNl
L1dURi93dGYvdXJsL2FwaS9VUkxCdWZmZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri5neXBpIGIvU291cmNlL1dURi9XVEYuZ3lwaQppbmRleCAwYjM5NmZjLi4zZjkxNWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAg
LTI2Miw2ICsyNjIsNyBAQAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL1VURjguY3BwJywKICAg
ICAgICAgICAgICd3dGYvdW5pY29kZS9Vbmljb2RlTWFjcm9zRnJvbUlDVS5oJywKICAgICAgICAg
ICAgICd3dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwJywKKyAgICAgICAgICAgICd3dGYv
dW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3dj
aGFyL1VuaWNvZGVXY2hhci5jcHAnLAogICAgICAgICAgICAgJ3d0Zi91bmljb2RlL3djaGFyL1Vu
aWNvZGVXY2hhci5oJywKICAgICAgICAgICAgICd3dGYvd2luL01haW5UaHJlYWRXaW4uY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCBkZjk4MDFkLi43NzMxNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIv
U291cmNlL1dURi9XVEYucHJvCkBAIC0yNTIsNiArMjUyLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
dGV4dC9XVEZTdHJpbmcuY3BwIFwKICAgICB1bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHAgXAog
ICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgdW5pY29kZS9pY3UvVW5pY29k
ZUlDVS5jcHAgXAogICAgIHVuaWNvZGUvVVRGOC5jcHAKIAogdW5peDogU09VUkNFUyArPSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IDNmYzliNzkuLmVhMDRlNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZj
cHJvai9XVEYudmNwcm9qCkBAIC0zODIsNiArMzgyLDEwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cd3RmXHVuaWNvZGVcaWN1XFVuaWNvZGVJY3UuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0Zlx1bmljb2RlXGljdVxVbmlj
b2RlSUNVLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KIAkJCTwvRmlsdGVyPgogCQk8
L0ZpbHRlcj4KIAkJPEZpbHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVjaW1hbE51
bWJlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcAppbmRleCBkMzNhNWFl
Li5hNzRlNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcApAQCAtOTksMTMgKzk5LDE0IEBA
IHVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OmJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFs
KCkgY29uc3QKICAgICByZXR1cm4gbGVuZ3RoOwogfQogCi11bnNpZ25lZCBEZWNpbWFsTnVtYmVy
Ojp0b1N0cmluZ0RlY2ltYWwoTENoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBj
b25zdAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0
cmluZ0RlY2ltYWxJbXBsKFQqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAog
ewogICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBidWZmZXJMZW5ndGggPj0gYnVmZmVy
TGVuZ3RoRm9yU3RyaW5nRGVjaW1hbCgpKTsKIAogICAgIC8vIFNob3VsZCBhbHdheXMgYmUgYXQg
bGVhc3Qgb25lIGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQogICAgIEFTU0VSVChtX3ByZWNp
c2lvbik7Ci0gICAgTENoYXIqIG5leHQgPSBidWZmZXI7CisgICAgVCogbmV4dCA9IGJ1ZmZlcjsK
IAogICAgIC8vIGlmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwg
cmVwcmVzZW50YXRpb24gaXMgb2YgdGhlIGZvcm06CiAgICAgLy8gWzxzaWduPl0wLls8emVyb3M+
XTxzaWduaWZpY2FuZD4KQEAgLTE1NSw2ICsxNTYsMTYgQEAgdW5zaWduZWQgRGVjaW1hbE51bWJl
cjo6dG9TdHJpbmdEZWNpbWFsKExDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y28KICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKIH0KIAordW5zaWduZWQgRGVjaW1hbE51bWJl
cjo6dG9TdHJpbmdEZWNpbWFsKExDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdG9TdHJpbmdEZWNpbWFsSW1wbChidWZmZXIsIGJ1ZmZlckxl
bmd0aCk7Cit9CisKK3Vuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9T
dHJpbmdEZWNpbWFsSW1wbChidWZmZXIsIGJ1ZmZlckxlbmd0aCk7Cit9CisKIHVuc2lnbmVkIERl
Y2ltYWxOdW1iZXI6OnRvU3RyaW5nRXhwb25lbnRpYWwoTENoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
YnVmZmVyTGVuZ3RoKSBjb25zdAogewogICAgIEFTU0VSVF9VTlVTRUQoYnVmZmVyTGVuZ3RoLCBi
dWZmZXJMZW5ndGggPj0gYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9E
ZWNpbWFsTnVtYmVyLmgKaW5kZXggMTgxOTExMC4uZmU3NDcwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvRGVjaW1hbE51bWJlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1i
ZXIuaApAQCAtODUsNiArODUsOCBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVu
c2lnbmVkIGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkgY29uc3Q7CiAKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKExDaGFyKiBidWZmZXIs
IHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVu
c2lnbmVkIHRvU3RyaW5nRGVjaW1hbChjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0
aCkgY29uc3Q7CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdFeHBv
bmVudGlhbChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OwogCiAg
ICAgYm9vbCBzaWduKCkgY29uc3QgeyByZXR1cm4gbV9zaWduOyB9CkBAIC05Myw2ICs5NSw4IEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBwcmVjaXNpb24oKSBjb25zdCB7IHJldHVybiBtX3ByZWNp
c2lvbjsgfQogCiBwcml2YXRlOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1bnNpZ25lZCB0
b1N0cmluZ0RlY2ltYWxJbXBsKFQqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25z
dDsKKwogICAgIGJvb2wgbV9zaWduOwogICAgIGludCBtX2V4cG9uZW50OwogICAgIER0b2FCdWZm
ZXIgbV9zaWduaWZpY2FuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxh
Y2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpp
bmRleCBhN2ZmZjkzLi44Yjc0YThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0JlcnJ5
LmNtYWtlCkBAIC01LDYgKzUsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIFRocmVh
ZGluZ1B0aHJlYWRzLmNwcAogICAgIGJsYWNrYmVycnkvTWFpblRocmVhZEJsYWNrQmVycnkuY3Bw
CiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29k
ZUlDVS5jcHAKICkKIAogbGlzdChJTlNFUlQgV1RGX0lOQ0xVREVfRElSRUNUT1JJRVMgMApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTY1ZjA2Li42MjczOWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVmbC5jbWFrZQpAQCAtMTAsNiArMTAsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwog
ICAgIFRocmVhZGluZ1B0aHJlYWRzLmNwcAogCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwCisgICAgdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAKICkKIAogbGlzdChBUFBFTkQgV1RG
X0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29k
ZUlDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzVjNzc5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlDVS5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVW5pY29kZUljdS5oIgorCisjaWYgVVNFKElDVV9VTklDT0RF
KQorCisjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CisKK25hbWVzcGFjZSBXVEYgeworbmFtZXNw
YWNlIFVuaWNvZGUgeworCisjaWYgT1MoREFSV0lOKSAmJiBVU0UoQ0YpICYmICFQTEFURk9STShR
VCkKKy8vIE1hYyBPUyBYIGRvZXNuJ3Qgc2V0IFVOSVggbG9jYWxlIHRvIG1hdGNoIHVzZXItc2Vs
ZWN0ZWQgb25lLCBzbyBJQ1UgZGVmYXVsdCBkb2Vzbid0IHdvcmsuCisvLyBGSVhNRTogTmVlZCBh
IHdheSB0byBnZXQgdGhlIG51bWVyaWMgbG9jYWxlIG9uIERhcndpbi4KKyNlbHNlCitjb25zdCBj
aGFyKiBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gdWxvY19nZXREZWZh
dWx0KCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgVW5pY29kZQorCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShJQ1VfVU5JQ09ERSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNv
ZGUvaWN1L1VuaWNvZGVJY3UuaAppbmRleCA0ODY3ZjY1Li4yMGNiY2ViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKKysrIGIvU291cmNlL1dURi93
dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8
dW5pY29kZS91c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91dGYxNi5oPgogCisjZGVmaW5l
IElDVV9WRVJTSU9OIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSAqIDEwMDAwICsgVV9JQ1VfVkVS
U0lPTl9NSU5PUl9OVU0gKiAxMDAgKyBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVNKQorCiBu
YW1lc3BhY2UgV1RGIHsKIAogbmFtZXNwYWNlIFVuaWNvZGUgewpAQCAtMjI4LDEwICsyMzAsMTQg
QEAgaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogYSwgY29uc3QgVUNoYXIqIGIs
IGludCBsZW4pCiAgICAgcmV0dXJuIHVfbWVtY2FzZWNtcChhLCBiLCBsZW4sIFVfRk9MRF9DQVNF
X0RFRkFVTFQpOwogfQogCitXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgY2hhciogY3VycmVudE51
bWVyaWNMb2NhbGVJRCgpOworCiB9IC8vIG5hbWVzcGFjZSBVbmljb2RlCiAKIH0gLy8gbmFtZXNw
YWNlIFdURgogCit1c2luZyBXVEY6OlVuaWNvZGU6OmN1cnJlbnROdW1lcmljTG9jYWxlSUQ7CisK
ICNlbmRpZiAvLyBVU0UoSUNVX1VOSUNPREUpCiAKICNlbmRpZiAvLyBXVEZfVU5JQ09ERV9JQ1Vf
SAo=
</data>
<flag name="commit-queue"
          id="215208"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197728</attachid>
            <date>2013-04-12 01:01:19 -0700</date>
            <delta_ts>2013-05-31 01:33:32 -0700</delta_ts>
            <desc>Updated patch to remove gyp changes</desc>
            <filename>bb-locale-to-string.diff</filename>
            <type>text/plain</type>
            <size>15133</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNGY3MWY5Li40NDllMmY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDMt
MTggIEVsaSBGaWRsZXIgIDxlZmlkbGVyQHJpbS5jb20+CisKKyAgICAgICAgaW1wbGVtZW50IE51
bWJlci50b0xvY2FsZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBhcmUgcXVpdGUgbWluaW1hbCwgc2lu
Y2Ugd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBzZXQKKyAgICAgICAgdGhlIG51bWVyaWMgbG9jYWxl
IGluIERSVC4KKworICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9j
YWxlU3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGlzTm9uRW1wdHlTdHJpbmcpOgorCiAyMDEz
LTA0LTExICBTaGV6YW4gQmFpZyAgPHNiYWlnMUBibG9vbWJlcmcubmV0PgogCiAgICAgICAgIFNl
bGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNzIzNTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKDAuMCku
dG9Mb2NhbGVTdHJpbmcoKSkgaXMgdHJ1ZQorUEFTUyBpc05vbkVtcHR5U3RyaW5nKCgtMC4wKS50
b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIGlzTm9uRW1wdHlTdHJpbmcoKDEyMzQuNTY3
KS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9u
dW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRv
TG9jYWxlU3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2M4
ZDE4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvTG9j
YWxlU3RyaW5nLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9u
dW1iZXItdG9Mb2NhbGVTdHJpbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDI2YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2Ny
aXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0
aW9uIGlzTm9uRW1wdHlTdHJpbmcocykKK3sKKyAgICByZXR1cm4gdHlwZW9mIHMgPT0gInN0cmlu
ZyIgJiYgL1teXHNdKy8udGVzdChzKTsKK30KKworc2hvdWxkQmVUcnVlKCJpc05vbkVtcHR5U3Ry
aW5nKCgwLjApLnRvTG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlT
dHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIik7CitzaG91bGRCZVRydWUoImlzTm9uRW1w
dHlTdHJpbmcoKDEyMzQuNTY3KS50b0xvY2FsZVN0cmluZygpKSIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggMzBhZTgxZi4uMjI1YWYxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTMtMDMtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIGltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmco
KSB1c2luZyBJQ1UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc3MDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmFzZWQgb24gcGF0Y2ggYnkgRWxpIEZpZGxlciA8ZWZpZGxlckByaW0uY29tPiBhbmQgUm9i
IEJ1aXMKKyAgICAgICAgPHJidWlzQHJpbS5jb20+LgorCisgICAgICAgICogUGxhdGZvcm1FZmwu
Y21ha2U6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDKToKKyAgICAgICAgKEpTQzo6bG9jYWxlTnVtYmVyRm9ybWF0dGVyKTogSGVscGVyIGZ1bmN0
aW9uIHRvIGdldCBvciBjcmVhdGUgdGhlCisgICAgICAgIG51bWJlciBmb3JtYXR0ZXIuCisgICAg
ICAgIChKU0M6OmZvcm1hdExvY2FsZU51bWJlcik6CisgICAgICAgIChKU0M6Om51bWJlclByb3Rv
RnVuY1RvTG9jYWxlU3RyaW5nKTogVXNlIGZvcm1hdExvY2FsZU51bWJlci4KKwogMjAxMy0wNC0x
MSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXJn
ZSBDaGFyYWN0ZXJDbGFzc1RhYmxlIGludG8gQ2hhcmFjdGVyQ2xhc3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkMmIwNjJmLi41YjNkMzExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC00LDYgKzQsNyBAQCBsaXN0KEFQUEVO
RCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJ
QlJBUklFUwogICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQorICAgICR7SUNVX0xJQlJBUklFU30K
ICkKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5k
ZXggMWYwMjI3MC4uMzI1NGFmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zMSwxMCArMzEsMTggQEAKICNpbmNsdWRlICJV
aW50MTZXaXRoRnJhY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvZHRvYS5oPgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0RlY2ltYWxOdW1iZXIuaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvZHRvYS9kb3VibGUtY29udmVyc2lvbi5oPgogCisjaWYgVVNFKElDVV9VTklDT0RFKSAmJiAh
VUNPTkZJR19OT19GT1JNQVRUSU5HICYmIGRlZmluZWQoSUNVX1ZFUlNJT04pICYmIChJQ1VfVkVS
U0lPTiA+PSA0MDYwMCkKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMQor
I2luY2x1ZGUgPHVuaWNvZGUvdW51bS5oPgorI2Vsc2UKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVN
QkVSX0ZPUk1BVFRJTkcgMAorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXVEY6OmRvdWJsZV9j
b252ZXJzaW9uOwogCiAvLyBUbyBhdm9pZCBjb25mbGljdCB3aXRoIFdURjo6U3RyaW5nQnVpbGRl
ci4KQEAgLTU1LDYgKzYzLDYwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlND
IHsKIAorI2lmIFVTRV9JQ1VfRk9SX05VTUJFUl9GT1JNQVRUSU5HCitzdGF0aWMgVU51bWJlckZv
cm1hdCogbG9jYWxlTnVtYmVyRm9ybWF0dGVyKCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6
ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9ICpuZXcgTXV0ZXgpOworICAgIExvY2tlcjxNdXRleD4g
bG9jayhtdXRleCk7CisgICAgc3RhdGljIFVOdW1iZXJGb3JtYXQqIGZvcm1hdHRlciA9IDA7Cisg
ICAgaWYgKCFmb3JtYXR0ZXIpIHsKKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9f
RVJST1I7CisgICAgICAgIGZvcm1hdHRlciA9IHVudW1fb3BlbihVTlVNX0RFRkFVTFQsIDAsIDAs
IGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKSwgMCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX1NV
Q0NFU1Moc3RhdHVzKSkgeworICAgICAgICAgICAgdW51bV9zZXRBdHRyaWJ1dGUoZm9ybWF0dGVy
LCBVTlVNX01BWF9TSUdOSUZJQ0FOVF9ESUdJVFMsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJM
ZW5ndGgpOworICAgICAgICAgICAgdW51bV9zZXRBdHRyaWJ1dGUoZm9ybWF0dGVyLCBVTlVNX1NJ
R05JRklDQU5UX0RJR0lUU19VU0VELCAxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBmb3JtYXR0ZXI7Cit9CisKK3N0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgQVNTRVJUKHZhbHVlLmlzTnVtYmVy
KCkpOworCisgICAgVU51bWJlckZvcm1hdCogZm9ybWF0dGVyID0gbG9jYWxlTnVtYmVyRm9ybWF0
dGVyKCk7CisgICAgaWYgKCFmb3JtYXR0ZXIpCisgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5n
KGV4ZWMpOworCisgICAgVUNoYXIgYnVmZmVyW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5n
dGhdOworICAgIGludDMyX3QgYnVmZmVyTGVuZ3RoOworCisgICAgVUVycm9yQ29kZSBzdGF0dXMg
PSBVX1pFUk9fRVJST1I7CisgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkgeworICAgICAgICBpbnQz
Ml90IG51bWJlciA9IHZhbHVlLmFzSW50MzIoKTsKKyAgICAgICAgYnVmZmVyTGVuZ3RoID0gdW51
bV9mb3JtYXQoZm9ybWF0dGVyLCBudW1iZXIsIGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1
ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51
bWJlciA9IHZhbHVlLnRvTnVtYmVyKGV4ZWMpOworICAgICAgICBEZWNpbWFsTnVtYmVyIGRlY2lt
YWxOdW1iZXIobnVtYmVyKTsKKyAgICAgICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJU
b1N0cmluZ0J1ZmZlckxlbmd0aF07CisgICAgICAgIGJ1ZmZlckxlbmd0aCA9IGRlY2ltYWxOdW1i
ZXIudG9TdHJpbmdEZWNpbWFsKG51bWJlclN0cmluZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZl
ckxlbmd0aCk7CisgICAgICAgIGJ1ZmZlckxlbmd0aCA9IHVudW1fZm9ybWF0RGVjaW1hbChmb3Jt
YXR0ZXIsIG51bWJlclN0cmluZywgYnVmZmVyTGVuZ3RoLCBidWZmZXIsIFdURjo6TnVtYmVyVG9T
dHJpbmdCdWZmZXJMZW5ndGgsIDAsICZzdGF0dXMpOworICAgIH0KKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpCisgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworCisgICAgcmV0
dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBTdHJpbmcoYnVmZmVyLCBidWZmZXJMZW5ndGgp
KTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxl
bWVudGVkIHlldC4KKworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCB2YWx1ZS50b1N0cmluZyhl
eGVjKSk7Cit9CisjZW5kaWYgLy8gVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwogY29u
c3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJl
ck9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKE51bWJlclByb3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1i
ZXJQcm90b3R5cGUubHV0LmgKQEAgLTUyMCw3ICs1ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoeCkudG9TdHJpbmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoZm9ybWF0TG9jYWxlTnVtYmVyKGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUq
IGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCmluZGV4IDYyZDgwZmQuLjg3MmYzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMt
MDMtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIGltcGxlbWVudCBOdW1iZXIudG9Mb2NhbGVTdHJpbmcoKSB1c2luZyBJQ1UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gcGF0Y2ggYnkg
RWxpIEZpZGxlciA8ZWZpZGxlckByaW0uY29tPiBhbmQgUm9iIEJ1aXMKKyAgICAgICAgPHJidWlz
QHJpbS5jb20+LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBX
VEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZj
cHJvajoKKyAgICAgICAgKiB3dGYvRGVjaW1hbE51bWJlci5jcHA6CisgICAgICAgIChXVEYpOgor
ICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWxJbXBsKToKKyAgICAg
ICAgKFdURjo6RGVjaW1hbE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKTogQWRkIGNoYXIqIHZlcnNp
b24uCisgICAgICAgICogd3RmL0RlY2ltYWxOdW1iZXIuaDoKKyAgICAgICAgKERlY2ltYWxOdW1i
ZXIpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICog
d3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Vbmljb2Rl
SUNVLmNwcDogQWRkZWQuCisgICAgICAgIChVbmljb2RlKToKKyAgICAgICAgKFdURjo6VW5pY29k
ZTo6Y3VycmVudE51bWVyaWNMb2NhbGVJRCk6CisgICAgICAgIChXVEYpOgorICAgICAgICAqIHd0
Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6CisgICAgICAgIChVbmljb2RlKTogQWRkIElDVV9W
RVJTSU9OIG1hY3JvIGFuZCBudW1lcmljIGxvY2FsZSBhY2Nlc3Nvci4KKwogMjAxMy0wNC0xMSAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIHR5cGUg
dmFsaWRhdGlvbiB0byBkZWJ1ZyBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5NDcy
NmMxLi40Y2UzMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjYsNCArMjY2LDUgQEAg
d3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVW5pY29kZU1hY3Jv
c0Zyb21JQ1UuaCBcCiAgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggXAorICAg
IFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi93aW4vT3duUHRyV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJv
IGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDhlMmZjYmUuLjg0ZjRkZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTI1Miw2ICsy
NTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICB0ZXh0L1dURlN0cmluZy5jcHAgXAogICAgIHVuaWNv
ZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3Bw
IFwKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcCBcCiAgICAgdW5pY29kZS9VVEY4LmNw
cAogCiB1bml4OiBTT1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJv
ai9XVEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggNWUx
OGFmMi4uMWM5Yzg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3By
b2oKKysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM4Miw2ICszODIs
MTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5o
IgogCQkJCQk+CiAJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0
aD0iLi5cd3RmXHVuaWNvZGVcaWN1XFVuaWNvZGVJQ1UuY3BwIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0RlY2lt
YWxOdW1iZXIuY3BwCmluZGV4IGQzM2E1YWUuLmE3NGU1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0RlY2ltYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1i
ZXIuY3BwCkBAIC05OSwxMyArOTksMTQgQEAgdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6YnVmZmVy
TGVuZ3RoRm9yU3RyaW5nRXhwb25lbnRpYWwoKSBjb25zdAogICAgIHJldHVybiBsZW5ndGg7CiB9
CiAKLXVuc2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChMQ2hhciogYnVmZmVy
LCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vu
c2lnbmVkIERlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1bnNp
Z25lZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChidWZmZXJMZW5n
dGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JTdHJpbmdEZWNpbWFsKCkpOwogCiAg
ICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBhdCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBz
dHJpbmchCiAgICAgQVNTRVJUKG1fcHJlY2lzaW9uKTsKLSAgICBMQ2hhciogbmV4dCA9IGJ1ZmZl
cjsKKyAgICBUKiBuZXh0ID0gYnVmZmVyOwogCiAgICAgLy8gaWYgdGhlIGV4cG9uZW50IGlzIG5l
Z2F0aXZlIHRoZSBudW1iZXIgZGVjaW1hbCByZXByZXNlbnRhdGlvbiBpcyBvZiB0aGUgZm9ybToK
ICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJvcz5dPHNpZ25pZmljYW5kPgpAQCAtMTU1LDYgKzE1Niwx
NiBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoTENoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjbwogICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOwog
fQogCit1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwoTENoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiB0b1N0cmluZ0Rl
Y2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVyTGVuZ3RoKTsKK30KKwordW5zaWduZWQgRGVjaW1hbE51
bWJlcjo6dG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3Ro
KSBjb25zdAoreworICAgIHJldHVybiB0b1N0cmluZ0RlY2ltYWxJbXBsKGJ1ZmZlciwgYnVmZmVy
TGVuZ3RoKTsKK30KKwogdW5zaWduZWQgRGVjaW1hbE51bWJlcjo6dG9TdHJpbmdFeHBvbmVudGlh
bChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0CiB7CiAgICAgQVNT
RVJUX1VOVVNFRChidWZmZXJMZW5ndGgsIGJ1ZmZlckxlbmd0aCA+PSBidWZmZXJMZW5ndGhGb3JT
dHJpbmdFeHBvbmVudGlhbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxO
dW1iZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaAppbmRleCAxODE5MTEwLi5m
ZTc0NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EZWNpbWFsTnVtYmVyLmgKKysrIGIv
U291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5oCkBAIC04NSw2ICs4NSw4IEBAIHB1YmxpYzoK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgYnVmZmVyTGVuZ3RoRm9yU3RyaW5nRXhw
b25lbnRpYWwoKSBjb25zdDsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0
cmluZ0RlY2ltYWwoTENoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsKGNoYXIqIGJ1
ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoKSBjb25zdDsKKwogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB1bnNpZ25lZCB0b1N0cmluZ0V4cG9uZW50aWFsKExDaGFyKiBidWZmZXIsIHVuc2lnbmVk
IGJ1ZmZlckxlbmd0aCkgY29uc3Q7CiAKICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBt
X3NpZ247IH0KQEAgLTkzLDYgKzk1LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHByZWNpc2lv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcHJlY2lzaW9uOyB9CiAKIHByaXZhdGU6CisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbEltcGwoVCogYnVmZmVyLCB1
bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworCiAgICAgYm9vbCBtX3NpZ247CiAgICAgaW50
IG1fZXhwb25lbnQ7CiAgICAgRHRvYUJ1ZmZlciBtX3NpZ25pZmljYW5kOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IGE3ZmZmOTMuLjhiNzRhOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTUsNiArNSw3IEBAIGxpc3QoQVBQ
RU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAgICAgYmxhY2tiZXJy
eS9NYWluVGhyZWFkQmxhY2tCZXJyeS5jcHAKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5j
cHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcAogKQogCiBsaXN0KElOU0VSVCBXVEZf
SU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGRhNjVm
MDYuLjYyNzM5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xMCw2ICsxMCw3IEBA
IGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgVGhyZWFkaW5nUHRocmVhZHMuY3BwCiAKICAg
ICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKyAgICB1bmljb2RlL2ljdS9Vbmljb2RlSUNV
LmNwcAogKQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNv
ZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjEzMzE3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9V
bmljb2RlSUNVLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVbmljb2RlSWN1
LmgiCisKKyNpZiBVU0UoSUNVX1VOSUNPREUpCisKKyNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4K
KworbmFtZXNwYWNlIFdURiB7CituYW1lc3BhY2UgVW5pY29kZSB7CisKKyNpZiBPUyhEQVJXSU4p
ICYmIFVTRShDRikgJiYgIVBMQVRGT1JNKFFUKQorLy8gTWFjIE9TIFggZG9lc24ndCBzZXQgVU5J
WCBsb2NhbGUgdG8gbWF0Y2ggdXNlci1zZWxlY3RlZCBvbmUsIHNvIElDVSBkZWZhdWx0IGRvZXNu
J3Qgd29yay4KKy8vIEZJWE1FOiBOZWVkIGEgd2F5IHRvIGdldCB0aGUgbnVtZXJpYyBsb2NhbGUg
b24gRGFyd2luLgorI2Vsc2UKK2NvbnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQoKQor
eworICAgIHJldHVybiB1bG9jX2dldERlZmF1bHQoKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVz
cGFjZSBVbmljb2RlCisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gVVNFKElDVV9V
TklDT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUlj
dS5oIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCmluZGV4IDQ4Njdm
NjUuLjIwY2JjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L1VuaWNv
ZGVJY3UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKQEAg
LTMxLDYgKzMxLDggQEAKICNpbmNsdWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1
bmljb2RlL3V0ZjE2Lmg+CiAKKyNkZWZpbmUgSUNVX1ZFUlNJT04gKFVfSUNVX1ZFUlNJT05fTUFK
T1JfTlVNICogMTAwMDAgKyBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSAqIDEwMCArIFVfSUNVX1ZF
UlNJT05fUEFUQ0hMRVZFTF9OVU0pCisKIG5hbWVzcGFjZSBXVEYgewogCiBuYW1lc3BhY2UgVW5p
Y29kZSB7CkBAIC0yMjgsMTAgKzIzMCwxNCBAQCBpbmxpbmUgaW50IHVtZW1jYXNlY21wKGNvbnN0
IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKICAgICByZXR1cm4gdV9tZW1jYXNl
Y21wKGEsIGIsIGxlbiwgVV9GT0xEX0NBU0VfREVGQVVMVCk7CiB9CiAKK1dURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjdXJyZW50TnVtZXJpY0xvY2FsZUlEKCk7CisKIH0gLy8gbmFtZXNw
YWNlIFVuaWNvZGUKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKK3VzaW5nIFdURjo6VW5pY29kZTo6
Y3VycmVudE51bWVyaWNMb2NhbGVJRDsKKwogI2VuZGlmIC8vIFVTRShJQ1VfVU5JQ09ERSkKIAog
I2VuZGlmIC8vIFdURl9VTklDT0RFX0lDVV9ICg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203420</attachid>
            <date>2013-05-31 01:33:44 -0700</date>
            <delta_ts>2014-05-02 15:18:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77018-20130531103221.patch</filename>
            <type>text/plain</type>
            <size>18604</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxMDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWVlN2Y3ZTNhNzdhODc4ODk5MGVlMzE2NTI1M2ZmMWY0NmMzZWQ0Li4yMWYxNTZmYTg3NDBkZmZk
NjMzZmY4OWVlMDkzODMwNmI2ZThlY2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMy0wNS0zMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgaW1wbGVtZW50IE51bWJlci50b0xvY2FsZVN0cmluZygpIHVz
aW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
YXNlZCBvbiBwYXRjaCBieSBFbGkgRmlkbGVyIDxlZmlkbGVyQHJpbS5jb20+IGFuZCBSb2IgQnVp
cworICAgICAgICA8cmJ1aXNAcmltLmNvbT4uCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFr
ZToKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAoSlNDOjpsb2NhbGVOdW1iZXJGb3JtYXR0ZXIpOiBIZWxwZXIgZnVuY3Rpb24g
dG8gZ2V0IG9yIGNyZWF0ZSB0aGUKKyAgICAgICAgbnVtYmVyIGZvcm1hdHRlci4KKyAgICAgICAg
KEpTQzo6Zm9ybWF0TG9jYWxlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcpOiBVc2UgZm9ybWF0TG9jYWxlTnVtYmVyLgorCiAyMDEzLTA1LTMwICBE
YXZpZCBGYXJsZXIgIDxkZmFybGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgganNjb3JlLXRl
c3Qgd2hlbiBub3QgdXNpbmcgLS1zZGsgb3B0aW9uIHdpdGgganNEcml2ZXIucGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMTFk
NzhkN2QxOWQ4ZWMyZGUzNzc0OThiNDg3MDZhMzBlMjNiMzdiYi4uZDRjZjBhMWFkZDA1MzNmNjkw
MmUyZmZlNDIyNzM5ZmY5YjhmNTA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wNS0zMSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgaW1w
bGVtZW50IE51bWJlci50b0xvY2FsZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBieSBFbGkgRmlk
bGVyIDxlZmlkbGVyQHJpbS5jb20+IGFuZCBSb2IgQnVpcworICAgICAgICA8cmJ1aXNAcmltLmNv
bT4uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBp
OgorICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgor
ICAgICAgICAqIHd0Zi9EZWNpbWFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdURik6CisgICAgICAg
IChXVEY6OkRlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbEltcGwpOgorICAgICAgICAoV1RG
OjpEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2ltYWwpOiBBZGQgY2hhciogdmVyc2lvbi4KKyAg
ICAgICAgKiB3dGYvRGVjaW1hbE51bWJlci5oOgorICAgICAgICAoRGVjaW1hbE51bWJlcik6Cisg
ICAgICAgICogd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFVuaWNvZGUpOgorICAgICAgICAoV1RGOjpVbmljb2RlOjpjdXJy
ZW50TnVtZXJpY0xvY2FsZUlEKToKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL3VuaWNv
ZGUvaWN1L1VuaWNvZGVJY3UuaDoKKyAgICAgICAgKFVuaWNvZGUpOiBBZGQgSUNVX1ZFUlNJT04g
bWFjcm8gYW5kIG51bWVyaWMgbG9jYWxlIGFjY2Vzc29yLgorCiAyMDEzLTA1LTMwICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciB1bnJldmlld2Vk
IGJ1aWxkIGZpeCBmb3IgTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggNTRhOTQ3MzAzZDkxNWY5ZjgyYWY4YTcyNDU3NmM4
ZDBmNTQ2MGU4Ny4uMzBjOGQ5N2VhNWNmYjNmMzNkOGY0NWQwNGVlY2M4ZTIyNWJlNjM1MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3Bw
CkBAIC0zMSwxMCArMzEsMTggQEAKICNpbmNsdWRlICJVaW50MTZXaXRoRnJhY3Rpb24uaCIKICNp
bmNsdWRlIDx3dGYvZHRvYS5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVk
ZSA8d3RmL0RlY2ltYWxOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZHRvYS9kb3VibGUtY29udmVyc2lv
bi5oPgogCisjaWYgVVNFKElDVV9VTklDT0RFKSAmJiAhVUNPTkZJR19OT19GT1JNQVRUSU5HICYm
IGRlZmluZWQoSUNVX1ZFUlNJT04pICYmIChJQ1VfVkVSU0lPTiA+PSA0MDYwMCkKKyNkZWZpbmUg
VVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMQorI2luY2x1ZGUgPHVuaWNvZGUvdW51bS5o
PgorI2Vsc2UKKyNkZWZpbmUgVVNFX0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcgMAorI2VuZGlm
CisKIHVzaW5nIG5hbWVzcGFjZSBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOwogCiAvLyBUbyBhdm9p
ZCBjb25mbGljdCB3aXRoIFdURjo6U3RyaW5nQnVpbGRlci4KQEAgLTU1LDYgKzYzLDYwIEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvUHJlY2lz
aW9uKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIFVTRV9JQ1VfRk9SX05V
TUJFUl9GT1JNQVRUSU5HCitzdGF0aWMgVU51bWJlckZvcm1hdCogbG9jYWxlTnVtYmVyRm9ybWF0
dGVyKCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9
ICpuZXcgTXV0ZXgpOworICAgIExvY2tlcjxNdXRleD4gbG9jayhtdXRleCk7CisgICAgc3RhdGlj
IFVOdW1iZXJGb3JtYXQqIGZvcm1hdHRlciA9IDA7CisgICAgaWYgKCFmb3JtYXR0ZXIpIHsKKyAg
ICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIGZvcm1hdHRl
ciA9IHVudW1fb3BlbihVTlVNX0RFRkFVTFQsIDAsIDAsIGN1cnJlbnROdW1lcmljTG9jYWxlSUQo
KSwgMCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX1NVQ0NFU1Moc3RhdHVzKSkgeworICAgICAg
ICAgICAgdW51bV9zZXRBdHRyaWJ1dGUoZm9ybWF0dGVyLCBVTlVNX01BWF9TSUdOSUZJQ0FOVF9E
SUdJVFMsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgpOworICAgICAgICAgICAgdW51
bV9zZXRBdHRyaWJ1dGUoZm9ybWF0dGVyLCBVTlVNX1NJR05JRklDQU5UX0RJR0lUU19VU0VELCAx
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmb3JtYXR0ZXI7Cit9CisKK3N0YXRp
YyBKU0NlbGwqIGZvcm1hdExvY2FsZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUpCit7CisgICAgQVNTRVJUKHZhbHVlLmlzTnVtYmVyKCkpOworCisgICAgVU51bWJlckZvcm1h
dCogZm9ybWF0dGVyID0gbG9jYWxlTnVtYmVyRm9ybWF0dGVyKCk7CisgICAgaWYgKCFmb3JtYXR0
ZXIpCisgICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKGV4ZWMpOworCisgICAgVUNoYXIgYnVm
ZmVyW1dURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGhdOworICAgIGludDMyX3QgYnVmZmVy
TGVuZ3RoOworCisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgaWYg
KHZhbHVlLmlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90IG51bWJlciA9IHZhbHVlLmFzSW50
MzIoKTsKKyAgICAgICAgYnVmZmVyTGVuZ3RoID0gdW51bV9mb3JtYXQoZm9ybWF0dGVyLCBudW1i
ZXIsIGJ1ZmZlciwgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCwgMCwgJnN0YXR1cyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIG51bWJlciA9IHZhbHVlLnRvTnVtYmVyKGV4
ZWMpOworICAgICAgICBEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXIobnVtYmVyKTsKKyAgICAg
ICAgY2hhciBudW1iZXJTdHJpbmdbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aF07Cisg
ICAgICAgIGJ1ZmZlckxlbmd0aCA9IGRlY2ltYWxOdW1iZXIudG9TdHJpbmdEZWNpbWFsKG51bWJl
clN0cmluZywgV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CisgICAgICAgIGJ1ZmZl
ckxlbmd0aCA9IHVudW1fZm9ybWF0RGVjaW1hbChmb3JtYXR0ZXIsIG51bWJlclN0cmluZywgYnVm
ZmVyTGVuZ3RoLCBidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgsIDAsICZz
dGF0dXMpOworICAgIH0KKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgIHJldHVy
biBqc0VtcHR5U3RyaW5nKGV4ZWMpOworCisgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhl
eGVjLCBTdHJpbmcoYnVmZmVyLCBidWZmZXJMZW5ndGgpKTsKK30KKyNlbHNlCitzdGF0aWMgaW5s
aW5lIEpTQ2VsbCogZm9ybWF0TG9jYWxlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKworICAgIHJldHVy
biBqc1N0cmluZyhleGVjLCB2YWx1ZS50b1N0cmluZyhleGVjKSk7Cit9CisjZW5kaWYgLy8gVVNF
X0lDVV9GT1JfTlVNQkVSX0ZPUk1BVFRJTkcKKwogY29uc3QgQ2xhc3NJbmZvIE51bWJlclByb3Rv
dHlwZTo6c19pbmZvID0geyAiTnVtYmVyIiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAwLCBFeGVj
U3RhdGU6Om51bWJlclByb3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51bWJlclBy
b3RvdHlwZSkgfTsKIAogLyogU291cmNlIGZvciBOdW1iZXJQcm90b3R5cGUubHV0LmgKQEAgLTUy
MCw3ICs1ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVu
Y1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXRvVGhpc051bWJlcihl
eGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoeCkudG9TdHJp
bmcoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlTnVtYmVy
KGV4ZWMsIGpzTnVtYmVyKHgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggMWQ3ZjBiMzYyYTJmZjVhYWYzNGVkYzc4NjY1ZGMxYTRlZjM1ODU0OC4uM2EwOTBh
OTU5ZWIxZTRiMjM4N2M0ODU5NGI2MzBiZDdmYzNiMzU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMjU0LDQgKzI1NCw1IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0
Zi91bmljb2RlL1VuaWNvZGVNYWNyb3NGcm9tSUNVLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3Vu
aWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9p
Y3UvVW5pY29kZUljdS5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2Rl
SUNVLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvd2luL093blB0cldpbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCBlM2Y5MGI4
Nzg4MWIxOWM4MzJkNmE0MmJmZGZkZmZjNzgxNTdlN2E5Li43NDZiOGM4NjEzNDI2NjJlMDliNTVl
ZTg4NGIzNGI1NTdmMjU2NWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIv
U291cmNlL1dURi9XVEYucHJvCkBAIC0yNDEsNiArMjQxLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
dGV4dC9XVEZTdHJpbmcuY3BwIFwKICAgICB1bmljb2RlL0NvbGxhdG9yRGVmYXVsdC5jcHAgXAog
ICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcCBcCisgICAgdW5pY29kZS9pY3UvVW5pY29k
ZUlDVS5jcHAgXAogICAgIHVuaWNvZGUvVVRGOC5jcHAKIAogdW5peDogU09VUkNFUyArPSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IDMwMWE4YmZkYmNjM2U1ZTU1YjE0ZWFkODk0YTdi
MmIxNTBjNzcxZTEuLjZhMWUwZTE2ZDI3MGFjYjViMmI2OWY4YjMwMGNlODAxMTA1MTlkMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC0zODQsNiArMzg0LDEwIEBACiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cd3RmXHVuaWNvZGVcaWN1XFVuaWNvZGVJY3UuaCIKIAkJCQkJPgogCQkJCTwv
RmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0Zlx1bmljb2Rl
XGljdVxVbmljb2RlSUNVLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KIAkJCTwvRmls
dGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNWMyYmExZmQ3NzE5Njc1ZmQxYmQ3MWU3YjVmZWI5YWMxNzA1MGY5
OS4uZGRjNzk0MjdiYTNlOTJjZDg0NzQ4ODAwZDZhOGU4YzM3OTJmMzA1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OSw2ICs0OSw3IEBACiAJCTJDMDUz
ODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2
IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4NTA4
MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2MDBFNEFEMTkgLyogRW51bUNsYXNz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NEY2NjAw
NzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87IH07CisJCTRBQUNCQzAwMTc1ODk0
OUEwMDUyMTI2MyAvKiBVbmljb2RlSUNVLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBQUNCQkZGMTc1ODk0OUEwMDUyMTI2MyAvKiBVbmljb2RlSUNV
LmNwcCAqLzsgfTsKIAkJNEYwMzIxQkMxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjAzMjFCQjE1NkFB
OEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLzsgfTsKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2
RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVF
eHRyYXMuaCAqLzsgfTsKIAkJODEzNDAxMzgxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTM0MDEzNjE1
QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmNwcCAqLzsgfTsKQEAgLTMxMyw2ICszMTQsNyBAQAog
CQkyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NERFRTc0QTE1MjI3NEJCMDBDNkVDMzcgLyog
aU9TLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IGlPUy54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRGNjYwMDcxNzFBRkFBOTAwRTRBRDE5
IC8qIEVudW1DbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbnVtQ2xhc3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEFBQ0JCRkYxNzU4OTQ5QTAwNTIxMjYzIC8qIFVuaWNvZGVJQ1Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pY29kZUlDVS5jcHA7IHBhdGggPSB3dGYvdW5pY29k
ZS9pY3UvVW5pY29kZUlDVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMDMy
MUJCMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCaXRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0
N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
RDI0N0I2RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBC
YXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTU4LDYgKzU2MCw3
IEBACiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNEFBQ0JCRkYxNzU4OTQ5QTAwNTIxMjYzIC8qIFVuaWNvZGVJ
Q1UuY3BwICovLAogCQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9u
cyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8sCiAJCQkJ
NUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKQEAgLTExNjMsNiArMTE2Niw3
IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk0QUFDQkMwMDE3NTg5NDlBMDA1MjEyNjMg
LyogVW5pY29kZUlDVS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM4MTE1MUE4MjVCMDA0
MTIzRkYgLyogQXJyYXlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczODMxNTFB
ODI1QjAwNDEyM0ZGIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzM4NjE1MUE4MjVCMDA0MTIzRkYgLyogQXNzZXJ0aW9ucy5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNWJjZDMzNmNlZDIzNzA4OTFlNTM3NjBlODQzYzZlNjIw
ODY1NzVhYS4uYjhhMzRiNDJiNDU1OTdlMDI0OGIzYmZlN2ZkZjFkYTlkMWUwNzYxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTIyNCw2ICsyMjQsNyBAQCBpZiAoV1RGX1VTRV9JQ1VfVU5JQ09E
RSkKICAgICApCiAgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICAgICAgdW5pY29kZS9p
Y3UvQ29sbGF0b3JJQ1UuY3BwCisgICAgICAgIHVuaWNvZGUvaWN1L1VuaWNvZGVJQ1UuY3BwCiAg
ICAgKQogICAgIGxpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgICAgICR7
SUNVX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1i
ZXIuY3BwIGIvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAKaW5kZXggZDMzYTVhZTRj
ZTI2ODhlMzI4NDBiYWJmMWJkYjI5YzA2MDZlN2Y2Zi4uYTc0ZTUxNmM3NjVkMjIxODk2M2Y3NDlh
ZTU0MjUwMzllYWRlOWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJl
ci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAKQEAgLTk5LDEzICs5
OSwxNCBAQCB1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjpidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBv
bmVudGlhbCgpIGNvbnN0CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQgRGVjaW1h
bE51bWJlcjo6dG9TdHJpbmdEZWNpbWFsKExDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxl
bmd0aCkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordW5zaWduZWQgRGVjaW1hbE51bWJl
cjo6dG9TdHJpbmdEZWNpbWFsSW1wbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCkg
Y29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxlbmd0aCwgYnVmZmVyTGVuZ3RoID49
IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0RlY2ltYWwoKSk7CiAKICAgICAvLyBTaG91bGQgYWx3YXlz
IGJlIGF0IGxlYXN0IG9uZSBkaWdpdCB0byBhZGQgdG8gdGhlIHN0cmluZyEKICAgICBBU1NFUlQo
bV9wcmVjaXNpb24pOwotICAgIExDaGFyKiBuZXh0ID0gYnVmZmVyOworICAgIFQqIG5leHQgPSBi
dWZmZXI7CiAKICAgICAvLyBpZiB0aGUgZXhwb25lbnQgaXMgbmVnYXRpdmUgdGhlIG51bWJlciBk
ZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlzIG9mIHRoZSBmb3JtOgogICAgIC8vIFs8c2lnbj5dMC5b
PHplcm9zPl08c2lnbmlmaWNhbmQ+CkBAIC0xNTUsNiArMTU2LDE2IEBAIHVuc2lnbmVkIERlY2lt
YWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvCiAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CiB9CiAKK3Vuc2lnbmVkIERlY2lt
YWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJM
ZW5ndGgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVmZmVyLCBi
dWZmZXJMZW5ndGgpOworfQorCit1bnNpZ25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0RlY2lt
YWwoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRvU3RyaW5nRGVjaW1hbEltcGwoYnVmZmVyLCBidWZmZXJMZW5ndGgpOworfQorCiB1bnNp
Z25lZCBEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4cG9uZW50aWFsKExDaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGJ1ZmZlckxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1ZmZlckxl
bmd0aCwgYnVmZmVyTGVuZ3RoID49IGJ1ZmZlckxlbmd0aEZvclN0cmluZ0V4cG9uZW50aWFsKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5oIGIvU291cmNlL1dU
Ri93dGYvRGVjaW1hbE51bWJlci5oCmluZGV4IDE4MTkxMTA3OTRmODRjYzkxYWU0NTE0ZWE5ZWNl
ZGRmMDUzY2MzMTUuLmZlNzQ3MDA2MWQ2YTNhOTg3YzVlYWVkODU4NTNiOWQ2NjJkNzBjNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EZWNpbWFsTnVtYmVyLmgKQEAgLTg1LDYgKzg1LDggQEAgcHVibGljOgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBidWZmZXJMZW5ndGhGb3JTdHJpbmdFeHBvbmVudGlhbCgp
IGNvbnN0OwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1h
bChMQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworICAgIFdURl9F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoY2hhciogYnVmZmVyLCB1bnNp
Z25lZCBidWZmZXJMZW5ndGgpIGNvbnN0OworCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2ln
bmVkIHRvU3RyaW5nRXhwb25lbnRpYWwoTENoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVu
Z3RoKSBjb25zdDsKIAogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbjsgfQpA
QCAtOTMsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgcHJlY2lzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9wcmVjaXNpb247IH0KIAogcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gdW5zaWduZWQgdG9TdHJpbmdEZWNpbWFsSW1wbChUKiBidWZmZXIsIHVuc2lnbmVkIGJ1
ZmZlckxlbmd0aCkgY29uc3Q7CisKICAgICBib29sIG1fc2lnbjsKICAgICBpbnQgbV9leHBvbmVu
dDsKICAgICBEdG9hQnVmZmVyIG1fc2lnbmlmaWNhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSUNVLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
aWN1L1VuaWNvZGVJQ1UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhOWViZDUzNDI2NTY5MGE1NTEyNGRhOGM3
YTRmOGFiYTJiMWJlNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Vbmljb2RlSUNVLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlVu
aWNvZGVJY3UuaCIKKworI2lmIFVTRShJQ1VfVU5JQ09ERSkKKworI2luY2x1ZGUgPHVuaWNvZGUv
dWxvYy5oPgorCituYW1lc3BhY2UgV1RGIHsKK25hbWVzcGFjZSBVbmljb2RlIHsKKworI2lmIE9T
KERBUldJTikgJiYgVVNFKENGKSAmJiAhUExBVEZPUk0oUVQpCisvLyBNYWMgT1MgWCBkb2Vzbid0
IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwgc28gSUNVIGRlZmF1
bHQgZG9lc24ndCB3b3JrLgorLy8gRklYTUU6IE5lZWQgYSB3YXkgdG8gZ2V0IHRoZSBudW1lcmlj
IGxvY2FsZSBvbiBEYXJ3aW4uCisjZWxzZQorY29uc3QgY2hhciogY3VycmVudE51bWVyaWNMb2Nh
bGVJRCgpCit7CisgICAgcmV0dXJuIHVsb2NfZ2V0RGVmYXVsdCgpOworfQorI2VuZGlmCisKK30g
Ly8gbmFtZXNwYWNlIFVuaWNvZGUKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBV
U0UoSUNVX1VOSUNPREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9V
bmljb2RlSWN1LmggYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKaW5k
ZXggNDg2N2Y2NTUyY2Y4NTc1ZTVjOTY2NWUwZWRlYzJkYWNiNDQ3YWNjNi4uMjBjYmNlYjlmODIz
MWU2OTFlYmY1ZjlmZDdiZTBlNmQ0YTM2ZDNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvVW5pY29kZUljdS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1
L1VuaWNvZGVJY3UuaApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgPHVuaWNvZGUvdXN0cmlu
Zy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdXRmMTYuaD4KIAorI2RlZmluZSBJQ1VfVkVSU0lPTiAo
VV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gKiAxMDAwMCArIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVN
ICogMTAwICsgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05VTSkKKwogbmFtZXNwYWNlIFdURiB7
CiAKIG5hbWVzcGFjZSBVbmljb2RlIHsKQEAgLTIyOCwxMCArMjMwLDE0IEBAIGlubGluZSBpbnQg
dW1lbWNhc2VjbXAoY29uc3QgVUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQogICAg
IHJldHVybiB1X21lbWNhc2VjbXAoYSwgYiwgbGVuLCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKIH0K
IAorV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IGNoYXIqIGN1cnJlbnROdW1lcmljTG9jYWxlSUQo
KTsKKwogfSAvLyBuYW1lc3BhY2UgVW5pY29kZQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNp
bmcgV1RGOjpVbmljb2RlOjpjdXJyZW50TnVtZXJpY0xvY2FsZUlEOworCiAjZW5kaWYgLy8gVVNF
KElDVV9VTklDT0RFKQogCiAjZW5kaWYgLy8gV1RGX1VOSUNPREVfSUNVX0gKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYjBi
YjM1MDFjMzQ2YTQ5ZjBmODFjMTBmOTE5ZWI4NjFjNjg1ZDVkLi5mOGU5MmExODFkNTlhYmEzYjYx
NTFkNzhmNTYzOGVlODg3ZjllMTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDUtMzEg
IEVsaSBGaWRsZXIgIDxlZmlkbGVyQHJpbS5jb20+CisKKyAgICAgICAgaW1wbGVtZW50IE51bWJl
ci50b0xvY2FsZVN0cmluZygpIHVzaW5nIElDVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBhcmUgcXVpdGUgbWluaW1hbCwgc2luY2Ug
d2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBzZXQKKyAgICAgICAgdGhlIG51bWVyaWMgbG9jYWxlIGlu
IERSVC4KKworICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvTG9jYWxl
U3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGlzTm9uRW1wdHlTdHJpbmcpOgorCiAyMDEzLTA1
LTMwICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbTWFj
XSBTaG91bGQgcGFzcyBodHRwL3Rlc3RzL2ltYWdlcy9wbmctcGFydGlhbC1sb2FkLW5vLWFscGhh
Lmh0bWwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0
cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0
cmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM3MjM1N2E1NmVmYzAxN2ZmNDY0MzhjNzY3
Y2NkNjk3ZWYyNWI4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVt
YmVyLXRvTG9jYWxlU3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BBU1MgaXNO
b25FbXB0eVN0cmluZygoMC4wKS50b0xvY2FsZVN0cmluZygpKSBpcyB0cnVlCitQQVNTIGlzTm9u
RW1wdHlTdHJpbmcoKC0wLjApLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1MgaXNOb25F
bXB0eVN0cmluZygoMTIzNC41NjcpLnRvTG9jYWxlU3RyaW5nKCkpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0xvY2FsZVN0cmluZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzhkMThk
YzJiMzEwYTkzMTE2ZDk3ZWFkYWFiNDFiNWUwYzFkN2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9Mb2NhbGVTdHJpbmcuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVtYmVyLXRv
TG9jYWxlU3RyaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0xvY2FsZVN0cmluZy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MjZjN2I5ZWY5ZDJjMWZlZTBlMWQ1OTg1NGEwNDEwZjI0MTZjMmIxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRv
TG9jYWxlU3RyaW5nLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gaXNOb25FbXB0eVN0cmlu
ZyhzKQoreworICAgIHJldHVybiB0eXBlb2YgcyA9PSAic3RyaW5nIiAmJiAvW15cc10rLy50ZXN0
KHMpOworfQorCitzaG91bGRCZVRydWUoImlzTm9uRW1wdHlTdHJpbmcoKDAuMCkudG9Mb2NhbGVT
dHJpbmcoKSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoLTAuMCkudG9Mb2Nh
bGVTdHJpbmcoKSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNOb25FbXB0eVN0cmluZygoMTIzNC41Njcp
LnRvTG9jYWxlU3RyaW5nKCkpIik7Cg==
</data>
<flag name="review"
          id="224875"
          type_id="1"
          status="-"
          setter="lquinn"
    />
    <flag name="commit-queue"
          id="224879"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>