<?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>146793</bug_id>
          
          <creation_ts>2015-07-09 10:35:49 -0700</creation_ts>
          <short_desc>[GTK] Web processes should not have unlimited access to memory</short_desc>
          <delta_ts>2017-03-11 11:00:44 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=146794</see_also>
    
    <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1247540</see_also>
          <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="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>andersca</cc>
    
    <cc>bitlord0xff</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>dbates</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kapouer</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108233</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-09 10:35:49 -0700</bug_when>
    <thetext>Web processes should not have unlimited access to memory.

A quick example of why not: open a bunch of bugs on Red Hat Bugzilla in new tabs. [1] If you open ~20 bugs, at least one (usually about three for me) should run out of control, allocating memory until your computer begins to swap excessively. Mine hangs for an hour, forcing me to power off. This happens to me multiple times per day. (Curious if any folks from Apple can reproduce this in Safari.) Even though it&apos;s a bug that should be fixed, other similar bugs exist, like [2] and [3], or might exist in the future, so we should be robust to this by setting a memory limit for the web process.

On Linux the options for limiting memory are RLIMIT_AS and RLIMIT_DATA. RLIMIT_RSS exists but doesn&apos;t do anything; even if it worked, it wouldn&apos;t be useful for the problem I want to solve, which is swapping. RLIMIT_DATA is not useful in practice since it doesn&apos;t affect mmap(), which is what we use to allocate memory, and also what malloc() uses. So RLIMIT_AS is the only option. I&apos;ve picked a 5 GB address space limit, which should work for a long time in the future. In practice, this limits web processes to ~1.4 GB of memory on my machine. A well-behaved web process uses 50-100 MiB (although I&apos;ve seen them go as high as ~250 MiB after a sufficiently long time loading many pages and leaking much memory), so this is so wildly higher than necessary that it shouldn&apos;t hurt normal operation. (Of course, we might need to increase it in the distant future.)

[1] https://bugzilla.redhat.com/buglist.cgi?component=epiphany&amp;product=Fedora
[2] https://bugs.webkit.org/show_bug.cgi?id=139847
[3] https://bugs.webkit.org/show_bug.cgi?id=126122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108238</commentid>
    <comment_count>1</comment_count>
      <attachid>256489</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-09 10:44:15 -0700</bug_when>
    <thetext>Created attachment 256489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108239</commentid>
    <comment_count>2</comment_count>
      <attachid>256489</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-07-09 10:47:07 -0700</bug_when>
    <thetext>Comment on attachment 256489
Patch

What happens when a WebProcess hits this limit? Does it crash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108241</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-09 10:50:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 256489 [details]
&gt; Patch
&gt; 
&gt; What happens when a WebProcess hits this limit? Does it crash?

It causes mmap() to return ENOMEM. If that happens to WTF::OSAllocator, it will immediately call CRASH(). Other call sites could handle it differently, of course. In practice, with my reproducer, the web process loads for some time (30-45 seconds) and then crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108247</commentid>
    <comment_count>4</comment_count>
      <attachid>256489</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-07-09 11:07:13 -0700</bug_when>
    <thetext>Comment on attachment 256489
Patch

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

&gt; Source/WebKit2/Shared/unix/ChildProcessMain.cpp:62
&gt; +    // The address space limit is currently set to 5 GB. In practice, this causes a runaway web
&gt; +    // process to cap out at about 1.4 GB of allocated memory.
&gt; +    static const auto addressSpaceLimitBytes = 5000000000l;
&gt; +    rlimit64 rlim = {addressSpaceLimitBytes, addressSpaceLimitBytes};
&gt; +    rlim.rlim_max = rlim.rlim_cur;
&gt; +    if (setrlimit64(RLIMIT_AS, &amp;rlim))

I think that we should allow at runtime to tune this limit as also to disable any limit check. Maybe with an environment variable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108260</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-09 11:31:11 -0700</bug_when>
    <thetext>Good idea. An environment variable sounds best. Do you prefer something short like WEBKIT_CHILD_RLIMIT_AS or WEBKIT_CHILD_ASLIMIT, or something more descriptive like WEBKIT_CHILD_ADDRESS_SPACE_LIMIT? If set to 0 the limit would be disabled, otherwise it would be applied in bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108543</commentid>
    <comment_count>6</comment_count>
      <attachid>256489</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-09 23:08:46 -0700</bug_when>
    <thetext>Comment on attachment 256489
