<?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>80061</bug_id>
          
          <creation_ts>2012-03-01 15:38:28 -0800</creation_ts>
          <short_desc>Remove last ENABLED(INDEXED_DATABASE) ifdef from WebCore proper</short_desc>
          <delta_ts>2012-03-01 16:25:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>79327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>haraken</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>568990</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-01 15:38:28 -0800</bug_when>
    <thetext>Remove last ENABLED(INDEXED_DATABASE) ifdef from WebCore proper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568991</commentid>
    <comment_count>1</comment_count>
      <attachid>129761</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-01 15:40:05 -0800</bug_when>
    <thetext>Created attachment 129761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568993</commentid>
    <comment_count>2</comment_count>
      <attachid>129761</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 15:42:39 -0800</bug_when>
    <thetext>Comment on attachment 129761
Patch

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

This modules thing really has worked out well, it seems.  So much less crap in these core classes.

&gt; Source/WebCore/page/PageGroup.h:46
&gt; +    class PageGroup : public Supplementable&lt;PageGroup&gt; {

Remind me what (if any) over head Suplementable adds to this object?  No storage, correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568994</commentid>
    <comment_count>3</comment_count>
      <attachid>129761</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-01 15:43:12 -0800</bug_when>
    <thetext>Comment on attachment 129761
Patch

Missing new files...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568996</commentid>
    <comment_count>4</comment_count>
      <attachid>129761</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 15:44:17 -0800</bug_when>
    <thetext>Comment on attachment 129761
Patch

Sorry, my fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568998</commentid>
    <comment_count>5</comment_count>
      <attachid>129763</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-01 15:45:47 -0800</bug_when>
    <thetext>Created attachment 129763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568999</commentid>
    <comment_count>6</comment_count>
      <attachid>129763</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-01 15:47:35 -0800</bug_when>
    <thetext>Comment on attachment 129763
Patch

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

&gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:13
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS&apos;&apos; AND

Is this a license block of Google?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569001</commentid>
    <comment_count>7</comment_count>
      <attachid>129763</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-01 15:48:10 -0800</bug_when>
    <thetext>Comment on attachment 129763
Patch

My drive-by review thirst is now quenched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569002</commentid>
    <comment_count>8</comment_count>
      <attachid>129763</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 15:48:37 -0800</bug_when>
    <thetext>Comment on attachment 129763
Patch

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

&gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:44
&gt; +PageGroupIndexedDatabase* PageGroupIndexedDatabase::from(PageGroup&amp; group)

PassOwnPtr?

&gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:47
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;PageGroupIndexedDatabase&quot;));
&gt; +    PageGroupIndexedDatabase* supplement = static_cast&lt;PageGroupIndexedDatabase*&gt;(Supplement&lt;PageGroup&gt;::from(&amp;group, name));

One wonders why we don&apos;t just make these hashes static on the Suplement implementation, instead of keyed off of an AtomicString.

&gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.h:41
&gt; +    static PageGroupIndexedDatabase* from(PageGroup&amp;);

