<?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>46224</bug_id>
          
          <creation_ts>2010-09-21 15:27:50 -0700</creation_ts>
          <short_desc>Reproducible Crash when Inspector Open in CSSStyleSelector::loadPendingImages()</short_desc>
          <delta_ts>2010-10-18 11:06:14 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.weather.com/weather/map/44118</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Mathews">possessedpenguinbob</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>loislo</cc>
    
    <cc>mitz</cc>
    
    <cc>pfeldman</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>282588</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Mathews">possessedpenguinbob</who>
    <bug_when>2010-09-21 15:27:50 -0700</bug_when>
    <thetext>Steps for reproduction:

1) Navigate to http://www.weather.com/weather/map/44118   --  (the US Zip Code at the end doesn&apos;t matter, it can be any valid zip)

2) Show Web Inspector

3) Change the Selector Box below the main weather image to something else, other than &quot;Select Another Map.&quot;  Crash will ensue.

Stack Trace from the r67838 Nightly:

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x0000000100d929b6 WebCore::CSSStyleSelector::loadPendingImages() + 150
1   com.apple.WebCore             	0x0000000100d952b6 WebCore::CSSStyleSelector::styleForElement(WebCore::Element*, WebCore::RenderStyle*, bool, bool, bool) + 1414
2   com.apple.WebCore             	0x00000001014b9f72 WebCore::Node::styleForRenderer() + 82
3   com.apple.WebCore             	0x00000001014bbf8f WebCore::Node::createRendererIfNeeded() + 143
4   com.apple.WebCore             	0x0000000100ec3940 WebCore::Element::attach() + 32
5   com.apple.WebCore             	0x0000000100fbfc41 WebCore::HTMLLIElement::attach() + 17
6   com.apple.WebCore             	0x0000000100f893a2 WTF::PassRefPtr&lt;WebCore::Element&gt; WebCore::HTMLConstructionSite::attach&lt;WebCore::Element&gt;(WebCore::ContainerNode*, WTF::PassRefPtr&lt;WebCore::Element&gt;) + 178
7   com.apple.WebCore             	0x0000000100f8853b WebCore::HTMLConstructionSite::attachToCurrent(WTF::PassRefPtr&lt;WebCore::Element&gt;) + 43
8   com.apple.WebCore             	0x0000000100f888cb WebCore::HTMLConstructionSite::insertHTMLElement(WebCore::AtomicHTMLToken&amp;) + 59
9   com.apple.WebCore             	0x0000000100ffe5c8 WebCore::HTMLTreeBuilder::processStartTagForInBody(WebCore::AtomicHTMLToken&amp;) + 776
10  com.apple.WebCore             	0x0000000100fff99e WebCore::HTMLTreeBuilder::processStartTag(WebCore::AtomicHTMLToken&amp;) + 910
11  com.apple.WebCore             	0x0000000101003fc1 WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken(WebCore::AtomicHTMLToken&amp;) + 17
12  com.apple.WebCore             	0x0000000101004045 WebCore::HTMLTreeBuilder::constructTreeFromToken(WebCore::HTMLToken&amp;) + 37
13  com.apple.WebCore             	0x0000000100f8dd14 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 132
14  com.apple.WebCore             	0x0000000100f8f0aa WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&amp;) + 138
15  com.apple.WebCore             	0x0000000100dbb1e7 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter*, char const*, int, bool) + 471
16  com.apple.WebCore             	0x0000000100debe34 WebCore::DocumentLoader::commitData(char const*, int) + 132
17  com.apple.WebKit              	0x0000000100a3044d -[WebHTMLRepresentation receivedData:withDataSource:] + 493
18  com.apple.WebKit              	0x0000000100a0110b -[WebDataSource(WebInternal) _receivedData:] + 75
19  com.apple.WebKit              	0x0000000100a1b62f WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 111
20  com.apple.WebCore             	0x0000000100de9a26 WebCore::DocumentLoader::commitLoad(char const*, int) + 150
--------------------------------------

Reproducible in a release build of r67988, though the stack trace is a little different. So I took a look in the code and discovered the issue.

In WebCore::CSSStyleSelector::loadPendingImages():

...
case CSSPropertyBackgroundImage: {
                for (FillLayer* backgroundLayer = m_style-&gt;accessBackgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer-&gt;next()) {
                    if (backgroundLayer-&gt;image() &amp;&amp; backgroundLayer-&gt;image()-&gt;isPendingImage()) {
                        CSSImageValue* imageValue = static_cast&lt;StylePendingImage*&gt;(backgroundLayer-&gt;image())-&gt;cssImageValue();
 --&gt;backgroundLayer-&gt;setImage(imageValue-&gt;cachedImage(cachedResourceLoader));
                    }
                }
                break;
            } 
...

As it is running through, at the point just before it crashes m_style becomes null after the arrowed statement is executed.

resulting in the crash when m_style is dereferenced at the arrow in WebCore::CSSStyleSelector::styleForElement:

...
    adjustRenderStyle(style(), e);

    // Start loading images referenced by this style.
    loadPendingImages();

    // If we have first-letter pseudo style, do not share this style
--&gt;if (m_style-&gt;hasPseudoStyle(FIRST_LETTER))
        m_style-&gt;setUnique();
...


At first I thought it was just a loop running an extra iteration when it shouldn&apos;t, but now I am unsure. So I&apos;ll sit back and let the experts fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284056</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-23 15:59:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/8471963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285812</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 15:36:53 -0700</bug_when>
    <thetext>Classic case of modifying the mPendingImages hash while enumerating, via this stack:


#0  0x00000001032931e1 in WebCore::CSSStyleSelector::initForStyleResolve (this=0x10905d000, e=0x1395f2830, parentStyle=0x0, pseudoID=WebCore::NOPSEUDO) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSStyleSelector.cpp:849
#1  0x0000000103272f27 in WebCore::CSSStyleSelector::styleForElement (this=0x10905d000, e=0x1395f2830, defaultParent=0x0, allowSharing=true, resolveForRootDefault=false, matchVisitedPseudoClass=false) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSStyleSelector.cpp:1165
#2  0x000000010340b9a0 in WebCore::Element::recalcStyle (this=0x1395f2830, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:929
#3  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395f0630, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#4  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395ee990, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#5  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395ee220, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#6  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395c4890, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#7  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395a19d0, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#8  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395a5960, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#9  0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395a0540, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#10 0x000000010340c03c in WebCore::Element::recalcStyle (this=0x1395a5c90, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#11 0x000000010340c03c in WebCore::Element::recalcStyle (this=0x139544d20, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#12 0x000000010340c03c in WebCore::Element::recalcStyle (this=0x139553b30, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#13 0x000000010340c03c in WebCore::Element::recalcStyle (this=0x13953a0f0, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#14 0x000000010340c03c in WebCore::Element::recalcStyle (this=0x139553ff0, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#15 0x000000010340c03c in WebCore::Element::recalcStyle (this=0x137bb9580, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Element.cpp:997
#16 0x00000001032e5d87 in WebCore::Document::recalcStyle (this=0x10908ca00, change=WebCore::Node::NoChange) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Document.cpp:1493
#17 0x00000001032e5a8a in WebCore::Document::updateStyleIfNeeded (this=0x10908ca00) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Document.cpp:1537
#18 0x00000001032dec58 in WebCore::Document::updateStyleForAllDocuments () at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/dom/Document.cpp:1553
#19 0x0000000103b70f9c in WebCore::ScriptController::executeScript (this=0x12c02aec8, sourceCode=@0x7fff5fbfc010, shouldAllowXSS=WebCore::DoNotAllowXSS) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/bindings/ScriptControllerBase.cpp:64
#20 0x0000000103b7106d in WebCore::ScriptController::executeScript (this=0x12c02aec8, script=@0x7fff5fbfc100, forceUserGesture=false, shouldAllowXSS=WebCore::DoNotAllowXSS) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/bindings/ScriptControllerBase.cpp:49
#21 0x00000001023734bb in WebInspectorClient::sendMessageToFrontend (this=0x10aec9e90, message=@0x7fff5fbfc140) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp:119
#22 0x00000001036616a9 in WebCore::InspectorFrontend::updateResource (this=0x138022c90, resource=@0x7fff5fbfc2a0) at /Volumes/InternalData/Development/webkit/OpenSource/WebKitBuild/Debug/DerivedSources/WebCore/InspectorFrontend.cpp:314
#23 0x000000010366e7b4 in WebCore::InspectorResource::updateScriptObject (this=0x13a102bd0, frontend=0x138022c90) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/inspector/InspectorResource.cpp:330
#24 0x000000010360d0b3 in WebCore::InspectorController::didLoadResourceFromMemoryCache (this=0x12c015c00, loader=0x109195600, cachedResource=0x136647260) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/inspector/InspectorController.cpp:942
#25 0x0000000103472954 in WebCore::FrameLoader::loadedResourceFromMemoryCache (this=0x12c007650, resource=0x136647260) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/loader/FrameLoader.cpp:3026
#26 0x0000000103165084 in WebCore::CachedResourceLoader::checkCacheObjectStatus (this=0x137b95b10, resource=0x136647260) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/loader/CachedResourceLoader.cpp:364
#27 0x0000000103165bd9 in WebCore::CachedResourceLoader::requestResource (this=0x137b95b10, type=WebCore::CachedResource::ImageResource, url=@0x7fff5fbfcb90, charset=@0x7fff5fbfcab0, isPreload=false) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/loader/CachedResourceLoader.cpp:274
#28 0x0000000103165e78 in WebCore::CachedResourceLoader::requestImage (this=0x137b95b10, url=@0x7fff5fbfcb90) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/loader/CachedResourceLoader.cpp:137
#29 0x0000000103203089 in WebCore::CSSImageValue::cachedImage (this=0x139563400, loader=0x137b95b10, url=@0x7fff5fbfcb90) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSImageValue.cpp:74
#30 0x0000000103203197 in WebCore::CSSImageValue::cachedImage (this=0x139563400, loader=0x137b95b10) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSImageValue.cpp:64
#31 0x000000010324e022 in WebCore::CSSStyleSelector::loadPendingImages (this=0x10905d000) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSStyleSelector.cpp:6847
#32 0x0000000103273a42 in WebCore::CSSStyleSelector::styleForElement (this=0x10905d000, e=0x13a102580, defaultParent=0x0, allowSharing=true, resolveForRootDefault=false, matchVisitedPseudoClass=false) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSStyleSelector.cpp:1357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285816</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 15:40:44 -0700</bug_when>
    <thetext>Should WebInspectorClient::sendMessageToFrontend() really be synchronous?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285822</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 15:46:30 -0700</bug_when>
    <thetext>Executing script causes Document::updateStyleForAllDocuments() to run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285824</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 15:47:41 -0700</bug_when>
    <thetext>We&apos;re re-entering CSSStyleSelector::styleForElement() here, which is terrible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285920</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 17:03:17 -0700</bug_when>
    <thetext>*** Bug 46666 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285923</commentid>
    <comment_count>7</comment_count>
      <attachid>68993</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 17:09:03 -0700</bug_when>
    <thetext>Created attachment 68993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286008</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-27 19:19:12 -0700</bug_when>
    <thetext>Attachment 68993 did not build on win:
Build output: http://queues.webkit.org/results/4002180</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286018</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-27 19:42:03 -0700</bug_when>
    <thetext>Hmm, maybe this should go into the cross-platform file. Would still appreciate a review of the approach, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286380</commentid>
    <comment_count>10</comment_count>
      <attachid>68993</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-28 11:02:15 -0700</bug_when>
    <thetext>Comment on attachment 68993
Patch

This is likely to break inspector/ tests. We rely upon WebInspector.dispatchMessageFromBackend&apos;s (WebInspector.dispatch&apos;s) timer that is delaying the dispatch job. See inspector.js for the code. Your change is good, especially accompanied with this unnecessary timer removal. But our testing harness uses pending message counter to make sure all async jobs are dispatched (same dispatch method in js). In addition to your change you would need to notify front-end once your queue is empty. We do this in chromium.

... or if the tests are passing, feel free to land it. I&apos;ll have to understand why they are passing though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286429</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-28 12:07:09 -0700</bug_when>
    <thetext>Pavel: are you suggesting I remove the setTimeout stuff in WebInspector.dispatch()? If so, do we need to ensure that all platforms are doing async dispatch in their native code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286475</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-28 12:54:07 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Pavel: are you suggesting I remove the setTimeout stuff in WebInspector.dispatch()? If so, do we need to ensure that all platforms are doing async dispatch in their native code?

Not only that. Ideally, these things should happen:
- All ports establish async message dispatch in native layer
- setTimeout goes away from the WebInspector.dispatch
- This new message pump should notify front-end each time it has done processing the queued messages + there were no new messages scheduled (See TestController.js&apos;s runAfterPendingDispatches, it needs to exec its callback after all the message interactions have been settled)

