<?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>161763</bug_id>
          
          <creation_ts>2016-09-08 15:05:57 -0700</creation_ts>
          <short_desc>[WTF] HashTable&apos;s rehash is not compatible to Ref&lt;T&gt; and ASan</short_desc>
          <delta_ts>2016-09-12 16:11:00 -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>Web Template Framework</component>
          <version>WebKit 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>161726</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1227863</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-08 15:05:57 -0700</bug_when>
    <thetext>In HashTable::rehash, we perform reinsert(WTFMove(oldTable[i])).
Of course, later, this oldTable[i]&apos;s destructor should be called.
But unfortunately, we decide whether we should call the destructor for the given entry by checking (!isDeletedBucket(table[i])) in HashTable::deallocateTable().
At that case, if the target is already moved, we accidentally touch the poisoned entry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227888</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-08 15:49:36 -0700</bug_when>
    <thetext>We can take the similar way to the Vector, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228017</commentid>
    <comment_count>2</comment_count>
      <attachid>288382</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-08 20:07:01 -0700</bug_when>
    <thetext>Created attachment 288382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228048</commentid>
    <comment_count>3</comment_count>
      <attachid>288382</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-08 21:36:50 -0700</bug_when>
    <thetext>Comment on attachment 288382
Patch

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

r=me.

&gt; Source/WTF/ChangeLog:8
&gt; +        If we move a object, the location which the moved object used should not be touched anymore.

/a object/an object/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228056</commentid>
    <comment_count>4</comment_count>
      <attachid>288387</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-08 22:06:47 -0700</bug_when>
    <thetext>Created attachment 288387
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228060</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-08 22:13:30 -0700</bug_when>
    <thetext>Committed r205694: &lt;http://trac.webkit.org/changeset/205694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228608</commentid>
    <comment_count>6</comment_count>
      <attachid>288387</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-11 09:28:55 -0700</bug_when>
    <thetext>Comment on attachment 288387
Patch for landing

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

&gt; Source/WTF/wtf/HashTable.h:1157
&gt; -            if (!isDeletedBucket(table[i]))
&gt; +            if (!isEmptyOrDeletedBucket(table[i]))
&gt;                  table[i].~ValueType();

This breaks hash tables for types where empty objects need to be destroyed. Support for that is a feature. I understand it’s not helpful for Ref, but it’s not OK to just skip the destructor for an arbitrary type; perhaps this is not an issue with any of the existing types, but it’s wrong to do this globally for all types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228609</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-11 09:30:09 -0700</bug_when>
    <thetext>We should come up with an alternate fix that doesn’t create the new requirement that empty objects don’t need destruction. Or we could double check that we don’t need the features of destroying empty objects and change the rules for hash tables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228624</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-11 15:17:18 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; We should come up with an alternate fix that doesn’t create the new
&gt; requirement that empty objects don’t need destruction. Or we could double
&gt; check that we don’t need the features of destroying empty objects and change
&gt; the rules for hash tables.

So, is Ref.h&apos;s comment &quot;// Hash table deleted/empty values, which are only constructed and never copied or destroyed.&quot; invalid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228625</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-11 15:26:19 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228626</commentid>
    <comment_count>10</comment_count>
      <attachid>288533</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-11 15:26:24 -0700</bug_when>
    <thetext>Created attachment 288533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228629</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-11 15:31:24 -0700</bug_when>
    <thetext>So, newly introducing the rule that empty value should not be destroyed is not good.
I&apos;ve uploaded the patch, which ensures that destructors are also called for empty values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228636</commentid>
    <comment_count>12</comment_count>
      <attachid>288533</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-11 16:01:57 -0700</bug_when>
    <thetext>Comment on attachment 288533
Patch

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

&gt; Source/WTF/wtf/HashTable.h:1212
&gt;              oldTable[i].~ValueType();

Alternative implementation could be considered: making the bucket deleted (and calling deallocateTable later).

Pros:
    simple
Cons:
    unnecessary store happens here (to make this bucket deleted).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228839</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-12 12:13:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; We should come up with an alternate fix that doesn’t create the new
&gt; &gt; requirement that empty objects don’t need destruction. Or we could double
&gt; &gt; check that we don’t need the features of destroying empty objects and change
&gt; &gt; the rules for hash tables.
&gt; 
&gt; So, is Ref.h&apos;s comment &quot;// Hash table deleted/empty values, which are only
&gt; constructed and never copied or destroyed.&quot; invalid?

Yes, I am pretty sure that comment is incorrect for empty values.

I am not saying we can’t change things if we like, but at present I believe deleted values are special and are never copied or destroyed but empty values are not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228852</commentid>
    <comment_count>14</comment_count>
      <attachid>288533</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-12 12:24:47 -0700</bug_when>
    <thetext>Comment on attachment 288533
Patch

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

