<?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>155899</bug_id>
          
          <creation_ts>2016-03-25 13:08:59 -0700</creation_ts>
          <short_desc>Hanging-punctuation: last crashes</short_desc>
          <delta_ts>2016-08-21 20:34:04 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=154977</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1178070</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-25 13:08:59 -0700</bug_when>
    <thetext>Create a user stylesheet and make it the user stylesheet in the latest WebKit nightly.  The stylesheet has one rule:

* {
    hanging-punctuation: last;
}


Open nytimes.com. It crashes on load.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x00007fff8d94178b WebCore::RenderText::hangablePunctuationEndWidth(unsigned int) const + 59
1   com.apple.WebCore             	0x00007fff8d845c1b WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const + 6923
2   com.apple.WebCore             	0x00007fff8d843f6a WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const + 58
3   com.apple.WebCore             	0x00007fff8cc9eeb5 WebCore::RenderBlock::computePreferredLogicalWidths() + 309
4   com.apple.WebCore             	0x00007fff8cc9d4ab WebCore::RenderBox::maxPreferredLogicalWidth() const + 27
5   com.apple.WebCore             	0x00007fff8d88f43c WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild(WebCore::RenderBox&amp;, bool) + 380
6   com.apple.WebCore             	0x00007fff8d88f5c2 WebCore::RenderFlexibleBox::computeNextFlexLine(WTF::Vector&lt;WebCore::RenderBox*, 0ul, WTF::CrashOnOverflow, 16ul&gt;&amp;, WebCore::LayoutUnit&amp;, double&amp;, double&amp;, WebCore::LayoutUnit&amp;, bool&amp;) + 306
7   com.apple.WebCore             	0x00007fff8d88dcc9 WebCore::RenderFlexibleBox::layoutFlexItems(bool, WTF::Vector&lt;WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul&gt;&amp;) + 409
8   com.apple.WebCore             	0x00007fff8cd07d42 WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) + 674
9   com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
10  com.apple.WebCore             	0x00007fff8d85a9b3 WebCore::RenderBlockFlow::layoutLineBoxes(bool, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 3123
11  com.apple.WebCore             	0x00007fff8d84651d WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 941
12  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
13  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
14  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
15  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
16  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
17  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
18  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
19  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
20  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
21  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
22  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
23  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
24  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
25  com.apple.WebCore             	0x00007fff8d847f1a WebCore::RenderBlockFlow::insertFloatingObject(WebCore::RenderBox&amp;) + 346
26  com.apple.WebCore             	0x00007fff8d8472c9 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 521
27  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
28  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
29  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
30  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
31  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
32  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
33  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
34  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
35  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
36  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
37  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
38  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
39  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
40  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
41  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
42  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
43  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
44  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
45  com.apple.WebCore             	0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) + 826
46  com.apple.WebCore             	0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) + 508
47  com.apple.WebCore             	0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917
48  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
49  com.apple.WebCore             	0x00007fff8d838940 WebCore::RenderBlock::layoutPositionedObject(WebCore::RenderBox&amp;, bool, bool) + 400
50  com.apple.WebCore             	0x00007fff8cbe3396 WebCore::RenderBlock::layoutPositionedObjects(bool, bool) + 102
51  com.apple.WebCore             	0x00007fff8d84693d WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 1997
52  com.apple.WebCore             	0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54
53  com.apple.WebCore             	0x00007fff8cbdf621 WebCore::RenderView::layout() + 769
54  com.apple.WebCore             	0x00007fff8cbdccb8 WebCore::FrameView::layout(bool) + 2776
55  com.apple.WebCore             	0x00007fff8d0435f2 WebCore::Document::updateLayoutIfDimensionsOutOfDate(WebCore::Element&amp;, WebCore::DimensionsCheck) + 1058
56  com.apple.WebCore             	0x00007fff8cca5833 WebCore::Element::offsetWidth() + 35
57  com.apple.WebCore             	0x00007fff8d46fa00 WebCore::jsElementOffsetWidth(JSC::ExecState*, long long, JSC::PropertyName) + 48
58  com.apple.JavaScriptCore      	0x00007fff8836769f llint_slow_path_get_by_id + 3583
59  com.apple.JavaScriptCore      	0x00007fff889c31ec llint_entry + 10814
60  com.apple.JavaScriptCore      	0x00007fff889c632d llint_entry + 23423
61  com.apple.JavaScriptCore      	0x00007fff889c05cb vmEntryToJavaScript + 299
62  com.apple.JavaScriptCore      	0x00007fff888a4fbe JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 158
63  com.apple.JavaScriptCore      	0x00007fff881e3934 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 16196
64  com.apple.JavaScriptCore      	0x00007fff885659d5 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 469
65  com.apple.WebCore             	0x00007fff8d99f92e WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;, WebCore::ExceptionDetails*) + 318
66  com.apple.WebCore             	0x00007fff8d99fb80 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;, WebCore::ExceptionDetails*) + 48
67  com.apple.WebCore             	0x00007fff8cc21a3c WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&amp;) + 556
68  com.apple.WebCore             	0x00007fff8cc20afa WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport) + 1066
69  com.apple.WebCore             	0x00007fff8cc1fd02 WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&amp;) + 338
70  com.apple.WebCore             	0x00007fff8cc1fb40 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt;, WTF::TextPosition const&amp;) + 48
71  com.apple.WebCore             	0x00007fff8cc1f9ac WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 316
72  com.apple.WebCore             	0x00007fff8d2392fd WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;) + 669
73  com.apple.WebCore             	0x00007fff8cbb48e3 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 115
74  com.apple.WebCore             	0x00007fff8d239630 WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl&gt;&amp;&amp;) + 480
75  com.apple.WebCore             	0x00007fff8d01efe5 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter&amp;, char const*, unsigned long) + 117
76  com.apple.WebCore             	0x00007fff8cba8945 WebCore::DocumentLoader::commitData(char const*, unsigned long) + 1045
77  com.apple.WebKit              	0x00007fff8dfb9f9a WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 50
78  com.apple.WebCore             	0x00007fff8cc1a221 WebCore::DocumentLoader::commitLoad(char const*, int) + 145
79  com.apple.WebCore             	0x00007fff8cc19ced WebCore::CachedRawResource::notifyClientsDataWasReceived(char const*, unsigned int) + 173
80  com.apple.WebCore             	0x00007fff8ceea151 WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer&amp;) + 145
81  com.apple.WebCore             	0x00007fff8cc1977a WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::PassRefPtr&lt;WebCore::SharedBuffer&gt;, long long, WebCore::DataPayloadType) + 218
82  com.apple.WebCore             	0x00007fff8cc3861c WebCore::SubresourceLoader::didReceiveBuffer(WTF::PassRefPtr&lt;WebCore::SharedBuffer&gt;, long long, WebCore::DataPayloadType) + 44
83  com.apple.WebKit              	0x00007fff8dfbf48e WebKit::WebResourceLoader::didReceiveResource(WebKit::ShareableResource::Handle const&amp;, double) + 172
84  com.apple.WebKit              	0x00007fff8e1d32a5 void IPC::handleMessage&lt;Messages::WebResourceLoader::DidReceiveResource, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebKit::ShareableResource::Handle const&amp;, double)&gt;(IPC::MessageDecoder&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebKit::ShareableResource::Handle const&amp;, double)) + 97
85  com.apple.WebKit              	0x00007fff8e03524b IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt;) + 127
86  com.apple.WebKit              	0x00007fff8e0380c0 IPC::Connection::dispatchOneMessage() + 126
87  com.apple.JavaScriptCore      	0x00007fff88b748a5 WTF::RunLoop::performWork() + 437
88  com.apple.JavaScriptCore      	0x00007fff88b74c52 WTF::RunLoop::performWork(void*) + 34
89  com.apple.CoreFoundation      	0x00007fff85eceb41 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
90  com.apple.CoreFoundation      	0x00007fff85eaf68d __CFRunLoopDoSources0 + 557
91  com.apple.CoreFoundation      	0x00007fff85eaebef __CFRunLoopRun + 927
92  com.apple.CoreFoundation      	0x00007fff85eae5e8 CFRunLoopRunSpecific + 296
93  com.apple.HIToolbox           	0x00007fff85482bf2 RunCurrentEventLoopInMode + 240
94  com.apple.HIToolbox           	0x00007fff85482a26 ReceiveNextEventCommon + 432
95  com.apple.HIToolbox           	0x00007fff8548285b _BlockUntilNextEventMatchingListInModeWithFilter + 71
96  com.apple.AppKit              	0x00007fff83a7635e _DPSNextEvent + 1055
97  com.apple.AppKit              	0x00007fff841a0834 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 766
98  com.apple.AppKit              	0x00007fff83a6ad6f -[NSApplication run] + 926
99  com.apple.AppKit              	0x00007fff83a36bb9 NSApplicationMain + 1179
100 libxpc.dylib                  	0x000000010cf3d9c3 _xpc_objc_main + 795
101 libxpc.dylib                  	0x000000010cf3c3a6 xpc_main + 494
102 com.apple.WebKit.WebContent   	0x000000010cf0180f 0x10cf00000 + 6159
103 libdyld.dylib                 	0x00007fff99f6d499 start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178071</commentid>
    <comment_count>1</comment_count>
      <attachid>274932</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-25 13:15:00 -0700</bug_when>
    <thetext>Created attachment 274932
