<?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>60527</bug_id>
          
          <creation_ts>2011-05-09 19:08:34 -0700</creation_ts>
          <short_desc>Return empty Favicon URL instead of default one when the frame isn&apos;t top level one.</short_desc>
          <delta_ts>2011-05-11 15:58:57 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>michaelbai</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>400991</commentid>
    <comment_count>0</comment_count>
    <who name="">michaelbai</who>
    <bug_when>2011-05-09 19:08:34 -0700</bug_when>
    <thetext>This bug was introduced by https://bugs.webkit.org/show_bug.cgi?id=59143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400992</commentid>
    <comment_count>1</comment_count>
      <attachid>92907</attachid>
    <who name="">michaelbai</who>
    <bug_when>2011-05-09 19:11:02 -0700</bug_when>
    <thetext>Created attachment 92907
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401016</commentid>
    <comment_count>2</comment_count>
      <attachid>92907</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-09 20:24:23 -0700</bug_when>
    <thetext>Comment on attachment 92907
Fix

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

This patch is not well explained. Even if the code change is correct, there is no rationale in the change log for the code changes.

&gt; Source/WebCore/dom/Document.cpp:4437
&gt; -    if (!iconURL(iconType).m_iconURL.isEmpty())
&gt; +    if (iconURL(iconType).m_iconURL.isEmpty())

What’s the reasoning behind reversing the logic here?

&gt; Source/WebCore/loader/FrameLoader.cpp:480
&gt; +    // If this isn&apos;t a top level frame, return
&gt; +    if (m_frame-&gt;tree() &amp;&amp; m_frame-&gt;tree()-&gt;parent())
&gt; +        return iconURLs;

This is the only change that matches the change log comment. But even this is not explained.

&gt; Source/WebCore/loader/FrameLoader.cpp:-503
&gt; -    // If this isn&apos;t a top level frame, return
&gt; -    if (m_frame-&gt;tree() &amp;&amp; m_frame-&gt;tree()-&gt;parent())
&gt; -        return false;

Why is this a good change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401033</commentid>
    <comment_count>3</comment_count>
    <who name="">michaelbai</who>
    <bug_when>2011-05-09 21:26:10 -0700</bug_when>
    <thetext>If you checked patch https://bugs.webkit.org/show_bug.cgi?id=59143, you will find the 59143 patch changed the orignal logic. This patch will correct it.