&gt;&gt; Source/WTF/wtf/HashTable.h:1212
&gt;&gt;              oldTable[i].~ValueType();
&gt; 
&gt; Alternative implementation could be considered: making the bucket deleted (and calling deallocateTable later).
&gt; 
&gt; Pros:
&gt;     simple
&gt; Cons:
&gt;     unnecessary store happens here (to make this bucket deleted).

Generally we have to destroy a value before marking a bucket deleted. So it seems that marking a bucket deleted would be in *addition* to the destructor, not instead of the destructor. So I am not sure there is any benefit there. I suppose we could drop all the code in this loop that calls destructors if we instead call deallocateTable on the old table after we are done, but I am not sure what benefit that would have; iterating the table a second time seems like unnecessary extra work.

What’s possibly missing, I think, is an optimization for classes like RefPtr and Ref. For those classes, it is safe to drop a moved-from value or an empty value without running the destructor. I am not sure if there is enough inlining for the compiler to discard the dead destructor code that checks the pointer for null and decrements the reference count. Maybe the compiler can see that the pointer is null and optimize all that code out. In both the empty bucket case above and in the &quot;just moved from this bucket&quot; case. But if the compiler doesn’t do that optimization, we could add a new trait and optimize that explicitly here in the C++ code. Either way, the destructor calls here should expand to no code at all in the Ref and RefPtr case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228956</commentid>
    <comment_count>15</comment_count>
      <attachid>288533</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-12 15:49:54 -0700</bug_when>
    <thetext>Comment on attachment 288533
Patch

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

Thank you for your review!

&gt;&gt;&gt; Source/WTF/wtf/HashTable.h:1212
&gt;&gt;&gt;              oldTable[i].~ValueType();
&gt;&gt; 
&gt;&gt; Alternative implementation could be considered: making the bucket deleted (and calling deallocateTable later).
&gt;&gt; 
&gt;&gt; Pros:
&gt;&gt;     simple
&gt;&gt; Cons:
&gt;&gt;     unnecessary store happens here (to make this bucket deleted).
&gt; 
&gt; Generally we have to destroy a value before marking a bucket deleted. So it seems that marking a bucket deleted would be in *addition* to the destructor, not instead of the destructor. So I am not sure there is any benefit there. I suppose we could drop all the code in this loop that calls destructors if we instead call deallocateTable on the old table after we are done, but I am not sure what benefit that would have; iterating the table a second time seems like unnecessary extra work.
&gt; 
&gt; What’s possibly missing, I think, is an optimization for classes like RefPtr and Ref. For those classes, it is safe to drop a moved-from value or an empty value without running the destructor. I am not sure if there is enough inlining for the compiler to discard the dead destructor code that checks the pointer for null and decrements the reference count. Maybe the compiler can see that the pointer is null and optimize all that code out. In both the empty bucket case above and in the &quot;just moved from this bucket&quot; case. But if the compiler doesn’t do that optimization, we could add a new trait and optimize that explicitly here in the C++ code. Either way, the destructor calls here should expand to no code at all in the Ref and RefPtr case.

The benefit is just dropping this isEmptyBucket branch here. It makes this loop super tight for isEmptyOrDeletedBucket case. But anyway, in that case, we need the additional loop after this loop, so I don&apos;t think it is good.

And interesting. Ideally, dead destructor should not be called. Currently, in WTF::Vector, such cases are handled by canMoveWithMemcpy: memcpy &amp; memmove are used to move Ref &amp; RefPtr and it does not call destructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228971</commentid>
    <comment_count>16</comment_count>
      <attachid>288533</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-12 16:10:54 -0700</bug_when>
    <thetext>Comment on attachment 288533
Patch

Clearing flags on attachment: 288533

Committed r205836: &lt;http://trac.webkit.org/changeset/205836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228972</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-12 16:11:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288382</attachid>
            <date>2016-09-08 20:07:01 -0700</date>
            <delta_ts>2016-09-11 15:26:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161763-20160908200434.patch</filename>
            <type>text/plain</type>
            <size>7317</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5MzU4YjQ1YzAxMGYwNzYyOWM3NzMx