user stylesheet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178425</commentid>
    <comment_count>2</comment_count>
      <attachid>275025</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-03-28 09:36:19 -0700</bug_when>
    <thetext>Created attachment 275025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178952</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-29 20:55:37 -0700</bug_when>
    <thetext>cq+?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185462</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-04-20 11:01:57 -0700</bug_when>
    <thetext>Fixed in r199777. Thought I had landed this, but I guess I never did!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188064</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-04-27 18:27:08 -0700</bug_when>
    <thetext>rdar://problem/25342571</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>274932</attachid>
            <date>2016-03-25 13:15:00 -0700</date>
            <delta_ts>2016-03-28 09:36:19 -0700</delta_ts>
            <desc>user stylesheet</desc>
            <filename>rendering.css</filename>
            <type>text/css</type>
            <size>34</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">KiB7CgloYW5naW5nLXB1bmN0dWF0aW9uOiBmaXJzdDsKfQ==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275025</attachid>
            <date>2016-03-28 09:36:19 -0700</date>
            <delta_ts>2016-03-28 09:52:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5579</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODc0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE2LTAzLTI4ICBEYXZlIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIEhhbmdhYmxlIHB1bmN0dWF0aW9uIG1l
YXN1cmVtZW50IHVzaW5nIHRoZSB3cm9uZyBpbmRpY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1ODk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IHRlc3RzIGluIGZhc3QvdGV4dC4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlSW5saW5lUHJlZmVycmVkTG9naWNhbFdpZHRocyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGV4dDo6aGFuZ2FibGVQdW5jdHVhdGlvblN0YXJ0V2lkdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dDo6aGFuZ2FibGVQdW5jdHVhdGlvbkVuZFdpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHQ6OmlzSGFuZ2FibGVTdG9wT3JDb21tYSk6CisKIDIwMTYtMDMtMjgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNrIGNhY2hlIHNw
ZWN1bGF0aXZlIHZhbGlkYXRpb24gcmVxdWVzdHMgZG8gbm90IGhhdmUgdGhlICdSZWZlcmVyJyBI
VFRQIGhlYWRlciBzZXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwCShyZXZpc2lvbiAxOTg2MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDExNCw3ICs0MTE0LDYg
QEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVQcmVmZQogICAgICAgICAgICAg
ZmxvYXQgY2hpbGRNYXggPSAwOwogCiAgICAgICAgICAgICBpZiAoIWNoaWxkLT5pc1RleHQoKSkg
ewotICAgICAgICAgICAgICAgIGxhc3RUZXh0ID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICBp
ZiAoY2hpbGQtPmlzTGluZUJyZWFrT3Bwb3J0dW5pdHkoKSkgewogICAgICAgICAgICAgICAgICAg
ICBtaW5Mb2dpY2FsV2lkdGggPSBwcmVmZXJyZWRXaWR0aChtaW5Mb2dpY2FsV2lkdGgsIGlubGlu
ZU1pbik7CiAgICAgICAgICAgICAgICAgICAgIGlubGluZU1pbiA9IDA7CkBAIC00MTM0LDYgKzQx
MzMsOCBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUlubGluZVByZWZlCiAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5zZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoZmFsc2Up
OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIElubGlu
ZSByZXBsYWNlZCBlbHRzIGFkZCBpbiB0aGVpciBtYXJnaW5zIHRvIHRoZWlyIG1pbi9tYXggdmFs
dWVzLgorICAgICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLT5pc0Zsb2F0aW5nKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBsYXN0VGV4dCA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAg
ICAgIExheW91dFVuaXQgbWFyZ2lucyA9IDA7CiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBz
dGFydE1hcmdpbiA9IGNoaWxkU3R5bGUubWFyZ2luU3RhcnQoKTsKICAgICAgICAgICAgICAgICAg
ICAgTGVuZ3RoIGVuZE1hcmdpbiA9IGNoaWxkU3R5bGUubWFyZ2luRW5kKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiAxOTg2ODMpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUxNCw5ICs1MTQsMTAgQEAgaW5saW5lIGJvb2wgaXNIYW5nYWJsZVB1bmN0dWF0aW9uQXRMaW5l
RQogCiBmbG9hdCBSZW5kZXJUZXh0OjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aCh1bnNp
Z25lZCBpbmRleCkgY29uc3QKIHsKLSAgICBpZiAoIXRleHRMZW5ndGgoKSkKKyAgICB1bnNpZ25l
ZCBsZW4gPSB0ZXh0TGVuZ3RoKCk7CisgICAgaWYgKCFsZW4gfHwgaW5kZXggPj0gbGVuKQogICAg
ICAgICByZXR1cm4gMDsKLSAgICAKKwogICAgIEFTU0VSVChtX3RleHQpOwogICAgIFN0cmluZ0lt
cGwmIHRleHQgPSAqbV90ZXh0LmltcGwoKTsKICAgICAKQEAgLTUyNiwxMiArNTI3LDEzIEBAIGZs
b2F0IFJlbmRlclRleHQ6OmhhbmdhYmxlUHVuY3R1YXRpb25TdGEKICAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUgPSB0aGlzLT5zdHlsZSgpOwogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
ID0gc3R5bGUuZm9udENhc2NhZGUoKTsKICAgICAgICAgCi0gICAgcmV0dXJuIHdpZHRoRnJvbUNh
Y2hlKGZvbnQsIDAsIDEsIDAsIDAsIDAsIHN0eWxlKTsKKyAgICByZXR1cm4gd2lkdGhGcm9tQ2Fj
aGUoZm9udCwgaW5kZXgsIDEsIDAsIDAsIDAsIHN0eWxlKTsKIH0KIAogZmxvYXQgUmVuZGVyVGV4
dDo6aGFuZ2FibGVQdW5jdHVhdGlvbkVuZFdpZHRoKHVuc2lnbmVkIGluZGV4KSBjb25zdAogewot
ICAgIGlmICghdGV4dExlbmd0aCgpKQorICAgIHVuc2lnbmVkIGxlbiA9IHRleHRMZW5ndGgoKTsK
KyAgICBpZiAoIWxlbiB8fCBpbmRleCA+PSBsZW4pCiAgICAgICAgIHJldHVybiAwOwogICAgIAog
ICAgIEFTU0VSVChtX3RleHQpOwpAQCAtNTQzLDcgKzU0NSw3IEBAIGZsb2F0IFJlbmRlclRleHQ6
OmhhbmdhYmxlUHVuY3R1YXRpb25FbmQKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSB0
aGlzLT5zdHlsZSgpOwogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gc3R5bGUuZm9udENh
c2NhZGUoKTsKICAgICAKLSAgICByZXR1cm4gd2lkdGhGcm9tQ2FjaGUoZm9udCwgMCwgMSwgMCwg
MCwgMCwgc3R5bGUpOworICAgIHJldHVybiB3aWR0aEZyb21DYWNoZShmb250LCBpbmRleCwgMSwg
MCwgMCwgMCwgc3R5bGUpOwogfQogCiBib29sIFJlbmRlclRleHQ6OmlzSGFuZ2FibGVTdG9wT3JD
b21tYShVQ2hhciBjKSBjb25zdApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NzQyKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMDMt
MjggIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZ2FibGUgcHVu
Y3R1YXRpb24gbWVhc3VyZW1lbnQgdXNpbmcgdGhlIHdyb25nIGluZGljZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU4OTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGV4dC9oYW5naW5n
LXB1bmN0dWF0aW9uLXZhcmlhYmxlLWZvbnQtc2l6ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3RleHQvaGFuZ2luZy1wdW5jdHVhdGlvbi12YXJpYWJsZS1mb250LXNpemUu
aHRtbDogQWRkZWQuCisKIDIwMTYtMDMtMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCByZWJhc2VsaW5pbmc7IERpZmZlcmVudCB0cmFjayBJ
RHMgYXJlIHNlbGVjdGVkIGluIEVsIENhcGl0YW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaGFuZ2luZy1wdW5jdHVhdGlvbi12YXJpYWJsZS1mb250LXNpemUtZXhwZWN0ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaGFuZ2luZy1wdW5jdHVhdGlvbi12
YXJpYWJsZS1mb250LXNpemUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvdGV4dC9oYW5naW5nLXB1bmN0dWF0aW9uLXZhcmlhYmxlLWZvbnQtc2l6ZS1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzxoZWFkPgorPHN0eWxl
PgorICAgIGJvZHkgeyBmb250LWZhbWlseTogJ0FoZW0nOyBjb2xvcjpncmVlbiB9CisgICAgLmhh
bmcgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyBtYXJnaW46MWVtOyBib3JkZXI6MXB4IHNvbGlkIGJs
YWNrOyBmbG9hdDpsZWZ0IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBjbGFz
cz0iaGFuZyIgc3R5bGU9ImZvbnQtc2l6ZTozMnB4Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjE2
cHg7IG1hcmdpbi1sZWZ0Oi0xZW0iPig8L3NwYW4+MTIzNDwvZGl2PgorCis8ZGl2IGNsYXNzPSJo
YW5nIiBzdHlsZT0iZm9udC1zaXplOjMycHgiPjEyMzQ8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE2
cHg7IG1hcmdpbi1yaWdodDotMWVtIj4pPC9zcGFuPjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2hhbmdpbmctcHVuY3R1YXRpb24tdmFyaWFibGUtZm9udC1zaXplLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2hhbmdpbmctcHVuY3R1YXRpb24tdmFy
aWFibGUtZm9udC1zaXplLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaGFuZ2luZy1wdW5jdHVhdGlvbi12YXJpYWJsZS1mb250LXNpemUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACis8aGVhZD4KKzxzdHlsZT4KKyAgICBib2R5IHsgZm9udC1m
YW1pbHk6ICdBaGVtJzsgY29sb3I6Z3JlZW4gfQorICAgIC5oYW5nIHsgaGFuZ2luZy1wdW5jdHVh
dGlvbjogZmlyc3QgbGFzdDsgbWFyZ2luOjFlbTsgYm9yZGVyOjFweCBzb2xpZCBibGFjazsgZmxv
YXQ6bGVmdCB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgY2xhc3M9Imhhbmci
IHN0eWxlPSJmb250LXNpemU6MzJweCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij4oPC9z
cGFuPjEyMzQ8L2Rpdj4KKworPGRpdiBjbGFzcz0iaGFuZyIgc3R5bGU9ImZvbnQtc2l6ZTozMnB4
Ij4xMjM0PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij4pPC9zcGFuPjwvZGl2Pgo=
</data>
<flag name="review"
          id="299423"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>