<?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>119105</bug_id>
          
          <creation_ts>2013-07-25 13:53:58 -0700</creation_ts>
          <short_desc>REGRESSION: Crash when opening a message on Gmail</short_desc>
          <delta_ts>2013-07-30 15:42:31 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>911752</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-25 13:53:58 -0700</bug_when>
    <thetext>Reproduction steps:
1. Download nightly build at r153334
2. Go to mail.google.com and log in
3. Open one of messages

  Thread 0x179e48   DispatchQueue 1          priority 31        
  600 start + 1 (libdyld.dylib) [0x7fff8aa727e1]
    600 main + 337 (WebProcess) [0x10c701e23]
      600 int WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebContentProcessMainDelegate&gt;(int, char**) + 579 (WebKit2) [0x10c7ee173]
        600 WebCore::RunLoop::run() + 82 (WebCore) [0x10dae5712]
          600 -[NSApplication run] + 517 (AppKit) [0x7fff8abc01a3]
            600 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 (AppKit) [0x7fff8abc8df2]
              600 _DPSNextEvent + 685 (AppKit) [0x7fff8abc9533]
                600 BlockUntilNextEventMatchingListInMode + 62 (HIToolbox) [0x7fff869f3ae3]
                  600 ReceiveNextEventCommon + 356 (HIToolbox) [0x7fff869f3c52]
                    600 RunCurrentEventLoopInMode + 209 (HIToolbox) [0x7fff869f3eb4]
                      600 CFRunLoopRunSpecific + 290 (CoreFoundation) [0x7fff8bd2a0e2]
                        600 __CFRunLoopRun + 789 (CoreFoundation) [0x7fff8bd2a7f5]
                          600 __CFRunLoopDoSources0 + 245 (CoreFoundation) [0x7fff8bd07455]
                            600 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 (CoreFoundation) [0x7fff8bd07b31]
                              600 MultiplexerSource::perform() + 221 (CFNetwork) [0x7fff8341118b]
                                600 RunloopBlockContext::perform() + 124 (CFNetwork) [0x7fff834112b4]
                                  600 CFArrayApplyFunction + 68 (CoreFoundation) [0x7fff8bd26154]
                                    600 __block_global_1 + 28 (CFNetwork) [0x7fff834b0f3a]
                                      600 ___withDelegateAsync_block_invoke_0 + 90 (CFNetwork) [0x7fff8342054a]
                                        600 ___delegate_didFinishLoading_block_invoke_0 + 40 (CFNetwork) [0x7fff8342e091]
                                          600 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 63 (Foundation) [0x7fff863b6bc8]
                                            600 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 227 (Foundation) [0x7fff863b6ccc]
                                              600 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 28 (Foundation) [0x7fff863b6d88]
                                                600 WebCore::SubresourceLoader::didFinishLoading(double) + 133 (WebCore) [0x10db925b5]
                                                  600 WebCore::CachedRawResource::finishLoading(WebCore::ResourceBuffer*) + 194 (WebCore) [0x10d0b71b2]
                                                    600 WebCore::CachedResource::checkNotify() + 76 (WebCore) [0x10d0ba21c]
                                                      600 WebCore::XMLHttpRequest::didFinishLoading(unsigned long, double) + 358 (WebCore) [0x10dd26906]
                                                        600 WebCore::XMLHttpRequest::callReadyStateChangeListener() + 252 (WebCore) [0x10dd229bc]
                                                          600 WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WebCore::ProgressEventAction) + 56 (WebCore) [0x10dd27fb8]
                                                            600 WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;) + 335 (WebCore) [0x10dd27f3f]
                                                              600 WebCore::EventTarget::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;) + 88 (WebCore) [0x10d310738]
                                                                600 WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 390 (WebCore) [0x10d3108d6]
                                                                  600 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow&gt;&amp;) + 364 (WebCore) [0x10d310bbc]
                                                                    600 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 908 (WebCore) [0x10d6456ac]
                                                                      600 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 69 (JavaScriptCore) [0x10cbcbd45]
                                                                        600 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 715 (JavaScriptCore) [0x10cce544b]
                                                                          600 JSC::boundFunctionCall(JSC::ExecState*) + 558 (JavaScriptCore) [0x10cd3626e]
                                                                            600 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 69 (JavaScriptCore) [0x10cbcbd45]
                                                                              600 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 650 (JavaScriptCore) [0x10cce540a]
                                                                                600 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) + 49 (JavaScriptCore) [0x10ccfffe1]
                                                                                  600 ??? [0x2d5c4b201045]
                                                                                    600 JSC::boundFunctionCall(JSC::ExecState*) + 558 (JavaScriptCore) [0x10cd3626e]
                                                                                      600 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 69 (JavaScriptCore) [0x10cbcbd45]
                                                                                        600 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 650 (JavaScriptCore) [0x10cce540a]
                                                                                          600 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) + 49 (JavaScriptCore) [0x10ccfffe1]
                                                                                            600 ??? [0x2d5c4b201045]
                                                                                              600 JSC::boundFunctionCall(JSC::ExecState*) + 558 (JavaScriptCore) [0x10cd3626e]
                                                                                                600 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 69 (JavaScriptCore) [0x10cbcbd45]
                                                                                                  600 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 650 (JavaScriptCore) [0x10cce540a]
                                                                                                    600 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) + 49 (JavaScriptCore) [0x10ccfffe1]
                                                                                                      600 ??? [0x2d5c00000001]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911828</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-25 17:38:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/14554999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912072</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-26 13:38:21 -0700</bug_when>
    <thetext>*** Bug 119112 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912078</commentid>
    <comment_count>3</comment_count>
      <attachid>207550</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-26 13:42:17 -0700</bug_when>
    <thetext>Created attachment 207550
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912080</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-26 13:45:14 -0700</bug_when>
    <thetext>Attachment 207550 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/js/dfg-get-by-id-unset-then-proto-less-warmup.html&apos;, u&apos;LayoutTests/fast/js/dfg-get-by-id-unset-then-proto-more-warmup.html&apos;, u&apos;LayoutTests/fast/js/dfg-get-by-id-unset-then-proto.html&apos;, u&apos;LayoutTests/fast/js/jsc-test-list&apos;, u&apos;LayoutTests/fast/js/script-tests/dfg-get-by-id-unset-then-proto-less-warmup.js&apos;, u&apos;LayoutTests/fast/js/script-tests/dfg-get-by-id-unset-then-proto-more-warmup.js&apos;, u&apos;LayoutTests/fast/js/script-tests/dfg-get-by-id-unset-then-proto.js&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/bytecode/CallLinkStatus.cpp&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlock.cpp&apos;, u&apos;Source/JavaScriptCore/dfg/DFGRepatch.cpp&apos;]&quot; exit_code: 1