YWRlMjE1OTBhNDIzMmU4OTUuLmY3YWY1MTk1MGVjNzFiMmRjODljYmM1OGI1MmJmMmUxMDA4Yjc1
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDktMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gSGFzaFRhYmxlJ3MgcmVoYXNoIGlz
IG5vdCBjb21wYXRpYmxlIHRvIFJlZjxUPiBhbmQgQVNhbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgd2UgbW92ZSBhIG9iamVjdCwgdGhlIGxvY2F0
aW9uIHdoaWNoIHRoZSBtb3ZlZCBvYmplY3QgdXNlZCBzaG91bGQgbm90IGJlIHRvdWNoZWQgYW55
bW9yZS4KKyAgICAgICAgSGFzaFRhYmxlOjpyZWhhc2ggcGVyZm9ybXMgV1RGTW92ZSBmb3IgdGhl
IG9iamVjdCB0aGF0IHJlc2lkZXMgaW4gdGhlIG9sZCB0YWJsZS4KKyAgICAgICAgSG93ZXZlciwg
YWZ0ZXIgbW92aW5nIGl0LCB3ZSBhY2NpZGVudGFsbHkgdG91Y2ggdGhpcyBsb2NhdGlvbiBieSB1
c2luZyBgIWlzRW1wdHlPckRlbGV0ZWRCdWNrZXQodGFibGVbaV0pYAorICAgICAgICBpbiBIYXNo
VGFibGU6OmRlYWxsb2NhdGVUYWJsZS4gQW5kIGl0IGNhdXNlcyBBU2FuIGNyYXNoaW5nIGlmIHdl
IHVzZSBSZWY8PiBmb3IgSGFzaFRhYmxlJ3Mga2V5IG9yIHZhbHVlLgorCisgICAgICAgIEluIHRo
aXMgcGF0Y2gsIHdlIGNhbGwgdGhlIGRlc3RydWN0b3IgcmlnaHQgYWZ0ZXIgbW92aW5nIHRoZSBv
YmplY3QuIEFuZCBIYXNoVGFibGU6OnJlaGFzaCBqdXN0IGNhbGxzCisgICAgICAgIGZhc3RGcmVl
IHNpbmNlIGFsbCB0aGUgb2JqZWN0cyBpbiB0aGUgb2xkIHRhYmxlIGFyZSBhbHJlYWR5IG1vdmVk
IGFuZCBkZXN0cnVjdGVkLgorICAgICAgICBBbmQgd2UgYWxzbyBjaGFuZ2UgSGFzaFRhYmxlOjpk
ZWFsbG9jYXRlIHRvIGRlc3RydWN0IG9ubHkgbGl2ZSBvYmplY3RzLiBDYWxsaW5nIGRlc3RydWN0
b3JzIGZvciBlbXB0eSBvYmplY3RzCisgICAgICAgIGlzIG1lYW5pbmdsZXNzLiBBbmQgYWNjb3Jk
aW5nIHRvIHRoZSBSZWY8PidzIGNvbW1lbnQsIGVtcHR5IG9iamVjdCBpcyBub3QgZGVzaWduZWQg
dG8gYmUgZGVzdHJ1Y3RlZC4KKworICAgICAgICAqIHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAg
KFdURjo6S2V5VHJhaXRzPjo6ZGVhbGxvY2F0ZVRhYmxlKToKKwogMjAxNi0wOS0wNyAgSkYgQmFz
dGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgYml0d2lzZV9jYXN0OiBhbGxv
dyBjb25zdCBkZXN0aW5hdGlvbiB0eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNo
VGFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCmluZGV4IGRiNGM1NmY3YzM4MGMy
YzVhNTRkMjVkZmY2YWI4ZGI5YmFkYjA3ODEuLmJjZTc1MTEyMGNhMDU1MzBhZWUzYzk1YzkzM2Rj
OTI0ZTdiNzI3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCkBAIC0xMTUzLDcgKzExNTMsNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hG
dW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6ZGVhbGxvY2F0ZVRhYmxlKFZhbHVlVHlwZSog
dGFibGUsIHVuc2lnbmVkIHNpemUpCiAgICAgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIWlzRGVsZXRlZEJ1Y2tldCh0YWJs
ZVtpXSkpCisgICAgICAgICAgICBpZiAoIWlzRW1wdHlPckRlbGV0ZWRCdWNrZXQodGFibGVbaV0p
KQogICAgICAgICAgICAgICAgIHRhYmxlW2ldLn5WYWx1ZVR5cGUoKTsKICAgICAgICAgfQogICAg
ICAgICBmYXN0RnJlZSh0YWJsZSk7CkBAIC0xMjAzLDYgKzEyMDMsNyBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgVmFsdWUqIHJlaW5zZXJ0ZWRFbnRyeSA9
IHJlaW5zZXJ0KFdURk1vdmUob2xkVGFibGVbaV0pKTsKKyAgICAgICAgICAgIG9sZFRhYmxlW2ld
Ln5WYWx1ZVR5cGUoKTsKICAgICAgICAgICAgIGlmIChzdGQ6OmFkZHJlc3NvZihvbGRUYWJsZVtp
XSkgPT0gZW50cnkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIW5ld0VudHJ5KTsKICAgICAg
ICAgICAgICAgICBuZXdFbnRyeSA9IHJlaW5zZXJ0ZWRFbnRyeTsKQEAgLTEyMTEsNyArMTIxMiw3
IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIG1fZGVsZXRlZENvdW50ID0gMDsKIAotICAg
ICAgICBkZWFsbG9jYXRlVGFibGUob2xkVGFibGUsIG9sZFRhYmxlU2l6ZSk7CisgICAgICAgIGZh
c3RGcmVlKG9sZFRhYmxlKTsKIAogICAgICAgICBpbnRlcm5hbENoZWNrVGFibGVDb25zaXN0ZW5j
eSgpOwogICAgICAgICByZXR1cm4gbmV3RW50cnk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTkxMTA2OTY5OGVmN2U0ZDljNmUzODQzZjQ2Mjk0
MTBmNmMxN2IyNS4uOTdjMGVmN2UwODU0YzdmNTRmMTg2NmM4MTdlOGRhZGUxYjI5N2M4MCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE2LTA5LTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgorCisgICAgICAgIFtXVEZdIEhhc2hUYWJsZSdzIHJlaGFzaCBpcyBub3QgY29tcGF0aWJsZSB0
byBSZWY8VD4gYW5kIEFTYW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MTc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCB0ZXN0cyB0aGF0IGluc2VydHMgbWFueSBSZWY8PnMuIEl0IGluY3VycyBI
YXNoVGFibGU6OnJlaGFzaCwgYW5kIHdlIGNhbiBlbnN1cmUKKyAgICAgICAgdGhhdCBBU2FuIGNy
YXNoIGRvZXMgbm90IG9jY3VyIHdpdGggdGhpcyBwYXRjaC4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNi0wOS0wOCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlLWxhbmQgcjIwNTU4MCBh
ZnRlciByMjA1NjQ5IGZpeGVkIHRoZSB0ZXN0IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hhc2hNYXAuY3BwCmluZGV4IDQyYTliNzhmMzFmZGQ3MGQwOWYwN2ZiNTA5N2Ji
ZDIzMzEyNmI2YWIuLmExMDlkM2YxZGRjMGEyY2E3ZDI3MDliNjBmNTU2MDAwZTU2ZGFjMDkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCkBAIC03ODksNiArNzg5
LDE4IEBAIFRFU1QoV1RGX0hhc2hNYXAsIFJlZl9LZXkpCiAgICAgfQogCiAgICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgewor
ICAgICAgICBIYXNoTWFwPFJlZjxSZWZMb2dnZXI+LCBpbnQ+IG1hcDsKKyAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCA2NDsgKytpKSB7CisgICAgICAgICAgICBSZWY8UmVmTG9nZ2VyPiByZWYg
PSBhZG9wdFJlZigqbmV3IFJlZkxvZ2dlcigiYSIpKTsKKyAgICAgICAgICAgIGF1dG8qIHBvaW50
ZXIgPSByZWYucHRyKCk7CisgICAgICAgICAgICBtYXAuYWRkKFdURk1vdmUocmVmKSwgaSArIDEp
OworICAgICAgICAgICAgQVNTRVJUX1RSVUUobWFwLmNvbnRhaW5zKHBvaW50ZXIpKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIEFTU0VSVF9TVFJFUSgiZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOwogfQogCiBURVNUKFdURl9IYXNoTWFwLCBSZWZfVmFsdWUpCkBAIC04OTAsNiArOTAy
LDE3IEBAIFRFU1QoV1RGX0hhc2hNYXAsIFJlZl9WYWx1ZSkKICAgICB9CiAKICAgICBBU1NFUlRf
U1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7
CisgICAgICAgIEhhc2hNYXA8aW50LCBSZWY8UmVmTG9nZ2VyPj4gbWFwOworICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IDY0OyArK2kpIHsKKyAgICAgICAgICAgIFJlZjxSZWZMb2dnZXI+IHJl
ZiA9IGFkb3B0UmVmKCpuZXcgUmVmTG9nZ2VyKCJhIikpOworICAgICAgICAgICAgbWFwLmFkZChp
ICsgMSwgV1RGTW92ZShyZWYpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKG1hcC5jb250YWlu
cyhpICsgMSkpOworICAgICAgICB9CisgICAgfQorCisgICAgQVNTRVJUX1NUUkVRKCJkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBk
ZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBk
ZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBk
ZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSAi
LCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9CiAKIFRFU1QoV1RGX0hhc2hNYXAsIERlbGV0ZWRB
ZGRyZXNzT2ZPcGVyYXRvcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hhc2hTZXQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5j
cHAKaW5kZXggOTIyYzE2YzQ4MThiMzA1ODUwMjc1ZjkzZGY5YTMyOTQyMGIwYzk4OS4uM2QyNTA1
N2Y4ZjM4Njc5MDk3NTFkOGNmZTlhMDQ2NDcxZTRlODA5NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKQEAgLTQyOCw2ICs0MjgsMTcgQEAgVEVTVChXVEZfSGFz
aFNldCwgUmVmKQogICAgIH0KIAogICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIs
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgSGFzaFNldDxSZWY8UmVm
TG9nZ2VyPj4gc2V0OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDY0OyArK2kpIHsKKyAg
ICAgICAgICAgIFJlZjxSZWZMb2dnZXI+IHJlZiA9IGFkb3B0UmVmKCpuZXcgUmVmTG9nZ2VyKCJh
IikpOworICAgICAgICAgICAgYXV0byogcG9pbnRlciA9IHJlZi5wdHIoKTsKKyAgICAgICAgICAg
IHNldC5hZGQoV1RGTW92ZShyZWYpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHNldC5jb250
YWlucyhwb2ludGVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBk
ZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBk
ZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBk
ZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJl
ZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9CiAKIFRFU1QoV1RGX0hhc2hTZXQsIERlbGV0
ZWRBZGRyZXNzT2ZPcGVyYXRvcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288387</attachid>
            <date>2016-09-08 22:06:47 -0700</date>
            <delta_ts>2016-09-11 15:26:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161763-20160908220420.patch</filename>
            <type>text/plain</type>
            <size>8545</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhkODUwOGQyMzk0MTZjMjVjYmYwNmUx
