<?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>54109</bug_id>
          
          <creation_ts>2011-02-09 08:48:58 -0800</creation_ts>
          <short_desc>[Qt][WK2]Unbreak InjectedBundle on Qt</short_desc>
          <delta_ts>2011-03-15 08:58:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54896</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>aroben</cc>
    
    <cc>christian.webkit</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>kenneth</cc>
    
    <cc>kimmo.t.kinnunen</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mjs</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348262</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-09 08:48:58 -0800</bug_when>
    <thetext>The KURL dependency introduced in http://trac.webkit.org/changeset/77794 brakes non-mac platforms:
symbol lookup error: /home/balazs/WebKitGit/WebKitBuild/Release/lib/libWTRInjectedBundle.so: undefined symbol: _ZN7WebCore4KURLC1ENS_18ParsedURLStringTagEPKc
#CRASHED - WebProcess

To fix this we should either export those symbols everywhere or do not use WebCore internally.
Since the second is already a general concept of WTR I believe that would be the right solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348268</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-09 08:58:42 -0800</bug_when>
    <thetext>*** Bug 54002 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348297</commentid>
    <comment_count>2</comment_count>
      <attachid>81822</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-09 09:21:46 -0800</bug_when>
    <thetext>Created attachment 81822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348301</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-09 09:24:52 -0800</bug_when>
    <thetext>Attachment 81822 did not pass style-queue:

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

Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:627:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 4 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>348705</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-09 16:57:11 -0800</bug_when>
    <thetext>I removed a comment accidentally, this should be fixed before commit.
The style issue is better to be ignored in my opinion, it is pretty
confusing to write |!urlString.find(&quot;http&quot;)| to say that &quot;if http is
prefix of the string&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348888</commentid>
    <comment_count>5</comment_count>
      <attachid>81822</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-10 02:18:38 -0800</bug_when>
    <thetext>Comment on attachment 81822
Patch

