<?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>31186</bug_id>
          
          <creation_ts>2009-11-05 13:44:52 -0800</creation_ts>
          <short_desc>Cleanup: Rename fields RenderTextControl::m_edited and RenderTextControl::m_userEdited</short_desc>
          <delta_ts>2009-11-18 15:46:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>adele</cc>
    
    <cc>brunner</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>michelangelo</cc>
    
    <cc>ojan</cc>
    
    <cc>thomas.godart_wk</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160939</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-05 13:44:52 -0800</bug_when>
    <thetext>Following up on Darin&apos;s comments in bug #20780.:

We should rename the fields RenderTextControl::m_edited and RenderTextControl::m_userEdited to be more descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162731</commentid>
    <comment_count>1</comment_count>
      <attachid>43020</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-11 16:55:40 -0800</bug_when>
    <thetext>Created attachment 43020
Patch

No functionality was changed so no tests were included in this patch.

On Darin&apos;s suggestion &lt;https://bugs.webkit.org/show_bug.cgi?id=20780#c24&gt;, I chose to rename RenderTextControl::m_edited to wasChangedSinceLastChangeEvent, and RenderTextControl::m_userEdited to m_lastChangeWasUserEdit. I felt these names were consistent (in wording - both use the word &quot;change&quot; to describe the modification to the text control) and best described what these fields are for. It would have been nice if we could have more concise names for these fields, but I could not think of any.

We should probably look into re-factoring the functionality of these methods/cleanup RenderTextControl as outlined in &lt;https://bugs.webkit.org/show_bug.cgi?id=20780#c14&gt;. Then we may have a cleaner API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162915</commentid>
    <comment_count>2</comment_count>
      <attachid>43020</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-12 08:36:04 -0800</bug_when>
    <thetext>Comment on attachment 43020
Patch

&gt; -        // We set m_userEdited to false since this change was not explicty made by the user (say, via typing on the keyboard), see &lt;rdar://problem/5359921&gt;.
&gt; -        m_userEdited = false;
&gt; +        // We set m_lastChangeWasUserEdit to false since this change was not explicty made by the user (say, via typing on the keyboard), see &lt;rdar://problem/5359921&gt;.
&gt; +        m_lastChangeWasUserEdit = false;

It would be nice to fix the spelling of explicitly.

I don&apos;t think the &quot;see rdar&quot; comment is really all that useful, even for people at Apple.

I think the comment is no longer needed; the new name of the data member speaks for itself. Or if we really want one, the comment could say, &quot;Set m_lastChangeWasUserEdit to false since this function is only used for programmatic changes, not for user editing.&quot;

As you mentioned, we should make other changes here. We don&apos;t want people to directly set these with set functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162956</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-12 10:43:45 -0800</bug_when>
    <thetext>I&apos;ll just remove the comment when I land this, since the name of the field implies that we are using it to differentiate programmatic changes from user editing.