I&apos;m surprised I didn&apos;t rag on you about using smart pointers for these from() functions earlier.  Seems leaky w/o them...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569009</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-01 15:55:15 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/page/PageGroup.h:46
&gt; &gt; +    class PageGroup : public Supplementable&lt;PageGroup&gt; {
&gt; 
&gt; Remind me what (if any) over head Suplementable adds to this object?  No storage, correct?

It adds one pointer, which is what we&apos;re removing in this patch.  (Of course, there&apos;s only one PageGroup per process, so the amount of memory we&apos;re talking about is quite small.)

&gt; Is this a license block of Google?

This code was written by Google, yes.

(In reply to comment #8)
&gt; (From update of attachment 129763 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129763&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:44
&gt; &gt; +PageGroupIndexedDatabase* PageGroupIndexedDatabase::from(PageGroup&amp; group)
&gt; 
&gt; PassOwnPtr?

The type here is to patch the type returned by Page::group(), which is what all the callers of this function use.  Normally we would use a pointer, but that made the call sites slightly less pretty.

&gt; &gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:47
&gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;PageGroupIndexedDatabase&quot;));
&gt; &gt; +    PageGroupIndexedDatabase* supplement = static_cast&lt;PageGroupIndexedDatabase*&gt;(Supplement&lt;PageGroup&gt;::from(&amp;group, name));
&gt; 
&gt; One wonders why we don&apos;t just make these hashes static on the Suplement implementation, instead of keyed off of an AtomicString.

I&apos;m not sure I follow.

&gt; &gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.h:41
&gt; &gt; +    static PageGroupIndexedDatabase* from(PageGroup&amp;);
&gt; 
&gt; I&apos;m surprised I didn&apos;t rag on you about using smart pointers for these from() functions earlier.  Seems leaky w/o them...

The object is owned by PageGroup.  In the implementation of from(..), you&apos;ll notice that we call adoptPtr and then given the owning reference to the PageGroup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569010</commentid>
    <comment_count>10</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-01 15:58:07 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS&apos;&apos; AND
&gt;
&gt; &gt; Is this a license block of Google?
&gt; 
&gt; This code was written by Google, yes.

I meant, the licence block should be Google, but it appears you are using a licence template of Apple. (&quot;THIS SOFTWARE IS PROVIDED BY APPLE INC.&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569013</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-01 16:00:10 -0800</bug_when>
    <thetext>&gt; I meant, the licence block should be Google, but it appears you are using a licence template of Apple. (&quot;THIS SOFTWARE IS PROVIDED BY APPLE INC.&quot;)

I see.  Yes.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569031</commentid>
    <comment_count>12</comment_count>
      <attachid>129763</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 16:14:50 -0800</bug_when>
    <thetext>Comment on attachment 129763
Patch

I did not mean to clear dglazkovs r+, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569033</commentid>
    <comment_count>13</comment_count>
      <attachid>129763</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 16:17:20 -0800</bug_when>
    <thetext>Comment on attachment 129763
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:44
&gt;&gt;&gt; +PageGroupIndexedDatabase* PageGroupIndexedDatabase::from(PageGroup&amp; group)
&gt;&gt; 
&gt;&gt; PassOwnPtr?
&gt; 
&gt; The type here is to patch the type returned by Page::group(), which is what all the callers of this function use.  Normally we would use a pointer, but that made the call sites slightly less pretty.

I see, the fact that you&apos;re adopting the pointer makes this OK.

&gt;&gt;&gt; Source/WebCore/Modules/indexeddb/PageGroupIndexedDatabase.cpp:47
&gt;&gt;&gt; +    PageGroupIndexedDatabase* supplement = static_cast&lt;PageGroupIndexedDatabase*&gt;(Supplement&lt;PageGroup&gt;::from(&amp;group, name));
&gt;&gt; 
&gt;&gt; One wonders why we don&apos;t just make these hashes static on the Suplement implementation, instead of keyed off of an AtomicString.
&gt; 
&gt; I&apos;m not sure I follow.

Remind me and we can discuss in person.  Not particularly important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569041</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-01 16:25:48 -0800</bug_when>
    <thetext>Committed r109463: &lt;http://trac.webkit.org/changeset/109463&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129761</attachid>
            <date>2012-03-01 15:40:05 -0800</date>
            <delta_ts>2012-03-01 15:45:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80061-20120301154003.patch</filename>
            <type>text/plain</type>
            <size>6331</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTQ1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTAxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGxhc3QgRU5BQkxFRChJ
TkRFWEVEX0RBVEFCQVNFKSBpZmRlZiBmcm9tIFdlYkNvcmUgcHJvcGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDA2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUg
bGFzdCBFTkFCTEVEKElOREVYRURfREFUQUJBU0UpIGlmZGVmIGZyb20KKyAgICAgICAgV2ViQ29y
ZSBwcm9wZXIgYnkgbW92aW5nIHRoZSBiYWNrZW5kIGZhY3Rvcnkgb3V0IG9mIFBhZ2VHcm91cCBh
bmQgaW50bworICAgICAgICBhIHN1cHBsZW1lbnQgZm9yIFBhZ2VHcm91cC4gIEFmdGVyIHRoaXMg
cGF0Y2gsIHdlJ3JlIHJlYWR5IHRvIG1vdmUgdGhlCisgICAgICAgIElEQiBjb2RlIGludG8gTW9k
dWxlcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6Ondl
YmtpdEluZGV4ZWREQik6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc3Nl
cnRJREJGYWN0b3J5KToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5oOgorICAgICAgICAoUGFnZUdyb3Vw
KToKKwogMjAxMi0wMy0wMSAgUGV0ZXIgS290d2ljeiAgPHBrb3R3aWN6QGdvb2dsZS5jb20+CiAK
ICAgICAgICAgRGVjb3VwbGUgc2Nyb2xsYmFyIHBhaW50aW5nIGZyb20gU2Nyb2xsYmFyIG9iamVj
dApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA5Mzg2KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMjk1LDYgKzEyOTUsOCBAQAogICAg
ICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFi
YXNlLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWRE
YXRhYmFzZS5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cElu
ZGV4ZWREYXRhYmFzZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL2ludGVudHMvSW50ZW50UmVxdWVzdC5jcHAnLApJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxMDkzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJREJGYWN0
b3J5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1
ZGUgIlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgzLDcgKzgzLDcgQEAgSURCRmFjdG9yeSog
RE9NV2luZG93SW5kZXhlZERhdGFiYXNlOjp3ZQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
ICghbV9pZGJGYWN0b3J5ICYmIG1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKLSAgICAgICAgbV9pZGJGYWN0b3J5ID0gSURCRmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmdyb3Vw
KCkuaWRiRmFjdG9yeSgpKTsKKyAgICAgICAgbV9pZGJGYWN0b3J5ID0gSURCRmFjdG9yeTo6Y3Jl
YXRlKFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZTo6ZnJvbShwYWdlLT5ncm91cCgpKS0+ZmFjdG9y
eUJhY2tlbmQoKSk7CiAgICAgcmV0dXJuIG1faWRiRmFjdG9yeS5nZXQoKTsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwCShyZXZpc2lvbiAxMDkzODYpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBA
CiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNjMzLDcgKzYzNCw3IEBAIHN0YXRpYyBEb2N1bWVudCogYXNzZXJ0RG9jdW1lbnQoRXJy
b3JTdHIKIHN0YXRpYyBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogYXNzZXJ0SURCRmFjdG9y
eShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBQ
YWdlKiBwYWdlID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+cGFnZSgpIDogMDsKLSAgICBJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZSogaWRiRmFjdG9yeSA9IHBhZ2UgPyBwYWdlLT5ncm91cCgpLmlk
YkZhY3RvcnkoKSA6IDA7CisgICAgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZhY3Rv
cnkgPSBwYWdlID8gUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpmcm9tKHBhZ2UtPmdyb3VwKCkp
LT5mYWN0b3J5QmFja2VuZCgpIDogMDsKIAogICAgIGlmICghaWRiRmFjdG9yeSkKICAgICAgICAg
KmVycm9yU3RyaW5nID0gIk5vIEluZGV4ZWREQiBmYWN0b3J5IGZvciBnaXZlbiBmcmFtZSBmb3Vu
ZCI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCShyZXZpc2lvbiAxMDkzODYpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
MSwxNyArMjYxLDYgQEAgU3RvcmFnZU5hbWVzcGFjZSogUGFnZUdyb3VwOjpsb2NhbFN0b3JhZwog
ICAgIHJldHVybiBtX2xvY2FsU3RvcmFnZS5nZXQoKTsKIH0KIAotI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQotSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIFBhZ2VHcm91cDo6aWRiRmFj
dG9yeSgpCi17Ci0gICAgLy8gRG8gbm90IGFkZCBwYWdlIHNldHRpbmcgYmFzZWQgYWNjZXNzIGNv
bnRyb2wgaGVyZSBzaW5jZSB0aGlzIG9iamVjdCBpcyBzaGFyZWQgYnkgYWxsIHBhZ2VzIGluCi0g
ICAgLy8gdGhlIGdyb3VwIGFuZCBoYXZpbmcgcGVyLXBhZ2UgY29udHJvbHMgaXMgbWlzbGVhZGlu
Zy4KLSAgICBpZiAoIW1fZmFjdG9yeUJhY2tlbmQpCi0gICAgICAgIG1fZmFjdG9yeUJhY2tlbmQg
PSBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIG1fZmFj
dG9yeUJhY2tlbmQuZ2V0KCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBQYWdlR3JvdXA6OmFkZFVzZXJT
Y3JpcHRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNl
LCBjb25zdCBLVVJMJiB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwgUGFzc093blB0cjxWZWN0b3I8
U3RyaW5nPiA+IGJsYWNrbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzIGluamVjdGVkRnJhbWVzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShy
ZXZpc2lvbiAxMDkzODYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlICJMaW5rSGFzaC5oIgorI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVXNlclNjcmlwdC5oIgogI2luY2x1ZGUg
IlVzZXJTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAt
NDIsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2VjdXJpdHlPcmln
aW47CiAgICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIAotICAgIGNsYXNzIFBhZ2VHcm91cCB7
CisgICAgY2xhc3MgUGFnZUdyb3VwIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFBhZ2VHcm91cD4g
ewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlR3JvdXApOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIFBhZ2VHcm91cChjb25zdCBTdHJpbmcm
IG5hbWUpOwpAQCAtODEsMTEgKzgyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBT
dG9yYWdlTmFtZXNwYWNlKiBsb2NhbFN0b3JhZ2UoKTsKICAgICAgICAgYm9vbCBoYXNMb2NhbFN0
b3JhZ2UoKSB7IHJldHVybiBtX2xvY2FsU3RvcmFnZTsgfQogCi0jaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCi0gICAgICAgIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBpZGJGYWN0b3J5
KCk7Ci0gICAgICAgIGJvb2wgaGFzSURCRmFjdG9yeSgpIHsgcmV0dXJuIG1fZmFjdG9yeUJhY2tl
bmQ7IH0KLSNlbmRpZgotCiAgICAgICAgIHZvaWQgYWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3Jh
cHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0
ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFja2xpc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUsIFVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMpOwpAQCAtMTIyLDkgKzExOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB1bnNpZ25lZCBtX2lkZW50aWZpZXI7CiAgICAgICAgIFJlZlB0cjxTdG9y
YWdlTmFtZXNwYWNlPiBtX2xvY2FsU3RvcmFnZTsKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICAgICAgUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBtX2ZhY3RvcnlC
YWNrZW5kOwotI2VuZGlmCiAKICAgICAgICAgT3duUHRyPFVzZXJTY3JpcHRNYXA+IG1fdXNlclNj
cmlwdHM7CiAgICAgICAgIE93blB0cjxVc2VyU3R5bGVTaGVldE1hcD4gbV91c2VyU3R5bGVTaGVl
dHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129763</attachid>
            <date>2012-03-01 15:45:47 -0800</date>
            <delta_ts>2012-03-01 16:17:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80061-20120301154546.patch</filename>
            <type>text/plain</type>
            <size>11565</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTQ1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTAxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGxhc3QgRU5BQkxFRChJ
TkRFWEVEX0RBVEFCQVNFKSBpZmRlZiBmcm9tIFdlYkNvcmUgcHJvcGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDA2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUg
bGFzdCBFTkFCTEVEKElOREVYRURfREFUQUJBU0UpIGlmZGVmIGZyb20KKyAgICAgICAgV2ViQ29y
ZSBwcm9wZXIgYnkgbW92aW5nIHRoZSBiYWNrZW5kIGZhY3Rvcnkgb3V0IG9mIFBhZ2VHcm91cCBh
bmQgaW50bworICAgICAgICBhIHN1cHBsZW1lbnQgZm9yIFBhZ2VHcm91cC4gIEFmdGVyIHRoaXMg
cGF0Y2gsIHdlJ3JlIHJlYWR5IHRvIG1vdmUgdGhlCisgICAgICAgIElEQiBjb2RlIGludG8gTW9k
dWxlcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6Ondl
YmtpdEluZGV4ZWREQik6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc3Nl
cnRJREJGYWN0b3J5KToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5oOgorICAgICAgICAoUGFnZUdyb3Vw
KToKKwogMjAxMi0wMy0wMSAgUGV0ZXIgS290d2ljeiAgPHBrb3R3aWN6QGdvb2dsZS5jb20+CiAK
ICAgICAgICAgRGVjb3VwbGUgc2Nyb2xsYmFyIHBhaW50aW5nIGZyb20gU2Nyb2xsYmFyIG9iamVj
dApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA5Mzg2KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMjk1LDYgKzEyOTUsOCBAQAogICAg
ICAgICAgICAgJ01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFi
YXNlLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWRE
YXRhYmFzZS5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cElu
ZGV4ZWREYXRhYmFzZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50LmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL2ludGVudHMvSW50ZW50UmVxdWVzdC5jcHAnLApJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxMDkzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJREJGYWN0
b3J5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1
ZGUgIlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgzLDcgKzgzLDcgQEAgSURCRmFjdG9yeSog
RE9NV2luZG93SW5kZXhlZERhdGFiYXNlOjp3ZQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
ICghbV9pZGJGYWN0b3J5ICYmIG1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKLSAgICAgICAgbV9pZGJGYWN0b3J5ID0gSURCRmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmdyb3Vw
KCkuaWRiRmFjdG9yeSgpKTsKKyAgICAgICAgbV9pZGJGYWN0b3J5ID0gSURCRmFjdG9yeTo6Y3Jl
YXRlKFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZTo6ZnJvbShwYWdlLT5ncm91cCgpKS0+ZmFjdG9y
eUJhY2tlbmQoKSk7CiAgICAgcmV0dXJuIG1faWRiRmFjdG9yeS5nZXQoKTsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdl
R3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oIgorCisjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgor
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZTo6UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCkKK3sKK30KKworUGFn
ZUdyb3VwSW5kZXhlZERhdGFiYXNlOjp+UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCkKK3sKK30K
KworUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKiBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U6OmZy
b20oUGFnZUdyb3VwJiBncm91cCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbmFtZSwgKCJQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UiKSk7CisgICAgUGFnZUdyb3Vw
SW5kZXhlZERhdGFiYXNlKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8UGFnZUdyb3VwSW5kZXhl
ZERhdGFiYXNlKj4oU3VwcGxlbWVudDxQYWdlR3JvdXA+Ojpmcm9tKCZncm91cCwgbmFtZSkpOwor
ICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBzdXBwbGVtZW50ID0gbmV3IFBhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZSgpOworICAgICAgICBwcm92aWRlVG8oJmdyb3VwLCBuYW1lLCBhZG9w
dFB0cihzdXBwbGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiBzdXBwbGVtZW50OworfQorCitJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpmYWN0
b3J5QmFja2VuZCgpCit7CisgICAgLy8gRG8gbm90IGFkZCBwYWdlIHNldHRpbmcgYmFzZWQgYWNj
ZXNzIGNvbnRyb2wgaGVyZSBzaW5jZSB0aGlzIG9iamVjdCBpcyBzaGFyZWQgYnkgYWxsIHBhZ2Vz
IGluCisgICAgLy8gdGhlIGdyb3VwIGFuZCBoYXZpbmcgcGVyLXBhZ2UgY29udHJvbHMgaXMgbWlz
bGVhZGluZy4KKyAgICBpZiAoIW1fZmFjdG9yeUJhY2tlbmQpCisgICAgICAgIG1fZmFjdG9yeUJh
Y2tlbmQgPSBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKCk7CisgICAgcmV0dXJu
IG1fZmFjdG9yeUJhY2tlbmQuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFi
YXNlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Q
YWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2VfaAorI2RlZmlu
ZSBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2VfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOworY2xhc3MgUGFnZUdyb3VwOwor
CitjbGFzcyBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdl
R3JvdXA+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2Uo
KTsKKyAgICBzdGF0aWMgUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKiBmcm9tKFBhZ2VHcm91cCYp
OworCisgICAgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGZhY3RvcnlCYWNrZW5kKCk7CisK
K3ByaXZhdGU6CisgICAgUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCk7CisKKyAgICBSZWZQdHI8
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IG1fZmFjdG9yeUJhY2tlbmQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KworI2VuZGlmIC8vIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZV9oCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAJKHJl
dmlzaW9uIDEwOTM4NikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRl
ICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
Z2VHcm91cC5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02MzMs
NyArNjM0LDcgQEAgc3RhdGljIERvY3VtZW50KiBhc3NlcnREb2N1bWVudChFcnJvclN0cgogc3Rh
dGljIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBhc3NlcnRJREJGYWN0b3J5KEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFBhZ2UqIHBhZ2Ug
PSBkb2N1bWVudCA/IGRvY3VtZW50LT5wYWdlKCkgOiAwOwotICAgIElEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlKiBpZGJGYWN0b3J5ID0gcGFnZSA/IHBhZ2UtPmdyb3VwKCkuaWRiRmFjdG9yeSgp
IDogMDsKKyAgICBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogaWRiRmFjdG9yeSA9IHBhZ2Ug
PyBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U6OmZyb20ocGFnZS0+Z3JvdXAoKSktPmZhY3RvcnlC
YWNrZW5kKCkgOiAwOwogCiAgICAgaWYgKCFpZGJGYWN0b3J5KQogICAgICAgICAqZXJyb3JTdHJp
bmcgPSAiTm8gSW5kZXhlZERCIGZhY3RvcnkgZm9yIGdpdmVuIGZyYW1lIGZvdW5kIjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlzaW9uIDEwOTM4NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYxLDE3ICsyNjEs
NiBAQCBTdG9yYWdlTmFtZXNwYWNlKiBQYWdlR3JvdXA6OmxvY2FsU3RvcmFnCiAgICAgcmV0dXJu
IG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci1JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSogUGFnZUdyb3VwOjppZGJGYWN0b3J5KCkKLXsK
LSAgICAvLyBEbyBub3QgYWRkIHBhZ2Ugc2V0dGluZyBiYXNlZCBhY2Nlc3MgY29udHJvbCBoZXJl
IHNpbmNlIHRoaXMgb2JqZWN0IGlzIHNoYXJlZCBieSBhbGwgcGFnZXMgaW4KLSAgICAvLyB0aGUg
Z3JvdXAgYW5kIGhhdmluZyBwZXItcGFnZSBjb250cm9scyBpcyBtaXNsZWFkaW5nLgotICAgIGlm
ICghbV9mYWN0b3J5QmFja2VuZCkKLSAgICAgICAgbV9mYWN0b3J5QmFja2VuZCA9IElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gbV9mYWN0b3J5QmFja2Vu
ZC5nZXQoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29y
bGQoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtV
UkwmIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRy
PFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
YmxhY2tsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsIFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMg
aW5qZWN0ZWRGcmFtZXMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgJKHJldmlzaW9uIDEw
OTM4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgIkxpbmtIYXNoLmgiCisjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKICNpbmNsdWRlICJVc2VyU2NyaXB0LmgiCiAjaW5jbHVkZSAiVXNlclN0eWxl
U2hlZXQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC00Miw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTZWN1cml0eU9yaWdpbjsKICAgICBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogCi0gICAgY2xhc3MgUGFnZUdyb3VwIHsKKyAgICBjbGFz
cyBQYWdlR3JvdXAgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8UGFnZUdyb3VwPiB7CiAgICAgICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VHcm91cCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKICAgICAgICAgUGFnZUdyb3VwKGNvbnN0IFN0cmluZyYgbmFtZSk7CkBA
IC04MSwxMSArODIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0b3JhZ2VOYW1l
c3BhY2UqIGxvY2FsU3RvcmFnZSgpOwogICAgICAgICBib29sIGhhc0xvY2FsU3RvcmFnZSgpIHsg
cmV0dXJuIG1fbG9jYWxTdG9yYWdlOyB9CiAKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
LSAgICAgICAgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZhY3RvcnkoKTsKLSAgICAg
ICAgYm9vbCBoYXNJREJGYWN0b3J5KCkgeyByZXR1cm4gbV9mYWN0b3J5QmFja2VuZDsgfQotI2Vu
ZGlmCi0KICAgICAgICAgdm9pZCBhZGRVc2VyU2NyaXB0VG9Xb3JsZChET01XcmFwcGVyV29ybGQq
LCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwgUGFz
c093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwgVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcyk7CkBAIC0xMjIsOSArMTE4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHVuc2lnbmVkIG1faWRlbnRpZmllcjsKICAgICAgICAgUmVmUHRyPFN0b3JhZ2VOYW1lc3Bh
Y2U+IG1fbG9jYWxTdG9yYWdlOwotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgICAg
ICBSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IG1fZmFjdG9yeUJhY2tlbmQ7Ci0j
ZW5kaWYKIAogICAgICAgICBPd25QdHI8VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsKICAg
ICAgICAgT3duUHRyPFVzZXJTdHlsZVNoZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsK
</data>
<flag name="review"
          id="132531"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>