<?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>120284</bug_id>
          
          <creation_ts>2013-08-26 00:03:08 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: m_context-&gt;document()-&gt;documentElement() != m_context in WebCore::SVGLengthContext::determineViewport</short_desc>
          <delta_ts>2013-12-18 10:11:02 -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>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>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116980</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Renata Hodovan">rhodovan.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>tgergely.u-szeged</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>920898</commentid>
    <comment_count>0</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2013-08-26 00:03:08 -0700</bug_when>
    <thetext>In this test case SVGLenghtContext is used to resolve the width value of the &lt;svg&gt; element, what causes the assertion check fail:

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;set attributeName=&quot;width&quot;&gt;&lt;/set&gt;
&lt;/svg&gt;


Backtrace:


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff56f42bc in WTFCrash () at /home/reni/Data/REPOS/webkit_sec/Source/WTF/wtf/Assertions.cpp:342
342	    *(int *)(uintptr_t)0xbbadbeef = 0;
(gdb) bt
#0  0x00007ffff56f42bc in WTFCrash () at /home/reni/Data/REPOS/webkit_sec/Source/WTF/wtf/Assertions.cpp:342
#1  0x00007ffff4cba25a in WebCore::SVGLengthContext::determineViewport (this=0x7fffffffc610, width=@0x7fffffffc4c8: 0, height=@0x7fffffffc4cc: 0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGLengthContext.cpp:298
#2  0x00007ffff4cb9e03 in WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits (this=0x7fffffffc610, value=1, mode=WebCore::LengthModeWidth, 
    ec=@0x7fffffffc570: 0) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGLengthContext.cpp:189
#3  0x00007ffff4cb993b in WebCore::SVGLengthContext::convertValueToUserUnits (this=0x7fffffffc610, value=100, mode=WebCore::LengthModeWidth, 
    fromUnit=WebCore::LengthTypePercentage, ec=@0x7fffffffc570: 0) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGLengthContext.cpp:110
#4  0x00007ffff4cb6ef1 in WebCore::SVGLength::value (this=0x9e9060, context=..., ec=@0x7fffffffc570: 0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGLength.cpp:194
#5  0x00007ffff4cb6e89 in WebCore::SVGLength::value (this=0x9e9060, context=...) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGLength.cpp:189
#6  0x00007ffff4c3b1dc in WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue (this=0x790110, percentage=1, repeatCount=0, from=0x9ea970, to=0x793be0, 
    toAtEndOfDuration=0x793be0, animated=0x791da0) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGAnimatedLength.cpp:105
#7  0x00007ffff4c54e30 in WebCore::SVGAnimateElement::calculateAnimatedValue (this=0xa0c840, percentage=1, repeatCount=0, resultElement=0xa0c840)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGAnimateElement.cpp:141
#8  0x00007ffff4c5c78a in WebCore::SVGAnimationElement::updateAnimation (this=0xa0c840, percent=0, repeatCount=0, resultElement=0xa0c840)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGAnimationElement.cpp:632
#9  0x00007ffff4c07d33 in WebCore::SVGSMILElement::progress (this=0xa0c840, elapsed=..., resultElement=0xa0c840, seekToTime=false)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/animation/SVGSMILElement.cpp:1113
#10 0x00007ffff4bfdeeb in WebCore::SMILTimeContainer::updateAnimations (this=0x9e5110, elapsed=..., seekToTime=false)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/animation/SMILTimeContainer.cpp:293
#11 0x00007ffff4bfd3e5 in WebCore::SMILTimeContainer::begin (this=0x9e5110)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/animation/SMILTimeContainer.cpp:139
#12 0x00007ffff4c22d1b in WebCore::SVGDocumentExtensions::startAnimations (this=0x9e7160)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/svg/SVGDocumentExtensions.cpp:102
#13 0x00007ffff41af868 in WebCore::Document::implicitClose (this=0x9e0010) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/dom/Document.cpp:2442
#14 0x00007ffff45af90d in WebCore::FrameLoader::checkCallImplicitClose (this=0x7d1878)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/FrameLoader.cpp:850
#15 0x00007ffff45af67e in WebCore::FrameLoader::checkCompleted (this=0x7d1878) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/FrameLoader.cpp:793
#16 0x00007ffff45af3b3 in WebCore::FrameLoader::finishedParsing (this=0x7d1878) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/FrameLoader.cpp:726
#17 0x00007ffff41b67d9 in WebCore::Document::finishedParsing (this=0x9e0010) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/dom/Document.cpp:4393
#18 0x00007ffff4a595a6 in WebCore::XMLDocumentParser::end (this=0x78fc90)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/xml/parser/XMLDocumentParser.cpp:216
#19 0x00007ffff4a595e2 in WebCore::XMLDocumentParser::finish (this=0x78fc90)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/xml/parser/XMLDocumentParser.cpp:228
#20 0x00007ffff45a7213 in WebCore::DocumentWriter::end (this=0x693350) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/DocumentWriter.cpp:248
#21 0x00007ffff4599d52 in WebCore::DocumentLoader::finishedLoading (this=0x6932b0, finishTime=0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/DocumentLoader.cpp:402
#22 0x00007ffff4599ac0 in WebCore::DocumentLoader::notifyFinished (this=0x6932b0, resource=0x7b1110)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/DocumentLoader.cpp:344
#23 0x00007ffff4580db6 in WebCore::CachedResource::checkNotify (this=0x7b1110)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/cache/CachedResource.cpp:369
#24 0x00007ffff4580e8c in WebCore::CachedResource::finishLoading (this=0x7b1110)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/cache/CachedResource.cpp:385
#25 0x00007ffff457d5de in WebCore::CachedRawResource::finishLoading (this=0x7b1110, data=0x7bb050)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/cache/CachedRawResource.cpp:94
#26 0x00007ffff45e3c41 in WebCore::SubresourceLoader::didFinishLoading (this=0x7e0100, finishTime=0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/SubresourceLoader.cpp:282
#27 0x00007ffff45da52b in WebCore::ResourceLoader::didFinishLoading (this=0x7e0100, finishTime=0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/loader/ResourceLoader.cpp:488
#28 0x00007ffff4a85729 in WebCore::QNetworkReplyHandler::finish (this=0x7b8ed0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:516
#29 0x00007ffff4a84448 in WebCore::QNetworkReplyHandlerCallQueue::flush (this=0x7b8f08)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:250
#30 0x00007ffff4a84145 in WebCore::QNetworkReplyHandlerCallQueue::push (this=0x7b8f08, 
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
    method=(void (WebCore::QNetworkReplyHandler::*)(WebCore::QNetworkReplyHandler * const)) 0x7ffff4a8556e &lt;WebCore::QNetworkReplyHandler::finish()&gt;)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:216
#31 0x00007ffff4a85092 in WebCore::QNetworkReplyWrapper::didReceiveFinished (this=0x7da4b0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:409
#32 0x00007ffff4a87a24 in WebCore::QNetworkReplyWrapper::qt_static_metacall (_o=0x7da4b0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffffcf10)
    at .moc/release-shared/moc_QNetworkReplyHandler.cpp:176
#33 0x00007ffff220f5cb in QMetaObject::activate(QObject*, int, int, void**) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#34 0x00007ffff221084e in QObject::event(QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#35 0x00007ffff3056dbc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#36 0x00007ffff305a075 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#37 0x00007ffff21eadbe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#38 0x00007ffff21eca76 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#39 0x00007ffff2232333 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#40 0x00007fffee3732d6 in g_main_dispatch (context=0x6623e0) at /build/buildd/glib2.0-2.37.6/./glib/gmain.c:3065
#41 g_main_context_dispatch (context=context@entry=0x6623e0) at /build/buildd/glib2.0-2.37.6/./glib/gmain.c:3641
#42 0x00007fffee373628 in g_main_context_iterate (context=context@entry=0x6623e0, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at /build/buildd/glib2.0-2.37.6/./glib/gmain.c:3712
#43 0x00007fffee3736cc in g_main_context_iteration (context=0x6623e0, may_block=1) at /build/buildd/glib2.0-2.37.6/./glib/gmain.c:3773
#44 0x00007ffff22324bc in QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#45 0x00007ffff21e9d3b in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#46 0x00007ffff21ed120 in QCoreApplication::exec() () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#47 0x0000000000420e32 in launcherMain (app=...) at /home/reni/Data/REPOS/webkit_sec/Tools/QtTestBrowser/qttestbrowser.cpp:50
#48 0x0000000000422911 in main (argc=2, argv=0x7fffffffdbe8) at /home/reni/Data/REPOS/webkit_sec/Tools/QtTestBrowser/qttestbrowser.cpp:319</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920899</commentid>
    <comment_count>1</comment_count>
      <attachid>209618</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2013-08-26 00:03:44 -0700</bug_when>
    <thetext>Created attachment 209618
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958657</commentid>
    <comment_count>2</comment_count>
      <attachid>218946</attachid>
    <who name="Tamas Gergely">tgergely.u-szeged</who>
    <bug_when>2013-12-11 03:00:58 -0800</bug_when>
    <thetext>Created attachment 218946
