<?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>147290</bug_id>
          
          <creation_ts>2015-07-24 21:45:56 -0700</creation_ts>
          <short_desc>Crash happens when calling removeEventListener for an SVG element which has an instance inside a &lt;defs&gt; element of shadow tree</short_desc>
          <delta_ts>2015-07-28 13:11:33 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112193</commentid>
    <comment_count>0</comment_count>
      <attachid>257510</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-24 21:45:56 -0700</bug_when>
    <thetext>Created attachment 257510
test case (will crash)

1. Open the attached test case.

Result: WebKit crashes with the following call stack.

0   com.apple.JavaScriptCore      	0x0000000113384a17 WTFCrash + 39
1   com.apple.WebCore             	0x0000000116ab1e7a WebCore::SVGElement::removeEventListener(WTF::AtomicString const&amp;, WebCore::EventListener*, bool) + 554 (SVGElement.cpp:620)
2   com.apple.WebCore             	0x0000000115d5c316 WebCore::jsNodePrototypeFunctionRemoveEventListener(JSC::ExecState*) + 678 (JSNode.cpp:872)
3   ???                           	0x00004539c5601028 0 + 76114426859560
4   com.apple.JavaScriptCore      	0x000000011311304e llint_entry + 25874
5   com.apple.JavaScriptCore      	0x000000011310c8f9 vmEntryToJavaScript + 361
6   com.apple.JavaScriptCore      	0x0000000112f6936c JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 252
7   com.apple.JavaScriptCore      	0x0000000112f4d7d8 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1464
8   com.apple.JavaScriptCore      	0x000000011299c84e JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 190
9   com.apple.JavaScriptCore      	0x000000011299c8b3 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 83</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112194</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-24 21:46:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/21915355&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112333</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-26 15:23:47 -0700</bug_when>
    <thetext>This stack shows an assertion failure, but sounds like there is also a crash in release mode - is that correct?

The attached test case doesn&apos;t crash in shipping Safari/WebKit for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112442</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-27 11:14:10 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This stack shows an assertion failure, but sounds like there is also a crash
&gt; in release mode - is that correct?
&gt; 
&gt; The attached test case doesn&apos;t crash in shipping Safari/WebKit for me.

Yes the above is an assertion failure. Here is the crashing call stack which I got when opening the attached text case in the latest Safari

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x00007fff896746f4 WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup(WTF::AtomicString const&amp;) + 20
1   com.apple.WebCore             	0x00007fff89efdca2 WebCore::SVGElement::removeEventListener(WTF::AtomicString const&amp;, WebCore::EventListener*, bool) + 290
2   com.apple.WebCore             	0x00007fff89250578 WebCore::jsNodePrototypeFunctionRemoveEventListener(JSC::ExecState*) + 424
3   ???                           	0x00003a8434e01028 0 + 64339497193512
4   com.apple.JavaScriptCore      	0x00007fff8548a376 llint_entry + 22925
5   com.apple.JavaScriptCore      	0x00007fff854847d9 vmEntryToJavaScript + 326
6   com.apple.JavaScriptCore      	0x00007fff853b3419 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 169
7   com.apple.JavaScriptCore      	0x00007fff84f884ad JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 493
8   com.apple.JavaScriptCore      	0x00007fff85125507 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 71
9   com.apple.WebCore             	0x00007fff8924f41a WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 1002
10  com.apple.WebCore             	0x00007fff896778db WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow, 16ul&gt;&amp;) + 635
11  com.apple.WebCore             	0x00007fff8915a390 WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 224
12  com.apple.WebCore             	0x00007fff891b0414 WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::EventTarget&gt;) + 260
13  com.apple.WebCore             	0x00007fff891c251b WebCore::DOMWindow::dispatchLoadEvent() + 347
14  com.apple.WebCore             	0x00007fff89185dd4 WebCore::Document::implicitClose() + 324
15  com.apple.WebCore             	0x00007fff89185853 WebCore::FrameLoader::checkCompleted() + 275
16  com.apple.WebCore             	0x00007fff89184624 WebCore::FrameLoader::finishedParsing() + 100
17  com.apple.WebCore             	0x00007fff891833c1 WebCore::Document::finishedParsing() + 417
18  com.apple.WebCore             	0x00007fff8915b9aa WebCore::DocumentWriter::end() + 58
19  com.apple.WebCore             	0x00007fff8914d55c WebCore::DocumentLoader::finishedLoading(double) + 268
20  com.apple.WebCore             	0x00007fff891e8809 WebCore::CachedResource::checkNotify() + 153
21  com.apple.WebCore             	0x00007fff894abe43 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) + 227
22  com.apple.WebCore             	0x00007fff891e86a1 WebCore::SubresourceLoader::didFinishLoading(double) + 1153
23  com.apple.WebKit              	0x00007fff8ec57d0d WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) + 561
24  com.apple.WebKit              	0x00007fff8ea9b458 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt;) + 102
25  com.apple.WebKit              	0x00007fff8ea9d984 IPC::Connection::dispatchOneMessage() + 114
26  com.apple.JavaScriptCore      	0x00007fff85570b45 WTF::RunLoop::performWork() + 437
27  com.apple.JavaScriptCore      	0x00007fff85571222 WTF::RunLoop::performWork(void*) + 34
28  com.apple.CoreFoundation      	0x00007fff8adf8ac1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
29  com.apple.CoreFoundation      	0x00007fff8adeb0bc __CFRunLoopDoSources0 + 556
30  com.apple.CoreFoundation      	0x00007fff8adea5df __CFRunLoopRun + 927
31  com.apple.CoreFoundation      	0x00007fff8ade9fd8 CFRunLoopRunSpecific + 296
32  com.apple.HIToolbox           	0x00007fff8b6a86a1 RunCurrentEventLoopInMode + 235
33  com.apple.HIToolbox           	0x00007fff8b6a8437 ReceiveNextEventCommon + 432
34  com.apple.HIToolbox           	0x00007fff8b6a8277 _BlockUntilNextEventMatchingListInModeWithFilter + 71
35  com.apple.AppKit              	0x00007fff8d6e106f _DPSNextEvent + 1076
36  com.apple.AppKit              	0x00007fff8daae597 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 423
37  com.apple.AppKit              	0x00007fff8d6d6efa -[NSApplication run] + 682
38  com.apple.AppKit              	0x00007fff8d6590b2 NSApplicationMain + 1176
39  libxpc.dylib                  	0x00007fff91d08fa0 _xpc_objc_main + 793
40  libxpc.dylib                  	0x00007fff91d0a6ef xpc_main + 494
41  com.apple.WebKit.WebContent   	0x0000000105b79b4a 0x105b79000 + 2890
42  libdyld.dylib                 	0x00007fff950075ad start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112461</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-27 12:07:02 -0700</bug_when>
    <thetext>This crash happens under these conditions:

1. An element &apos;parent&apos; is defined to be referenced later 
2. A &lt;defs&gt; element &apos;parent-defs&apos; is included inside &apos;parent&apos;
3. An element &apos;child&apos; is defined inside &apos;parent-defs&apos;
4. A visible &lt;use&gt; element &apos;use-parent&apos; references &apos;parent&apos;
5. A addEventListener is made for &apos;child&apos; before the onload fires
6. A removeEventListener is made for &apos;child&apos; after the onload fires

Here is the explanation of why the crash happens in this case:

1. Because addEventListener() was called before onload fires, the event is only added to the element itself. No instances are created before the onload event.
2. SVGUseElement::updateShadowTree() is called as part of resolving the style of &apos;use-parent&apos;. It calls cloneTarget() and then calls transferEventListenersToShadowTree().
3. &apos;use-parent&apos; references &apos;parent&apos; so the whole &apos;parent&apos; tree is cloned as a shadow tree for &apos;use-parent&apos;
4. &apos;parent-defs&apos; is a child of &apos;parent&apos; so it is cloned and its subtree which includes the cloned &apos;child&apos;
5. The cloned &apos;child&apos; is added to the instances()  of &apos;child&apos; and its correspondingElement is set to &apos;child&apos;
6. After finishing the cloning, removeDisallowedElementsFromSubtree() is called which removes the cloned &apos;parent-defs&apos; from the shadow subtree. The cloned &apos;parent-defs&apos; includes the clone of &apos;child&apos; which is now inaccessible from &apos;use-parent&apos;.
7. When transferEventListenersToShadowTree() is called we fail to transfer the EventListener from the &apos;child&apos; to the cloned &apos;child&apos; since its parent cloned &apos;parent-defs&apos; was removed from the shadow tree of the &apos;parent&apos; element. Yet the &apos;child&apos; instances() list still contains the cloned &apos;child&apos;
8. When SVGElement::removeEventListener() is called for &apos;child&apos; &apos;element&apos;, it loops through its instances() list and calls Node::removeEventListener() for each instance. We fail to removeEventListener() for the cloned &apos;child&apos; since addEventListener() was never called for it. So we end up crashing when calling EventListenerMap::removeFirstEventListenerCreatedFromMarkup() since instance-&gt;eventTargetData() is null. The only way to get it valid is to call addEventListener() which did not happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112467</commentid>
    <comment_count>5</comment_count>
      <attachid>257579</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-27 12:26:02 -0700</bug_when>
    <thetext>Created attachment 257579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112498</commentid>
    <comment_count>6</comment_count>
      <attachid>257579</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-27 14:12:06 -0700</bug_when>
    <thetext>Comment on attachment 257579
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        are disallowed and removed. Make sure, when disallowing  an element in the

Double space between &quot;disallowing&quot; and &quot;an&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112512</commentid>
    <comment_count>7</comment_count>
      <attachid>257595</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-27 14:49:51 -0700</bug_when>
    <thetext>Created attachment 257595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112545</commentid>
    <comment_count>8</comment_count>
      <attachid>257595</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-27 15:41:35 -0700</bug_when>
    <thetext>Comment on attachment 257595
Patch

Rejecting attachment 257595 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 257595, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/5146182305185792</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112554</commentid>
    <comment_count>9</comment_count>
      <attachid>257606</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-27 15:48:42 -0700</bug_when>
    <thetext>Created attachment 257606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112584</commentid>
    <comment_count>10</comment_count>
      <attachid>257606</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-27 16:40:21 -0700</bug_when>
    <thetext>Comment on attachment 257606
Patch

Clearing flags on attachment: 257606

Committed r187463: &lt;http://trac.webkit.org/changeset/187463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112585</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-27 16:40:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112595</commentid>
    <comment_count>12</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2015-07-27 16:53:41 -0700</bug_when>
    <thetext>rdar://problem/21915355</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112721</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-28 09:23:35 -0700</bug_when>
    <thetext>This caused memory corruption on SVG tests, detected by GuardMalloc and ASan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112723</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-28 09:31:21 -0700</bug_when>
    <thetext>Rolled out manually in r187486.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112724</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-28 09:33:11 -0700</bug_when>
    <thetext>Re-opening bug per comment #14.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112755</commentid>
    <comment_count>16</comment_count>
      <attachid>257657</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 10:42:43 -0700</bug_when>
    <thetext>Created attachment 257657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112758</commentid>
    <comment_count>17</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 10:55:09 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; This caused memory corruption on SVG tests, detected by GuardMalloc and ASan.

The memory corruption happened because pf calling descendantsOfType&lt;SVGElement&gt;(*element) after calling element-&gt;parentNode()-&gt;removeChild(element). removeChild() causes the element data to be garbage-collected so when firstChild() is called, a crash happens.

The fix is to call setCorrespondingElement() for the SVGElement descendants of element before removing the element from its parent children list. Also there is no need to call descendant.setCorrespondingElement(nullptr) if descendant.correspondingElement() is null. setCorrespondingElement() calls ensureSVGRareData() which allocates SVGElementRareData if it is null. All these descendants will be garbage-collected later anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112773</commentid>
    <comment_count>18</comment_count>
      <attachid>257664</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 11:23:44 -0700</bug_when>
    <thetext>Created attachment 257664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112780</commentid>
    <comment_count>19</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 11:30:16 -0700</bug_when>
    <thetext>This guardMalloc memory corruption actually emphasizes the original crash more and explains it better. We were not only trying to removeEventListener from an element which addEventListener was never called for it but we were referencing an abandoned child element. And the memory of this element is going to be claimed later by the garbage collector. So the type of crash depends on when the JavaScript call is made to WebCore to removeEventListener(). It can be referencing a null pointer or it can be referencing a freed memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112781</commentid>
    <comment_count>20</comment_count>
      <attachid>257664</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-28 11:32:49 -0700</bug_when>
    <thetext>Comment on attachment 257664
Patch

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

&gt; Source/WebCore/svg/SVGUseElement.cpp:336
&gt; +        for (auto&amp; descendant : descendantsOfType&lt;SVGElement&gt;(*element)) {
&gt; +            if (descendant.correspondingElement())
&gt; +                descendant.setCorrespondingElement(nullptr);
&gt; +        }

We should consider nullifying the corresponding element in general when we remove an SVG child (see ContainerNode::removeChild()). Notice that we currently invalidate the instance associated with the remove node in SVGElement::childrenChanged().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112790</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-28 11:53:01 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Also
&gt; there is no need to call descendant.setCorrespondingElement(nullptr) if
&gt; descendant.correspondingElement() is null. setCorrespondingElement() calls
&gt; ensureSVGRareData() which allocates SVGElementRareData if it is null.

I think this should be fixed by enhancing the setCorrespondingElement function to handle setting to null when it’s already null without allocating rare data, instead of working around it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112807</commentid>
    <comment_count>22</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 12:26:17 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Comment on attachment 257664 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257664&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/SVGUseElement.cpp:336
&gt; &gt; +        for (auto&amp; descendant : descendantsOfType&lt;SVGElement&gt;(*element)) {
&gt; &gt; +            if (descendant.correspondingElement())
&gt; &gt; +                descendant.setCorrespondingElement(nullptr);
&gt; &gt; +        }
&gt; 
&gt; We should consider nullifying the corresponding element in general when we
&gt; remove an SVG child (see ContainerNode::removeChild()). Notice that we
&gt; currently invalidate the instance associated with the remove node in
&gt; SVGElement::childrenChanged().

I agree we should have a general solution which works for all the cases when the child is removed. However removeChild() is very generic and although SVGElement::childrenChanged() is called from the ContainerNode::removeChild(), knowing whether removing the child from the parent children tree will cause this child to be freed or not seems to need more investigation. I will log a separate bug to track this issue down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112808</commentid>
    <comment_count>23</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 12:26:54 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #17)
&gt; &gt; Also
&gt; &gt; there is no need to call descendant.setCorrespondingElement(nullptr) if
&gt; &gt; descendant.correspondingElement() is null. setCorrespondingElement() calls
&gt; &gt; ensureSVGRareData() which allocates SVGElementRareData if it is null.
&gt; 
&gt; I think this should be fixed by enhancing the setCorrespondingElement
&gt; function to handle setting to null when it’s already null without allocating
&gt; rare data, instead of working around it here.

Good suggestion I am going to do it and update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112822</commentid>
    <comment_count>24</comment_count>
      <attachid>257672</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 13:04:46 -0700</bug_when>
    <thetext>Created attachment 257672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112826</commentid>
    <comment_count>25</comment_count>
      <attachid>257672</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 13:11:26 -0700</bug_when>
    <thetext>Comment on attachment 257672
Patch