(In reply to comment #2)
&gt; (From update of attachment 92907 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92907&amp;action=review
&gt; 
&gt; This patch is not well explained. Even if the code change is correct, there is no rationale in the change log for the code changes.
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:4437
&gt; &gt; -    if (!iconURL(iconType).m_iconURL.isEmpty())
&gt; &gt; +    if (iconURL(iconType).m_iconURL.isEmpty())
&gt; 
&gt; What’s the reasoning behind reversing the logic here?
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:480
&gt; &gt; +    // If this isn&apos;t a top level frame, return
&gt; &gt; +    if (m_frame-&gt;tree() &amp;&amp; m_frame-&gt;tree()-&gt;parent())
&gt; &gt; +        return iconURLs;
&gt; 
&gt; This is the only change that matches the change log comment. But even this is not explained.
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:-503
&gt; &gt; -    // If this isn&apos;t a top level frame, return
&gt; &gt; -    if (m_frame-&gt;tree() &amp;&amp; m_frame-&gt;tree()-&gt;parent())
&gt; &gt; -        return false;
&gt; 
&gt; Why is this a good change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401034</commentid>
    <comment_count>4</comment_count>
    <who name="">michaelbai</who>
    <bug_when>2011-05-09 21:29:13 -0700</bug_when>
    <thetext>Let me know the additional information you want me provide.

Thanks


(In reply to comment #3)
&gt; If you checked patch https://bugs.webkit.org/show_bug.cgi?id=59143, you will find the 59143 patch changed the orignal logic. This patch will correct it.
&gt; 
&gt; 
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 92907 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92907&amp;action=review
&gt; &gt; 
&gt; &gt; This patch is not well explained. Even if the code change is correct, there is no rationale in the change log for the code changes.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/Document.cpp:4437
&gt; &gt; &gt; -    if (!iconURL(iconType).m_iconURL.isEmpty())
&gt; &gt; &gt; +    if (iconURL(iconType).m_iconURL.isEmpty())
&gt; &gt; 
&gt; &gt; What’s the reasoning behind reversing the logic here?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/FrameLoader.cpp:480
&gt; &gt; &gt; +    // If this isn&apos;t a top level frame, return
&gt; &gt; &gt; +    if (m_frame-&gt;tree() &amp;&amp; m_frame-&gt;tree()-&gt;parent())
&gt; &gt; &gt; +        return iconURLs;
&gt; &gt; 
&gt; &gt; This is the only change that matches the change log comment. But even this is not explained.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/FrameLoader.cpp:-503
&gt; &gt; &gt; -    // If this isn&apos;t a top level frame, return
&gt; &gt; &gt; -    if (m_frame-&gt;tree() &amp;&amp; m_frame-&gt;tree()-&gt;parent())
&gt; &gt; &gt; -        return false;
&gt; &gt; 
&gt; &gt; Why is this a good change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401849</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-11 01:39:20 -0700</bug_when>
    <thetext>
(In reply to comment #4)
&gt; Let me know the additional information you want me provide.
&gt; 
&gt; Thanks
&gt; 
&gt; 
&gt; (In reply to comment #3)
&gt; &gt; If you checked patch https://bugs.webkit.org/show_bug.cgi?id=59143, you will find the 59143 patch changed the orignal logic. This patch will correct it.

Rather than pointing to another bug, I think Darin is asking that the changes be described in the ChangeLog. Good ChangeLog explanations are critical for future developers to understand why a change was made (they won&apos;t always look through the bug).

When possible, it is best to describe each function individually. For example, I don&apos;t know if this comment is true, but:

...
* dom/Document.cpp:
(WebCore::Document::setIconURL): Restored original logic which was inadvertently flipped by http://trac.webkit.org/changeset/85785.
...

Poke around in trac to see some examples.

Also, since this silently regressed, I guess it isn&apos;t tested. Is it possible to test this behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402000</commentid>
    <comment_count>6</comment_count>
      <attachid>93126</attachid>
    <who name="">michaelbai</who>
    <bug_when>2011-05-11 08:55:22 -0700</bug_when>
    <thetext>Created attachment 93126
Add more explaination in change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402003</commentid>
    <comment_count>7</comment_count>
      <attachid>93127</attachid>
    <who name="">michaelbai</who>
    <bug_when>2011-05-11 08:59:03 -0700</bug_when>
    <thetext>Created attachment 93127
Add more explaination in change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402016</commentid>
    <comment_count>8</comment_count>
      <attachid>93127</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-11 09:10:02 -0700</bug_when>
    <thetext>Comment on attachment 93127
Add more explaination in change log

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        This issue was discussed by chromium browser test.

Maybe &quot;discovered&quot; instead of &quot;discussed&quot;?

So I guess that means there isn&apos;t a good way to test this in WebKit, but at least some ports might have coverage?

&gt; Source/WebCore/loader/FrameLoader.cpp:478
&gt; +    // If this isn&apos;t a top level frame, return

I&apos;d just remove this comment now. It basically restates the code below without answering the question &quot;why&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402065</commentid>
    <comment_count>9</comment_count>
    <who name="">michaelbai</who>
    <bug_when>2011-05-11 10:04:44 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 93127 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93127&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        This issue was discussed by chromium browser test.
&gt; 
&gt; Maybe &quot;discovered&quot; instead of &quot;discussed&quot;?
&gt; 
&gt; So I guess that means there isn&apos;t a good way to test this in WebKit, but at least some ports might have coverage?
&gt;

Yes, Chromium BrowserTest covered this case.
 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:478
&gt; &gt; +    // If this isn&apos;t a top level frame, return
&gt; 
&gt; I&apos;d just remove this comment now. It basically restates the code below without answering the question &quot;why&quot;.

I didn&apos;t add this comment, and it helped me to understand the code, I think we may leave it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402066</commentid>
    <comment_count>10</comment_count>
      <attachid>93139</attachid>
    <who name="">michaelbai</who>
    <bug_when>2011-05-11 10:05:05 -0700</bug_when>
    <thetext>Created attachment 93139
Address the comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402167</commentid>
    <comment_count>11</comment_count>
      <attachid>93139</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-05-11 12:34:10 -0700</bug_when>
    <thetext>Comment on attachment 93139
Address the comment

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402168</commentid>
    <comment_count>12</comment_count>
      <attachid>93139</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-05-11 12:35:03 -0700</bug_when>
    <thetext>Comment on attachment 93139
Address the comment

BTW, if you want to use the commit-queue, you should set the cq? flag on the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402380</commentid>
    <comment_count>13</comment_count>
      <attachid>93139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-11 15:58:51 -0700</bug_when>
    <thetext>Comment on attachment 93139
Address the comment

Clearing flags on attachment: 93139

Committed r86279: &lt;http://trac.webkit.org/changeset/86279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402381</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-11 15:58:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92907</attachid>
            <date>2011-05-09 19:11:02 -0700</date>
            <delta_ts>2011-05-11 08:55:22 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>patch.0</filename>
            <type>text/plain</type>
            <size>2398</size>
            <attacher>michaelbai</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTIyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDUtMDkgIFRhbyBCYWkg
IDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXR1cm4gZW1wdHkgRmF2aWNvbiBVUkwgaW5zdGVhZCBvZiBk
ZWZhdWx0IG9uZSB3aGVuIHRoZSBmcmFtZSBpc24ndCB0b3AgbGV2ZWwgb25lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDUyNworCisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJY29uVVJM
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6Omljb25VUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpm
aWxsSWNvblVSTCk6CisKIDIwMTEtMDUtMDkgIEx1a2UgTWFjcGhlcnNvbiAgIDxtYWNwaGVyc29u
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gODYxMjIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDM0LDcgKzQ0MzQsNyBAQCB2
b2lkIERvY3VtZW50OjpzZXRJY29uVVJMKGNvbnN0IFN0cmluZyYgCiB7CiAgICAgLy8gRklYTUUg
LSA8cmRhcjovL3Byb2JsZW0vNDcyNzY0NT4gLSBBdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUs
IHdlIG1pZ2h0IGFjdHVhbGx5IGhvbm9yIHRoZSAibWltZVR5cGUiCiAgICAgSWNvblVSTCBuZXdV
UkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCksIGljb25UeXBlKTsKLSAgICBpZiAoIWljb25V
UkwoaWNvblR5cGUpLm1faWNvblVSTC5pc0VtcHR5KCkpCisgICAgaWYgKGljb25VUkwoaWNvblR5
cGUpLm1faWNvblVSTC5pc0VtcHR5KCkpCiAgICAgICAgIHNldEljb25VUkwobmV3VVJMKTsKICAg
ICBlbHNlIGlmICghbWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICBzZXRJY29uVVJMKG5ld1VS
TCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDg2
MTIyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDc1LDYgKzQ3NSwxMCBAQCBLVVJMIEZyYW1lTG9hZGVyOjppY29uVVJMKCkKIElj
b25VUkxzIEZyYW1lTG9hZGVyOjppY29uVVJMcyhpbnQgaWNvblR5cGVzKQogewogICAgIEljb25V
UkxzIGljb25VUkxzOworICAgIC8vIElmIHRoaXMgaXNuJ3QgYSB0b3AgbGV2ZWwgZnJhbWUsIHJl
dHVybgorICAgIGlmIChtX2ZyYW1lLT50cmVlKCkgJiYgbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQo
KSkKKyAgICAgICAgcmV0dXJuIGljb25VUkxzOworCiAgICAgaWYgKGljb25UeXBlcyAmIEZhdmlj
b24gJiYgIWZpbGxJY29uVVJMKEZhdmljb24sICZpY29uVVJMcykpCiAgICAgICAgIGljb25VUkxz
LmFwcGVuZChnZXREZWZhdWx0SWNvblVSTChGYXZpY29uKSk7CiAKQEAgLTQ5OCwxMCArNTAyLDYg
QEAgSWNvblVSTHMgRnJhbWVMb2FkZXI6Omljb25VUkxzKGludCBpY29uVAogCiBib29sIEZyYW1l
TG9hZGVyOjpmaWxsSWNvblVSTChJY29uVHlwZSBpY29uVHlwZSwgSWNvblVSTHMqIGljb25VUkxz
KQogewotICAgIC8vIElmIHRoaXMgaXNuJ3QgYSB0b3AgbGV2ZWwgZnJhbWUsIHJldHVybgotICAg
IGlmIChtX2ZyYW1lLT50cmVlKCkgJiYgbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCiAgICAgLy8gSWYgd2UgaGF2ZSBhbiBpY29uVVJMIGZyb20gYSBM
aW5rIGVsZW1lbnQsIHJldHVybiB0aGF0CiAgICAgSWNvblVSTCB1cmwgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5pY29uVVJMKGljb25UeXBlKTsKICAgICBpZiAodXJsLm1faWNvblVSTC5pc0VtcHR5
KCkpCg==
</data>
<flag name="review"
          id="85956"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93126</attachid>
            <date>2011-05-11 08:55:22 -0700</date>
            <delta_ts>2011-05-11 08:59:03 -0700</delta_ts>
            <desc>Add more explaination in change log</desc>
            <filename>patch.12</filename>
            <type>text/plain</type>
            <size>11877</size>
            <attacher>michaelbai</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NjE1NykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTEtMDUtMTAgIFRhbyBCYWkgIDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgdGhlIHRv
dWNoIGljb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MDI0NworCisgICAgICAgIEFkZGVkIFdlYkljb25VUkwgZm9yIHRoZSBjb3JyZXNwb25kaW5n
IEljb25VUkwuCisgICAgICAgIEFkZGVkIGEgcGFyYW1ldGVyIHRvIGZhdkljb25VUkwoKSB0byBz
cGVjaWZ5IHRoZSB0eXBlIG9mIGljb24gbmVlZCB0bworICAgICAgICByZXR1cm4uCisgICAgICAg
IFJvbGxiYWNrIHRoZSBwcmV2aW91cyBmYXZJY29uVVJMKCksIHNvIGl0IGNhbiBiZSBjb21waWxl
ZCBpbiBDaHJvbWl1bQorICAgICAgICBhbmQgd2lsbCByZW1vdmUgaXQgbGF0ZXIuIAorCisgICAg
ICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorICAgICAgICAqIHB1
YmxpYy9XZWJGcmFtZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZUNsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUNsaWVudDo6ZGlkQ2hhbmdlSWNvbnMpOgorICAgICAgICAq
IHB1YmxpYy9XZWJJY29uVVJMLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uVVJM
OjpXZWJJY29uVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvblVSTDo6aWNvblR5cGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJY29uVVJMOjppY29uVVJMKToKKyAgICAgICAgKiBzcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hE
aWRDaGFuZ2VJY29ucyk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZmF2SWNvblVSTCk6CisgICAgICAgICogc3JjL1dlYkZy
YW1lSW1wbC5oOgorCiAyMDExLTA1LTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIGNsYW5nIGJ1aWxkLgpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gODYwODMpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsNyBAQAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViSFRUUEJvZHkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJIVFRQTG9hZEluZm8uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJY29u
TG9hZGluZ0NvbXBsZXRpb24uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJY29uVHlw
ZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViSURCQ2FsbGJhY2tzLmgnLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQkocmV2aXNpb24gODYwODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDcgQEAKICAgICAgICAgJ0VOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1Q9MScsCiAgICAgICAgICdFTkFCTEVfU1ZHX1VTRT0xJywKICAgICAgICAg
J0VOQUJMRV9UT1VDSF9FVkVOVFM9MScsCisgICAgICAgICdFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HPTEnLAogICAgICAgICAnRU5BQkxFX1Y4X1NDUklQVF9ERUJVR19TRVJWRVI9MScsCiAgICAg
ICAgICdFTkFCTEVfVklERU89MScsCiAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTAnLApJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCShyZXZpc2lvbiA4NjA4
MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIldlYkNhbnZhcy5oIgogI2luY2x1
ZGUgIldlYkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAjaW5jbHVkZSAi
V2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgogCkBAIC0xMjksMTAgKzEzMCwxNSBAQCBw
dWJsaWM6CiAgICAgLy8gZGF0YVNvdXJjZSgpLT5yZXF1ZXN0KCkudXJsKCkuCiAgICAgdmlydHVh
bCBXZWJVUkwgdXJsKCkgY29uc3QgPSAwOwogCi0gICAgLy8gVGhlIHVybCBvZiB0aGUgZmF2aWNv
biAoaWYgYW55KSBzcGVjaWZpZWQgYnkgdGhlIGRvY3VtZW50IGxvYWRlZCBpbgotICAgIC8vIHRo
aXMgZnJhbWUuCisgICAgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBy
ZW1vdmVkIHNvb24uCiAgICAgdmlydHVhbCBXZWJVUkwgZmF2SWNvblVSTCgpIGNvbnN0ID0gMDsK
IAorICAgIC8vIFRoZSB1cmxzIG9mIHRoZSBnaXZlbiBjb21iaW5hdGlvbiB0eXBlcyBvZiBmYXZp
Y29uIChpZiBhbnkpIHNwZWNpZmllZCBieQorICAgIC8vIHRoZSBkb2N1bWVudCBsb2FkZWQgaW4g
dGhpcyBmcmFtZS4gVGhlIGljb25UeXBlcyBpcyBhIGJpdC1tYXNrIG9mCisgICAgLy8gV2ViSWNv
blVSTDo6VHlwZSB2YWx1ZXMsIHNlZCB0byBzZWxlY3QgZnJvbSB0aGUgYXZhaWxhYmxlIHNldCBv
ZiBpY29uCisgICAgLy8gVVJMcworICAgIHZpcnR1YWwgV2ViVmVjdG9yPFdlYkljb25VUkw+IGlj
b25VUkxzKGludCBpY29uVHlwZXMpIGNvbnN0ID0gMDsKKwogICAgIC8vIFRoZSB1cmwgb2YgdGhl
IE9wZW5TZWFyY2ggRGVzcmlwdGlvbiBEb2N1bWVudCAoaWYgYW55KSBzcGVjaWZpZWQgYnkKICAg
ICAvLyB0aGUgZG9jdW1lbnQgbG9hZGVkIGluIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBXZWJV
Ukwgb3BlblNlYXJjaERlc2NyaXB0aW9uVVJMKCkgY29uc3QgPSAwOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCShyZXZpc2lvbiA4NjA4
MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgog
I2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAjaW5j
bHVkZSAiV2ViTmF2aWdhdGlvblBvbGljeS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25UeXBl
LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhVHlwZS5oIgpAQCAtMjAyLDcgKzIwMyw3IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGUgaWNvbnMgZm9yIHRoZSBwYWdlIGhhdmUgY2hh
bmdlZC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbnMoV2ViRnJhbWUqKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbihXZWJGcmFtZSosIFdlYkljb25VUkw6OlR5cGUp
IHsgfQogCiAgICAgLy8gVGhlIGZyYW1lJ3MgZG9jdW1lbnQgZmluaXNoZWQgbG9hZGluZy4KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkKFdlYkZyYW1lKikgeyB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJY29uVVJMLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSWNvblVSTC5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSWNvblVSTC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJY29uVVJMX2gKKyNkZWZpbmUgV2ViSWNv
blVSTF9oCisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyNpbmNsdWRlICJJY29uVVJMLmgi
CisjZW5kaWYKKyNpbmNsdWRlICJXZWJVUkwuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYkljb25VUkwgeworcHVibGljOgorICAgIGVudW0gVHlwZSB7CisgICAgICAgIFR5cGVJ
bnZhbGlkID0gMCwKKyAgICAgICAgVHlwZUZhdmljb24gPSAxIDw8IDAsCisgICAgICAgIFR5cGVU
b3VjaCA9IDEgPDwgMSwKKyAgICAgICAgVHlwZVRvdWNoUHJlY29tcG9zZWQgPSAxIDw8IDIKKyAg
ICB9OworCisgICAgV2ViSWNvblVSTCgpCisgICAgICAgIDogbV9pY29uVHlwZShUeXBlSW52YWxp
ZCkKKyAgICB7CisgICAgfQorCisgICAgV2ViSWNvblVSTChjb25zdCBXZWJVUkwmIHVybCwgVHlw
ZSB0eXBlKQorICAgICAgICA6IG1faWNvblR5cGUodHlwZSkKKyAgICAgICAgLCBtX2ljb25VUkwo
dXJsKQorICAgIHsKKyAgICB9CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJJ
Y29uVVJMKGNvbnN0IFdlYkNvcmU6Okljb25VUkwmIGljb25VUkwpCisgICAgICAgIDogbV9pY29u
VHlwZShzdGF0aWNfY2FzdDxUeXBlPihpY29uVVJMLm1faWNvblR5cGUpKQorICAgICAgICAsIG1f
aWNvblVSTChpY29uVVJMLm1faWNvblVSTCkKKyAgICB7CisgICAgfQorI2VuZGlmCisKKyAgICBU
eXBlIGljb25UeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ljb25UeXBlOwor
ICAgIH0KKworICAgIGNvbnN0IFdlYlVSTCYgaWNvblVSTCgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9pY29uVVJMOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBlIG1faWNvblR5
cGU7CisgICAgV2ViVVJMIG1faWNvblVSTDsKK307CisKK30KKworI2VuZGlmIC8vIFdlYkljb25V
UkxfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSWNvblVSTC5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCShyZXZpc2lvbiA4NjA4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fz
c2VydE1hdGNoaW5nRW51bXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b24uaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSWNvblVSTC5o
IgogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURC
S2V5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKQEAgLTczLDYgKzc0LDcgQEAKICNpbmNs
dWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5o
IgogI2luY2x1ZGUgIldlYklEQktleS5oIgorI2luY2x1ZGUgIldlYkljb25VUkwuaCIKICNpbmNs
dWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgogI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgpAQCAtMzA0LDYgKzMwNiwxMSBAQCBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZvbnREZXNjCiBDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYkZvbnREZXNjcmlwdGlvbjo6V2VpZ2h0Tm9ybWFsLCBGb250V2VpZ2h0
Tm9ybWFsKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViRm9udERlc2NyaXB0aW9u
OjpXZWlnaHRCb2xkLCBGb250V2VpZ2h0Qm9sZCk7CiAKK0NPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViSWNvblVSTDo6VHlwZUludmFsaWQsIEludmFsaWRJY29uKTsKK0NPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViSWNvblVSTDo6VHlwZUZhdmljb24sIEZhdmljb24pOworQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJY29uVVJMOjpUeXBlVG91Y2gsIFRvdWNoSWNv
bik7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkljb25VUkw6OlR5cGVUb3VjaFBy
ZWNvbXBvc2VkLCBUb3VjaFByZWNvbXBvc2VkSWNvbik7CisKIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViTm9kZTo6RWxlbWVudE5vZGUsIE5vZGU6OkVMRU1FTlRfTk9ERSk7CiBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vZGU6OkF0dHJpYnV0ZU5vZGUsIE5vZGU6OkFU
VFJJQlVURV9OT0RFKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm9kZTo6VGV4
dE5vZGUsIE5vZGU6OlRFWFRfTk9ERSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDg2MDgzKQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzYwLDcgKzc2MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJ
bXBsOjpkaXNwYXRjaERpZFIKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaXNwYXRjaERp
ZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlIHR5cGUpCiB7CiAgICAgaWYgKG1fd2ViRnJh
bWUtPmNsaWVudCgpKQotICAgICAgICBtX3dlYkZyYW1lLT5jbGllbnQoKS0+ZGlkQ2hhbmdlSWNv
bnMobV93ZWJGcmFtZSk7CisgICAgICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5kaWRDaGFuZ2VJ
Y29uKG1fd2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYkljb25VUkw6OlR5cGU+KHR5cGUpKTsKIH0K
IAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlz
aW9uIDg2MDgzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0Lmgi
CisjaW5jbHVkZSAiSWNvblVSTC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAicGFpbnRpbmcvR3JhcGhpY3NDb250ZXh0QnVp
bGRlci5oIgpAQCAtMTM3LDYgKzEzOCw3IEBACiAjaW5jbHVkZSAiV2ViRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgi
CisjaW5jbHVkZSAiV2ViSWNvblVSTC5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNsdWRlICJXZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxp
c3RlbmVyLmgiCkBAIC01MjAsMTUgKzUyMiwyNSBAQCBXZWJVUkwgV2ViRnJhbWVJbXBsOjp1cmwo
KSBjb25zdAogCiBXZWJVUkwgV2ViRnJhbWVJbXBsOjpmYXZJY29uVVJMKCkgY29uc3QKIHsKKyAg
ICBXZWJWZWN0b3I8V2ViSWNvblVSTD4gdXJscyA9IGljb25VUkxzKFdlYkljb25VUkw6OlR5cGVG
YXZpY29uKTsKKyAgICBpZiAodXJscy5zaXplKCkpCisgICAgICAgIHJldHVybiB1cmxzWzBdLmlj
b25VUkwoKTsKKyAgICByZXR1cm4gV2ViVVJMKCk7Cit9CisKK1dlYlZlY3RvcjxXZWJJY29uVVJM
PiBXZWJGcmFtZUltcGw6Omljb25VUkxzKGludCB3ZWJJY29uVHlwZXMpIGNvbnN0Cit7CiAgICAg
RnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gbV9mcmFtZS0+bG9hZGVyKCk7Ci0gICAgLy8gVGhl
IFVSTCB0byB0aGUgZmF2aWNvbiBtYXkgYmUgaW4gdGhlIGhlYWRlci4gQXMgc3VjaCwgb25seQot
ICAgIC8vIGFzayB0aGUgbG9hZGVyIGZvciB0aGUgZmF2aWNvbiBpZiBpdCdzIGZpbmlzaGVkIGxv
YWRpbmcuCisgICAgLy8gVGhlIFVSTCB0byB0aGUgaWNvbiBtYXkgYmUgaW4gdGhlIGhlYWRlci4g
QXMgc3VjaCwgb25seQorICAgIC8vIGFzayB0aGUgbG9hZGVyIGZvciB0aGUgaWNvbiBpZiBpdCdz
IGZpbmlzaGVkIGxvYWRpbmcuCiAgICAgaWYgKGZyYW1lTG9hZGVyLT5zdGF0ZSgpID09IEZyYW1l
U3RhdGVDb21wbGV0ZSkgewotICAgICAgICBjb25zdCBLVVJMJiB1cmwgPSBmcmFtZUxvYWRlci0+
aWNvblVSTCgpOwotICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1
cm4gdXJsOworICAgICAgICBWZWN0b3I8V2ViQ29yZTo6SWNvblVSTD4gaWNvblVSTHMgPSBmcmFt
ZUxvYWRlci0+aWNvblVSTHMod2ViSWNvblR5cGVzKTsKKyAgICAgICAgV2ViVmVjdG9yPFdlYklj
b25VUkw+IHdlYkljb25VUkxzKGljb25VUkxzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgaWNvblVSTHMuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICB3ZWJJY29uVVJM
c1tpXSA9IGljb25VUkxzW2ldOworICAgICAgICByZXR1cm4gd2ViSWNvblVSTHM7CiAgICAgfQot
ICAgIHJldHVybiBXZWJVUkwoKTsKKyAgICByZXR1cm4gV2ViVmVjdG9yPFdlYkljb25VUkw+KCk7
CiB9CiAKIFdlYlVSTCBXZWJGcmFtZUltcGw6Om9wZW5TZWFyY2hEZXNjcmlwdGlvblVSTCgpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkocmV2
aXNpb24gODYwODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
aAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBs
b25nIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViVVJMIHVybCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgV2ViVVJMIGZhdkljb25VUkwoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFdlYlVSTCBvcGVuU2VhcmNoRGVzY3JpcHRpb25VUkwoKSBjb25zdDsKICAgICB2
aXJ0dWFsIFdlYlN0cmluZyBlbmNvZGluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBz
Y3JvbGxPZmZzZXQoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93127</attachid>
            <date>2011-05-11 08:59:03 -0700</date>
            <delta_ts>2011-05-11 10:05:05 -0700</delta_ts>
            <desc>Add more explaination in change log</desc>
            <filename>patch.1</filename>
            <type>text/plain</type>
            <size>2779</size>
            <attacher>michaelbai</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MjM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDUtMDkgIFRhbyBCYWkg
IDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXR1cm4gZW1wdHkgRmF2aWNvbiBVUkwgaW5zdGVhZCBvZiBk
ZWZhdWx0IG9uZSB3aGVuIHRoZSBmcmFtZSBpc24ndCB0b3AgbGV2ZWwgb25lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDUyNworCisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJY29uVVJM
KToKKyAgICAgICAgUmVzdG9yZWQgb3JpZ2luYWwgbG9naWMgd2hpY2ggd2FzIGluYWR2ZXJ0ZW50
bHkgZmxpcHBlZCBieSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC84NTc4NS4KKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6Omljb25VUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpmaWxsSWNv
blVSTCk6CisgICAgICAgIFJlc3RvcmVkIG9yaWdpbmFsIGxvZ2ljLCB0aGUgZW1wdHkgVVJMIHNo
b3VsZCBiZSByZXR1cm5lZCBpbnN0ZWFkIG9mIGRlZmF1bHQgb25lLiBUaGUgY2xpZW50IChhdAor
ICAgICAgICBsZWFzdCBjaHJvbWl1bSkgbWF5IHJlbHkgb24gdGhlIHJldHVybmVkIHZhbHVlIHRv
IGRlY2lkZWQgd2hldGhlciB0aGUgZmF2aWNvbiBzaG91bGQgYmUgY2hhbmdlZC4KKyAgICAgICAg
VGhpcyBpc3N1ZSB3YXMgZGlzY3Vzc2VkIGJ5IGNocm9taXVtIGJyb3dzZXIgdGVzdC4KKwogMjAx
MS0wNS0xMSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAkocmV2aXNpb24gODYyMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NDIyLDcgKzQ0MjIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRJ
Y29uVVJMKGNvbnN0IFN0cmluZyYgCiB7CiAgICAgLy8gRklYTUUgLSA8cmRhcjovL3Byb2JsZW0v
NDcyNzY0NT4gLSBBdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUsIHdlIG1pZ2h0IGFjdHVhbGx5
IGhvbm9yIHRoZSAibWltZVR5cGUiCiAgICAgSWNvblVSTCBuZXdVUkwoS1VSTChQYXJzZWRVUkxT
dHJpbmcsIHVybCksIGljb25UeXBlKTsKLSAgICBpZiAoIWljb25VUkwoaWNvblR5cGUpLm1faWNv
blVSTC5pc0VtcHR5KCkpCisgICAgaWYgKGljb25VUkwoaWNvblR5cGUpLm1faWNvblVSTC5pc0Vt
cHR5KCkpCiAgICAgICAgIHNldEljb25VUkwobmV3VVJMKTsKICAgICBlbHNlIGlmICghbWltZVR5
cGUuaXNFbXB0eSgpKQogICAgICAgICBzZXRJY29uVVJMKG5ld1VSTCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDg2MjM0KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc1LDYgKzQ3
NSwxMCBAQCBLVVJMIEZyYW1lTG9hZGVyOjppY29uVVJMKCkKIEljb25VUkxzIEZyYW1lTG9hZGVy
OjppY29uVVJMcyhpbnQgaWNvblR5cGVzKQogewogICAgIEljb25VUkxzIGljb25VUkxzOworICAg
IC8vIElmIHRoaXMgaXNuJ3QgYSB0b3AgbGV2ZWwgZnJhbWUsIHJldHVybgorICAgIGlmIChtX2Zy
YW1lLT50cmVlKCkgJiYgbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJu
IGljb25VUkxzOworCiAgICAgaWYgKGljb25UeXBlcyAmIEZhdmljb24gJiYgIWZpbGxJY29uVVJM
KEZhdmljb24sICZpY29uVVJMcykpCiAgICAgICAgIGljb25VUkxzLmFwcGVuZChnZXREZWZhdWx0
SWNvblVSTChGYXZpY29uKSk7CiAKQEAgLTQ5OCwxMCArNTAyLDYgQEAgSWNvblVSTHMgRnJhbWVM
b2FkZXI6Omljb25VUkxzKGludCBpY29uVAogCiBib29sIEZyYW1lTG9hZGVyOjpmaWxsSWNvblVS
TChJY29uVHlwZSBpY29uVHlwZSwgSWNvblVSTHMqIGljb25VUkxzKQogewotICAgIC8vIElmIHRo
aXMgaXNuJ3QgYSB0b3AgbGV2ZWwgZnJhbWUsIHJldHVybgotICAgIGlmIChtX2ZyYW1lLT50cmVl
KCkgJiYgbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
CiAgICAgLy8gSWYgd2UgaGF2ZSBhbiBpY29uVVJMIGZyb20gYSBMaW5rIGVsZW1lbnQsIHJldHVy
biB0aGF0CiAgICAgSWNvblVSTCB1cmwgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMKGlj
b25UeXBlKTsKICAgICBpZiAodXJsLm1faWNvblVSTC5pc0VtcHR5KCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93139</attachid>
            <date>2011-05-11 10:05:05 -0700</date>
            <delta_ts>2011-05-11 15:58:51 -0700</delta_ts>
            <desc>Address the comment</desc>
            <filename>patch.2</filename>
            <type>text/plain</type>
            <size>2780</size>
            <attacher>michaelbai</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MjM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDUtMDkgIFRhbyBCYWkg
IDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXR1cm4gZW1wdHkgRmF2aWNvbiBVUkwgaW5zdGVhZCBvZiBk
ZWZhdWx0IG9uZSB3aGVuIHRoZSBmcmFtZSBpc24ndCB0b3AgbGV2ZWwgb25lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDUyNworICAgICAgICBUaGlz
IGlzc3VlIHdhcyBkaXNjb3ZlcmVkIGJ5IGNocm9taXVtIGJyb3dzZXIgdGVzdC4KKworICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SWNv
blVSTCk6CisgICAgICAgIFJlc3RvcmVkIG9yaWdpbmFsIGxvZ2ljIHdoaWNoIHdhcyBpbmFkdmVy
dGVudGx5IGZsaXBwZWQgYnkgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvODU3ODUu
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjppY29uVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Zmls
bEljb25VUkwpOgorICAgICAgICBSZXN0b3JlZCBvcmlnaW5hbCBsb2dpYywgdGhlIGVtcHR5IFVS
TCBzaG91bGQgYmUgcmV0dXJuZWQgaW5zdGVhZCBvZiBkZWZhdWx0IG9uZS4gVGhlIGNsaWVudCAo
YXQKKyAgICAgICAgbGVhc3QgY2hyb21pdW0pIG1heSByZWx5IG9uIHRoZSByZXR1cm5lZCB2YWx1
ZSB0byBkZWNpZGVkIHdoZXRoZXIgdGhlIGZhdmljb24gc2hvdWxkIGJlIGNoYW5nZWQuCisKIDIw
MTEtMDUtMTEgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHJldmlzaW9uIDg2MjM0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQyMiw3ICs0NDIyLDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0
SWNvblVSTChjb25zdCBTdHJpbmcmIAogewogICAgIC8vIEZJWE1FIC0gPHJkYXI6Ly9wcm9ibGVt
LzQ3Mjc2NDU+IC0gQXQgc29tZSBwb2ludCBpbiB0aGUgZnV0dXJlLCB3ZSBtaWdodCBhY3R1YWxs
eSBob25vciB0aGUgIm1pbWVUeXBlIgogICAgIEljb25VUkwgbmV3VVJMKEtVUkwoUGFyc2VkVVJM
U3RyaW5nLCB1cmwpLCBpY29uVHlwZSk7Ci0gICAgaWYgKCFpY29uVVJMKGljb25UeXBlKS5tX2lj
b25VUkwuaXNFbXB0eSgpKQorICAgIGlmIChpY29uVVJMKGljb25UeXBlKS5tX2ljb25VUkwuaXNF
bXB0eSgpKQogICAgICAgICBzZXRJY29uVVJMKG5ld1VSTCk7CiAgICAgZWxzZSBpZiAoIW1pbWVU
eXBlLmlzRW1wdHkoKSkKICAgICAgICAgc2V0SWNvblVSTChuZXdVUkwpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA4NjIzNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSw2ICs0
NzUsMTAgQEAgS1VSTCBGcmFtZUxvYWRlcjo6aWNvblVSTCgpCiBJY29uVVJMcyBGcmFtZUxvYWRl
cjo6aWNvblVSTHMoaW50IGljb25UeXBlcykKIHsKICAgICBJY29uVVJMcyBpY29uVVJMczsKKyAg
ICAvLyBJZiB0aGlzIGlzbid0IGEgdG9wIGxldmVsIGZyYW1lLCByZXR1cm4KKyAgICBpZiAobV9m
cmFtZS0+dHJlZSgpICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCisgICAgICAgIHJldHVy
biBpY29uVVJMczsKKwogICAgIGlmIChpY29uVHlwZXMgJiBGYXZpY29uICYmICFmaWxsSWNvblVS
TChGYXZpY29uLCAmaWNvblVSTHMpKQogICAgICAgICBpY29uVVJMcy5hcHBlbmQoZ2V0RGVmYXVs
dEljb25VUkwoRmF2aWNvbikpOwogCkBAIC00OTgsMTAgKzUwMiw2IEBAIEljb25VUkxzIEZyYW1l
TG9hZGVyOjppY29uVVJMcyhpbnQgaWNvblQKIAogYm9vbCBGcmFtZUxvYWRlcjo6ZmlsbEljb25V
UkwoSWNvblR5cGUgaWNvblR5cGUsIEljb25VUkxzKiBpY29uVVJMcykKIHsKLSAgICAvLyBJZiB0
aGlzIGlzbid0IGEgdG9wIGxldmVsIGZyYW1lLCByZXR1cm4KLSAgICBpZiAobV9mcmFtZS0+dHJl
ZSgpICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQogICAgIC8vIElmIHdlIGhhdmUgYW4gaWNvblVSTCBmcm9tIGEgTGluayBlbGVtZW50LCByZXR1
cm4gdGhhdAogICAgIEljb25VUkwgdXJsID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTChp
Y29uVHlwZSk7CiAgICAgaWYgKHVybC5tX2ljb25VUkwuaXNFbXB0eSgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>