You timer code seems to be WebCore-based, hence it can be implemented in the InspectorClient.h to cover all the ports (as a short term solution). Or you could introduce InspectorClientLocal that ports would inherit from (as is implemented in case of InspectorFrontendClient). TestController can be notified similarly to the way we call WebInspector.dispatchMessageFromBackend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294953</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-15 15:16:18 -0700</bug_when>
    <thetext>Pavel: any progress here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295436</commentid>
    <comment_count>14</comment_count>
      <attachid>71020</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-18 04:32:37 -0700</bug_when>
    <thetext>Created attachment 71020
[PATCH] Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295438</commentid>
    <comment_count>15</comment_count>
      <attachid>71021</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-18 04:40:12 -0700</bug_when>
    <thetext>Created attachment 71021
[PATCH] Same with the comment typo fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295469</commentid>
    <comment_count>16</comment_count>
      <attachid>71021</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-18 05:58:31 -0700</bug_when>
    <thetext>Comment on attachment 71021
[PATCH] Same with the comment typo fixed.

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

&gt; WebCore/inspector/InspectorClient.cpp:61
&gt; +    // As a result we might re-enter CSSStyleSelector::styleForElement() which is terrible.

It seems wrong to me that Document::updateStyleForAllDocuments() is called in ScriptController::executeScript, can we fix that place instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295471</commentid>
    <comment_count>17</comment_count>
      <attachid>71021</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-10-18 06:04:51 -0700</bug_when>
    <thetext>Comment on attachment 71021
[PATCH] Same with the comment typo fixed.

looks good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295473</commentid>
    <comment_count>18</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-18 06:11:52 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 71021 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71021&amp;action=review
&gt; 
&gt; &gt; WebCore/inspector/InspectorClient.cpp:61
&gt; &gt; +    // As a result we might re-enter CSSStyleSelector::styleForElement() which is terrible.
&gt; 
&gt; It seems wrong to me that Document::updateStyleForAllDocuments() is called in ScriptController::executeScript, can we fix that place instead?

Need to talk to Dimitri. But this change is anyways good - it removes copypaste.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295475</commentid>
    <comment_count>19</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-18 06:17:43 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 71021 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71021&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; WebCore/inspector/InspectorClient.cpp:61
&gt; &gt; &gt; +    // As a result we might re-enter CSSStyleSelector::styleForElement() which is terrible.
&gt; &gt; 
&gt; &gt; It seems wrong to me that Document::updateStyleForAllDocuments() is called in ScriptController::executeScript, can we fix that place instead?
&gt; 
&gt; Need to talk to Dimitri. But this change is anyways good - it removes copypaste.

Yes, I like the refactoring but semantic change seems wrong. I&apos;m OK with committing the refactoring without the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295502</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-18 08:15:09 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; It seems wrong to me that Document::updateStyleForAllDocuments() is called in ScriptController::executeScript, can we fix that place instead?

Bug 46761.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295511</commentid>
    <comment_count>21</comment_count>
      <attachid>71021</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-18 08:19:44 -0700</bug_when>
    <thetext>Comment on attachment 71021
[PATCH] Same with the comment typo fixed.

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

Thanks for taking care of this!

&gt; WebCore/ChangeLog:8
&gt; +        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=46224
&gt; +
&gt; +        * CMakeLists.txt:

There should be a summary here of what the problem was, and what changes you made to fix it.

Specifically I&apos;d like to see mentioned that fact that calling through doDispatchMessageOnFrontendPage() makes this asynchronous, by virtue of the timer in Inspector.js. That is not at all apparent from these changes.

&gt; WebKit/cf/ChangeLog:8
&gt; +        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=46224
&gt; +
&gt; +        * WebCoreSupport/WebInspectorClientCF.cpp:

Again, these changelogs need some explanatory comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295522</commentid>
    <comment_count>22</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-18 08:37:14 -0700</bug_when>
    <thetext>&gt; Specifically I&apos;d like to see mentioned that fact that calling through doDispatchMessageOnFrontendPage() makes this asynchronous, by virtue of the timer in Inspector.js. That is not at all apparent from these changes.

ChangeLog does not say that since the call is still synchronous. All I did was factor out 3 copy-pastes and switch from using executeInWorld that re-enters styles for no good reason to evaluate. This change should save us from crash while we are waiting for comments from Dimitri on why styles update is necessary in executeInWorld.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295533</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-18 09:03:29 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; Specifically I&apos;d like to see mentioned that fact that calling through doDispatchMessageOnFrontendPage() makes this asynchronous, by virtue of the timer in Inspector.js. That is not at all apparent from these changes.
&gt; 
&gt; ChangeLog does not say that since the call is still synchronous. All I did was factor out 3 copy-pastes and switch from using executeInWorld that re-enters styles for no good reason to evaluate. This change should save us from crash while we are waiting for comments from Dimitri on why styles update is necessary in executeInWorld.

So how do we know that some random JS in the inspector won&apos;t cause a call to updateStyleForAllDocuments()? This seems like a fragile way to fix the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295535</commentid>
    <comment_count>24</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-18 09:10:04 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; &gt; Specifically I&apos;d like to see mentioned that fact that calling through doDispatchMessageOnFrontendPage() makes this asynchronous, by virtue of the timer in Inspector.js. That is not at all apparent from these changes.
&gt; &gt; 
&gt; &gt; ChangeLog does not say that since the call is still synchronous. All I did was factor out 3 copy-pastes and switch from using executeInWorld that re-enters styles for no good reason to evaluate. This change should save us from crash while we are waiting for comments from Dimitri on why styles update is necessary in executeInWorld.
&gt; 
&gt; So how do we know that some random JS in the inspector won&apos;t cause a call to updateStyleForAllDocuments()? This seems like a fragile way to fix the bug.

The first line we hit in inspector is setTimeout, so there is no synchronous continuation at all. So we are safe to some extent. The bullet-proof way of fixing it (involving changes to testing harness) will need much more time while the title says &apos;reproducible crash&apos;...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295560</commentid>
    <comment_count>25</comment_count>
      <attachid>71021</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-18 09:44:41 -0700</bug_when>
    <thetext>Comment on attachment 71021
[PATCH] Same with the comment typo fixed.

