<?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>120344</bug_id>
          
          <creation_ts>2013-08-27 01:29:04 -0700</creation_ts>
          <short_desc>Clean ClassList and DOMSettableTokenList</short_desc>
          <delta_ts>2013-08-27 15:09:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>921368</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-27 01:29:04 -0700</bug_when>
    <thetext>Clean ClassList and DOMSettableTokenList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921369</commentid>
    <comment_count>1</comment_count>
      <attachid>209723</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-27 01:32:58 -0700</bug_when>
    <thetext>Created attachment 209723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921371</commentid>
    <comment_count>2</comment_count>
      <attachid>209723</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-27 01:36:05 -0700</bug_when>
    <thetext>Comment on attachment 209723
Patch

Attachment 209723 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1587206</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921375</commentid>
    <comment_count>3</comment_count>
      <attachid>209723</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-08-27 01:40:27 -0700</bug_when>
    <thetext>Comment on attachment 209723
Patch

Attachment 209723 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1582232</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921379</commentid>
    <comment_count>4</comment_count>
      <attachid>209727</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-27 01:49:54 -0700</bug_when>
    <thetext>Created attachment 209727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921389</commentid>
    <comment_count>5</comment_count>
      <attachid>209727</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-27 02:14:42 -0700</bug_when>
    <thetext>Comment on attachment 209727
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        -Move the implementation of virtual functions to the cpp file.
&gt; +        -Clean the #includes.
&gt; +        -Make the implemented pure virtual methods final.
&gt; +        -Make the element() accessor const.

Maybe put a space after each &quot;-&quot;?