OTJiOGEzNGZlZTRlYzNiZjEuLmUxZDQzOWRlNjg1NDMwN2ZkYjBmNjIwNjU0M2VmMmJkNWNlZDBl
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDktMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gSGFzaFRhYmxlJ3MgcmVoYXNoIGlz
IG5vdCBjb21wYXRpYmxlIHRvIFJlZjxUPiBhbmQgQVNhbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgd2UgbW92ZSBhbiBvYmplY3QsIHRoZSBsb2Nh
dGlvbiB3aGljaCB0aGUgbW92ZWQgb2JqZWN0IHVzZWQgc2hvdWxkIG5vdCBiZSB0b3VjaGVkIGFu
eW1vcmUuCisgICAgICAgIEhhc2hUYWJsZTo6cmVoYXNoIHBlcmZvcm1zIFdURk1vdmUgZm9yIHRo
ZSBvYmplY3QgdGhhdCByZXNpZGVzIGluIHRoZSBvbGQgdGFibGUuCisgICAgICAgIEhvd2V2ZXIs
IGFmdGVyIG1vdmluZyBpdCwgd2UgYWNjaWRlbnRhbGx5IHRvdWNoIHRoaXMgbG9jYXRpb24gYnkg
dXNpbmcgYCFpc0VtcHR5T3JEZWxldGVkQnVja2V0KHRhYmxlW2ldKWAKKyAgICAgICAgaW4gSGFz
aFRhYmxlOjpkZWFsbG9jYXRlVGFibGUuIEFuZCBpdCBjYXVzZXMgQVNhbiBjcmFzaGluZyBpZiB3
ZSB1c2UgUmVmPD4gZm9yIEhhc2hUYWJsZSdzIGtleSBvciB2YWx1ZS4KKworICAgICAgICBJbiB0
aGlzIHBhdGNoLCB3ZSBjYWxsIHRoZSBkZXN0cnVjdG9yIHJpZ2h0IGFmdGVyIG1vdmluZyB0aGUg
b2JqZWN0LiBBbmQgSGFzaFRhYmxlOjpyZWhhc2gganVzdCBjYWxscworICAgICAgICBmYXN0RnJl
ZSBzaW5jZSBhbGwgdGhlIG9iamVjdHMgaW4gdGhlIG9sZCB0YWJsZSBhcmUgYWxyZWFkeSBtb3Zl
ZCBhbmQgZGVzdHJ1Y3RlZC4KKyAgICAgICAgQW5kIHdlIGFsc28gY2hhbmdlIEhhc2hUYWJsZTo6
ZGVhbGxvY2F0ZSB0byBkZXN0cnVjdCBvbmx5IGxpdmUgb2JqZWN0cy4gQ2FsbGluZyBkZXN0cnVj
dG9ycyBmb3IgZW1wdHkgb2JqZWN0cworICAgICAgICBpcyBtZWFuaW5nbGVzcy4gQW5kIGFjY29y
ZGluZyB0byB0aGUgUmVmPD4ncyBjb21tZW50LCBlbXB0eSBvYmplY3QgaXMgbm90IGRlc2lnbmVk
IHRvIGJlIGRlc3RydWN0ZWQuCisKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAg
IChXVEY6OktleVRyYWl0cz46OmRlYWxsb2NhdGVUYWJsZSk6CisKIDIwMTYtMDktMDggIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBIZWFwOjppc01hcmtlZCgpIHNo
b3VsZG4ndCBwYXkgdGhlIHByaWNlIG9mIGNvbmN1cnJlbnQgbGF6eSBmbGlwcGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGYzNzJlNzVmOTQ3MTNkNzVmZjY0ZjA2MjAzMWJmMDdiOGI3OTM4MTEuLmVkYzEwYzVk
N2YzOTk4OTUyZjVhYjdkNGExZGU5YzQzMDc1N2JlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNi0wOS0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
KworICAgICAgICBbV1RGXSBIYXNoVGFibGUncyByZWhhc2ggaXMgbm90IGNvbXBhdGlibGUgdG8g
UmVmPFQ+IGFuZCBBU2FuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjE3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbmNsdWRlIHd0Zi90ZXh0L1N0cmluZ0hhc2guaCB0byBhdm9pZCBsaW5raW5nIGVy
cm9ycyBpbiBFRkwgcG9ydC4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLmg6CisKIDIwMTYtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBIVE1MT2JqZWN0RWxlbWVudC5oc3BhY2UgLyB2c3BhY2UgYXR0cmlidXRlcyBzaG91
bGQgYmUgdW5zaWduZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oIGIv
U291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKaW5kZXggZGI0YzU2ZjdjMzgwYzJjNWE1NGQyNWRm
ZjZhYjhkYjliYWRiMDc4MS4uYmNlNzUxMTIwY2EwNTUzMGFlZTNjOTVjOTMzZGM5MjRlN2I3Mjdh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvSGFzaFRhYmxlLmgKQEAgLTExNTMsNyArMTE1Myw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywg
VHJhaXRzLCBLZXlUcmFpdHM+OjpkZWFsbG9jYXRlVGFibGUoVmFsdWVUeXBlKiB0YWJsZSwgdW5z
aWduZWQgc2l6ZSkKICAgICB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKLSAgICAgICAgICAgIGlmICghaXNEZWxldGVkQnVja2V0KHRhYmxlW2ldKSkKKyAg
ICAgICAgICAgIGlmICghaXNFbXB0eU9yRGVsZXRlZEJ1Y2tldCh0YWJsZVtpXSkpCiAgICAgICAg
ICAgICAgICAgdGFibGVbaV0uflZhbHVlVHlwZSgpOwogICAgICAgICB9CiAgICAgICAgIGZhc3RG
cmVlKHRhYmxlKTsKQEAgLTEyMDMsNiArMTIwMyw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBWYWx1ZSogcmVpbnNlcnRlZEVudHJ5ID0gcmVpbnNlcnQo
V1RGTW92ZShvbGRUYWJsZVtpXSkpOworICAgICAgICAgICAgb2xkVGFibGVbaV0uflZhbHVlVHlw
ZSgpOwogICAgICAgICAgICAgaWYgKHN0ZDo6YWRkcmVzc29mKG9sZFRhYmxlW2ldKSA9PSBlbnRy
eSkgewogICAgICAgICAgICAgICAgIEFTU0VSVCghbmV3RW50cnkpOwogICAgICAgICAgICAgICAg
IG5ld0VudHJ5ID0gcmVpbnNlcnRlZEVudHJ5OwpAQCAtMTIxMSw3ICsxMjEyLDcgQEAgbmFtZXNw
YWNlIFdURiB7CiAKICAgICAgICAgbV9kZWxldGVkQ291bnQgPSAwOwogCi0gICAgICAgIGRlYWxs
b2NhdGVUYWJsZShvbGRUYWJsZSwgb2xkVGFibGVTaXplKTsKKyAgICAgICAgZmFzdEZyZWUob2xk
VGFibGUpOwogCiAgICAgICAgIGludGVybmFsQ2hlY2tUYWJsZUNvbnNpc3RlbmN5KCk7CiAgICAg
ICAgIHJldHVybiBuZXdFbnRyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5oCmluZGV4IDRkNGFhNDQyYjJkNDBmYTI5NzYxYTA5M2E1ZDUzNTUwMTMx
NTI4OGQuLjI5MDc1OGY1OTY4ZjgyYmQ0MzkxMzg0YzY2NzQyYjQ1ZDA0YmI3ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAtMjcsNiAr
MjcsNyBAQAogI2RlZmluZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzX2gKIAogI2luY2x1ZGUgPHd0
Zi9IYXNoQ291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlhZjU3ZDBh
ZGM1NGVlNWNlYmJlY2M2MzRkYjdlYzRkZDUzNDE1N2UuLmJhMWIyOTlhMGVlNzE2MWU2OWQzNmUw
NWQ4Mjk2OThjZDA4ZGU2NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wOS0wOCAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBIYXNoVGFibGUncyByZWhh
c2ggaXMgbm90IGNvbXBhdGlibGUgdG8gUmVmPFQ+IGFuZCBBU2FuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE3NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdGhhdCBpbnNlcnRzIG1h
bnkgUmVmPD5zLiBJdCBpbmN1cnMgSGFzaFRhYmxlOjpyZWhhc2gsIGFuZCB3ZSBjYW4gZW5zdXJl
CisgICAgICAgIHRoYXQgQVNhbiBjcmFzaCBkb2VzIG5vdCBvY2N1ciB3aXRoIHRoaXMgcGF0Y2gu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hhc2hTZXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTYt
MDktMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBVUkxQYXJzZXI6IEhhbmRsZSBcIGluIHBhdGhzIG9mIHNwZWNpYWwgVVJMcyBhY2NvcmRp
bmcgdG8gc3BlYwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFz
aE1hcC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAppbmRl
eCA0MmE5Yjc4ZjMxZmRkNzBkMDlmMDdmYjUwOTdiYmQyMzMxMjZiNmFiLi5hMTA5ZDNmMWRkYzBh
MmNhN2QyNzA5YjYwZjU1NjAwMGU1NmRhYzA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9IYXNoTWFwLmNwcApAQCAtNzg5LDYgKzc4OSwxOCBAQCBURVNUKFdURl9IYXNoTWFwLCBS
ZWZfS2V5KQogICAgIH0KIAogICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgSGFzaE1hcDxSZWY8UmVmTG9n
Z2VyPiwgaW50PiBtYXA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjQ7ICsraSkgewor
ICAgICAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcmVmID0gYWRvcHRSZWYoKm5ldyBSZWZMb2dnZXIo
ImEiKSk7CisgICAgICAgICAgICBhdXRvKiBwb2ludGVyID0gcmVmLnB0cigpOworICAgICAgICAg
ICAgbWFwLmFkZChXVEZNb3ZlKHJlZiksIGkgKyAxKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVF
KG1hcC5jb250YWlucyhwb2ludGVyKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlRf
U1RSRVEoImRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVm
KGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEp
IGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRl
cmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVm
KGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEp
IGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRl
cmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVm
KGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEp
IGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRl
cmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpIGRlcmVm
KGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KIAogVEVTVChXVEZfSGFz
aE1hcCwgUmVmX1ZhbHVlKQpAQCAtODkwLDYgKzkwMiwxNyBAQCBURVNUKFdURl9IYXNoTWFwLCBS
ZWZfVmFsdWUpCiAgICAgfQogCiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwg
dGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAgICAgICBIYXNoTWFwPGludCwgUmVm
PFJlZkxvZ2dlcj4+IG1hcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgKytpKSB7
CisgICAgICAgICAgICBSZWY8UmVmTG9nZ2VyPiByZWYgPSBhZG9wdFJlZigqbmV3IFJlZkxvZ2dl
cigiYSIpKTsKKyAgICAgICAgICAgIG1hcC5hZGQoaSArIDEsIFdURk1vdmUocmVmKSk7CisgICAg
ICAgICAgICBBU1NFUlRfVFJVRShtYXAuY29udGFpbnMoaSArIDEpKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIEFTU0VSVF9TVFJFUSgiZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwog
fQogCiBURVNUKFdURl9IYXNoTWFwLCBEZWxldGVkQWRkcmVzc09mT3BlcmF0b3IpCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCmluZGV4IDkyMmMxNmM0ODE4YjMwNTg1
MDI3NWY5M2RmOWEzMjk0MjBiMGM5ODkuLjNkMjUwNTdmOGYzODY3OTA5NzUxZDhjZmU5YTA0NjQ3
MWU0ZTgwOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hT
ZXQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCkBA
IC00MjgsNiArNDI4LDE3IEBAIFRFU1QoV1RGX0hhc2hTZXQsIFJlZikKICAgICB9CiAKICAgICBB
U1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisK
KyAgICB7CisgICAgICAgIEhhc2hTZXQ8UmVmPFJlZkxvZ2dlcj4+IHNldDsKKyAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCA2NDsgKytpKSB7CisgICAgICAgICAgICBSZWY8UmVmTG9nZ2VyPiBy
ZWYgPSBhZG9wdFJlZigqbmV3IFJlZkxvZ2dlcigiYSIpKTsKKyAgICAgICAgICAgIGF1dG8qIHBv
aW50ZXIgPSByZWYucHRyKCk7CisgICAgICAgICAgICBzZXQuYWRkKFdURk1vdmUocmVmKSk7Cisg
ICAgICAgICAgICBBU1NFUlRfVFJVRShzZXQuY29udGFpbnMocG9pbnRlcikpOworICAgICAgICB9
CisgICAgfQorICAgIEFTU0VSVF9TVFJFUSgiZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVy
ZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OwogfQogCiBURVNUKFdURl9IYXNoU2V0LCBEZWxldGVkQWRkcmVzc09mT3BlcmF0b3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288533</attachid>
            <date>2016-09-11 15:26:24 -0700</date>
            <delta_ts>2016-09-12 16:10:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161763-20160912072352.patch</filename>
            <type>text/plain</type>
            <size>2842</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQxMGE0ZTg1ZGU0N2JkZWIxNDE4Y2U2