I filed a bug for async messaging: https://bugs.webkit.org/show_bug.cgi?id=47830. Am going to land this patch as is since it prevents from the actual crash. (Using Simon&apos;s r+ for that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295581</commentid>
    <comment_count>26</comment_count>
      <attachid>71021</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-18 10:09:33 -0700</bug_when>
    <thetext>Comment on attachment 71021
[PATCH] Same with the comment typo fixed.

Clearing flags on attachment: 71021

Committed r69968: &lt;http://trac.webkit.org/changeset/69968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295584</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-18 10:09:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295621</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-18 11:06:14 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/69968 might have broken Qt Windows 32-bit Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68993</attachid>
            <date>2010-09-27 17:09:03 -0700</date>
            <delta_ts>2010-09-28 11:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46224-20100927170902.patch</filename>
            <type>text/plain</type>
            <size>5179</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jZi9DaGFuZ2VMb2cgYi9XZWJLaXQvY2YvQ2hhbmdlTG9nCmlu
ZGV4IDk1N2RjZTFlMDI0MjIzMTVmOTUzYzlkNGRmZDkwNjg1NjRjNjViMjQuLmNiNmExMTU4MDEx
MTU4MmNiNjRhMmQ3ZjZmMzkyM2YwMDM0MDNmMzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jZi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L2NmL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA5
LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcHJvZHVjaWJsZSBDcmFzaCB3
aGVuIEluc3BlY3RvciBPcGVuIGluIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2Vz
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0
CisKKyAgICAgICAgT24gTWFjLCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9u
dGVuZCgpIGlzIHN5bmNocm9ub3VzLCB3aGljaAorICAgICAgICBhbGxvd3MgcmUtZW50cnkgaW50
byBXZWJDb3JlIG1ldGhvZHMgdmlhIERvY3VtZW50Ojp1cGRhdGVTdHlsZUZvckFsbERvY3VtZW50
cygpLgorICAgICAgICAKKyAgICAgICAgRml4IHRoaXMgYnkgcXVldWluZyB1cCBmcm9udC1lbmQg
Y29tbWFuZHMgaW4gYSB2ZWN0b3IsIGFuZCBleGVjdXRpbmcKKyAgICAgICAgdGhlbSBvbiBhIHpl
cm8tZGVsYXkgdGltZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnRDRi5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9G
cm9udGVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6OmNvbW1hbmRUaW1lckZpcmVk
KToKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6aGFuZGxlQ29tbWFuZCk6CisKIDIwMTAt
MDYtMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2YvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwIGIvV2ViS2l0L2NmL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcAppbmRleCBkYzVhMTg2YWM3ODRjMWMzMzQzYTJh
MDZmYjhkNTZjMzdlMTM5NjRiLi41NzhlYjRmZmMwODExZDZhOWVhZTk2ZGI4MGJhMmJmYjY5YzM0
MjQyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Q0YuY3BwCisrKyBiL1dlYktpdC9jZi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnRDRi5jcHAKQEAgLTExMyw5ICsxMTMsMzkgQEAgYm9vbCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNl
bmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKCFzY3Jp
cHRDb250cm9sbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBtX3BlbmRpbmdDb21t
YW5kcy5hcHBlbmQobWVzc2FnZSk7CisgICAgaWYgKCFtX2NvbW1hbmRUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX2NvbW1hbmRUaW1lci5zdGFydE9uZVNob3QoMCk7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmNvbW1hbmRUaW1lckZpcmVkKFRp
bWVyPFdlYkluc3BlY3RvckNsaWVudD4qKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGNvbW1hbmRz
OworICAgIGNvbW1hbmRzLnN3YXAobV9wZW5kaW5nQ29tbWFuZHMpOworCisgICAgc2l6ZV90IG51
bUNvbW1hbmRzID0gY29tbWFuZHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bnVtQ29tbWFuZHM7ICsraSkKKyAgICAgICAgaGFuZGxlQ29tbWFuZChjb21tYW5kc1tpXSk7Cit9
CisKK3ZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoYW5kbGVDb21tYW5kKGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9mcm9udGVuZFBhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIEZyYW1lKiBmcmFtZSA9IG1fZnJvbnRlbmRQYWdlLT5tYWluRnJhbWUoKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRDb250cm9sbGVyKiBz
Y3JpcHRDb250cm9sbGVyID0gZnJhbWUtPnNjcmlwdCgpOworICAgIGlmICghc2NyaXB0Q29udHJv
bGxlcikKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5nIGRpc3BhdGNoVG9Gcm9udGVuZCgi
V2ViSW5zcGVjdG9yLmRpc3BhdGNoTWVzc2FnZUZyb21CYWNrZW5kKCIpOwogICAgIGRpc3BhdGNo
VG9Gcm9udGVuZCArPSBtZXNzYWdlOwogICAgIGRpc3BhdGNoVG9Gcm9udGVuZCArPSAiKTsiOwog
ICAgIHNjcmlwdENvbnRyb2xsZXItPmV4ZWN1dGVTY3JpcHQoZGlzcGF0Y2hUb0Zyb250ZW5kKTsK
LSAgICByZXR1cm4gdHJ1ZTsKIH0KKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxMzNjMGVlZTY5NGNlNjczYWRlNzU2ZDcxZWU1
YzZlYjg3YTE2ZGMyLi41NTBlMTRkNTZjOTcwNjZkZjFlZWQzYjJhNDcwODEzYjIyNmU5Y2MyIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA5LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlcHJvZHVjaWJsZSBDcmFzaCB3aGVuIEluc3BlY3RvciBPcGVuIGluIENTU1N0eWxl
U2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0CisgICAgICAgIAorICAgICAgICBPbiBNYWMsIFdl
Ykluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCkgaXMgc3luY2hyb25vdXMs
IHdoaWNoCisgICAgICAgIGFsbG93cyByZS1lbnRyeSBpbnRvIFdlYkNvcmUgbWV0aG9kcyB2aWEg
RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCkuCisgICAgICAgIAorICAgICAg
ICBGaXggdGhpcyBieSBxdWV1aW5nIHVwIGZyb250LWVuZCBjb21tYW5kcyBpbiBhIHZlY3Rvciwg
YW5kIGV4ZWN1dGluZworICAgICAgICB0aGVtIG9uIGEgemVyby1kZWxheSB0aW1lci4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ckNsaWVudDo6V2ViSW5zcGVjdG9yQ2xpZW50KToKKwogMjAxMC0wOS0yNiAgQW50b25pbyBHb21l
cyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmgKaW5kZXggNzVhM2NjNmM0OTk5MTNhMTYxNjMwYjI0MDE5ODhjNTg3YTMzY2NkMi4u
OTk0YTA1NzczYjFkMDZmOWY3MzgyODQyMTRmMzI5YTQ0Njc1NjdkNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaAorKysgYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9J
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
U3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVyLmg+CiAKICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KIApAQCAtNjcsOSArNjgsMTUgQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUZy
b250ZW5kUGFnZSgpOwogCiBwcml2YXRlOgorICAgIHZvaWQgY29tbWFuZFRpbWVyRmlyZWQoV2Vi
Q29yZTo6VGltZXI8V2ViSW5zcGVjdG9yQ2xpZW50PiopOworICAgIHZvaWQgaGFuZGxlQ29tbWFu
ZChjb25zdCBXVEY6OlN0cmluZyYpOworCiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogICAgIFJl
dGFpblB0cjxXZWJOb2RlSGlnaGxpZ2h0ZXI+IG1faGlnaGxpZ2h0ZXI7CiAgICAgV2ViQ29yZTo6
UGFnZSogbV9mcm9udGVuZFBhZ2U7CisgICAgCisgICAgVmVjdG9yPFN0cmluZz4gbV9wZW5kaW5n
Q29tbWFuZHM7CisgICAgV2ViQ29yZTo6VGltZXI8V2ViSW5zcGVjdG9yQ2xpZW50PiBtX2NvbW1h
bmRUaW1lcjsKIH07CiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5tbQppbmRleCBkNGQwMjEzNjI0NjVhZTJiZjdlNjVlMWFlZmQ2MzNkMzliY2Zh
ZGYyLi5hNmJlOGY3OWYwZDhhY2IxNDc4MzA0NzkwOWY1ZjM4ODA2ODg3ODM2IDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtODUsOSAr
ODUsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIAogV2ViSW5zcGVjdG9yQ2xpZW50
OjpXZWJJbnNwZWN0b3JDbGllbnQoV2ViVmlldyAqd2ViVmlldykKLTogbV93ZWJWaWV3KHdlYlZp
ZXcpCi0sIG1faGlnaGxpZ2h0ZXIoQWRvcHROUywgW1tXZWJOb2RlSGlnaGxpZ2h0ZXIgYWxsb2Nd
IGluaXRXaXRoSW5zcGVjdGVkV2ViVmlldzp3ZWJWaWV3XSkKLSwgbV9mcm9udGVuZFBhZ2UoMCkK
KyAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQorICAgICwgbV9oaWdobGlnaHRlcihBZG9wdE5TLCBb
W1dlYk5vZGVIaWdobGlnaHRlciBhbGxvY10gaW5pdFdpdGhJbnNwZWN0ZWRXZWJWaWV3OndlYlZp
ZXddKQorICAgICwgbV9mcm9udGVuZFBhZ2UoMCkKKyAgICAsIG1fY29tbWFuZFRpbWVyKHRoaXMs
ICZXZWJJbnNwZWN0b3JDbGllbnQ6OmNvbW1hbmRUaW1lckZpcmVkKQogewogfQogCg==
</data>
<flag name="review"
          id="58601"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71020</attachid>
            <date>2010-10-18 04:32:37 -0700</date>
            <delta_ts>2010-10-18 04:40:12 -0700</delta_ts>
            <desc>[PATCH] Proposed fix.</desc>
            <filename>crash_fix</filename>
            <type>text/plain</type>
            <size>16494</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDc2MDMzY2YuLjIyODljMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTEwMyw2ICsxMTAzLDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTU3RvcmUuY3BwCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5j
cHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTE1YzViNi4uNTZlNmIyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMC0xMC0xOCAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY3Jhc2hdIHdoZW4gSW5zcGVj
dG9yIE9wZW4gaW4gQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0CisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6ZG9EaXNwYXRjaE1lc3Nh
Z2VPbkZyb250ZW5kUGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpJbnNwZWN0b3JDbGllbnQpOgor
CisyMDEwLTEwLTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIE5vdCByZXZpZXdlZC4gQnVpbGQgZml4LgogCiAgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzM1ZjYxYi4uYzQ0MjExMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC0xODA5LDYgKzE4MDksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIFwKIAlXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZC5oIFwKKwlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwIFwK
IAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaCBcCiAJV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmNDZhNTNhLi4zNmE4MzMxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEy
MjcsNiArMTIyNyw3IEBAIF9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhzZXRF
cnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCitfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDMxZG9EaXNwYXRj
aE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMkNvbnNvbGVQYW5lbEUKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjEyU2NyaXB0c1BhbmVsRQogX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTNQcm9maWxlc1BhbmVsRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3ODgwNjA2Li4zMzQzZDU5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTkwMSw3ICsxOTAxLDYgQEAKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJz
ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0Vmlld1NvdXJjZVBhcnNlci5o
JywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuY3BwJywKQEAgLTE5MTIsNiArMTkxMSw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwJywK
KyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCBmYTczNDUwLi41YWY1YTBhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTk5Miw2ICs5OTIs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAgXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JDU1NTdG9yZS5jcHAgXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwIFwK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGE3Y2ZmNTIuLmZmM2I2NGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNjMxOTEsNiArNjMxOTEsMTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNsaWVudC5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMzIzYzk0Li40NTViZmVlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5OSw2ICsxNDk5
LDcgQEAKIAkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9z
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EwRTc3
MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovOyB9OwogCQk3
QTBFNzcxRTEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EwRTc3MUMxMEMw
MERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCAqLzsgfTsKIAkJN0Ew
RTc3MUYxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTBFNzcxRDEwQzAwREIx
MDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCAqLzsgfTsKKwkJN0ExRjJCNTIx
MjZDNjFCMjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYgLyog
SW5zcGVjdG9yQ2xpZW50LmNwcCAqLzsgfTsKIAkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8q
IEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBMjQ1ODc5MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2Vu
dC5jcHAgKi87IH07CiAJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01B
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Ey
NDU4N0ExMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0E2NzRCREIwRjlFQkY0RTAw
NkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLzsgfTsKQEAgLTc1OTcsNiArNzU5OCw3IEBACiAJCTdB
MEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kSG9zdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdBMEU3NzFDMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYg
LyogSW5zcGVjdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdB
MjQ1ODc5MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JET01BZ2VudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBMjQ1ODdBMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNw
ZWN0b3JET01BZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JET01BZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTY3NEJEOTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjE3Myw2ICsxMjE3NSw3IEBACiAJCQkJQjg4NUU4RDMx
MUUwNkREMjAwOUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oICovLAog
CQkJCTdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNwZWN0b3JCYWNrZW5kLmNwcCAqLywK
IAkJCQk3QTc0RUNCOTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yQmFja2VuZC5oICovLAor
CQkJCTdBMUYyQjUxMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwICovLAog
CQkJCTFDODFCOTU4MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCAqLywKIAkJ
CQkxQzgxQjk1NzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJMUM4MUI5NTYwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCAq
LywKQEAgLTIzNjMxLDYgKzIzNjM0LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQg
LyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RkEzQjkwQTEyNUNEMTIyMDAz
MDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyOEMzMTMx
MjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmQyOWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgorCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBJbnNwZWN0b3JDbGllbnQ6OmRvRGlzcGF0Y2hN
ZXNzYWdlT25Gcm9udGVuZFBhZ2UoUGFnZSogZnJvbnRlbmRQYWdlLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCit7CisgICAgaWYgKCFmcm9udGVuZFBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEZyYW1lKiBmcmFtZSA9IGZyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCk7CisgICAgaWYg
KCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU2NyaXB0Q29udHJvbGxlciog
c2NyaXB0Q29udHJvbGxlciA9IGZyYW1lLT5zY3JpcHQoKTsKKyAgICBpZiAoIXNjcmlwdENvbnRy
b2xsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmluZyBkaXNwYXRjaFRvRnJv
bnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKKyAgICBk
aXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKKyAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0g
Iik7IjsKKworICAgIC8vIERvIG5vdCBjYWxsIGV4ZWN1dGVJbldvcmxkIGhlcmUgc2luY2UgaXQg
d2lsbCBlbmQgdXAgY2FsbGluZyBEb2N1bWVudDo6dXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMo
KS4KKyAgICAvLyBBcyBhIHJlc3VsdCB3ZSBtaWdodCByZS1lbnRlciBTU1N0eWxlU2VsZWN0b3I6
OnN0eWxlRm9yRWxlbWVudCgpIHdoaWNoIGlzIHRlcnJpYmxlLgorICAgIHNjcmlwdENvbnRyb2xs
ZXItPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUoZGlzcGF0Y2hUb0Zyb250ZW5kKSk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
bGllbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCmluZGV4IGJiNzFi
MTMuLjBjNzgyNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVu
dC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCB+SW5zcGVjdG9yQ2xpZW50KCkgeyAgfQorICAgIHZpcnR1YWwgfkluc3BlY3Rv
ckNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpID0g
MDsKIApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gSG93ZXZlciwgdGhlcmUgYXJl
IHNvbWUgaW5zcGVjdG9yIGNvbnRyb2xsZXIgc3RhdGVzIHRoYXQgc2hvdWxkIHN1cnZpdmUgbmF2
aWdhdGlvbiAoc3VjaCBhcyB0cmFja2luZyByZXNvdXJjZXMKICAgICAvLyBvciByZWNvcmRpbmcg
dGltZWxpbmUpLiBGb2xsb3dpbmcgY2FsbGJhY2tzIGFsbG93IGVtYmVkZGVycyB0byB0cmFjayB0
aGVzZSBzdGF0ZXMuCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUluc3BlY3RvclN0YXRlQ29va2ll
KGNvbnN0IFN0cmluZyYpIHsgfTsKKworICAgIGJvb2wgZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250
ZW5kUGFnZShQYWdlKiBmcm9udGVuZFBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvY2YvQ2hhbmdlTG9n
IGIvV2ViS2l0L2NmL0NoYW5nZUxvZwppbmRleCA5NTdkY2UxLi45ODg5ZmEyIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2YvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jZi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMC0xMC0xOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbY3Jhc2hdIHdoZW4gSW5zcGVjdG9yIE9wZW4gaW4gQ1NTU3R5bGVTZWxlY3Rv
cjo6bG9hZFBlbmRpbmdJbWFnZXMoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ2MjI0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnRDRi5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNz
YWdlVG9Gcm9udGVuZCk6CisKIDIwMTAtMDYtMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3Bw
IGIvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcAppbmRl
eCBkYzVhMTg2Li42MmZkZDRkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1dlYktpdC9jZi9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAKQEAgLTEwMiwyMCArMTAyLDUgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JDbGllbnQ6OnJlbGVhc2VGcm9udGVuZFBhZ2UoKQogCiBib29sIFdlYkluc3BlY3RvckNs
aWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAg
ICBpZiAoIW1fZnJvbnRlbmRQYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBGcmFt
ZSogZnJhbWUgPSBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlciA9IGZyYW1lLT5zY3JpcHQoKTsKLSAgICBpZiAoIXNjcmlwdENvbnRyb2xsZXIpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldl
Ykluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKLSAgICBkaXNwYXRjaFRv
RnJvbnRlbmQgKz0gbWVzc2FnZTsKLSAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKLSAg
ICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7Ci0g
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9udGVuZFBh
Z2UobV9mcm9udGVuZFBhZ2UsIG1lc3NhZ2UpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBjZDNiZWNkLi5jODBmNTVlIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTEwLTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFtjcmFzaF0gd2hlbiBJbnNwZWN0b3IgT3BlbiBpbiBDU1NT
dHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ0ltYWdlcygpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMjQKKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNs
aWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKwogMjAxMC0xMC0xNCAgQW50b25pbyBHb21l
cyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
biBhbmQgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRHdGsuY3BwCmluZGV4IGM4YjQyZDcuLjJjMWZmYWIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTIyMiwyMiArMjIy
LDcgQEAgdm9pZCBJbnNwZWN0b3JDbGllbnQ6OnN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQogCiBib29sIEluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBtX2Zyb250ZW5kUGFn
ZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IGZyYW1lLT5zY3JpcHQo
KTsKLSAgICBpZiAoIXNjcmlwdENvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3Nh
Z2VGcm9tQmFja2VuZCgiKTsKLSAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKLSAg
ICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKLSAgICBzY3JpcHRDb250cm9sbGVyLT5leGVj
dXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9udGVuZFBhZ2UobV9mcm9udGVuZFBhZ2UsIG1lc3Nh
Z2UpOwogfQogCiBjb25zdCBjaGFyKiBJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckZpbGVzUGF0
aCgpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCBjNDdlMjJhLi5iY2JhMjU5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMC0xOCAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY3Jhc2hdIHdo
ZW4gSW5zcGVjdG9yIE9wZW4gaW4gQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMo
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRRdDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToK
KwogMjAxMC0xMC0xNSAgUWkgWmhhbmcgIDxxaS4yLnpoYW5nQG5va2lhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKaW5kZXggYjY2NzNlNi4uZTU5Njg3MCAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcAorKysgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwCkBAIC0zOSw3ICsz
OSw2IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRlICJxd2ViaW5zcGVjdG9y
LmgiCiAjaW5jbHVkZSAicXdlYmluc3BlY3Rvcl9wLmgiCkBAIC0yNjYsMjIgKzI2NSw3IEBAIGJv
b2wgSW5zcGVjdG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFBhZ2UqIGZyb250ZW5kUGFn
ZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX2Zyb250ZW5kV2ViUGFnZSk7Ci0gICAgaWYgKCFm
cm9udGVuZFBhZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEZyYW1lKiBmcmFtZSA9
IGZyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IGZy
YW1lLT5zY3JpcHQoKTsKLSAgICBpZiAoIXNjcmlwdENvbnRyb2xsZXIpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5k
aXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKLSAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0g
bWVzc2FnZTsKLSAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKLSAgICBzY3JpcHRDb250
cm9sbGVyLT5leGVjdXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7Ci0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9udGVuZFBhZ2UoZnJvbnRlbmRQ
YWdlLCBtZXNzYWdlKTsKIH0KIAogc3RhdGljIFN0cmluZyB2YXJpYW50VG9TZXR0aW5nKGNvbnN0
IFFWYXJpYW50JiBxdmFyaWFudCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71021</attachid>
            <date>2010-10-18 04:40:12 -0700</date>
            <delta_ts>2010-10-18 10:09:33 -0700</delta_ts>
            <desc>[PATCH] Same with the comment typo fixed.</desc>
            <filename>crash_fix</filename>
            <type>text/plain</type>
            <size>16495</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDc2MDMzY2YuLjIyODljMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTEwMyw2ICsxMTAzLDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTU3RvcmUuY3BwCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5j
cHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTE1YzViNi4uNTZlNmIyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMC0xMC0xOCAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY3Jhc2hdIHdoZW4gSW5zcGVj
dG9yIE9wZW4gaW4gQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0CisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6ZG9EaXNwYXRjaE1lc3Nh
Z2VPbkZyb250ZW5kUGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpJbnNwZWN0b3JDbGllbnQpOgor
CisyMDEwLTEwLTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIE5vdCByZXZpZXdlZC4gQnVpbGQgZml4LgogCiAgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzM1ZjYxYi4uYzQ0MjExMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC0xODA5LDYgKzE4MDksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIFwKIAlXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZC5oIFwKKwlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwIFwK
IAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaCBcCiAJV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmNDZhNTNhLi4zNmE4MzMxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEy
MjcsNiArMTIyNyw3IEBAIF9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhzZXRF
cnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCitfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDMxZG9EaXNwYXRj
aE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMkNvbnNvbGVQYW5lbEUKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjEyU2NyaXB0c1BhbmVsRQogX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTNQcm9maWxlc1BhbmVsRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3ODgwNjA2Li4zMzQzZDU5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTkwMSw3ICsxOTAxLDYgQEAKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJz
ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0Vmlld1NvdXJjZVBhcnNlci5o
JywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuY3BwJywKQEAgLTE5MTIsNiArMTkxMSw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwJywK
KyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCBmYTczNDUwLi41YWY1YTBhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTk5Miw2ICs5OTIs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAgXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JDU1NTdG9yZS5jcHAgXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwIFwK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGE3Y2ZmNTIuLmZmM2I2NGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNjMxOTEsNiArNjMxOTEsMTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNsaWVudC5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMzIzYzk0Li40NTViZmVlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5OSw2ICsxNDk5
LDcgQEAKIAkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9z
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EwRTc3
MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovOyB9OwogCQk3
QTBFNzcxRTEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EwRTc3MUMxMEMw
MERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCAqLzsgfTsKIAkJN0Ew
RTc3MUYxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTBFNzcxRDEwQzAwREIx
MDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCAqLzsgfTsKKwkJN0ExRjJCNTIx
MjZDNjFCMjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYgLyog
SW5zcGVjdG9yQ2xpZW50LmNwcCAqLzsgfTsKIAkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8q
IEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBMjQ1ODc5MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2Vu
dC5jcHAgKi87IH07CiAJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01B
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Ey
NDU4N0ExMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0E2NzRCREIwRjlFQkY0RTAw
NkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLzsgfTsKQEAgLTc1OTcsNiArNzU5OCw3IEBACiAJCTdB
MEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kSG9zdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdBMEU3NzFDMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYg
LyogSW5zcGVjdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdB
MjQ1ODc5MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JET01BZ2VudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBMjQ1ODdBMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNw
ZWN0b3JET01BZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JET01BZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTY3NEJEOTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjE3Myw2ICsxMjE3NSw3IEBACiAJCQkJQjg4NUU4RDMx
MUUwNkREMjAwOUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oICovLAog
CQkJCTdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNwZWN0b3JCYWNrZW5kLmNwcCAqLywK
IAkJCQk3QTc0RUNCOTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yQmFja2VuZC5oICovLAor
CQkJCTdBMUYyQjUxMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwICovLAog
CQkJCTFDODFCOTU4MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCAqLywKIAkJ
CQkxQzgxQjk1NzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJMUM4MUI5NTYwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCAq
LywKQEAgLTIzNjMxLDYgKzIzNjM0LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQg
LyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RkEzQjkwQTEyNUNEMTIyMDAz
MDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyOEMzMTMx
MjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzRkNjk3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgorCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBJbnNwZWN0b3JDbGllbnQ6OmRvRGlzcGF0Y2hN
ZXNzYWdlT25Gcm9udGVuZFBhZ2UoUGFnZSogZnJvbnRlbmRQYWdlLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCit7CisgICAgaWYgKCFmcm9udGVuZFBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEZyYW1lKiBmcmFtZSA9IGZyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCk7CisgICAgaWYg
KCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU2NyaXB0Q29udHJvbGxlciog
c2NyaXB0Q29udHJvbGxlciA9IGZyYW1lLT5zY3JpcHQoKTsKKyAgICBpZiAoIXNjcmlwdENvbnRy
b2xsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmluZyBkaXNwYXRjaFRvRnJv
bnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKKyAgICBk
aXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKKyAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0g
Iik7IjsKKworICAgIC8vIERvIG5vdCBjYWxsIGV4ZWN1dGVJbldvcmxkIGhlcmUgc2luY2UgaXQg
d2lsbCBlbmQgdXAgY2FsbGluZyBEb2N1bWVudDo6dXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMo
KS4KKyAgICAvLyBBcyBhIHJlc3VsdCB3ZSBtaWdodCByZS1lbnRlciBDU1NTdHlsZVNlbGVjdG9y
OjpzdHlsZUZvckVsZW1lbnQoKSB3aGljaCBpcyB0ZXJyaWJsZS4KKyAgICBzY3JpcHRDb250cm9s
bGVyLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKGRpc3BhdGNoVG9Gcm9udGVuZCkpOworICAg
IHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q2xpZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAppbmRleCBiYjcx
YjEzLi4wYzc4MjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtMzcsNyAr
MzcsNyBAQCBjbGFzcyBQYWdlOwogCiBjbGFzcyBJbnNwZWN0b3JDbGllbnQgewogcHVibGljOgot
ICAgIHZpcnR1YWwgfkluc3BlY3RvckNsaWVudCgpIHsgIH0KKyAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JDbGllbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95ZWQoKSA9
IDA7CiAKQEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAgIC8vIEhvd2V2ZXIsIHRoZXJlIGFy
ZSBzb21lIGluc3BlY3RvciBjb250cm9sbGVyIHN0YXRlcyB0aGF0IHNob3VsZCBzdXJ2aXZlIG5h
dmlnYXRpb24gKHN1Y2ggYXMgdHJhY2tpbmcgcmVzb3VyY2VzCiAgICAgLy8gb3IgcmVjb3JkaW5n
IHRpbWVsaW5lKS4gRm9sbG93aW5nIGNhbGxiYWNrcyBhbGxvdyBlbWJlZGRlcnMgdG8gdHJhY2sg
dGhlc2Ugc3RhdGVzLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tp
ZShjb25zdCBTdHJpbmcmKSB7IH07CisKKyAgICBib29sIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9u
dGVuZFBhZ2UoUGFnZSogZnJvbnRlbmRQYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2NmL0NoYW5nZUxv
ZyBiL1dlYktpdC9jZi9DaGFuZ2VMb2cKaW5kZXggOTU3ZGNlMS4uOTg4OWZhMiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2NmL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2YvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTAtMTAtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogW2NyYXNoXSB3aGVuIEluc3BlY3RvciBPcGVuIGluIENTU1N0eWxlU2VsZWN0
b3I6OmxvYWRQZW5kaW5nSW1hZ2VzKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NjIyNAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50Q0YuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVz
c2FnZVRvRnJvbnRlbmQpOgorCiAyMDEwLTA2LTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNw
cCBiL1dlYktpdC9jZi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAKaW5k
ZXggZGM1YTE4Ni4uNjJmZGQ0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudENGLmNwcAorKysgYi9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC0xMDIsMjAgKzEwMiw1IEBAIHZvaWQgV2ViSW5z
cGVjdG9yQ2xpZW50OjpyZWxlYXNlRnJvbnRlbmRQYWdlKCkKIAogYm9vbCBXZWJJbnNwZWN0b3JD
bGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRnJh
bWUqIGZyYW1lID0gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENv
bnRyb2xsZXIgPSBmcmFtZS0+c2NyaXB0KCk7Ci0gICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJX
ZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQoIik7Ci0gICAgZGlzcGF0Y2hU
b0Zyb250ZW5kICs9IG1lc3NhZ2U7Ci0gICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7Ci0g
ICAgc2NyaXB0Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwot
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQ
YWdlKG1fZnJvbnRlbmRQYWdlLCBtZXNzYWdlKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggY2QzYmVjZC4uYzgwZjU1ZSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMC0xOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY3Jhc2hdIHdoZW4gSW5zcGVjdG9yIE9wZW4gaW4gQ1NT
U3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0CisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JD
bGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6CisKIDIwMTAtMTAtMTQgIEFudG9uaW8gR29t
ZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24gYW5kIFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmNwcAppbmRleCBjOGI0MmQ3Li4yYzFmZmFiIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0yMjIsMjIgKzIy
Miw3IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50OjpzdG9yZVNldHRpbmcoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJikKIAogYm9vbCBJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9u
dGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRnJhbWUqIGZyYW1lID0gbV9mcm9udGVuZFBh
Z2UtPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBmcmFtZS0+c2NyaXB0
KCk7Ci0gICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNz
YWdlRnJvbUJhY2tlbmQoIik7Ci0gICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9IG1lc3NhZ2U7Ci0g
ICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7Ci0gICAgc2NyaXB0Q29udHJvbGxlci0+ZXhl
Y3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwotICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlKG1fZnJvbnRlbmRQYWdlLCBtZXNz
YWdlKTsKIH0KIAogY29uc3QgY2hhciogSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JGaWxlc1Bh
dGgoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VM
b2cKaW5kZXggYzQ3ZTIyYS4uYmNiYTI1OSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMTgg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW2NyYXNoXSB3
aGVuIEluc3BlY3RvciBPcGVuIGluIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nSW1hZ2Vz
KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjIy
NAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6
CisKIDIwMTAtMTAtMTUgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwCmluZGV4IGI2NjczZTYuLmU1OTY4NzAgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKKysrIGIv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcApAQCAtMzksNyAr
MzksNiBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSAicXdlYmluc3BlY3Rv
ci5oIgogI2luY2x1ZGUgInF3ZWJpbnNwZWN0b3JfcC5oIgpAQCAtMjY2LDIyICsyNjUsNyBAQCBi
b29sIEluc3BlY3RvckNsaWVudFF0OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBQYWdlKiBmcm9udGVuZFBh
Z2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUobV9mcm9udGVuZFdlYlBhZ2UpOwotICAgIGlmICgh
ZnJvbnRlbmRQYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBGcmFtZSogZnJhbWUg
PSBmcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBm
cmFtZS0+c2NyaXB0KCk7Ci0gICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3Iu
ZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQoIik7Ci0gICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9
IG1lc3NhZ2U7Ci0gICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7Ci0gICAgc2NyaXB0Q29u
dHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwotICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlKGZyb250ZW5k
UGFnZSwgbWVzc2FnZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgdmFyaWFudFRvU2V0dGluZyhjb25z
dCBRVmFyaWFudCYgcXZhcmlhbnQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>