&gt; Source/WebCore/html/ClassList.cpp:85
&gt;      if (m_element-&gt;document()-&gt;inQuirksMode()) {

I don&apos;t get this. It&apos;s not like m_element&apos;s document transition between quirks mode and strict mode...
We should be able to determine this at the creation time (probably not in this patch though).

&gt; Source/WebCore/html/DOMSettableTokenList.h:55
&gt;      AtomicString m_value;

We should get rid of this member variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921411</commentid>
    <comment_count>6</comment_count>
      <attachid>209727</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-27 02:35:58 -0700</bug_when>
    <thetext>Comment on attachment 209727
Patch

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

&gt;&gt; Source/WebCore/html/ClassList.cpp:85
&gt;&gt;      if (m_element-&gt;document()-&gt;inQuirksMode()) {
&gt; 
&gt; I don&apos;t get this. It&apos;s not like m_element&apos;s document transition between quirks mode and strict mode...
&gt; We should be able to determine this at the creation time (probably not in this patch though).

Hm... I suppose you can move the element from a strict mode document to a quirks mode document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921650</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-27 13:49:10 -0700</bug_when>
    <thetext>Committed r154707: &lt;http://trac.webkit.org/changeset/154707&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921682</commentid>
    <comment_count>8</comment_count>
      <attachid>209727</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-27 14:58:25 -0700</bug_when>
    <thetext>Comment on attachment 209727
Patch

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

&gt; Source/WebCore/html/ClassList.h:40
&gt; +    virtual void ref() OVERRIDE FINAL;

Is the class ClassList not something we can mark FINAL? If we did we could save marking all those functions final.

&gt; Source/WebCore/html/DOMSettableTokenList.h:38
&gt;  class DOMSettableTokenList : public DOMTokenList, public RefCounted&lt;DOMSettableTokenList&gt; {

Can this class be marked FINAL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921693</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-27 15:09:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 209727 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=209727&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/ClassList.h:40
&gt; &gt; +    virtual void ref() OVERRIDE FINAL;
&gt; 
&gt; Is the class ClassList not something we can mark FINAL? If we did we could save marking all those functions final.
&gt; 
&gt; &gt; Source/WebCore/html/DOMSettableTokenList.h:38
&gt; &gt;  class DOMSettableTokenList : public DOMTokenList, public RefCounted&lt;DOMSettableTokenList&gt; {
&gt; 
&gt; Can this class be marked FINAL?

That&apos;s what I tried with the previous patch that did not build.
The bindings subclasses those.

I have more refactoring in progress. The end result should be nicer.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209723</attachid>
            <date>2013-08-27 01:32:58 -0700</date>
            <delta_ts>2013-08-27 01:49:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120344-20130827013257.patch</filename>
            <type>text/plain</type>
            <size>9906</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0NjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiZDY4NDQ2YWM0Zjk1
MDJmMmViMDRkODE0ODk3MjJmOTQ1ZjA0Ny4uNjdjNDNjMzllNjc4YTE3ZGQwZTVmYWQ2MjM5NDE4
YjExOThiZWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTA4LTI3ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAorICAgICAgICBDbGVhbiBDbGFz
c0xpc3QgYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNsZWFucyBDbGFzc0xpc3QgYW5kIERP
TVNldHRhYmxlVG9rZW5MaXN0IHRvIG1ha2UgaXQgc2ltcGxlciB0byB1cGRhdGUKKyAgICAgICAg
U3BhY2VTcGxpdFN0cmluZzoKKyAgICAgICAgLU1vdmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIHZp
cnR1YWwgZnVuY3Rpb25zIHRvIHRoZSBjcHAgZmlsZS4KKyAgICAgICAgLUNsZWFuIHRoZSAjaW5j
bHVkZXMuCisgICAgICAgIC1NYWtlIHRoZSB0d28gY2xhc3NlcyBmaW5hbC4KKyAgICAgICAgLU1h
a2UgdGhlIGVsZW1lbnQoKSBhY2Nlc3NvciBjb25zdC4KKworICAgICAgICAqIGh0bWwvQ2xhc3NM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNsYXNzTGlzdDo6ZWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xp
c3Q6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6c2V0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpjbGFzc05hbWVzKToKKyAgICAgICAgKiBodG1sL0Ns
YXNzTGlzdC5oOgorICAgICAgICAqIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNldHRhYmxlVG9rZW5MaXN0OjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJs
ZVRva2VuTGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5M
aXN0Ojp2YWx1ZSk6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oOgorICAg
ICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxp
c3Q6OmVsZW1lbnQpOgorCisyMDEzLTA4LTI3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5A
d2Via2l0Lm9yZz4KKwogICAgICAgICBSZW1vdmUgRE9NU2V0dGFibGVUb2tlbkxpc3QncyBvdmVy
bG9hZCBvZiBhZGQoKSBhbmQgcmVtb3ZlKCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDM0MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NsYXNzTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAKaW5k
ZXggZDRmYzZkYjgzYzNhODIxNzljODBiMzcwY2EyYWQ4MDI2NzFlMzYyMi4uZDZlOTAwNjMxMGQw
NDcwOTIwM2Y4ODVkZDU5YTU0M2M3YTQ5OWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DbGFzc0xpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNw
cApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1
LDE0ICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNsYXNzTGlzdC5o
IgogCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotQ2xh
c3NMaXN0OjpDbGFzc0xpc3QoRWxlbWVudCogZWxlbWVudCkgOiBtX2VsZW1lbnQoZWxlbWVudCkg
eyB9CitQYXNzT3duUHRyPENsYXNzTGlzdD4gQ2xhc3NMaXN0OjpjcmVhdGUoRWxlbWVudCogZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENsYXNzTGlzdChlbGVtZW50KSk7Cit9
CiAKIHZvaWQgQ2xhc3NMaXN0OjpyZWYoKQogewpAQCAtNTYsMTggKzU5LDMzIEBAIGNvbnN0IEF0
b21pY1N0cmluZyBDbGFzc0xpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0
dXJuIGNsYXNzTmFtZXMoKVtpbmRleF07CiB9CiAKK0VsZW1lbnQqIENsYXNzTGlzdDo6ZWxlbWVu
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudDsKK30KKwogYm9vbCBDbGFzc0xpc3Q6
OmNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpICYmIGNsYXNzTmFtZXMoKS5jb250YWlucyh0
b2tlbik7CiB9CiAKK0F0b21pY1N0cmluZyBDbGFzc0xpc3Q6OnZhbHVlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIpOwor
fQorCit2b2lkIENsYXNzTGlzdDo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgdmFs
dWUpOworfQorCiBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBDbGFzc0xpc3Q6OmNsYXNzTmFtZXMo
KSBjb25zdAogewogICAgIEFTU0VSVChtX2VsZW1lbnQtPmhhc0NsYXNzKCkpOwogICAgIGlmICht
X2VsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKSB7Ci0gICAgICAgIGlmICghbV9j
bGFzc05hbWVzRm9yUXVpcmtzTW9kZSkKLSAgICAgICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJr
c01vZGUgPSBhZG9wdFB0cihuZXcgU3BhY2VTcGxpdFN0cmluZyh2YWx1ZSgpLCBmYWxzZSkpOwot
ICAgICAgICByZXR1cm4gKm1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuZ2V0KCk7CisgICAgICAg
IGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zaXplKCkpCisgICAgICAgICAgICBtX2Ns
YXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldCh2YWx1ZSgpLCBmYWxzZSk7CisgICAgICAgIHJldHVy
biBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwogICAgIH0KICAgICByZXR1cm4gbV9lbGVtZW50
LT5lbGVtZW50RGF0YSgpLT5jbGFzc05hbWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0NsYXNzTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaApp
bmRleCBhMGYyNThiNzM0MTY3ZTMyOTRjMzM2NTA2YzI4Zjk4YjQ4ZTg1OGE1Li4wYWM2OTc2MWVi
ZmJkYWFiN2UyNmYyYWQwNzZkZTg2OGJlNzQ2YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NsYXNzTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmgK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwy
NCArMjcsMTUgQEAKICNkZWZpbmUgQ2xhc3NMaXN0X2gKIAogI2luY2x1ZGUgIkRPTVRva2VuTGlz
dC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRWxl
bWVudDsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotY2xhc3MgQ2xhc3NMaXN0IDog
cHVibGljIERPTVRva2VuTGlzdCB7CitjbGFzcyBDbGFzc0xpc3QgRklOQUwgOiBwdWJsaWMgRE9N
VG9rZW5MaXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxDbGFzc0xpc3Q+IGNy
ZWF0ZShFbGVtZW50KiBlbGVtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDbGFzc0xpc3QoZWxlbWVudCkpOwotICAgIH0KKyAgICBzdGF0aWMgUGFzc093blB0cjxDbGFz
c0xpc3Q+IGNyZWF0ZShFbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgT1ZFUlJJREU7CkBAIC01MSwyMiArNDMsMjQg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBPVkVSUklERSB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25z
dCBPVkVSUklERTsKIAotICAgIHZvaWQgY2xlYXJWYWx1ZUZvclF1aXJrc01vZGUoKSB7IG1fY2xh
c3NOYW1lc0ZvclF1aXJrc01vZGUgPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVhclZhbHVlRm9y
UXVpcmtzTW9kZSgpIHsgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5jbGVhcigpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgQ2xhc3NMaXN0KEVsZW1lbnQqKTsKKyAgICBDbGFzc0xpc3QoRWxlbWVudCog
ZWxlbWVudCkKKyAgICAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICB7CisgICAgfQogCiAg
ICAgdmlydHVhbCBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdmFsdWUoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJikgT1ZF
UlJJREU7CiAKICAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7
CiAKLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyKTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKSBPVkVSUklE
RSB7IG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCB2YWx1ZSk7
IH0KLQogICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKLSAgICBtdXRhYmxlIE93blB0cjxTcGFjZVNw
bGl0U3RyaW5nPiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOworICAgIG11dGFibGUgU3BhY2VT
cGxpdFN0cmluZyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRv
a2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNw
cAppbmRleCA1Njk3Y2Y3NWM0MTFkNjM0YjA3MmJjNDdjMDZmNmRiZGJjMWZhYTIyLi43NDFmZjU5
NWM5NDA1M2Y4OTBmYTM2MGIwZjYyYjA1MDUyM2JmYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDE0ICsyOCwyNCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLURPTVNldHRhYmxlVG9rZW5MaXN0OjpET01TZXR0YWJsZVRva2VuTGlzdCgpCi0g
ICAgOiBtX3ZhbHVlKCkKLSAgICAsIG1fdG9rZW5zKCkKK1Bhc3NSZWZQdHI8RE9NU2V0dGFibGVU
b2tlbkxpc3Q+IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKQogeworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRE9NU2V0dGFibGVUb2tlbkxpc3QoKSk7CiB9CiAKLURPTVNldHRhYmxlVG9r
ZW5MaXN0Ojp+RE9NU2V0dGFibGVUb2tlbkxpc3QoKQordm9pZCBET01TZXR0YWJsZVRva2VuTGlz
dDo6cmVmKCkKIHsKKyAgICBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6cmVmKCk7
Cit9CisKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmRlcmVmKCkKK3sKKyAgICBSZWZDb3Vu
dGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6ZGVyZWYoKTsKK30KKwordW5zaWduZWQgRE9NU2V0
dGFibGVUb2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdG9rZW5zLnNp
emUoKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nIERPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVt
KHVuc2lnbmVkIGluZGV4KSBjb25zdApAQCAtNDksNiArNjAsMTEgQEAgYm9vbCBET01TZXR0YWJs
ZVRva2VuTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBj
b25zdAogICAgIHJldHVybiBtX3Rva2Vucy5jb250YWlucyh0b2tlbik7CiB9CiAKK0F0b21pY1N0
cmluZyBET01TZXR0YWJsZVRva2VuTGlzdDo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ZhbHVlOworfQorCiB2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpzZXRWYWx1ZShjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIG1fdmFsdWUgPSB2YWx1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaAppbmRleCAwNGE0MDU2MzU0ZGQyNWJkYWJh
OTlmYjM2ZmQzY2Q4NGRjYTI5MjkwLi44ODk2NmFjNmE1ZTViNGYwNTJiNDYxODhiMmNlMGNlNDNj
NDFiZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5M
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMjkg
KzM1LDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29k
ZTsKIAotY2xhc3MgRE9NU2V0dGFibGVUb2tlbkxpc3QgOiBwdWJsaWMgRE9NVG9rZW5MaXN0LCBw
dWJsaWMgUmVmQ291bnRlZDxET01TZXR0YWJsZVRva2VuTGlzdD4geworY2xhc3MgRE9NU2V0dGFi
bGVUb2tlbkxpc3QgRklOQUwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0LCBwdWJsaWMgUmVmQ291bnRl
ZDxET01TZXR0YWJsZVRva2VuTGlzdD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBjcmVh
dGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01TZXR0YWJsZVRva2Vu
TGlzdCgpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+RE9NU2V0dGFibGVUb2tlbkxpc3QoKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gY3JlYXRlKCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVmKCkgT1ZFUlJJREUgeyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9r
ZW5MaXN0Pjo6cmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBPVkVSUklERSB7IFJl
ZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+OjpkZXJlZigpOyB9CisgICAgdmlydHVhbCB2
b2lkIHJlZigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIE9WRVJSSURFOwog
Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X3Rva2Vucy5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdmFsdWUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdmlydHVhbCBBdG9taWNTdHJp
bmcgdmFsdWUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29u
c3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAKLSAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5n
JiB0b2tlbnMoKSBjb25zdCB7IHJldHVybiBtX3Rva2VuczsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAg
RE9NU2V0dGFibGVUb2tlbkxpc3QoKTsKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY29u
dGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKaW5kZXggODA0YjE5ZjZhMTI1MDdhYTgzMWRkMDkyNjU4
OGRkY2Q1ZmExM2ZkMy4uN2NhM2VmYWU2ZDlhZGQyM2I4NjM0YTRhYzFhMDlmMThjYjM5YTAwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoK
IAogICAgIEF0b21pY1N0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCk7IH0K
IAotICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0
dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209727</attachid>
            <date>2013-08-27 01:49:54 -0700</date>
            <delta_ts>2013-08-27 14:58:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120344-20130827014952.patch</filename>
            <type>text/plain</type>
            <size>10336</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0NjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiZDY4NDQ2YWM0Zjk1
MDJmMmViMDRkODE0ODk3MjJmOTQ1ZjA0Ny4uNjcyYjUwNDcwOWM1NGZmMzU1YjI2ZWIwNGRhYzhh
NTNkYzc5MjVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTA4LTI3ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAorICAgICAgICBDbGVhbiBDbGFz
c0xpc3QgYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNsZWFucyBDbGFzc0xpc3QgYW5kIERP
TVNldHRhYmxlVG9rZW5MaXN0IHRvIG1ha2UgaXQgc2ltcGxlciB0byB1cGRhdGUKKyAgICAgICAg
U3BhY2VTcGxpdFN0cmluZzoKKyAgICAgICAgLU1vdmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIHZp
cnR1YWwgZnVuY3Rpb25zIHRvIHRoZSBjcHAgZmlsZS4KKyAgICAgICAgLUNsZWFuIHRoZSAjaW5j
bHVkZXMuCisgICAgICAgIC1NYWtlIHRoZSBpbXBsZW1lbnRlZCBwdXJlIHZpcnR1YWwgbWV0aG9k
cyBmaW5hbC4KKyAgICAgICAgLU1ha2UgdGhlIGVsZW1lbnQoKSBhY2Nlc3NvciBjb25zdC4KKwor
ICAgICAgICAqIGh0bWwvQ2xhc3NMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6ZWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNz
TGlzdDo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpjbGFzc05hbWVz
KToKKyAgICAgICAgKiBodG1sL0NsYXNzTGlzdC5oOgorICAgICAgICAqIGh0bWwvRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6cmVmKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpkZXJlZik6CisgICAgICAg
IChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojp2YWx1ZSk6CisgICAgICAgICogaHRtbC9ET01TZXR0
YWJsZVRva2VuTGlzdC5oOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OmVsZW1lbnQpOgorCisyMDEzLTA4LTI3ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKwogICAgICAgICBSZW1vdmUgRE9NU2V0
dGFibGVUb2tlbkxpc3QncyBvdmVybG9hZCBvZiBhZGQoKSBhbmQgcmVtb3ZlKCkKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDM0MQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NsYXNzTGlzdC5jcHAKaW5kZXggZDRmYzZkYjgzYzNhODIxNzljODBiMzcwY2EyYWQ4MDI2
NzFlMzYyMi4uZDZlOTAwNjMxMGQwNDcwOTIwM2Y4ODVkZDU5YTU0M2M3YTQ5OWNiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2xhc3NMaXN0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDE0ICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNsYXNzTGlzdC5oIgogCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlICJT
cGFjZVNwbGl0U3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKLQotQ2xhc3NMaXN0OjpDbGFzc0xpc3QoRWxlbWVudCogZWxlbWVudCkg
OiBtX2VsZW1lbnQoZWxlbWVudCkgeyB9CitQYXNzT3duUHRyPENsYXNzTGlzdD4gQ2xhc3NMaXN0
OjpjcmVhdGUoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENs
YXNzTGlzdChlbGVtZW50KSk7Cit9CiAKIHZvaWQgQ2xhc3NMaXN0OjpyZWYoKQogewpAQCAtNTYs
MTggKzU5LDMzIEBAIGNvbnN0IEF0b21pY1N0cmluZyBDbGFzc0xpc3Q6Oml0ZW0odW5zaWduZWQg
aW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIGNsYXNzTmFtZXMoKVtpbmRleF07CiB9CiAKK0VsZW1l
bnQqIENsYXNzTGlzdDo6ZWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudDsK
K30KKwogYm9vbCBDbGFzc0xpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbikgY29uc3QKIHsKICAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpICYmIGNs
YXNzTmFtZXMoKS5jb250YWlucyh0b2tlbik7CiB9CiAKK0F0b21pY1N0cmluZyBDbGFzc0xpc3Q6
OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRN
TE5hbWVzOjpjbGFzc0F0dHIpOworfQorCit2b2lkIENsYXNzTGlzdDo6c2V0VmFsdWUoY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1M
TmFtZXM6OmNsYXNzQXR0ciwgdmFsdWUpOworfQorCiBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBD
bGFzc0xpc3Q6OmNsYXNzTmFtZXMoKSBjb25zdAogewogICAgIEFTU0VSVChtX2VsZW1lbnQtPmhh
c0NsYXNzKCkpOwogICAgIGlmIChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgp
KSB7Ci0gICAgICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZSkKLSAgICAgICAgICAg
IG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUgPSBhZG9wdFB0cihuZXcgU3BhY2VTcGxpdFN0cmlu
Zyh2YWx1ZSgpLCBmYWxzZSkpOwotICAgICAgICByZXR1cm4gKm1fY2xhc3NOYW1lc0ZvclF1aXJr
c01vZGUuZ2V0KCk7CisgICAgICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zaXpl
KCkpCisgICAgICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldCh2YWx1ZSgpLCBm
YWxzZSk7CisgICAgICAgIHJldHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwogICAgIH0K
ICAgICByZXR1cm4gbV9lbGVtZW50LT5lbGVtZW50RGF0YSgpLT5jbGFzc05hbWVzKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DbGFzc0xpc3QuaAppbmRleCBhMGYyNThiNzM0MTY3ZTMyOTRjMzM2NTA2YzI4Zjk4
YjQ4ZTg1OGE1Li5jNmVmZTc0Y2Q2YWQwMzM0YTIwYzQxYjM1NTYwYmZiOGYzZmYxMzgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2xhc3NMaXN0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNiw0NyArMjcsNDAgQEAKICNkZWZpbmUgQ2xhc3NMaXN0X2gKIAog
I2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCi0jaW5jbHVkZSA8
d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRWxlbWVudDsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsK
LQogY2xhc3MgQ2xhc3NMaXN0IDogcHVibGljIERPTVRva2VuTGlzdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8Q2xhc3NMaXN0PiBjcmVhdGUoRWxlbWVudCogZWxlbWVudCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2xhc3NMaXN0KGVsZW1lbnQpKTsKLSAg
ICB9CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q2xhc3NMaXN0PiBjcmVhdGUoRWxlbWVudCopOwog
Ci0gICAgdmlydHVhbCB2b2lkIHJlZigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWYoKSBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBPVkVSUklERSBGSU5BTDsKIAotICAgIHZpcnR1YWwgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBPVkVSUklERSBGSU5BTDsK
IAotICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIE9WRVJSSURFIHsgcmV0dXJuIG1fZWxl
bWVudDsgfQorICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMOwogCi0gICAgdm9pZCBjbGVhclZhbHVlRm9yUXVpcmtzTW9kZSgpIHsgbV9jbGFzc05hbWVz
Rm9yUXVpcmtzTW9kZSA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNsZWFyVmFsdWVGb3JRdWlya3NN
b2RlKCkgeyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmNsZWFyKCk7IH0KIAogcHJpdmF0ZToK
LSAgICBDbGFzc0xpc3QoRWxlbWVudCopOworICAgIENsYXNzTGlzdChFbGVtZW50KiBlbGVtZW50
KQorICAgICAgICA6IG1fZWxlbWVudChlbGVtZW50KQorICAgIHsKKyAgICB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB2YWx1
ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25z
dCBBdG9taWNTdHJpbmcmKSBPVkVSUklERSBGSU5BTDsKIAogICAgIGNvbnN0IFNwYWNlU3BsaXRT
dHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHZh
bHVlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRN
TE5hbWVzOjpjbGFzc0F0dHIpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpIE9WRVJSSURFIHsgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRN
TE5hbWVzOjpjbGFzc0F0dHIsIHZhbHVlKTsgfQotCiAgICAgRWxlbWVudCogbV9lbGVtZW50Owot
ICAgIG11dGFibGUgT3duUHRyPFNwYWNlU3BsaXRTdHJpbmc+IG1fY2xhc3NOYW1lc0ZvclF1aXJr
c01vZGU7CisgICAgbXV0YWJsZSBTcGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lc0ZvclF1aXJr
c01vZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCmluZGV4IDU2OTdjZjc1YzQxMWQ2MzRiMDcyYmM0
N2MwNmY2ZGJkYmMxZmFhMjIuLjc0MWZmNTk1Yzk0MDUzZjg5MGZhMzYwYjBmNjJiMDUwNTIzYmZh
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTQg
KzI4LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NU2V0dGFibGVUb2tlbkxpc3Q6
OkRPTVNldHRhYmxlVG9rZW5MaXN0KCkKLSAgICA6IG1fdmFsdWUoKQotICAgICwgbV90b2tlbnMo
KQorUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gRE9NU2V0dGFibGVUb2tlbkxpc3Q6
OmNyZWF0ZSgpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01TZXR0YWJsZVRva2VuTGlz
dCgpKTsKIH0KIAotRE9NU2V0dGFibGVUb2tlbkxpc3Q6On5ET01TZXR0YWJsZVRva2VuTGlzdCgp
Cit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpyZWYoKQogeworICAgIFJlZkNvdW50ZWQ8RE9N
U2V0dGFibGVUb2tlbkxpc3Q+OjpyZWYoKTsKK30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlz
dDo6ZGVyZWYoKQoreworICAgIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+OjpkZXJl
ZigpOworfQorCit1bnNpZ25lZCBET01TZXR0YWJsZVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV90b2tlbnMuc2l6ZSgpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcg
RE9NU2V0dGFibGVUb2tlbkxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CkBAIC00OSw2
ICs2MCwxMSBAQCBib29sIERPTVNldHRhYmxlVG9rZW5MaXN0Ojpjb250YWluc0ludGVybmFsKGNv
bnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0CiAgICAgcmV0dXJuIG1fdG9rZW5zLmNvbnRh
aW5zKHRva2VuKTsKIH0KIAorQXRvbWljU3RyaW5nIERPTVNldHRhYmxlVG9rZW5MaXN0Ojp2YWx1
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmFsdWU7Cit9CisKIHZvaWQgRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgbV92
YWx1ZSA9IHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJs
ZVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5o
CmluZGV4IDA0YTQwNTYzNTRkZDI1YmRhYmE5OWZiMzZmZDNjZDg0ZGNhMjkyOTAuLjAwNTdlZmIw
MDUyM2RiYmJkNTRhNDM4NDYzNjRlY2JmNDc1NmFjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNywyOCArMzgsMTkgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIGNsYXNzIERPTVNldHRhYmxlVG9rZW5MaXN0IDogcHVibGljIERPTVRva2VuTGlzdCwg
cHVibGljIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01TZXR0YWJs
ZVRva2VuTGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RE9NU2V0dGFibGVUb2tlbkxpc3QoKSk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkRPTVNldHRhYmxl
VG9rZW5MaXN0KCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
IGNyZWF0ZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZigpIE9WRVJSSURFIHsgUmVmQ291bnRl
ZDxET01TZXR0YWJsZVRva2VuTGlzdD46OnJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVm
KCkgT1ZFUlJJREUgeyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6ZGVyZWYoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCByZWYoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVyZWYoKSBPVkVSUklERSBGSU5BTDsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV90b2tlbnMuc2l6ZSgpOyB9Ci0gICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBP
VkVSUklERSBGSU5BTDsKIAotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHZhbHVlKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gbV92YWx1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLQotICAgIGNvbnN0IFNwYWNlU3BsaXRTdHJp
bmcmIHRva2VucygpIGNvbnN0IHsgcmV0dXJuIG1fdG9rZW5zOyB9Ci0KLXByb3RlY3RlZDoKLSAg
ICBET01TZXR0YWJsZVRva2VuTGlzdCgpOworICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHZhbHVl
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0
IEF0b21pY1N0cmluZyYpIE9WRVJSSURFIEZJTkFMOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwg
Ym9vbCBjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgQXRvbWljU3RyaW5nIG1fdmFsdWU7CiAgICAg
U3BhY2VTcGxpdFN0cmluZyBtX3Rva2VuczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCmlu
ZGV4IDgwNGIxOWY2YTEyNTA3YWE4MzFkZDA5MjY1ODhkZGNkNWZhMTNmZDMuLjdjYTNlZmFlNmQ5
YWRkMjNiODYzNGE0YWMxYTA5ZjE4Y2IzOWEwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICBBdG9taWNTdHJpbmcgdG9TdHJp
bmcoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CiAKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGVs
ZW1lbnQoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gMDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcg
dmFsdWUoKSBjb25zdCA9IDA7Cg==
</data>
<flag name="review"
          id="231779"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>