LayoutTests/ChangeLog:11:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912082</commentid>
    <comment_count>5</comment_count>
      <attachid>207550</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-07-26 13:47:51 -0700</bug_when>
    <thetext>Comment on attachment 207550
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912087</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-26 13:50:31 -0700</bug_when>
    <thetext>For the record, the following is the latest stack trace I&apos;m seeing (before applying this patch):

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001010868d3 JSC::DFG::dfgBuildGetByIDList(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&amp;, JSC::PropertySlot const&amp;, JSC::StructureStubInfo&amp;) + 3811
1   com.apple.JavaScriptCore      	0x0000000101075dc6 operationGetByIdBuildListWithReturnAddress + 294
2   ???                           	0x00005b1d083a8dca 0 + 100180250234314
3   com.apple.JavaScriptCore      	0x000000010112fe81 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) + 49
4   com.apple.JavaScriptCore      	0x00000001011152aa JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 650
5   com.apple.JavaScriptCore      	0x0000000100ffbbd5 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 69
6   com.apple.WebCore             	0x0000000101a7666c WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 908
7   com.apple.WebCore             	0x0000000101741afc WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow&gt;&amp;) + 364
8   com.apple.WebCore             	0x0000000101741816 WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 390
9   com.apple.WebCore             	0x0000000101d3bf13 WebCore::Node::handleLocalEvents(WebCore::Event*) + 67
10  com.apple.WebCore             	0x0000000101729ef7 WebCore::EventContext::handleLocalEvents(WebCore::Event*) const + 87
11  com.apple.WebCore             	0x000000010172ae18 WebCore::EventDispatcher::dispatchEventAtBubbling(WebCore::WindowEventContext&amp;) + 56
12  com.apple.WebCore             	0x000000010172ad07 WebCore::EventDispatcher::dispatch() + 759
13  com.apple.WebCore             	0x0000000101d2915f WebCore::MouseEventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const + 159
14  com.apple.WebCore             	0x000000010172a10c WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr&lt;WebCore::EventDispatchMediator&gt;) + 124
15  com.apple.WebCore             	0x0000000101d3c615 WebCore::Node::dispatchMouseEvent(WebCore::PlatformMouseEvent const&amp;, WTF::AtomicString const&amp;, int, WebCore::Node*) + 133
16  com.apple.WebCore             	0x000000010173189b WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&amp;, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&amp;, bool) + 107
17  com.apple.WebCore             	0x000000010173333e WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&amp;) + 1198
18  com.apple.WebKit2             	0x0000000100c5f9cc WebKit::handleMouseEvent(WebKit::WebMouseEvent const&amp;, WebKit::WebPage*, bool) + 419
19  com.apple.WebKit2             	0x0000000100c5f7ed WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&amp;) + 221
20  com.apple.WebKit2             	0x0000000100c72cc8 void CoreIPC::handleMessage&lt;Messages::WebPage::MouseEvent, WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&amp;)&gt;(CoreIPC::MessageDecoder&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&amp;)) + 83
21  com.apple.WebKit2             	0x0000000100ba581f CoreIPC::MessageReceiverMap::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 137
22  com.apple.WebKit2             	0x0000000100cadf72 WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 34
23  com.apple.WebKit2             	0x0000000100b7958d CoreIPC::Connection::dispatchMessage(WTF::PassOwnPtr&lt;CoreIPC::MessageDecoder&gt;) + 105
24  com.apple.WebKit2             	0x0000000100b7b0c8 CoreIPC::Connection::dispatchOneMessage() + 106
25  com.apple.WebCore             	0x0000000101f15a91 WebCore::RunLoop::performWork() + 129
26  com.apple.WebCore             	0x0000000101f16052 WebCore::RunLoop::performWork(void*) + 34
27  com.apple.CoreFoundation      	0x00007fff8bd07b31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
28  com.apple.CoreFoundation      	0x00007fff8bd07455 __CFRunLoopDoSources0 + 245
29  com.apple.CoreFoundation      	0x00007fff8bd2a7f5 __CFRunLoopRun + 789
30  com.apple.CoreFoundation      	0x00007fff8bd2a0e2 CFRunLoopRunSpecific + 290
31  com.apple.HIToolbox           	0x00007fff869f3eb4 RunCurrentEventLoopInMode + 209
32  com.apple.HIToolbox           	0x00007fff869f3c52 ReceiveNextEventCommon + 356
33  com.apple.HIToolbox           	0x00007fff869f3ae3 BlockUntilNextEventMatchingListInMode + 62
34  com.apple.AppKit              	0x00007fff8abc9533 _DPSNextEvent + 685
35  com.apple.AppKit              	0x00007fff8abc8df2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
36  com.apple.AppKit              	0x00007fff8abc01a3 -[NSApplication run] + 517
37  com.apple.WebCore             	0x0000000101f166d2 WebCore::RunLoop::run() + 82
38  com.apple.WebKit2             	0x0000000100c1e167 int WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebContentProcessMainDelegate&gt;(int, char**) + 579
39  com.apple.WebProcess          	0x0000000100b2ee23 main + 337
40  libdyld.dylib                 	0x00007fff8aa727e1 start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912095</commentid>
    <comment_count>7</comment_count>
      <attachid>207550</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-07-26 14:05:27 -0700</bug_when>
    <thetext>Comment on attachment 207550
