<?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>157047</bug_id>
          
          <creation_ts>2016-04-26 15:26:45 -0700</creation_ts>
          <short_desc>Assertion failure in bmalloc::vmRevokePermissions(void*, unsigned long).</short_desc>
          <delta_ts>2016-05-03 13:54:34 -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>bmalloc</component>
          <version>WebKit Local 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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187540</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-26 15:26:45 -0700</bug_when>
    <thetext>Just built ToT r200102 for ARM64 and ran jsc.  That got me this crash:

Process 285 stopped
* thread #1: tid = 0x1199, 0x00000001011496e8 JavaScriptCore`bmalloc::vmValidate(unsigned long) + 96, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x00000001011496e8 JavaScriptCore`bmalloc::vmValidate(unsigned long) + 96
JavaScriptCore`bmalloc::vmValidate:
-&gt;  0x1011496e8 &lt;+96&gt;:  str    wzr, [x8]
    0x1011496ec &lt;+100&gt;: b      0x1011496f0               ; &lt;+104&gt;
    0x1011496f0 &lt;+104&gt;: b      0x1011496f4               ; &lt;+108&gt;
    0x1011496f4 &lt;+108&gt;: mov    sp, x29

(lldb) bt
* thread #1: tid = 0x1199, 0x00000001011496e8 JavaScriptCore`bmalloc::vmValidate(unsigned long) + 96, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
  * frame #0: 0x00000001011496e8 JavaScriptCore`bmalloc::vmValidate(unsigned long) + 96
    frame #1: 0x000000010114971c JavaScriptCore`bmalloc::vmValidate(void*, unsigned long) + 28
    frame #2: 0x000000010114db1c JavaScriptCore`bmalloc::vmRevokePermissions(void*, unsigned long) + 32
    frame #3: 0x000000010114d914 JavaScriptCore`bmalloc::VMHeap::allocateSmallChunk(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;, unsigned long) + 180
    frame #4: 0x0000000101148524 JavaScriptCore`bmalloc::VMHeap::allocateSmallPage(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;, unsigned long) + 92
    frame #5: 0x0000000101145d00 JavaScriptCore`bmalloc::Heap::allocateSmallPage(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;, unsigned long)::$_1::operator()() const + 212
    frame #6: 0x0000000101145bc8 JavaScriptCore`bmalloc::Heap::allocateSmallPage(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;, unsigned long) + 164
    frame #7: 0x0000000101146234 JavaScriptCore`bmalloc::Heap::allocateSmallBumpRangesByMetadata(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;, unsigned long, bmalloc::BumpAllocator&amp;, bmalloc::FixedVector&lt;bmalloc::BumpRange, 3ul&gt;&amp;) + 52
    frame #8: 0x0000000101143bc0 JavaScriptCore`bmalloc::Heap::allocateSmallBumpRanges(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;, unsigned long, bmalloc::BumpAllocator&amp;, bmalloc::FixedVector&lt;bmalloc::BumpRange, 3ul&gt;&amp;) + 96
    frame #9: 0x0000000101143b38 JavaScriptCore`bmalloc::Allocator::refillAllocatorSlowCase(bmalloc::BumpAllocator&amp;, unsigned long) + 292
    frame #10: 0x0000000101143f2c JavaScriptCore`bmalloc::Allocator::allocateSlowCase(unsigned long) + 220
    frame #11: 0x00000001010f7f70 JavaScriptCore`bmalloc::Allocator::allocate(unsigned long) + 56
    frame #12: 0x000000010114f598 JavaScriptCore`bmalloc::Cache::allocateSlowCaseNullCache(unsigned long) + 32
    frame #13: 0x00000001010f7ef4 JavaScriptCore`bmalloc::Cache::allocate(unsigned long) + 40
    frame #14: 0x00000001010f78f4 JavaScriptCore`bmalloc::api::malloc(unsigned long) + 24
    frame #15: 0x00000001010f7770 JavaScriptCore`WTF::fastMalloc(unsigned long) + 24
    frame #16: 0x0000000100f80588 JavaScriptCore`WTF::AtomicStringTable::operator new(unsigned long) + 24
    frame #17: 0x00000001010de554 JavaScriptCore`WTF::AtomicStringTable::create(WTF::WTFThreadData&amp;) + 44
    frame #18: 0x00000001011429c8 JavaScriptCore`WTF::WTFThreadData::WTFThreadData() + 112
    frame #19: 0x0000000101142a40 JavaScriptCore`WTF::WTFThreadData::WTFThreadData() + 28
    frame #20: 0x0000000101142aec JavaScriptCore`WTF::WTFThreadData::createAndRegisterForGetspecificDirect() + 28
    frame #21: 0x00000001002eb890 JavaScriptCore`WTF::wtfThreadData() + 100
    frame #22: 0x000000010113275c JavaScriptCore`WTF::initializeThreading() + 80
    frame #23: 0x0000000100008f40 jsc`main + 68
    frame #24: 0x0000000184eb586c libdyld.dylib`start + 4

Disassembly of the crash site says:

lldb) disass
JavaScriptCore`bmalloc::vmValidate:
    0x101149688 &lt;+0&gt;:   stp    x29, x30, [sp, #-16]!
    0x10114968c &lt;+4&gt;:   mov    x29, sp
    0x101149690 &lt;+8&gt;:   sub    sp, sp, #16
    0x101149694 &lt;+12&gt;:  str    x0, [sp, #8]
    0x101149698 &lt;+16&gt;:  ldr    x8, [sp, #8]
    0x10114969c &lt;+20&gt;:  cbnz   x8, 0x1011496b4           ; &lt;+44&gt;
    0x1011496a0 &lt;+24&gt;:  b      0x1011496a4               ; &lt;+28&gt;
    0x1011496a4 &lt;+28&gt;:  movz   x8, #0xbbad, lsl #16
    0x1011496a8 &lt;+32&gt;:  movk   x8, #0xbeef
    0x1011496ac &lt;+36&gt;:  str    wzr, [x8]
    0x1011496b0 &lt;+40&gt;:  b      0x1011496b4               ; &lt;+44&gt;
    0x1011496b4 &lt;+44&gt;:  b      0x1011496b8               ; &lt;+48&gt;
    0x1011496b8 &lt;+48&gt;:  b      0x1011496bc               ; &lt;+52&gt;
    0x1011496bc &lt;+52&gt;:  ldr    x8, [sp, #8]
    0x1011496c0 &lt;+56&gt;:  str    x8, [sp]
    0x1011496c4 &lt;+60&gt;:  bl     0x101144f50               ; bmalloc::vmPageSize()
    0x1011496c8 &lt;+64&gt;:  ldr    x1, [sp, #8]
    0x1011496cc &lt;+68&gt;:  bl     0x101143408               ; unsigned long bmalloc::roundUpToMultipleOf&lt;unsigned long&gt;(unsigned long, unsigned long)
    0x1011496d0 &lt;+72&gt;:  ldr    x8, [sp]
    0x1011496d4 &lt;+76&gt;:  cmp    x8, x0
    0x1011496d8 &lt;+80&gt;:  b.eq   0x1011496f0               ; &lt;+104&gt;
    0x1011496dc &lt;+84&gt;:  b      0x1011496e0               ; &lt;+88&gt;
    0x1011496e0 &lt;+88&gt;:  movz   x8, #0xbbad, lsl #16
    0x1011496e4 &lt;+92&gt;:  movk   x8, #0xbeef
-&gt;  0x1011496e8 &lt;+96&gt;:  str    wzr, [x8]
    0x1011496ec &lt;+100&gt;: b      0x1011496f0               ; &lt;+104&gt;
    0x1011496f0 &lt;+104&gt;: b      0x1011496f4               ; &lt;+108&gt;
    0x1011496f4 &lt;+108&gt;: mov    sp, x29
    0x1011496f8 &lt;+112&gt;: ldp    x29, x30, [sp], #16
    0x1011496fc &lt;+116&gt;: ret    

Registers at crash point are:

(lldb) reg read
General Purpose Registers:
        x0 = 0x0000000000004000
        x1 = 0x0000000000001000
        x2 = 0x0000000000200000
        x3 = 0x0000000000001002
        x4 = 0x0000000035000000
        x5 = 0x0000000000000000
        x6 = 0x000000016fdff5c0
        x7 = 0x0000000000000f70
        x8 = 0x00000000bbadbeef
        x9 = 0x0000000000004fff
       x10 = 0x0000000000003fff
       x11 = 0x00000001ab17f124  
       x12 = 0x00000001ab17f124  
       x13 = 0x000000000000003d
       x14 = 0x0000000000000001
       x15 = 0x0000000000000881
       x16 = 0x0000000000000049
       x17 = 0x0000000000000080
       x18 = 0x0000000000000000
       x19 = 0x0000000000000000
       x20 = 0x0000000000000000
       x21 = 0x0000000000000000
       x22 = 0x0000000000000000
       x23 = 0x0000000000000000
       x24 = 0x0000000000000000
       x25 = 0x0000000000000000
       x26 = 0x0000000000000000
       x27 = 0x0000000000000000
       x28 = 0x000000016fdffcd0
        fp = 0x000000016fdff450
        lr = 0x00000001011496d0  JavaScriptCore`bmalloc::vmValidate(unsigned long) + 72
        sp = 0x000000016fdff440
        pc = 0x00000001011496e8  JavaScriptCore`bmalloc::vmValidate(unsigned long) + 96
      cpsr = 0x80000000

The crash came from this comparison:
    0x1011496d0 &lt;+72&gt;:  ldr    x8, [sp]
    0x1011496d4 &lt;+76&gt;:  cmp    x8, x0

x8 already got trashed in the setting up of 0xbbadbeef for the crash.  So, let&apos;s peek at it on the stack:

(lldb) x/2x $sp
0x16fdff440: 0x00001000 0x00000000

The value compared against is:
        x0 = 0x0000000000004000

So, the issue here is that we&apos;re failing this assertion:
    BASSERT(vmSize == roundUpToMultipleOf(vmPageSize(), vmSize));

with ...
    vmSize = 0x1000 =&gt; 4096
    roundUpToMultipleOf(vmPageSize(), vmSize) = 0x4000 ==&gt; 16384</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187554</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-26 15:49:02 -0700</bug_when>
    <thetext>The bug here is that pageSize is a multiple of the physical page size, but we need to use a multiple of the virtual page size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188036</commentid>
    <comment_count>2</comment_count>
      <attachid>277556</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-27 17:36:05 -0700</bug_when>
    <thetext>Created attachment 277556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188037</commentid>
    <comment_count>3</comment_count>
      <attachid>277557</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-27 17:37:02 -0700</bug_when>
    <thetext>Created attachment 277557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188038</commentid>
    <comment_count>4</comment_count>
      <attachid>277557</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-27 17:37:30 -0700</bug_when>
    <thetext>Comment on attachment 277557
Patch

Darin reviewed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188058</commentid>
    <comment_count>5</comment_count>
      <attachid>277565</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-27 18:20:31 -0700</bug_when>
    <thetext>Created attachment 277565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188060</commentid>
    <comment_count>6</comment_count>
      <attachid>277565</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-27 18:21:28 -0700</bug_when>
    <thetext>Comment on attachment 277565
Patch

Changed max to round because max(a, b) does not produce multiples of b when a is larger than b.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188094</commentid>
    <comment_count>7</comment_count>
      <attachid>277565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-27 19:10:50 -0700</bug_when>
    <thetext>Comment on attachment 277565
Patch

Clearing flags on attachment: 277565

Committed r200167: &lt;http://trac.webkit.org/changeset/200167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188095</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-27 19:10:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189818</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-03 12:30:31 -0700</bug_when>
    <thetext>Enrica reports that this is not fully fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189819</commentid>
    <comment_count>10</comment_count>
      <attachid>278012</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-03 12:33:00 -0700</bug_when>
    <thetext>Created attachment 278012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189821</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-03 12:43:17 -0700</bug_when>
    <thetext>Committed r200385: &lt;http://trac.webkit.org/changeset/200385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189822</commentid>
    <comment_count>12</comment_count>
      <attachid>278012</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-03 12:43:58 -0700</bug_when>
    <thetext>Comment on attachment 278012
Patch

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

&gt; Source/bmalloc/bmalloc/Algorithm.h:104
&gt; +template&lt;typename T&gt; inline T roundUpToMultipleOfSloppy(size_t divisor, T x)

I would have called this roundUpToMultipleOfNonPower.  It&apos;s not a great name, but it conveys a bit more information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189842</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-03 13:54:34 -0700</bug_when>
    <thetext>Renamed in &lt;http://trac.webkit.org/changeset/200386&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277556</attachid>
            <date>2016-04-27 17:36:05 -0700</date>
            <delta_ts>2016-04-27 17:36:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157047-20160427173635.patch</filename>
            <type>text/plain</type>
            <size>4781</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDE2MikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA0LTI3ICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUg
aW4gYm1hbGxvYzo6dm1SZXZva2VQZXJtaXNzaW9ucyh2b2lkKiwgdW5zaWduZWQgbG9uZykuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwNDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJtYWxsb2Mv
Q2h1bmsuaDoKKyAgICAgICAgKGJtYWxsb2M6OkNodW5rOjpDaHVuayk6CisgICAgICAgIChibWFs
bG9jOjpDaHVuazo6Z2V0KToKKyAgICAgICAgKGJtYWxsb2M6OkNodW5rOjpvZmZzZXQpOgorICAg
ICAgICAoYm1hbGxvYzo6Q2h1bms6OmFkZHJlc3MpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0
OjpPYmplY3QpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjphZGRyZXNzKToKKyAgICAgICAg
KGJtYWxsb2M6Ok9iamVjdDo6bGluZSk6CisgICAgICAgIChibWFsbG9jOjpDaHVuazo6b2JqZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKGJtYWxsb2M6Ok9iamVjdDo6YmVnaW4pOiBEZWxldGVkLgor
ICAgICAgICAqIGJtYWxsb2MvSGVhcC5jcHA6CisgICAgICAgIChibWFsbG9jOjpIZWFwOjphbGxv
Y2F0ZVNtYWxsQnVtcFJhbmdlc0J5T2JqZWN0KToKKyAgICAgICAgKiBibWFsbG9jL09iamVjdC5o
OgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjpjaHVuayk6CisgICAgICAgIChibWFsbG9jOjpP
YmplY3Q6Om9mZnNldCk6IFJlbmFtZWQgYmVnaW4oKSB0byBhZGRyZXNzKCkgYmVjYXVzZSB0aGlz
IGlzCisgICAgICAgIG5vdCBhbiBpdGVyYXRvci4KKworICAgICAgICAqIGJtYWxsb2MvVk1IZWFw
LmNwcDoKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKTogVGFr
ZSB0aGUgbWF4IG9mIHBhZ2VTaXplIGFuZAorICAgICAgICB2bVBhZ2VTaXplIGJlY2F1c2UgcGFn
ZVNpemUgbWlnaHQgYmUgc21hbGxlciB0aGFuIHZtUGFnZVNpemUsIGJ1dCB3ZQorICAgICAgICB0
aGluayB0aGUgVk0gc3lzdGVtIHJlcXVpcmVzIHZtUGFnZVNpemUtYWxpZ25lZCB2YWx1ZXMuCisK
IDIwMTYtMDQtMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBibWFsbG9jOiB2bSBhbGxvY2F0aW9ucyBzaG91bGQgcGxhbnQgZ3VhcmQgcGFnZXMKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQ2h1bmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0NodW5rLmgJKHJldmlzaW9uIDIwMDAzNSkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvQ2h1bmsuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6
CiAKICAgICBzaXplX3Qgb2Zmc2V0KHZvaWQqKTsKIAotICAgIGNoYXIqIG9iamVjdChzaXplX3Qg
b2Zmc2V0KTsKKyAgICBjaGFyKiBhZGRyZXNzKHNpemVfdCBvZmZzZXQpOwogICAgIFNtYWxsUGFn
ZSogcGFnZShzaXplX3Qgb2Zmc2V0KTsKICAgICBTbWFsbExpbmUqIGxpbmUoc2l6ZV90IG9mZnNl
dCk7CiAKQEAgLTY4LDE5ICs2OCwxOSBAQCBpbmxpbmUgQ2h1bms6OkNodW5rKHN0ZDo6bG9ja19n
dWFyZDxTdGF0CiB7CiB9CiAKLWlubGluZSBDaHVuayogQ2h1bms6OmdldCh2b2lkKiBvYmplY3Qp
CitpbmxpbmUgQ2h1bmsqIENodW5rOjpnZXQodm9pZCogYWRkcmVzcykKIHsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2h1bmsqPihtYXNrKG9iamVjdCwgY2h1bmtNYXNrKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENodW5rKj4obWFzayhhZGRyZXNzLCBjaHVua01hc2spKTsKIH0KIAotaW5s
aW5lIHNpemVfdCBDaHVuazo6b2Zmc2V0KHZvaWQqIG9iamVjdCkKK2lubGluZSBzaXplX3QgQ2h1
bms6Om9mZnNldCh2b2lkKiBhZGRyZXNzKQogewotICAgIEJBU1NFUlQob2JqZWN0ID49IHRoaXMp
OwotICAgIEJBU1NFUlQob2JqZWN0IDwgYnl0ZXMoKSArIGNodW5rU2l6ZSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNoYXIqPihvYmplY3QpIC0gYnl0ZXMoKTsKKyAgICBCQVNTRVJUKGFkZHJl
c3MgPj0gdGhpcyk7CisgICAgQkFTU0VSVChhZGRyZXNzIDwgYnl0ZXMoKSArIGNodW5rU2l6ZSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihhZGRyZXNzKSAtIGJ5dGVzKCk7CiB9CiAK
LWlubGluZSBjaGFyKiBDaHVuazo6b2JqZWN0KHNpemVfdCBvZmZzZXQpCitpbmxpbmUgY2hhciog
Q2h1bms6OmFkZHJlc3Moc2l6ZV90IG9mZnNldCkKIHsKICAgICByZXR1cm4gYnl0ZXMoKSArIG9m
ZnNldDsKIH0KQEAgLTEzMyw5ICsxMzMsOSBAQCBpbmxpbmUgT2JqZWN0OjpPYmplY3QoQ2h1bmsq
IGNodW5rLCB2b2lkCiAgICAgQkFTU0VSVChjaHVuayA9PSBDaHVuazo6Z2V0KG9iamVjdCkpOwog
fQogCi1pbmxpbmUgY2hhciogT2JqZWN0OjpiZWdpbigpCitpbmxpbmUgY2hhciogT2JqZWN0Ojph
ZGRyZXNzKCkKIHsKLSAgICByZXR1cm4gbV9jaHVuay0+b2JqZWN0KG1fb2Zmc2V0KTsKKyAgICBy
ZXR1cm4gbV9jaHVuay0+YWRkcmVzcyhtX29mZnNldCk7CiB9CiAKIGlubGluZSBTbWFsbExpbmUq
IE9iamVjdDo6bGluZSgpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDIw
MDAzNSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIEhlYXA6OmFsbG9jYXRlU21hbGxCdW1wUmFuZ2VzQnlP
YmplCiAgICAgfTsKIAogICAgIGF1dG8gYWxsb2NhdGVTbWFsbEJ1bXBSYW5nZSA9IFsmXShPYmpl
Y3QmIGl0LCBPYmplY3QmIGVuZCkgLT4gQnVtcFJhbmdlIHsKLSAgICAgICAgY2hhciogYmVnaW4g
PSBpdC5iZWdpbigpOworICAgICAgICBjaGFyKiBiZWdpbiA9IGl0LmFkZHJlc3MoKTsKICAgICAg
ICAgdW5zaWduZWQgc2hvcnQgb2JqZWN0Q291bnQgPSAwOwogICAgICAgICBmb3IgKCA7IGl0ICsg
c2l6ZSA8PSBlbmQ7IGl0ID0gaXQgKyBzaXplKSB7CiAgICAgICAgICAgICBpZiAoaXQubGluZSgp
LT5yZWZDb3VudChsb2NrKSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3QuaAkocmV2aXNpb24g
MjAwMDM1KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQ2h1bmsqIGNodW5rKCkgeyBy
ZXR1cm4gbV9jaHVuazsgfQogICAgIHNpemVfdCBvZmZzZXQoKSB7IHJldHVybiBtX29mZnNldDsg
fQotICAgIGNoYXIqIGJlZ2luKCk7CisgICAgY2hhciogYWRkcmVzcygpOwogCiAgICAgU21hbGxM
aW5lKiBsaW5lKCk7CiAgICAgU21hbGxQYWdlKiBwYWdlKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL1ZNSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9WTUhlYXAuY3BwCShyZXZpc2lvbiAyMDAwMzUpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L1ZNSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDExICs3MywxMyBAQCB2b2lkIFZNSGVh
cDo6YWxsb2NhdGVTbWFsbENodW5rKHN0ZDo6bG9jCiAKICAgICAvLyBFc3RhYmxpc2ggZ3VhcmQg
cGFnZXMgYmVmb3JlIHdyaXRpbmcgdG8gQ2h1bmsgbWVtb3J5IHRvIHdvcmsgYXJvdW5kCiAgICAg
Ly8gYW4gZWRnZSBjYXNlIGluIHRoZSBEYXJ3aW4gVk0gc3lzdGVtICg8cmRhcjovL3Byb2JsZW0v
MjU5MTAwOTg+KS4KLSAgICB2bVJldm9rZVBlcm1pc3Npb25zKGJlZ2luLmJlZ2luKCksIHBhZ2VT
aXplKTsKLSAgICB2bVJldm9rZVBlcm1pc3Npb25zKGVuZC5iZWdpbigpIC0gcGFnZVNpemUsIHBh
Z2VTaXplKTsKKyAgICBzaXplX3QgZ3VhcmRTaXplID0gc3RkOjptYXgocGFnZVNpemUsIHZtUGFn
ZVNpemUoKSk7CisgICAgQkFTU0VSVChjaHVua1NpemUgPj0gMiAqIGd1YXJkU2l6ZSArIHBhZ2VT
aXplKTsKKyAgICB2bVJldm9rZVBlcm1pc3Npb25zKGJlZ2luLmFkZHJlc3MoKSwgZ3VhcmRTaXpl
KTsKKyAgICB2bVJldm9rZVBlcm1pc3Npb25zKGVuZC5hZGRyZXNzKCkgLSBndWFyZFNpemUsIGd1
YXJkU2l6ZSk7CiAKLSAgICBiZWdpbiA9IGJlZ2luICsgcGFnZVNpemU7Ci0gICAgZW5kID0gZW5k
IC0gcGFnZVNpemU7CisgICAgYmVnaW4gPSBiZWdpbiArIGd1YXJkU2l6ZTsKKyAgICBlbmQgPSBl
bmQgLSBndWFyZFNpemU7CiAKICAgICBuZXcgKGNodW5rKSBDaHVuayhsb2NrKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277557</attachid>
            <date>2016-04-27 17:37:02 -0700</date>
            <delta_ts>2016-04-27 18:20:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157047-20160427173732.patch</filename>
            <type>text/plain</type>
            <size>4778</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDE2MikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA0LTI3ICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUg
aW4gYm1hbGxvYzo6dm1SZXZva2VQZXJtaXNzaW9ucyh2b2lkKiwgdW5zaWduZWQgbG9uZykuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwNDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGJtYWxsb2MvQ2h1
bmsuaDoKKyAgICAgICAgKGJtYWxsb2M6OkNodW5rOjpDaHVuayk6CisgICAgICAgIChibWFsbG9j
OjpDaHVuazo6Z2V0KToKKyAgICAgICAgKGJtYWxsb2M6OkNodW5rOjpvZmZzZXQpOgorICAgICAg
ICAoYm1hbGxvYzo6Q2h1bms6OmFkZHJlc3MpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjpP
YmplY3QpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjphZGRyZXNzKToKKyAgICAgICAgKGJt
YWxsb2M6Ok9iamVjdDo6bGluZSk6CisgICAgICAgIChibWFsbG9jOjpDaHVuazo6b2JqZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKGJtYWxsb2M6Ok9iamVjdDo6YmVnaW4pOiBEZWxldGVkLgorICAg
ICAgICAqIGJtYWxsb2MvSGVhcC5jcHA6CisgICAgICAgIChibWFsbG9jOjpIZWFwOjphbGxvY2F0
ZVNtYWxsQnVtcFJhbmdlc0J5T2JqZWN0KToKKyAgICAgICAgKiBibWFsbG9jL09iamVjdC5oOgor
ICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjpjaHVuayk6CisgICAgICAgIChibWFsbG9jOjpPYmpl
Y3Q6Om9mZnNldCk6IFJlbmFtZWQgYmVnaW4oKSB0byBhZGRyZXNzKCkgYmVjYXVzZSB0aGlzIGlz
CisgICAgICAgIG5vdCBhbiBpdGVyYXRvci4KKworICAgICAgICAqIGJtYWxsb2MvVk1IZWFwLmNw
cDoKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKTogVGFrZSB0
aGUgbWF4IG9mIHBhZ2VTaXplIGFuZAorICAgICAgICB2bVBhZ2VTaXplIGJlY2F1c2UgcGFnZVNp
emUgbWlnaHQgYmUgc21hbGxlciB0aGFuIHZtUGFnZVNpemUsIGJ1dCB3ZQorICAgICAgICB0aGlu
ayB0aGUgVk0gc3lzdGVtIHJlcXVpcmVzIHZtUGFnZVNpemUtYWxpZ25lZCB2YWx1ZXMuCisKIDIw
MTYtMDQtMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBi
bWFsbG9jOiB2bSBhbGxvY2F0aW9ucyBzaG91bGQgcGxhbnQgZ3VhcmQgcGFnZXMKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvQ2h1bmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0NodW5rLmgJKHJldmlzaW9uIDIwMDAzNSkKKysrIFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvQ2h1bmsuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAK
ICAgICBzaXplX3Qgb2Zmc2V0KHZvaWQqKTsKIAotICAgIGNoYXIqIG9iamVjdChzaXplX3Qgb2Zm
c2V0KTsKKyAgICBjaGFyKiBhZGRyZXNzKHNpemVfdCBvZmZzZXQpOwogICAgIFNtYWxsUGFnZSog
cGFnZShzaXplX3Qgb2Zmc2V0KTsKICAgICBTbWFsbExpbmUqIGxpbmUoc2l6ZV90IG9mZnNldCk7
CiAKQEAgLTY4LDE5ICs2OCwxOSBAQCBpbmxpbmUgQ2h1bms6OkNodW5rKHN0ZDo6bG9ja19ndWFy
ZDxTdGF0CiB7CiB9CiAKLWlubGluZSBDaHVuayogQ2h1bms6OmdldCh2b2lkKiBvYmplY3QpCitp
bmxpbmUgQ2h1bmsqIENodW5rOjpnZXQodm9pZCogYWRkcmVzcykKIHsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2h1bmsqPihtYXNrKG9iamVjdCwgY2h1bmtNYXNrKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENodW5rKj4obWFzayhhZGRyZXNzLCBjaHVua01hc2spKTsKIH0KIAotaW5saW5l
IHNpemVfdCBDaHVuazo6b2Zmc2V0KHZvaWQqIG9iamVjdCkKK2lubGluZSBzaXplX3QgQ2h1bms6
Om9mZnNldCh2b2lkKiBhZGRyZXNzKQogewotICAgIEJBU1NFUlQob2JqZWN0ID49IHRoaXMpOwot
ICAgIEJBU1NFUlQob2JqZWN0IDwgYnl0ZXMoKSArIGNodW5rU2l6ZSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNoYXIqPihvYmplY3QpIC0gYnl0ZXMoKTsKKyAgICBCQVNTRVJUKGFkZHJlc3Mg
Pj0gdGhpcyk7CisgICAgQkFTU0VSVChhZGRyZXNzIDwgYnl0ZXMoKSArIGNodW5rU2l6ZSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihhZGRyZXNzKSAtIGJ5dGVzKCk7CiB9CiAKLWlu
bGluZSBjaGFyKiBDaHVuazo6b2JqZWN0KHNpemVfdCBvZmZzZXQpCitpbmxpbmUgY2hhciogQ2h1
bms6OmFkZHJlc3Moc2l6ZV90IG9mZnNldCkKIHsKICAgICByZXR1cm4gYnl0ZXMoKSArIG9mZnNl
dDsKIH0KQEAgLTEzMyw5ICsxMzMsOSBAQCBpbmxpbmUgT2JqZWN0OjpPYmplY3QoQ2h1bmsqIGNo
dW5rLCB2b2lkCiAgICAgQkFTU0VSVChjaHVuayA9PSBDaHVuazo6Z2V0KG9iamVjdCkpOwogfQog
Ci1pbmxpbmUgY2hhciogT2JqZWN0OjpiZWdpbigpCitpbmxpbmUgY2hhciogT2JqZWN0OjphZGRy
ZXNzKCkKIHsKLSAgICByZXR1cm4gbV9jaHVuay0+b2JqZWN0KG1fb2Zmc2V0KTsKKyAgICByZXR1
cm4gbV9jaHVuay0+YWRkcmVzcyhtX29mZnNldCk7CiB9CiAKIGlubGluZSBTbWFsbExpbmUqIE9i
amVjdDo6bGluZSgpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDIwMDAz
NSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2NSw3ICsyNjUsNyBAQCB2b2lkIEhlYXA6OmFsbG9jYXRlU21hbGxCdW1wUmFuZ2VzQnlPYmpl
CiAgICAgfTsKIAogICAgIGF1dG8gYWxsb2NhdGVTbWFsbEJ1bXBSYW5nZSA9IFsmXShPYmplY3Qm
IGl0LCBPYmplY3QmIGVuZCkgLT4gQnVtcFJhbmdlIHsKLSAgICAgICAgY2hhciogYmVnaW4gPSBp
dC5iZWdpbigpOworICAgICAgICBjaGFyKiBiZWdpbiA9IGl0LmFkZHJlc3MoKTsKICAgICAgICAg
dW5zaWduZWQgc2hvcnQgb2JqZWN0Q291bnQgPSAwOwogICAgICAgICBmb3IgKCA7IGl0ICsgc2l6
ZSA8PSBlbmQ7IGl0ID0gaXQgKyBzaXplKSB7CiAgICAgICAgICAgICBpZiAoaXQubGluZSgpLT5y
ZWZDb3VudChsb2NrKSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3QuaAkocmV2aXNpb24gMjAw
MDM1KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQ2h1bmsqIGNodW5rKCkgeyByZXR1
cm4gbV9jaHVuazsgfQogICAgIHNpemVfdCBvZmZzZXQoKSB7IHJldHVybiBtX29mZnNldDsgfQot
ICAgIGNoYXIqIGJlZ2luKCk7CisgICAgY2hhciogYWRkcmVzcygpOwogCiAgICAgU21hbGxMaW5l
KiBsaW5lKCk7CiAgICAgU21hbGxQYWdlKiBwYWdlKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1ZNSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9W
TUhlYXAuY3BwCShyZXZpc2lvbiAyMDAwMzUpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZN
SGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDExICs3MywxMyBAQCB2b2lkIFZNSGVhcDo6
YWxsb2NhdGVTbWFsbENodW5rKHN0ZDo6bG9jCiAKICAgICAvLyBFc3RhYmxpc2ggZ3VhcmQgcGFn
ZXMgYmVmb3JlIHdyaXRpbmcgdG8gQ2h1bmsgbWVtb3J5IHRvIHdvcmsgYXJvdW5kCiAgICAgLy8g
YW4gZWRnZSBjYXNlIGluIHRoZSBEYXJ3aW4gVk0gc3lzdGVtICg8cmRhcjovL3Byb2JsZW0vMjU5
MTAwOTg+KS4KLSAgICB2bVJldm9rZVBlcm1pc3Npb25zKGJlZ2luLmJlZ2luKCksIHBhZ2VTaXpl
KTsKLSAgICB2bVJldm9rZVBlcm1pc3Npb25zKGVuZC5iZWdpbigpIC0gcGFnZVNpemUsIHBhZ2VT
aXplKTsKKyAgICBzaXplX3QgZ3VhcmRTaXplID0gc3RkOjptYXgocGFnZVNpemUsIHZtUGFnZVNp
emUoKSk7CisgICAgQkFTU0VSVChjaHVua1NpemUgPj0gMiAqIGd1YXJkU2l6ZSArIHBhZ2VTaXpl
KTsKKyAgICB2bVJldm9rZVBlcm1pc3Npb25zKGJlZ2luLmFkZHJlc3MoKSwgZ3VhcmRTaXplKTsK
KyAgICB2bVJldm9rZVBlcm1pc3Npb25zKGVuZC5hZGRyZXNzKCkgLSBndWFyZFNpemUsIGd1YXJk
U2l6ZSk7CiAKLSAgICBiZWdpbiA9IGJlZ2luICsgcGFnZVNpemU7Ci0gICAgZW5kID0gZW5kIC0g
cGFnZVNpemU7CisgICAgYmVnaW4gPSBiZWdpbiArIGd1YXJkU2l6ZTsKKyAgICBlbmQgPSBlbmQg
LSBndWFyZFNpemU7CiAKICAgICBuZXcgKGNodW5rKSBDaHVuayhsb2NrKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277565</attachid>
            <date>2016-04-27 18:20:31 -0700</date>
            <delta_ts>2016-05-03 12:32:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157047-20160427182102.patch</filename>
            <type>text/plain</type>
            <size>4792</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDE2MikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA0LTI3ICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUg
aW4gYm1hbGxvYzo6dm1SZXZva2VQZXJtaXNzaW9ucyh2b2lkKiwgdW5zaWduZWQgbG9uZykuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwNDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGJtYWxsb2MvQ2h1
bmsuaDoKKyAgICAgICAgKGJtYWxsb2M6OkNodW5rOjpDaHVuayk6CisgICAgICAgIChibWFsbG9j
OjpDaHVuazo6Z2V0KToKKyAgICAgICAgKGJtYWxsb2M6OkNodW5rOjpvZmZzZXQpOgorICAgICAg
ICAoYm1hbGxvYzo6Q2h1bms6OmFkZHJlc3MpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjpP
YmplY3QpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjphZGRyZXNzKToKKyAgICAgICAgKGJt
YWxsb2M6Ok9iamVjdDo6bGluZSk6CisgICAgICAgIChibWFsbG9jOjpDaHVuazo6b2JqZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKGJtYWxsb2M6Ok9iamVjdDo6YmVnaW4pOiBEZWxldGVkLgorICAg
ICAgICAqIGJtYWxsb2MvSGVhcC5jcHA6CisgICAgICAgIChibWFsbG9jOjpIZWFwOjphbGxvY2F0
ZVNtYWxsQnVtcFJhbmdlc0J5T2JqZWN0KToKKyAgICAgICAgKiBibWFsbG9jL09iamVjdC5oOgor
ICAgICAgICAoYm1hbGxvYzo6T2JqZWN0OjpjaHVuayk6CisgICAgICAgIChibWFsbG9jOjpPYmpl
Y3Q6Om9mZnNldCk6IFJlbmFtZWQgYmVnaW4oKSB0byBhZGRyZXNzKCkgYmVjYXVzZSB0aGlzIGlz
CisgICAgICAgIG5vdCBhbiBpdGVyYXRvci4KKworICAgICAgICAqIGJtYWxsb2MvVk1IZWFwLmNw
cDoKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKTogUm91bmQg
dXAgcGFnZVNpemUgdG8gYSB2bVBhZ2VTaXplCisgICAgICAgIG11bHRpcGxlIGJlY2F1c2UgcGFn
ZVNpemUgbWlnaHQgYmUgc21hbGxlciB0aGFuIHZtUGFnZVNpemUsIGJ1dCB3ZQorICAgICAgICB0
aGluayB0aGUgVk0gc3lzdGVtIHJlcXVpcmVzIHZtUGFnZVNpemUtYWxpZ25lZCB2YWx1ZXMuCisK
IDIwMTYtMDQtMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBibWFsbG9jOiB2bSBhbGxvY2F0aW9ucyBzaG91bGQgcGxhbnQgZ3VhcmQgcGFnZXMKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQ2h1bmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0NodW5rLmgJKHJldmlzaW9uIDIwMDAzNSkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvQ2h1bmsuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6
CiAKICAgICBzaXplX3Qgb2Zmc2V0KHZvaWQqKTsKIAotICAgIGNoYXIqIG9iamVjdChzaXplX3Qg
b2Zmc2V0KTsKKyAgICBjaGFyKiBhZGRyZXNzKHNpemVfdCBvZmZzZXQpOwogICAgIFNtYWxsUGFn
ZSogcGFnZShzaXplX3Qgb2Zmc2V0KTsKICAgICBTbWFsbExpbmUqIGxpbmUoc2l6ZV90IG9mZnNl
dCk7CiAKQEAgLTY4LDE5ICs2OCwxOSBAQCBpbmxpbmUgQ2h1bms6OkNodW5rKHN0ZDo6bG9ja19n
dWFyZDxTdGF0CiB7CiB9CiAKLWlubGluZSBDaHVuayogQ2h1bms6OmdldCh2b2lkKiBvYmplY3Qp
CitpbmxpbmUgQ2h1bmsqIENodW5rOjpnZXQodm9pZCogYWRkcmVzcykKIHsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2h1bmsqPihtYXNrKG9iamVjdCwgY2h1bmtNYXNrKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENodW5rKj4obWFzayhhZGRyZXNzLCBjaHVua01hc2spKTsKIH0KIAotaW5s
aW5lIHNpemVfdCBDaHVuazo6b2Zmc2V0KHZvaWQqIG9iamVjdCkKK2lubGluZSBzaXplX3QgQ2h1
bms6Om9mZnNldCh2b2lkKiBhZGRyZXNzKQogewotICAgIEJBU1NFUlQob2JqZWN0ID49IHRoaXMp
OwotICAgIEJBU1NFUlQob2JqZWN0IDwgYnl0ZXMoKSArIGNodW5rU2l6ZSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNoYXIqPihvYmplY3QpIC0gYnl0ZXMoKTsKKyAgICBCQVNTRVJUKGFkZHJl
c3MgPj0gdGhpcyk7CisgICAgQkFTU0VSVChhZGRyZXNzIDwgYnl0ZXMoKSArIGNodW5rU2l6ZSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihhZGRyZXNzKSAtIGJ5dGVzKCk7CiB9CiAK
LWlubGluZSBjaGFyKiBDaHVuazo6b2JqZWN0KHNpemVfdCBvZmZzZXQpCitpbmxpbmUgY2hhciog
Q2h1bms6OmFkZHJlc3Moc2l6ZV90IG9mZnNldCkKIHsKICAgICByZXR1cm4gYnl0ZXMoKSArIG9m
ZnNldDsKIH0KQEAgLTEzMyw5ICsxMzMsOSBAQCBpbmxpbmUgT2JqZWN0OjpPYmplY3QoQ2h1bmsq
IGNodW5rLCB2b2lkCiAgICAgQkFTU0VSVChjaHVuayA9PSBDaHVuazo6Z2V0KG9iamVjdCkpOwog
fQogCi1pbmxpbmUgY2hhciogT2JqZWN0OjpiZWdpbigpCitpbmxpbmUgY2hhciogT2JqZWN0Ojph
ZGRyZXNzKCkKIHsKLSAgICByZXR1cm4gbV9jaHVuay0+b2JqZWN0KG1fb2Zmc2V0KTsKKyAgICBy
ZXR1cm4gbV9jaHVuay0+YWRkcmVzcyhtX29mZnNldCk7CiB9CiAKIGlubGluZSBTbWFsbExpbmUq
IE9iamVjdDo6bGluZSgpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDIw
MDAzNSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIEhlYXA6OmFsbG9jYXRlU21hbGxCdW1wUmFuZ2VzQnlP
YmplCiAgICAgfTsKIAogICAgIGF1dG8gYWxsb2NhdGVTbWFsbEJ1bXBSYW5nZSA9IFsmXShPYmpl
Y3QmIGl0LCBPYmplY3QmIGVuZCkgLT4gQnVtcFJhbmdlIHsKLSAgICAgICAgY2hhciogYmVnaW4g
PSBpdC5iZWdpbigpOworICAgICAgICBjaGFyKiBiZWdpbiA9IGl0LmFkZHJlc3MoKTsKICAgICAg
ICAgdW5zaWduZWQgc2hvcnQgb2JqZWN0Q291bnQgPSAwOwogICAgICAgICBmb3IgKCA7IGl0ICsg
c2l6ZSA8PSBlbmQ7IGl0ID0gaXQgKyBzaXplKSB7CiAgICAgICAgICAgICBpZiAoaXQubGluZSgp
LT5yZWZDb3VudChsb2NrKSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3QuaAkocmV2aXNpb24g
MjAwMDM1KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQ2h1bmsqIGNodW5rKCkgeyBy
ZXR1cm4gbV9jaHVuazsgfQogICAgIHNpemVfdCBvZmZzZXQoKSB7IHJldHVybiBtX29mZnNldDsg
fQotICAgIGNoYXIqIGJlZ2luKCk7CisgICAgY2hhciogYWRkcmVzcygpOwogCiAgICAgU21hbGxM
aW5lKiBsaW5lKCk7CiAgICAgU21hbGxQYWdlKiBwYWdlKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL1ZNSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9WTUhlYXAuY3BwCShyZXZpc2lvbiAyMDAwMzUpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L1ZNSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDExICs3MywxMyBAQCB2b2lkIFZNSGVh
cDo6YWxsb2NhdGVTbWFsbENodW5rKHN0ZDo6bG9jCiAKICAgICAvLyBFc3RhYmxpc2ggZ3VhcmQg
cGFnZXMgYmVmb3JlIHdyaXRpbmcgdG8gQ2h1bmsgbWVtb3J5IHRvIHdvcmsgYXJvdW5kCiAgICAg
Ly8gYW4gZWRnZSBjYXNlIGluIHRoZSBEYXJ3aW4gVk0gc3lzdGVtICg8cmRhcjovL3Byb2JsZW0v
MjU5MTAwOTg+KS4KLSAgICB2bVJldm9rZVBlcm1pc3Npb25zKGJlZ2luLmJlZ2luKCksIHBhZ2VT
aXplKTsKLSAgICB2bVJldm9rZVBlcm1pc3Npb25zKGVuZC5iZWdpbigpIC0gcGFnZVNpemUsIHBh
Z2VTaXplKTsKKyAgICBzaXplX3QgZ3VhcmRTaXplID0gcm91bmRVcFRvTXVsdGlwbGVPZih2bVBh
Z2VTaXplKCksIHBhZ2VTaXplKTsKKyAgICBCQVNTRVJUKGNodW5rU2l6ZSA+PSAyICogZ3VhcmRT
aXplICsgcGFnZVNpemUpOworICAgIHZtUmV2b2tlUGVybWlzc2lvbnMoYmVnaW4uYWRkcmVzcygp
LCBndWFyZFNpemUpOworICAgIHZtUmV2b2tlUGVybWlzc2lvbnMoZW5kLmFkZHJlc3MoKSAtIGd1
YXJkU2l6ZSwgZ3VhcmRTaXplKTsKIAotICAgIGJlZ2luID0gYmVnaW4gKyBwYWdlU2l6ZTsKLSAg
ICBlbmQgPSBlbmQgLSBwYWdlU2l6ZTsKKyAgICBiZWdpbiA9IGJlZ2luICsgZ3VhcmRTaXplOwor
ICAgIGVuZCA9IGVuZCAtIGd1YXJkU2l6ZTsKIAogICAgIG5ldyAoY2h1bmspIENodW5rKGxvY2sp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278012</attachid>
            <date>2016-05-03 12:33:00 -0700</date>
            <delta_ts>2016-05-03 12:36:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157047-20160503123409.patch</filename>
            <type>text/plain</type>
            <size>3648</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDM4NCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA1LTAzICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUg
aW4gYm1hbGxvYzo6dm1SZXZva2VQZXJtaXNzaW9ucyh2b2lkKiwgdW5zaWduZWQgbG9uZykuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwNDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJldmlv
dXMgZml4IGFsaWduZWQgdGhlIGd1YXJkIHBhZ2Ugc2l6ZXMgY29ycmVjdGx5IGJ1dCBmb3Jnb3Qg
dG8KKyAgICAgICAgYWxpZ24gdGhlIGd1YXJkIHBhZ2Ugc3RhcnQgYWRkcmVzcyBjb3JyZWN0bHku
CisKKyAgICAgICAgKiBibWFsbG9jL0FsZ29yaXRobS5oOgorICAgICAgICAoYm1hbGxvYzo6cm91
bmRVcFRvTXVsdGlwbGVPZlNsb3BweSk6IFVzZSBhIG5ldyBoZWxwZXIgbWV0aG9kIHRvIGRpdmlk
ZQorICAgICAgICByb3VuZGluZyB1cCB3aGVuIG5vdCB3b3JraW5nIHdpdGggYSBwb3dlciBvZiB0
d28sIGluc3RlYWQgb2Ygd3JpdGluZworICAgICAgICBvdXQgdGhlIG1hdGggYnkgaGFuZC4KKwor
ICAgICAgICAqIGJtYWxsb2MvVk1IZWFwLmNwcDoKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6
YWxsb2NhdGVTbWFsbENodW5rKTogTWFrZSBzdXJlIHRvIHJvdW5kIHVwIHRoZSBndWFyZAorICAg
ICAgICBwYWdlIHN0YXJ0IGFkZHJlc3MgaW4gYWRkaXRpb24gdG8gaXRzIHNpemUuIEFzc2VydCBh
dCB0aGUgdmVyeSBlbmQgdG8KKyAgICAgICAgdHJ5IHRvIGNhdGNoIG1vcmUgYnVncy4KKwogMjAx
Ni0wNC0yNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFz
c2VydGlvbiBmYWlsdXJlIGluIGJtYWxsb2M6OnZtUmV2b2tlUGVybWlzc2lvbnModm9pZCosIHVu
c2lnbmVkIGxvbmcpLgpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9BbGdvcml0aG0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsZ29yaXRobS5oCShyZXZpc2lv
biAyMDAzODEpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsZ29yaXRobS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDEsNiArMTAxLDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBU
IGRpdmlkZVJvdW4KICAgICByZXR1cm4gKG51bWVyYXRvciArIGRlbm9taW5hdG9yIC0gMSkgLyBk
ZW5vbWluYXRvcjsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQgcm91bmRVcFRv
TXVsdGlwbGVPZlNsb3BweShzaXplX3QgZGl2aXNvciwgVCB4KQoreworICAgIHJldHVybiBkaXZp
ZGVSb3VuZGluZ1VwKHgsIGRpdmlzb3IpICogZGl2aXNvcjsKK30KKwogLy8gVmVyc2lvbiBvZiBz
aXplb2YgdGhhdCByZXR1cm5zIDAgZm9yIGVtcHR5IGNsYXNzZXMuCiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBjb25zdGV4cHIgc2l6ZV90IHNpemVPZigpCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL1ZNSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9WTUhlYXAuY3BwCShyZXZpc2lvbiAyMDAzODEpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL1ZNSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDI1ICs2MSwyNiBAQCB2b2lkIFZN
SGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKHN0ZDo6bG9jCiAgICAgc2l6ZV90IHBhZ2VTaXplID0g
Ym1hbGxvYzo6cGFnZVNpemUocGFnZUNsYXNzKTsKICAgICBzaXplX3Qgc21hbGxQYWdlQ291bnQg
PSBwYWdlU2l6ZSAvIHNtYWxsUGFnZVNpemU7CiAKLSAgICAvLyBXZSBhbGlnbiB0byBvdXIgcGFn
ZSBzaXplIGluIG9yZGVyIHRvIGd1YXJhbnRlZSB0aGF0IHdlIGNhbiBzZXJ2aWNlCi0gICAgLy8g
YWxpZ25lZCBhbGxvY2F0aW9uIHJlcXVlc3RzIGF0IGVxdWFsIGFuZCBzbWFsbGVyIHBvd2VycyBv
ZiB0d28uCi0gICAgc2l6ZV90IG1ldGFkYXRhU2l6ZSA9IGRpdmlkZVJvdW5kaW5nVXAoc2l6ZW9m
KENodW5rKSwgcGFnZVNpemUpICogcGFnZVNpemU7Ci0KICAgICB2b2lkKiBtZW1vcnkgPSB2bUFs
bG9jYXRlKGNodW5rU2l6ZSwgY2h1bmtTaXplKTsKICAgICBDaHVuayogY2h1bmsgPSBzdGF0aWNf
Y2FzdDxDaHVuayo+KG1lbW9yeSk7CiAKKyAgICAvLyBXZSBhbGlnbiB0byBvdXIgcGFnZSBzaXpl
IGluIG9yZGVyIHRvIGhvbm9yIE9TIEFQSXMgYW5kIGluIG9yZGVyIHRvCisgICAgLy8gZ3VhcmFu
dGVlIHRoYXQgd2UgY2FuIHNlcnZpY2UgYWxpZ25lZCBhbGxvY2F0aW9uIHJlcXVlc3RzIGF0IGVx
dWFsCisgICAgLy8gYW5kIHNtYWxsZXIgcG93ZXJzIG9mIHR3by4KKyAgICBzaXplX3Qgdm1QYWdl
U2l6ZSA9IHJvdW5kVXBUb011bHRpcGxlT2YoYm1hbGxvYzo6dm1QYWdlU2l6ZSgpLCBwYWdlU2l6
ZSk7CisgICAgc2l6ZV90IG1ldGFkYXRhU2l6ZSA9IHJvdW5kVXBUb011bHRpcGxlT2ZTbG9wcHko
dm1QYWdlU2l6ZSwgc2l6ZW9mKENodW5rKSk7CisKICAgICBPYmplY3QgYmVnaW4oY2h1bmssIG1l
dGFkYXRhU2l6ZSk7CiAgICAgT2JqZWN0IGVuZChjaHVuaywgY2h1bmtTaXplKTsKIAogICAgIC8v
IEVzdGFibGlzaCBndWFyZCBwYWdlcyBiZWZvcmUgd3JpdGluZyB0byBDaHVuayBtZW1vcnkgdG8g
d29yayBhcm91bmQKICAgICAvLyBhbiBlZGdlIGNhc2UgaW4gdGhlIERhcndpbiBWTSBzeXN0ZW0g
KDxyZGFyOi8vcHJvYmxlbS8yNTkxMDA5OD4pLgotICAgIHNpemVfdCBndWFyZFNpemUgPSByb3Vu
ZFVwVG9NdWx0aXBsZU9mKHZtUGFnZVNpemUoKSwgcGFnZVNpemUpOwotICAgIEJBU1NFUlQoY2h1
bmtTaXplID49IDIgKiBndWFyZFNpemUgKyBwYWdlU2l6ZSk7Ci0gICAgdm1SZXZva2VQZXJtaXNz
aW9ucyhiZWdpbi5hZGRyZXNzKCksIGd1YXJkU2l6ZSk7Ci0gICAgdm1SZXZva2VQZXJtaXNzaW9u
cyhlbmQuYWRkcmVzcygpIC0gZ3VhcmRTaXplLCBndWFyZFNpemUpOwotCi0gICAgYmVnaW4gPSBi
ZWdpbiArIGd1YXJkU2l6ZTsKLSAgICBlbmQgPSBlbmQgLSBndWFyZFNpemU7CisgICAgdm1SZXZv
a2VQZXJtaXNzaW9ucyhiZWdpbi5hZGRyZXNzKCksIHZtUGFnZVNpemUpOworICAgIHZtUmV2b2tl
UGVybWlzc2lvbnMoZW5kLmFkZHJlc3MoKSAtIHZtUGFnZVNpemUsIHZtUGFnZVNpemUpOworICAg
IAorICAgIGJlZ2luID0gYmVnaW4gKyB2bVBhZ2VTaXplOworICAgIGVuZCA9IGVuZCAtIHZtUGFn
ZVNpemU7CisgICAgQkFTU0VSVChiZWdpbiA8PSBlbmQgJiYgZW5kLm9mZnNldCgpIC0gYmVnaW4u
b2Zmc2V0KCkgPj0gcGFnZVNpemUpOwogCiAgICAgbmV3IChjaHVuaykgQ2h1bmsobG9jayk7CiAK
</data>
<flag name="review"
          id="302157"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>