The patch makes two tests failing.
Need to find a better approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351254</commentid>
    <comment_count>6</comment_count>
      <attachid>82453</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-15 07:49:31 -0800</bug_when>
    <thetext>Created attachment 82453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351256</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-15 07:51:11 -0800</bug_when>
    <thetext>Attachment 82453 did not pass style-queue:

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

Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:636:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:637:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:638:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:639:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:644:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:647:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 6 in 5 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>352001</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-16 05:34:56 -0800</bug_when>
    <thetext>Tests are OK on my Mac (there are a few error but not related to this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352359</commentid>
    <comment_count>9</comment_count>
      <attachid>82453</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-16 14:32:52 -0800</bug_when>
    <thetext>Comment on attachment 82453
Patch

As discussed on IRC this should rather be fixed by adding API to WKURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353644</commentid>
    <comment_count>10</comment_count>
      <attachid>82975</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-18 10:13:44 -0800</bug_when>
    <thetext>Created attachment 82975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354735</commentid>
    <comment_count>11</comment_count>
    <who name="Kimmo Kinnunen">kimmo.t.kinnunen</who>
    <bug_when>2011-02-21 12:32:56 -0800</bug_when>
    <thetext>*** Bug 54900 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355250</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-02-22 07:28:06 -0800</bug_when>
    <thetext>Darin can you have a look at the new C API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357946</commentid>
    <comment_count>13</comment_count>
      <attachid>82975</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-25 08:50:26 -0800</bug_when>
    <thetext>Comment on attachment 82975
Patch

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

&gt; Source/WebCore/WebCore.exp.in:-632
&gt; -__ZN7WebCore4KURLC1ENS_18ParsedURLStringTagEPKc

You should also revert r77816.

&gt; Source/WebKit2/Shared/API/c/WKString.h:50
&gt; -WK_EXPORT WKStringRef WKStringCreateWithUTF8CString(const char* string);
&gt; +WK_EXPORT WKStringRef WKStringCreateWithUTF8CString(const char*);
&gt;  
&gt; -WK_EXPORT bool WKStringIsEmpty(WKStringRef string);
&gt; +WK_EXPORT bool WKStringIsEmpty(WKStringRef);
&gt;  
&gt; -WK_EXPORT size_t WKStringGetMaximumUTF8CStringSize(WKStringRef string);
&gt; +WK_EXPORT size_t WKStringGetMaximumUTF8CStringSize(WKStringRef);
&gt;  WK_EXPORT size_t WKStringGetUTF8CString(WKStringRef string, char* buffer, size_t bufferSize);
&gt;  
&gt; -WK_EXPORT bool WKStringIsEqual(WKStringRef a, WKStringRef b);
&gt; -WK_EXPORT bool WKStringIsEqualToUTF8CString(WKStringRef a, const char* b);
&gt; +WK_EXPORT bool WKStringIsEqual(WKStringRef, WKStringRef);
&gt; +WK_EXPORT bool WKStringIsEqualToUTF8CString(WKStringRef, const char*);
&gt; +WK_EXPORT bool WKStringIsEqualToUTF8CStringIgnoringCase(WKStringRef, const char*);

So far all of our C API headers do not omit argument names. I&apos;d suggest undoing those changes. We can always discuss that separately from this patch.

&gt; Source/WebKit2/Shared/API/c/WKURL.h:41
&gt; -WK_EXPORT WKURLRef WKURLCreateWithUTF8CString(const char* string);
&gt; +WK_EXPORT WKURLRef WKURLCreateWithUTF8CString(const char*);
&gt;  
&gt; -WK_EXPORT WKStringRef WKURLCopyString(WKURLRef URL);
&gt; +WK_EXPORT WKStringRef WKURLCopyString(WKURLRef);
&gt;  
&gt; -WK_EXPORT bool WKURLIsEqual(WKURLRef a, WKURLRef b);
&gt; +WK_EXPORT bool WKURLIsEqual(WKURLRef, WKURLRef);

Same comment here about argument names.

&gt; Source/WebKit2/Shared/API/c/WKURL.h:45
&gt; +WK_EXPORT WKStringRef WKURLCopyProtocol(WKURLRef);

The correct term is &quot;scheme&quot;, not &quot;protocol&quot;.

&gt; Source/WebKit2/Shared/WebURL.h:62
&gt; +    String host() const
&gt; +    {
&gt; +        WebCore::KURL url(WebCore::KURL(), m_string);
&gt; +        return url.isValid() ? url.host() : String();
&gt; +    }
&gt; +    
&gt; +    String protocol() const
&gt; +    {
&gt; +        WebCore::KURL url(WebCore::KURL(), m_string);
&gt; +        return url.isValid() ? url.protocol() : String();
&gt; +    }

It seems unfortunate to create and throw away a KURL each time these functions are called.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:627
&gt; +    WKRetainPtr&lt;WKStringRef&gt; host = WKURLCopyHostName(url.get());
&gt; +    WKRetainPtr&lt;WKStringRef&gt; protocol = WKURLCopyProtocol(url.get());

These two lines will leak. You need to adopt the result of Copy-style functions.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:628
&gt; +    if (host.get()

No need for .get() here.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:632
&gt; +        &amp;&amp; (!WKStringIsEqualToUTF8CString(host.get(), &quot;127.0.0.1&quot;))
&gt; +        &amp;&amp; (!WKStringIsEqualToUTF8CString(host.get(), &quot;255.255.255.255&quot;)) // Used in some tests that expect to get back an error.
&gt; +        &amp;&amp; (!WKStringIsEqualToUTF8CStringIgnoringCase(host.get(), &quot;localhost&quot;))) {

I don&apos;t think the extra parentheses are helping here.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:633
&gt; +        InjectedBundle::shared().os() &lt;&lt; &quot;Blocked access to external URL &quot; &lt;&lt; toSTD(adoptWK(WKURLCopyString(url.get()))) &lt;&lt; &quot;\n&quot;;

We should add an operator&lt;&lt; that takes a WKURLRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357964</commentid>
    <comment_count>14</comment_count>
      <attachid>82975</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-25 09:27:03 -0800</bug_when>
    <thetext>Comment on attachment 82975
Patch

I guess my previous comments were enough to warrant an r- on this version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358269</commentid>
    <comment_count>15</comment_count>
      <attachid>83899</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-25 16:29:04 -0800</bug_when>
    <thetext>Created attachment 83899
Patch

Incorporated review comments with the exception of still using temporary KURL&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358270</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-25 16:30:13 -0800</bug_when>
    <thetext>Attachment 83899 did not pass style-queue:

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

Source/WebKit2/Shared/API/c/WKURL.h:39:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/API/c/WKURL.h:43:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/API/c/WKURL.h:45:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 12 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>361690</commentid>
    <comment_count>17</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-03 09:41:18 -0800</bug_when>
    <thetext>Ping. Sam, it has been sad that you are the most appropriate man to review this,
but I don&apos;t find you on IRC. Could you review the patch? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366010</commentid>
    <comment_count>18</comment_count>
      <attachid>83899</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-11 08:09:17 -0800</bug_when>
    <thetext>Comment on attachment 83899
Patch

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

I think this is really close! Just a few comments.

&gt;&gt; Source/WebKit2/Shared/API/c/WKURL.h:43
&gt;&gt; +WK_EXPORT WKStringRef WKURLCopyHostName(WKURLRef url);
&gt; 
&gt; The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]

I think you should put these new functions just beneath WKURLCopyString, all in the same paragraph.

&gt; Source/WebKit2/Shared/WebURL.h:62
&gt; +    String host() const
&gt; +    {
&gt; +        WebCore::KURL url(WebCore::KURL(), m_string);
&gt; +        return url.isValid() ? url.host() : String();
&gt; +    }
&gt; +    
&gt; +    String protocol() const
&gt; +    {
&gt; +        WebCore::KURL url(WebCore::KURL(), m_string);
&gt; +        return url.isValid() ? url.protocol() : String();
&gt; +    }

Maybe it would be better to have an OwnPtr&lt;KURL&gt; data member. It would be lazily initialized using m_string. That way only the first call to one of these functions would have to pay the cost of parsing the string.

&gt; Tools/WebKitTestRunner/StringFunctions.h:101
&gt; +    WKRetainPtr&lt;WKStringRef&gt; urlString(AdoptWK, WKURLCopyString(urlRef));
&gt; +    return out &lt;&lt; toSTD(urlString.get());

Can you use the adoptWK function here?

No need for the .get().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366602</commentid>
    <comment_count>19</comment_count>
      <attachid>85598</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-12 11:25:29 -0800</bug_when>
    <thetext>Created attachment 85598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366603</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-12 11:28:32 -0800</bug_when>
    <thetext>Attachment 85598 did not pass style-queue:

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

Source/WebKit2/Shared/API/c/WKURL.h:39:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/API/c/WKURL.h:40:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/API/c/WKURL.h:41:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 12 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>366604</commentid>
    <comment_count>21</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-12 11:29:23 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 83899 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83899&amp;action=review
&gt; 
&gt; I think this is really close! Just a few comments.
&gt; 
&gt; &gt;&gt; Source/WebKit2/Shared/API/c/WKURL.h:43
&gt; &gt;&gt; +WK_EXPORT WKStringRef WKURLCopyHostName(WKURLRef url);
&gt; &gt; 
&gt; &gt; The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; 
&gt; I think you should put these new functions just beneath WKURLCopyString, all in the same paragraph.

Done.

&gt; 
&gt; &gt; Source/WebKit2/Shared/WebURL.h:62
&gt; &gt; +    String host() const
&gt; &gt; +    {
&gt; &gt; +        WebCore::KURL url(WebCore::KURL(), m_string);
&gt; &gt; +        return url.isValid() ? url.host() : String();
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    String protocol() const
&gt; &gt; +    {
&gt; &gt; +        WebCore::KURL url(WebCore::KURL(), m_string);
&gt; &gt; +        return url.isValid() ? url.protocol() : String();
&gt; &gt; +    }
&gt; 
&gt; Maybe it would be better to have an OwnPtr&lt;KURL&gt; data member. It would be lazily initialized using m_string. That way only the first call to one of these functions would have to pay the cost of parsing the string.

Done.

&gt; 
&gt; &gt; Tools/WebKitTestRunner/StringFunctions.h:101
&gt; &gt; +    WKRetainPtr&lt;WKStringRef&gt; urlString(AdoptWK, WKURLCopyString(urlRef));
&gt; &gt; +    return out &lt;&lt; toSTD(urlString.get());
&gt; 
&gt; Can you use the adoptWK function here?

Done. adoptWK was defined in InjectedBundlePage.cpp so I moved it to here
(this file is included almost everywhere).

I will upload the bug for the check-webkit-style as discussed on IRC in a day
or two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367111</commentid>
    <comment_count>22</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-14 12:04:20 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Attachment 85598 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/Shared/API/c/WKURL.h:39:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebKit2/Shared/API/c/WKURL.h:40:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebKit2/Shared/API/c/WKURL.h:41:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Total errors found: 3 in 12 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Filed bug with patch against check-webkit-style: https://bugs.webkit.org/show_bug.cgi?id=56321</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367115</commentid>
    <comment_count>23</comment_count>
      <attachid>85598</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-14 12:09:43 -0700</bug_when>
    <thetext>Comment on attachment 85598
Patch

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

&gt; Source/WebKit2/Shared/WebURL.h:72
&gt; +        if (!!m_parsedURL)

No need for the !! here.

&gt; Source/WebKit2/Shared/WebURL.h:74
&gt; +        m_parsedURL.set(new WebCore::KURL(WebCore::KURL(), m_string));

Please use adoptPtr and assignment here instead of OwnPtr::set.

&gt; Tools/WebKitTestRunner/StringFunctions.h:100
&gt; +inline std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const WKURLRef urlRef)

No need for the &quot;const&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367372</commentid>
    <comment_count>24</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-14 17:33:10 -0700</bug_when>
    <thetext>Committed r81084: &lt;http://trac.webkit.org/changeset/81084&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81822</attachid>
            <date>2011-02-09 09:21:46 -0800</date>
            <delta_ts>2011-02-15 07:49:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54109-20110209172145.patch</filename>
            <type>text/plain</type>
            <size>9325</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwNjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MWQ2OGI1ZTE1MzE1MTFj
Y2EwYjI1ZWQ0MGNiZmM1MGFmMmRkNDA1Li43NWE2ZDU5NTlhZjIyMTQyZjMzYzIxOWE2MTE1Mjdl
NzRlMDdlMzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMDkgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJlYWsgSW5qZWN0ZWRCdW5kbGUg
b24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
MTA5CisKKyAgICAgICAgTm8gY29kZSBjaGFuZ2VzIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIG5lZWRlZCB0byB1c2UgS1VSTAorICAgICAg
ICBpbiBXZWJLaXRUZXN0UnVubmVyLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKIDIwMTEtMDItMDkgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
V2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcKaW5kZXggZjE2NDkwMmYxZjYxMjJjYzhlOTA3YzEwNDU0MmNmYzI5ODU2ZjM1OS4u
MzNkYzBlNzFlMjhmYmVlYWI1ZDZlOGM1MTUwMjZiNjY4OWViODhjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCkBAIC02Myw3ICs2Myw3IEBA
IFBST0RVQ1RJT05fRlJBTUVXT1JLU19ESVJfaXBob25lc2ltdWxhdG9yID0gJChQUk9EVUNUSU9O
X0ZSQU1FV09SS1NfRElSX2lwaG9uZW9zCiBQUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElSX21hY29z
eCA9ICQoTkVYVF9ST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzOwogCiBXRUJL
SVQyX0xERkxBR1MgPSAkKFdFQktJVDJfTERGTEFHU18kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSk7Ci1XRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1hbGxvd2FibGVfY2xpZW50IFdlYktp
dDIgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxlX2NsaWVudCBX
ZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CitXRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1h
bGxvd2FibGVfY2xpZW50IFdlYktpdDIKIFdFQktJVDJfTERGTEFHU18xMDcwID0gJChXRUJLSVQy
X0xERkxBR1NfMTA2MCk7CiAKIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIgPSAk
KEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfJChDT05GSUdVUkFUSU9OKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDU3YzcyMDJhMDIzOTdmOGJhYmIxOWQzNTA5N2UzNjcxNWE0
YzFmNTkuLmY2ODI4ZjA1ZjhlYTJlMmMwYzQ1ZTQ1YThjNWI5MTZiOGFkNjZkYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC02MjQsNyArNjI0LDYgQEAgX19aTjdXZWJDb3JlNEZvbnRhU0VSS1Mw
XwogX19aTjdXZWJDb3JlNEljb24xOGNyZWF0ZUljb25Gb3JGaWxlc0VSS04zV1RGNlZlY3RvcklO
UzFfNlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTRJY29uRDFFdgogX19aTjdXZWJDb3JlNEtV
UkwxMGludmFsaWRhdGVFdgotX19aTjdXZWJDb3JlNEtVUkxDMUVOU18xOFBhcnNlZFVSTFN0cmlu
Z1RhZ0VQS2MKIF9fWk43V2ViQ29yZTRLVVJMQzFFTlNfMThQYXJzZWRVUkxTdHJpbmdUYWdFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU0S1VSTEMxRVA1TlNVUkwKIF9fWk43V2ViQ29yZTRL
VVJMQzFFUEs3X19DRlVSTApAQCAtMTEzMyw3ICsxMTMyLDYgQEAgX19aTks3V2ViQ29yZTRLVVJM
MTRmaWxlU3lzdGVtUGF0aEV2CiBfX1pOSzdXZWJDb3JlNEtVUkwxN2xhc3RQYXRoQ29tcG9uZW50
RXYKIF9fWk5LN1dlYkNvcmU0S1VSTDRob3N0RXYKIF9fWk5LN1dlYkNvcmU0S1VSTDRwYXRoRXYK
LV9fWk5LN1dlYkNvcmU0S1VSTDhwcm90b2NvbEV2CiBfX1pOSzdXZWJDb3JlNEtVUkxjdlA1TlNV
UkxFdgogX19aTks3V2ViQ29yZTROb2RlMTRpc0Rlc2NlbmRhbnRPZkVQS1MwXwogX19aTks3V2Vi
Q29yZTROb2RlMThnZXRTdWJyZXNvdXJjZVVSTHNFUk4zV1RGMTFMaXN0SGFzaFNldElOU180S1VS
TEVMbTI1NkVOU184S1VSTEhhc2hFRUUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA3NWU0NzNkZTEwZWNhMjYwMDU2ZjY3OTE1ZjRmODJjOGJlZWJh
NjIxLi4xMjk1MTQzNDAyOTIwY2M1MGI5ODA5MmFhODcyYjY4Y2I5OWYxMzYzIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTEtMDItMDkgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJl
YWsgSW5qZWN0ZWRCdW5kbGUgb24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU0MTA5CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOiBEb24ndCB1c2UgS1VSTAorICAg
ICAgICB0byBhbmFseXplIHRoZSBVUkwgYnV0IGRvIGEgbGVzcyBleGFjdCBjaGVjayBiYXNlZCBv
bmx5IG9uIHN0cmluZyBjb21wYXJpc29uCisgICAgICAgIHRoYXQgaXMgcHJhY3RpY2FsbHkgZW5v
dWdoIGZvciB0aGUgYWN0dWFsIGNhc2UuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERvIG5vdCBsaW5rCisgICAg
ICAgIGFnYWluc3QgV2ViQ29yZS4KKwogMjAxMS0wMi0wOSAgTGFzemxvIEdvbWJvcyAgPGxhc3ps
by4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggNzM5ZGEzYjk5MmRk
ZTY3MGY1ZGE1YzllY2UxZWQ1ZWFmYTBmMjNiNi4uYmYzNzhiNTJkYWI1YzdkYjNkYTI2Y2FiMDFj
OTc3Nzk4NTM3OGZiOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMjksNyArMjksNiBA
QAogI2luY2x1ZGUgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9LVVJM
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0FycmF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1
bmRsZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaD4KQEAg
LTYyNCwxMyArNjIzLDEyIEBAIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1bmRsZVBhZ2U6Ondp
bGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgc3RyaW5nIHVybFN0cmluZyA9IHRvU1REKGFkb3B0V0soV0tVUkxDb3B5U3Ry
aW5nKGFkb3B0V0soV0tVUkxSZXF1ZXN0Q29weVVSTChyZXF1ZXN0KSkuZ2V0KCkpKSk7Ci0gICAg
V2ViQ29yZTo6S1VSTCB1cmwoV2ViQ29yZTo6UGFyc2VkVVJMU3RyaW5nLCB1cmxTdHJpbmcuY19z
dHIoKSk7CisgICAgaWYgKCF1cmxTdHJpbmcuZW1wdHkoKQorICAgICAgICAmJiAodXJsU3RyaW5n
LmZpbmQoImh0dHAiKSA9PSAwIHx8IHVybFN0cmluZy5maW5kKCJIVFRQIikgPT0gMCkKKyAgICAg
ICAgJiYgKHVybFN0cmluZy5maW5kKCIxMjcuMC4wLjEiKSA9PSBzdHJpbmc6Om5wb3MpCisgICAg
ICAgICYmICh1cmxTdHJpbmcuZmluZCgiMjU1LjI1NS4yNTUuMjU1IikgPT0gc3RyaW5nOjpucG9z
KQorICAgICAgICAmJiAodXJsU3RyaW5nLmZpbmQoImxvY2FsaG9zdCIpID09IHN0cmluZzo6bnBv
cyAmJiB1cmxTdHJpbmcuZmluZCgiTE9DQUxIT1NUIikgPT0gc3RyaW5nOjpucG9zKSkgewogCi0g
ICAgaWYgKCF1cmwuaG9zdCgpLmlzRW1wdHkoKQotICAgICAgICAmJiAoZXF1YWxJZ25vcmluZ0Nh
c2UodXJsLnByb3RvY29sKCksICJodHRwIikgfHwgKGVxdWFsSWdub3JpbmdDYXNlKHVybC5wcm90
b2NvbCgpLCAiaHR0cHMiKSkpCi0gICAgICAgICYmICh1cmwuaG9zdCgpICE9ICIxMjcuMC4wLjEi
KQotICAgICAgICAmJiAodXJsLmhvc3QoKSAhPSAiMjU1LjI1NS4yNTUuMjU1IikgLy8gdXNlZCBp
biBzb21lIHRlc3RzIHRoYXQgZXhwZWN0IHRvIGdldCBiYWNrIGFuIGVycm9yCi0gICAgICAgICYm
ICghZXF1YWxJZ25vcmluZ0Nhc2UodXJsLmhvc3QoKSwgImxvY2FsaG9zdCIpKSkgewogICAgICAg
ICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkub3MoKSA8PCAiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMICIgPDwgdXJsU3RyaW5nIDw8ICJcbiI7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODQyODQwMzEzNmJkMTE0
NWU2NDgzYWY4Y2EzNTRkZjQ0ODk2NmJkMS4uYTE1ZmU0MTdjNmEzZGUzZmJkZGM4ZjQyZTY0YTNj
NjFhNTNiM2IxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0
UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyLDgg
KzMyLDYgQEAKIAkJNjUxMEE3OEExMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNo
ZXI3MDAudHRmIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NTEwQTc3RjExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYg
Ki87IH07CiAJCTY1MTBBNzhCMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVy
ODAwLnR0ZiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjUxMEE3ODAxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmICov
OyB9OwogCQk2NTEwQTc4QzExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjkw
MC50dGYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1
MTBBNzgxMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiAqLzsg
fTsKLQkJNjVERDFEOTYxMkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVERDFEOTUxMkZG
RTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwotCQk2NURFNDMyNTEyRkZF
ODQwMDAxNzFCQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUREMUQ5NTEyRkZFNzk4MDA0QjUyODUgLyogV2Vi
Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTY1RUI4NUEwMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3Rp
dmF0ZUZvbnRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjVFQjg1OUYxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMubW0gKi87IH07CiAJ
CUJDMTRFNERCMTIwRTAyRDAwMDgyNkMwQyAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNEU0RDkxMjBFMDJEMDAwODI2
QzBDIC8qIEdDQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUJDMTRFNEVBMTIwRTAzRDgwMDgyNkMw
QyAvKiBKU0dDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzE0RTRFODEyMEUwM0Q4MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIu
Y3BwICovOyB9OwpAQCAtODgsNyArODYsNiBAQAogCQk2NTEwQTc3RjExRUM2NDM4MDA0MTA4Njcg
LyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0Y2hlcjcw
MC50dGY7IHBhdGggPSBmb250cy9XZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0Zjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUxMEE3ODAxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdl
aWdodFdhdGNoZXI4MDAudHRmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IFdlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmOyBwYXRo
ID0gZm9udHMvV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1MTBBNzgxMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVy
OTAwLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGZpbGU7IG5hbWUgPSBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZjsgcGF0aCA9IGZvbnRzL1dl
YktpdFdlaWdodFdhdGNoZXI5MDAudHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
NUREMUQ5NTEyRkZFNzk4MDA0QjUyODUgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
cGF0aCA9IFdlYkNvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk2NUVCODU5RDExRUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY3RpdmF0ZUZvbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1RUI4NTlGMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZv
bnRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWN0aXZhdGVG
b250cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEwNDg2QUE3NjAw
RDk2QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CkBAIC0xNDcsNyArMTQ0LDYgQEAKIAkJCQlCQzc5MzRBNTExOTA2NTg0
MDA1RUE4RTIgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQkM3OTM0
QUMxMTkwNjU4QzAwNUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
CiAJCQkJQkNEQTJCOUExMTkxMDUxRjAwQzNCQzQ3IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTY1REQxRDk2MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJD
b3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU4LDcgKzE1NCw2IEBACiAJCQkJ
QkMyNTE5M0UxMUQxNUQ4QjAwMkVCQzAxIC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovLAogCQkJCUJDMjUxOTNGMTFEMTVEOEIwMDJFQkMwMSAvKiBXZWJLaXQyLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovLAogCQkJCUJDMjUxOTQwMTFEMTVEOEIwMDJFQkMwMSAvKiBKYXZhU2Ny
aXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQk2NURFNDMyNTEyRkZFODQw
MDAxNzFCQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwMCw3
ICsxOTUsNiBAQAogCQkJCUJDNzkzNEE0MTE5MDY1ODQwMDVFQThFMiAvKiBDb2NvYS5mcmFtZXdv
cmsgKi8sCiAJCQkJQkM3OTM0QUIxMTkwNjU4QzAwNUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3Jr
ICovLAogCQkJCUJDREEyQjk5MTE5MTA1MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgKi8sCi0JCQkJNjVERDFEOTUxMkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3
b3JrICovLAogCQkJKTsKIAkJCW5hbWUgPSAiRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFy
aWVzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82453</attachid>
            <date>2011-02-15 07:49:31 -0800</date>
            <delta_ts>2011-02-18 10:13:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54109-20110215164929.patch</filename>
            <type>text/plain</type>
            <size>11769</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg1NTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YThhYjkzNmMzMjAyZDVk
ODNmZGFiNTRhZjZkMGQxN2E1NTVkZjBhLi45NDUzODU0M2VmMjBjY2JhODQ1ZmRlMGE0ZGMyMmFk
ZDRiYTkwMmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMTUgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJlYWsgSW5qZWN0ZWRCdW5kbGUg
b24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
MTA5CisKKyAgICAgICAgTm8gY29kZSBjaGFuZ2VzIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIG5lZWRlZCB0byB1c2UgS1VSTAorICAgICAg
ICBpbiBXZWJLaXRUZXN0UnVubmVyLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKIDIwMTEtMDItMTUgIEJpbGwg
QnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlk
IExldmluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKaW5kZXggZjE2NDkwMmYxZjYxMjJjYzhlOTA3YzEwNDU0MmNmYzI5ODU2ZjM1OS4uMzNkYzBl
NzFlMjhmYmVlYWI1ZDZlOGM1MTUwMjZiNjY4OWViODhjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCkBAIC02Myw3ICs2Myw3IEBAIFBST0RV
Q1RJT05fRlJBTUVXT1JLU19ESVJfaXBob25lc2ltdWxhdG9yID0gJChQUk9EVUNUSU9OX0ZSQU1F
V09SS1NfRElSX2lwaG9uZW9zCiBQUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElSX21hY29zeCA9ICQo
TkVYVF9ST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzOwogCiBXRUJLSVQyX0xE
RkxBR1MgPSAkKFdFQktJVDJfTERGTEFHU18kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
KSk7Ci1XRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdDIgLWFs
bG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRU
ZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CitXRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdDIKIFdFQktJVDJfTERGTEFHU18xMDcwID0gJChXRUJLSVQyX0xERkxB
R1NfMTA2MCk7CiAKIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIgPSAkKEpBVkFT
Q1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfJChDT05GSUdVUkFUSU9OKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IGQzYzdlMGZjMjM0ZDk2Mzg3Y2IzNmYyZDE1MzBmNjRjZmJiYWIxOWIu
LjhlYzQ0MWI1MDkyOTlkYzQ4ZDNjZjg0MWI1NjBmNGU3ZjkwNGQ4Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCkBAIC02MjUsNyArNjI1LDYgQEAgX19aTjdXZWJDb3JlNEZvbnRhU0VSS1MwXwogX19a
TjdXZWJDb3JlNEljb24xOGNyZWF0ZUljb25Gb3JGaWxlc0VSS04zV1RGNlZlY3RvcklOUzFfNlN0
cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTRJY29uRDFFdgogX19aTjdXZWJDb3JlNEtVUkwxMGlu
dmFsaWRhdGVFdgotX19aTjdXZWJDb3JlNEtVUkxDMUVOU18xOFBhcnNlZFVSTFN0cmluZ1RhZ0VQ
S2MKIF9fWk43V2ViQ29yZTRLVVJMQzFFTlNfMThQYXJzZWRVUkxTdHJpbmdUYWdFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmU0S1VSTEMxRVA1TlNVUkwKIF9fWk43V2ViQ29yZTRLVVJMQzFF
UEs3X19DRlVSTApAQCAtMTEzMiw3ICsxMTMxLDYgQEAgX19aTks3V2ViQ29yZTRLVVJMMTRmaWxl
U3lzdGVtUGF0aEV2CiBfX1pOSzdXZWJDb3JlNEtVUkwxN2xhc3RQYXRoQ29tcG9uZW50RXYKIF9f
Wk5LN1dlYkNvcmU0S1VSTDRob3N0RXYKIF9fWk5LN1dlYkNvcmU0S1VSTDRwYXRoRXYKLV9fWk5L
N1dlYkNvcmU0S1VSTDhwcm90b2NvbEV2CiBfX1pOSzdXZWJDb3JlNEtVUkxjdlA1TlNVUkxFdgog
X19aTks3V2ViQ29yZTROb2RlMTRpc0Rlc2NlbmRhbnRPZkVQS1MwXwogX19aTks3V2ViQ29yZTRO
b2RlMThnZXRTdWJyZXNvdXJjZVVSTHNFUk4zV1RGMTFMaXN0SGFzaFNldElOU180S1VSTEVMbTI1
NkVOU184S1VSTEhhc2hFRUUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA5MGY3NDMyNTZkMGNhNzA0NGEzNGI4YTcyNWRhNGNiMjY2YzUxNTM2Li41
ODBkOWY0Y2RjMWE5NDk4N2YzZjlmOGJjOGYxNzg3ZDMyZDMwZTZhIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEt
MDItMTUgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJlYWsgSW5q
ZWN0ZWRCdW5kbGUgb24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU0MTA5CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOiBEb24ndCB1c2UgS1VSTAorICAgICAgICB0
byBhbmFseXplIHRoZSBVUkwgYnV0IGRvIGl0IHdpdGggcGxhdGZvcm0gQVBJLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEbyBub3QgbGluaworICAgICAgICBhZ2FpbnN0IFdlYkNvcmUuCisKIDIwMTEtMDItMTUg
IERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNoaW5pY2hpcm8gSGFtYWppLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDczOWRhM2I5
OTJkZGU2NzBmNWRhNWM5ZWNlMWVkNWVhZmEwZjIzYjYuLmM0ZDczMjZmNDJkMDJmM2E4ZGQzODA2
MGU5YmRhNzkyZTU0ZjRhNzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
S1VSTC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdDIv
V0tCdW5kbGUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+
CkBAIC0zOSw2ICszOCwxNSBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVQYWdlUHJpdmF0
ZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tVUkxSZXF1ZXN0Lmg+CiAKKyNpZiBQTEFURk9STShD
RikKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlVSTC5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tVUkxDRi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNlbGlmIFBMQVRGT1JNKFFU
KQorI2luY2x1ZGUgPFFVcmw+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1VSTFF0Lmg+CisjZW5kaWYK
KwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdUUiB7CkBAIC02MTgsMjAgKzYy
NiwzOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3Vy
Y2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYQogCiAvLyBSZXNvdXJjZSBMb2FkIENsaWVu
dCBDYWxsYmFja3MKIAorc3RhdGljIGJvb2wgc2hvdWxkQmxvY2tVUkwoV0tVUkxSZWYgd2tVUkwp
Cit7CisjaWYgUExBVEZPUk0oQ0YpCisgICAgUmV0YWluUHRyPENGVVJMUmVmPiBjZlVSTCA9IFdL
VVJMQ29weUNGVVJMKDAsIHdrVVJMKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3Qg
PSBDRlVSTENvcHlIb3N0TmFtZShjZlVSTC5nZXQoKSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBzY2hlbWUgPSBDRlVSTENvcHlTY2hlbWUoY2ZVUkwuZ2V0KCkpOworICAgIGlmICgoaG9z
dC5nZXQoKSkKKyAgICAgICAgJiYgKENGU3RyaW5nQ29tcGFyZShzY2hlbWUuZ2V0KCksIENGU1RS
KCJodHRwIiksIGtDRkNvbXBhcmVDYXNlSW5zZW5zaXRpdmUpID09IDAgfHwgQ0ZTdHJpbmdDb21w
YXJlKHNjaGVtZS5nZXQoKSwgQ0ZTVFIoImh0dHAiKSwga0NGQ29tcGFyZUNhc2VJbnNlbnNpdGl2
ZSkgPT0gMCkKKyAgICAgICAgJiYgKENGU3RyaW5nQ29tcGFyZShob3N0LmdldCgpLCBDRlNUUigi
MTI3LjAuMC4xIiksIDApICE9IDApCisgICAgICAgICYmIChDRlN0cmluZ0NvbXBhcmUoaG9zdC5n
ZXQoKSwgQ0ZTVFIoIjI1NS4yNTUuMjU1LjI1NSIpLCAwKSAhPSAwKSAvLyBVc2VkIGluIHNvbWUg
dGVzdHMgdGhhdCBleHBlY3QgdG8gZ2V0IGJhY2sgYW4gZXJyCisgICAgICAgICYmIChDRlN0cmlu
Z0NvbXBhcmUoaG9zdC5nZXQoKSwgQ0ZTVFIoImxvY2FsaG9zdCIpLCBrQ0ZDb21wYXJlQ2FzZUlu
c2Vuc2l0aXZlKSAhPSAwKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZWxpZiBQTEFURk9STShR
VCkKKyAgICBRVXJsIHFVUkwgPSBXS1VSTENvcHlRVXJsKHdrVVJMKTsKKyAgICBpZiAoKCFxVVJM
Lmhvc3QoKS5pc0VtcHR5KCkpCisgICAgICAgICYmIChxVVJMLnNjaGVtZSgpLmNvbXBhcmUoUUxh
dGluMVN0cmluZygiaHR0cCIpLCBRdDo6Q2FzZUluc2Vuc2l0aXZlKSA9PSAwIHx8IHFVUkwuc2No
ZW1lKCkuY29tcGFyZShRTGF0aW4xU3RyaW5nKCJodHRwcyIpLCBRdDo6Q2FzZUluc2Vuc2l0aXZl
KSA9PSAwKQorICAgICAgICAmJiAocVVSTC5ob3N0KCkgIT0gUUxhdGluMVN0cmluZygiMTI3LjAu
MC4xIikpCisgICAgICAgICYmIChxVVJMLmhvc3QoKSAhPSBRTGF0aW4xU3RyaW5nKCIyNTUuMjU1
LjI1NS4yNTUiKSkgLy8gVXNlZCBpbiBzb21lIHRlc3RzIHRoYXQgZXhwZWN0IHRvIGdldCBiYWNr
IGFuIGVycm9yLgorICAgICAgICAmJiAocVVSTC5ob3N0KCkuY29tcGFyZShRTGF0aW4xU3RyaW5n
KCJsb2NhbGhvc3QiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkgIT0gMCkpCisgICAgICAgIHJldHVy
biB0cnVlOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXS1VSTFJlcXVlc3RSZWYg
SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwg
V0tVUkxSZXNwb25zZVJlZikKIHsKICAgICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlz
VGVzdFJ1bm5pbmcoKSAmJiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRy
b2xsZXIoKS0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBzdHJpbmcgdXJsU3RyaW5nID0gdG9TVEQoYWRvcHRXSyhXS1VSTENvcHlTdHJpbmco
YWRvcHRXSyhXS1VSTFJlcXVlc3RDb3B5VVJMKHJlcXVlc3QpKS5nZXQoKSkpKTsKLSAgICBXZWJD
b3JlOjpLVVJMIHVybChXZWJDb3JlOjpQYXJzZWRVUkxTdHJpbmcsIHVybFN0cmluZy5jX3N0cigp
KTsKLQotICAgIGlmICghdXJsLmhvc3QoKS5pc0VtcHR5KCkKLSAgICAgICAgJiYgKGVxdWFsSWdu
b3JpbmdDYXNlKHVybC5wcm90b2NvbCgpLCAiaHR0cCIpIHx8IChlcXVhbElnbm9yaW5nQ2FzZSh1
cmwucHJvdG9jb2woKSwgImh0dHBzIikpKQotICAgICAgICAmJiAodXJsLmhvc3QoKSAhPSAiMTI3
LjAuMC4xIikKLSAgICAgICAgJiYgKHVybC5ob3N0KCkgIT0gIjI1NS4yNTUuMjU1LjI1NSIpIC8v
IHVzZWQgaW4gc29tZSB0ZXN0cyB0aGF0IGV4cGVjdCB0byBnZXQgYmFjayBhbiBlcnJvcgotICAg
ICAgICAmJiAoIWVxdWFsSWdub3JpbmdDYXNlKHVybC5ob3N0KCksICJsb2NhbGhvc3QiKSkpIHsK
LSAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLm9zKCkgPDwgIkJsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCAiIDw8IHVybFN0cmluZyA8PCAiXG4iOworICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiB3a1VSTCA9IGFkb3B0V0soV0tVUkxSZXF1ZXN0Q29weVVSTChyZXF1ZXN0KSk7
CisgICAgaWYgKHNob3VsZEJsb2NrVVJMKHdrVVJMLmdldCgpKSkgeworICAgICAgICBJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkub3MoKSA8PCAiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
ICIgPDwgdG9TVEQoYWRvcHRXSyhXS1VSTENvcHlTdHJpbmcod2tVUkwuZ2V0KCkpKSkgPDwgIlxu
IjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlLnBybyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCmluZGV4
IDI0ZGI0Yjg1YWJkMTdlNjAwYTFjNDBkYjVhYzAzOTZlYjdjNjVkMjkuLjg2YjhlZTQxNTkwNmU3
NmM5NzViNWRhMTE1ZTY4MGFiZmIzYjYwNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCkBAIC02
MCw2ICs2MCw3IEBAIElOQ0xVREVQQVRIICs9IFwKICAgICAkJFBXRC8uLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0IFwKICAgICAkJFBXRC8uLi8uLi8uLi8uLi9Tb3VyY2Uv
V2ViS2l0MiBcCiAgICAgJCRQV0QvLi4vLi4vLi4vLi4vU291cmNlL1dlYktpdDIvU2hhcmVkIFwK
KyAgICAkJFBXRC8uLi8uLi8uLi8uLi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9x
dCBcCiAgICAgJCRHRU5FUkFURURfU09VUkNFU19ESVIKIAogSU5DTFVERVBBVEggKz0gXApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5u
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4NDI4NDAzMTM2YmQxMTQ1ZTY0ODNh
ZjhjYTM1NGRmNDQ4OTY2YmQxLi5hMTVmZTQxN2M2YTNkZTNmYmRkYzhmNDJlNjRhM2M2MWE1M2Iz
YjE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzIsOCArMzIsNiBA
QAogCQk2NTEwQTc4QTExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50
dGYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1MTBB
NzdGMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiAqLzsgfTsK
IAkJNjUxMEE3OEIxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI4MDAudHRm
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTEwQTc4
MDExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGYgKi87IH07CiAJ
CTY1MTBBNzhDMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUxMEE3ODEx
MUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmICovOyB9OwotCQk2
NUREMUQ5NjEyRkZFNzk4MDA0QjUyODUgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUREMUQ5NTEyRkZFNzk4MDA0
QjUyODUgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi87IH07Ci0JCTY1REU0MzI1MTJGRkU4NDAwMDE3
MUJDQSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1REQxRDk1MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZy
YW1ld29yayAqLzsgfTsKIAkJNjVFQjg1QTAxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9u
dHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUVC
ODU5RjExRUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5tbSAqLzsgfTsKIAkJQkMxNEU0
REIxMjBFMDJEMDAwODI2QzBDIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0RTREOTEyMEUwMkQwMDA4MjZDMEMgLyog
R0NDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJQkMxNEU0RUExMjBFMDNEODAwODI2QzBDIC8qIEpT
R0NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMTRFNEU4MTIwRTAzRDgwMDgyNkMwQyAvKiBKU0dDQ29udHJvbGxlci5jcHAgKi87
IH07CkBAIC04OCw3ICs4Niw2IEBACiAJCTY1MTBBNzdGMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJL
aXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0Zjsg
cGF0aCA9IGZvbnRzL1dlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2NTEwQTc4MDExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0
Y2hlcjgwMC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGY7IHBhdGggPSBmb250
cy9XZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjUxMEE3ODExMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI5MDAudHRm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
bmFtZSA9IFdlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmOyBwYXRoID0gZm9udHMvV2ViS2l0V2Vp
Z2h0V2F0Y2hlcjkwMC50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1REQxRDk1
MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0g
V2ViQ29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTY1RUI4NTlEMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2YXRlRm9udHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNjVFQjg1OUYxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY3RpdmF0ZUZvbnRzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUg
LyogV2ViS2l0VGVzdFJ1bm5lciAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lcjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKQEAgLTE0Nyw3ICsxNDQsNiBAQAogCQkJCUJDNzkzNEE1MTE5MDY1ODQwMDVFQThF
MiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzc5MzRBQzExOTA2
NThDMDA1RUE4RTIgLyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlC
Q0RBMkI5QTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8sCi0JCQkJNjVERDFEOTYxMkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNTgsNyArMTU0LDYgQEAKIAkJCQlCQzI1MTkz
RTExRDE1RDhCMDAyRUJDMDEgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJ
CQkJQkMyNTE5M0YxMUQxNUQ4QjAwMkVCQzAxIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8sCiAJCQkJQkMyNTE5NDAxMUQxNUQ4QjAwMkVCQzAxIC8qIEphdmFTY3JpcHRDb3Jl
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTY1REU0MzI1MTJGRkU4NDAwMDE3MUJD
QSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjAwLDcgKzE5NSw2
IEBACiAJCQkJQkM3OTM0QTQxMTkwNjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayAqLywK
IAkJCQlCQzc5MzRBQjExOTA2NThDMDA1RUE4RTIgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi8sCiAJ
CQkJQkNEQTJCOTkxMTkxMDUxRjAwQzNCQzQ3IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAq
LywKLQkJCQk2NUREMUQ5NTEyRkZFNzk4MDA0QjUyODUgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8s
CiAJCQkpOwogCQkJbmFtZSA9ICJFeHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMiOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82975</attachid>
            <date>2011-02-18 10:13:44 -0800</date>
            <delta_ts>2011-02-25 16:28:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54109-20110218181342.patch</filename>
            <type>text/plain</type>
            <size>15794</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg5OTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwM2QwMjMxM2IzZGQyOTA1
NjdhYzY1ZGZmODQ4OTNkMmUzMmQwYTZmLi45Y2NmNzk4NjFkYzFhMjY0ZjE3NjZmZTkwNDVkMDIw
NWU4MjQ2MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDItMTggIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJlYWsgSW5qZWN0ZWRCdW5kbGUg
b24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
MTA5CisKKyAgICAgICAgTm8gY29kZSBjaGFuZ2VzIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIG5lZWRlZCB0byB1c2UgS1VSTAorICAgICAg
ICBpbiBXZWJLaXRUZXN0UnVubmVyLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKwogMjAxMS0wMi0xOCAgU3Rl
dmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kcmVhcyBLbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
V2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUu
eGNjb25maWcKaW5kZXggZjE2NDkwMmYxZjYxMjJjYzhlOTA3YzEwNDU0MmNmYzI5ODU2ZjM1OS4u
MzNkYzBlNzFlMjhmYmVlYWI1ZDZlOGM1MTUwMjZiNjY4OWViODhjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCkBAIC02Myw3ICs2Myw3IEBA
IFBST0RVQ1RJT05fRlJBTUVXT1JLU19ESVJfaXBob25lc2ltdWxhdG9yID0gJChQUk9EVUNUSU9O
X0ZSQU1FV09SS1NfRElSX2lwaG9uZW9zCiBQUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElSX21hY29z
eCA9ICQoTkVYVF9ST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzOwogCiBXRUJL
SVQyX0xERkxBR1MgPSAkKFdFQktJVDJfTERGTEFHU18kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSk7Ci1XRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1hbGxvd2FibGVfY2xpZW50IFdlYktp
dDIgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxlX2NsaWVudCBX
ZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CitXRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1h
bGxvd2FibGVfY2xpZW50IFdlYktpdDIKIFdFQktJVDJfTERGTEFHU18xMDcwID0gJChXRUJLSVQy
X0xERkxBR1NfMTA2MCk7CiAKIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIgPSAk
KEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfJChDT05GSUdVUkFUSU9OKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGUzYjE5ODcxMGQzMTlhMTI2OTA1YWNlYmU1MjU3ZmUxZGVj
ZDdiZjEuLmFmMzgwYjAxNTVjZTBkZDA0NjAwMTg5MTNiY2E3Y2FhMzk0ZmU2ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC02MjksNyArNjI5LDYgQEAgX19aTjdXZWJDb3JlNEZvbnRhU0VSS1Mw
XwogX19aTjdXZWJDb3JlNEljb24xOGNyZWF0ZUljb25Gb3JGaWxlc0VSS04zV1RGNlZlY3RvcklO
UzFfNlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTRJY29uRDFFdgogX19aTjdXZWJDb3JlNEtV
UkwxMGludmFsaWRhdGVFdgotX19aTjdXZWJDb3JlNEtVUkxDMUVOU18xOFBhcnNlZFVSTFN0cmlu
Z1RhZ0VQS2MKIF9fWk43V2ViQ29yZTRLVVJMQzFFTlNfMThQYXJzZWRVUkxTdHJpbmdUYWdFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU0S1VSTEMxRVA1TlNVUkwKIF9fWk43V2ViQ29yZTRL
VVJMQzFFUEs3X19DRlVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMxOTE2MzI1ZTNjMWU2NDJiNDg5YmE5Y2Qw
ODE5ZDIwZWQ4NzY0ZWUuLjU1ZTZkYzY1YTQ2MmMwN2JlNjIzNDU4YjA3ODdhNjJjOWM1YTFjOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMi0xOCAgQmFsYXpzIEtlbGVtZW4g
IDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW1F0XVtXSzJdVW5icmVhayBJbmplY3RlZEJ1bmRsZSBvbiBRdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxMDkKKworICAg
ICAgICBBZGQgQVBJJ3MgdG8gV0tVUkwgYW5kIFdLU3RyaW5nIHRvIHNhdGlzZnkKKyAgICAgICAg
V2ViS2l0VGVzdFJ1bm5lcidzIG5lZWRzLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3Ry
aW5nLmNwcDoKKyAgICAgICAgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmdJZ25vcmluZ0Nh
c2UpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1N0cmluZy5oOiBTdHlsZSBmaXg6IHJlbW92
ZSBub24taW5mb3JtYXRpdmUKKyAgICAgICAgcGFyYW1ldGVyIG5hbWVzLgorICAgICAgICAqIFNo
YXJlZC9BUEkvYy9XS1VSTC5jcHA6CisgICAgICAgIChXS1VSTENvcHlIb3N0TmFtZSk6CisgICAg
ICAgIChXS1VSTENvcHlQcm90b2NvbCk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLVVJMLmg6
IFN0eWxlIGZpeDogcmVtb3ZlIG5vbi1pbmZvcm1hdGl2ZQorICAgICAgICBwYXJhbWV0ZXIgbmFt
ZXMuCisgICAgICAgICogU2hhcmVkL1dlYlN0cmluZy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJT
dHJpbmc6OmVxdWFsVG9VVEY4U3RyaW5nSWdub3JpbmdDYXNlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViVVJMLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTDo6aG9zdCk6IFBhcnNlIHRoZSB1cmwg
d2l0aCBLVVJMCisgICAgICAgIGFuZCBnZXQgdGhlIGhvc3QgbmFtZS4KKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMOjpwcm90b2NvbCk6IFBhcnNlIHRoZSB1cmwgd2l0aCBLVVJMCisgICAgICAgIGFu
ZCBnZXQgdGhlIHByb3RvY29sLgorCiAyMDExLTAyLTE4ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8
YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBHVEsgYnVpbGQgYnkgZml4aW5nIHNpZ25h
dHVyZSBvZiBwbGF0Zm9ybVBhaW50KCksIHJlcXVpcmVkIGFmdGVyIHI3ODk1Ni4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCmluZGV4IDcyODQxYTRlMDUyZmQyNDJmZGU3
YWM3NzY1Y2ZhMTI1OGY0MzFjZDYuLjBjMzg4YzYwNmZkOTU5ZTcyM2UzOTIwYjI2OTAxZDViMWYx
NGI3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcApAQCAtNjcs
NiArNjcsMTEgQEAgYm9vbCBXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKFdLU3RyaW5nUmVm
IGFSZWYsIGNvbnN0IGNoYXIqIGIpCiAgICAgcmV0dXJuIHRvSW1wbChhUmVmKS0+ZXF1YWxUb1VU
RjhTdHJpbmcoYik7CiB9CiAKK2Jvb2wgV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZ0lnbm9y
aW5nQ2FzZShXS1N0cmluZ1JlZiBhUmVmLCBjb25zdCBjaGFyKiBiKQoreworICAgIHJldHVybiB0
b0ltcGwoYVJlZiktPmVxdWFsVG9VVEY4U3RyaW5nSWdub3JpbmdDYXNlKGIpOworfQorCiBXS1N0
cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhKU1N0cmluZ1JlZiBqc1N0cmluZ1Jl
ZikKIHsKICAgICBSZWZQdHI8V2ViU3RyaW5nPiB3ZWJTdHJpbmcgPSBXZWJTdHJpbmc6OmNyZWF0
ZShqc1N0cmluZ1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tTdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCmluZGV4
IGU3OTgzOWU3ZjIzMTBiMTg3YzhkMDI4M2QxMmRlOTE1YjU2Mzc0YjAuLjljMTZhNDU4MTFkMTM2
NDA2ZmU0Yjc2MjdmYjYxMDZhMzRhMGNhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS1N0cmluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1N0cmluZy5oCkBAIC0zOCwxNSArMzgsMTYgQEAgZXh0ZXJuICJDIiB7CiAKIFdLX0VYUE9SVCBX
S1R5cGVJRCBXS1N0cmluZ0dldFR5cGVJRCgpOwogCi1XS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKTsKK1dLX0VYUE9S
VCBXS1N0cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb25zdCBjaGFyKik7
CiAKLVdLX0VYUE9SVCBib29sIFdLU3RyaW5nSXNFbXB0eShXS1N0cmluZ1JlZiBzdHJpbmcpOwor
V0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VtcHR5KFdLU3RyaW5nUmVmKTsKIAotV0tfRVhQT1JU
IHNpemVfdCBXS1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoV0tTdHJpbmdSZWYgc3Ry
aW5nKTsKK1dLX0VYUE9SVCBzaXplX3QgV0tTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXpl
KFdLU3RyaW5nUmVmKTsKIFdLX0VYUE9SVCBzaXplX3QgV0tTdHJpbmdHZXRVVEY4Q1N0cmluZyhX
S1N0cmluZ1JlZiBzdHJpbmcsIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUpOwogCi1X
S19FWFBPUlQgYm9vbCBXS1N0cmluZ0lzRXF1YWwoV0tTdHJpbmdSZWYgYSwgV0tTdHJpbmdSZWYg
Yik7Ci1XS19FWFBPUlQgYm9vbCBXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKFdLU3RyaW5n
UmVmIGEsIGNvbnN0IGNoYXIqIGIpOworV0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VxdWFsKFdL
U3RyaW5nUmVmLCBXS1N0cmluZ1JlZik7CitXS19FWFBPUlQgYm9vbCBXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKFdLU3RyaW5nUmVmLCBjb25zdCBjaGFyKik7CitXS19FWFBPUlQgYm9vbCBX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nSWdub3JpbmdDYXNlKFdLU3RyaW5nUmVmLCBjb25z
dCBjaGFyKik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS1VSTC5jcHAKaW5kZXggNmI3ZTU2NzViYmQyNTJjNzE5MjIyOGM5ZTcxMTYwMTkyYzBiOTQ1
ZC4uZGIxODA5ZWMyODg4MmVkMTM3ZWVmOWNiOWRhYjUwNDJiYWRkNDJmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tVUkwuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCiBXS1R5cGVJRCBXS1VSTEdldFR5cGVJRCgpCkBAIC00OSwzICs1MCwxMyBAQCBi
b29sIFdLVVJMSXNFcXVhbChXS1VSTFJlZiBhLCBXS1VSTFJlZiBiKQogewogICAgIHJldHVybiB0
b0ltcGwoYSktPnN0cmluZygpID09IHRvSW1wbChiKS0+c3RyaW5nKCk7CiB9CisKK1dLU3RyaW5n
UmVmIFdLVVJMQ29weUhvc3ROYW1lKFdLVVJMUmVmIHVybCkKK3sKKyAgICByZXR1cm4gdG9Db3Bp
ZWRBUEkodG9JbXBsKHVybCktPmhvc3QoKSk7Cit9CisKK1dLU3RyaW5nUmVmIFdLVVJMQ29weVBy
b3RvY29sKFdLVVJMUmVmIHVybCkKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHVy
bCktPnByb3RvY29sKCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLVVJMLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkwuaAppbmRleCA3
MzhiY2U1YjRiZDJlYjBlOGNmOWM4ZWMzMGE5NmJlMDZmYjVhOTlhLi40NGI4ZDdlMmEwZTM3YjBj
NGZiNDY0ZGIzMjViOTNmNjZhZmRlYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tVUkwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkwu
aApAQCAtMzQsMTEgKzM0LDE1IEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQgV0tUeXBlSUQg
V0tVUkxHZXRUeXBlSUQoKTsKIAotV0tfRVhQT1JUIFdLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmluZyk7CitXS19FWFBPUlQgV0tVUkxSZWYgV0tVUkxD
cmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciopOwogCi1XS19FWFBPUlQgV0tTdHJpbmdS
ZWYgV0tVUkxDb3B5U3RyaW5nKFdLVVJMUmVmIFVSTCk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYg
V0tVUkxDb3B5U3RyaW5nKFdLVVJMUmVmKTsKIAotV0tfRVhQT1JUIGJvb2wgV0tVUkxJc0VxdWFs
KFdLVVJMUmVmIGEsIFdLVVJMUmVmIGIpOworV0tfRVhQT1JUIGJvb2wgV0tVUkxJc0VxdWFsKFdL
VVJMUmVmLCBXS1VSTFJlZik7CisKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1VSTENvcHlIb3N0
TmFtZShXS1VSTFJlZik7CisKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1VSTENvcHlQcm90b2Nv
bChXS1VSTFJlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0
cmluZy5oCmluZGV4IGE3NzI5M2IwODlmNzRkNWVmZGEzNjhhZjAzOGYzMWI4OWNiMGFlMmQuLjY4
MjcyNzZjYmQzY2NiMTk2OGRjM2YyMjBlNGY1MzFlYzkyOTAyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJTdHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViU3RyaW5nLmgKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBlcXVhbChX
ZWJTdHJpbmcqIG90aGVyKSB7IHJldHVybiBtX3N0cmluZyA9PSBvdGhlci0+bV9zdHJpbmc7IH0K
ICAgICBib29sIGVxdWFsVG9VVEY4U3RyaW5nKGNvbnN0IGNoYXIqIG90aGVyKSB7IHJldHVybiBt
X3N0cmluZyA9PSBTdHJpbmc6OmZyb21VVEY4KG90aGVyKTsgfQorICAgIGJvb2wgZXF1YWxUb1VU
RjhTdHJpbmdJZ25vcmluZ0Nhc2UoY29uc3QgY2hhciogb3RoZXIpIHsgcmV0dXJuIGVxdWFsSWdu
b3JpbmdDYXNlKG1fc3RyaW5nLCBvdGhlcik7IH0KIAogICAgIGNvbnN0IFN0cmluZyYgc3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlVSTC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTC5oCmluZGV4
IDFiMDgyNmJkMTg0ZWQ5N2I1MDYzNzgzMWQ1MDVlOTNmYTBlYTQ3ZDguLmRhMDcwNWZjOThmZTIx
NWI0MDVlMDQ0ZjhkNWVlMzllMTU2MDVjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJVUkwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMLmgKQEAgLTI3
LDYgKzI3LDcgQEAKICNkZWZpbmUgV2ViVVJMX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDYgKzQ4LDE4IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5pc0VtcHR5KCk7
IH0KIAogICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7
IH0KKyAgICAKKyAgICBTdHJpbmcgaG9zdCgpIGNvbnN0CisgICAgeworICAgICAgICBXZWJDb3Jl
OjpLVVJMIHVybChXZWJDb3JlOjpLVVJMKCksIG1fc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHVy
bC5pc1ZhbGlkKCkgPyB1cmwuaG9zdCgpIDogU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIFN0
cmluZyBwcm90b2NvbCgpIGNvbnN0CisgICAgeworICAgICAgICBXZWJDb3JlOjpLVVJMIHVybChX
ZWJDb3JlOjpLVVJMKCksIG1fc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHVybC5pc1ZhbGlkKCkg
PyB1cmwucHJvdG9jb2woKSA6IFN0cmluZygpOworICAgIH0KIAogcHJpdmF0ZToKICAgICBXZWJV
UkwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYTllNGI4MDM0ODcwMzA3OTZhMmFlYWVlNmYxYjlhYTA5NzU3
Njg0Yi4uNzNmZjdjZmRhODQ1N2JiNTJkOThiYmFhYjBkMGJlYWZmZDMxNzZmOSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTAyLTE4ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dLMl1VbmJy
ZWFrIEluamVjdGVkQnVuZGxlIG9uIFF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NDEwOQorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKTogVXNlIG5ldyBXZWJLaXQyCisg
ICAgICAgIEFQSSdzIGluc3RlYWQgb2YgS1VSTCB0byBhbmFseXplIHRoZSBVUkwuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IERvIG5vdCBsaW5rCisgICAgICAgIGFnYWluc3QgV2ViQ29yZS4KKwogMjAxMS0wMi0x
NiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCA3MzlkYTNiOTky
ZGRlNjcwZjVkYTVjOWVjZTFlZDVlYWZhMGYyM2I2Li5hMzhjNTdlOWUwMzZjNTAzM2RlZjU1YTFk
NTAzNzI1NjY3NDBhMjBjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0yOSw3ICsyOSw2
IEBACiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0tV
UkwuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQXJyYXkuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dL
QnVuZGxlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oPgpA
QCAtNjIzLDE1ICs2MjIsMTUgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0IKICAgICBpZiAoSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSAmJiBJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051
bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBzdHJpbmcgdXJsU3RyaW5nID0gdG9TVEQo
YWRvcHRXSyhXS1VSTENvcHlTdHJpbmcoYWRvcHRXSyhXS1VSTFJlcXVlc3RDb3B5VVJMKHJlcXVl
c3QpKS5nZXQoKSkpKTsKLSAgICBXZWJDb3JlOjpLVVJMIHVybChXZWJDb3JlOjpQYXJzZWRVUkxT
dHJpbmcsIHVybFN0cmluZy5jX3N0cigpKTsKLQotICAgIGlmICghdXJsLmhvc3QoKS5pc0VtcHR5
KCkKLSAgICAgICAgJiYgKGVxdWFsSWdub3JpbmdDYXNlKHVybC5wcm90b2NvbCgpLCAiaHR0cCIp
IHx8IChlcXVhbElnbm9yaW5nQ2FzZSh1cmwucHJvdG9jb2woKSwgImh0dHBzIikpKQotICAgICAg
ICAmJiAodXJsLmhvc3QoKSAhPSAiMTI3LjAuMC4xIikKLSAgICAgICAgJiYgKHVybC5ob3N0KCkg
IT0gIjI1NS4yNTUuMjU1LjI1NSIpIC8vIHVzZWQgaW4gc29tZSB0ZXN0cyB0aGF0IGV4cGVjdCB0
byBnZXQgYmFjayBhbiBlcnJvcgotICAgICAgICAmJiAoIWVxdWFsSWdub3JpbmdDYXNlKHVybC5o
b3N0KCksICJsb2NhbGhvc3QiKSkpIHsKLSAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
Lm9zKCkgPDwgIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAiIDw8IHVybFN0cmluZyA8
PCAiXG4iOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFdLVVJMUmVx
dWVzdENvcHlVUkwocmVxdWVzdCkpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBob3N0
ID0gV0tVUkxDb3B5SG9zdE5hbWUodXJsLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gcHJvdG9jb2wgPSBXS1VSTENvcHlQcm90b2NvbCh1cmwuZ2V0KCkpOworICAgIGlmICho
b3N0LmdldCgpCisgICAgICAgICYmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nSWdub3Jp
bmdDYXNlKHByb3RvY29sLmdldCgpLCAiaHR0cCIpIHx8IFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmdJZ25vcmluZ0Nhc2UocHJvdG9jb2wuZ2V0KCksICJodHRwcyIpKQorICAgICAgICAmJiAo
IVdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoaG9zdC5nZXQoKSwgIjEyNy4wLjAuMSIpKQor
ICAgICAgICAmJiAoIVdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoaG9zdC5nZXQoKSwgIjI1
NS4yNTUuMjU1LjI1NSIpKSAvLyBVc2VkIGluIHNvbWUgdGVzdHMgdGhhdCBleHBlY3QgdG8gZ2V0
IGJhY2sgYW4gZXJyb3IuCisgICAgICAgICYmICghV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
Z0lnbm9yaW5nQ2FzZShob3N0LmdldCgpLCAibG9jYWxob3N0IikpKSB7CisgICAgICAgIEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5vcygpIDw8ICJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgIiA8PCB0b1NURChhZG9wdFdLKFdLVVJMQ29weVN0cmluZyh1cmwuZ2V0KCkpKSkgPDwgIlxu
IjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDg0Mjg0MDMxMzZiZDExNDVlNjQ4M2FmOGNhMzU0ZGY0NDg5NjZiZDEuLmEx
NWZlNDE3YzZhM2RlM2ZiZGRjOGY0MmU2NGEzYzYxYTUzYjNiMTcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMiw4ICszMiw2IEBACiAJCTY1MTBBNzhBMTFFQzY0Mzgw
MDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUxMEE3N0YxMUVDNjQzODAwNDEwODY3IC8q
IFdlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmICovOyB9OwogCQk2NTEwQTc4QjExRUM2NDM4MDA0
MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGYgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1MTBBNzgwMTFFQzY0MzgwMDQxMDg2NyAvKiBX
ZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiAqLzsgfTsKIAkJNjUxMEE3OEMxMUVDNjQzODAwNDEw
ODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTEwQTc4MTExRUM2NDM4MDA0MTA4NjcgLyogV2Vi
S2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYgKi87IH07Ci0JCTY1REQxRDk2MTJGRkU3OTgwMDRCNTI4
NSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1REQxRDk1MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZyYW1l
d29yayAqLzsgfTsKLQkJNjVERTQzMjUxMkZGRTg0MDAwMTcxQkNBIC8qIFdlYkNvcmUuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVE
RDFEOTUxMkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwogCQk2NUVC
ODVBMDExRUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RUI4NTlGMTFFQzY3Q0MwMDM0RDMwMCAv
KiBBY3RpdmF0ZUZvbnRzLm1tICovOyB9OwogCQlCQzE0RTREQjEyMEUwMkQwMDA4MjZDMEMgLyog
R0NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMTRFNEQ5MTIwRTAyRDAwMDgyNkMwQyAvKiBHQ0NvbnRyb2xsZXIuY3BwICovOyB9
OwogCQlCQzE0RTRFQTEyMEUwM0Q4MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNEU0RTgxMjBFMDNE
ODAwODI2QzBDIC8qIEpTR0NDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTg4LDcgKzg2LDYgQEAK
IAkJNjUxMEE3N0YxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI3MDAudHRm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
bmFtZSA9IFdlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmOyBwYXRoID0gZm9udHMvV2ViS2l0V2Vp
Z2h0V2F0Y2hlcjcwMC50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1MTBBNzgw
MTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBXZWJL
aXRXZWlnaHRXYXRjaGVyODAwLnR0ZjsgcGF0aCA9IGZvbnRzL1dlYktpdFdlaWdodFdhdGNoZXI4
MDAudHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTEwQTc4MTExRUM2NDM4MDA0
MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0
Y2hlcjkwMC50dGY7IHBhdGggPSBmb250cy9XZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0Zjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjVERDFEOTUxMkZGRTc5ODAwNEI1Mjg1IC8qIFdl
YkNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBXZWJDb3JlLmZyYW1ld29yazsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNjVFQjg1OUQxMUVDNjdDQzAwMzRE
MzAwIC8qIEFjdGl2YXRlRm9udHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QWN0aXZhdGVGb250cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUVCODU5RjEx
RUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEFjdGl2YXRlRm9udHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCThERDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBXZWJLaXRUZXN0UnVubmVyICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0
UnVubmVyOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMTQ3LDcgKzE0
NCw2IEBACiAJCQkJQkM3OTM0QTUxMTkwNjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovLAogCQkJCUJDNzkzNEFDMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQy
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUJDREEyQjlBMTE5MTA1MUYwMEMzQkM0
NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQk2NURE
MUQ5NjEyRkZFNzk4MDA0QjUyODUgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTE1OCw3ICsxNTQsNiBAQAogCQkJCUJDMjUxOTNFMTFEMTVEOEIwMDJFQkMwMSAvKiBD
b2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzI1MTkzRjExRDE1RDhCMDAy
RUJDMDEgLyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzI1MTk0
MDExRDE1RDhCMDAyRUJDMDEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8sCi0JCQkJNjVERTQzMjUxMkZGRTg0MDAwMTcxQkNBIC8qIFdlYkNvcmUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDAsNyArMTk1LDYgQEAKIAkJCQlCQzc5MzRBNDExOTA2
NTg0MDA1RUE4RTIgLyogQ29jb2EuZnJhbWV3b3JrICovLAogCQkJCUJDNzkzNEFCMTE5MDY1OEMw
MDVFQThFMiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLywKIAkJCQlCQ0RBMkI5OTExOTEwNTFGMDBD
M0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovLAotCQkJCTY1REQxRDk1MTJGRkU3
OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZyYW1ld29yayAqLywKIAkJCSk7CiAJCQluYW1lID0gIkV4
dGVybmFsIEZyYW1ld29ya3MgYW5kIExpYnJhcmllcyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83899</attachid>
            <date>2011-02-25 16:29:04 -0800</date>
            <delta_ts>2011-03-12 11:25:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54109-20110226002903.patch</filename>
            <type>text/plain</type>
            <size>16654</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk3MzkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2M2ZlYTY0MWQ2NjQ4ZDFi
ZTUzN2ViMjNjM2M1YTc5YmU3MTRlOTAzLi4xMDU3MTRiYmJlNjdhYTQ4ZWU2Mzg5ZWRjZTI0ZjVh
ZTRkMWQ1MzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDItMjUgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJlYWsgSW5qZWN0ZWRCdW5kbGUg
b24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
MTA5CisKKyAgICAgICAgTm8gY29kZSBjaGFuZ2VzIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIG5lZWRlZCB0byB1c2UgS1VSTAorICAgICAg
ICBpbiBXZWJLaXRUZXN0UnVubmVyLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKwogMjAxMS0wMi0yNCAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZwppbmRleCBmMTY0OTAyZjFmNjEyMmNjOGU5MDdjMTA0NTQyY2ZjMjk4NTZmMzU5
Li4zM2RjMGU3MWUyOGZiZWVhYjVkNmU4YzUxNTAyNmI2Njg5ZWI4OGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKQEAgLTYzLDcgKzYzLDcg
QEAgUFJPRFVDVElPTl9GUkFNRVdPUktTX0RJUl9pcGhvbmVzaW11bGF0b3IgPSAkKFBST0RVQ1RJ
T05fRlJBTUVXT1JLU19ESVJfaXBob25lb3MKIFBST0RVQ1RJT05fRlJBTUVXT1JLU19ESVJfbWFj
b3N4ID0gJChORVhUX1JPT1QpJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3M7CiAKIFdF
QktJVDJfTERGTEFHUyA9ICQoV0VCS0lUMl9MREZMQUdTXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IpKTsKLVdFQktJVDJfTERGTEFHU18xMDYwID0gLWFsbG93YWJsZV9jbGllbnQgV2Vi
S2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50
IFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZTsKK1dFQktJVDJfTERGTEFHU18xMDYwID0g
LWFsbG93YWJsZV9jbGllbnQgV2ViS2l0MgogV0VCS0lUMl9MREZMQUdTXzEwNzAgPSAkKFdFQktJ
VDJfTERGTEFHU18xMDYwKTsKIAogSkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUiA9
ICQoSkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUl8kKENPTkZJR1VSQVRJT04pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYmM0OWY4N2QyOWMzMDZlZDI1NzUyN2VmN2U1NWQxMGVh
MGI5MzVkNC4uOTQ4NTVlYmNhOWZlZjgwMDIwZDIyYTI3MjllMzJjYzczMDg3NTYyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTYzNiw3ICs2MzYsNiBAQCBfX1pON1dlYkNvcmU0Rm9udGFTRVJL
UzBfCiBfX1pON1dlYkNvcmU0SWNvbjE4Y3JlYXRlSWNvbkZvckZpbGVzRVJLTjNXVEY2VmVjdG9y
SU5TMV82U3RyaW5nRUxtMEVFRQogX19aTjdXZWJDb3JlNEljb25EMUV2CiBfX1pON1dlYkNvcmU0
S1VSTDEwaW52YWxpZGF0ZUV2Ci1fX1pON1dlYkNvcmU0S1VSTEMxRU5TXzE4UGFyc2VkVVJMU3Ry
aW5nVGFnRVBLYwogX19aTjdXZWJDb3JlNEtVUkxDMUVOU18xOFBhcnNlZFVSTFN0cmluZ1RhZ0VS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTRLVVJMQzFFUDVOU1VSTAogX19aTjdXZWJDb3Jl
NEtVUkxDMUVQSzdfX0NGVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA1NWFjODI3NTZhOWJmZDZkNTE2NDhm
ZjM2OGFhODQ3Nzk5ODY3NS4uNDkxZTg0Nzc2YTk3Zjg3NzIzNGJhMWY1ZWU5ZWRkY2IwYTk0YzBh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTAyLTI1ICBCYWxhenMgS2VsZW1l
biAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbUXRdW1dLMl1VbmJyZWFrIEluamVjdGVkQnVuZGxlIG9uIFF0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDEwOQorCisg
ICAgICAgIEFkZCBBUEkncyB0byBXS1VSTCBhbmQgV0tTdHJpbmcgdG8gc2F0aXNmeQorICAgICAg
ICBXZWJLaXRUZXN0UnVubmVyJ3MgbmVlZHMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tT
dHJpbmcuY3BwOgorICAgICAgICAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZ0lnbm9yaW5n
Q2FzZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9jL1dLVVJMLmNwcDoKKyAgICAgICAgKFdLVVJMQ29weUhvc3ROYW1lKToKKyAgICAg
ICAgKFdLVVJMQ29weVNjaGVtZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLVVJMLmg6Cisg
ICAgICAgICogU2hhcmVkL1dlYlN0cmluZy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTdHJpbmc6
OmVxdWFsVG9VVEY4U3RyaW5nSWdub3JpbmdDYXNlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViVVJM
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTDo6aG9zdCk6IFBhcnNlIHRoZSB1cmwgd2l0aCBL
VVJMCisgICAgICAgIGFuZCBnZXQgdGhlIGhvc3QgbmFtZS4KKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMOjpwcm90b2NvbCk6IFBhcnNlIHRoZSB1cmwgd2l0aCBLVVJMCisgICAgICAgIGFuZCBnZXQg
dGhlIHByb3RvY29sLgorICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjogUmV2ZXJ0IHRoZSBzeW1i
b2wgZXhwb3J0cyB0aGF0IHdlcmUKKyAgICAgICAgbmVlZGVkIHRvIHVzZSBLVVJMIGluIFdlYktp
dFRlc3RSdW5uZXIuCisKIDIwMTEtMDItMjQgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAKaW5kZXggNzI4NDFhNGUwNTJmZDI0MmZkZTdh
Yzc3NjVjZmExMjU4ZjQzMWNkNi4uMGMzODhjNjA2ZmQ5NTllNzIzZTM5MjBiMjY5MDFkNWIxZjE0
YjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCkBAIC02Nyw2
ICs2NywxMSBAQCBib29sIFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoV0tTdHJpbmdSZWYg
YVJlZiwgY29uc3QgY2hhciogYikKICAgICByZXR1cm4gdG9JbXBsKGFSZWYpLT5lcXVhbFRvVVRG
OFN0cmluZyhiKTsKIH0KIAorYm9vbCBXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nSWdub3Jp
bmdDYXNlKFdLU3RyaW5nUmVmIGFSZWYsIGNvbnN0IGNoYXIqIGIpCit7CisgICAgcmV0dXJuIHRv
SW1wbChhUmVmKS0+ZXF1YWxUb1VURjhTdHJpbmdJZ25vcmluZ0Nhc2UoYik7Cit9CisKIFdLU3Ry
aW5nUmVmIFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nUmVm
KQogewogICAgIFJlZlB0cjxXZWJTdHJpbmc+IHdlYlN0cmluZyA9IFdlYlN0cmluZzo6Y3JlYXRl
KGpzU3RyaW5nUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1N0cmluZy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgKaW5kZXgg
ZTc5ODM5ZTdmMjMxMGIxODdjOGQwMjgzZDEyZGU5MTViNTYzNzRiMC4uZGZmY2FiMjNlMzI4Yzk5
M2FhNzU4NDc3ZjA4OTI3NTQ5YTI0NjNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
U3RyaW5nLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgV0tfRVhQT1JUIHNpemVfdCBXS1N0cmluZ0dldFVU
RjhDU3RyaW5nKFdLU3RyaW5nUmVmIHN0cmluZywgY2hhciogYnVmZmVyLCBzaXplX3QKIAogV0tf
RVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VxdWFsKFdLU3RyaW5nUmVmIGEsIFdLU3RyaW5nUmVmIGIp
OwogV0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhXS1N0cmluZ1Jl
ZiBhLCBjb25zdCBjaGFyKiBiKTsKK1dLX0VYUE9SVCBib29sIFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmdJZ25vcmluZ0Nhc2UoV0tTdHJpbmdSZWYgYSwgY29uc3QgY2hhciogYik7CiAKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLVVJMLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTC5jcHAKaW5k
ZXggNmI3ZTU2NzViYmQyNTJjNzE5MjIyOGM5ZTcxMTYwMTkyYzBiOTQ1ZC4uZGFjZDU4OWQzZjAz
YTE2MzZmOWJjOGViMDU4ZWVmMDIyZTFkNWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tVUkwuY3BwCkBAIC00OSwzICs0OSwxMyBAQCBib29sIFdLVVJMSXNFcXVhbChXS1VSTFJlZiBh
LCBXS1VSTFJlZiBiKQogewogICAgIHJldHVybiB0b0ltcGwoYSktPnN0cmluZygpID09IHRvSW1w
bChiKS0+c3RyaW5nKCk7CiB9CisKK1dLU3RyaW5nUmVmIFdLVVJMQ29weUhvc3ROYW1lKFdLVVJM
UmVmIHVybCkKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHVybCktPmhvc3QoKSk7
Cit9CisKK1dLU3RyaW5nUmVmIFdLVVJMQ29weVNjaGVtZShXS1VSTFJlZiB1cmwpCit7CisgICAg
cmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbCh1cmwpLT5wcm90b2NvbCgpKTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTC5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLVVJMLmgKaW5kZXggNzM4YmNlNWI0YmQyZWIwZThjZjljOGVjMzBhOTZi
ZTA2ZmI1YTk5YS4uMzAwMjBhNWM3MjhlYWFhYjY3ZWNkMzkzYjFkYjViNzZmN2VmYmU2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmgKQEAgLTM2LDEwICszNiwxNCBAQCBXS19FWFBP
UlQgV0tUeXBlSUQgV0tVUkxHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JUIFdLVVJMUmVmIFdLVVJM
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmluZyk7CiAKLVdLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS1VSTENvcHlTdHJpbmcoV0tVUkxSZWYgVVJMKTsKK1dLX0VYUE9SVCBXS1N0
cmluZ1JlZiBXS1VSTENvcHlTdHJpbmcoV0tVUkxSZWYgdXJsKTsKIAogV0tfRVhQT1JUIGJvb2wg
V0tVUkxJc0VxdWFsKFdLVVJMUmVmIGEsIFdLVVJMUmVmIGIpOwogCitXS19FWFBPUlQgV0tTdHJp
bmdSZWYgV0tVUkxDb3B5SG9zdE5hbWUoV0tVUkxSZWYgdXJsKTsKKworV0tfRVhQT1JUIFdLU3Ry
aW5nUmVmIFdLVVJMQ29weVNjaGVtZShXS1VSTFJlZiB1cmwpOworCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmlu
Zy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZy5oCmluZGV4IGE3NzI5M2IwODlm
NzRkNWVmZGEzNjhhZjAzOGYzMWI4OWNiMGFlMmQuLjY4MjcyNzZjYmQzY2NiMTk2OGRjM2YyMjBl
NGY1MzFlYzkyOTAyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTdHJp
bmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nLmgKQEAgLTc0LDYgKzc0
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBlcXVhbChXZWJTdHJpbmcqIG90aGVyKSB7IHJldHVy
biBtX3N0cmluZyA9PSBvdGhlci0+bV9zdHJpbmc7IH0KICAgICBib29sIGVxdWFsVG9VVEY4U3Ry
aW5nKGNvbnN0IGNoYXIqIG90aGVyKSB7IHJldHVybiBtX3N0cmluZyA9PSBTdHJpbmc6OmZyb21V
VEY4KG90aGVyKTsgfQorICAgIGJvb2wgZXF1YWxUb1VURjhTdHJpbmdJZ25vcmluZ0Nhc2UoY29u
c3QgY2hhciogb3RoZXIpIHsgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG1fc3RyaW5nLCBvdGhl
cik7IH0KIAogICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJp
bmc7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTC5oCmluZGV4IDFiMDgyNmJkMTg0ZWQ5N2I1MDYzNzgz
MWQ1MDVlOTNmYTBlYTQ3ZDguLmRhMDcwNWZjOThmZTIxNWI0MDVlMDQ0ZjhkNWVlMzllMTU2MDVj
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
VVJMX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTQ3LDYgKzQ4LDE4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiBtX3N0cmluZy5pc0VtcHR5KCk7IH0KIAogICAgIGNvbnN0IFN0cmluZyYg
c3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KKyAgICAKKyAgICBTdHJpbmcgaG9z
dCgpIGNvbnN0CisgICAgeworICAgICAgICBXZWJDb3JlOjpLVVJMIHVybChXZWJDb3JlOjpLVVJM
KCksIG1fc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHVybC5pc1ZhbGlkKCkgPyB1cmwuaG9zdCgp
IDogU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcm90b2NvbCgpIGNvbnN0Cisg
ICAgeworICAgICAgICBXZWJDb3JlOjpLVVJMIHVybChXZWJDb3JlOjpLVVJMKCksIG1fc3RyaW5n
KTsKKyAgICAgICAgcmV0dXJuIHVybC5pc1ZhbGlkKCkgPyB1cmwucHJvdG9jb2woKSA6IFN0cmlu
ZygpOworICAgIH0KIAogcHJpdmF0ZToKICAgICBXZWJVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNzk5ZmVhOTA1ZDhkNDk2NWYyNWYxNDVhNjZkMjQ1
MjYyNDU1MTEwZi4uMzdjNWRmY2M2MDQwMDgwYTNiMjkxZWRhNjE3MDhhMGNlNGZhNDgwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTksMTQgKzE5LDYgQEAgRVhQT1JUUwogICAgICAgICBX
ZWJLaXRTaG91bGRVc2VGb250U21vb3RoaW5nCiAgICAgICAgIFdlYktpdENyZWF0ZUluc3RhbmNl
CiAJCQotICAgICAgICA7IEV4cG9ydGVkIGZvciBXZWJLaXRUZXN0UnVubmVyJ3MgdXNlIG9ubHkK
LSAgICAgICAgPz8wS1VSTEBXZWJDb3JlQEBRQUVAVzRQYXJzZWRVUkxTdHJpbmdUYWdAMUBQQkRA
WgotICAgICAgICA/PzFTdHJpbmdJbXBsQFdURkBAUUFFQFhaCi0gICAgICAgID9lcXVhbEBXVEZA
QFlBX05QQlZTdHJpbmdJbXBsQDFAUEJEQFoKLSAgICAgICAgP2VxdWFsSWdub3JpbmdDYXNlQFdU
RkBAWUFfTlBBVlN0cmluZ0ltcGxAMUBQQkRAWgotICAgICAgICA/aG9zdEBLVVJMQFdlYkNvcmVA
QFFCRT9BVlN0cmluZ0BXVEZAQFhaCi0gICAgICAgID9wcm90b2NvbEBLVVJMQFdlYkNvcmVAQFFC
RT9BVlN0cmluZ0BXVEZAQFhaCi0JCQogICAgICAgICA7IFRoZXNlIGZ1bmN0aW9ucyBhcmUgZGVw
cmVjYXRlZAogICAgICAgICBXZWJMb2NhbGl6ZWRTdHJpbmcKICAgICAgICAgV2ViTG9jYWxpemVk
TFBDVFNUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDZkZDU4YzUyM2M3ZGY1MjE3YjAwNGRmNGEwMGY5NzUxMWM5MDU2M2UuLmY0MGQwZDI4ZThk
NTcwYWIzNmM5YTE1ZGFhNjI5NGYyOTlhNGZmNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wMi0yNSAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdVW5icmVhayBJbmplY3RlZEJ1bmRs
ZSBvbiBRdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTQxMDkKKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxs
U2VuZFJlcXVlc3RGb3JGcmFtZSk6IFVzZSBuZXcgV2ViS2l0MgorICAgICAgICBBUEkncyBpbnN0
ZWFkIG9mIEtVUkwgdG8gYW5hbHl6ZSB0aGUgVVJMLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvU3RyaW5nRnVuY3Rpb25zLmg6CisgICAgICAgIChXVFI6Om9wZXJhdG9yPDwpOiBBZGRlZCBo
ZWxwZXIgZm9yIHByaW50aW5nIGEgV0tVUkwuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERvIG5vdCBsaW5rCisg
ICAgICAgIGFnYWluc3QgV2ViQ29yZS4KKwogMjAxMS0wMi0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjc5MzI0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDk0ZGUwZDc1MGMxZGE0MWIz
MDA5YzM3NWFjNTI2ZDBkY2U5MGQ0MWIuLjQxMzg4YTRhNDQ0MDg2NjdkZmUzY2VkZjY2ZGMxZDI4
NmUwYjY4M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNp
bmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgog
I2luY2x1ZGUgPFdlYktpdDIvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGUu
aD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+CkBAIC02Mjgs
MTUgKzYyNywxNSBAQCBXS1VSTFJlcXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2Vu
ZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQgogICAgIGlmIChJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkuaXNUZXN0UnVubmluZygpICYmIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT53aWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCgpKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIHN0cmluZyB1cmxTdHJpbmcgPSB0b1NURChhZG9wdFdL
KFdLVVJMQ29weVN0cmluZyhhZG9wdFdLKFdLVVJMUmVxdWVzdENvcHlVUkwocmVxdWVzdCkpLmdl
dCgpKSkpOwotICAgIFdlYkNvcmU6OktVUkwgdXJsKFdlYkNvcmU6OlBhcnNlZFVSTFN0cmluZywg
dXJsU3RyaW5nLmNfc3RyKCkpOwotCi0gICAgaWYgKCF1cmwuaG9zdCgpLmlzRW1wdHkoKQotICAg
ICAgICAmJiAoZXF1YWxJZ25vcmluZ0Nhc2UodXJsLnByb3RvY29sKCksICJodHRwIikgfHwgKGVx
dWFsSWdub3JpbmdDYXNlKHVybC5wcm90b2NvbCgpLCAiaHR0cHMiKSkpCi0gICAgICAgICYmICh1
cmwuaG9zdCgpICE9ICIxMjcuMC4wLjEiKQotICAgICAgICAmJiAodXJsLmhvc3QoKSAhPSAiMjU1
LjI1NS4yNTUuMjU1IikgLy8gdXNlZCBpbiBzb21lIHRlc3RzIHRoYXQgZXhwZWN0IHRvIGdldCBi
YWNrIGFuIGVycm9yCi0gICAgICAgICYmICghZXF1YWxJZ25vcmluZ0Nhc2UodXJsLmhvc3QoKSwg
ImxvY2FsaG9zdCIpKSkgewotICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkub3MoKSA8
PCAiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMICIgPDwgdXJsU3RyaW5nIDw8ICJcbiI7
CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soV0tVUkxSZXF1ZXN0Q29w
eVVSTChyZXF1ZXN0KSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhvc3QgPSBhZG9w
dFdLKFdLVVJMQ29weUhvc3ROYW1lKHVybC5nZXQoKSkpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBzY2hlbWUgPSBhZG9wdFdLKFdLVVJMQ29weVNjaGVtZSh1cmwuZ2V0KCkpKTsKKyAg
ICBpZiAoaG9zdAorICAgICAgICAmJiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZ0lnbm9y
aW5nQ2FzZShzY2hlbWUuZ2V0KCksICJodHRwIikgfHwgV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZ0lnbm9yaW5nQ2FzZShzY2hlbWUuZ2V0KCksICJodHRwcyIpKQorICAgICAgICAmJiAhV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhob3N0LmdldCgpLCAiMTI3LjAuMC4xIikKKyAgICAg
ICAgJiYgIVdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoaG9zdC5nZXQoKSwgIjI1NS4yNTUu
MjU1LjI1NSIpIC8vIFVzZWQgaW4gc29tZSB0ZXN0cyB0aGF0IGV4cGVjdCB0byBnZXQgYmFjayBh
biBlcnJvci4KKyAgICAgICAgJiYgIVdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmdJZ25vcmlu
Z0Nhc2UoaG9zdC5nZXQoKSwgImxvY2FsaG9zdCIpKSB7CisgICAgICAgIEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5vcygpIDw8ICJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgIiA8PCB1
cmwgPDwgIlxuIjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1N0cmluZ0Z1bmN0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9TdHJpbmdGdW5jdGlvbnMuaAppbmRleCAyZDBjYTcyMTc3MWZlODBlMWMxZWQwZjNiNzA3
NDM5Mjc5N2Y1MjJlLi41ZDQ5Y2U4YTM2MjYyYWNiMzAyYjJmNzAyMDg4NjcxNWQyMDBmM2UyIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1N0cmluZ0Z1bmN0aW9ucy5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvU3RyaW5nRnVuY3Rpb25zLmgKQEAgLTkyLDYgKzkyLDIw
IEBAIGlubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIGNv
bnN0IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmCiAgICAgcmV0dXJuIG91dCA8PCBzdHJpbmdSZWYu
Z2V0KCk7CiB9CiAKK2lubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFt
JiBvdXQsIGNvbnN0IFdLVVJMUmVmIHVybFJlZikKK3sKKyAgICBpZiAoIXVybFJlZikKKyAgICAg
ICAgcmV0dXJuIG91dDsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmxTdHJpbmco
QWRvcHRXSywgV0tVUkxDb3B5U3RyaW5nKHVybFJlZikpOworICAgIHJldHVybiBvdXQgPDwgdG9T
VEQodXJsU3RyaW5nLmdldCgpKTsKK30KKworaW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8
PChzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgV0tSZXRhaW5QdHI8V0tVUkxSZWY+JiB1cmxSZWYp
Cit7CisgICAgcmV0dXJuIG91dCA8PCB1cmxSZWYuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdUUgogCiAjZW5kaWYgLy8gU3RyaW5nRnVuY3Rpb25zX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNjIxMDVjZDI1NjAzZDcyYzdmNmRkMmM0YzE1NzFiNGMxY2ZiNjhi
ZS4uNWE5N2NiZmE4ZTQ4NDVlZWJlOTA3MGM2YjRiNGQ0ZTEwNGNjNzZjZCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyLDggKzMyLDYgQEAKIAkJNjUxMEE3OEExMUVD
NjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTEwQTc3RjExRUM2NDM4MDA0MTA4
NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYgKi87IH07CiAJCTY1MTBBNzhCMTFFQzY0
MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUxMEE3ODAxMUVDNjQzODAwNDEwODY3
IC8qIFdlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmICovOyB9OwogCQk2NTEwQTc4QzExRUM2NDM4
MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1MTBBNzgxMTFFQzY0MzgwMDQxMDg2NyAv
KiBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiAqLzsgfTsKLQkJNjVERDFEOTYxMkZGRTc5ODAw
NEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjVERDFEOTUxMkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUu
ZnJhbWV3b3JrICovOyB9OwotCQk2NURFNDMyNTEyRkZFODQwMDAxNzFCQ0EgLyogV2ViQ29yZS5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NUREMUQ5NTEyRkZFNzk4MDA0QjUyODUgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi87IH07CiAJ
CTY1RUI4NUEwMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFQjg1OUYxMUVDNjdDQzAwMzRE
MzAwIC8qIEFjdGl2YXRlRm9udHMubW0gKi87IH07CiAJCUJDMTRFNERCMTIwRTAyRDAwMDgyNkMw
QyAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMxNEU0RDkxMjBFMDJEMDAwODI2QzBDIC8qIEdDQ29udHJvbGxlci5jcHAg
Ki87IH07CiAJCUJDMTRFNEVBMTIwRTAzRDgwMDgyNkMwQyAvKiBKU0dDQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0RTRFODEy
MEUwM0Q4MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtOTAsNyArODgs
NiBAQAogCQk2NTEwQTc3RjExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjcw
MC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBm
aWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGY7IHBhdGggPSBmb250cy9XZWJL
aXRXZWlnaHRXYXRjaGVyNzAwLnR0Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUx
MEE3ODAxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9
IFdlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmOyBwYXRoID0gZm9udHMvV2ViS2l0V2VpZ2h0V2F0
Y2hlcjgwMC50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1MTBBNzgxMTFFQzY0
MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBXZWJLaXRXZWln
aHRXYXRjaGVyOTAwLnR0ZjsgcGF0aCA9IGZvbnRzL1dlYktpdFdlaWdodFdhdGNoZXI5MDAudHRm
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NUREMUQ5NTEyRkZFNzk4MDA0QjUyODUg
LyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IFdlYkNvcmUuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk2NUVCODU5RDExRUM2N0ND
MDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBY3RpdmF0ZUZvbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1RUI4
NTlGMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWN0aXZhdGVGb250cy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIFdlYktpdFRlc3RSdW5u
ZXIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21w
aWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYktp
dFRlc3RSdW5uZXI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0xNTEs
NyArMTQ4LDYgQEAKIAkJCQlCQzc5MzRBNTExOTA2NTg0MDA1RUE4RTIgLyogQ29jb2EuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQkM3OTM0QUMxMTkwNjU4QzAwNUVBOEUyIC8qIFdl
YktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQkNEQTJCOUExMTkxMDUxRjAw
QzNCQzQ3IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJ
CTY1REQxRDk2MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMTYyLDcgKzE1OCw2IEBACiAJCQkJQkMyNTE5M0UxMUQxNUQ4QjAwMkVCQzAx
IC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUJDMjUxOTNGMTFEMTVE
OEIwMDJFQkMwMSAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUJD
MjUxOTQwMTFEMTVEOEIwMDJFQkMwMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLywKLQkJCQk2NURFNDMyNTEyRkZFODQwMDAxNzFCQ0EgLyogV2ViQ29yZS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwNCw3ICsxOTksNiBAQAogCQkJCUJDNzkzNEE0
MTE5MDY1ODQwMDVFQThFMiAvKiBDb2NvYS5mcmFtZXdvcmsgKi8sCiAJCQkJQkM3OTM0QUIxMTkw
NjU4QzAwNUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrICovLAogCQkJCUJDREEyQjk5MTE5MTA1
MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8sCi0JCQkJNjVERDFEOTUx
MkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3b3JrICovLAogCQkJKTsKIAkJCW5hbWUg
PSAiRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzIjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85598</attachid>
            <date>2011-03-12 11:25:29 -0800</date>
            <delta_ts>2011-03-15 08:58:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54109-20110312192528.patch</filename>
            <type>text/plain</type>
            <size>17882</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA5NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMDQxNzJkYjA1Mzk2ODE0
ODk0NWRhMDlkZmRiZTJkNDBkM2RhZmIyLi5hYjU3ZDg2NDE5MDE1NmZiNmE2ZGQ4ZmYwNTAxNzY2
MTMyMzcyMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTIgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVVuYnJlYWsgSW5qZWN0ZWRCdW5kbGUg
b24gUXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
MTA5CisKKyAgICAgICAgTm8gY29kZSBjaGFuZ2VzIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIG5lZWRlZCB0byB1c2UgS1VSTAorICAgICAg
ICBpbiBXZWJLaXRUZXN0UnVubmVyLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKwogMjAxMS0wMy0xMiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjgwOTE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggZjE2NDkwMmYxZjYxMjJjYzhlOTA3YzEwNDU0MmNm
YzI5ODU2ZjM1OS4uMzNkYzBlNzFlMjhmYmVlYWI1ZDZlOGM1MTUwMjZiNjY4OWViODhjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCkBAIC02
Myw3ICs2Myw3IEBAIFBST0RVQ1RJT05fRlJBTUVXT1JLU19ESVJfaXBob25lc2ltdWxhdG9yID0g
JChQUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElSX2lwaG9uZW9zCiBQUk9EVUNUSU9OX0ZSQU1FV09S
S1NfRElSX21hY29zeCA9ICQoTkVYVF9ST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdv
cmtzOwogCiBXRUJLSVQyX0xERkxBR1MgPSAkKFdFQktJVDJfTERGTEFHU18kKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1XRUJLSVQyX0xERkxBR1NfMTA2MCA9IC1hbGxvd2FibGVf
Y2xpZW50IFdlYktpdDIgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dh
YmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CitXRUJLSVQyX0xERkxB
R1NfMTA2MCA9IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdDIKIFdFQktJVDJfTERGTEFHU18xMDcw
ID0gJChXRUJLSVQyX0xERkxBR1NfMTA2MCk7CiAKIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVB
REVSU19ESVIgPSAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfJChDT05GSUdV
UkFUSU9OKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNkZjhmZjNlNGYwMTdlOWU0OWRiMTA5
M2RiYWQxNjc0NzU3Nzc2MjIuLmUyOTVhYzEzNDk0ZTk2YjMwMzY0NzEwMjQ5YTE1Y2JkYjlkNjRh
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02NDEsNyArNjQxLDYgQEAgX19aTjdXZWJDb3Jl
NEZvbnRhU0VSS1MwXwogX19aTjdXZWJDb3JlNEljb24xOGNyZWF0ZUljb25Gb3JGaWxlc0VSS04z
V1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTRJY29uRDFFdgogX19a
TjdXZWJDb3JlNEtVUkwxMGludmFsaWRhdGVFdgotX19aTjdXZWJDb3JlNEtVUkxDMUVOU18xOFBh
cnNlZFVSTFN0cmluZ1RhZ0VQS2MKIF9fWk43V2ViQ29yZTRLVVJMQzFFTlNfMThQYXJzZWRVUkxT
dHJpbmdUYWdFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU0S1VSTEMxRVA1TlNVUkwKIF9f
Wk43V2ViQ29yZTRLVVJMQzFFUEs3X19DRlVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI0MTZhZTdlMTRhODFm
M2E4MjFlNTNiOTA4M2RiZTBhODQyNmVjOWMuLmJlODE3ZWRlMDdkMzYwOTdiZGM3MWYyZjk4ZWI0
ZDNjZjg0MzI1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMy0xMiAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdVW5icmVhayBJbmplY3RlZEJ1bmRs
ZSBvbiBRdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTQxMDkKKworICAgICAgICBBZGQgQVBJJ3MgdG8gV0tVUkwgYW5kIFdLU3RyaW5nIHRvIHNhdGlz
ZnkKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lcidzIG5lZWRzLgorCisgICAgICAgICogU2hhcmVk
L0FQSS9jL1dLU3RyaW5nLmNwcDoKKyAgICAgICAgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmdJZ25vcmluZ0Nhc2UpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1N0cmluZy5oOgorICAg
ICAgICAqIFNoYXJlZC9BUEkvYy9XS1VSTC5jcHA6CisgICAgICAgIChXS1VSTENvcHlIb3N0TmFt
ZSk6CisgICAgICAgIChXS1VSTENvcHlTY2hlbWUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S1VSTC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJTdHJpbmcuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU3RyaW5nOjplcXVhbFRvVVRGOFN0cmluZ0lnbm9yaW5nQ2FzZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlVSTC5oOiBBZGRlZCBPd25QdHI8S1VSTD4gbWVtYmVyIHRvIGJlIGFibGUKKyAgICAg
ICAgdG8gbGF6aWx5IHBhcnNlIHRoZSBVUkwgYW5kIHN0b3JlIHRoZSByZXN1bHQuCisgICAgICAg
IChXZWJLaXQ6OldlYlVSTDo6aG9zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTDo6cHJvdG9j
b2wpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkw6OnBhcnNlVVJMSWZOZWNlc3NhcnkpOgorICAg
ICAgICAqIHdpbi9XZWJLaXQyLmRlZjogUmV2ZXJ0IHRoZSBzeW1ib2wgZXhwb3J0cyB0aGF0IHdl
cmUKKyAgICAgICAgbmVlZGVkIHRvIHVzZSBLVVJMIGluIFdlYktpdFRlc3RSdW5uZXIuCisKIDIw
MTEtMDMtMTEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0
cmluZy5jcHAKaW5kZXggNzI4NDFhNGUwNTJmZDI0MmZkZTdhYzc3NjVjZmExMjU4ZjQzMWNkNi4u
MGMzODhjNjA2ZmQ5NTllNzIzZTM5MjBiMjY5MDFkNWIxZjE0YjdlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCkBAIC02Nyw2ICs2NywxMSBAQCBib29sIFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoV0tTdHJpbmdSZWYgYVJlZiwgY29uc3QgY2hhciogYikK
ICAgICByZXR1cm4gdG9JbXBsKGFSZWYpLT5lcXVhbFRvVVRGOFN0cmluZyhiKTsKIH0KIAorYm9v
bCBXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nSWdub3JpbmdDYXNlKFdLU3RyaW5nUmVmIGFS
ZWYsIGNvbnN0IGNoYXIqIGIpCit7CisgICAgcmV0dXJuIHRvSW1wbChhUmVmKS0+ZXF1YWxUb1VU
RjhTdHJpbmdJZ25vcmluZ0Nhc2UoYik7Cit9CisKIFdLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRl
V2l0aEpTU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nUmVmKQogewogICAgIFJlZlB0cjxXZWJT
dHJpbmc+IHdlYlN0cmluZyA9IFdlYlN0cmluZzo6Y3JlYXRlKGpzU3RyaW5nUmVmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgKaW5kZXggZTc5ODM5ZTdmMjMxMGIxODdjOGQw
MjgzZDEyZGU5MTViNTYzNzRiMC4uZGZmY2FiMjNlMzI4Yzk5M2FhNzU4NDc3ZjA4OTI3NTQ5YTI0
NjNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgKQEAgLTQ3LDYgKzQ3
LDcgQEAgV0tfRVhQT1JUIHNpemVfdCBXS1N0cmluZ0dldFVURjhDU3RyaW5nKFdLU3RyaW5nUmVm
IHN0cmluZywgY2hhciogYnVmZmVyLCBzaXplX3QKIAogV0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJ
c0VxdWFsKFdLU3RyaW5nUmVmIGEsIFdLU3RyaW5nUmVmIGIpOwogV0tfRVhQT1JUIGJvb2wgV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhXS1N0cmluZ1JlZiBhLCBjb25zdCBjaGFyKiBiKTsK
K1dLX0VYUE9SVCBib29sIFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmdJZ25vcmluZ0Nhc2Uo
V0tTdHJpbmdSZWYgYSwgY29uc3QgY2hhciogYik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTC5jcHAKaW5kZXggNmI3ZTU2NzViYmQyNTJjNzE5
MjIyOGM5ZTcxMTYwMTkyYzBiOTQ1ZC4uZGFjZDU4OWQzZjAzYTE2MzZmOWJjOGViMDU4ZWVmMDIy
ZTFkNWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkwuY3BwCkBAIC00OSwzICs0
OSwxMyBAQCBib29sIFdLVVJMSXNFcXVhbChXS1VSTFJlZiBhLCBXS1VSTFJlZiBiKQogewogICAg
IHJldHVybiB0b0ltcGwoYSktPnN0cmluZygpID09IHRvSW1wbChiKS0+c3RyaW5nKCk7CiB9CisK
K1dLU3RyaW5nUmVmIFdLVVJMQ29weUhvc3ROYW1lKFdLVVJMUmVmIHVybCkKK3sKKyAgICByZXR1
cm4gdG9Db3BpZWRBUEkodG9JbXBsKHVybCktPmhvc3QoKSk7Cit9CisKK1dLU3RyaW5nUmVmIFdL
VVJMQ29weVNjaGVtZShXS1VSTFJlZiB1cmwpCit7CisgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRv
SW1wbCh1cmwpLT5wcm90b2NvbCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS1VSTC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmgK
aW5kZXggNzM4YmNlNWI0YmQyZWIwZThjZjljOGVjMzBhOTZiZTA2ZmI1YTk5YS4uZjU5OWYxNmQ4
M2JhZGFmOGUwZDZjOThjOTI3MDAyYTEwZjFiNzBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLVVJMLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLVVJMLmgKQEAgLTM2LDcgKzM2LDkgQEAgV0tfRVhQT1JUIFdLVHlwZUlEIFdLVVJMR2V0VHlw
ZUlEKCk7CiAKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZyhj
b25zdCBjaGFyKiBzdHJpbmcpOwogCi1XS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tVUkxDb3B5U3Ry
aW5nKFdLVVJMUmVmIFVSTCk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tVUkxDb3B5U3RyaW5n
KFdLVVJMUmVmIHVybCk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tVUkxDb3B5SG9zdE5hbWUo
V0tVUkxSZWYgdXJsKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1VSTENvcHlTY2hlbWUoV0tV
UkxSZWYgdXJsKTsKIAogV0tfRVhQT1JUIGJvb2wgV0tVUkxJc0VxdWFsKFdLVVJMUmVmIGEsIFdL
VVJMUmVmIGIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5n
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nLmgKaW5kZXggYTc3MjkzYjA4OWY3
NGQ1ZWZkYTM2OGFmMDM4ZjMxYjg5Y2IwYWUyZC4uNjgyNzI3NmNiZDNjY2IxOTY4ZGMzZjIyMGU0
ZjUzMWVjOTI5MDJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTdHJpbmcuaApAQCAtNzQsNiArNzQs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIGVxdWFsKFdlYlN0cmluZyogb3RoZXIpIHsgcmV0dXJu
IG1fc3RyaW5nID09IG90aGVyLT5tX3N0cmluZzsgfQogICAgIGJvb2wgZXF1YWxUb1VURjhTdHJp
bmcoY29uc3QgY2hhciogb3RoZXIpIHsgcmV0dXJuIG1fc3RyaW5nID09IFN0cmluZzo6ZnJvbVVU
Rjgob3RoZXIpOyB9CisgICAgYm9vbCBlcXVhbFRvVVRGOFN0cmluZ0lnbm9yaW5nQ2FzZShjb25z
dCBjaGFyKiBvdGhlcikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9zdHJpbmcsIG90aGVy
KTsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0cmlu
ZzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMLmgKaW5kZXggMWIwODI2YmQxODRlZDk3YjUwNjM3ODMx
ZDUwNWU5M2ZhMGVhNDdkOC4uYjkwNzcyYjc5OWRlNTkzNTZkODAwOTBjMDM4NWYzOWNiNzQwMDkx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkwuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXZWJV
UkxfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtNDgsMTUgKzQ5LDM1IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYg
c3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KIAorICAgIFN0cmluZyBob3N0KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHBhcnNlVVJMSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgcmV0
dXJuIG1fcGFyc2VkVVJMLT5pc1ZhbGlkKCkgPyBtX3BhcnNlZFVSTC0+aG9zdCgpIDogU3RyaW5n
KCk7CisgICAgfQorCisgICAgU3RyaW5nIHByb3RvY29sKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHBhcnNlVVJMSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgcmV0dXJuIG1fcGFyc2VkVVJMLT5pc1Zh
bGlkKCkgPyBtX3BhcnNlZFVSTC0+cHJvdG9jb2woKSA6IFN0cmluZygpOworICAgIH0KKwogcHJp
dmF0ZToKICAgICBXZWJVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIDogbV9zdHJp
bmcoc3RyaW5nKQogICAgIHsKICAgICB9CiAKKyAgICB2b2lkIHBhcnNlVVJMSWZOZWNlc3Nhcnko
KSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCEhbV9wYXJzZWRVUkwpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIG1fcGFyc2VkVVJMLnNldChuZXcgV2ViQ29yZTo6S1VSTChXZWJDb3Jl
OjpLVVJMKCksIG1fc3RyaW5nKSk7CisgICAgfQorCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICBTdHJpbmcgbV9zdHJpbmc7CisgICAgbXV0
YWJsZSBPd25QdHI8V2ViQ29yZTo6S1VSTD4gbV9wYXJzZWRVUkw7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBi
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCA3OTlmZWE5MDVkOGQ0OTY1ZjI1
ZjE0NWE2NmQyNDUyNjI0NTUxMTBmLi4zN2M1ZGZjYzYwNDAwODBhM2IyOTFlZGE2MTcwOGEwY2U0
ZmE0ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0xOSwxNCArMTksNiBAQCBFWFBPUlRT
CiAgICAgICAgIFdlYktpdFNob3VsZFVzZUZvbnRTbW9vdGhpbmcKICAgICAgICAgV2ViS2l0Q3Jl
YXRlSW5zdGFuY2UKIAkJCi0gICAgICAgIDsgRXhwb3J0ZWQgZm9yIFdlYktpdFRlc3RSdW5uZXIn
cyB1c2Ugb25seQotICAgICAgICA/PzBLVVJMQFdlYkNvcmVAQFFBRUBXNFBhcnNlZFVSTFN0cmlu
Z1RhZ0AxQFBCREBaCi0gICAgICAgID8/MVN0cmluZ0ltcGxAV1RGQEBRQUVAWFoKLSAgICAgICAg
P2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkRAWgotICAgICAgICA/ZXF1YWxJZ25v
cmluZ0Nhc2VAV1RGQEBZQV9OUEFWU3RyaW5nSW1wbEAxQFBCREBaCi0gICAgICAgID9ob3N0QEtV
UkxAV2ViQ29yZUBAUUJFP0FWU3RyaW5nQFdURkBAWFoKLSAgICAgICAgP3Byb3RvY29sQEtVUkxA
V2ViQ29yZUBAUUJFP0FWU3RyaW5nQFdURkBAWFoKLQkJCiAgICAgICAgIDsgVGhlc2UgZnVuY3Rp
b25zIGFyZSBkZXByZWNhdGVkCiAgICAgICAgIFdlYkxvY2FsaXplZFN0cmluZwogICAgICAgICBX
ZWJMb2NhbGl6ZWRMUENUU1RSCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZDU0ZmY1N2RmMDJlYTE0OWJmOTI0YWE5N2ZhYTYzNTY2MmI3NDRkNy4u
MmM4YmUzM2Y5Yjg0OWQ1MDkyNmQ2MDFjNjMyNWQ5YTYwYzc5OTM0NiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEx
LTAzLTEyICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dLMl1VbmJyZWFrIElu
amVjdGVkQnVuZGxlIG9uIFF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDEwOQorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKTogVXNlIG5ldyBXZWJLaXQyCisgICAgICAg
IEFQSSdzIGluc3RlYWQgb2YgS1VSTCB0byBhbmFseXplIHRoZSBVUkwuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9TdHJpbmdGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6YWRvcHRXSyk6
IE1vdmVkIGZyb20gSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCB0byBtYWtlIGl0IGF2YWlsYWJsZSBn
bG9iYWxseQorICAgICAgICBpbiB0aGUgV2ViS2l0VGVzdFJ1bm5lciBwcm9qZWN0LgorICAgICAg
ICAoV1RSOjp0b1dLKTogVXNlIGFkb3B0V0suCisgICAgICAgIChXVFI6Om9wZXJhdG9yPDwpOiBB
ZGRlZCBoZWxwZXIgZm9yIHByaW50aW5nIGEgV0tVUkwuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERvIG5vdCBs
aW5rCisgICAgICAgIGFnYWluc3QgV2ViQ29yZS4KKwogMjAxMS0wMy0xMSAgQW50b24gRCdBdXJp
YSAgPGFkYXVyaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGFuZCBsYW5kZWQgYnkg
QnJhZHkgRWlkc29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDNjZTA4MWUxNDQxNzQy
YTU5MGE0NWYyZTIxOTU3YzY5ODA0YjI1OTAuLmJmNjkwNTQxOGYxYTZjZmNmZWRhYzRhMmNiZjVl
ZDMxNDQwOThjNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAK
ICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5k
bGUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+CkBAIC00
MywxMSArNDIsNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV1RSIHsKIAot
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSBXS1JldGFpblB0cjxUPiBhZG9wdFdL
KFQgaXRlbSkKLXsKLSAgICByZXR1cm4gV0tSZXRhaW5QdHI8VD4oQWRvcHRXSywgaXRlbSk7Ci19
Ci0KIHN0YXRpYyBib29sIGhhc1ByZWZpeChjb25zdCBzdHJpbmcmIHNlYXJjaFN0cmluZywgY29u
c3Qgc3RyaW5nJiBwcmVmaXgpCiB7CiAgICAgcmV0dXJuIHNlYXJjaFN0cmluZy5sZW5ndGgoKSA+
PSBwcmVmaXgubGVuZ3RoKCkgJiYgc2VhcmNoU3RyaW5nLnN1YnN0cigwLCBwcmVmaXgubGVuZ3Ro
KCkpID09IHByZWZpeDsKQEAgLTYzNCwxNSArNjI4LDE1IEBAIFdLVVJMUmVxdWVzdFJlZiBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwg
V0tCCiAgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5pc1Rlc3RSdW5uaW5nKCkgJiYg
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPndpbGxTZW5k
UmVxdWVzdFJldHVybnNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgc3RyaW5nIHVy
bFN0cmluZyA9IHRvU1REKGFkb3B0V0soV0tVUkxDb3B5U3RyaW5nKGFkb3B0V0soV0tVUkxSZXF1
ZXN0Q29weVVSTChyZXF1ZXN0KSkuZ2V0KCkpKSk7Ci0gICAgV2ViQ29yZTo6S1VSTCB1cmwoV2Vi
Q29yZTo6UGFyc2VkVVJMU3RyaW5nLCB1cmxTdHJpbmcuY19zdHIoKSk7Ci0KLSAgICBpZiAoIXVy
bC5ob3N0KCkuaXNFbXB0eSgpCi0gICAgICAgICYmIChlcXVhbElnbm9yaW5nQ2FzZSh1cmwucHJv
dG9jb2woKSwgImh0dHAiKSB8fCAoZXF1YWxJZ25vcmluZ0Nhc2UodXJsLnByb3RvY29sKCksICJo
dHRwcyIpKSkKLSAgICAgICAgJiYgKHVybC5ob3N0KCkgIT0gIjEyNy4wLjAuMSIpCi0gICAgICAg
ICYmICh1cmwuaG9zdCgpICE9ICIyNTUuMjU1LjI1NS4yNTUiKSAvLyB1c2VkIGluIHNvbWUgdGVz
dHMgdGhhdCBleHBlY3QgdG8gZ2V0IGJhY2sgYW4gZXJyb3IKLSAgICAgICAgJiYgKCFlcXVhbEln
bm9yaW5nQ2FzZSh1cmwuaG9zdCgpLCAibG9jYWxob3N0IikpKSB7Ci0gICAgICAgIEluamVjdGVk
QnVuZGxlOjpzaGFyZWQoKS5vcygpIDw8ICJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
IiA8PCB1cmxTdHJpbmcgPDwgIlxuIjsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0g
YWRvcHRXSyhXS1VSTFJlcXVlc3RDb3B5VVJMKHJlcXVlc3QpKTsKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gaG9zdCA9IGFkb3B0V0soV0tVUkxDb3B5SG9zdE5hbWUodXJsLmdldCgpKSk7
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjaGVtZSA9IGFkb3B0V0soV0tVUkxDb3B5
U2NoZW1lKHVybC5nZXQoKSkpOworICAgIGlmIChob3N0CisgICAgICAgICYmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nSWdub3JpbmdDYXNlKHNjaGVtZS5nZXQoKSwgImh0dHAiKSB8fCBX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nSWdub3JpbmdDYXNlKHNjaGVtZS5nZXQoKSwgImh0
dHBzIikpCisgICAgICAgICYmICFXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGhvc3QuZ2V0
KCksICIxMjcuMC4wLjEiKQorICAgICAgICAmJiAhV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
Zyhob3N0LmdldCgpLCAiMjU1LjI1NS4yNTUuMjU1IikgLy8gVXNlZCBpbiBzb21lIHRlc3RzIHRo
YXQgZXhwZWN0IHRvIGdldCBiYWNrIGFuIGVycm9yLgorICAgICAgICAmJiAhV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZ0lnbm9yaW5nQ2FzZShob3N0LmdldCgpLCAibG9jYWxob3N0IikpIHsK
KyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLm9zKCkgPDwgIkJsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCAiIDw8IHVybCA8PCAiXG4iOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvU3RyaW5nRnVuY3Rpb25z
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1N0cmluZ0Z1bmN0aW9ucy5oCmluZGV4IDJkMGNh
NzIxNzcxZmU4MGUxYzFlZDBmM2I3MDc0MzkyNzk3ZjUyMmUuLmZlYThjMGNjY2JiZTZkZGQzZjJk
NzIyNDVjZmE5NDM2ZjMyNjkwN2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
U3RyaW5nRnVuY3Rpb25zLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9TdHJpbmdGdW5j
dGlvbnMuaApAQCAtNDQsOSArNDQsMTQgQEAgbmFtZXNwYWNlIFdUUiB7CiAKIC8vIENvbnZlcnNp
b24gZnVuY3Rpb25zCiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgV0tSZXRh
aW5QdHI8VD4gYWRvcHRXSyhjb25zdCBUIGl0ZW0pCit7CisgICAgcmV0dXJuIFdLUmV0YWluUHRy
PFQ+KEFkb3B0V0ssIGl0ZW0pOworfQorCiBpbmxpbmUgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IHRvV0soSlNTdHJpbmdSZWYgc3RyaW5nKQogewotICAgIHJldHVybiBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4oQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJpbmcoc3RyaW5nKSk7Cisg
ICAgcmV0dXJuIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJpbmcoc3RyaW5nKSk7CiB9
CiAKIGlubGluZSBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdG9XSyhKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gc3RyaW5nKQpAQCAtOTIsNiArOTcsMTkgQEAgaW5saW5lIHN0ZDo6b3N0cmVhbSYg
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWYKICAgICByZXR1cm4gb3V0IDw8IHN0cmluZ1JlZi5nZXQoKTsKIH0KIAoraW5saW5lIHN0ZDo6
b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgV0tVUkxSZWYgdXJs
UmVmKQoreworICAgIGlmICghdXJsUmVmKQorICAgICAgICByZXR1cm4gb3V0OworCisgICAgcmV0
dXJuIG91dCA8PCB0b1NURChhZG9wdFdLKFdLVVJMQ29weVN0cmluZyh1cmxSZWYpKSk7Cit9CisK
K2lubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIGNvbnN0
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiYgdXJsUmVmKQoreworICAgIHJldHVybiBvdXQgPDwgdXJs
UmVmLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKIAogI2VuZGlmIC8vIFN0cmluZ0Z1
bmN0aW9uc19oCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RS
dW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyMTA1Y2Qy
NTYwM2Q3MmM3ZjZkZDJjNGMxNTcxYjRjMWNmYjY4YmUuLjVhOTdjYmZhOGU0ODQ1ZWViZTkwNzBj
NmI0YjRkNGUxMDRjYzc2Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMiw4ICszMiw2IEBACiAJCTY1MTBBNzhBMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWln
aHRXYXRjaGVyNzAwLnR0ZiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjUxMEE3N0YxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI3
MDAudHRmICovOyB9OwogCQk2NTEwQTc4QjExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0
V2F0Y2hlcjgwMC50dGYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1MTBBNzgwMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyODAw
LnR0ZiAqLzsgfTsKIAkJNjUxMEE3OEMxMUVDNjQzODAwNDEwODY3IC8qIFdlYktpdFdlaWdodFdh
dGNoZXI5MDAudHRmIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTEwQTc4MTExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50
dGYgKi87IH07Ci0JCTY1REQxRDk2MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REQx
RDk1MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3JlLmZyYW1ld29yayAqLzsgfTsKLQkJNjVERTQz
MjUxMkZGRTg0MDAwMTcxQkNBIC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVERDFEOTUxMkZGRTc5ODAwNEI1Mjg1
IC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwogCQk2NUVCODVBMDExRUM2N0NDMDAzNEQzMDAg
LyogQWN0aXZhdGVGb250cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1RUI4NTlGMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLm1tICov
OyB9OwogCQlCQzE0RTREQjEyMEUwMkQwMDA4MjZDMEMgLyogR0NDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRFNEQ5MTIwRTAy
RDAwMDgyNkMwQyAvKiBHQ0NvbnRyb2xsZXIuY3BwICovOyB9OwogCQlCQzE0RTRFQTEyMEUwM0Q4
MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNEU0RTgxMjBFMDNEODAwODI2QzBDIC8qIEpTR0NDb250
cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTkwLDcgKzg4LDYgQEAKIAkJNjUxMEE3N0YxMUVDNjQzODAw
NDEwODY3IC8qIFdlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IFdlYktpdFdlaWdodFdh
dGNoZXI3MDAudHRmOyBwYXRoID0gZm9udHMvV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGY7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1MTBBNzgwMTFFQzY0MzgwMDQxMDg2NyAvKiBX
ZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0
ZjsgcGF0aCA9IGZvbnRzL1dlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2NTEwQTc4MTExRUM2NDM4MDA0MTA4NjcgLyogV2ViS2l0V2VpZ2h0
V2F0Y2hlcjkwMC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGY7IHBhdGggPSBm
b250cy9XZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNjVERDFEOTUxMkZGRTc5ODAwNEI1Mjg1IC8qIFdlYkNvcmUuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IHBhdGggPSBXZWJDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNjVFQjg1OUQxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aXZhdGVGb250cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUVCODU5RjExRUM2N0NDMDAzNEQzMDAgLyogQWN0
aXZhdGVGb250cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFj
dGl2YXRlRm9udHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2RkExMDQ4
NkFBNzYwMEQ5NkI1RSAvKiBXZWJLaXRUZXN0UnVubmVyICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMTUxLDcgKzE0OCw2IEBACiAJCQkJQkM3OTM0QTUx
MTkwNjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJ
CUJDNzkzNEFDMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovLAogCQkJCUJDREEyQjlBMTE5MTA1MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQk2NUREMUQ5NjEyRkZFNzk4MDA0QjUyODUg
LyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE2Miw3ICsxNTgsNiBA
QAogCQkJCUJDMjUxOTNFMTFEMTVEOEIwMDJFQkMwMSAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLywKIAkJCQlCQzI1MTkzRjExRDE1RDhCMDAyRUJDMDEgLyogV2ViS2l0Mi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzI1MTk0MDExRDE1RDhCMDAyRUJDMDEgLyog
SmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJNjVERTQzMjUx
MkZGRTg0MDAwMTcxQkNBIC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMDQsNyArMTk5LDYgQEAKIAkJCQlCQzc5MzRBNDExOTA2NTg0MDA1RUE4RTIgLyogQ29jb2Eu
ZnJhbWV3b3JrICovLAogCQkJCUJDNzkzNEFCMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQyLmZy
YW1ld29yayAqLywKIAkJCQlCQ0RBMkI5OTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENv
cmUuZnJhbWV3b3JrICovLAotCQkJCTY1REQxRDk1MTJGRkU3OTgwMDRCNTI4NSAvKiBXZWJDb3Jl
LmZyYW1ld29yayAqLywKIAkJCSk7CiAJCQluYW1lID0gIkV4dGVybmFsIEZyYW1ld29ya3MgYW5k
IExpYnJhcmllcyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>