(In reply to comment #2)
&gt; (From update of attachment 43020 [details])
&gt; &gt; -        // We set m_userEdited to false since this change was not explicty made by the user (say, via typing on the keyboard), see &lt;rdar://problem/5359921&gt;.
&gt; &gt; -        m_userEdited = false;
&gt; &gt; +        // We set m_lastChangeWasUserEdit to false since this change was not explicty made by the user (say, via typing on the keyboard), see &lt;rdar://problem/5359921&gt;.
&gt; &gt; +        m_lastChangeWasUserEdit = false;
&gt; 
&gt; It would be nice to fix the spelling of explicitly.
&gt; 
&gt; I don&apos;t think the &quot;see rdar&quot; comment is really all that useful, even for people
&gt; at Apple.
&gt; 
&gt; I think the comment is no longer needed; the new name of the data member speaks
&gt; for itself. Or if we really want one, the comment could say, &quot;Set
&gt; m_lastChangeWasUserEdit to false since this function is only used for
&gt; programmatic changes, not for user editing.&quot;
&gt; 
&gt; As you mentioned, we should make other changes here. We don&apos;t want people to
&gt; directly set these with set functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163134</commentid>
    <comment_count>4</comment_count>
      <attachid>43020</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-12 18:19:25 -0800</bug_when>
    <thetext>Comment on attachment 43020
Patch

Dan to edit before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163777</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-15 14:56:11 -0800</bug_when>
    <thetext>Committed r50999: &lt;http://trac.webkit.org/changeset/50999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163783</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-15 15:16:04 -0800</bug_when>
    <thetext>Committed r51000: &lt;http://trac.webkit.org/changeset/51000&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163784</commentid>
    <comment_count>7</comment_count>
      <attachid>43020</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-15 15:16:53 -0800</bug_when>
    <thetext>Comment on attachment 43020
Patch

Clearing review flag since Daniel will be doing a new patch that covers the rest of the call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163785</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-15 15:17:55 -0800</bug_when>
    <thetext>Commit in r50999 but failed to build on the Win build bots. So, rolled it out in r51000.

Will correct the Windows build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163803</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-15 16:33:15 -0800</bug_when>
    <thetext>Re-opening bug since we need to fix this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163804</commentid>
    <comment_count>10</comment_count>
      <attachid>43256</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-15 16:34:08 -0800</bug_when>
    <thetext>Created attachment 43256
Patch

Makes my Windows build smile :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163811</commentid>
    <comment_count>11</comment_count>
      <attachid>43256</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-15 16:55:13 -0800</bug_when>
    <thetext>Comment on attachment 43256
Patch

Changing the name of the function in DOMPrivate.idl will break compilation of Safari for Windows, although it doesn&apos;t break the compilation of WebKit itself.

I suggest you take the same approach with Windows that you did with Mac OS X. Leave the interface of WebKit for clients outside WebKit with the old name. Change only the names internal to WebKit. So the DOMPrivate.idl name would need to stay the same, as would DOMHTMLClasses.h, and the function names in DOMHTMLClasses.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163818</commentid>
    <comment_count>12</comment_count>
      <attachid>43259</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-11-15 17:13:19 -0800</bug_when>
    <thetext>Created attachment 43259
Patch

Updated patch based on Darin&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164785</commentid>
    <comment_count>13</comment_count>
      <attachid>43259</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-18 15:46:17 -0800</bug_when>
    <thetext>Comment on attachment 43259
Patch

Clearing flags on attachment: 43259

Committed r51148: &lt;http://trac.webkit.org/changeset/51148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164786</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-18 15:46:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43020</attachid>
            <date>2009-11-11 16:55:40 -0800</date>
            <delta_ts>2009-11-15 16:34:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug31186.patch</filename>
            <type>text/plain</type>
            <size>9973</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDg0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTEtMTEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE4NgorCisgICAgICAgIFJl
bmFtZXMgUmVuZGVyVGV4dENvbnRyb2w6Om1fZWRpdGVkIGFuZCBSZW5kZXJUZXh0Q29udHJvbDo6
bV91c2VyRWRpdGVkIHRvCisgICAgICAgIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50
IGFuZCBtX2xhc3RDaGFuZ2VXYXNVc2VyRWRpdCwgcmVzcGVjdGl2ZWx5LgorICAgICAgICBUaGVz
ZSBhcmUgbW9yZSBkZXNjcmlwdGl2ZSBuYW1lcyBzbyBhcyB0byBjbGVhciBhbiBhbWJpZ3VpdHkg
c3Vycm91bmRpbmcKKyAgICAgICAgdGhlaXIgdXNhZ2UuIEFsc28sIHJlbmFtZXMgYXNzb2NpYXRl
ZCBzZXR0ZXJzIGFuZCBnZXR0ZXJzIHNvIHRoYXQgdGhleQorICAgICAgICBjb2luY2lkZSB3aXRo
IHRoZSByZW5hbWVkIGZpZWxkcy4KKworICAgICAgICBObyBmdW5jdGlvbmFsaXR5IHdhcyBjaGFu
Z2VkLiBTbywgbm8gdGVzdHMgd2VyZSBpbmNsdWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSFRNTC5tbToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxlbWVudCBfaXNFZGl0ZWRd
KToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBfaXNFZGl0ZWRdKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZv
Y3VzZWROb2RlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldExhc3RDaGFuZ2VXYXNVc2VyRWRpdCk6IEZvcm1lcmx5
IG5hbWVkIHNldFVzZXJFZGl0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bDo6c3VidHJlZUhhc0NoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Ondhc0NoYW5nZWRT
aW5jZUxhc3RDaGFuZ2VFdmVudCk6IEZvcm1lcmx5IG5hbWVkIGlzRWRpdGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVu
dCk6IEZvcm1lcmx5IG5hbWVkIHNldEVkaXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sOjpsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOiBGb3JtZXJseSBuYW1lZCBzZXRVc2Vy
RWRpdGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0
cmVlSGFzQ2hhbmdlZCk6CisgICAgICAgICogd21sL1dNTElucHV0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorCiAy
MDA5LTExLTExICBKZW5zIEFsZmtlICA8c25lakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0J
KHJldmlzaW9uIDUwODQ1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNyBAQAogLSAoQk9PTClfaXNFZGl0ZWQKIHsKICAg
ICBXZWJDb3JlOjpSZW5kZXJPYmplY3QgKnJlbmRlcmVyID0gY29yZShzZWxmKS0+cmVuZGVyZXIo
KTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgW3NlbGYgX2lzVGV4dEZpZWxkXSAmJiBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbCAqPihyZW5kZXJlciktPmlzVXNlckVkaXRl
ZCgpOworICAgIHJldHVybiByZW5kZXJlciAmJiBbc2VsZiBfaXNUZXh0RmllbGRdICYmIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sICo+KHJlbmRlcmVyKS0+bGFzdENoYW5n
ZVdhc1VzZXJFZGl0KCk7CiB9CiAKIEBlbmQKQEAgLTE3Nyw3ICsxNzcsNyBAQAogLSAoQk9PTClf
aXNFZGl0ZWQKIHsKICAgICBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZShz
ZWxmKS0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlciktPmlzVXNlckVkaXRlZCgpOworICAg
IHJldHVybiByZW5kZXJlciAmJiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bCo+KHJlbmRlcmVyKS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CiB9CiAKIEBlbmQKSW5kZXg6
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHJldmlzaW9uIDUwODQ1KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjU1LDExICsyNjU1LDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZv
Y3VzZWROb2RlKFBhc3NSZWZQdHIKICAgICAgICAgICAgICAgICAKICAgICAgICAgLy8gRGlzcGF0
Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIHRleHQgZmllbGRzIG9yIHRleHRhcmVhcyB0aGF0IGhhdmUg
YmVlbiBlZGl0ZWQKICAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gb2xkRm9jdXNlZE5vZGUtPnJl
bmRlcmVyKCk7Ci0gICAgICAgIGlmIChyICYmIHItPmlzVGV4dENvbnRyb2woKSAmJiB0b1JlbmRl
clRleHRDb250cm9sKHIpLT5pc0VkaXRlZCgpKSB7CisgICAgICAgIGlmIChyICYmIHItPmlzVGV4
dENvbnRyb2woKSAmJiB0b1JlbmRlclRleHRDb250cm9sKHIpLT53YXNDaGFuZ2VkU2luY2VMYXN0
Q2hhbmdlRXZlbnQoKSkgewogICAgICAgICAgICAgb2xkRm9jdXNlZE5vZGUtPmRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7
CiAgICAgICAgICAgICByID0gb2xkRm9jdXNlZE5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgICAg
ICBpZiAociAmJiByLT5pc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICAgICAgdG9SZW5kZXJU
ZXh0Q29udHJvbChyKS0+c2V0RWRpdGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0b1JlbmRl
clRleHRDb250cm9sKHIpLT5zZXRDaGFuZ2VkU2luY2VMYXN0Q2hhbmdlRXZlbnQoZmFsc2UpOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGJsdXIgZXZlbnQgYW5kIGxldCB0
aGUgbm9kZSBkbyBhbnkgb3RoZXIgYmx1ciByZWxhdGVkIGFjdGl2aXRpZXMgKGltcG9ydGFudCBm
b3IgdGV4dCBmaWVsZHMpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lv
biA1MDg0NSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU0MiwxMiArMTU0MiwxMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsCiAgICAgICAgIH0KICAgICAgICAgLy8gRmlyZSBvbkNoYW5nZSBmb3IgdGV4
dCBmaWVsZHMuCiAgICAgICAgIFJlbmRlck9iamVjdCogciA9IHJlbmRlcmVyKCk7Ci0gICAgICAg
IGlmIChyICYmIHItPmlzVGV4dEZpZWxkKCkgJiYgdG9SZW5kZXJUZXh0Q29udHJvbChyKS0+aXNF
ZGl0ZWQoKSkgeworICAgICAgICBpZiAociAmJiByLT5pc1RleHRGaWVsZCgpICYmIHRvUmVuZGVy
VGV4dENvbnRyb2wociktPndhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCgpKSB7CiAgICAg
ICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKICAgICAgICAgICAgIC8v
IFJlZmV0Y2ggdGhlIHJlbmRlcmVyIHNpbmNlIGFyYml0cmFyeSBKUyBjb2RlIHJ1biBkdXJpbmcg
b25jaGFuZ2UgY2FuIGRvIGFueXRoaW5nLCBpbmNsdWRpbmcgZGVzdHJveWluZyBpdC4KICAgICAg
ICAgICAgIHIgPSByZW5kZXJlcigpOwogICAgICAgICAgICAgaWYgKHIgJiYgci0+aXNUZXh0Rmll
bGQoKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlclRleHRDb250cm9sKHIpLT5zZXRFZGl0ZWQo
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRvUmVuZGVyVGV4dENvbnRyb2wociktPnNldENoYW5n
ZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChmYWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWZQ
dHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbiA9IGZvcm0oKTsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDUwODQ1KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw4ICs3MCw4IEBAIHN0YXRpYyBDb2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25zdCBDb2wK
IFJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbChOb2RlKiBub2RlLCBib29sIHBs
YWNlaG9sZGVyVmlzaWJsZSkKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiAgICAgLCBtX3BsYWNl
aG9sZGVyVmlzaWJsZShwbGFjZWhvbGRlclZpc2libGUpCi0gICAgLCBtX2VkaXRlZChmYWxzZSkK
LSAgICAsIG1fdXNlckVkaXRlZChmYWxzZSkKKyAgICAsIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENo
YW5nZUV2ZW50KGZhbHNlKQorICAgICwgbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQoZmFsc2UpCiB7
CiB9CiAKQEAgLTE5NSwxNyArMTk1LDE3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNldElu
bmVyVGV4dFZhbHUKICAgICAgICAgICAgIEFTU0VSVCghZWMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gV2Ugc2V0IG1fdXNlckVkaXRlZCB0byBmYWxzZSBzaW5jZSB0aGlzIGNoYW5nZSB3YXMg
bm90IGV4cGxpY3R5IG1hZGUgYnkgdGhlIHVzZXIgKHNheSwgdmlhIHR5cGluZyBvbiB0aGUga2V5
Ym9hcmQpLCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzUzNTk5MjE+LgotICAgICAgICBtX3VzZXJFZGl0
ZWQgPSBmYWxzZTsKKyAgICAgICAgLy8gV2Ugc2V0IG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0IHRv
IGZhbHNlIHNpbmNlIHRoaXMgY2hhbmdlIHdhcyBub3QgZXhwbGljdHkgbWFkZSBieSB0aGUgdXNl
ciAoc2F5LCB2aWEgdHlwaW5nIG9uIHRoZSBrZXlib2FyZCksIHNlZSA8cmRhcjovL3Byb2JsZW0v
NTM1OTkyMT4uCisgICAgICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0gZmFsc2U7CiAgICAg
fQogCiAgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNldEZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNl
dFVzZXJFZGl0ZWQoYm9vbCBpc1VzZXJFZGl0ZWQpCit2b2lkIFJlbmRlclRleHRDb250cm9sOjpz
ZXRMYXN0Q2hhbmdlV2FzVXNlckVkaXQoYm9vbCBsYXN0Q2hhbmdlV2FzVXNlckVkaXQpCiB7Ci0g
ICAgbV91c2VyRWRpdGVkID0gaXNVc2VyRWRpdGVkOwotICAgIGRvY3VtZW50KCktPnNldElnbm9y
ZUF1dG9mb2N1cyhpc1VzZXJFZGl0ZWQpOworICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0g
bGFzdENoYW5nZVdhc1VzZXJFZGl0OworICAgIGRvY3VtZW50KCktPnNldElnbm9yZUF1dG9mb2N1
cyhsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOwogfQogCiBpbnQgUmVuZGVyVGV4dENvbnRyb2w6OnNl
bGVjdGlvblN0YXJ0KCkKQEAgLTMxMiw4ICszMTIsOCBAQCBpbnQgUmVuZGVyVGV4dENvbnRyb2w6
OmluZGV4Rm9yVmlzaWJsZVBvCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnN1YnRyZWVIYXND
aGFuZ2VkKCkKIHsKLSAgICBtX2VkaXRlZCA9IHRydWU7Ci0gICAgbV91c2VyRWRpdGVkID0gdHJ1
ZTsKKyAgICBtX3dhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCA9IHRydWU7CisgICAgbV9s
YXN0Q2hhbmdlV2FzVXNlckVkaXQgPSB0cnVlOwogfQogCiBTdHJpbmcgUmVuZGVyVGV4dENvbnRy
b2w6OmZpbmlzaFRleHQoVmVjdG9yPFVDaGFyPiYgcmVzdWx0KSBjb25zdApJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCShyZXZpc2lvbiA1MDg0NSkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICsz
NCwxMSBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbCA6IHB1YmxpYyBSZW5kZXJCCiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2woKTsKIAotICAgIGJvb2wgaXNFZGl0ZWQo
KSBjb25zdCB7IHJldHVybiBtX2VkaXRlZDsgfQotICAgIHZvaWQgc2V0RWRpdGVkKGJvb2wgaXNF
ZGl0ZWQpIHsgbV9lZGl0ZWQgPSBpc0VkaXRlZDsgfQorICAgIGJvb2wgd2FzQ2hhbmdlZFNpbmNl
TGFzdENoYW5nZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV93YXNDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQ7IH0KKyAgICB2b2lkIHNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChib29s
IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCkgeyBtX3dhc0NoYW5nZWRTaW5jZUxhc3RD
aGFuZ2VFdmVudCA9IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsgfQogCi0gICAgYm9v
bCBpc1VzZXJFZGl0ZWQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJFZGl0ZWQ7IH0KLSAgICB2b2lk
IHNldFVzZXJFZGl0ZWQoYm9vbCBpc1VzZXJFZGl0ZWQpOworICAgIGJvb2wgbGFzdENoYW5nZVdh
c1VzZXJFZGl0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQ7IH0KKyAg
ICB2b2lkIHNldExhc3RDaGFuZ2VXYXNVc2VyRWRpdChib29sIGxhc3RDaGFuZ2VXYXNVc2VyRWRp
dCk7CiAKICAgICBpbnQgc2VsZWN0aW9uU3RhcnQoKTsKICAgICBpbnQgc2VsZWN0aW9uRW5kKCk7
CkBAIC0xMDUsOCArMTA1LDggQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBmaW5pc2hUZXh0KFZl
Y3RvcjxVQ2hhcj4mKSBjb25zdDsKIAotICAgIGJvb2wgbV9lZGl0ZWQ7Ci0gICAgYm9vbCBtX3Vz
ZXJFZGl0ZWQ7CisgICAgYm9vbCBtX3dhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsKKyAg
ICBib29sIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0OwogICAgIFJlZlB0cjxUZXh0Q29udHJvbElu
bmVyVGV4dEVsZW1lbnQ+IG1faW5uZXJUZXh0OwogfTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCShyZXZpc2lvbiA1MDg0
NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6aGlkZVBvCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpz
dWJ0cmVlSGFzQ2hhbmdlZCgpCiB7Ci0gICAgYm9vbCB3YXNFZGl0ZWQgPSBpc0VkaXRlZCgpOwor
ICAgIGJvb2wgd2FzQ2hhbmdlZCA9IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCgpOwog
ICAgIFJlbmRlclRleHRDb250cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpOwogCiAgICAgSW5wdXRF
bGVtZW50KiBpbnB1dCA9IGlucHV0RWxlbWVudCgpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmUKICAgICBpZiAoaW5wdXQtPnNlYXJj
aEV2ZW50c1Nob3VsZEJlRGlzcGF0Y2hlZCgpKQogICAgICAgICBzdGFydFNlYXJjaEV2ZW50VGlt
ZXIoKTsKIAotICAgIGlmICghd2FzRWRpdGVkICYmIG5vZGUoKS0+Zm9jdXNlZCgpKSB7CisgICAg
aWYgKCF3YXNDaGFuZ2VkICYmIG5vZGUoKS0+Zm9jdXNlZCgpKSB7CiAgICAgICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICAgICAgZnJhbWUtPnRleHRG
aWVsZERpZEJlZ2luRWRpdGluZyhzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAg
fQpJbmRleDogV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MDg0NSkKKysrIFdlYkNv
cmUvd21sL1dNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCwxMyArMjgw
LDEzIEBAIHZvaWQgV01MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGUKICAgICBpZiAo
Y2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbikgewogICAgICAgICAvLyBGaXJlIG9uQ2hhbmdlIGZvciB0
ZXh0IGZpZWxkcy4KICAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gcmVuZGVyZXIoKTsKLSAgICAg
ICAgaWYgKHIgJiYgdG9SZW5kZXJUZXh0Q29udHJvbChyKS0+aXNFZGl0ZWQoKSkgeworICAgICAg
ICBpZiAociAmJiB0b1JlbmRlclRleHRDb250cm9sKHIpLT53YXNDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQoKSkgewogICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChldmVudE5hbWVzKCkuY2hh
bmdlRXZlbnQsIHRydWUsIGZhbHNlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gUmVm
ZXRjaCB0aGUgcmVuZGVyZXIgc2luY2UgYXJiaXRyYXJ5IEpTIGNvZGUgcnVuIGR1cmluZyBvbmNo
YW5nZSBjYW4gZG8gYW55dGhpbmcsIGluY2x1ZGluZyBkZXN0cm95aW5nIGl0LgogICAgICAgICAg
ICAgciA9IHJlbmRlcmVyKCk7CiAgICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICB0
b1JlbmRlclRleHRDb250cm9sKHIpLT5zZXRFZGl0ZWQoZmFsc2UpOworICAgICAgICAgICAgICAg
IHRvUmVuZGVyVGV4dENvbnRyb2wociktPnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChm
YWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cg==
</data>
<flag name="commit-queue"
          id="24788"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43256</attachid>
            <date>2009-11-15 16:34:08 -0800</date>
            <delta_ts>2009-11-15 17:13:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug31186_winfix_1.patch</filename>
            <type>text/plain</type>
            <size>13669</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTAwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTEtMTUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE4NgorCisgICAgICAgIFJl
bmFtZXMgUmVuZGVyVGV4dENvbnRyb2w6Om1fZWRpdGVkIGFuZCBSZW5kZXJUZXh0Q29udHJvbDo6
bV91c2VyRWRpdGVkIHRvCisgICAgICAgIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50
IGFuZCBtX2xhc3RDaGFuZ2VXYXNVc2VyRWRpdCwgcmVzcGVjdGl2ZWx5LgorICAgICAgICBUaGVz
ZSBhcmUgbW9yZSBkZXNjcmlwdGl2ZSBuYW1lcyBzbyBhcyB0byBjbGVhciBhbiBhbWJpZ3VpdHkg
c3Vycm91bmRpbmcKKyAgICAgICAgdGhlaXIgdXNhZ2UuIEFsc28sIHJlbmFtZXMgYXNzb2NpYXRl
ZCBzZXR0ZXJzIGFuZCBnZXR0ZXJzIHNvIHRoYXQgdGhleQorICAgICAgICBjb2luY2lkZSB3aXRo
IHRoZSByZW5hbWVkIGZpZWxkcy4KKworICAgICAgICBObyBmdW5jdGlvbmFsaXR5IHdhcyBjaGFu
Z2VkLiBTbywgbm8gdGVzdHMgd2VyZSBpbmNsdWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSFRNTC5tbToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxlbWVudCBfaXNFZGl0ZWRd
KToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBfaXNFZGl0ZWRdKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZv
Y3VzZWROb2RlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldExhc3RDaGFuZ2VXYXNVc2VyRWRpdCk6IEZvcm1lcmx5
IG5hbWVkIHNldFVzZXJFZGl0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bDo6c3VidHJlZUhhc0NoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Ondhc0NoYW5nZWRT
aW5jZUxhc3RDaGFuZ2VFdmVudCk6IEZvcm1lcmx5IG5hbWVkIGlzRWRpdGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVu
dCk6IEZvcm1lcmx5IG5hbWVkIHNldEVkaXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sOjpsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOiBGb3JtZXJseSBuYW1lZCBzZXRVc2Vy
RWRpdGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0
cmVlSGFzQ2hhbmdlZCk6CisgICAgICAgICogd21sL1dNTElucHV0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorCiAy
MDA5LTExLTE1ICBEYXZlIFRhcHVza2EgIDxkdGFwdXNrYUByaW0uY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEdlb3JnZSBTdGFpa29zLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0J
KHJldmlzaW9uIDUwODg5KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNyBAQAogLSAoQk9PTClfaXNFZGl0ZWQKIHsKICAg
ICBXZWJDb3JlOjpSZW5kZXJPYmplY3QgKnJlbmRlcmVyID0gY29yZShzZWxmKS0+cmVuZGVyZXIo
KTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgW3NlbGYgX2lzVGV4dEZpZWxkXSAmJiBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbCAqPihyZW5kZXJlciktPmlzVXNlckVkaXRl
ZCgpOworICAgIHJldHVybiByZW5kZXJlciAmJiBbc2VsZiBfaXNUZXh0RmllbGRdICYmIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sICo+KHJlbmRlcmVyKS0+bGFzdENoYW5n
ZVdhc1VzZXJFZGl0KCk7CiB9CiAKIEBlbmQKQEAgLTE3Nyw3ICsxNzcsNyBAQAogLSAoQk9PTClf
aXNFZGl0ZWQKIHsKICAgICBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZShz
ZWxmKS0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlciktPmlzVXNlckVkaXRlZCgpOworICAg
IHJldHVybiByZW5kZXJlciAmJiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bCo+KHJlbmRlcmVyKS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CiB9CiAKIEBlbmQKSW5kZXg6
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHJldmlzaW9uIDUwODg5KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjU1LDExICsyNjU1LDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZv
Y3VzZWROb2RlKFBhc3NSZWZQdHIKICAgICAgICAgICAgICAgICAKICAgICAgICAgLy8gRGlzcGF0
Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIHRleHQgZmllbGRzIG9yIHRleHRhcmVhcyB0aGF0IGhhdmUg
YmVlbiBlZGl0ZWQKICAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gb2xkRm9jdXNlZE5vZGUtPnJl
bmRlcmVyKCk7Ci0gICAgICAgIGlmIChyICYmIHItPmlzVGV4dENvbnRyb2woKSAmJiB0b1JlbmRl
clRleHRDb250cm9sKHIpLT5pc0VkaXRlZCgpKSB7CisgICAgICAgIGlmIChyICYmIHItPmlzVGV4
dENvbnRyb2woKSAmJiB0b1JlbmRlclRleHRDb250cm9sKHIpLT53YXNDaGFuZ2VkU2luY2VMYXN0
Q2hhbmdlRXZlbnQoKSkgewogICAgICAgICAgICAgb2xkRm9jdXNlZE5vZGUtPmRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7
CiAgICAgICAgICAgICByID0gb2xkRm9jdXNlZE5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgICAg
ICBpZiAociAmJiByLT5pc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICAgICAgdG9SZW5kZXJU
ZXh0Q29udHJvbChyKS0+c2V0RWRpdGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0b1JlbmRl
clRleHRDb250cm9sKHIpLT5zZXRDaGFuZ2VkU2luY2VMYXN0Q2hhbmdlRXZlbnQoZmFsc2UpOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGJsdXIgZXZlbnQgYW5kIGxldCB0
aGUgbm9kZSBkbyBhbnkgb3RoZXIgYmx1ciByZWxhdGVkIGFjdGl2aXRpZXMgKGltcG9ydGFudCBm
b3IgdGV4dCBmaWVsZHMpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lv
biA1MDg4OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU0MiwxMiArMTU0MiwxMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsCiAgICAgICAgIH0KICAgICAgICAgLy8gRmlyZSBvbkNoYW5nZSBmb3IgdGV4
dCBmaWVsZHMuCiAgICAgICAgIFJlbmRlck9iamVjdCogciA9IHJlbmRlcmVyKCk7Ci0gICAgICAg
IGlmIChyICYmIHItPmlzVGV4dEZpZWxkKCkgJiYgdG9SZW5kZXJUZXh0Q29udHJvbChyKS0+aXNF
ZGl0ZWQoKSkgeworICAgICAgICBpZiAociAmJiByLT5pc1RleHRGaWVsZCgpICYmIHRvUmVuZGVy
VGV4dENvbnRyb2wociktPndhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCgpKSB7CiAgICAg
ICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKICAgICAgICAgICAgIC8v
IFJlZmV0Y2ggdGhlIHJlbmRlcmVyIHNpbmNlIGFyYml0cmFyeSBKUyBjb2RlIHJ1biBkdXJpbmcg
b25jaGFuZ2UgY2FuIGRvIGFueXRoaW5nLCBpbmNsdWRpbmcgZGVzdHJveWluZyBpdC4KICAgICAg
ICAgICAgIHIgPSByZW5kZXJlcigpOwogICAgICAgICAgICAgaWYgKHIgJiYgci0+aXNUZXh0Rmll
bGQoKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlclRleHRDb250cm9sKHIpLT5zZXRFZGl0ZWQo
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRvUmVuZGVyVGV4dENvbnRyb2wociktPnNldENoYW5n
ZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChmYWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWZQ
dHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbiA9IGZvcm0oKTsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDUwODg5KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw4ICs3MCw4IEBAIHN0YXRpYyBDb2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25zdCBDb2wK
IFJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbChOb2RlKiBub2RlLCBib29sIHBs
YWNlaG9sZGVyVmlzaWJsZSkKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiAgICAgLCBtX3BsYWNl
aG9sZGVyVmlzaWJsZShwbGFjZWhvbGRlclZpc2libGUpCi0gICAgLCBtX2VkaXRlZChmYWxzZSkK
LSAgICAsIG1fdXNlckVkaXRlZChmYWxzZSkKKyAgICAsIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENo
YW5nZUV2ZW50KGZhbHNlKQorICAgICwgbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQoZmFsc2UpCiB7
CiB9CiAKQEAgLTE5NSwxNyArMTk1LDE3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNldElu
bmVyVGV4dFZhbHUKICAgICAgICAgICAgIEFTU0VSVCghZWMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gV2Ugc2V0IG1fdXNlckVkaXRlZCB0byBmYWxzZSBzaW5jZSB0aGlzIGNoYW5nZSB3YXMg
bm90IGV4cGxpY3R5IG1hZGUgYnkgdGhlIHVzZXIgKHNheSwgdmlhIHR5cGluZyBvbiB0aGUga2V5
Ym9hcmQpLCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzUzNTk5MjE+LgotICAgICAgICBtX3VzZXJFZGl0
ZWQgPSBmYWxzZTsKKyAgICAgICAgLy8gV2Ugc2V0IG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0IHRv
IGZhbHNlIHNpbmNlIHRoaXMgY2hhbmdlIHdhcyBub3QgZXhwbGljdHkgbWFkZSBieSB0aGUgdXNl
ciAoc2F5LCB2aWEgdHlwaW5nIG9uIHRoZSBrZXlib2FyZCksIHNlZSA8cmRhcjovL3Byb2JsZW0v
NTM1OTkyMT4uCisgICAgICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0gZmFsc2U7CiAgICAg
fQogCiAgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNldEZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNl
dFVzZXJFZGl0ZWQoYm9vbCBpc1VzZXJFZGl0ZWQpCit2b2lkIFJlbmRlclRleHRDb250cm9sOjpz
ZXRMYXN0Q2hhbmdlV2FzVXNlckVkaXQoYm9vbCBsYXN0Q2hhbmdlV2FzVXNlckVkaXQpCiB7Ci0g
ICAgbV91c2VyRWRpdGVkID0gaXNVc2VyRWRpdGVkOwotICAgIGRvY3VtZW50KCktPnNldElnbm9y
ZUF1dG9mb2N1cyhpc1VzZXJFZGl0ZWQpOworICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0g
bGFzdENoYW5nZVdhc1VzZXJFZGl0OworICAgIGRvY3VtZW50KCktPnNldElnbm9yZUF1dG9mb2N1
cyhsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOwogfQogCiBpbnQgUmVuZGVyVGV4dENvbnRyb2w6OnNl
bGVjdGlvblN0YXJ0KCkKQEAgLTMxMiw4ICszMTIsOCBAQCBpbnQgUmVuZGVyVGV4dENvbnRyb2w6
OmluZGV4Rm9yVmlzaWJsZVBvCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnN1YnRyZWVIYXND
aGFuZ2VkKCkKIHsKLSAgICBtX2VkaXRlZCA9IHRydWU7Ci0gICAgbV91c2VyRWRpdGVkID0gdHJ1
ZTsKKyAgICBtX3dhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCA9IHRydWU7CisgICAgbV9s
YXN0Q2hhbmdlV2FzVXNlckVkaXQgPSB0cnVlOwogfQogCiBTdHJpbmcgUmVuZGVyVGV4dENvbnRy
b2w6OmZpbmlzaFRleHQoVmVjdG9yPFVDaGFyPiYgcmVzdWx0KSBjb25zdApJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCShyZXZpc2lvbiA1MDg4OSkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICsz
NCwxMSBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbCA6IHB1YmxpYyBSZW5kZXJCCiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2woKTsKIAotICAgIGJvb2wgaXNFZGl0ZWQo
KSBjb25zdCB7IHJldHVybiBtX2VkaXRlZDsgfQotICAgIHZvaWQgc2V0RWRpdGVkKGJvb2wgaXNF
ZGl0ZWQpIHsgbV9lZGl0ZWQgPSBpc0VkaXRlZDsgfQorICAgIGJvb2wgd2FzQ2hhbmdlZFNpbmNl
TGFzdENoYW5nZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV93YXNDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQ7IH0KKyAgICB2b2lkIHNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChib29s
IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCkgeyBtX3dhc0NoYW5nZWRTaW5jZUxhc3RD
aGFuZ2VFdmVudCA9IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsgfQogCi0gICAgYm9v
bCBpc1VzZXJFZGl0ZWQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJFZGl0ZWQ7IH0KLSAgICB2b2lk
IHNldFVzZXJFZGl0ZWQoYm9vbCBpc1VzZXJFZGl0ZWQpOworICAgIGJvb2wgbGFzdENoYW5nZVdh
c1VzZXJFZGl0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQ7IH0KKyAg
ICB2b2lkIHNldExhc3RDaGFuZ2VXYXNVc2VyRWRpdChib29sIGxhc3RDaGFuZ2VXYXNVc2VyRWRp
dCk7CiAKICAgICBpbnQgc2VsZWN0aW9uU3RhcnQoKTsKICAgICBpbnQgc2VsZWN0aW9uRW5kKCk7
CkBAIC0xMDUsOCArMTA1LDggQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBmaW5pc2hUZXh0KFZl
Y3RvcjxVQ2hhcj4mKSBjb25zdDsKIAotICAgIGJvb2wgbV9lZGl0ZWQ7Ci0gICAgYm9vbCBtX3Vz
ZXJFZGl0ZWQ7CisgICAgYm9vbCBtX3dhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsKKyAg
ICBib29sIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0OwogICAgIFJlZlB0cjxUZXh0Q29udHJvbElu
bmVyVGV4dEVsZW1lbnQ+IG1faW5uZXJUZXh0OwogfTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCShyZXZpc2lvbiA1MDg4
OSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6aGlkZVBvCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpz
dWJ0cmVlSGFzQ2hhbmdlZCgpCiB7Ci0gICAgYm9vbCB3YXNFZGl0ZWQgPSBpc0VkaXRlZCgpOwor
ICAgIGJvb2wgd2FzQ2hhbmdlZCA9IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCgpOwog
ICAgIFJlbmRlclRleHRDb250cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpOwogCiAgICAgSW5wdXRF
bGVtZW50KiBpbnB1dCA9IGlucHV0RWxlbWVudCgpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmUKICAgICBpZiAoaW5wdXQtPnNlYXJj
aEV2ZW50c1Nob3VsZEJlRGlzcGF0Y2hlZCgpKQogICAgICAgICBzdGFydFNlYXJjaEV2ZW50VGlt
ZXIoKTsKIAotICAgIGlmICghd2FzRWRpdGVkICYmIG5vZGUoKS0+Zm9jdXNlZCgpKSB7CisgICAg
aWYgKCF3YXNDaGFuZ2VkICYmIG5vZGUoKS0+Zm9jdXNlZCgpKSB7CiAgICAgICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICAgICAgZnJhbWUtPnRleHRG
aWVsZERpZEJlZ2luRWRpdGluZyhzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAg
fQpJbmRleDogV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MDg4OSkKKysrIFdlYkNv
cmUvd21sL1dNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCwxMyArMjgw
LDEzIEBAIHZvaWQgV01MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGUKICAgICBpZiAo
Y2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbikgewogICAgICAgICAvLyBGaXJlIG9uQ2hhbmdlIGZvciB0
ZXh0IGZpZWxkcy4KICAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gcmVuZGVyZXIoKTsKLSAgICAg
ICAgaWYgKHIgJiYgdG9SZW5kZXJUZXh0Q29udHJvbChyKS0+aXNFZGl0ZWQoKSkgeworICAgICAg
ICBpZiAociAmJiB0b1JlbmRlclRleHRDb250cm9sKHIpLT53YXNDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQoKSkgewogICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChldmVudE5hbWVzKCkuY2hh
bmdlRXZlbnQsIHRydWUsIGZhbHNlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gUmVm
ZXRjaCB0aGUgcmVuZGVyZXIgc2luY2UgYXJiaXRyYXJ5IEpTIGNvZGUgcnVuIGR1cmluZyBvbmNo
YW5nZSBjYW4gZG8gYW55dGhpbmcsIGluY2x1ZGluZyBkZXN0cm95aW5nIGl0LgogICAgICAgICAg
ICAgciA9IHJlbmRlcmVyKCk7CiAgICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICB0
b1JlbmRlclRleHRDb250cm9sKHIpLT5zZXRFZGl0ZWQoZmFsc2UpOworICAgICAgICAgICAgICAg
IHRvUmVuZGVyVGV4dENvbnRyb2wociktPnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChm
YWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cklu
ZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTEwMDYpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA5LTExLTE1ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzExODYKKworICAg
ICAgICBSZW5hbWVzIFdpbmRvd3Mtc3BlY2lmaWMgbWV0aG9kcyB0byBjb25mb3JtIHRvIHJlbmFt
aW5nIG9mIFJlbmRlclRleHRDb250cm9sOjppc1VzZXJFZGl0ZWQuCisKKyAgICAgICAgKiBET01I
VE1MQ2xhc3Nlcy5jcHA6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50OjpsYXN0Q2hhbmdl
V2FzVXNlckVkaXQpOiBGb3JtZXJseSBuYW1lZCBpc1VzZXJFZGl0ZWQuCisgICAgICAgIChET01I
VE1MVGV4dEFyZWFFbGVtZW50OjpsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOiBEaXR0by4KKyAgICAg
ICAgKiBET01IVE1MQ2xhc3Nlcy5oOgorICAgICAgICAqIEludGVyZmFjZXMvRE9NUHJpdmF0ZS5p
ZGw6CisKIDIwMDktMTEtMTMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEJ1aWxkIGZpeApJbmRleDogV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAJKHJldmlzaW9uIDUwODg5KQor
KysgV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNzIs
NyArMTI3Miw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWwKIAog
Ly8gRE9NSFRNTElucHV0RWxlbWVudCAtLSBJRm9ybVByb21wdEFkZGl0aW9ucyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBE
T01IVE1MSW5wdXRFbGVtZW50Ojppc1VzZXJFZGl0ZWQoIAorSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBET01IVE1MSW5wdXRFbGVtZW50OjpsYXN0Q2hhbmdlV2FzVXNlckVkaXQoIAogICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gQk9PTCAqcmVzdWx0KQogewogICAgIGlmICghcmVzdWx0KQpAQCAt
MTI4NCw3ICsxMjg0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRF
bAogICAgIGlmIChGQUlMRUQoaXNUZXh0RmllbGQoJnRleHRGaWVsZCkpIHx8ICF0ZXh0RmllbGQp
CiAgICAgICAgIHJldHVybiBTX09LOwogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX2Vs
ZW1lbnQtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRlcmVyICYmIHRvUmVuZGVyVGV4dENvbnRy
b2wocmVuZGVyZXIpLT5pc1VzZXJFZGl0ZWQoKSkKKyAgICBpZiAocmVuZGVyZXIgJiYgdG9SZW5k
ZXJUZXh0Q29udHJvbChyZW5kZXJlciktPmxhc3RDaGFuZ2VXYXNVc2VyRWRpdCgpKQogICAgICAg
ICAqcmVzdWx0ID0gVFJVRTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTE0NzIsNyArMTQ3Miw3
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTFRleHRBcmUKIAogLy8gRE9NSFRN
TFRleHRBcmVhRWxlbWVudCAtLSBJRm9ybVByb21wdEFkZGl0aW9ucyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1M
VGV4dEFyZWFFbGVtZW50Ojppc1VzZXJFZGl0ZWQoIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBET01IVE1MVGV4dEFyZWFFbGVtZW50OjpsYXN0Q2hhbmdlV2FzVXNlckVkaXQoIAogICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gQk9PTCAqcmVzdWx0KQogewogICAgIGlmICghcmVzdWx0KQpAQCAt
MTQ4MSw3ICsxNDgxLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MVGV4dEFy
ZQogICAgICpyZXN1bHQgPSBGQUxTRTsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKICAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gbV9lbGVtZW50LT5yZW5kZXJlcigpOwotICAgIGlmIChyZW5k
ZXJlciAmJiB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKS0+aXNVc2VyRWRpdGVkKCkpCisg
ICAgaWYgKHJlbmRlcmVyICYmIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIpLT5sYXN0Q2hh
bmdlV2FzVXNlckVkaXQoKSkKICAgICAgICAgKnJlc3VsdCA9IFRSVUU7CiAgICAgcmV0dXJuIFNf
T0s7CiB9CkluZGV4OiBXZWJLaXQvd2luL0RPTUhUTUxDbGFzc2VzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5oCShyZXZpc2lvbiA1MDg4OSkKKysrIFdlYktpdC93
aW4vRE9NSFRNTENsYXNzZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxMiw3ICsyMDEyLDcgQEAg
cHVibGljOgogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmlsbGVkKTsKIAogICAgIC8vIElGb3Jt
UHJvbXB0QWRkaXRpb25zCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlz
VXNlckVkaXRlZCggCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGxhc3RD
aGFuZ2VXYXNVc2VyRWRpdCggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCAqcmVz
dWx0KTsKIH07CiAKQEAgLTIzMzcsNyArMjMzNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2VsZWN0KCB2b2lkKTsKIAogICAgIC8vIElGb3JtUHJv
bXB0QWRkaXRpb25zCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzVXNl
ckVkaXRlZCggCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGxhc3RDaGFu
Z2VXYXNVc2VyRWRpdCggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCAqcmVzdWx0
KTsKIH07CiAKSW5kZXg6IFdlYktpdC93aW4vSW50ZXJmYWNlcy9ET01Qcml2YXRlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvd2luL0ludGVyZmFjZXMvRE9NUHJpdmF0ZS5pZGwJKHJldmlzaW9u
IDUwODg5KQorKysgV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0RPTVByaXZhdGUuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAgaW50ZXJmYWNlIElGb3Jtc0F1dG9GaWxsVHJhbnNp
dGlvbiA6IElVbgogaW50ZXJmYWNlIElGb3JtUHJvbXB0QWRkaXRpb25zIDogSVVua25vd24KIHsK
ICAgICAvKgotICAgICAgICAtIChCT09MKV9pc1VzZXJFZGl0ZWQ7CisgICAgICAgIC0gKEJPT0wp
X2xhc3RDaGFuZ2VXYXNVc2VyRWRpdDsKICAgICAqLwotICAgIEhSRVNVTFQgaXNVc2VyRWRpdGVk
KFtvdXQsIHJldHZhbF0gQk9PTCogcmVzdWx0KTsKKyAgICBIUkVTVUxUIGxhc3RDaGFuZ2VXYXNV
c2VyRWRpdChbb3V0LCByZXR2YWxdIEJPT0wqIHJlc3VsdCk7CiB9CiAKIC8qCg==
</data>
<flag name="review"
          id="24960"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43259</attachid>
            <date>2009-11-15 17:13:19 -0800</date>
            <delta_ts>2009-11-18 15:46:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug31186_winfix_2.patch</filename>
            <type>text/plain</type>
            <size>11562</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTAwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTEtMTUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE4NgorCisgICAgICAgIFJl
bmFtZXMgUmVuZGVyVGV4dENvbnRyb2w6Om1fZWRpdGVkIGFuZCBSZW5kZXJUZXh0Q29udHJvbDo6
bV91c2VyRWRpdGVkIHRvCisgICAgICAgIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50
IGFuZCBtX2xhc3RDaGFuZ2VXYXNVc2VyRWRpdCwgcmVzcGVjdGl2ZWx5LgorICAgICAgICBUaGVz
ZSBhcmUgbW9yZSBkZXNjcmlwdGl2ZSBuYW1lcyBzbyBhcyB0byBjbGVhciBhbiBhbWJpZ3VpdHkg
c3Vycm91bmRpbmcKKyAgICAgICAgdGhlaXIgdXNhZ2UuIEFsc28sIHJlbmFtZXMgYXNzb2NpYXRl
ZCBzZXR0ZXJzIGFuZCBnZXR0ZXJzIHNvIHRoYXQgdGhleQorICAgICAgICBjb2luY2lkZSB3aXRo
IHRoZSByZW5hbWVkIGZpZWxkcy4KKworICAgICAgICBObyBmdW5jdGlvbmFsaXR5IHdhcyBjaGFu
Z2VkLiBTbywgbm8gdGVzdHMgd2VyZSBpbmNsdWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSFRNTC5tbToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxlbWVudCBfaXNFZGl0ZWRd
KToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBfaXNFZGl0ZWRdKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZv
Y3VzZWROb2RlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldExhc3RDaGFuZ2VXYXNVc2VyRWRpdCk6IEZvcm1lcmx5
IG5hbWVkIHNldFVzZXJFZGl0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bDo6c3VidHJlZUhhc0NoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Ondhc0NoYW5nZWRT
aW5jZUxhc3RDaGFuZ2VFdmVudCk6IEZvcm1lcmx5IG5hbWVkIGlzRWRpdGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVu
dCk6IEZvcm1lcmx5IG5hbWVkIHNldEVkaXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sOjpsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOiBGb3JtZXJseSBuYW1lZCBzZXRVc2Vy
RWRpdGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0
cmVlSGFzQ2hhbmdlZCk6CisgICAgICAgICogd21sL1dNTElucHV0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorCiAy
MDA5LTExLTE1ICBEYXZlIFRhcHVza2EgIDxkdGFwdXNrYUByaW0uY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEdlb3JnZSBTdGFpa29zLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0J
KHJldmlzaW9uIDUwODg5KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNyBAQAogLSAoQk9PTClfaXNFZGl0ZWQKIHsKICAg
ICBXZWJDb3JlOjpSZW5kZXJPYmplY3QgKnJlbmRlcmVyID0gY29yZShzZWxmKS0+cmVuZGVyZXIo
KTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgW3NlbGYgX2lzVGV4dEZpZWxkXSAmJiBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbCAqPihyZW5kZXJlciktPmlzVXNlckVkaXRl
ZCgpOworICAgIHJldHVybiByZW5kZXJlciAmJiBbc2VsZiBfaXNUZXh0RmllbGRdICYmIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sICo+KHJlbmRlcmVyKS0+bGFzdENoYW5n
ZVdhc1VzZXJFZGl0KCk7CiB9CiAKIEBlbmQKQEAgLTE3Nyw3ICsxNzcsNyBAQAogLSAoQk9PTClf
aXNFZGl0ZWQKIHsKICAgICBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZShz
ZWxmKS0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlciktPmlzVXNlckVkaXRlZCgpOworICAg
IHJldHVybiByZW5kZXJlciAmJiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bCo+KHJlbmRlcmVyKS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CiB9CiAKIEBlbmQKSW5kZXg6
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHJldmlzaW9uIDUwODg5KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjU1LDExICsyNjU1LDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZv
Y3VzZWROb2RlKFBhc3NSZWZQdHIKICAgICAgICAgICAgICAgICAKICAgICAgICAgLy8gRGlzcGF0
Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIHRleHQgZmllbGRzIG9yIHRleHRhcmVhcyB0aGF0IGhhdmUg
YmVlbiBlZGl0ZWQKICAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gb2xkRm9jdXNlZE5vZGUtPnJl
bmRlcmVyKCk7Ci0gICAgICAgIGlmIChyICYmIHItPmlzVGV4dENvbnRyb2woKSAmJiB0b1JlbmRl
clRleHRDb250cm9sKHIpLT5pc0VkaXRlZCgpKSB7CisgICAgICAgIGlmIChyICYmIHItPmlzVGV4
dENvbnRyb2woKSAmJiB0b1JlbmRlclRleHRDb250cm9sKHIpLT53YXNDaGFuZ2VkU2luY2VMYXN0
Q2hhbmdlRXZlbnQoKSkgewogICAgICAgICAgICAgb2xkRm9jdXNlZE5vZGUtPmRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7
CiAgICAgICAgICAgICByID0gb2xkRm9jdXNlZE5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgICAg
ICBpZiAociAmJiByLT5pc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICAgICAgdG9SZW5kZXJU
ZXh0Q29udHJvbChyKS0+c2V0RWRpdGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0b1JlbmRl
clRleHRDb250cm9sKHIpLT5zZXRDaGFuZ2VkU2luY2VMYXN0Q2hhbmdlRXZlbnQoZmFsc2UpOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGJsdXIgZXZlbnQgYW5kIGxldCB0
aGUgbm9kZSBkbyBhbnkgb3RoZXIgYmx1ciByZWxhdGVkIGFjdGl2aXRpZXMgKGltcG9ydGFudCBm
b3IgdGV4dCBmaWVsZHMpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lv
biA1MDg4OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU0MiwxMiArMTU0MiwxMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsCiAgICAgICAgIH0KICAgICAgICAgLy8gRmlyZSBvbkNoYW5nZSBmb3IgdGV4
dCBmaWVsZHMuCiAgICAgICAgIFJlbmRlck9iamVjdCogciA9IHJlbmRlcmVyKCk7Ci0gICAgICAg
IGlmIChyICYmIHItPmlzVGV4dEZpZWxkKCkgJiYgdG9SZW5kZXJUZXh0Q29udHJvbChyKS0+aXNF
ZGl0ZWQoKSkgeworICAgICAgICBpZiAociAmJiByLT5pc1RleHRGaWVsZCgpICYmIHRvUmVuZGVy
VGV4dENvbnRyb2wociktPndhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCgpKSB7CiAgICAg
ICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKICAgICAgICAgICAgIC8v
IFJlZmV0Y2ggdGhlIHJlbmRlcmVyIHNpbmNlIGFyYml0cmFyeSBKUyBjb2RlIHJ1biBkdXJpbmcg
b25jaGFuZ2UgY2FuIGRvIGFueXRoaW5nLCBpbmNsdWRpbmcgZGVzdHJveWluZyBpdC4KICAgICAg
ICAgICAgIHIgPSByZW5kZXJlcigpOwogICAgICAgICAgICAgaWYgKHIgJiYgci0+aXNUZXh0Rmll
bGQoKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlclRleHRDb250cm9sKHIpLT5zZXRFZGl0ZWQo
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRvUmVuZGVyVGV4dENvbnRyb2wociktPnNldENoYW5n
ZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChmYWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWZQ
dHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbiA9IGZvcm0oKTsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDUwODg5KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw4ICs3MCw4IEBAIHN0YXRpYyBDb2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25zdCBDb2wK
IFJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbChOb2RlKiBub2RlLCBib29sIHBs
YWNlaG9sZGVyVmlzaWJsZSkKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiAgICAgLCBtX3BsYWNl
aG9sZGVyVmlzaWJsZShwbGFjZWhvbGRlclZpc2libGUpCi0gICAgLCBtX2VkaXRlZChmYWxzZSkK
LSAgICAsIG1fdXNlckVkaXRlZChmYWxzZSkKKyAgICAsIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENo
YW5nZUV2ZW50KGZhbHNlKQorICAgICwgbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQoZmFsc2UpCiB7
CiB9CiAKQEAgLTE5NSwxNyArMTk1LDE3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNldElu
bmVyVGV4dFZhbHUKICAgICAgICAgICAgIEFTU0VSVCghZWMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gV2Ugc2V0IG1fdXNlckVkaXRlZCB0byBmYWxzZSBzaW5jZSB0aGlzIGNoYW5nZSB3YXMg
bm90IGV4cGxpY3R5IG1hZGUgYnkgdGhlIHVzZXIgKHNheSwgdmlhIHR5cGluZyBvbiB0aGUga2V5
Ym9hcmQpLCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzUzNTk5MjE+LgotICAgICAgICBtX3VzZXJFZGl0
ZWQgPSBmYWxzZTsKKyAgICAgICAgLy8gV2Ugc2V0IG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0IHRv
IGZhbHNlIHNpbmNlIHRoaXMgY2hhbmdlIHdhcyBub3QgZXhwbGljdHkgbWFkZSBieSB0aGUgdXNl
ciAoc2F5LCB2aWEgdHlwaW5nIG9uIHRoZSBrZXlib2FyZCksIHNlZSA8cmRhcjovL3Byb2JsZW0v
NTM1OTkyMT4uCisgICAgICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0gZmFsc2U7CiAgICAg
fQogCiAgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNldEZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNl
dFVzZXJFZGl0ZWQoYm9vbCBpc1VzZXJFZGl0ZWQpCit2b2lkIFJlbmRlclRleHRDb250cm9sOjpz
ZXRMYXN0Q2hhbmdlV2FzVXNlckVkaXQoYm9vbCBsYXN0Q2hhbmdlV2FzVXNlckVkaXQpCiB7Ci0g
ICAgbV91c2VyRWRpdGVkID0gaXNVc2VyRWRpdGVkOwotICAgIGRvY3VtZW50KCktPnNldElnbm9y
ZUF1dG9mb2N1cyhpc1VzZXJFZGl0ZWQpOworICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0g
bGFzdENoYW5nZVdhc1VzZXJFZGl0OworICAgIGRvY3VtZW50KCktPnNldElnbm9yZUF1dG9mb2N1
cyhsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOwogfQogCiBpbnQgUmVuZGVyVGV4dENvbnRyb2w6OnNl
bGVjdGlvblN0YXJ0KCkKQEAgLTMxMiw4ICszMTIsOCBAQCBpbnQgUmVuZGVyVGV4dENvbnRyb2w6
OmluZGV4Rm9yVmlzaWJsZVBvCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnN1YnRyZWVIYXND
aGFuZ2VkKCkKIHsKLSAgICBtX2VkaXRlZCA9IHRydWU7Ci0gICAgbV91c2VyRWRpdGVkID0gdHJ1
ZTsKKyAgICBtX3dhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCA9IHRydWU7CisgICAgbV9s
YXN0Q2hhbmdlV2FzVXNlckVkaXQgPSB0cnVlOwogfQogCiBTdHJpbmcgUmVuZGVyVGV4dENvbnRy
b2w6OmZpbmlzaFRleHQoVmVjdG9yPFVDaGFyPiYgcmVzdWx0KSBjb25zdApJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCShyZXZpc2lvbiA1MDg4OSkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICsz
NCwxMSBAQCBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbCA6IHB1YmxpYyBSZW5kZXJCCiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2woKTsKIAotICAgIGJvb2wgaXNFZGl0ZWQo
KSBjb25zdCB7IHJldHVybiBtX2VkaXRlZDsgfQotICAgIHZvaWQgc2V0RWRpdGVkKGJvb2wgaXNF
ZGl0ZWQpIHsgbV9lZGl0ZWQgPSBpc0VkaXRlZDsgfQorICAgIGJvb2wgd2FzQ2hhbmdlZFNpbmNl
TGFzdENoYW5nZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV93YXNDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQ7IH0KKyAgICB2b2lkIHNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChib29s
IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCkgeyBtX3dhc0NoYW5nZWRTaW5jZUxhc3RD
aGFuZ2VFdmVudCA9IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsgfQogCi0gICAgYm9v
bCBpc1VzZXJFZGl0ZWQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJFZGl0ZWQ7IH0KLSAgICB2b2lk
IHNldFVzZXJFZGl0ZWQoYm9vbCBpc1VzZXJFZGl0ZWQpOworICAgIGJvb2wgbGFzdENoYW5nZVdh
c1VzZXJFZGl0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQ7IH0KKyAg
ICB2b2lkIHNldExhc3RDaGFuZ2VXYXNVc2VyRWRpdChib29sIGxhc3RDaGFuZ2VXYXNVc2VyRWRp
dCk7CiAKICAgICBpbnQgc2VsZWN0aW9uU3RhcnQoKTsKICAgICBpbnQgc2VsZWN0aW9uRW5kKCk7
CkBAIC0xMDUsOCArMTA1LDggQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBmaW5pc2hUZXh0KFZl
Y3RvcjxVQ2hhcj4mKSBjb25zdDsKIAotICAgIGJvb2wgbV9lZGl0ZWQ7Ci0gICAgYm9vbCBtX3Vz
ZXJFZGl0ZWQ7CisgICAgYm9vbCBtX3dhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsKKyAg
ICBib29sIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0OwogICAgIFJlZlB0cjxUZXh0Q29udHJvbElu
bmVyVGV4dEVsZW1lbnQ+IG1faW5uZXJUZXh0OwogfTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCShyZXZpc2lvbiA1MDg4
OSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6aGlkZVBvCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpz
dWJ0cmVlSGFzQ2hhbmdlZCgpCiB7Ci0gICAgYm9vbCB3YXNFZGl0ZWQgPSBpc0VkaXRlZCgpOwor
ICAgIGJvb2wgd2FzQ2hhbmdlZCA9IHdhc0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCgpOwog
ICAgIFJlbmRlclRleHRDb250cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpOwogCiAgICAgSW5wdXRF
bGVtZW50KiBpbnB1dCA9IGlucHV0RWxlbWVudCgpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmUKICAgICBpZiAoaW5wdXQtPnNlYXJj
aEV2ZW50c1Nob3VsZEJlRGlzcGF0Y2hlZCgpKQogICAgICAgICBzdGFydFNlYXJjaEV2ZW50VGlt
ZXIoKTsKIAotICAgIGlmICghd2FzRWRpdGVkICYmIG5vZGUoKS0+Zm9jdXNlZCgpKSB7CisgICAg
aWYgKCF3YXNDaGFuZ2VkICYmIG5vZGUoKS0+Zm9jdXNlZCgpKSB7CiAgICAgICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICAgICAgZnJhbWUtPnRleHRG
aWVsZERpZEJlZ2luRWRpdGluZyhzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAg
fQpJbmRleDogV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MDg4OSkKKysrIFdlYkNv
cmUvd21sL1dNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCwxMyArMjgw
LDEzIEBAIHZvaWQgV01MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGUKICAgICBpZiAo
Y2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbikgewogICAgICAgICAvLyBGaXJlIG9uQ2hhbmdlIGZvciB0
ZXh0IGZpZWxkcy4KICAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gcmVuZGVyZXIoKTsKLSAgICAg
ICAgaWYgKHIgJiYgdG9SZW5kZXJUZXh0Q29udHJvbChyKS0+aXNFZGl0ZWQoKSkgeworICAgICAg
ICBpZiAociAmJiB0b1JlbmRlclRleHRDb250cm9sKHIpLT53YXNDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQoKSkgewogICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChldmVudE5hbWVzKCkuY2hh
bmdlRXZlbnQsIHRydWUsIGZhbHNlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gUmVm
ZXRjaCB0aGUgcmVuZGVyZXIgc2luY2UgYXJiaXRyYXJ5IEpTIGNvZGUgcnVuIGR1cmluZyBvbmNo
YW5nZSBjYW4gZG8gYW55dGhpbmcsIGluY2x1ZGluZyBkZXN0cm95aW5nIGl0LgogICAgICAgICAg
ICAgciA9IHJlbmRlcmVyKCk7CiAgICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICB0
b1JlbmRlclRleHRDb250cm9sKHIpLT5zZXRFZGl0ZWQoZmFsc2UpOworICAgICAgICAgICAgICAg
IHRvUmVuZGVyVGV4dENvbnRyb2wociktPnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudChm
YWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cklu
ZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTEwMDYpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDA5LTExLTE1ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzExODYKKworICAg
ICAgICBDaGFuZ2VzIGFzc29jaWF0ZWQgd2l0aCByZW5hbWluZyBSZW5kZXJUZXh0Q29udHJvbDo6
aXNVc2VyRWRpdGVkLgorCisgICAgICAgICogRE9NSFRNTENsYXNzZXMuY3BwOgorICAgICAgICAo
RE9NSFRNTElucHV0RWxlbWVudDo6aXNVc2VyRWRpdGVkKTogRm9ybWVybHkgbmFtZWQgaXNVc2Vy
RWRpdGVkLgorICAgICAgICAoRE9NSFRNTFRleHRBcmVhRWxlbWVudDo6aXNVc2VyRWRpdGVkKTog
RGl0dG8uCisKIDIwMDktMTEtMTMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEJ1aWxkIGZpeApJbmRleDogV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAJKHJldmlzaW9uIDUwODg5
KQorKysgV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
ODQsNyArMTI4NCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWwK
ICAgICBpZiAoRkFJTEVEKGlzVGV4dEZpZWxkKCZ0ZXh0RmllbGQpKSB8fCAhdGV4dEZpZWxkKQog
ICAgICAgICByZXR1cm4gU19PSzsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbV9lbGVt
ZW50LT5yZW5kZXJlcigpOwotICAgIGlmIChyZW5kZXJlciAmJiB0b1JlbmRlclRleHRDb250cm9s
KHJlbmRlcmVyKS0+aXNVc2VyRWRpdGVkKCkpCisgICAgaWYgKHJlbmRlcmVyICYmIHRvUmVuZGVy
VGV4dENvbnRyb2wocmVuZGVyZXIpLT5sYXN0Q2hhbmdlV2FzVXNlckVkaXQoKSkKICAgICAgICAg
KnJlc3VsdCA9IFRSVUU7CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0xNDgxLDcgKzE0ODEsNyBA
QCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxUZXh0QXJlCiAgICAgKnJlc3VsdCA9
IEZBTFNFOwogICAgIEFTU0VSVChtX2VsZW1lbnQpOwogICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSBtX2VsZW1lbnQtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRlcmVyICYmIHRvUmVuZGVy
VGV4dENvbnRyb2wocmVuZGVyZXIpLT5pc1VzZXJFZGl0ZWQoKSkKKyAgICBpZiAocmVuZGVyZXIg
JiYgdG9SZW5kZXJUZXh0Q29udHJvbChyZW5kZXJlciktPmxhc3RDaGFuZ2VXYXNVc2VyRWRpdCgp
KQogICAgICAgICAqcmVzdWx0ID0gVFJVRTsKICAgICByZXR1cm4gU19PSzsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>