the patch

Looks good to me too, fwiw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912099</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-26 14:12:59 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/153381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913062</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-30 15:42:31 -0700</bug_when>
    <thetext>Landed missing test results in &lt;http://trac.webkit.org/r153501&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207550</attachid>
            <date>2013-07-26 13:42:17 -0700</date>
            <delta_ts>2013-07-26 14:05:27 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15047</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzMzc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDEzLTA3LTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTjogQ3Jhc2ggd2hlbiBvcGVuaW5nIGEgbWVzc2FnZSBvbiBHbWFpbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTA1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICAtIEdldEJ5
SWQgcGF0Y2hpbmcgaW4gdGhlIERGRyBuZWVkcyB0byBiZSBtb3JlIGRpc2NpcGxpbmVkIGFib3V0
IGhvdyBpdCBkZXJpdmVzIHRoZQorICAgICAgICAgIHNsb3cgcGF0aC4KKyAgICAgICAgCisgICAg
ICAgIC0gRml4IHNvbWUgZHVtcGluZyBjb2RlIHRocmVhZCBzYWZldHkgaXNzdWVzLgorCisgICAg
ICAgICogYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlu
a1N0YXR1czo6ZHVtcCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdSZXBh
dGNoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpnZXRQb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3Qp
OgorICAgICAgICAoSlNDOjpERkc6OnRyeUJ1aWxkR2V0QnlJRExpc3QpOgorCiAyMDEzLTA3LTI2
ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CiAKICAgICAgICAgW21p
cHNdIEZpeCBMTElOVCBidWlsZCBmb3IgbWlwcyBiYWNrZW5kCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE1
MzM3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw4ICsxNDMsMTEgQEAgdm9pZCBDYWxsTGlua1N0YXR1
czo6ZHVtcChQcmludFN0cmVhbSYgbwogICAgIGlmIChtX2NhbGxUYXJnZXQpCiAgICAgICAgIG91
dC5wcmludChjb21tYSwgIktub3duIHRhcmdldDogIiwgbV9jYWxsVGFyZ2V0KTsKICAgICAKLSAg
ICBpZiAobV9leGVjdXRhYmxlKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsICJFeGVjdXRhYmxl
L0NhbGxIYXNoOiAiLCBSYXdQb2ludGVyKG1fZXhlY3V0YWJsZSksICIvIiwgbV9leGVjdXRhYmxl
LT5oYXNoRm9yKENvZGVGb3JDYWxsKSk7CisgICAgaWYgKG1fZXhlY3V0YWJsZSkgeworICAgICAg
ICBvdXQucHJpbnQoY29tbWEsICJFeGVjdXRhYmxlL0NhbGxIYXNoOiAiLCBSYXdQb2ludGVyKG1f
ZXhlY3V0YWJsZSkpOworICAgICAgICBpZiAoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSkKKyAgICAg
ICAgICAgIG91dC5wcmludCgiLyIsIG1fZXhlY3V0YWJsZS0+aGFzaEZvcihDb2RlRm9yQ2FsbCkp
OworICAgIH0KICAgICAKICAgICBpZiAobV9zdHJ1Y3R1cmUpCiAgICAgICAgIG91dC5wcmludChj
b21tYSwgIlN0cnVjdHVyZTogIiwgUmF3UG9pbnRlcihtX3N0cnVjdHVyZSkpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE1
MzM3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00ODcsNyArNDg3LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRl
Y29kZShQcmludFN0cmVhbQogICAgIH0KICAgICBpZiAobmVlZHNGdWxsU2NvcGVDaGFpbigpICYm
IGNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQogICAgICAgICBvdXQucHJpbnRmKCI7IGFjdGl2
YXRpb24gaW4gciVkIiwgYWN0aXZhdGlvblJlZ2lzdGVyKCkpOwotICAgIG91dC5wcmludCgiXG5c
blNvdXJjZTogIiwgc291cmNlQ29kZU9uT25lTGluZSgpLCAiXG5cbiIpOwogCiAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICBjb25zdCBJ
bnN0cnVjdGlvbiogZW5kID0gaW5zdHJ1Y3Rpb25zKCkuZW5kKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE1MzM3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
MCw4ICszNzAsMTEgQEAgdm9pZCBkZmdSZXBhdGNoR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIAog
CiBzdGF0aWMgYm9vbCBnZXRQb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3QoCiAgICAgVk0qIHZtLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLAotICAgIFBv
bHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdComIHBvbHltb3JwaGljU3RydWN0dXJlTGlzdCwg
aW50JiBsaXN0SW5kZXgpCisgICAgUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0KiYgcG9s
eW1vcnBoaWNTdHJ1Y3R1cmVMaXN0LCBpbnQmIGxpc3RJbmRleCwKKyAgICBDb2RlTG9jYXRpb25M
YWJlbCYgc2xvd0Nhc2UpCiB7CisgICAgc2xvd0Nhc2UgPSBzdHViSW5mby5jYWxsUmV0dXJuTG9j
YXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5wYXRjaC5kZmcuZGVsdGFDYWxsVG9TbG93Q2Fz
ZSk7CisgICAgCiAgICAgaWYgKHN0dWJJbmZvLmFjY2Vzc1R5cGUgPT0gYWNjZXNzX3Vuc2V0KSB7
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFzdHViSW5mby5zdHViUm91dGluZSk7CiAgICAgICAg
IHBvbHltb3JwaGljU3RydWN0dXJlTGlzdCA9IG5ldyBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVy
ZUxpc3QoKTsKQEAgLTM3OSwxMSArMzgyLDEyIEBAIHN0YXRpYyBib29sIGdldFBvbHltb3JwaGlj
U3RydWN0dXJlTGlzdCgKICAgICAgICAgbGlzdEluZGV4ID0gMDsKICAgICB9IGVsc2UgaWYgKHN0
dWJJbmZvLmFjY2Vzc1R5cGUgPT0gYWNjZXNzX2dldF9ieV9pZF9zZWxmKSB7CiAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKCFzdHViSW5mby5zdHViUm91dGluZSk7Ci0gICAgICAgIHBvbHltb3JwaGlj
U3RydWN0dXJlTGlzdCA9IG5ldyBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QoKnZtLCBj
b2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBKSVRTdHViUm91dGluZTo6Y3JlYXRlU2VsZk1h
bmFnZWRSb3V0aW5lKHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KHN0
dWJJbmZvLnBhdGNoLmRmZy5kZWx0YUNhbGxUb1Nsb3dDYXNlKSksIHN0dWJJbmZvLnUuZ2V0QnlJ
ZFNlbGYuYmFzZU9iamVjdFN0cnVjdHVyZS5nZXQoKSwgdHJ1ZSk7CisgICAgICAgIHBvbHltb3Jw
aGljU3RydWN0dXJlTGlzdCA9IG5ldyBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QoKnZt
LCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBKSVRTdHViUm91dGluZTo6Y3JlYXRlU2Vs
Zk1hbmFnZWRSb3V0aW5lKHNsb3dDYXNlKSwgc3R1YkluZm8udS5nZXRCeUlkU2VsZi5iYXNlT2Jq
ZWN0U3RydWN0dXJlLmdldCgpLCB0cnVlKTsKICAgICAgICAgc3R1YkluZm8uaW5pdEdldEJ5SWRT
ZWxmTGlzdChwb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3QsIDEsIHRydWUpOwogICAgICAgICBsaXN0
SW5kZXggPSAxOwogICAgIH0gZWxzZSBpZiAoc3R1YkluZm8uYWNjZXNzVHlwZSA9PSBhY2Nlc3Nf
Z2V0X2J5X2lkX2NoYWluKSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCEhc3R1YkluZm8uc3R1
YlJvdXRpbmUpOworICAgICAgICBzbG93Q2FzZSA9IENvZGVMb2NhdGlvbkxhYmVsKHN0dWJJbmZv
LnN0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKTsKICAgICAgICAgcG9seW1vcnBoaWNTdHJ1Y3R1
cmVMaXN0ID0gbmV3IFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCgqdm0sIGNvZGVCbG9j
ay0+b3duZXJFeGVjdXRhYmxlKCksIHN0dWJJbmZvLnN0dWJSb3V0aW5lLCBzdHViSW5mby51Lmdl
dEJ5SWRDaGFpbi5iYXNlT2JqZWN0U3RydWN0dXJlLmdldCgpLCBzdHViSW5mby51LmdldEJ5SWRD
aGFpbi5jaGFpbi5nZXQoKSwgdHJ1ZSk7CiAgICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lLmNs
ZWFyKCk7CiAgICAgICAgIHN0dWJJbmZvLmluaXRHZXRCeUlkU2VsZkxpc3QocG9seW1vcnBoaWNT
dHJ1Y3R1cmVMaXN0LCAxLCBmYWxzZSk7CkBAIC0zOTIsNiArMzk2LDcgQEAgc3RhdGljIGJvb2wg
Z2V0UG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0KAogICAgICAgICBSRUxFQVNFX0FTU0VSVChzdHVi
SW5mby5hY2Nlc3NUeXBlID09IGFjY2Vzc19nZXRfYnlfaWRfc2VsZl9saXN0KTsKICAgICAgICAg
cG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0ID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxpc3Quc3Ry
dWN0dXJlTGlzdDsKICAgICAgICAgbGlzdEluZGV4ID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxp
c3QubGlzdFNpemU7CisgICAgICAgIHNsb3dDYXNlID0gQ29kZUxvY2F0aW9uTGFiZWwocG9seW1v
cnBoaWNTdHJ1Y3R1cmVMaXN0LT5saXN0W2xpc3RJbmRleCAtIDFdLnN0dWJSb3V0aW5lLT5jb2Rl
KCkuY29kZSgpKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGxpc3RJbmRleCA9PSBQT0xZTU9SUEhJ
Q19MSVNUX0NBQ0hFX1NJWkUpCkBAIC00NDEsOCArNDQ2LDkgQEAgc3RhdGljIGJvb2wgdHJ5QnVp
bGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgIAogICAgICAgICBQb2x5bW9ycGhpY0FjY2Vzc1N0
cnVjdHVyZUxpc3QqIHBvbHltb3JwaGljU3RydWN0dXJlTGlzdDsKICAgICAgICAgaW50IGxpc3RJ
bmRleDsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xvd0Nhc2U7CiAKLSAgICAgICAgaWYg
KCFnZXRQb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3Qodm0sIGNvZGVCbG9jaywgc3R1YkluZm8sIHBv
bHltb3JwaGljU3RydWN0dXJlTGlzdCwgbGlzdEluZGV4KSkKKyAgICAgICAgaWYgKCFnZXRQb2x5
bW9ycGhpY1N0cnVjdHVyZUxpc3Qodm0sIGNvZGVCbG9jaywgc3R1YkluZm8sIHBvbHltb3JwaGlj
U3RydWN0dXJlTGlzdCwgbGlzdEluZGV4LCBzbG93Q2FzZSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIAogICAgICAgICBzdHViSW5mby51LmdldEJ5SWRTZWxmTGlzdC5saXN0
U2l6ZSsrOwpAQCAtNTQ1LDE0ICs1NTEsNyBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0CiAKICAgICAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZzdHVi
Sml0LCBjb2RlQmxvY2spOwogICAgICAgICAKLSAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgbGFz
dFByb3RvQmVnaW47Ci0gICAgICAgIGlmIChsaXN0SW5kZXgpCi0gICAgICAgICAgICBsYXN0UHJv
dG9CZWdpbiA9IENvZGVMb2NhdGlvbkxhYmVsKHBvbHltb3JwaGljU3RydWN0dXJlTGlzdC0+bGlz
dFtsaXN0SW5kZXggLSAxXS5zdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGxhc3RQcm90b0JlZ2luID0gc3R1YkluZm8uY2FsbFJldHVybkxvY2F0
aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGZnLmRlbHRhQ2FsbFRvU2xvd0Nhc2Up
OwotICAgICAgICBBU1NFUlQoISFsYXN0UHJvdG9CZWdpbik7Ci0gICAgICAgIAotICAgICAgICBw
YXRjaEJ1ZmZlci5saW5rKHdyb25nU3RydWN0LCBsYXN0UHJvdG9CZWdpbik7CisgICAgICAgIHBh
dGNoQnVmZmVyLmxpbmsod3JvbmdTdHJ1Y3QsIHNsb3dDYXNlKTsKICAgICAgICAgcGF0Y2hCdWZm
ZXIubGluayhzdWNjZXNzLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNl
dChzdHViSW5mby5wYXRjaC5kZmcuZGVsdGFDYWxsVG9Eb25lKSk7CiAgICAgICAgIGlmICghaXNE
aXJlY3QpIHsKICAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsob3BlcmF0aW9uQ2FsbCwgb3Bl
cmF0aW9uRnVuY3Rpb24pOwpAQCAtNTkyLDE3ICs1OTEsMTUgQEAgc3RhdGljIGJvb2wgdHJ5QnVp
bGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgIAogICAgIFBvbHltb3JwaGljQWNjZXNzU3RydWN0
dXJlTGlzdCogcG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0OwogICAgIGludCBsaXN0SW5kZXg7Ci0g
ICAgaWYgKCFnZXRQb2x5bW9ycGhpY1N0cnVjdHVyZUxpc3Qodm0sIGNvZGVCbG9jaywgc3R1Yklu
Zm8sIHBvbHltb3JwaGljU3RydWN0dXJlTGlzdCwgbGlzdEluZGV4KSkKKyAgICBDb2RlTG9jYXRp
b25MYWJlbCBzbG93Q2FzZTsKKyAgICBpZiAoIWdldFBvbHltb3JwaGljU3RydWN0dXJlTGlzdCh2
bSwgY29kZUJsb2NrLCBzdHViSW5mbywgcG9seW1vcnBoaWNTdHJ1Y3R1cmVMaXN0LCBsaXN0SW5k
ZXgsIHNsb3dDYXNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHN0dWJJbmZv
LnUuZ2V0QnlJZFByb3RvTGlzdC5saXN0U2l6ZSsrOwogICAgIAotICAgIENvZGVMb2NhdGlvbkxh
YmVsIGxhc3RQcm90b0JlZ2luID0gQ29kZUxvY2F0aW9uTGFiZWwocG9seW1vcnBoaWNTdHJ1Y3R1
cmVMaXN0LT5saXN0W2xpc3RJbmRleCAtIDFdLnN0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKTsK
LSAgICBBU1NFUlQoISFsYXN0UHJvdG9CZWdpbik7Ci0gICAgCiAgICAgUmVmUHRyPEpJVFN0dWJS
b3V0aW5lPiBzdHViUm91dGluZTsKICAgICAKLSAgICBnZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NT
dHViKGV4ZWMsIHN0dWJJbmZvLCBwcm90b3R5cGVDaGFpbiwgY291bnQsIG9mZnNldCwgc3RydWN0
dXJlLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5w
YXRjaC5kZmcuZGVsdGFDYWxsVG9Eb25lKSwgbGFzdFByb3RvQmVnaW4sIHN0dWJSb3V0aW5lKTsK
KyAgICBnZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NTdHViKGV4ZWMsIHN0dWJJbmZvLCBwcm90b3R5
cGVDaGFpbiwgY291bnQsIG9mZnNldCwgc3RydWN0dXJlLCBzdHViSW5mby5jYWxsUmV0dXJuTG9j
YXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5wYXRjaC5kZmcuZGVsdGFDYWxsVG9Eb25lKSwg
c2xvd0Nhc2UsIHN0dWJSb3V0aW5lKTsKICAgICAKICAgICBwb2x5bW9ycGhpY1N0cnVjdHVyZUxp
c3QtPmxpc3RbbGlzdEluZGV4XS5zZXQoKnZtLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgp
LCBzdHViUm91dGluZSwgc3RydWN0dXJlLCB0cnVlKTsKICAgICAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE1MzM3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDEzLTA3LTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTjogQ3Jhc2ggd2hlbiBvcGVuaW5nIGEgbWVzc2FnZSBvbiBHbWFp
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2pzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by1sZXNzLXdhcm11cC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2pzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by1tb3Jl
LXdhcm11cC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2RmZy1nZXQtYnktaWQtdW5z
ZXQtdGhlbi1wcm90by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2pzYy10ZXN0LWxp
c3QKKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctZ2V0LWJ5LWlkLXVuc2V0LXRo
ZW4tcHJvdG8tbGVzcy13YXJtdXAuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KEJsYWgpOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1nZXQtYnktaWQtdW5z
ZXQtdGhlbi1wcm90by1tb3JlLXdhcm11cC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAoQmxhaCk6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWdldC1ieS1p
ZC11bnNldC10aGVuLXByb3RvLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChC
bGFoKToKKwogMjAxMy0wNy0xOSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFNldHRpbmcgYSBsYXJnZSBudW1lcmljIHByb3BlcnR5IG9uIGFuIG9i
amVjdCBjYXVzZXMgaXQgdG8gYWxsb2NhdGUgYSBodWdlIGJhY2tpbmcgc3RvcmUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXByb3RvLWxlc3Mtd2Fy
bXVwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctZ2V0LWJ5LWlk
LXVuc2V0LXRoZW4tcHJvdG8tbGVzcy13YXJtdXAuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvanMvZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXByb3RvLWxlc3Mtd2FybXVw
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kZmctZ2V0LWJ5LWlkLXVuc2V0LXRoZW4tcHJvdG8tbGVz
cy13YXJtdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9kZmctZ2V0LWJ5LWlkLXVuc2V0LXRoZW4tcHJvdG8tbW9yZS13YXJtdXAuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1w
cm90by1tb3JlLXdhcm11cC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9kZmctZ2V0LWJ5LWlkLXVuc2V0LXRoZW4tcHJvdG8tbW9yZS13YXJtdXAuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by1tb3JlLXdhcm11cC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1nZXQt
YnktaWQtdW5zZXQtdGhlbi1wcm90by5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXByb3RvLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXByb3RvLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvanNjLXRlc3QtbGlz
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2pzYy10ZXN0LWxpc3QJKHJldmlz
aW9uIDE1MzM3NikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvanNjLXRlc3QtbGlzdAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQyLDYgKzE0Miw5IEBAIGZhc3QvanMvZGZnLWZsb2F0MzJhcnJheQogZmFz
dC9qcy9kZmctZmxvYXQ2NGFycmF5CiBmYXN0L2pzL2RmZy1mbHVzaC1nZXQtbG9jYWwKIGZhc3Qv
anMvZGZnLWZvcmNlLWV4aXQtdGhlbi1zcGFyc2UtY29uZGl0aW9uYWwtY29uc3RhbnQtcHJvcC1p
bi1sb29wCitmYXN0L2pzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90bworZmFzdC9qcy9k
ZmctZ2V0LWJ5LWlkLXVuc2V0LXRoZW4tcHJvdG8tbGVzcy13YXJtdXAKK2Zhc3QvanMvZGZnLWdl
dC1ieS1pZC11bnNldC10aGVuLXByb3RvLW1vcmUtd2FybXVwCiBmYXN0L2pzL2RmZy1nZXQtYnkt
dmFsLWNsb2JiZXIKIGZhc3QvanMvZGZnLWdldC1ieS12YWwtZ2V0dGVyLWNzZQogZmFzdC9qcy9k
ZmctZ2V0dGVyCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctZ2V0
LWJ5LWlkLXVuc2V0LXRoZW4tcHJvdG8tbGVzcy13YXJtdXAuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXBy
b3RvLWxlc3Mtd2FybXVwLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXByb3RvLWxlc3Mtd2FybXVwLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACitkZXNjcmlwdGlvbigKKyJUZXN0cyB3aGF0
IGhhcHBlbnMgd2hlbiB0aGUgZmlyc3QgYXR0ZW1wdCB0byBjYWNoZSBhbiBhY2Nlc3MgZ29lcyBk
b3duIHRoZSB1bnNldCByb3V0ZSBhbmQgdGhlbiBzdWJzZXF1ZW50bHkgaXQgdHJpZXMgdG8gY2Fj
aGUgdXNpbmcgYSBwcm90byAobGVzcyB3YXJtdXApLiIKKyk7CisKK2Z1bmN0aW9uIGZvbyhwLCBv
KSB7CisgICAgaWYgKHApCisgICAgICAgIHJldHVybiBvLmY7CisgICAgcmV0dXJuIDQyOworfQor
Citub0lubGluZShmb28pOworCisvLyBHZXQgZm9vIGludG8gdGhlIExMSW50Citmb3IgKHZhciBp
ID0gMDsgaSA8IDEwOyArK2kpCisgICAgZm9vKGZhbHNlLCB7fSk7CisKKy8vIFdhcm0gdXAgZm9v
KCkncyBwPXRydWUgcGF0aCBhbmQgbWFrZSBpdCBhcyBwb2x5bW9ycGhpYyBhcyBwb3NzaWJsZS4K
K2ZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgZm9vKHRydWUsIHtmOjQyfSk7Cisg
ICAgZm9vKHRydWUsIHtnOjEsIGY6MjN9KTsKK30KKworLy8gRm9yY2UgY29tcGlsYXRpb24gYnkg
Z29pbmcgZG93biBwPWZhbHNlLgord2hpbGUgKCFkZmdDb21waWxlZCh7Zjpmb299KSkKKyAgICBm
b28oZmFsc2UsIHt9KTsKKworLy8gSGl0IHRoZSB1bnNldCBjYXNlLgorZm9yICh2YXIgaiA9IDA7
IGogPCAxOyArK2opIHsKKyAgICB2YXIgbyA9IHt9OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDsgKytpKQorICAgICAgICBvWyJpIiArIGldID0gaTsKKyAgICBvLmYgPSA0MjsKKyAgICBz
aG91bGRCZSgiZm9vKHRydWUsIG8pIiwgIjQyIik7Cit9CisKK2Z1bmN0aW9uIEJsYWgoKSB7Cit9
CitCbGFoLnByb3RvdHlwZS5mID0gMjM7CisKKy8vIEhpdCB0aGUgcHJvdG90eXBlIGNhc2UuCitz
aG91bGRCZSgiZm9vKHRydWUsIG5ldyBCbGFoKCkpIiwgIjIzIik7CisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by1t
b3JlLXdhcm11cC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10
ZXN0cy9kZmctZ2V0LWJ5LWlkLXVuc2V0LXRoZW4tcHJvdG8tbW9yZS13YXJtdXAuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctZ2V0LWJ5LWlk
LXVuc2V0LXRoZW4tcHJvdG8tbW9yZS13YXJtdXAuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDIgQEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHdoYXQgaGFwcGVucyB3aGVuIHRoZSBmaXJzdCBh
dHRlbXB0IHRvIGNhY2hlIGFuIGFjY2VzcyBnb2VzIGRvd24gdGhlIHVuc2V0IHJvdXRlIGFuZCB0
aGVuIHN1YnNlcXVlbnRseSBpdCB0cmllcyB0byBjYWNoZSB1c2luZyBhIHByb3RvIChtb3JlIHdh
cm11cCkuIgorKTsKKworZnVuY3Rpb24gZm9vKHAsIG8pIHsKKyAgICBpZiAocCkKKyAgICAgICAg
cmV0dXJuIG8uZjsKKyAgICByZXR1cm4gNDI7Cit9CisKK25vSW5saW5lKGZvbyk7CisKKy8vIEdl
dCBmb28gaW50byB0aGUgTExJbnQKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICBm
b28oZmFsc2UsIHt9KTsKKworLy8gV2FybSB1cCBmb28oKSdzIHA9dHJ1ZSBwYXRoIGFuZCBtYWtl
IGl0IGFzIHBvbHltb3JwaGljIGFzIHBvc3NpYmxlLgorZm9yICh2YXIgaSA9IDA7IGkgPCAzOyAr
K2kpIHsKKyAgICBmb28odHJ1ZSwge2Y6NDJ9KTsKKyAgICBmb28odHJ1ZSwge2c6MSwgZjoyM30p
OworfQorCisvLyBGb3JjZSBjb21waWxhdGlvbiBieSBnb2luZyBkb3duIHA9ZmFsc2UuCit3aGls
ZSAoIWRmZ0NvbXBpbGVkKHtmOmZvb30pKQorICAgIGZvbyhmYWxzZSwge30pOworCisvLyBIaXQg
dGhlIHVuc2V0IGNhc2UuCitmb3IgKHZhciBqID0gMDsgaiA8IDM7ICsraikgeworICAgIHZhciBv
ID0ge307CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIG9bImki
ICsgaV0gPSBpOworICAgIG8uZiA9IDQyOworICAgIHNob3VsZEJlKCJmb28odHJ1ZSwgbykiLCAi
NDIiKTsKK30KKworZnVuY3Rpb24gQmxhaCgpIHsKK30KK0JsYWgucHJvdG90eXBlLmYgPSAyMzsK
KworLy8gSGl0IHRoZSBwcm90b3R5cGUgY2FzZS4KK3Nob3VsZEJlKCJmb28odHJ1ZSwgbmV3IEJs
YWgoKSkiLCAiMjMiKTsKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMv
ZGZnLWdldC1ieS1pZC11bnNldC10aGVuLXByb3RvLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1nZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1n
ZXQtYnktaWQtdW5zZXQtdGhlbi1wcm90by5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBA
QAorZGVzY3JpcHRpb24oCisiVGVzdHMgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIGZpcnN0IGF0dGVt
cHQgdG8gY2FjaGUgYW4gYWNjZXNzIGdvZXMgZG93biB0aGUgdW5zZXQgcm91dGUgYW5kIHRoZW4g
c3Vic2VxdWVudGx5IGl0IHRyaWVzIHRvIGNhY2hlIHVzaW5nIGEgcHJvdG8uIgorKTsKKworZnVu
Y3Rpb24gZm9vKHAsIG8pIHsKKyAgICBpZiAocCkKKyAgICAgICAgcmV0dXJuIG8uZjsKKyAgICBy
ZXR1cm4gNDI7Cit9CisKK25vSW5saW5lKGZvbyk7CisKKy8vIEdldCBmb28gaW50byB0aGUgTExJ
bnQKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICBmb28oZmFsc2UsIHt9KTsKKwor
Ly8gV2FybSB1cCBmb28oKSdzIHA9dHJ1ZSBwYXRoIGFuZCBtYWtlIGl0IGFzIHBvbHltb3JwaGlj
IGFzIHBvc3NpYmxlLgorZm9yICh2YXIgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICBmb28odHJ1
ZSwge2Y6NDJ9KTsKKyAgICBmb28odHJ1ZSwge2c6MSwgZjoyM30pOworfQorCisvLyBGb3JjZSBj
b21waWxhdGlvbiBieSBnb2luZyBkb3duIHA9ZmFsc2UuCit3aGlsZSAoIWRmZ0NvbXBpbGVkKHtm
OmZvb30pKQorICAgIGZvbyhmYWxzZSwge30pOworCisvLyBIaXQgdGhlIHVuc2V0IGNhc2UuCitm
b3IgKHZhciBqID0gMDsgaiA8IDI7ICsraikgeworICAgIHZhciBvID0ge307CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIG9bImkiICsgaV0gPSBpOworICAgIG8u
ZiA9IDQyOworICAgIHNob3VsZEJlKCJmb28odHJ1ZSwgbykiLCAiNDIiKTsKK30KKworZnVuY3Rp
b24gQmxhaCgpIHsKK30KK0JsYWgucHJvdG90eXBlLmYgPSAyMzsKKworLy8gSGl0IHRoZSBwcm90
b3R5cGUgY2FzZS4KK3Nob3VsZEJlKCJmb28odHJ1ZSwgbmV3IEJsYWgoKSkiLCAiMjMiKTsKKwo=
</data>
<flag name="review"
          id="229354"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>