MTIxZjM1MzRiOGY0MjRhNTEuLjc2MmIxZDM3OGJlYzFiZWMwMmViMjhkMDBjZTY4YjkxNTYyMjYy
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDktMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gSGFzaFRhYmxlJ3MgcmVoYXNoIGlz
IG5vdCBjb21wYXRpYmxlIHRvIFJlZjxUPiBhbmQgQVNhbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVzdHJ1Y3RvcnMgb2YgSGFzaFRhYmxlJ3MgZW1w
dHkgdmFsdWVzIG5lZWQgdG8gYmUgY2FsbGVkIHdoaWxlIG9uZXMgb2YgZGVsZXRlZCB2YWx1ZXMg
ZG9uJ3QuCisKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAgIChXVEY6OktleVRy
YWl0cz46OmRlYWxsb2NhdGVUYWJsZSk6CisgICAgICAgICogd3RmL1JlZi5oOgorCiAyMDE2LTA5
LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgcGFyc2VIVE1M
SW50ZWdlcigpIHNob3VsZCB0YWtlIGEgU3RyaW5nVmlldyBpbiBwYXJhbWV0ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxl
LmgKaW5kZXggYmNlNzUxMTIwY2EwNTUzMGFlZTNjOTVjOTMzZGM5MjRlN2I3MjdhYS4uYTU3NmU2
MmNlYzQ5YzBjYzk3MmI4ZTc3MzhhOWNjOTRhZDViYmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTEx
NTMsNyArMTE1Myw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHZvaWQgSGFzaFRhYmxlPEtleSwg
VmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjpkZWFs
bG9jYXRlVGFibGUoVmFsdWVUeXBlKiB0YWJsZSwgdW5zaWduZWQgc2l6ZSkKICAgICB7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgIGlm
ICghaXNFbXB0eU9yRGVsZXRlZEJ1Y2tldCh0YWJsZVtpXSkpCisgICAgICAgICAgICBpZiAoIWlz
RGVsZXRlZEJ1Y2tldCh0YWJsZVtpXSkpCiAgICAgICAgICAgICAgICAgdGFibGVbaV0uflZhbHVl
VHlwZSgpOwogICAgICAgICB9CiAgICAgICAgIGZhc3RGcmVlKHRhYmxlKTsKQEAgLTExOTcsMTEg
KzExOTcsMTcgQEAgbmFtZXNwYWNlIFdURiB7CiAKICAgICAgICAgVmFsdWUqIG5ld0VudHJ5ID0g
bnVsbHB0cjsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBvbGRUYWJsZVNpemU7
ICsraSkgewotICAgICAgICAgICAgaWYgKGlzRW1wdHlPckRlbGV0ZWRCdWNrZXQob2xkVGFibGVb
aV0pKSB7CisgICAgICAgICAgICBpZiAoaXNEZWxldGVkQnVja2V0KG9sZFRhYmxlW2ldKSkgewog
ICAgICAgICAgICAgICAgIEFTU0VSVChzdGQ6OmFkZHJlc3NvZihvbGRUYWJsZVtpXSkgIT0gZW50
cnkpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCisgICAgICAg
ICAgICBpZiAoaXNFbXB0eUJ1Y2tldChvbGRUYWJsZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoc3RkOjphZGRyZXNzb2Yob2xkVGFibGVbaV0pICE9IGVudHJ5KTsKKyAgICAgICAgICAg
ICAgICBvbGRUYWJsZVtpXS5+VmFsdWVUeXBlKCk7CisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIFZhbHVlKiByZWluc2VydGVkRW50cnkgPSBy
ZWluc2VydChXVEZNb3ZlKG9sZFRhYmxlW2ldKSk7CiAgICAgICAgICAgICBvbGRUYWJsZVtpXS5+
VmFsdWVUeXBlKCk7CiAgICAgICAgICAgICBpZiAoc3RkOjphZGRyZXNzb2Yob2xkVGFibGVbaV0p
ID09IGVudHJ5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWYuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZi5oCmluZGV4IGU4MWI2OWY5MmY2YzY3OGQ2NzZjMGYzODU3MmExNzgyZjM3MmEz
MGYuLjQ3ZTVmYTA5NmU4MTYwM2MwOGU1NmJhZjFlOGFiZGRmMDkwMWFiMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1JlZi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZi5oCkBAIC0xMTQs
NyArMTE0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmIHsKICAgICAgICAgcmV0
dXJuICp0aGlzOwogICAgIH0KIAotICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZC9lbXB0eSB2YWx1
ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJv
eWVkLgorICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNv
bnN0cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgogICAgIFJlZihIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0K
ICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIg
PT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KICAgICBzdGF0aWMgVCogaGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4oLTEpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>