Clearing flags on attachment: 257672

Committed r187504: &lt;http://trac.webkit.org/changeset/187504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112827</commentid>
    <comment_count>26</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-28 13:11:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>257510</attachid>
            <date>2015-07-24 21:45:56 -0700</date>
            <delta_ts>2015-07-24 21:45:56 -0700</delta_ts>
            <desc>test case (will crash)</desc>
            <filename>test146.svg</filename>
            <type>image/svg+xml</type>
            <size>726</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1s
bnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoKICA8ZGVmcz4KICAgIDxz
dmcgaWQ9ImdyZWVuLXN2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgogICAgICA8ZGVmcz4K
ICAgICAgICAgPHJlY3QgaWQ9ImdyZWVuLXJlY3QiIGZpbGw9ImdyZWVuIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIvPgogICAgICA8L2RlZnM+CiAgICAgIDx1c2UgaWQ9InVzZS1ncmVlbi1yZWN0
IiB4bGluazpocmVmPSIjZ3JlZW4tcmVjdCIvPgogICAgPC9zdmc+CiAgPC9kZWZzPiAgCgogIDx1
c2UgaWQ9InVzZS1ncmVlbi1zdmciIHg9IjEwIiB5PSIxMCIgeGxpbms6aHJlZj0iI2dyZWVuLXN2
ZyIvPgoKICA8c2NyaXB0PgogICAgdmFyIG9uQWxlcnQgPSBmdW5jdGlvbigpIHsKICAgICAgYWxl
cnQoInRlc3QiKTsKICAgIH0KCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JlZW4tcmVj
dCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7CiAgICAKICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgewogICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZ3JlZW4tcmVjdCIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25B
bGVydCk7CiAgICB9LCBmYWxzZSk7CiAgPC9zY3JpcHQ+Cgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257579</attachid>
            <date>2015-07-27 12:26:02 -0700</date>
            <delta_ts>2015-07-27 14:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147290-20150727122445.patch</filename>
            <type>text/plain</type>
            <size>4526</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzQzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTI3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaGFw
cGVucyB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmb3IgYW4gU1ZHIGVsZW1lbnQg
d2hpY2ggaGFzIGFuIGluc3RhbmNlIGluc2lkZSBhIDxkZWZzPiBlbGVtZW50IG9mIHNoYWRvdyB0
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBzaGFkb3cgdHJlZSBpcyBidWlsdCBmb3IgYSA8dXNlPiBlbGVtZW50LCBhbGwgdGhlIFNW
RyBlbGVtZW50cworICAgICAgICBhcmUgYWxsb3dlZCB0byBiZSBjbG9uZWQgaW4gdGhlIHNoYWRv
dyB0cmVlIGJ1dCBsYXRlciBzb21lIG9mIHRoZSBlbGVtZW50cworICAgICAgICBhcmUgZGlzYWxs
b3dlZCBhbmQgcmVtb3ZlZC4gTWFrZSBzdXJlLCB3aGVuIGRpc2FsbG93aW5nICBhbiBlbGVtZW50
IGluIHRoZQorICAgICAgICBzaGFkb3cgdHJlZSwgdG8gcmVzZXQgdGhlIGNvcnJlc3BvbmRpbmdF
bGVtZW50IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFsbAorICAgICAgICB0aGUgZGlzYWxsb3dlZCBk
ZXNjZW5kYW50IFNWRyBlbGVtZW50cyBhbmQgYWxsIHRoZWlyIG9yaWdpbmFsIGVsZW1lbnRzLgor
ICAgICAgICAKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXIt
c2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcKKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21T
dWJ0cmVlKToKKwogMjAxNS0wNy0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUGFzcyBhIEdzdEluc3RhbGxQbHVnaW5zQ29udGV4
dCB0byBnc3RfaW5zdGFsbF9wbHVnaW5zX2FzeW5jCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODcyNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyOSw4ICszMjksMTEgQEAgc3RhdGlj
IHZvaWQgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbQogICAgICAgICB9CiAgICAgICAgICsr
aXQ7CiAgICAgfQotICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykK
KyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBkaXNhbGxvd2VkRWxlbWVudHMpIHsKICAgICAgICAg
ZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChlbGVtZW50KTsKKyAgICAgICAgZm9y
IChhdXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8U1ZHRWxlbWVudD4oKmVsZW1l
bnQpKQorICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRDb3JyZXNwb25kaW5nRWxlbWVudChudWxs
cHRyKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5h
bHMoU1ZHRWxlbWVudCYgY2xvbmUsIFNWR0VsZW1lbnQmIG9yaWdpbmFsKQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTg3NDM0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTUtMDctMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBoYXBwZW5zIHdoZW4gY2FsbGluZyByZW1v
dmVFdmVudExpc3RlbmVyIGZvciBhbiBTVkcgZWxlbWVudCB3aGljaCBoYXMgYW4gaW5zdGFuY2Ug
aW5zaWRlIGEgPGRlZnM+IGVsZW1lbnQgb2Ygc2hhZG93IHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB3ZSBkbyBub3QgY3Jhc2gg
d2hlbiB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lcigpIGZvciBhbgorICAgICAgICBl
bGVtZW50IHdoaWNoIGlzIGNsb25lZCB1bmRlciBhIGRpc2FsbG93ZWQgcGFyZW50IGluc2lkZSB0
aGUgc2hhZG93IHRyZWUKKyAgICAgICAgb2YgYW5vdGhlciA8dXNlPiBlbGVtZW50LgorCisgICAg
ICAgICogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQt
ZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vcmVtb3Zl
LWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnOiBBZGRlZC4KKwog
MjAxNS0wNy0yNyAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtTdHJlYW1zIEFQSV0gU3RyYXRlZ3kgdGVzdHMgbmVlZCBzeW5jIHdpdGgg
dGhlIHJlZmVyZW5jZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQt
bGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93
LWRpc2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1l
bGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxIEBACitQYXNzLgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93
LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0
ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDMwIEBACis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CisKKyAg
PGRlZnM+CisgICAgPHN2ZyBpZD0iZ3JlZW4tc3ZnIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+
CisgICAgICA8ZGVmcz4KKyAgICAgICAgIDxyZWN0IGlkPSJncmVlbi1yZWN0IiBmaWxsPSJncmVl
biIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4KKyAgICAgIDwvZGVmcz4KKyAgICAgIDx1c2Ug
aWQ9InVzZS1ncmVlbi1yZWN0IiB4bGluazpocmVmPSIjZ3JlZW4tcmVjdCIvPgorICAgIDwvc3Zn
PgorICA8L2RlZnM+ICAKKworICA8dXNlIGlkPSJ1c2UtZ3JlZW4tc3ZnIiB4PSIxMCIgeT0iMTAi
IHhsaW5rOmhyZWY9IiNncmVlbi1zdmciLz4KKyAgPHRleHQ+UGFzcy48L3RleHQ+CisKKyAgPHNj
cmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAKKyAgICB2YXIgb25BbGVydCA9IGZ1bmN0aW9uKCkgeworICAgICAgYWxl
cnQoInRlc3QiKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JlZW4t
cmVjdCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7CisgICAgCisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7CisgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZ3JlZW4tcmVjdCIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNr
Iiwgb25BbGVydCk7CisgICAgfSwgZmFsc2UpOworICA8L3NjcmlwdD4KKworPC9zdmc+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257595</attachid>
            <date>2015-07-27 14:49:51 -0700</date>
            <delta_ts>2015-07-27 15:48:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147290-20150727144831.patch</filename>
            <type>text/plain</type>
            <size>5031</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzQ0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTI3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaGFw
cGVucyB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmb3IgYW4gU1ZHIGVsZW1lbnQg
d2hpY2ggaGFzIGFuIGluc3RhbmNlIGluc2lkZSBhIDxkZWZzPiBlbGVtZW50IG9mIHNoYWRvdyB0
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBzaGFkb3cgdHJlZSBpcyBidWlsdCBmb3IgYSA8dXNlPiBlbGVtZW50LCBhbGwgdGhlIFNW
RyBlbGVtZW50cworICAgICAgICBhcmUgYWxsb3dlZCB0byBiZSBjbG9uZWQgaW4gdGhlIHNoYWRv
dyB0cmVlIGJ1dCBsYXRlciBzb21lIG9mIHRoZSBlbGVtZW50cworICAgICAgICBhcmUgZGlzYWxs
b3dlZCBhbmQgcmVtb3ZlZC4gTWFrZSBzdXJlLCB3aGVuIGRpc2FsbG93aW5nIGFuIGVsZW1lbnQg
aW4gdGhlCisgICAgICAgIHNoYWRvdyB0cmVlLCB0byByZXNldCB0aGUgY29ycmVzcG9uZGluZ0Vs
ZW1lbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gYWxsCisgICAgICAgIHRoZSBkaXNhbGxvd2VkIGRl
c2NlbmRhbnQgU1ZHIGVsZW1lbnRzIGFuZCBhbGwgdGhlaXIgb3JpZ2luYWwgZWxlbWVudHMuCisg
ICAgICAgIAorICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1z
aGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LnN2ZworCisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1
YnRyZWUpOgorCiAyMDE1LTA3LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEVuaGFuY2UgQW5pbWF0aW9uIGxvZ2dpbmcgc2xpZ2h0bHkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NzQ0MikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5
LDggKzMyOSwxMSBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tCiAg
ICAgICAgIH0KICAgICAgICAgKytpdDsKICAgICB9Ci0gICAgZm9yIChhdXRvKiBlbGVtZW50IDog
ZGlzYWxsb3dlZEVsZW1lbnRzKQorICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRF
bGVtZW50cykgewogICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGVs
ZW1lbnQpOworICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlw
ZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBkZXNjZW5kYW50LnNldENvcnJl
c3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgYXNzb2Np
YXRlQ2xvbmVzV2l0aE9yaWdpbmFscyhTVkdFbGVtZW50JiBjbG9uZSwgU1ZHRWxlbWVudCYgb3Jp
Z2luYWwpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODc0NDIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNy0yNyAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIGhhcHBl
bnMgd2hlbiBjYWxsaW5nIHJlbW92ZUV2ZW50TGlzdGVuZXIgZm9yIGFuIFNWRyBlbGVtZW50IHdo
aWNoIGhhcyBhbiBpbnN0YW5jZSBpbnNpZGUgYSA8ZGVmcz4gZWxlbWVudCBvZiBzaGFkb3cgdHJl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Mjkw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBz
dXJlIHdlIGRvIG5vdCBjcmFzaCB3aGVuIHdoZW4gY2FsbGluZyByZW1vdmVFdmVudExpc3RlbmVy
KCkgZm9yIGFuCisgICAgICAgIGVsZW1lbnQgd2hpY2ggaXMgY2xvbmVkIHVuZGVyIGEgZGlzYWxs
b3dlZCBwYXJlbnQgaW5zaWRlIHRoZSBzaGFkb3cgdHJlZQorICAgICAgICBvZiBhbm90aGVyIDx1
c2U+IGVsZW1lbnQuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5l
ci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQtZWxl
bWVudC5zdmc6IEFkZGVkLgorCiAyMDE1LTA3LTI3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIE1vcmUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIHJkYXI6Ly9w
cm9ibGVtLzIyMDE0NjcyCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVu
dC1saXN0ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFk
b3ctZGlzYWxsb3dlZC1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2Vk
LWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK1Bhc3Mu
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFk
b3ctZGlzYWxsb3dlZC1lbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LnN2
ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxp
c3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzcgQEAKKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKwor
ICA8ZGVmcz4KKyAgICA8c3ZnIGlkPSJncmVlbi1zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
Ij4KKyAgICAgIDxkZWZzPgorICAgICAgICAgPHJlY3QgaWQ9ImdyZWVuLXJlY3QiIGZpbGw9Imdy
ZWVuIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorICAgICAgPC9kZWZzPgorICAgICAgPHVz
ZSBpZD0idXNlLWdyZWVuLXJlY3QiIHhsaW5rOmhyZWY9IiNncmVlbi1yZWN0Ii8+CisgICAgPC9z
dmc+CisgIDwvZGVmcz4gIAorCisgIDx1c2UgaWQ9InVzZS1ncmVlbi1zdmciIHg9IjEwIiB5PSIx
MCIgeGxpbms6aHJlZj0iI2dyZWVuLXN2ZyIvPgorICA8dGV4dD5QYXNzLjwvdGV4dD4KKworICA8
c2NyaXB0PgorICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgCisgICAgdmFyIG9uQWxlcnQgPSBmdW5jdGlvbigpIHsKKyAgICAgIGFs
ZXJ0KCJ0ZXN0Iik7CisgICAgfQorCisgICAgLy8gVGhpcyByZW1vdmVFdmVudExpc3RlbmVyKCkg
aGFzIHRvIGJlIGNhbGxlZCBiZWZvcmUgdGhlIG9ubG9hZCBmaXJlcy4gQmVmb3JlCisgICAgLy8g
b25sb2FkIGZpcmVzLCB0aGUgc2hhZG93IHRyZWUgb2YgdGhlIFNWR1VzZUVsZW1lbnQgaXMgbm90
IGJ1aWx0LiBTbyB0aGlzCisgICAgLy8gY2FsbCBzaG91bGQgYWZmZWN0IHRoZSBvcmlnaW5hbCBl
bGVtZW50IG9ubHkuIE9uY2UgdGhlIHNoYWRvdyB0cmVlIGlzIGJ1aWx0LAorICAgIC8vIHRoZSBT
VkdVc2VFbGVtZW50IGNhbGxzIHVwZGF0ZVNoYWRvd1RyZWUoKSBhbmQgdGhpcyBpcyB3aGVyZSB3
ZSB3YW50IHRvIG1ha2UKKyAgICAvLyBzdXJlIHRoZSBldmVudExpc3RlbmVycyBvZiBhbGwgdGhl
IGNsb25lZCBlbGVtZW50cyBpbiB0aGUgc2hhZG93IHRyZWUgYXJlCisgICAgLy8gdXBkYXRlZCBj
b3JyZWN0bHkgYW5kIHRoZSBkaXNhbGxvd2VkIGNsb25lZCBlbGVtZW50cyBhbmQgdGhlaXIgZGVz
Y2VuZGFudHMKKyAgICAvLyAgYXJlIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZWlyIGNvcnJlc3BvbmRp
bmcgZWxlbWVudHMuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyZWVuLXJlY3QiKS5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQWxlcnQpOworICAgIAorICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgeworICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImdyZWVuLXJlY3QiKS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQWxl
cnQpOworICAgIH0sIGZhbHNlKTsKKyAgPC9zY3JpcHQ+CisKKzwvc3ZnPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257606</attachid>
            <date>2015-07-27 15:48:42 -0700</date>
            <delta_ts>2015-07-28 10:42:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147290-20150727154722.patch</filename>
            <type>text/plain</type>
            <size>5027</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzQ0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTI3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaGFw
cGVucyB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmb3IgYW4gU1ZHIGVsZW1lbnQg
d2hpY2ggaGFzIGFuIGluc3RhbmNlIGluc2lkZSBhIDxkZWZzPiBlbGVtZW50IG9mIHNoYWRvdyB0
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiB0
aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQgZm9yIGEgPHVzZT4gZWxlbWVudCwgYWxsIHRoZSBTVkcg
ZWxlbWVudHMKKyAgICAgICAgYXJlIGFsbG93ZWQgdG8gYmUgY2xvbmVkIGluIHRoZSBzaGFkb3cg
dHJlZSBidXQgbGF0ZXIgc29tZSBvZiB0aGUgZWxlbWVudHMKKyAgICAgICAgYXJlIGRpc2FsbG93
ZWQgYW5kIHJlbW92ZWQuIE1ha2Ugc3VyZSwgd2hlbiBkaXNhbGxvd2luZyBhbiBlbGVtZW50IGlu
IHRoZQorICAgICAgICBzaGFkb3cgdHJlZSwgdG8gcmVzZXQgdGhlIGNvcnJlc3BvbmRpbmdFbGVt
ZW50IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFsbAorICAgICAgICB0aGUgZGlzYWxsb3dlZCBkZXNj
ZW5kYW50IFNWRyBlbGVtZW50cyBhbmQgYWxsIHRoZWlyIG9yaWdpbmFsIGVsZW1lbnRzLgorICAg
ICAgICAKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hh
ZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcKKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0
cmVlKToKKwogMjAxNS0wNy0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBFbmhhbmNlIEFuaW1hdGlvbiBsb2dnaW5nIHNsaWdodGx5CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODc0NDIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyOSw4
ICszMjksMTEgQEAgc3RhdGljIHZvaWQgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbQogICAg
ICAgICB9CiAgICAgICAgICsraXQ7CiAgICAgfQotICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRp
c2FsbG93ZWRFbGVtZW50cykKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBkaXNhbGxvd2VkRWxl
bWVudHMpIHsKICAgICAgICAgZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChlbGVt
ZW50KTsKKyAgICAgICAgZm9yIChhdXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8
U1ZHRWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRDb3JyZXNw
b25kaW5nRWxlbWVudChudWxscHRyKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIGFzc29jaWF0
ZUNsb25lc1dpdGhPcmlnaW5hbHMoU1ZHRWxlbWVudCYgY2xvbmUsIFNWR0VsZW1lbnQmIG9yaWdp
bmFsKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3NDQyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDctMjcgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBoYXBwZW5z
IHdoZW4gY2FsbGluZyByZW1vdmVFdmVudExpc3RlbmVyIGZvciBhbiBTVkcgZWxlbWVudCB3aGlj
aCBoYXMgYW4gaW5zdGFuY2UgaW5zaWRlIGEgPGRlZnM+IGVsZW1lbnQgb2Ygc2hhZG93IHRyZWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBNYWtlIHN1cmUg
d2UgZG8gbm90IGNyYXNoIHdoZW4gd2hlbiBjYWxsaW5nIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSBm
b3IgYW4KKyAgICAgICAgZWxlbWVudCB3aGljaCBpcyBjbG9uZWQgdW5kZXIgYSBkaXNhbGxvd2Vk
IHBhcmVudCBpbnNpZGUgdGhlIHNoYWRvdyB0cmVlCisgICAgICAgIG9mIGFub3RoZXIgPHVzZT4g
ZWxlbWVudC4KKworICAgICAgICAqIHN2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNo
YWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50
LnN2ZzogQWRkZWQuCisKIDIwMTUtMDctMjcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9yZSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgcmRhcjovL3Byb2Js
ZW0vMjIwMTQ2NzIKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxp
c3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1k
aXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQtZWxl
bWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorUGFzcy4KSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1k
aXNhbGxvd2VkLWVsZW1lbnQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0
b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVu
ZXItc2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzNyBAQAorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgorCisgIDxk
ZWZzPgorICAgIDxzdmcgaWQ9ImdyZWVuLXN2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgor
ICAgICAgPGRlZnM+CisgICAgICAgICA8cmVjdCBpZD0iZ3JlZW4tcmVjdCIgZmlsbD0iZ3JlZW4i
IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgICA8L2RlZnM+CisgICAgICA8dXNlIGlk
PSJ1c2UtZ3JlZW4tcmVjdCIgeGxpbms6aHJlZj0iI2dyZWVuLXJlY3QiLz4KKyAgICA8L3N2Zz4K
KyAgPC9kZWZzPiAgCisKKyAgPHVzZSBpZD0idXNlLWdyZWVuLXN2ZyIgeD0iMTAiIHk9IjEwIiB4
bGluazpocmVmPSIjZ3JlZW4tc3ZnIi8+CisgIDx0ZXh0PlBhc3MuPC90ZXh0PgorCisgIDxzY3Jp
cHQ+CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAKKyAgICB2YXIgb25BbGVydCA9IGZ1bmN0aW9uKCkgeworICAgICAgYWxlcnQo
InRlc3QiKTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSBoYXMg
dG8gYmUgY2FsbGVkIGJlZm9yZSB0aGUgb25sb2FkIGZpcmVzLiBCZWZvcmUKKyAgICAvLyBvbmxv
YWQgZmlyZXMsIHRoZSBzaGFkb3cgdHJlZSBvZiB0aGUgU1ZHVXNlRWxlbWVudCBpcyBub3QgYnVp
bHQuIFNvIHRoaXMKKyAgICAvLyBjYWxsIHNob3VsZCBhZmZlY3QgdGhlIG9yaWdpbmFsIGVsZW1l
bnQgb25seS4gT25jZSB0aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQsCisgICAgLy8gdGhlIFNWR1Vz
ZUVsZW1lbnQgY2FsbHMgdXBkYXRlU2hhZG93VHJlZSgpIGFuZCB0aGlzIGlzIHdoZXJlIHdlIHdh
bnQgdG8gbWFrZQorICAgIC8vIHN1cmUgdGhlIGV2ZW50TGlzdGVuZXJzIG9mIGFsbCB0aGUgY2xv
bmVkIGVsZW1lbnRzIGluIHRoZSBzaGFkb3cgdHJlZSBhcmUKKyAgICAvLyB1cGRhdGVkIGNvcnJl
Y3RseSBhbmQgdGhlIGRpc2FsbG93ZWQgY2xvbmVkIGVsZW1lbnRzIGFuZCB0aGVpciBkZXNjZW5k
YW50cworICAgIC8vICBhcmUgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIgY29ycmVzcG9uZGluZyBl
bGVtZW50cy4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JlZW4tcmVjdCIpLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZ3JlZW4tcmVjdCIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7
CisgICAgfSwgZmFsc2UpOworICA8L3NjcmlwdD4KKworPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257657</attachid>
            <date>2015-07-28 10:42:43 -0700</date>
            <delta_ts>2015-07-28 11:23:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147290-20150728104121.patch</filename>
            <type>text/plain</type>
            <size>5159</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzQ4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTI4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaGFw
cGVucyB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmb3IgYW4gU1ZHIGVsZW1lbnQg
d2hpY2ggaGFzIGFuIGluc3RhbmNlIGluc2lkZSBhIDxkZWZzPiBlbGVtZW50IG9mIHNoYWRvdyB0
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiB0
aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQgZm9yIGEgPHVzZT4gZWxlbWVudCwgYWxsIHRoZSBTVkcg
ZWxlbWVudHMKKyAgICAgICAgYXJlIGFsbG93ZWQgdG8gYmUgY2xvbmVkIGluIHRoZSBzaGFkb3cg
dHJlZSBidXQgbGF0ZXIgc29tZSBvZiB0aGUgZWxlbWVudHMKKyAgICAgICAgYXJlIGRpc2FsbG93
ZWQgYW5kIHJlbW92ZWQuIE1ha2Ugc3VyZSwgd2hlbiBkaXNhbGxvd2luZyBhbiBlbGVtZW50IGlu
IHRoZQorICAgICAgICBzaGFkb3cgdHJlZSwgdG8gcmVzZXQgdGhlIGNvcnJlc3BvbmRpbmdFbGVt
ZW50IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFsbAorICAgICAgICB0aGUgZGlzYWxsb3dlZCBkZXNj
ZW5kYW50IFNWRyBlbGVtZW50cyBhbmQgYWxsIHRoZWlyIG9yaWdpbmFsIGVsZW1lbnRzLgorICAg
ICAgICAKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hh
ZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcKKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0
cmVlKToKKwogMjAxNS0wNy0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSb2xsaW5nIG91dCByMTg3NDYzLCBiZWNhdXNlIGl0IGNhdXNlZCBtZW1vcnkg
Y29ycnVwdGlvbiBvbiBtdWx0aXBsZSB0ZXN0cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NzQ4NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5LDggKzMyOSwxMyBAQCBzdGF0aWMg
dm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tCiAgICAgICAgIH0KICAgICAgICAgKytp
dDsKICAgICB9Ci0gICAgZm9yIChhdXRvKiBlbGVtZW50IDogZGlzYWxsb3dlZEVsZW1lbnRzKQor
ICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgeworICAgICAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxl
bWVudCkpIHsKKyAgICAgICAgICAgIGlmIChkZXNjZW5kYW50LmNvcnJlc3BvbmRpbmdFbGVtZW50
KCkpCisgICAgICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRDb3JyZXNwb25kaW5nRWxlbWVudChu
dWxscHRyKTsKKyAgICAgICAgfQogICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92
ZUNoaWxkKGVsZW1lbnQpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgYXNzb2NpYXRlQ2xvbmVz
V2l0aE9yaWdpbmFscyhTVkdFbGVtZW50JiBjbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2luYWwpCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODc0ODcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNy0yOCAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIGhhcHBlbnMgd2hlbiBj
YWxsaW5nIHJlbW92ZUV2ZW50TGlzdGVuZXIgZm9yIGFuIFNWRyBlbGVtZW50IHdoaWNoIGhhcyBh
biBpbnN0YW5jZSBpbnNpZGUgYSA8ZGVmcz4gZWxlbWVudCBvZiBzaGFkb3cgdHJlZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIE1ha2Ugc3VyZSB3ZSBkbyBu
b3QgY3Jhc2ggd2hlbiB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lcigpIGZvciBhbgor
ICAgICAgICBlbGVtZW50IHdoaWNoIGlzIGNsb25lZCB1bmRlciBhIGRpc2FsbG93ZWQgcGFyZW50
IGluc2lkZSB0aGUgc2hhZG93IHRyZWUKKyAgICAgICAgb2YgYW5vdGhlciA8dXNlPiBlbGVtZW50
LgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRp
c2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0
b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnOiBB
ZGRlZC4KKwogMjAxNS0wNy0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSb2xsaW5nIG91dCByMTg3NDYzLCBiZWNhdXNlIGl0IGNhdXNlZCBtZW1vcnkg
Y29ycnVwdGlvbiBvbiBtdWx0aXBsZSB0ZXN0cy4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0
b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50
LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hh
ZG93LWRpc2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSBAQAorUGFzcy4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50
LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxv
d2VkLWVsZW1lbnQuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGxpbmsiPgorCisgIDxkZWZzPgorICAgIDxzdmcgaWQ9ImdyZWVuLXN2ZyIgd2lkdGg9IjEw
MCIgaGVpZ2h0PSIxMDAiPgorICAgICAgPGRlZnM+CisgICAgICAgICA8cmVjdCBpZD0iZ3JlZW4t
cmVjdCIgZmlsbD0iZ3JlZW4iIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgICA8L2Rl
ZnM+CisgICAgICA8dXNlIGlkPSJ1c2UtZ3JlZW4tcmVjdCIgeGxpbms6aHJlZj0iI2dyZWVuLXJl
Y3QiLz4KKyAgICA8L3N2Zz4KKyAgPC9kZWZzPiAgCisKKyAgPHVzZSBpZD0idXNlLWdyZWVuLXN2
ZyIgeD0iMTAiIHk9IjEwIiB4bGluazpocmVmPSIjZ3JlZW4tc3ZnIi8+CisgIDx0ZXh0PlBhc3Mu
PC90ZXh0PgorCisgIDxzY3JpcHQ+CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAKKyAgICB2YXIgb25BbGVydCA9IGZ1bmN0aW9u
KCkgeworICAgICAgYWxlcnQoInRlc3QiKTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHJlbW92ZUV2
ZW50TGlzdGVuZXIoKSBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSB0aGUgb25sb2FkIGZpcmVzLiBC
ZWZvcmUKKyAgICAvLyBvbmxvYWQgZmlyZXMsIHRoZSBzaGFkb3cgdHJlZSBvZiB0aGUgU1ZHVXNl
RWxlbWVudCBpcyBub3QgYnVpbHQuIFNvIHRoaXMKKyAgICAvLyBjYWxsIHNob3VsZCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIGVsZW1lbnQgb25seS4gT25jZSB0aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQs
CisgICAgLy8gdGhlIFNWR1VzZUVsZW1lbnQgY2FsbHMgdXBkYXRlU2hhZG93VHJlZSgpIGFuZCB0
aGlzIGlzIHdoZXJlIHdlIHdhbnQgdG8gbWFrZQorICAgIC8vIHN1cmUgdGhlIGV2ZW50TGlzdGVu
ZXJzIG9mIGFsbCB0aGUgY2xvbmVkIGVsZW1lbnRzIGluIHRoZSBzaGFkb3cgdHJlZSBhcmUKKyAg
ICAvLyB1cGRhdGVkIGNvcnJlY3RseSBhbmQgdGhlIGRpc2FsbG93ZWQgY2xvbmVkIGVsZW1lbnRz
IGFuZCB0aGVpciBkZXNjZW5kYW50cworICAgIC8vICBhcmUgZGlzY29ubmVjdGVkIGZyb20gdGhl
aXIgY29ycmVzcG9uZGluZyBlbGVtZW50cy4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Z3JlZW4tcmVjdCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7CisgICAgCisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7CisgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JlZW4tcmVjdCIpLnJlbW92ZUV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgb25BbGVydCk7CisgICAgfSwgZmFsc2UpOworICA8L3NjcmlwdD4KKworPC9zdmc+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257664</attachid>
            <date>2015-07-28 11:23:44 -0700</date>
            <delta_ts>2015-07-28 13:04:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147290-20150728112223.patch</filename>
            <type>text/plain</type>
            <size>5158</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzQ4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTI4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaGFw
cGVucyB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmb3IgYW4gU1ZHIGVsZW1lbnQg
d2hpY2ggaGFzIGFuIGluc3RhbmNlIGluc2lkZSBhIDxkZWZzPiBlbGVtZW50IG9mIHNoYWRvdyB0
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiB0
aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQgZm9yIGEgPHVzZT4gZWxlbWVudCwgYWxsIHRoZSBTVkcg
ZWxlbWVudHMKKyAgICAgICAgYXJlIGFsbG93ZWQgdG8gYmUgY2xvbmVkIGluIHRoZSBzaGFkb3cg
dHJlZSBidXQgbGF0ZXIgc29tZSBvZiB0aGUgZWxlbWVudHMKKyAgICAgICAgYXJlIGRpc2FsbG93
ZWQgYW5kIHJlbW92ZWQuIE1ha2Ugc3VyZSwgd2hlbiBkaXNhbGxvd2luZyBhbiBlbGVtZW50IGlu
IHRoZQorICAgICAgICBzaGFkb3cgdHJlZSwgdG8gcmVzZXQgdGhlIGNvcnJlc3BvbmRpbmdFbGVt
ZW50IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFsbAorICAgICAgICB0aGUgZGlzYWxsb3dlZCBkZXNj
ZW5kYW50IFNWRyBlbGVtZW50cyBhbmQgYWxsIHRoZWlyIG9yaWdpbmFsIGVsZW1lbnRzLgorICAg
ICAgICAKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hh
ZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcKKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0
cmVlKToKKwogMjAxNS0wNy0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSb2xsaW5nIG91dCByMTg3NDYzLCBiZWNhdXNlIGl0IGNhdXNlZCBtZW1vcnkg
Y29ycnVwdGlvbiBvbiBtdWx0aXBsZSB0ZXN0cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NzQ4NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5LDggKzMyOSwxMyBAQCBzdGF0aWMg
dm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tCiAgICAgICAgIH0KICAgICAgICAgKytp
dDsKICAgICB9Ci0gICAgZm9yIChhdXRvKiBlbGVtZW50IDogZGlzYWxsb3dlZEVsZW1lbnRzKQor
ICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgeworICAgICAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxl
bWVudCkpIHsKKyAgICAgICAgICAgIGlmIChkZXNjZW5kYW50LmNvcnJlc3BvbmRpbmdFbGVtZW50
KCkpCisgICAgICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRDb3JyZXNwb25kaW5nRWxlbWVudChu
dWxscHRyKTsKKyAgICAgICAgfQogICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92
ZUNoaWxkKGVsZW1lbnQpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgYXNzb2NpYXRlQ2xvbmVz
V2l0aE9yaWdpbmFscyhTVkdFbGVtZW50JiBjbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2luYWwpCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODc0ODcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNy0yOCAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIGhhcHBlbnMgd2hlbiBj
YWxsaW5nIHJlbW92ZUV2ZW50TGlzdGVuZXIgZm9yIGFuIFNWRyBlbGVtZW50IHdoaWNoIGhhcyBh
biBpbnN0YW5jZSBpbnNpZGUgYSA8ZGVmcz4gZWxlbWVudCBvZiBzaGFkb3cgdHJlZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIE1ha2Ugc3VyZSB3ZSBkbyBu
b3QgY3Jhc2ggd2hlbiB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lcigpIGZvciBhbgor
ICAgICAgICBlbGVtZW50IHdoaWNoIGlzIGNsb25lZCB1bmRlciBhIGRpc2FsbG93ZWQgcGFyZW50
IGluc2lkZSB0aGUgc2hhZG93IHRyZWUKKyAgICAgICAgb2YgYW5vdGhlciA8dXNlPiBlbGVtZW50
LgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRp
c2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0
b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnOiBB
ZGRlZC4KKwogMjAxNS0wNy0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSb2xsaW5nIG91dCByMTg3NDYzLCBiZWNhdXNlIGl0IGNhdXNlZCBtZW1vcnkg
Y29ycnVwdGlvbiBvbiBtdWx0aXBsZSB0ZXN0cy4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0
b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50
LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hh
ZG93LWRpc2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSBAQAorUGFzcy4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50
LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxv
d2VkLWVsZW1lbnQuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGxpbmsiPgorCisgIDxkZWZzPgorICAgIDxzdmcgaWQ9ImdyZWVuLXN2ZyIgd2lkdGg9IjEw
MCIgaGVpZ2h0PSIxMDAiPgorICAgICAgPGRlZnM+CisgICAgICAgICA8cmVjdCBpZD0iZ3JlZW4t
cmVjdCIgZmlsbD0iZ3JlZW4iIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgICA8L2Rl
ZnM+CisgICAgICA8dXNlIGlkPSJ1c2UtZ3JlZW4tcmVjdCIgeGxpbms6aHJlZj0iI2dyZWVuLXJl
Y3QiLz4KKyAgICA8L3N2Zz4KKyAgPC9kZWZzPiAgCisKKyAgPHVzZSBpZD0idXNlLWdyZWVuLXN2
ZyIgeD0iMTAiIHk9IjEwIiB4bGluazpocmVmPSIjZ3JlZW4tc3ZnIi8+CisgIDx0ZXh0PlBhc3Mu
PC90ZXh0PgorCisgIDxzY3JpcHQ+CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAKKyAgICB2YXIgb25BbGVydCA9IGZ1bmN0aW9u
KCkgeworICAgICAgYWxlcnQoInRlc3QiKTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHJlbW92ZUV2
ZW50TGlzdGVuZXIoKSBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSB0aGUgb25sb2FkIGZpcmVzLiBC
ZWZvcmUKKyAgICAvLyBvbmxvYWQgZmlyZXMsIHRoZSBzaGFkb3cgdHJlZSBvZiB0aGUgU1ZHVXNl
RWxlbWVudCBpcyBub3QgYnVpbHQuIFNvIHRoaXMKKyAgICAvLyBjYWxsIHNob3VsZCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIGVsZW1lbnQgb25seS4gT25jZSB0aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQs
CisgICAgLy8gdGhlIFNWR1VzZUVsZW1lbnQgY2FsbHMgdXBkYXRlU2hhZG93VHJlZSgpIGFuZCB0
aGlzIGlzIHdoZXJlIHdlIHdhbnQgdG8gbWFrZQorICAgIC8vIHN1cmUgdGhlIGV2ZW50TGlzdGVu
ZXJzIG9mIGFsbCB0aGUgY2xvbmVkIGVsZW1lbnRzIGluIHRoZSBzaGFkb3cgdHJlZSBhcmUKKyAg
ICAvLyB1cGRhdGVkIGNvcnJlY3RseSBhbmQgdGhlIGRpc2FsbG93ZWQgY2xvbmVkIGVsZW1lbnRz
IGFuZCB0aGVpciBkZXNjZW5kYW50cworICAgIC8vIGFyZSBkaXNjb25uZWN0ZWQgZnJvbSB0aGVp
ciBjb3JyZXNwb25kaW5nIGVsZW1lbnRzLgorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJn
cmVlbi1yZWN0IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkFsZXJ0KTsKKyAgICAKKyAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmVlbi1yZWN0IikucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBvbkFsZXJ0KTsKKyAgICB9LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorCis8L3N2Zz4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257672</attachid>
            <date>2015-07-28 13:04:46 -0700</date>
            <delta_ts>2015-07-28 13:04:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147290-20150728130324.patch</filename>
            <type>text/plain</type>
            <size>5882</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA3LTI4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaGFw
cGVucyB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmb3IgYW4gU1ZHIGVsZW1lbnQg
d2hpY2ggaGFzIGFuIGluc3RhbmNlIGluc2lkZSBhIDxkZWZzPiBlbGVtZW50IG9mIHNoYWRvdyB0
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgV2hlbiB0
aGUgc2hhZG93IHRyZWUgaXMgYnVpbHQgZm9yIGEgPHVzZT4gZWxlbWVudCwgYWxsIHRoZSBTVkcg
ZWxlbWVudHMKKyAgICAgICAgYXJlIGFsbG93ZWQgdG8gYmUgY2xvbmVkIGluIHRoZSBzaGFkb3cg
dHJlZSBidXQgbGF0ZXIgc29tZSBvZiB0aGUgZWxlbWVudHMKKyAgICAgICAgYXJlIGRpc2FsbG93
ZWQgYW5kIHJlbW92ZWQuIE1ha2Ugc3VyZSwgd2hlbiBkaXNhbGxvd2luZyBhbiBlbGVtZW50IGlu
IHRoZQorICAgICAgICBzaGFkb3cgdHJlZSwgdG8gcmVzZXQgdGhlIGNvcnJlc3BvbmRpbmdFbGVt
ZW50IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFsbAorICAgICAgICB0aGUgZGlzYWxsb3dlZCBkZXNj
ZW5kYW50IFNWRyBlbGVtZW50cyBhbmQgYWxsIHRoZWlyIG9yaWdpbmFsIGVsZW1lbnRzLgorICAg
ICAgICAKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXItc2hh
ZG93LWRpc2FsbG93ZWQtZWxlbWVudC5zdmcKKworICAgICAgICAqc3ZnL1NWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6c2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQp
CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVt
b3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUpOgorCiAyMDE1LTA3LTI4ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
U2hvdyBQc2V1ZG8gRWxlbWVudHMgaW4gRE9NIFRyZWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE4NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAyLDcgKzUwMiw4IEBAIHZvaWQgU1ZHRWxlbWVu
dDo6c2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQKICAgICAgICAgaWYgKFNWR0VsZW1lbnQqIG9sZENv
cnJlc3BvbmRpbmdFbGVtZW50ID0gbV9zdmdSYXJlRGF0YS0+Y29ycmVzcG9uZGluZ0VsZW1lbnQo
KSkKICAgICAgICAgICAgIG9sZENvcnJlc3BvbmRpbmdFbGVtZW50LT5tX3N2Z1JhcmVEYXRhLT5p
bnN0YW5jZXMoKS5yZW1vdmUodGhpcyk7CiAgICAgfQotICAgIGVuc3VyZVNWR1JhcmVEYXRhKCku
c2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQoY29ycmVzcG9uZGluZ0VsZW1lbnQpOworICAgIGlmICht
X3N2Z1JhcmVEYXRhIHx8IGNvcnJlc3BvbmRpbmdFbGVtZW50KQorICAgICAgICBlbnN1cmVTVkdS
YXJlRGF0YSgpLnNldENvcnJlc3BvbmRpbmdFbGVtZW50KGNvcnJlc3BvbmRpbmdFbGVtZW50KTsK
ICAgICBpZiAoY29ycmVzcG9uZGluZ0VsZW1lbnQpCiAgICAgICAgIGNvcnJlc3BvbmRpbmdFbGVt
ZW50LT5lbnN1cmVTVkdSYXJlRGF0YSgpLmluc3RhbmNlcygpLmFkZCh0aGlzKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5
LDggKzMyOSwxMSBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tCiAg
ICAgICAgIH0KICAgICAgICAgKytpdDsKICAgICB9Ci0gICAgZm9yIChhdXRvKiBlbGVtZW50IDog
ZGlzYWxsb3dlZEVsZW1lbnRzKQorICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRF
bGVtZW50cykgeworICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09m
VHlwZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBkZXNjZW5kYW50LnNldENv
cnJlc3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOwogICAgICAgICBlbGVtZW50LT5wYXJlbnROb2Rl
KCktPnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgYXNzb2Np
YXRlQ2xvbmVzV2l0aE9yaWdpbmFscyhTVkdFbGVtZW50JiBjbG9uZSwgU1ZHRWxlbWVudCYgb3Jp
Z2luYWwpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODc0OTcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNy0yOCAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIGhhcHBl
bnMgd2hlbiBjYWxsaW5nIHJlbW92ZUV2ZW50TGlzdGVuZXIgZm9yIGFuIFNWRyBlbGVtZW50IHdo
aWNoIGhhcyBhbiBpbnN0YW5jZSBpbnNpZGUgYSA8ZGVmcz4gZWxlbWVudCBvZiBzaGFkb3cgdHJl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Mjkw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgIE1ha2Ugc3Vy
ZSB3ZSBkbyBub3QgY3Jhc2ggd2hlbiB3aGVuIGNhbGxpbmcgcmVtb3ZlRXZlbnRMaXN0ZW5lcigp
IGZvciBhbgorICAgICAgICBlbGVtZW50IHdoaWNoIGlzIGNsb25lZCB1bmRlciBhIGRpc2FsbG93
ZWQgcGFyZW50IGluc2lkZSB0aGUgc2hhZG93IHRyZWUKKyAgICAgICAgb2YgYW5vdGhlciA8dXNl
PiBlbGVtZW50LgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZW1vdmUtZXZlbnQtbGlzdGVuZXIt
c2hhZG93LWRpc2FsbG93ZWQtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1l
bnQuc3ZnOiBBZGRlZC4KKwogMjAxNS0wNy0yOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNob3cgUHNldWRvIEVsZW1lbnRz
IGluIERPTSBUcmVlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1s
aXN0ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFkb3ct
ZGlzYWxsb3dlZC1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3RlbmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK1Bhc3MuCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFkb3ct
ZGlzYWxsb3dlZC1lbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL3JlbW92ZS1ldmVudC1saXN0ZW5lci1zaGFkb3ctZGlzYWxsb3dlZC1lbGVtZW50LnN2Zwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVtb3ZlLWV2ZW50LWxpc3Rl
bmVyLXNoYWRvdy1kaXNhbGxvd2VkLWVsZW1lbnQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzcgQEAKKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKworICA8
ZGVmcz4KKyAgICA8c3ZnIGlkPSJncmVlbi1zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj4K
KyAgICAgIDxkZWZzPgorICAgICAgICAgPHJlY3QgaWQ9ImdyZWVuLXJlY3QiIGZpbGw9ImdyZWVu
IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorICAgICAgPC9kZWZzPgorICAgICAgPHVzZSBp
ZD0idXNlLWdyZWVuLXJlY3QiIHhsaW5rOmhyZWY9IiNncmVlbi1yZWN0Ii8+CisgICAgPC9zdmc+
CisgIDwvZGVmcz4gIAorCisgIDx1c2UgaWQ9InVzZS1ncmVlbi1zdmciIHg9IjEwIiB5PSIxMCIg
eGxpbms6aHJlZj0iI2dyZWVuLXN2ZyIvPgorICA8dGV4dD5QYXNzLjwvdGV4dD4KKworICA8c2Ny
aXB0PgorICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgCisgICAgdmFyIG9uQWxlcnQgPSBmdW5jdGlvbigpIHsKKyAgICAgIGFsZXJ0
KCJ0ZXN0Iik7CisgICAgfQorCisgICAgLy8gVGhpcyByZW1vdmVFdmVudExpc3RlbmVyKCkgaGFz
IHRvIGJlIGNhbGxlZCBiZWZvcmUgdGhlIG9ubG9hZCBmaXJlcy4gQmVmb3JlCisgICAgLy8gb25s
b2FkIGZpcmVzLCB0aGUgc2hhZG93IHRyZWUgb2YgdGhlIFNWR1VzZUVsZW1lbnQgaXMgbm90IGJ1
aWx0LiBTbyB0aGlzCisgICAgLy8gY2FsbCBzaG91bGQgYWZmZWN0IHRoZSBvcmlnaW5hbCBlbGVt
ZW50IG9ubHkuIE9uY2UgdGhlIHNoYWRvdyB0cmVlIGlzIGJ1aWx0LAorICAgIC8vIHRoZSBTVkdV
c2VFbGVtZW50IGNhbGxzIHVwZGF0ZVNoYWRvd1RyZWUoKSBhbmQgdGhpcyBpcyB3aGVyZSB3ZSB3
YW50IHRvIG1ha2UKKyAgICAvLyBzdXJlIHRoZSBldmVudExpc3RlbmVycyBvZiBhbGwgdGhlIGNs
b25lZCBlbGVtZW50cyBpbiB0aGUgc2hhZG93IHRyZWUgYXJlCisgICAgLy8gdXBkYXRlZCBjb3Jy
ZWN0bHkgYW5kIHRoZSBkaXNhbGxvd2VkIGNsb25lZCBlbGVtZW50cyBhbmQgdGhlaXIgZGVzY2Vu
ZGFudHMKKyAgICAvLyBhcmUgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIgY29ycmVzcG9uZGluZyBl
bGVtZW50cy4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JlZW4tcmVjdCIpLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZ3JlZW4tcmVjdCIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25BbGVydCk7
CisgICAgfSwgZmFsc2UpOworICA8L3NjcmlwdD4KKworPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>