Patch

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

&gt; Source/WebKit2/Shared/unix/ChildProcessMain.cpp:46
&gt; +void ChildProcessMainBase::setProcessResourceLimits()

Only resource this limits is memory, no? I would call it setMemoryLimit, or even setHeap Limit, don&apos;t need to a use Process in the method name either, since it&apos;s a method of a ChildProcess class.

&gt; Source/WebKit2/Shared/unix/ChildProcessMain.h:40
&gt; +    virtual void setProcessResourceLimits();

Why is this virtual?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108604</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-10 05:39:40 -0700</bug_when>
    <thetext>Do you think we should provide a way to override the limit at compile time as well? I imagine the address space required could vary considerably depending on the distribution. Something like:

#ifndef WEBKIT_CHILD_ADDRESS_SPACE_LIMIT
#define WEBKIT_CHILD_ADDRESS_SPACE_LIMIT 5000000000l
#endif

(In reply to comment #6)
&gt; Only resource this limits is memory, no? I would call it setMemoryLimit, or
&gt; even setHeap Limit, don&apos;t need to a use Process in the method name either,
&gt; since it&apos;s a method of a ChildProcess class.

Let&apos;s call it setAddressSpaceLimit. I wish something as simple as a &quot;memory&quot; limit was possible in Linux.

(In reply to comment #6) 
&gt; &gt; Source/WebKit2/Shared/unix/ChildProcessMain.h:40
&gt; &gt; +    virtual void setProcessResourceLimits();
&gt; 
&gt; Why is this virtual?

Since all the other member functions of ChildProcessMain are virtual, to allow child processes to have different resource limits. We could leave it non-virtual until a child process wants to do this; I don&apos;t care.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108607</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-07-10 05:49:22 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Good idea. An environment variable sounds best. Do you prefer something
&gt; short like WEBKIT_CHILD_RLIMIT_AS or WEBKIT_CHILD_ASLIMIT, or something more
&gt; descriptive like WEBKIT_CHILD_ADDRESS_SPACE_LIMIT? If set to 0 the limit
&gt; would be disabled, otherwise it would be applied in bytes.

I like more the first one, but also the others are fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108775</commentid>
    <comment_count>9</comment_count>
      <attachid>256616</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-10 14:46:21 -0700</bug_when>
    <thetext>Created attachment 256616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109119</commentid>
    <comment_count>10</comment_count>
    <who name="Jérémy Lal">kapouer</who>
    <bug_when>2015-07-13 10:04:48 -0700</bug_when>
    <thetext>Hi !
i built this map using javascript, dom, svg and external http resources:
http://assets-carte.lefigaro.fr/cartes/common/france-resultats-2014.jpg
it was a ~4GB memory usage and the only engine that didn&apos;t crash or hang or error out or leak like crazy was webkitgtk...
While the rationale is certainly good, this limit sounds a bit like shooting oneself in the foot, it should be documented upfront !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109122</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-13 10:09:13 -0700</bug_when>
    <thetext>Not sure I understand the problem. My web processes require &lt; 50 MiB to display that image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109124</commentid>
    <comment_count>12</comment_count>
    <who name="Jérémy Lal">kapouer</who>
    <bug_when>2015-07-13 10:11:09 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Not sure I understand the problem. My web processes require &lt; 50 MiB to
&gt; display that image.

The image is a jpg created from a big svg file created by those means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112705</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-28 07:50:30 -0700</bug_when>
    <thetext>This broke Java. The plugin process needs to be exempt from the limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112706</commentid>
    <comment_count>14</comment_count>
      <attachid>257645</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-28 08:15:21 -0700</bug_when>
    <thetext>Created attachment 257645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120179</commentid>
    <comment_count>15</comment_count>
      <attachid>257645</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-08-23 09:12:41 -0700</bug_when>
    <thetext>Comment on attachment 257645
Patch

Perhaps predictably in retrospect, this has caused a very significant increase in OOM, and generally made the web process less reliable. I&apos;m going to keep the patch in Fedora until the bug in comment #0 is resolved, due to the severity of that bug, but I don&apos;t recommend it this for upstream and have removed r?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256489</attachid>
            <date>2015-07-09 10:44:15 -0700</date>
            <delta_ts>2015-07-10 14:46:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146793-20150709124314.patch</filename>
            <type>text/plain</type>
            <size>3489</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDQyNjU3MGNmOTkzZTU0
N2FiMTI4MjI0NTAzMDA3ZWIwN2ZiMzMzOC4uZWYyNDlhZGRjNDYzNjBjMWM3ZTVjY2M2YzhiYjFk
NTA4NmZmYzAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTA5ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBX
ZWIgcHJvY2Vzc2VzIHNob3VsZCBub3QgaGF2ZSB1bmxpbWl0ZWQgYWNjZXNzIHRvIG1lbW9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGltaXQgY2hp
bGQgcHJvY2Vzc2VzIHRvIGF0IG1vc3QgNSBHQiBvZiBhZGRyZXNzIHNwYWNlLgorCisgICAgICAg
ICogU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNo
aWxkUHJvY2Vzc01haW5CYXNlOjpzZXRQcm9jZXNzUmVzb3VyY2VMaW1pdHMpOgorICAgICAgICAq
IFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uaDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQ
cm9jZXNzTWFpbik6CisKIDIwMTUtMDctMDYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEd1YXJkIFgxMS1zcGVjaWZpYyBjb2RlIGluIHdlYmtp
dFdlYlZpZXdCYXNlRGlkUmVsYXVuY2hXZWJQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKaW5kZXggNjI4YmU2ODdhYzE2YzFjZGVm
ZjAxNDAzZGVmMTE4YzdhYjg3ZTU4MC4uOGQzYTY1NGZmZGMyODlmNTI4MDRiODljYjk3ZjAxMDQ4
MjhkNzM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3VuaXgvQ2hpbGRQcm9j
ZXNzTWFpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNz
TWFpbi5jcHAKQEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgogCisjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxz
dGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQwLDQgKzQzLDI1IEBAIGJvb2wgQ2hpbGRQcm9j
ZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAg
IHJldHVybiB0cnVlOwogfQogCit2b2lkIENoaWxkUHJvY2Vzc01haW5CYXNlOjpzZXRQcm9jZXNz
UmVzb3VyY2VMaW1pdHMoKQoreworI2lmZGVmIF9MQVJHRUZJTEU2NF9TT1VSQ0UKKyAgICAvLyBQ
cmV2ZW50IHJ1bmF3YXkgd2ViIHByb2Nlc3NlcyBmcm9tIGFsbG9jYXRpbmcgdG9vIG11Y2ggYWRk
cmVzcyBzcGFjZS4KKyAgICAvLworICAgIC8vIEl0IHNlZW1zIGxpa2UgaXQgd291bGQgYmUgbXVj
aCBiZXR0ZXIgdG8gdXNlIFJMSU1JVF9EQVRBIGhlcmUsIHdoaWNoIHNob3VsZCBsaW1pdCB0aGUK
KyAgICAvLyBjb21iaW5lZCBzaXplIG9mIHRoZSBpbml0aWFsaXplZCBkYXRhLCB1bmluaXRpYWxp
emVkIGRhdGEsIGFuZCBoZWFwIHNlZ21lbnRzLiBCdXQKKyAgICAvLyBSTElNSVRfREFUQSBkb2Vz
IG5vdCBhcHBseSB0byBtZW1vcnkgYWxsb2NhdGVkIHdpdGggbW1hcCgpLCBzbyBpdCBpcyBub3Qg
cmVhbGx5IHVzZWZ1bC4KKyAgICAvLyBGb3Igb25lLCB3ZSB1c2UgbW1hcCgpIGV4dGVuc2l2ZWx5
IGluIFdURjo6T1NBbGxvY2F0b3IuIEZvciBhbm90aGVyLCBnbGliYydzIG1hbGxvYygpIGlzCisg
ICAgLy8gaW1wbGVtZW50ZWQgdXNpbmcgbW1hcCgpLCBzbyBSTElNSVRfREFUQSBpcyB0cnVlbHkg
dXNlbGVzcy4KKyAgICAvLworICAgIC8vIFRoZSBhZGRyZXNzIHNwYWNlIGxpbWl0IGlzIGN1cnJl
bnRseSBzZXQgdG8gNSBHQi4gSW4gcHJhY3RpY2UsIHRoaXMgY2F1c2VzIGEgcnVuYXdheSB3ZWIK
KyAgICAvLyBwcm9jZXNzIHRvIGNhcCBvdXQgYXQgYWJvdXQgMS40IEdCIG9mIGFsbG9jYXRlZCBt
ZW1vcnkuCisgICAgc3RhdGljIGNvbnN0IGF1dG8gYWRkcmVzc1NwYWNlTGltaXRCeXRlcyA9IDUw
MDAwMDAwMDBsOworICAgIHJsaW1pdDY0IHJsaW0gPSB7YWRkcmVzc1NwYWNlTGltaXRCeXRlcywg
YWRkcmVzc1NwYWNlTGltaXRCeXRlc307CisgICAgcmxpbS5ybGltX21heCA9IHJsaW0ucmxpbV9j
dXI7CisgICAgaWYgKHNldHJsaW1pdDY0KFJMSU1JVF9BUywgJnJsaW0pKQorICAgICAgICBXVEZM
b2dBbHdheXMoIkZhaWxlZCB0byBzZXQgcHJvY2VzcyBhZGRyZXNzIHNwYWNlIGxpbWl0OiAlcyIs
IHN0cmVycm9yKGVycm5vKSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmgKaW5kZXggN2I5
MDI5NDIwZDk4ZmI2Y2Y3OTFhZWZmOTMwN2IyYTg1ZDFhYzEzOC4uYjNjOTBhZjMxNzU0MThjYWQw
MmZhOWY4Njk3ZDQ4YmZiMmEwNDAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4
L0NoaWxkUHJvY2Vzc01haW4uaApAQCAtMzcsNiArMzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IGJvb2wgcGFyc2VDb21tYW5kTGluZShpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwogICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybUZpbmFsaXplKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFByb2Nl
c3NSZXNvdXJjZUxpbWl0cygpOwogCiAgICAgY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiBpbml0aWFsaXphdGlvblBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBt
X3BhcmFtZXRlcnM7IH0KIApAQCAtNDksNiArNTAsOCBAQCBpbnQgQ2hpbGRQcm9jZXNzTWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CiAgICAgQ2hpbGRQcm9jZXNzTWFpblR5cGUgY2hpbGRN
YWluOwogCisgICAgY2hpbGRNYWluLnNldFByb2Nlc3NSZXNvdXJjZUxpbWl0cygpOworCiAgICAg
aWYgKCFjaGlsZE1haW4ucGxhdGZvcm1Jbml0aWFsaXplKCkpCiAgICAgICAgIHJldHVybiBFWElU
X0ZBSUxVUkU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256616</attachid>
            <date>2015-07-10 14:46:21 -0700</date>
            <delta_ts>2015-07-28 08:15:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146793-20150710164519.patch</filename>
            <type>text/plain</type>
            <size>3657</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzcwMGM4YjkzMzRjYmM2
NDcyMDJmNDY2ZWE3MjcyMTQ2NzA3NWNiMC4uZjlkYmY1MDRiNmNjYzdmMDU4YjgwNGUxYmJlM2Rm
ZTAwMTQ3Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBX
ZWIgcHJvY2Vzc2VzIHNob3VsZCBub3QgaGF2ZSB1bmxpbWl0ZWQgYWNjZXNzIHRvIG1lbW9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGltaXQgY2hp
bGQgcHJvY2Vzc2VzIHRvIGF0IG1vc3QgNSBHQiBvZiBhZGRyZXNzIHNwYWNlLgorCisgICAgICAg
ICogU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNo
aWxkUHJvY2Vzc01haW5CYXNlOjpzZXRQcm9jZXNzUmVzb3VyY2VMaW1pdHMpOgorICAgICAgICAq
IFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uaDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQ
cm9jZXNzTWFpbik6CisKIDIwMTUtMDctMTAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBDcmFzaCBhdCBXZWJDb3JlOjpXZWJQYWdlOjppbm5lckZyYW1lUXVhZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKaW5k
ZXggNjI4YmU2ODdhYzE2YzFjZGVmZjAxNDAzZGVmMTE4YzdhYjg3ZTU4MC4uYTJlNTMzOTg4YjE0
M2RhOTE5NTM1MWNkN2ZkODA2N2I0YTQ3NWI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKQEAgLTI2LDcgKzI2LDE2IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgogCisjaW5jbHVkZSA8
ZXJybm8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNs
dWRlIDxzeXMvcmVzb3VyY2UuaD4KKworLy8gVGhlIGFkZHJlc3Mgc3BhY2UgbGltaXQgaXMgY3Vy
cmVudGx5IHNldCB0byA1IEdCLiBJbiBwcmFjdGljZSwgdGhpcyBjYXVzZXMgYQorLy8gcnVuYXdh
eSB3ZWIgcHJvY2VzcyB0byBjYXAgb3V0IGF0IGFib3V0IDEuNCBHQiBvZiBhbGxvY2F0ZWQgbWVt
b3J5LgorI2lmbmRlZiBXRUJLSVRfQ0hJTERfUkxJTUlUX0FTCisjZGVmaW5lIFdFQktJVF9DSElM
RF9STElNSVRfQVMgNTAwMDAwMDAwMGwKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtNDAsNCArNDksMjYgQEAgYm9vbCBDaGlsZFByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5k
TGluZShpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQg
Q2hpbGRQcm9jZXNzTWFpbkJhc2U6OnNldEFkZHJlc3NTcGFjZUxpbWl0KCkKK3sKKyNpZmRlZiBf
TEFSR0VGSUxFNjRfU09VUkNFCisgICAgcmxpbTY0X3QgYWRkcmVzc1NwYWNlTGltaXQgPSBXRUJL
SVRfQ0hJTERfUkxJTUlUX0FTOworICAgIGNoYXIqIGxpbWl0RnJvbUVudmlyb25tZW50ID0gZ2V0
ZW52KCJXRUJLSVRfQ0hJTERfUkxJTUlUX0FTIik7CisgICAgaWYgKGxpbWl0RnJvbUVudmlyb25t
ZW50KQorICAgICAgICBhZGRyZXNzU3BhY2VMaW1pdCA9IGF0b2xsKGxpbWl0RnJvbUVudmlyb25t
ZW50KTsKKworICAgIC8vIFByZXZlbnQgcnVuYXdheSB3ZWIgcHJvY2Vzc2VzIGZyb20gYWxsb2Nh
dGluZyB0b28gbXVjaCBhZGRyZXNzIHNwYWNlLgorICAgIC8vCisgICAgLy8gSXQgc2VlbXMgbGlr
ZSBpdCB3b3VsZCBiZSBtdWNoIGJldHRlciB0byB1c2UgUkxJTUlUX0RBVEEgaGVyZSwgd2hpY2gg
c2hvdWxkIGxpbWl0IHRoZQorICAgIC8vIGNvbWJpbmVkIHNpemUgb2YgdGhlIGluaXRpYWxpemVk
IGRhdGEsIHVuaW5pdGlhbGl6ZWQgZGF0YSwgYW5kIGhlYXAgc2VnbWVudHMuIEJ1dAorICAgIC8v
IFJMSU1JVF9EQVRBIGRvZXMgbm90IGFwcGx5IHRvIG1lbW9yeSBhbGxvY2F0ZWQgd2l0aCBtbWFw
KCksIHNvIGl0IGlzIG5vdCByZWFsbHkgdXNlZnVsLgorICAgIC8vIEZvciBvbmUsIHdlIHVzZSBt
bWFwKCkgZXh0ZW5zaXZlbHkgaW4gV1RGOjpPU0FsbG9jYXRvci4gRm9yIGFub3RoZXIsIGdsaWJj
J3MgbWFsbG9jKCkgaXMKKyAgICAvLyBpbXBsZW1lbnRlZCB1c2luZyBtbWFwKCksIHNvIFJMSU1J
VF9EQVRBIGlzIHRydWVseSB1c2VsZXNzLgorICAgIHJsaW1pdDY0IHJsaW0gPSB7YWRkcmVzc1Nw
YWNlTGltaXQsIGFkZHJlc3NTcGFjZUxpbWl0fTsKKyAgICBybGltLnJsaW1fbWF4ID0gcmxpbS5y
bGltX2N1cjsKKyAgICBpZiAoc2V0cmxpbWl0NjQoUkxJTUlUX0FTLCAmcmxpbSkpCisgICAgICAg
IFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIHNldCBwcm9jZXNzIGFkZHJlc3Mgc3BhY2UgbGltaXQ6
ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01h
aW4uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uaAppbmRl
eCA3YjkwMjk0MjBkOThmYjZjZjc5MWFlZmY5MzA3YjJhODVkMWFjMTM4Li42YzJjNmY3MTFmNGVk
YTNiMGY1Zjc4MzdmNjNiN2FiNThiM2MzZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5oCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcGxhdGZvcm1Jbml0aWFsaXplKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBwYXJzZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjaGFyKiogYXJndik7CiAgICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtRmluYWxpemUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QWRkcmVzc1NwYWNlTGltaXQoKTsKIAogICAgIGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgaW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzOyB9CiAKQEAgLTQ5LDYgKzUwLDggQEAgaW50IENoaWxkUHJvY2Vzc01haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIENoaWxkUHJvY2Vzc01haW5UeXBlIGNoaWxk
TWFpbjsKIAorICAgIGNoaWxkTWFpbi5zZXRBZGRyZXNzU3BhY2VMaW1pdCgpOworCiAgICAgaWYg
KCFjaGlsZE1haW4ucGxhdGZvcm1Jbml0aWFsaXplKCkpCiAgICAgICAgIHJldHVybiBFWElUX0ZB
SUxVUkU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257645</attachid>
            <date>2015-07-28 08:15:21 -0700</date>
            <delta_ts>2015-08-23 09:12:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146793-20150728101359.patch</filename>
            <type>text/plain</type>
            <size>4879</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjhmNjRiODI3MjU4NWFm
NzI4ZjBjMTYxNWE2Yzg1ZTUxMTljZGZiMS4uMzY0ZmZhYzllOWY3YTVkZWM1MGVmMzdlNzA0N2Rh
ZDZlNjc3MDQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA3LTI4ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBX
ZWIgcHJvY2Vzc2VzIHNob3VsZCBub3QgaGF2ZSB1bmxpbWl0ZWQgYWNjZXNzIHRvIG1lbW9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGltaXQgY2hp
bGQgcHJvY2Vzc2VzIHRvIDUgR0Igb2YgYWRkcmVzcyBzcGFjZS4gRXhlbXB0IHRoZSBwbHVnaW4g
cHJvY2VzcyBmcm9tIHRoZSBsaW1pdCwKKyAgICAgICAgc2luY2Ugd2UgZG9uJ3Qga25vdyBob3cg
bXVjaCBhZGRyZXNzIHNwYWNlIGEgcGx1Z2luIHdpbGwgd2FudCB0byB1c2UuIEphdmEgd2FudHMg
MzQgVEIuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5V
bml4LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzTWFpbkJhc2U6OnNldEFkZHJlc3NTcGFjZUxpbWl0
KToKKyAgICAgICAgKiBTaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmg6CisgICAgICAgIChX
ZWJLaXQ6OkNoaWxkUHJvY2Vzc01haW4pOgorCiAyMDE1LTA3LTI4ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVc2UgZmFzdE1hbGxv
YyBpbnN0ZWFkIG9mIGdfc2xpY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKaW5kZXggOThiMWRiZjUy
ZWI1ZmUzMjA3MjM0NmYxNzBjNjNjMWQ3NTdjODIyYy4uMTNlYmNhNjJkZGUyNmM4M2U0MTRmMTJh
NzFhODRlMDJkMGVhMGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKQEAgLTEwNSw2ICsxMDUs
MTQgQEAgcHVibGljOgogICAgICAgICBtX3BhcmFtZXRlcnMuZXh0cmFJbml0aWFsaXphdGlvbkRh
dGEuYWRkKCJwbHVnaW4tcGF0aCIsIGFyZ3ZbMl0pOwogICAgICAgICByZXR1cm4gQ2hpbGRQcm9j
ZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndik7CiAgICAgfQorCisgICAg
dm9pZCBzZXRBZGRyZXNzU3BhY2VMaW1pdCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICAvLyBP
dmVycmlkZSB3aXRoIG5vIGltcGxlbWVudGF0aW9uIHNvIHRoYXQgYWRkcmVzcyBzcGFjZSB3aWxs
IGJlIHVubGltaXRlZC4gV2UgZG9uJ3QgY29udHJvbAorICAgICAgICAvLyBob3cgbXVjaCBBUyBw
bHVnaW5zIHdhbnQgdG8gdXNlLiBFLmcuIHRoZSBKVk0gdHJpZXMgdG8gYWxsb2NhdGUgMzQgVEIg
b2YgQVMsIGFuZCB0aGUKKyAgICAgICAgLy8gcGx1Z2luIHByb2Nlc3Mgd2lsbCBoYW5nLCBjYXVz
aW5nIHRoZSB3ZWIgcHJvY2VzcyB0byBoYW5nLCBpZiBpdCBmYWlscyB0byBkbyBzby4gVGhlIGh1
Z2UKKyAgICAgICAgLy8gQVMgaXMgcHJvYmFibHkgdG8gaW1wbGVtZW50IEFTTFIsIHNvIGl0IHNo
b3VsZCBiZSBwZXJtaXR0ZWQuCisgICAgfQogfTsKIAogaW50IFBsdWdpblByb2Nlc3NNYWluVW5p
eChpbnQgYXJnYywgY2hhcioqIGFyZ3YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4
L0NoaWxkUHJvY2Vzc01haW4uY3BwCmluZGV4IDYyOGJlNjg3YWMxNmMxY2RlZmYwMTQwM2RlZjEx
OGM3YWI4N2U1ODAuLmEyZTUzMzk4OGIxNDNkYTkxOTUzNTFjZDdmZDgwNjdiNGE0NzViODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwCkBA
IC0yNiw3ICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNoaWxkUHJv
Y2Vzc01haW4uaCIKIAorI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Cisj
aW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisKKy8vIFRoZSBh
ZGRyZXNzIHNwYWNlIGxpbWl0IGlzIGN1cnJlbnRseSBzZXQgdG8gNSBHQi4gSW4gcHJhY3RpY2Us
IHRoaXMgY2F1c2VzIGEKKy8vIHJ1bmF3YXkgd2ViIHByb2Nlc3MgdG8gY2FwIG91dCBhdCBhYm91
dCAxLjQgR0Igb2YgYWxsb2NhdGVkIG1lbW9yeS4KKyNpZm5kZWYgV0VCS0lUX0NISUxEX1JMSU1J
VF9BUworI2RlZmluZSBXRUJLSVRfQ0hJTERfUkxJTUlUX0FTIDUwMDAwMDAwMDBsCisjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQwLDQgKzQ5LDI2IEBAIGJvb2wgQ2hpbGRQcm9j
ZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAg
IHJldHVybiB0cnVlOwogfQogCit2b2lkIENoaWxkUHJvY2Vzc01haW5CYXNlOjpzZXRBZGRyZXNz
U3BhY2VMaW1pdCgpCit7CisjaWZkZWYgX0xBUkdFRklMRTY0X1NPVVJDRQorICAgIHJsaW02NF90
IGFkZHJlc3NTcGFjZUxpbWl0ID0gV0VCS0lUX0NISUxEX1JMSU1JVF9BUzsKKyAgICBjaGFyKiBs
aW1pdEZyb21FbnZpcm9ubWVudCA9IGdldGVudigiV0VCS0lUX0NISUxEX1JMSU1JVF9BUyIpOwor
ICAgIGlmIChsaW1pdEZyb21FbnZpcm9ubWVudCkKKyAgICAgICAgYWRkcmVzc1NwYWNlTGltaXQg
PSBhdG9sbChsaW1pdEZyb21FbnZpcm9ubWVudCk7CisKKyAgICAvLyBQcmV2ZW50IHJ1bmF3YXkg
d2ViIHByb2Nlc3NlcyBmcm9tIGFsbG9jYXRpbmcgdG9vIG11Y2ggYWRkcmVzcyBzcGFjZS4KKyAg
ICAvLworICAgIC8vIEl0IHNlZW1zIGxpa2UgaXQgd291bGQgYmUgbXVjaCBiZXR0ZXIgdG8gdXNl
IFJMSU1JVF9EQVRBIGhlcmUsIHdoaWNoIHNob3VsZCBsaW1pdCB0aGUKKyAgICAvLyBjb21iaW5l
ZCBzaXplIG9mIHRoZSBpbml0aWFsaXplZCBkYXRhLCB1bmluaXRpYWxpemVkIGRhdGEsIGFuZCBo
ZWFwIHNlZ21lbnRzLiBCdXQKKyAgICAvLyBSTElNSVRfREFUQSBkb2VzIG5vdCBhcHBseSB0byBt
ZW1vcnkgYWxsb2NhdGVkIHdpdGggbW1hcCgpLCBzbyBpdCBpcyBub3QgcmVhbGx5IHVzZWZ1bC4K
KyAgICAvLyBGb3Igb25lLCB3ZSB1c2UgbW1hcCgpIGV4dGVuc2l2ZWx5IGluIFdURjo6T1NBbGxv
Y2F0b3IuIEZvciBhbm90aGVyLCBnbGliYydzIG1hbGxvYygpIGlzCisgICAgLy8gaW1wbGVtZW50
ZWQgdXNpbmcgbW1hcCgpLCBzbyBSTElNSVRfREFUQSBpcyB0cnVlbHkgdXNlbGVzcy4KKyAgICBy
bGltaXQ2NCBybGltID0ge2FkZHJlc3NTcGFjZUxpbWl0LCBhZGRyZXNzU3BhY2VMaW1pdH07Cisg
ICAgcmxpbS5ybGltX21heCA9IHJsaW0ucmxpbV9jdXI7CisgICAgaWYgKHNldHJsaW1pdDY0KFJM
SU1JVF9BUywgJnJsaW0pKQorICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBzZXQgcHJv
Y2VzcyBhZGRyZXNzIHNwYWNlIGxpbWl0OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CisjZW5kaWYK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvdW5p
eC9DaGlsZFByb2Nlc3NNYWluLmgKaW5kZXggN2I5MDI5NDIwZDk4ZmI2Y2Y3OTFhZWZmOTMwN2Iy
YTg1ZDFhYzEzOC4uNmMyYzZmNzExZjRlZGEzYjBmNWY3ODM3ZjYzYjdhYjU4YjNjM2UwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uaApAQCAtMzcs
NiArMzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFyc2VDb21tYW5kTGluZShpbnQg
YXJnYywgY2hhcioqIGFyZ3YpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUZpbmFsaXplKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHNldEFkZHJlc3NTcGFjZUxpbWl0KCk7CiAKICAgICBjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIGluaXRpYWxpemF0aW9uUGFy
YW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogCkBAIC00OSw2ICs1MCw4
IEBAIGludCBDaGlsZFByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICBD
aGlsZFByb2Nlc3NNYWluVHlwZSBjaGlsZE1haW47CiAKKyAgICBjaGlsZE1haW4uc2V0QWRkcmVz
c1NwYWNlTGltaXQoKTsKKwogICAgIGlmICghY2hpbGRNYWluLnBsYXRmb3JtSW5pdGlhbGl6ZSgp
KQogICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>