patch fixes assertion

https://chromium.googlesource.com/chromium/blink/+/a7dedf81eb7008276bb6854f0e46465e039788f8

[SVG] Fix root element length values handling.

SVGLengthContext::determineViewport() currently asserts that we&apos;re not
resolving lengths for the topmost element, but there&apos;s nothing to
prevent such calls.

The CL updates determineViewport() to handle root elements geracefully
(using their current viewport). It also changes the signature slightly
to operate directly on a FloatSize, reducing some of the boiler-plate
client code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958774</commentid>
    <comment_count>3</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-12-11 09:59:06 -0800</bug_when>
    <thetext>This patch only merges part ofhttps://chromium.googlesource.com/chromium/blink/+/a7dedf81eb7008276bb6854f0e46465e039788f8. Can you share why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958956</commentid>
    <comment_count>4</comment_count>
    <who name="Tamas Gergely">tgergely.u-szeged</who>
    <bug_when>2013-12-11 16:07:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; This patch only merges part ofhttps://chromium.googlesource.com/chromium/blink/+/a7dedf81eb7008276bb6854f0e46465e039788f8. Can you share why?

I did not want to mix up the bugfix and the refactoring because I was not sure that the latter is really required. But I&apos;ve checked it again and it seems to be real improvement. I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958957</commentid>
    <comment_count>5</comment_count>
      <attachid>219011</attachid>
    <who name="Tamas Gergely">tgergely.u-szeged</who>
    <bug_when>2013-12-11 16:08:28 -0800</bug_when>
    <thetext>Created attachment 219011
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960085</commentid>
    <comment_count>6</comment_count>
      <attachid>219011</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-12-16 09:31:38 -0800</bug_when>
    <thetext>Comment on attachment 219011
Updated patch.

Thanks for bringing this over. If you&apos;ll add the tests back to this patch, I&apos;ll r+ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960515</commentid>
    <comment_count>7</comment_count>
      <attachid>219422</attachid>
    <who name="Tamas Gergely">tgergely.u-szeged</who>
    <bug_when>2013-12-17 08:28:44 -0800</bug_when>
    <thetext>Created attachment 219422
Tests added back.

Thanks. And sorry, I created the previous patch after adding but before committing the new files in my local repo, and it seems that git did not respect it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960517</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-17 08:31:34 -0800</bug_when>
    <thetext>Attachment 219422 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/custom/svg-length-value-handled-expected.txt&apos;, u&apos;LayoutTests/svg/custom/svg-length-value-handled.svg&apos;, u&apos;LayoutTests/svg/dom/svg-root-lengths-expected.txt&apos;, u&apos;LayoutTests/svg/dom/svg-root-lengths.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/svg/SVGLengthContext.cpp&apos;, u&apos;Source/WebCore/svg/SVGLengthContext.h&apos;, u&apos;Source/WebCore/svg/graphics/filters/SVGFEImage.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/svg/SVGLengthContext.cpp:193:  Declaration has space between type name and * in return value * viewportSize  [whitespace/declaration] [3]
ERROR: Source/WebCore/svg/SVGLengthContext.cpp:195:  Declaration has space between type name and * in return value * viewportSize  [whitespace/declaration] [3]
ERROR: Source/WebCore/svg/SVGLengthContext.cpp:197:  Declaration has space between type name and * in return value * sqrtf  [whitespace/declaration] [3]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960870</commentid>
    <comment_count>9</comment_count>
    <who name="Tamas Gergely">tgergely.u-szeged</who>
    <bug_when>2013-12-18 02:08:43 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Attachment 219422 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/custom/svg-length-value-handled-expected.txt&apos;, u&apos;LayoutTests/svg/custom/svg-length-value-handled.svg&apos;, u&apos;LayoutTests/svg/dom/svg-root-lengths-expected.txt&apos;, u&apos;LayoutTests/svg/dom/svg-root-lengths.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/svg/SVGLengthContext.cpp&apos;, u&apos;Source/WebCore/svg/SVGLengthContext.h&apos;, u&apos;Source/WebCore/svg/graphics/filters/SVGFEImage.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
&gt; ERROR: Source/WebCore/svg/SVGLengthContext.cpp:193:  Declaration has space between type name and * in return value * viewportSize  [whitespace/declaration] [3]
&gt; ERROR: Source/WebCore/svg/SVGLengthContext.cpp:195:  Declaration has space between type name and * in return value * viewportSize  [whitespace/declaration] [3]
&gt; ERROR: Source/WebCore/svg/SVGLengthContext.cpp:197:  Declaration has space between type name and * in return value * sqrtf  [whitespace/declaration] [3]
&gt; Total errors found: 3 in 9 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Yes, false positives. Reported in bug 125915.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960973</commentid>
    <comment_count>10</comment_count>
      <attachid>219422</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-18 10:10:56 -0800</bug_when>
    <thetext>Comment on attachment 219422
Tests added back.

Clearing flags on attachment: 219422

Committed r160774: &lt;http://trac.webkit.org/changeset/160774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960974</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-18 10:11:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>209618</attachid>
            <date>2013-08-26 00:03:44 -0700</date>
            <delta_ts>2013-08-26 00:03:44 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>test.svg</filename>
            <type>image/svg+xml</type>
            <size>84</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoJPHNldCBhdHRyaWJ1dGVO
YW1lPSJ3aWR0aCI+PC9zZXQ+Cjwvc3ZnPgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218946</attachid>
            <date>2013-12-11 03:00:58 -0800</date>
            <delta_ts>2013-12-11 16:08:28 -0800</delta_ts>
            <desc>patch fixes assertion</desc>
            <filename>fix-svg-root-assertion-failure.patch</filename>
            <type>text/plain</type>
            <size>6862</size>
            <attacher name="Tamas Gergely">tgergely.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNTkzYmI3Li4yMjkyMTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMTIt
MTEgIFRhbWFzIEdlcmdlbHkgIDx0Z2VyZ2VseS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29t
PgorCisgICAgICAgIEZpeCBmYWlsZWQgYXNzZXJ0aW9uIGluIHN2Zy9TVkdMZW5ndGhDb250ZXh0
LmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIw
Mjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGVzdHMgb2YgaGFuZGxpbmcgcm9vdCA8c3ZnPiBlbGVtZW50cy4KKworICAgICAgICAqIHN2
Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1oYW5kbGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2N1c3RvbS9zdmctbGVuZ3RoLXZhbHVlLWhhbmRsZWQuc3ZnOiBBZGRlZC4K
KyAgICAgICAgICAgIFRlc3RzIHdoZXRoZXIgcm9vdCBzdmcgZWxlbWVudHMgc2l6ZXMgYXJlIGhh
bmRsZWQuCisgICAgICAgICogc3ZnL2RvbS9zdmctcm9vdC1sZW5ndGhzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9zdmctcm9vdC1sZW5ndGhzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAgICAgVGVzdHMgdGhlIGNvcnJlY3QgaGFuZGxpbmcgb2Ygcm9vdCBzdmcgZWxlbWVu
dHMgc2l6ZXMuCisKIDIwMTMtMTItMTEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFk
YUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBQcm9ncmFtbWF0aWNhbGx5LWluc2VydGVkIGNoaWxk
cmVuIGxhY2sgYWNjZXNzaWJpbGl0eSBldmVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1oYW5kbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1oYW5kbGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2I0ZjVmOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1oYW5kbGVkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTOiByb290IHN2ZyBlbGVtZW50IHNpemUgaGFuZGxl
ZCAoMHgwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctbGVuZ3RoLXZh
bHVlLWhhbmRsZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctbGVuZ3RoLXZhbHVl
LWhhbmRsZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzODViYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy1sZW5ndGgtdmFs
dWUtaGFuZGxlZC5zdmcKQEAgLTAsMCArMSwxMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciPgorICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0i
Z3JlZW4iLz4KKyAgPHRleHQgaWQ9ImxhYmVsIiB5PSIyMDAiLz4KKyAgICA8c2NyaXB0PgorICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhYmVsIikudGV4dENvbnRlbnQg
PQorICAgICAgICAiUEFTUzogcm9vdCBzdmcgZWxlbWVudCBzaXplIGhhbmRsZWQgKCIgKworICAg
ICAgICBkb2N1bWVudC5yb290RWxlbWVudC53aWR0aC5iYXNlVmFsLnZhbHVlICsgIngiICsKKyAg
ICAgICAgZG9jdW1lbnQucm9vdEVsZW1lbnQuaGVpZ2h0LmJhc2VWYWwudmFsdWUgKyAiKSI7Cisg
ICAgPC9zY3JpcHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vc3Zn
LXJvb3QtbGVuZ3Rocy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3N2Zy1yb290
LWxlbmd0aHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljg1Y2M0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3N2Zy1yb290
LWxlbmd0aHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK1RoaXMgdGVzdHMgdGhlIGJl
aGF2aW9yIG9mIHJvb3QgU1ZHIGxlbmd0aCB2YWx1ZSByZXNvbHV0aW9uCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisgUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitJbml0aWFsL2RlZmF1bHQgdmFsdWVzOgorUEFTUyBzdmcud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1Mgc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDIwMAor
CitVcGRhdGVkIHJlbGF0aXZlIHZhbHVlczoKK1BBU1Mgc3ZnLndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTAwCitQQVNTIHN2Zy5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAyMAorCitVcGRhdGVkIGZp
eGVkIHZhbHVlczoKK1BBU1Mgc3ZnLndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHN2
Zy5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyA1MAorCit2aWV3Qm94IGhhcyBubyBlZmZlY3Qgb24g
dG9wIGxldmVsIGxlbmd0aCByZXNvbHV0aW9uLgorUEFTUyBzdmcud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAyMDAKK1BBU1Mgc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3N2Zy1yb290LWxlbmd0aHMuaHRtbCBiL0xheW91dFRl
c3RzL3N2Zy9kb20vc3ZnLXJvb3QtbGVuZ3Rocy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU0OGNkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
ZG9tL3N2Zy1yb290LWxlbmd0aHMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJkaXYiIHN0eWxlPSJ3aWR0aDogMjAwcHg7
IGhlaWdodDogMjAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsiPgorICAgICAgPHN2ZyBpZD0i
c3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJib3JkZXI6IDFw
eCBzb2xpZCBibHVlOyI+CisgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUi
IGZpbGw9ImdyZWVuIi8+CisgICAgICA8L3N2Zz4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIH0KKworICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2Jyk7Cisg
ICAgICAgIHZhciBzdmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ZnJyk7CisKKyAgICAg
ICAgZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIHJvb3QgU1ZHIGxlbmd0
aCB2YWx1ZSByZXNvbHV0aW9uJyk7CisKKyAgICAgICAgZGVidWcoJ0luaXRpYWwvZGVmYXVsdCB2
YWx1ZXM6Jyk7CisgICAgICAgIHNob3VsZEJlKCdzdmcud2lkdGguYmFzZVZhbC52YWx1ZScsICcy
MDAnKTsKKyAgICAgICAgc2hvdWxkQmUoJ3N2Zy5oZWlnaHQuYmFzZVZhbC52YWx1ZScsICcyMDAn
KTsKKworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCd3aWR0aCcsICc1MCUnKTsKKyAgICAgICAg
c3ZnLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzEwJScpOworICAgICAgICBkZWJ1ZygnJyk7Cisg
ICAgICAgIGRlYnVnKCdVcGRhdGVkIHJlbGF0aXZlIHZhbHVlczonKTsKKyAgICAgICAgc2hvdWxk
QmUoJ3N2Zy53aWR0aC5iYXNlVmFsLnZhbHVlJywgJzEwMCcpOworICAgICAgICBzaG91bGRCZSgn
c3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlJywgJzIwJyk7CisKKyAgICAgICAgc3ZnLnNldEF0dHJp
YnV0ZSgnd2lkdGgnLCAnMTUwJyk7CisgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcs
ICc1MCcpOworICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgIGRlYnVnKCdVcGRhdGVkIGZpeGVk
IHZhbHVlczonKTsKKyAgICAgICAgc2hvdWxkQmUoJ3N2Zy53aWR0aC5iYXNlVmFsLnZhbHVlJywg
JzE1MCcpOworICAgICAgICBzaG91bGRCZSgnc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlJywgJzUw
Jyk7CisKKyAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMTAwJScpOworICAgICAg
ICBzdmcuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnNTAlJyk7CisgICAgICAgIHN2Zy5zZXRBdHRy
aWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDgwMCA2MDAnKTsKKyAgICAgICAgZGVidWcoJycpOworICAg
ICAgICBkZWJ1Zygndmlld0JveCBoYXMgbm8gZWZmZWN0IG9uIHRvcCBsZXZlbCBsZW5ndGggcmVz
b2x1dGlvbi4nKTsKKyAgICAgICAgc2hvdWxkQmUoJ3N2Zy53aWR0aC5iYXNlVmFsLnZhbHVlJywg
JzIwMCcpOworICAgICAgICBzaG91bGRCZSgnc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlJywgJzEw
MCcpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgIH0sIDApOworICAgIDwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEwNTU4OTUuLjQyMjMxYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxMy0xMi0xMSAgVGFtYXMgR2VyZ2VseSAgPHRnZXJnZWx5LnUt
c3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRml4IGZhaWxlZCBhc3NlcnRp
b24gaW4gc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBoYW5kbGluZyBvZiByb290IDxzdmc+IGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3RzOiBzdmcvY3VzdG9tL3N2Zy1sZW5ndGgtdmFsdWUtaGFuZGxl
ZC5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9kb20vc3ZnLXJvb3QtbGVuZ3Rocy5odG1sCisKKyAg
ICAgICAgKiBzdmcvU1ZHTGVuZ3RoQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGhDb250ZXh0OjpkZXRlcm1pbmVWaWV3cG9ydCk6CisKIDIwMTMtMTItMTEgIE1hcmlvIFNh
bmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBQcm9ncmFt
bWF0aWNhbGx5LWluc2VydGVkIGNoaWxkcmVuIGxhY2sgYWNjZXNzaWJpbGl0eSBldmVudHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNwcAppbmRleCAwZDA4NGJkLi4wOWYxNDY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCkBAIC0yOTIsOSArMjky
LDEzIEBAIGJvb2wgU1ZHTGVuZ3RoQ29udGV4dDo6ZGV0ZXJtaW5lVmlld3BvcnQoZmxvYXQmIHdp
ZHRoLCBmbG9hdCYgaGVpZ2h0KSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICAvLyBTVkdMZW5ndGhDb250ZXh0IHNob3VsZCBORVZFUiBiZSB1c2VkIHRvIHJlc29sdmUg
d2lkdGgvaGVpZ2h0IHZhbHVlcyBmb3IgPHN2Zz4gZWxlbWVudHMsCi0gICAgLy8gYXMgdGhleSBy
ZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50LCBkdWUgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBD
U1Mgd2lkdGgvaGVpZ2h0IHByb3BlcnRpZXMuCi0gICAgQVNTRVJUKG1fY29udGV4dC0+ZG9jdW1l
bnQoKS5kb2N1bWVudEVsZW1lbnQoKSAhPSBtX2NvbnRleHQpOworICAgIC8vIFJvb3QgPHN2Zz4g
ZWxlbWVudCBsZW5ndGhzIGFyZSByZXNvbHZlZCBhZ2FpbnN0IHRoZSB0b3AgbGV2ZWwgdmlld3Bv
cnQuCisgICAgaWYgKG1fY29udGV4dC0+aXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkpIHsKKyAg
ICAgICAgRmxvYXRTaXplIHZpZXdwb3J0U2l6ZSA9IHRvU1ZHU1ZHRWxlbWVudChtX2NvbnRleHQp
LT5jdXJyZW50Vmlld3BvcnRTaXplKCk7CisgICAgICAgIHdpZHRoID0gdmlld3BvcnRTaXplLndp
ZHRoKCk7CisgICAgICAgIGhlaWdodCA9IHZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQogCiAgICAgLy8gVGFrZSBzaXplIGZyb20gbmVhcmVzdCB2aWV3
cG9ydCBlbGVtZW50LgogICAgIFNWR0VsZW1lbnQqIHZpZXdwb3J0RWxlbWVudCA9IG1fY29udGV4
dC0+dmlld3BvcnRFbGVtZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219011</attachid>
            <date>2013-12-11 16:08:28 -0800</date>
            <delta_ts>2013-12-17 08:28:44 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>fix-svg-root-assertion-failure.patch</filename>
            <type>text/plain</type>
            <size>8371</size>
            <attacher name="Tamas Gergely">tgergely.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTJkOThiLi45Y2QzNTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMTIt
MTEgIFRhbWFzIEdlcmdlbHkgIDx0Z2VyZ2VseS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29t
PgorCisgICAgICAgIEZpeCBBU1NFUlRJT04gRkFJTEVEIGluIFdlYkNvcmU6OlNWR0xlbmd0aENv
bnRleHQ6OmRldGVybWluZVZpZXdwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjAyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBvZiBoYW5kbGluZyByb290IDxzdmc+IGVsZW1l
bnRzLgorICAgICAgICBCbGluayBtZXJnZTogaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2Uu
Y29tL2Nocm9taXVtL2JsaW5rLysvYTdkZWRmODFlYjcwMDgyNzZiYjY4NTRmMGU0NjQ2NWUwMzk3
ODhmOAorCisgICAgICAgICogc3ZnL2N1c3RvbS9zdmctbGVuZ3RoLXZhbHVlLWhhbmRsZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3N2Zy1sZW5ndGgtdmFsdWUt
aGFuZGxlZC5zdmc6IEFkZGVkLgorICAgICAgICAgICAgVGVzdHMgd2hldGhlciByb290IHN2ZyBl
bGVtZW50cyBzaXplcyBhcmUgaGFuZGxlZC4KKyAgICAgICAgKiBzdmcvZG9tL3N2Zy1yb290LWxl
bmd0aHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZG9tL3N2Zy1yb290LWxl
bmd0aHMuaHRtbDogQWRkZWQuCisgICAgICAgICAgICBUZXN0cyB0aGUgY29ycmVjdCBoYW5kbGlu
ZyBvZiByb290IHN2ZyBlbGVtZW50cyBzaXplcy4KKwogMjAxMy0xMi0xMSAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJDcnlwdG8ga2V5cyBzaG91bGQg
c3VwcG9ydCBzdHJ1Y3R1cmVkIGNsb25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkYWMxMy4uMzlkMDU0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTEyLTExICBUYW1hcyBHZXJnZWx5ICA8
dGdlcmdlbHkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBGaXggQVNT
RVJUSU9OIEZBSUxFRCBpbiBXZWJDb3JlOjpTVkdMZW5ndGhDb250ZXh0OjpkZXRlcm1pbmVWaWV3
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIw
Mjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgaGFuZGxpbmcgb2Ygcm9vdCA8c3ZnPiBlbGVtZW50cy4KKyAgICAgICAgQmxpbmsgbWVyZ2U6
IGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2E3ZGVk
ZjgxZWI3MDA4Mjc2YmI2ODU0ZjBlNDY0NjVlMDM5Nzg4ZjgKKworICAgICAgICBTVkdMZW5ndGhD
b250ZXh0OjpkZXRlcm1pbmVWaWV3cG9ydCgpIGN1cnJlbnRseSBhc3NlcnRzIHRoYXQgd2UncmUg
bm90CisgICAgICAgIHJlc29sdmluZyBsZW5ndGhzIGZvciB0aGUgdG9wbW9zdCBlbGVtZW50LCBi
dXQgdGhlcmUncyBub3RoaW5nIHRvCisgICAgICAgIHByZXZlbnQgc3VjaCBjYWxscy4KKworICAg
ICAgICBUaGUgcGF0Y2ggdXBkYXRlcyBkZXRlcm1pbmVWaWV3cG9ydCgpIHRvIGhhbmRsZSByb290
IGVsZW1lbnRzIGdlcmFjZWZ1bGx5CisgICAgICAgICh1c2luZyB0aGVpciBjdXJyZW50IHZpZXdw
b3J0KS4gSXQgYWxzbyBjaGFuZ2VzIHRoZSBzaWduYXR1cmUgc2xpZ2h0bHkKKyAgICAgICAgdG8g
b3BlcmF0ZSBkaXJlY3RseSBvbiBhIEZsb2F0U2l6ZSwgcmVkdWNpbmcgc29tZSBvZiB0aGUgYm9p
bGVyLXBsYXRlCisgICAgICAgIGNsaWVudCBjb2RlLgorCisgICAgICAgIFRlc3RzOiBzdmcvY3Vz
dG9tL3N2Zy1sZW5ndGgtdmFsdWUtaGFuZGxlZC5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9kb20v
c3ZnLXJvb3QtbGVuZ3Rocy5odG1sCisKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhDb250ZXh0Ojpjb252ZXJ0VmFsdWVGcm9t
VXNlclVuaXRzVG9QZXJjZW50YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aENvbnRl
eHQ6OmNvbnZlcnRWYWx1ZUZyb21QZXJjZW50YWdlVG9Vc2VyVW5pdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoQ29udGV4dDo6ZGV0ZXJtaW5lVmlld3BvcnQpOgorICAgICAgICAqIHN2
Zy9TVkdMZW5ndGhDb250ZXh0Lmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUltYWdlOjpwbGF0Zm9ybUFwcGx5U29m
dHdhcmUpOgorCiAyMDEzLTEyLTExICBSYWxwaCBUaG9tYXMgIDxyYWxwaHRAZ21haWwuY29tPgog
CiAgICAgICAgIFtXZWJHTF0gRml4IGJ1aWxkIG9uIEdMIEVTIDIuMCB0YXJnZXRzIGFmdGVyIHIx
NjAxMTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNwcAppbmRleCAwZDA4NGJk
Li5kYzczMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCkBAIC0x
NjEsMjAgKzE2MSwxOSBAQCBmbG9hdCBTVkdMZW5ndGhDb250ZXh0Ojpjb252ZXJ0VmFsdWVGcm9t
VXNlclVuaXRzKGZsb2F0IHZhbHVlLCBTVkdMZW5ndGhNb2RlIG1vZAogCiBmbG9hdCBTVkdMZW5n
dGhDb250ZXh0Ojpjb252ZXJ0VmFsdWVGcm9tVXNlclVuaXRzVG9QZXJjZW50YWdlKGZsb2F0IHZh
bHVlLCBTVkdMZW5ndGhNb2RlIG1vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewotICAg
IGZsb2F0IHdpZHRoID0gMDsKLSAgICBmbG9hdCBoZWlnaHQgPSAwOwotICAgIGlmICghZGV0ZXJt
aW5lVmlld3BvcnQod2lkdGgsIGhlaWdodCkpIHsKKyAgICBGbG9hdFNpemUgdmlld3BvcnRTaXpl
OworICAgIGlmICghZGV0ZXJtaW5lVmlld3BvcnQodmlld3BvcnRTaXplKSkgewogICAgICAgICBl
YyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKICAgICBz
d2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIExlbmd0aE1vZGVXaWR0aDoKLSAgICAgICAgcmV0dXJu
IHZhbHVlIC8gd2lkdGggKiAxMDA7CisgICAgICAgIHJldHVybiB2YWx1ZSAvIHZpZXdwb3J0U2l6
ZS53aWR0aCgpICogMTAwOwogICAgIGNhc2UgTGVuZ3RoTW9kZUhlaWdodDoKLSAgICAgICAgcmV0
dXJuIHZhbHVlIC8gaGVpZ2h0ICogMTAwOworICAgICAgICByZXR1cm4gdmFsdWUgLyB2aWV3cG9y
dFNpemUuaGVpZ2h0KCkgKiAxMDA7CiAgICAgY2FzZSBMZW5ndGhNb2RlT3RoZXI6Ci0gICAgICAg
IHJldHVybiB2YWx1ZSAvIChzcXJ0Zigod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodCkg
LyAyKSkgKiAxMDA7CisgICAgICAgIHJldHVybiB2YWx1ZSAvIChzcXJ0Zih2aWV3cG9ydFNpemUu
ZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCkgLyAyKSkgKiAxMDA7CiAgICAgfTsKIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTgzLDIwICsxODIsMTkgQEAgZmxvYXQgU1ZHTGVuZ3RoQ29u
dGV4dDo6Y29udmVydFZhbHVlRnJvbVVzZXJVbml0c1RvUGVyY2VudGFnZShmbG9hdCB2YWx1ZSwg
U1ZHTGUKIAogZmxvYXQgU1ZHTGVuZ3RoQ29udGV4dDo6Y29udmVydFZhbHVlRnJvbVBlcmNlbnRh
Z2VUb1VzZXJVbml0cyhmbG9hdCB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSBtb2RlLCBFeGNlcHRpb25D
b2RlJiBlYykgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IDA7Ci0gICAgZmxvYXQgaGVpZ2h0
ID0gMDsKLSAgICBpZiAoIWRldGVybWluZVZpZXdwb3J0KHdpZHRoLCBoZWlnaHQpKSB7CisgICAg
RmxvYXRTaXplIHZpZXdwb3J0U2l6ZTsKKyAgICBpZiAoIWRldGVybWluZVZpZXdwb3J0KHZpZXdw
b3J0U2l6ZSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBMZW5ndGhNb2Rl
V2lkdGg6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIHdpZHRoOworICAgICAgICByZXR1cm4gdmFs
dWUgKiB2aWV3cG9ydFNpemUud2lkdGgoKTsKICAgICBjYXNlIExlbmd0aE1vZGVIZWlnaHQ6Ci0g
ICAgICAgIHJldHVybiB2YWx1ZSAqIGhlaWdodDsKKyAgICAgICAgcmV0dXJuIHZhbHVlICogdmll
d3BvcnRTaXplLmhlaWdodCgpOwogICAgIGNhc2UgTGVuZ3RoTW9kZU90aGVyOgotICAgICAgICBy
ZXR1cm4gdmFsdWUgKiBzcXJ0Zigod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodCkgLyAy
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICogc3FydGYodmlld3BvcnRTaXplLmRpYWdvbmFsTGVu
Z3RoU3F1YXJlZCgpIC8gMik7CiAgICAgfTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMjgwLDM0ICsyNzgsMzMgQEAgZmxvYXQgU1ZHTGVuZ3RoQ29udGV4dDo6Y29udmVydFZhbHVl
RnJvbUVYU1RvVXNlclVuaXRzKGZsb2F0IHZhbHVlLCBFeGNlcHRpb25Db2QKICAgICByZXR1cm4g
dmFsdWUgKiBjZWlsZihzdHlsZS0+Zm9udE1ldHJpY3MoKS54SGVpZ2h0KCkpOwogfQogCi1ib29s
IFNWR0xlbmd0aENvbnRleHQ6OmRldGVybWluZVZpZXdwb3J0KGZsb2F0JiB3aWR0aCwgZmxvYXQm
IGhlaWdodCkgY29uc3QKK2Jvb2wgU1ZHTGVuZ3RoQ29udGV4dDo6ZGV0ZXJtaW5lVmlld3BvcnQo
RmxvYXRTaXplJiB2aWV3cG9ydFNpemUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NvbnRleHQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIGFuIG92ZXJyaWRlbiB2aWV3cG9ydCBp
cyBnaXZlbiwgaXQgaGFzIHByZWNlZGVuY2UuCiAgICAgaWYgKCFtX292ZXJyaWRlblZpZXdwb3J0
LmlzRW1wdHkoKSkgewotICAgICAgICB3aWR0aCA9IG1fb3ZlcnJpZGVuVmlld3BvcnQud2lkdGgo
KTsKLSAgICAgICAgaGVpZ2h0ID0gbV9vdmVycmlkZW5WaWV3cG9ydC5oZWlnaHQoKTsKKyAgICAg
ICAgdmlld3BvcnRTaXplID0gbV9vdmVycmlkZW5WaWV3cG9ydC5zaXplKCk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAotICAgIC8vIFNWR0xlbmd0aENvbnRleHQgc2hvdWxkIE5FVkVS
IGJlIHVzZWQgdG8gcmVzb2x2ZSB3aWR0aC9oZWlnaHQgdmFsdWVzIGZvciA8c3ZnPiBlbGVtZW50
cywKLSAgICAvLyBhcyB0aGV5IHJlcXVpcmUgc3BlY2lhbCB0cmVhdG1lbnQsIGR1ZSB0aGUgcmVs
YXRpb25zaGlwIHdpdGggdGhlIENTUyB3aWR0aC9oZWlnaHQgcHJvcGVydGllcy4KLSAgICBBU1NF
UlQobV9jb250ZXh0LT5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICE9IG1fY29udGV4dCk7
CisgICAgLy8gUm9vdCA8c3ZnPiBlbGVtZW50IGxlbmd0aHMgYXJlIHJlc29sdmVkIGFnYWluc3Qg
dGhlIHRvcCBsZXZlbCB2aWV3cG9ydC4KKyAgICBpZiAobV9jb250ZXh0LT5pc091dGVybW9zdFNW
R1NWR0VsZW1lbnQoKSkgeworICAgICAgICB2aWV3cG9ydFNpemUgPSB0b1NWR1NWR0VsZW1lbnQo
bV9jb250ZXh0KS0+Y3VycmVudFZpZXdwb3J0U2l6ZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CiAKICAgICAvLyBUYWtlIHNpemUgZnJvbSBuZWFyZXN0IHZpZXdwb3J0IGVsZW1lbnQu
CiAgICAgU1ZHRWxlbWVudCogdmlld3BvcnRFbGVtZW50ID0gbV9jb250ZXh0LT52aWV3cG9ydEVs
ZW1lbnQoKTsKICAgICBpZiAoIXZpZXdwb3J0RWxlbWVudCB8fCAhaXNTVkdTVkdFbGVtZW50KHZp
ZXdwb3J0RWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGNvbnN0
IFNWR1NWR0VsZW1lbnQqIHN2ZyA9IHRvU1ZHU1ZHRWxlbWVudCh2aWV3cG9ydEVsZW1lbnQpOwot
ICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUgPSBzdmctPmN1cnJlbnRWaWV3Qm94UmVjdCgpLnNp
emUoKTsKKyAgICB2aWV3cG9ydFNpemUgPSBzdmctPmN1cnJlbnRWaWV3Qm94UmVjdCgpLnNpemUo
KTsKICAgICBpZiAodmlld3BvcnRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgdmlld3BvcnRTaXpl
ID0gc3ZnLT5jdXJyZW50Vmlld3BvcnRTaXplKCk7CiAKLSAgICB3aWR0aCA9IHZpZXdwb3J0U2l6
ZS53aWR0aCgpOwotICAgIGhlaWdodCA9IHZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmgKaW5kZXggZjM1
MGE3ZC4uYzcwNzBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5oCkBAIC02
OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBjb252ZXJ0VmFsdWVUb1VzZXJVbml0cyhm
bG9hdCwgU1ZHTGVuZ3RoTW9kZSwgU1ZHTGVuZ3RoVHlwZSBmcm9tVW5pdCwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgIGZsb2F0IGNvbnZlcnRWYWx1ZUZyb21Vc2VyVW5pdHMoZmxvYXQsIFNW
R0xlbmd0aE1vZGUsIFNWR0xlbmd0aFR5cGUgdG9Vbml0LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7
CiAKLSAgICBib29sIGRldGVybWluZVZpZXdwb3J0KGZsb2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdo
dCkgY29uc3Q7CisgICAgYm9vbCBkZXRlcm1pbmVWaWV3cG9ydChGbG9hdFNpemUmKSBjb25zdDsK
IAogcHJpdmF0ZToKICAgICBTVkdMZW5ndGhDb250ZXh0KGNvbnN0IFNWR0VsZW1lbnQqLCBjb25z
dCBGbG9hdFJlY3QmIHZpZXdwb3J0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKaW5kZXggNGJiZTQyYi4uNGQzYTVkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAK
QEAgLTEyOCwxMyArMTI4LDEyIEBAIHZvaWQgRkVJbWFnZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkKICAgICAgICAgU1ZHRWxlbWVudCogY29udGV4dE5vZGUgPSB0b1NWR0VsZW1lbnQocmVuZGVy
ZXItPmVsZW1lbnQoKSk7CiAgICAgICAgIGlmIChjb250ZXh0Tm9kZS0+aGFzUmVsYXRpdmVMZW5n
dGhzKCkpIHsKICAgICAgICAgICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChjb250
ZXh0Tm9kZSk7Ci0gICAgICAgICAgICBmbG9hdCB3aWR0aCA9IDA7Ci0gICAgICAgICAgICBmbG9h
dCBoZWlnaHQgPSAwOworICAgICAgICAgICAgRmxvYXRTaXplIHZpZXdwb3J0U2l6ZTsKIAogICAg
ICAgICAgICAgLy8gSWYgd2UncmUgcmVmZXJlbmNpbmcgYW4gZWxlbWVudCB3aXRoIHBlcmNlbnRh
Z2UgdW5pdHMsIGVnLiA8cmVjdCB3aXRoPSIzMCUiPiB0aG9zZSB2YWx1ZXMgd2VyZSByZXNvbHZl
ZCBhZ2FpbnN0IHRoZSB2aWV3cG9ydC4KICAgICAgICAgICAgIC8vIEJ1aWxkIHVwIGEgdHJhbnNm
b3JtYXRpb24gdGhhdCBtYXBzIGZyb20gdGhlIHZpZXdwb3J0IHNwYWNlIHRvIHRoZSBmaWx0ZXIg
cHJpbWl0aXZlIHN1YnJlZ2lvbi4KLSAgICAgICAgICAgIGlmIChsZW5ndGhDb250ZXh0LmRldGVy
bWluZVZpZXdwb3J0KHdpZHRoLCBoZWlnaHQpKQotICAgICAgICAgICAgICAgIHJlc3VsdEltYWdl
LT5jb250ZXh0KCktPmNvbmNhdENUTShtYWtlTWFwQmV0d2VlblJlY3RzKEZsb2F0UmVjdCgwLCAw
LCB3aWR0aCwgaGVpZ2h0KSwgZGVzdFJlY3QpKTsKKyAgICAgICAgICAgIGlmIChsZW5ndGhDb250
ZXh0LmRldGVybWluZVZpZXdwb3J0KHZpZXdwb3J0U2l6ZSkpCisgICAgICAgICAgICAgICAgcmVz
dWx0SW1hZ2UtPmNvbnRleHQoKS0+Y29uY2F0Q1RNKG1ha2VNYXBCZXR3ZWVuUmVjdHMoRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgdmlld3BvcnRTaXplKSwgZGVzdFJlY3QpKTsKICAgICAgICAgfQog
CiAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb250ZW50VHJhbnNmb3JtYXRpb247Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219422</attachid>
            <date>2013-12-17 08:28:44 -0800</date>
            <delta_ts>2013-12-18 10:10:56 -0800</delta_ts>
            <desc>Tests added back.</desc>
            <filename>fix-svg-root-assertion-failure.patch</filename>
            <type>text/plain</type>
            <size>12494</size>
            <attacher name="Tamas Gergely">tgergely.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTZhMWU0Li5hMWZiZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMTIt
MTcgIFRhbWFzIEdlcmdlbHkgIDx0Z2VyZ2VseS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29t
PgorCisgICAgICAgIEZpeCBBU1NFUlRJT04gRkFJTEVEIGluIFdlYkNvcmU6OlNWR0xlbmd0aENv
bnRleHQ6OmRldGVybWluZVZpZXdwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjAyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBvZiBoYW5kbGluZyByb290IDxzdmc+IGVsZW1l
bnRzLgorICAgICAgICBCbGluayBtZXJnZTogaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2Uu
Y29tL2Nocm9taXVtL2JsaW5rLysvYTdkZWRmODFlYjcwMDgyNzZiYjY4NTRmMGU0NjQ2NWUwMzk3
ODhmOAorCisgICAgICAgICogc3ZnL2N1c3RvbS9zdmctbGVuZ3RoLXZhbHVlLWhhbmRsZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL3N2Zy1sZW5ndGgtdmFsdWUt
aGFuZGxlZC5zdmc6IEFkZGVkLgorICAgICAgICAgICAgVGVzdHMgd2hldGhlciByb290IHN2ZyBl
bGVtZW50cyBzaXplcyBhcmUgaGFuZGxlZC4KKyAgICAgICAgKiBzdmcvZG9tL3N2Zy1yb290LWxl
bmd0aHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZG9tL3N2Zy1yb290LWxl
bmd0aHMuaHRtbDogQWRkZWQuCisgICAgICAgICAgICBUZXN0cyB0aGUgY29ycmVjdCBoYW5kbGlu
ZyBvZiByb290IHN2ZyBlbGVtZW50cyBzaXplcy4KKwogMjAxMy0xMi0xNyAgTWFyaW8gU2FuY2hl
eiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdW1dLMl0g
cm93QXRJbmRleCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gRFJUL1dLVFIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1oYW5kbGVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1oYW5kbGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2I0ZjVmOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWxlbmd0aC12YWx1ZS1o
YW5kbGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTOiByb290IHN2ZyBlbGVtZW50
IHNpemUgaGFuZGxlZCAoMHgwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9z
dmctbGVuZ3RoLXZhbHVlLWhhbmRsZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmct
bGVuZ3RoLXZhbHVlLWhhbmRsZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjIzODViYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2
Zy1sZW5ndGgtdmFsdWUtaGFuZGxlZC5zdmcKQEAgLTAsMCArMSwxMyBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgPHRleHQgaWQ9ImxhYmVsIiB5PSIyMDAiLz4KKyAgICA8
c2NyaXB0PgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhYmVsIiku
dGV4dENvbnRlbnQgPQorICAgICAgICAiUEFTUzogcm9vdCBzdmcgZWxlbWVudCBzaXplIGhhbmRs
ZWQgKCIgKworICAgICAgICBkb2N1bWVudC5yb290RWxlbWVudC53aWR0aC5iYXNlVmFsLnZhbHVl
ICsgIngiICsKKyAgICAgICAgZG9jdW1lbnQucm9vdEVsZW1lbnQuaGVpZ2h0LmJhc2VWYWwudmFs
dWUgKyAiKSI7CisgICAgPC9zY3JpcHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9kb20vc3ZnLXJvb3QtbGVuZ3Rocy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcv
ZG9tL3N2Zy1yb290LWxlbmd0aHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjg1Y2M0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
ZG9tL3N2Zy1yb290LWxlbmd0aHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK1RoaXMg
dGVzdHMgdGhlIGJlaGF2aW9yIG9mIHJvb3QgU1ZHIGxlbmd0aCB2YWx1ZSByZXNvbHV0aW9uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitJbml0aWFsL2RlZmF1bHQgdmFsdWVzOgorUEFTUyBz
dmcud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1Mgc3ZnLmhlaWdodC5iYXNlVmFsLnZh
bHVlIGlzIDIwMAorCitVcGRhdGVkIHJlbGF0aXZlIHZhbHVlczoKK1BBU1Mgc3ZnLndpZHRoLmJh
c2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN2Zy5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAyMAor
CitVcGRhdGVkIGZpeGVkIHZhbHVlczoKK1BBU1Mgc3ZnLndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MTUwCitQQVNTIHN2Zy5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyA1MAorCit2aWV3Qm94IGhhcyBu
byBlZmZlY3Qgb24gdG9wIGxldmVsIGxlbmd0aCByZXNvbHV0aW9uLgorUEFTUyBzdmcud2lkdGgu
YmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1Mgc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDEw
MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3N2Zy1yb290LWxlbmd0aHMuaHRt
bCBiL0xheW91dFRlc3RzL3N2Zy9kb20vc3ZnLXJvb3QtbGVuZ3Rocy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OGNkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvZG9tL3N2Zy1yb290LWxlbmd0aHMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJkaXYiIHN0eWxlPSJ3
aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsiPgorICAg
ICAgPHN2ZyBpZD0ic3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxl
PSJib3JkZXI6IDFweCBzb2xpZCBibHVlOyI+CisgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBo
ZWlnaHQ9IjEwMCUiIGZpbGw9ImdyZWVuIi8+CisgICAgICA8L3N2Zz4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIH0KKworICAgICAgc2V0VGltZW91
dChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGl2Jyk7CisgICAgICAgIHZhciBzdmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Zn
Jyk7CisKKyAgICAgICAgZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIHJv
b3QgU1ZHIGxlbmd0aCB2YWx1ZSByZXNvbHV0aW9uJyk7CisKKyAgICAgICAgZGVidWcoJ0luaXRp
YWwvZGVmYXVsdCB2YWx1ZXM6Jyk7CisgICAgICAgIHNob3VsZEJlKCdzdmcud2lkdGguYmFzZVZh
bC52YWx1ZScsICcyMDAnKTsKKyAgICAgICAgc2hvdWxkQmUoJ3N2Zy5oZWlnaHQuYmFzZVZhbC52
YWx1ZScsICcyMDAnKTsKKworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCd3aWR0aCcsICc1MCUn
KTsKKyAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzEwJScpOworICAgICAgICBk
ZWJ1ZygnJyk7CisgICAgICAgIGRlYnVnKCdVcGRhdGVkIHJlbGF0aXZlIHZhbHVlczonKTsKKyAg
ICAgICAgc2hvdWxkQmUoJ3N2Zy53aWR0aC5iYXNlVmFsLnZhbHVlJywgJzEwMCcpOworICAgICAg
ICBzaG91bGRCZSgnc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlJywgJzIwJyk7CisKKyAgICAgICAg
c3ZnLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMTUwJyk7CisgICAgICAgIHN2Zy5zZXRBdHRyaWJ1
dGUoJ2hlaWdodCcsICc1MCcpOworICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgIGRlYnVnKCdV
cGRhdGVkIGZpeGVkIHZhbHVlczonKTsKKyAgICAgICAgc2hvdWxkQmUoJ3N2Zy53aWR0aC5iYXNl
VmFsLnZhbHVlJywgJzE1MCcpOworICAgICAgICBzaG91bGRCZSgnc3ZnLmhlaWdodC5iYXNlVmFs
LnZhbHVlJywgJzUwJyk7CisKKyAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMTAw
JScpOworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnNTAlJyk7CisgICAgICAg
IHN2Zy5zZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDgwMCA2MDAnKTsKKyAgICAgICAgZGVi
dWcoJycpOworICAgICAgICBkZWJ1Zygndmlld0JveCBoYXMgbm8gZWZmZWN0IG9uIHRvcCBsZXZl
bCBsZW5ndGggcmVzb2x1dGlvbi4nKTsKKyAgICAgICAgc2hvdWxkQmUoJ3N2Zy53aWR0aC5iYXNl
VmFsLnZhbHVlJywgJzIwMCcpOworICAgICAgICBzaG91bGRCZSgnc3ZnLmhlaWdodC5iYXNlVmFs
LnZhbHVlJywgJzEwMCcpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgIH0sIDApOworICAgIDwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEwZmE0MmIuLjBhNjgzZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0xMi0xNyAgVGFtYXMgR2VyZ2VseSAg
PHRnZXJnZWx5LnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRml4IEFT
U0VSVElPTiBGQUlMRUQgaW4gV2ViQ29yZTo6U1ZHTGVuZ3RoQ29udGV4dDo6ZGV0ZXJtaW5lVmll
d3BvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MDI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIGhhbmRsaW5nIG9mIHJvb3QgPHN2Zz4gZWxlbWVudHMuCisgICAgICAgIEJsaW5rIG1lcmdl
OiBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy9hN2Rl
ZGY4MWViNzAwODI3NmJiNjg1NGYwZTQ2NDY1ZTAzOTc4OGY4CisKKyAgICAgICAgU1ZHTGVuZ3Ro
Q29udGV4dDo6ZGV0ZXJtaW5lVmlld3BvcnQoKSBjdXJyZW50bHkgYXNzZXJ0cyB0aGF0IHdlJ3Jl
IG5vdAorICAgICAgICByZXNvbHZpbmcgbGVuZ3RocyBmb3IgdGhlIHRvcG1vc3QgZWxlbWVudCwg
YnV0IHRoZXJlJ3Mgbm90aGluZyB0bworICAgICAgICBwcmV2ZW50IHN1Y2ggY2FsbHMuCisKKyAg
ICAgICAgVGhlIHBhdGNoIHVwZGF0ZXMgZGV0ZXJtaW5lVmlld3BvcnQoKSB0byBoYW5kbGUgcm9v
dCBlbGVtZW50cyBnZXJhY2VmdWxseQorICAgICAgICAodXNpbmcgdGhlaXIgY3VycmVudCB2aWV3
cG9ydCkuIEl0IGFsc28gY2hhbmdlcyB0aGUgc2lnbmF0dXJlIHNsaWdodGx5CisgICAgICAgIHRv
IG9wZXJhdGUgZGlyZWN0bHkgb24gYSBGbG9hdFNpemUsIHJlZHVjaW5nIHNvbWUgb2YgdGhlIGJv
aWxlci1wbGF0ZQorICAgICAgICBjbGllbnQgY29kZS4KKworICAgICAgICBUZXN0czogc3ZnL2N1
c3RvbS9zdmctbGVuZ3RoLXZhbHVlLWhhbmRsZWQuc3ZnCisgICAgICAgICAgICAgICBzdmcvZG9t
L3N2Zy1yb290LWxlbmd0aHMuaHRtbAorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aENvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoQ29udGV4dDo6Y29udmVydFZhbHVlRnJv
bVVzZXJVbml0c1RvUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhDb250
ZXh0Ojpjb252ZXJ0VmFsdWVGcm9tUGVyY2VudGFnZVRvVXNlclVuaXRzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aENvbnRleHQ6OmRldGVybWluZVZpZXdwb3J0KToKKyAgICAgICAgKiBz
dmcvU1ZHTGVuZ3RoQ29udGV4dC5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZFSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6cGxhdGZvcm1BcHBseVNv
ZnR3YXJlKToKKwogMjAxMy0xMi0xNyAgU2ltb24gUGVuYSAgPHNpbW9uLnBlbmFAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW05JWF0gRW5hYmxlIGZ1bGwgZGVidWcgYnVpbGRzIGJ5IGhhdmluZyBh
ciBjcmVhdGluZyB0aGluIGFyY2hpdmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4
dC5jcHAKaW5kZXggMGQwODRiZC4uZGM3MzE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5n
dGhDb250ZXh0LmNwcApAQCAtMTYxLDIwICsxNjEsMTkgQEAgZmxvYXQgU1ZHTGVuZ3RoQ29udGV4
dDo6Y29udmVydFZhbHVlRnJvbVVzZXJVbml0cyhmbG9hdCB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSBt
b2QKIAogZmxvYXQgU1ZHTGVuZ3RoQ29udGV4dDo6Y29udmVydFZhbHVlRnJvbVVzZXJVbml0c1Rv
UGVyY2VudGFnZShmbG9hdCB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSBtb2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IDA7Ci0gICAgZmxvYXQgaGVpZ2h0ID0g
MDsKLSAgICBpZiAoIWRldGVybWluZVZpZXdwb3J0KHdpZHRoLCBoZWlnaHQpKSB7CisgICAgRmxv
YXRTaXplIHZpZXdwb3J0U2l6ZTsKKyAgICBpZiAoIWRldGVybWluZVZpZXdwb3J0KHZpZXdwb3J0
U2l6ZSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBMZW5ndGhNb2RlV2lk
dGg6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAvIHdpZHRoICogMTAwOworICAgICAgICByZXR1cm4g
dmFsdWUgLyB2aWV3cG9ydFNpemUud2lkdGgoKSAqIDEwMDsKICAgICBjYXNlIExlbmd0aE1vZGVI
ZWlnaHQ6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAvIGhlaWdodCAqIDEwMDsKKyAgICAgICAgcmV0
dXJuIHZhbHVlIC8gdmlld3BvcnRTaXplLmhlaWdodCgpICogMTAwOwogICAgIGNhc2UgTGVuZ3Ro
TW9kZU90aGVyOgotICAgICAgICByZXR1cm4gdmFsdWUgLyAoc3FydGYoKHdpZHRoICogd2lkdGgg
KyBoZWlnaHQgKiBoZWlnaHQpIC8gMikpICogMTAwOworICAgICAgICByZXR1cm4gdmFsdWUgLyAo
c3FydGYodmlld3BvcnRTaXplLmRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgpIC8gMikpICogMTAwOwog
ICAgIH07CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE4MywyMCArMTgyLDE5IEBA
IGZsb2F0IFNWR0xlbmd0aENvbnRleHQ6OmNvbnZlcnRWYWx1ZUZyb21Vc2VyVW5pdHNUb1BlcmNl
bnRhZ2UoZmxvYXQgdmFsdWUsIFNWR0xlCiAKIGZsb2F0IFNWR0xlbmd0aENvbnRleHQ6OmNvbnZl
cnRWYWx1ZUZyb21QZXJjZW50YWdlVG9Vc2VyVW5pdHMoZmxvYXQgdmFsdWUsIFNWR0xlbmd0aE1v
ZGUgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7Ci0gICAgZmxvYXQgd2lkdGggPSAw
OwotICAgIGZsb2F0IGhlaWdodCA9IDA7Ci0gICAgaWYgKCFkZXRlcm1pbmVWaWV3cG9ydCh3aWR0
aCwgaGVpZ2h0KSkgeworICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemU7CisgICAgaWYgKCFkZXRl
cm1pbmVWaWV3cG9ydCh2aWV3cG9ydFNpemUpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIHN3aXRjaCAobW9kZSkgewog
ICAgIGNhc2UgTGVuZ3RoTW9kZVdpZHRoOgotICAgICAgICByZXR1cm4gdmFsdWUgKiB3aWR0aDsK
KyAgICAgICAgcmV0dXJuIHZhbHVlICogdmlld3BvcnRTaXplLndpZHRoKCk7CiAgICAgY2FzZSBM
ZW5ndGhNb2RlSGVpZ2h0OgotICAgICAgICByZXR1cm4gdmFsdWUgKiBoZWlnaHQ7CisgICAgICAg
IHJldHVybiB2YWx1ZSAqIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsKICAgICBjYXNlIExlbmd0aE1v
ZGVPdGhlcjoKLSAgICAgICAgcmV0dXJuIHZhbHVlICogc3FydGYoKHdpZHRoICogd2lkdGggKyBo
ZWlnaHQgKiBoZWlnaHQpIC8gMik7CisgICAgICAgIHJldHVybiB2YWx1ZSAqIHNxcnRmKHZpZXdw
b3J0U2l6ZS5kaWFnb25hbExlbmd0aFNxdWFyZWQoKSAvIDIpOwogICAgIH07CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI4MCwzNCArMjc4LDMzIEBAIGZsb2F0IFNWR0xlbmd0aENv
bnRleHQ6OmNvbnZlcnRWYWx1ZUZyb21FWFNUb1VzZXJVbml0cyhmbG9hdCB2YWx1ZSwgRXhjZXB0
aW9uQ29kCiAgICAgcmV0dXJuIHZhbHVlICogY2VpbGYoc3R5bGUtPmZvbnRNZXRyaWNzKCkueEhl
aWdodCgpKTsKIH0KIAotYm9vbCBTVkdMZW5ndGhDb250ZXh0OjpkZXRlcm1pbmVWaWV3cG9ydChm
bG9hdCYgd2lkdGgsIGZsb2F0JiBoZWlnaHQpIGNvbnN0Citib29sIFNWR0xlbmd0aENvbnRleHQ6
OmRldGVybWluZVZpZXdwb3J0KEZsb2F0U2l6ZSYgdmlld3BvcnRTaXplKSBjb25zdAogewogICAg
IGlmICghbV9jb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBhbiBv
dmVycmlkZW4gdmlld3BvcnQgaXMgZ2l2ZW4sIGl0IGhhcyBwcmVjZWRlbmNlLgogICAgIGlmICgh
bV9vdmVycmlkZW5WaWV3cG9ydC5pc0VtcHR5KCkpIHsKLSAgICAgICAgd2lkdGggPSBtX292ZXJy
aWRlblZpZXdwb3J0LndpZHRoKCk7Ci0gICAgICAgIGhlaWdodCA9IG1fb3ZlcnJpZGVuVmlld3Bv
cnQuaGVpZ2h0KCk7CisgICAgICAgIHZpZXdwb3J0U2l6ZSA9IG1fb3ZlcnJpZGVuVmlld3BvcnQu
c2l6ZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICAvLyBTVkdMZW5ndGhD
b250ZXh0IHNob3VsZCBORVZFUiBiZSB1c2VkIHRvIHJlc29sdmUgd2lkdGgvaGVpZ2h0IHZhbHVl
cyBmb3IgPHN2Zz4gZWxlbWVudHMsCi0gICAgLy8gYXMgdGhleSByZXF1aXJlIHNwZWNpYWwgdHJl
YXRtZW50LCBkdWUgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBDU1Mgd2lkdGgvaGVpZ2h0IHBy
b3BlcnRpZXMuCi0gICAgQVNTRVJUKG1fY29udGV4dC0+ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSAhPSBtX2NvbnRleHQpOworICAgIC8vIFJvb3QgPHN2Zz4gZWxlbWVudCBsZW5ndGhzIGFy
ZSByZXNvbHZlZCBhZ2FpbnN0IHRoZSB0b3AgbGV2ZWwgdmlld3BvcnQuCisgICAgaWYgKG1fY29u
dGV4dC0+aXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkpIHsKKyAgICAgICAgdmlld3BvcnRTaXpl
ID0gdG9TVkdTVkdFbGVtZW50KG1fY29udGV4dCktPmN1cnJlbnRWaWV3cG9ydFNpemUoKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCiAgICAgLy8gVGFrZSBzaXplIGZyb20gbmVhcmVz
dCB2aWV3cG9ydCBlbGVtZW50LgogICAgIFNWR0VsZW1lbnQqIHZpZXdwb3J0RWxlbWVudCA9IG1f
Y29udGV4dC0+dmlld3BvcnRFbGVtZW50KCk7CiAgICAgaWYgKCF2aWV3cG9ydEVsZW1lbnQgfHwg
IWlzU1ZHU1ZHRWxlbWVudCh2aWV3cG9ydEVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCisKICAgICBjb25zdCBTVkdTVkdFbGVtZW50KiBzdmcgPSB0b1NWR1NWR0VsZW1lbnQo
dmlld3BvcnRFbGVtZW50KTsKLSAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplID0gc3ZnLT5jdXJy
ZW50Vmlld0JveFJlY3QoKS5zaXplKCk7CisgICAgdmlld3BvcnRTaXplID0gc3ZnLT5jdXJyZW50
Vmlld0JveFJlY3QoKS5zaXplKCk7CiAgICAgaWYgKHZpZXdwb3J0U2l6ZS5pc0VtcHR5KCkpCiAg
ICAgICAgIHZpZXdwb3J0U2l6ZSA9IHN2Zy0+Y3VycmVudFZpZXdwb3J0U2l6ZSgpOwogCi0gICAg
d2lkdGggPSB2aWV3cG9ydFNpemUud2lkdGgoKTsKLSAgICBoZWlnaHQgPSB2aWV3cG9ydFNpemUu
aGVpZ2h0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
Q29udGV4dC5oCmluZGV4IGYzNTBhN2QuLmM3MDcwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aENvbnRleHQuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgY29udmVy
dFZhbHVlVG9Vc2VyVW5pdHMoZmxvYXQsIFNWR0xlbmd0aE1vZGUsIFNWR0xlbmd0aFR5cGUgZnJv
bVVuaXQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBmbG9hdCBjb252ZXJ0VmFsdWVGcm9t
VXNlclVuaXRzKGZsb2F0LCBTVkdMZW5ndGhNb2RlLCBTVkdMZW5ndGhUeXBlIHRvVW5pdCwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OwogCi0gICAgYm9vbCBkZXRlcm1pbmVWaWV3cG9ydChmbG9hdCYg
d2lkdGgsIGZsb2F0JiBoZWlnaHQpIGNvbnN0OworICAgIGJvb2wgZGV0ZXJtaW5lVmlld3BvcnQo
RmxvYXRTaXplJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgU1ZHTGVuZ3RoQ29udGV4dChjb25z
dCBTVkdFbGVtZW50KiwgY29uc3QgRmxvYXRSZWN0JiB2aWV3cG9ydCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCmluZGV4IDRiYmU0
MmIuLjRkM2E1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0
ZXJzL1NWR0ZFSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0
ZXJzL1NWR0ZFSW1hZ2UuY3BwCkBAIC0xMjgsMTMgKzEyOCwxMiBAQCB2b2lkIEZFSW1hZ2U6OnBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIFNWR0VsZW1lbnQqIGNvbnRleHROb2RlID0g
dG9TVkdFbGVtZW50KHJlbmRlcmVyLT5lbGVtZW50KCkpOwogICAgICAgICBpZiAoY29udGV4dE5v
ZGUtPmhhc1JlbGF0aXZlTGVuZ3RocygpKSB7CiAgICAgICAgICAgICBTVkdMZW5ndGhDb250ZXh0
IGxlbmd0aENvbnRleHQoY29udGV4dE5vZGUpOwotICAgICAgICAgICAgZmxvYXQgd2lkdGggPSAw
OwotICAgICAgICAgICAgZmxvYXQgaGVpZ2h0ID0gMDsKKyAgICAgICAgICAgIEZsb2F0U2l6ZSB2
aWV3cG9ydFNpemU7CiAKICAgICAgICAgICAgIC8vIElmIHdlJ3JlIHJlZmVyZW5jaW5nIGFuIGVs
ZW1lbnQgd2l0aCBwZXJjZW50YWdlIHVuaXRzLCBlZy4gPHJlY3Qgd2l0aD0iMzAlIj4gdGhvc2Ug
dmFsdWVzIHdlcmUgcmVzb2x2ZWQgYWdhaW5zdCB0aGUgdmlld3BvcnQuCiAgICAgICAgICAgICAv
LyBCdWlsZCB1cCBhIHRyYW5zZm9ybWF0aW9uIHRoYXQgbWFwcyBmcm9tIHRoZSB2aWV3cG9ydCBz
cGFjZSB0byB0aGUgZmlsdGVyIHByaW1pdGl2ZSBzdWJyZWdpb24uCi0gICAgICAgICAgICBpZiAo
bGVuZ3RoQ29udGV4dC5kZXRlcm1pbmVWaWV3cG9ydCh3aWR0aCwgaGVpZ2h0KSkKLSAgICAgICAg
ICAgICAgICByZXN1bHRJbWFnZS0+Y29udGV4dCgpLT5jb25jYXRDVE0obWFrZU1hcEJldHdlZW5S
ZWN0cyhGbG9hdFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCksIGRlc3RSZWN0KSk7CisgICAgICAg
ICAgICBpZiAobGVuZ3RoQ29udGV4dC5kZXRlcm1pbmVWaWV3cG9ydCh2aWV3cG9ydFNpemUpKQor
ICAgICAgICAgICAgICAgIHJlc3VsdEltYWdlLT5jb250ZXh0KCktPmNvbmNhdENUTShtYWtlTWFw
QmV0d2VlblJlY3RzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHZpZXdwb3J0U2l6ZSksIGRlc3RS
ZWN0KSk7CiAgICAgICAgIH0KIAogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29udGVudFRyYW5z
Zm9ybWF0aW9uOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>