<?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>109103</bug_id>
          
          <creation_ts>2013-02-06 16:20:37 -0800</creation_ts>
          <short_desc>PluginProcess should quit immediately if idle in response to low-memory notifications</short_desc>
          <delta_ts>2013-02-11 14:59:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109255</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826856</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-02-06 16:20:37 -0800</bug_when>
    <thetext>Summary really says it all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826913</commentid>
    <comment_count>1</comment_count>
      <attachid>186954</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-02-06 17:17:53 -0800</bug_when>
    <thetext>Created attachment 186954
fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827019</commentid>
    <comment_count>2</comment_count>
      <attachid>186954</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-06 19:59:36 -0800</bug_when>
    <thetext>Comment on attachment 186954
fix

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

&gt; Source/WebCore/platform/MemoryPressureHandler.cpp:55
&gt;  void MemoryPressureHandler::respondToMemoryPressure() { }
&gt; +
&gt; +void MemoryPressureHandler::releaseMemory(bool) { }
&gt;  #endif

Space between functions is strange if they are going to be all on one line like this. Lack of space between #if/#endif and the functions is stranger.

&gt; Source/WebCore/platform/mac/MemoryPressureHandlerMac.mm:137
&gt; +    m_lowMemoryHandler(false);

Can m_lowMemoryHandler be null here? If not why not?

Separate thought: Boolean constants stink at call sites like this.

&gt; Source/WebKit2/PluginProcess/PluginProcess.h:112
&gt; +    static void lowMemoryHandler(bool);

Need an argument name here. It’s not at all clear what the bool is for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827666</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-02-07 10:22:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 186954 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186954&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/MemoryPressureHandler.cpp:55
&gt; &gt;  void MemoryPressureHandler::respondToMemoryPressure() { }
&gt; &gt; +
&gt; &gt; +void MemoryPressureHandler::releaseMemory(bool) { }
&gt; &gt;  #endif
&gt; 
&gt; Space between functions is strange if they are going to be all on one line like this. Lack of space between #if/#endif and the functions is stranger.

Will fix.

&gt; &gt; Source/WebCore/platform/mac/MemoryPressureHandlerMac.mm:137
&gt; &gt; +    m_lowMemoryHandler(false);
&gt; 
&gt; Can m_lowMemoryHandler be null here? If not why not?

No cannot be null, m_lowMemoryHandler is always set by initialize, before install is called - and install is private.
I&apos;ll add an ASSERT.

&gt; Separate thought: Boolean constants stink at call sites like this.

True - worse still, this boolean is only ever false. :-(
I didn&apos;t want to change as a part of this patch, I&apos;ll follow up separately on this.

&gt; &gt; Source/WebKit2/PluginProcess/PluginProcess.h:112
&gt; &gt; +    static void lowMemoryHandler(bool);
&gt; 
&gt; Need an argument name here. It’s not at all clear what the bool is for.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828048</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-02-07 17:27:43 -0800</bug_when>
    <thetext>Fixed in r142212</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828111</commentid>
    <comment_count>5</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-02-07 19:30:35 -0800</bug_when>
    <thetext>I think, the ASSERT(!m_installed) causes LayoutTests/inspector/* crash.
The following backtraces show where MemoryPressureHandler()::intialize is invoked from.

The first &quot;initialize&quot;:
(lldb) thread backtrace
* thread #1: tid = 0x1c03, 0x000000010158ddd3 WebKit`WebCore::MemoryPressureHandler::initialize(void (*)(bool)) + 51 at MemoryPressureHandler.h:44, stop reason = breakpoint 1.1
    frame #0: 0x000000010158ddd3 WebKit`WebCore::MemoryPressureHandler::initialize(void (*)(bool)) + 51 at MemoryPressureHandler.h:44
    frame #1: 0x000000010156bb81 WebKit`-[WebView(WebPrivate) _commonInitializationWithFrameName:groupName:] + 3985 at WebView.mm:822
    frame #2: 0x000000010156c0eb WebKit`-[WebView(WebPrivate) _initWithFrame:frameName:groupName:usesDocumentViews:] + 459 at WebView.mm:867
    frame #3: 0x0000000101578fb4 WebKit`-[WebView initWithFrame:frameName:groupName:] + 308 at WebView.mm:3407
    frame #4: 0x0000000100016151 DumpRenderTree`createWebViewAndOffscreenWindow() + 321 at DumpRenderTree.mm:526
    frame #5: 0x000000010001684f DumpRenderTree`dumpRenderTree(int, char const**) + 127 at DumpRenderTree.mm:869
    frame #6: 0x0000000100018bd9 DumpRenderTree`main + 105 at DumpRenderTree.mm:924
    frame #7: 0x00007fff85d537e1 libdyld.dylib`start + 1

The second &quot;initialize&quot;, invoked from inspector.
(lldb) thread backtrace
* thread #1: tid = 0x1c03, 0x000000010158ddd3 WebKit`WebCore::MemoryPressureHandler::initialize(void (*)(bool)) + 51 at MemoryPressureHandler.h:44, stop reason = breakpoint 1.1
    frame #0: 0x000000010158ddd3 WebKit`WebCore::MemoryPressureHandler::initialize(void (*)(bool)) + 51 at MemoryPressureHandler.h:44
    frame #1: 0x000000010156bb81 WebKit`-[WebView(WebPrivate) _commonInitializationWithFrameName:groupName:] + 3985 at WebView.mm:822
    frame #2: 0x000000010156c0eb WebKit`-[WebView(WebPrivate) _initWithFrame:frameName:groupName:usesDocumentViews:] + 459 at WebView.mm:867
    frame #3: 0x0000000101578fb4 WebKit`-[WebView initWithFrame:frameName:groupName:] + 308 at WebView.mm:3407
    frame #4: 0x0000000101578e75 WebKit`-[WebView initWithFrame:] + 133 at WebView.mm:3398
    frame #5: 0x00007fff88a10148 AppKit`-[NSView init] + 62
    frame #6: 0x00000001014f54fc WebKit`-[WebInspectorWindowController init] + 556 at WebInspectorClient.mm:371
    frame #7: 0x00000001014f5777 WebKit`-[WebInspectorWindowController initWithInspectedWebView:] + 39 at WebInspectorClient.mm:390
    frame #8: 0x00000001014f3768 WebKit`WebInspectorClient::openInspectorFrontend(WebCore::InspectorController*) + 88 at WebInspectorClient.mm:138
    frame #9: 0x00000001025d3364 WebCore`WebCore::InspectorController::show() + 116 at InspectorController.cpp:275
    frame #10: 0x00000001014f2747 WebKit`-[WebInspector showWindow] + 71 at WebInspector.mm:66
    frame #11: 0x00000001014f2777 WebKit`-[WebInspector show:] + 39 at WebInspector.mm:71
    frame #12: 0x0000000100059505 DumpRenderTree`TestRunner::showWebInspector() + 85 at TestRunnerMac.mm:850
    frame #13: 0x0000000100017eb5 DumpRenderTree`runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) + 3781 at DumpRenderTree.mm:1347
    frame #14: 0x0000000100016a1d DumpRenderTree`dumpRenderTree(int, char const**) + 589 at DumpRenderTree.mm:890
    frame #15: 0x0000000100018bd9 DumpRenderTree`main + 105 at DumpRenderTree.mm:924
    frame #16: 0x00007fff85d537e1 libdyld.dylib`start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828167</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-07 21:20:52 -0800</bug_when>
    <thetext>I see that assertion too. I&apos;m going to revert this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828170</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 21:23:06 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 109255</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828172</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-07 21:24:23 -0800</bug_when>
    <thetext>This also asserts in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830046</commentid>
    <comment_count>9</comment_count>
      <attachid>187651</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-02-11 13:27:36 -0800</bug_when>
    <thetext>Created attachment 187651
Fix take 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830173</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-02-11 14:59:45 -0800</bug_when>
    <thetext>Relanded in r142521</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186954</attachid>
            <date>2013-02-06 17:17:53 -0800</date>
            <delta_ts>2013-02-11 13:27:36 -0800</delta_ts>
            <desc>fix</desc>
            <filename>109103.patch</filename>
            <type>text/plain</type>
            <size>10694</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTA2ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBQbHVnaW5Qcm9j
ZXNzIHNob3VsZCBxdWl0IGltbWVkaWF0ZWx5IGlmIGlkbGUgaW4gcmVzcG9uc2UgdG8gbG93LW1l
bW9yeSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDkxMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNjc5ODI3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWxsb3dzIGEgcHJvY2VzcyB0byBzZXQgYSBjdXN0b20gY2FsbGJhY2sgZm9yIGxvdyBtZW1vcnkg
d2FybmluZ3MKKyAgICAgICAgKGRlZmF1bHRpbmcgdG8gdGhlIGN1cnJlbnQgYmVoYXZpb3VyLCBh
cyBpbXBsZW1lbnRlZCBpbiByZWxlYXNlTWVtb3J5KS4KKworICAgICAgICBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6Omluc3RhbGwgaXMgY3VycmVudGx5IHVzZWQgZm9yIHR3byBwdXJwb3NlcyAtIGl0
IGlzCisgICAgICAgIGNhbGxlZCB3aGVuIGZpcnN0IGluaXRpYWxpemluZyBhIGxvdyBtZW1vcnkg
aGFuZGxlciBmb3IgYSBwcm9jZXNzLCBhbmQgYWxzbworICAgICAgICB1c2VkIHRvIHJlaW5zdGFs
bCB0aGUgaGFuZGxlciAob24gYSBkZWxheSkgYWZ0ZXIgdGhlIG5vdGlmaWNhdGlvbiBoYXMgb2Nj
dXJlZC4KKyAgICAgICAgU2luY2UgcmVpbnN0YWxsYXRpb24gZG9lc24ndCBjaGFuZ2UgdGhlIGNh
bGxiYWNrLCBzcGxpdCB0aGVzZSBiZWhhdmlvdXJzIG91dCAtCisgICAgICAgIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6aW5pdGlhbGl6ZSBpcyBhZGRlZCB0byBpbml0aWFsaXphdGlvbiwgYW5kIGFj
Y2VwdHMgYQorICAgICAgICBjdXN0b20gY2FsbGJhY2ssIGluc3RhbGwgaW4gbWFkZSBwcml2YXRl
LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICAgICAtIEFkZGVkIGV4cG9y
dCBmb3IgcmVsZWFzZU1lbW9yeS4KKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxl
YXNlTWVtb3J5KToKKyAgICAgICAgICAgIC0gQWRkZWQgbnVsbCBpbXBsZW1lbnRhdGlvbiBmb3Ig
bm9uLU1hYyBidWlsZHMuCisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmluaXRpYWxpemUp
OgorICAgICAgICAgICAgLSBkaXN0aW5ndWlzaCBpbml0aWFsaXphdGlvbiBmcm9tIHJlaW5zdGFs
bGF0aW9ucywgYWxsb3cgaGFuZGxlciB0byBiZSBzZXQuCisgICAgICAgIChNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIpOgorICAgICAgICAgICAgLSBBZGRlZCBtX2xvd01lbW9yeUhhbmRsZXIgZnVuY3Rp
b24gcG9pbnRlciBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgICogcGxhdGZvcm0vbWFjL01lbW9y
eVByZXNzdXJlSGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUpOgorICAgICAgICAgICAgLSBDYWxsIG1f
bG93TWVtb3J5SGFuZGxlciBpbnN0ZWFkIG9mIHJlbGVhc2VNZW1vcnkuCisKIDIwMTMtMDItMDYg
IEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFrZSBT
Y3JvbGxWaWV3OjpwYWludCgpIGNsaXAgYnkgdmlzaWJsZUNvbnRlbnRSZWN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTQxOTIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTYwMCw2ICs2MDAsNyBAQCBfX1pON1dlYkNvcmUy
MG1ha2VSR0JBMzJGcm9tRmxvYXRzRWZmZmYKIF9fWk43V2ViQ29yZTIwcHJvdG9jb2xJc0phdmFT
Y3JpcHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMFNwYWNlU3BsaXRTdHJpbmdEYXRh
RDFFdgogX19aTjdXZWJDb3JlMjFCYWNrRm9yd2FyZENvbnRyb2xsZXIxMWl0ZW1BdEluZGV4RWkK
K19fWk43V2ViQ29yZTIxTWVtb3J5UHJlc3N1cmVIYW5kbGVyMTNyZWxlYXNlTWVtb3J5RWIKIF9f
Wk43V2ViQ29yZTIxTWVtb3J5UHJlc3N1cmVIYW5kbGVyN2luc3RhbGxFdgogX19aTjdXZWJDb3Jl
MjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yOGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb25FUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVudDI0ZGlzYW1i
aWd1YXRlS2V5RG93bkV2ZW50RU5TXzEzUGxhdGZvcm1FdmVudDRUeXBlRWIKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAkocmV2
aXNpb24gMTQxOTIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsOCBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxsKCkgCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
aG9sZE9mZih1bnNpZ25lZCkgeyB9CiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNw
b25kVG9NZW1vcnlQcmVzc3VyZSgpIHsgfQorCit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
cmVsZWFzZU1lbW9yeShib29sKSB7IH0KICNlbmRpZgogIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmgJKHJldmlzaW9uIDE0MTkyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9y
eVByZXNzdXJlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwyNSArMzEsMzUgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIHZvaWQgKCpMb3dNZW1vcnlIYW5kbGVyKShi
b29sIGNyaXRpY2FsKTsKKwogY2xhc3MgTWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBmcmllbmQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAorICAgIHZvaWQgaW5pdGlhbGl6ZShM
b3dNZW1vcnlIYW5kbGVyIGhhbmRsZXIgPSByZWxlYXNlTWVtb3J5KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKCFtX2luc3RhbGxlZCk7CisgICAgICAgIG1fbG93TWVtb3J5SGFuZGxlciA9IGhhbmRs
ZXI7CisgICAgICAgIGluc3RhbGwoKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAgdm9pZCBpbnN0
YWxsKCk7CiAgICAgdm9pZCB1bmluc3RhbGwoKTsKIAogICAgIHZvaWQgaG9sZE9mZih1bnNpZ25l
ZCk7CiAKLXByaXZhdGU6CiAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAgICAgfk1lbW9y
eVByZXNzdXJlSGFuZGxlcigpOwogCiAgICAgdm9pZCByZXNwb25kVG9NZW1vcnlQcmVzc3VyZSgp
OwotICAgIHZvaWQgcmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKTsKKyAgICBzdGF0aWMgdm9p
ZCByZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpOwogCiAgICAgYm9vbCBtX2luc3RhbGxlZDsK
ICAgICB0aW1lX3QgbV9sYXN0UmVzcG9uZFRpbWU7CisgICAgTG93TWVtb3J5SGFuZGxlciBtX2xv
d01lbW9yeUhhbmRsZXI7CiB9OwogIAogLy8gRnVuY3Rpb24gdG8gb2J0YWluIHRoZSBnbG9iYWwg
bWVtb3J5IHByZXNzdXJlIG9iamVjdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9NZW1vcnlQcmVzc3VyZUhhbmRsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbQkocmV2aXNpb24gMTQx
OTIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFuZGxl
ck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW0KIAogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAotICAgIHJlbGVhc2VNZW1vcnkoZmFsc2UpOwor
ICAgIG1fbG93TWVtb3J5SGFuZGxlcihmYWxzZSk7CiAKICAgICB1bnNpZ25lZCBob2xkT2ZmVGlt
ZSA9IChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRP
ZmZNdWx0aXBsaWVyOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDIwNDgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAx
My0wMi0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgUGx1Z2luUHJvY2VzcyBzaG91bGQgcXVpdCBpbW1lZGlhdGVseSBpZiBpZGxlIGluIHJl
c3BvbnNlIHRvIGxvdy1tZW1vcnkgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MTAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMjY3OTgyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQbHVnaW5Qcm9jZXNzIG5vdyBpbml0aWFsaXplcyBhIE1lbW9yeVByZXNzdXJlSGFuZGxl
ciBmb3IgdGhlIHByb2Nlc3MsIHByb3ZpZGluZworICAgICAgICBhIGN1c3RvbSBjYWxsYmFjayB3
aGljaCB3aWxsIGNhbGwgdGVybWluYXRlIGlmIGFwcHJvcHJpYXRlIChpZiB0aGUgcGx1Z2luIGlz
IG5vdAorICAgICAgICBjdXJyZW50bHkgaW4gdXNlKS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6Omxv
d01lbW9yeUhhbmRsZXIpOgorICAgICAgICAgICAgLSBDdXN0b20gY2FsbGJhY2sgdG8gdGVybWlu
YXRlIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgICAgICAtIEluaXRpYWxpemUgdGhlIE1lbW9yeVByZXNz
dXJlSGFuZGxlci4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6c2hvdWxkVGVybWlu
YXRlKToKKyAgICAgICAgICAgIC0gVGhpcyBtZXRob2Qgbm93IGFsc28gbmVlZHMgdG8gYmUgY2Fs
bGFibGUgaW4gc2l0dWF0aW9ucyB3aGVyZSBpdCBtaWdodCByZXR1cm4gZmFsc2UuCisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAgIChQbHVnaW5Qcm9jZXNz
KToKKyAgICAgICAgICAgIC0gQWRkZWQgZGVjbGFyYXRpb24gZm9yIGxvd01lbW9yeUhhbmRsZXIu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAgICAgLSBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6Omluc3RhbGwgaXMgbm93IGNhbGxlZCB2aWEgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjppbml0aWFsaXplLgorCiAyMDEzLTAyLTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzcGF0Y2ggc3RvcmFnZSBtYW5hZ2VyIG1lc3Nh
Z2VzIHRvIHRoZSBzdG9yYWdlIHdvcmsgcXVldWUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAkocmV2aXNpb24gMTQxOTIwKQorKysgU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKQEAgLTg1LDEwICs4NiwxOCBAQCBQbHVnaW5Qcm9j
ZXNzOjp+UGx1Z2luUHJvY2VzcygpCiB7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6bG93TWVt
b3J5SGFuZGxlcihib29sKQoreworICAgIGlmIChzaGFyZWQoKS5zaG91bGRUZXJtaW5hdGUoKSkK
KyAgICAgICAgc2hhcmVkKCkudGVybWluYXRlKCk7Cit9CisKIHZvaWQgUGx1Z2luUHJvY2Vzczo6
aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIG1fcGx1Z2luUGF0aCA9IHBhcmFtZXRlcnMuZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIpOwogICAgIHBsYXRmb3JtSW5pdGlh
bGl6ZVByb2Nlc3MocGFyYW1ldGVycyk7CisKKyAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5p
bml0aWFsaXplKGxvd01lbW9yeUhhbmRsZXIpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3M6OnJl
bW92ZVdlYlByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NDb25uZWN0aW9uKiB3ZWJQcm9jZXNz
Q29ubmVjdGlvbikKQEAgLTEyNSw5ICsxMzQsNyBAQCBOZXRzY2FwZVBsdWdpbk1vZHVsZSogUGx1
Z2luUHJvY2Vzczo6bmV0CiAKIGJvb2wgUGx1Z2luUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkK
IHsKLSAgICBBU1NFUlQobV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgpKTsKLQotICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5
KCk7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAko
cmV2aXNpb24gMTQxOTIwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsOCBAQCBwcml2YXRlOgogICAg
IC8vIFRoZSBNYWNoIHBvcnQgdXNlZCBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAg
bWFjaF9wb3J0X3QgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQ7CiAjZW5kaWYKKworICAg
IHN0YXRpYyB2b2lkIGxvd01lbW9yeUhhbmRsZXIoYm9vbCk7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAko
cmV2aXNpb24gMTQxOTIwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY28KIAogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MocGFyYW1ldGVycywgZGVjb2Rlcik7CiAKLSAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5p
bnN0YWxsKCk7CisgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkuaW5pdGlhbGl6ZSgpOwogCiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gaW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
OwogICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKGlu
amVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDIwNDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0wNiAgR2F2aW4gQmFycmFjbG91Z2gg
IDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgUGx1Z2luUHJvY2VzcyBzaG91bGQg
cXVpdCBpbW1lZGlhdGVseSBpZiBpZGxlIGluIHJlc3BvbnNlIHRvIGxvdy1tZW1vcnkgbm90aWZp
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5MTAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjY3OTgyNz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdy
b3VwTmFtZTpdKToKKyAgICAgICAgICAgIC0gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxs
IGlzIG5vdyBjYWxsZWQgdmlhIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5pdGlhbGl6ZS4KKyAg
ICAgICAgKFdlYkluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIpOgorICAgICAgICAgICAgLSBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwgaXMgbm93IGNhbGxlZCB2aWEgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjppbml0aWFsaXplLgorCiAyMDEzLTAyLTA2ICBNaWtlIFdlc3QgIDxta3dz
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGFuIEVOQUJMRV9OT1NOSUZGIGZlYXR1cmUg
ZmxhZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDE0
MTkyMCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBj
b3B5KQpAQCAtODE5LDcgKzgxOSw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0
aEZyYW1lTmEKICAgICBbc2VsZiBfcHJlZmVyZW5jZXNDaGFuZ2VkOltzZWxmIHByZWZlcmVuY2Vz
XV07CiAgICAgW1tzZWxmIHByZWZlcmVuY2VzXSBfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZEFQSU5v
dGlmaWNhdGlvbl07CiAKLSAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5pbnN0YWxsKCk7Cisg
ICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkuaW5pdGlhbGl6ZSgpOwogCiAgICAgaWYgKCFXZWJL
aXRMaW5rZWRPbk9yQWZ0ZXIoV0VCS0lUX0ZJUlNUX1ZFUlNJT05fV0lUSF9MT0NBTF9SRVNPVVJD
RV9TRUNVUklUWV9SRVNUUklDVElPTikpIHsKICAgICAgICAgLy8gT3JpZ2luYWxseSwgd2UgYWxs
b3dlZCBhbGwgbG9jYWwgbG9hZHMuCkBAIC02NzM0LDcgKzY3MzQsNyBAQCAtIChOU1ZpZXcqKWZ1
bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcKIAogdm9pZCBXZWJJbnN0YWxsTWVtb3J5UHJlc3N1cmVI
YW5kbGVyKHZvaWQpCiB7Ci0gICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkuaW5zdGFsbCgpOwor
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmluaXRpYWxpemUoKTsKIH0KIAogI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAo=
</data>
<flag name="review"
          id="206585"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187651</attachid>
            <date>2013-02-11 13:27:36 -0800</date>
            <delta_ts>2013-02-11 14:00:05 -0800</delta_ts>
            <desc>Fix take 2</desc>
            <filename>109103.2.patch</filename>
            <type>text/plain</type>
            <size>7498</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTExICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBQbHVnaW5Qcm9j
ZXNzIHNob3VsZCBxdWl0IGltbWVkaWF0ZWx5IGlmIGlkbGUgaW4gcmVzcG9uc2UgdG8gbG93LW1l
bW9yeSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDkxMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNjc5ODI3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWxsb3dzIGEgcHJvY2VzcyB0byBzZXQgYSBjdXN0b20gY2FsbGJhY2sgZm9yIGxvdyBtZW1vcnkg
d2FybmluZ3MKKyAgICAgICAgKGRlZmF1bHRpbmcgdG8gdGhlIGN1cnJlbnQgYmVoYXZpb3VyLCBh
cyBpbXBsZW1lbnRlZCBpbiByZWxlYXNlTWVtb3J5KS4KKworICAgICAgICAqIHBsYXRmb3JtL01l
bW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcik6CisgICAgICAgICAgICAtIEluaXRpYWxp
emUgbV9sb3dNZW1vcnlIYW5kbGVyIHRvIHJlbGVhc2VNZW1vcnkuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjp1bmluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpob2xkT2ZmKToKKyAgICAgICAgICAgIC0gQ2xlYW5lZCB1cCBzcGFj
aW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVt
b3J5KToKKyAgICAgICAgICAgIC0gQWRkZWQgbnVsbCBpbXBsZW1lbnRhdGlvbiBmb3Igbm9uLU1h
YyBidWlsZHMuCisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldExvd01lbW9yeUhhbmRs
ZXIpOgorICAgICAgICAgICAgLSBBZGRlZCBtZXRob2QgdG8gc2V0IG1fbG93TWVtb3J5SGFuZGxl
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQ
cmVzc3VyZSk6CisgICAgICAgICAgICAtIENoYW5nZWQgdG8gY2FsbCByZWxlYXNlTWVtb3J5IHZp
YSBtX2xvd01lbW9yeUhhbmRsZXIuCisKIDIwMTMtMDItMTEgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBkb2N1bWVudC53cml0ZSBkdXJpbmcgd2luZG93Lm9ubG9h
ZCBjYW4gdHJpZ2dlciBEdW1wUmVuZGVyVHJlZSB0byBkdW1wIHRoZSByZW5kZXIgdHJlZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCShyZXZpc2lvbiAxNDI0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNyArMzksMTggQEAgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyJiBtZW1vcnlQcmVzc3VyZUhhbgogTWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKSAKICAgICA6IG1faW5zdGFsbGVkKGZhbHNlKQog
ICAgICwgbV9sYXN0UmVzcG9uZFRpbWUoMCkKKyAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihyZWxl
YXNlTWVtb3J5KQogewogfQogCiAjaWYgIVBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8
fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKLXZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjppbnN0YWxsKCkgeyB9CiAKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjppbnN0YWxsKCkgeyB9CiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxsKCkg
eyB9Ci0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkKSB7IH0K
LQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKCkg
eyB9Cit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sKSB7IH0K
KwogI2VuZGlmCiAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTQyNDkx
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDI1ICszMSwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K3R5cGVkZWYgdm9pZCAoKkxvd01lbW9yeUhhbmRsZXIpKGJvb2wgY3JpdGljYWwpOworCiBjbGFz
cyBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIGZyaWVuZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXImIG1lbW9yeVByZXNzdXJl
SGFuZGxlcigpOwogCiAgICAgdm9pZCBpbnN0YWxsKCk7CisKKyAgICB2b2lkIHNldExvd01lbW9y
eUhhbmRsZXIoTG93TWVtb3J5SGFuZGxlciBoYW5kbGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KCFtX2luc3RhbGxlZCk7CisgICAgICAgIG1fbG93TWVtb3J5SGFuZGxlciA9IGhhbmRsZXI7Cisg
ICAgfQorCitwcml2YXRlOgogICAgIHZvaWQgdW5pbnN0YWxsKCk7CiAKICAgICB2b2lkIGhvbGRP
ZmYodW5zaWduZWQpOwogCi1wcml2YXRlOgogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwog
ICAgIH5NZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5
UHJlc3N1cmUoKTsKLSAgICB2b2lkIHJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCk7CisgICAg
c3RhdGljIHZvaWQgcmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKTsKIAogICAgIGJvb2wgbV9p
bnN0YWxsZWQ7CiAgICAgdGltZV90IG1fbGFzdFJlc3BvbmRUaW1lOworICAgIExvd01lbW9yeUhh
bmRsZXIgbV9sb3dNZW1vcnlIYW5kbGVyOwogfTsKICAKIC8vIEZ1bmN0aW9uIHRvIG9idGFpbiB0
aGUgZ2xvYmFsIG1lbW9yeSBwcmVzc3VyZSBvYmplY3QuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZW1vcnlQcmVzc3VyZUhhbmRsZXJNYWMubW0JKHJl
dmlzaW9uIDE0MjQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZW1vcnlQcmVz
c3VyZUhhbmRsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAKICAgICBkb3VibGUgc3RhcnRU
aW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKLSAgICByZWxlYXNlTWVtb3J5
KGZhbHNlKTsKKyAgICBtX2xvd01lbW9yeUhhbmRsZXIoZmFsc2UpOwogCiAgICAgdW5zaWduZWQg
aG9sZE9mZlRpbWUgPSAobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydFRpbWUp
ICogc19ob2xkT2ZmTXVsdGlwbGllcjsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNDkx
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMTMtMDItMTEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUu
Y29tPgorCisgICAgICAgIFBsdWdpblByb2Nlc3Mgc2hvdWxkIHF1aXQgaW1tZWRpYXRlbHkgaWYg
aWRsZSBpbiByZXNwb25zZSB0byBsb3ctbWVtb3J5IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEwMworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTI2Nzk4Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUGx1Z2luUHJvY2VzcyBub3cgaW5zdGFsbHMgYSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIgZm9yIHRoZSBwcm9jZXNzLCBwcm92aWRpbmcKKyAgICAgICAgYSBjdXN0b20gY2Fs
bGJhY2sgd2hpY2ggd2lsbCBjYWxsIHRlcm1pbmF0ZSBpZiBhcHByb3ByaWF0ZSAoaWYgdGhlIHBs
dWdpbiBpcyBub3QKKyAgICAgICAgY3VycmVudGx5IGluIHVzZSkuCisKKyAgICAgICAgKiBQbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9j
ZXNzOjpsb3dNZW1vcnlIYW5kbGVyKToKKyAgICAgICAgICAgIC0gQ3VzdG9tIGNhbGxiYWNrIHRv
IHRlcm1pbmF0ZSBpZiBhcHByb3ByaWF0ZS4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vz
czo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAgICAgLSBJbnN0YWxsIHRoZSBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnNob3VsZFRl
cm1pbmF0ZSk6CisgICAgICAgICAgICAtIFRoaXMgbWV0aG9kIG5vdyBhbHNvIG5lZWRzIHRvIGJl
IGNhbGxhYmxlIGluIHNpdHVhdGlvbnMgd2hlcmUgaXQgbWlnaHQgcmV0dXJuIGZhbHNlLgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAoUGx1Z2luUHJv
Y2Vzcyk6CisgICAgICAgICAgICAtIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBsb3dNZW1vcnlIYW5k
bGVyLgorCiAyMDEzLTAyLTEwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgTWFrZSB0aGUgUGx1Zy1pbiBYUENTZXJ2aWNlIGJ1aWxkIHdvcmsgZXZlbiB3aGVuIGJ1aWxk
aW5nIGluIFhjb2RlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0MjQ5MSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
TG9vcC5oPgogCkBAIC04NSwxMCArODYsMjAgQEAgUGx1Z2luUHJvY2Vzczo6flBsdWdpblByb2Nl
c3MoKQogewogfQogCit2b2lkIFBsdWdpblByb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoYm9vbCBj
cml0aWNhbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oY3JpdGljYWwpOworICAgIGlmIChzaGFyZWQo
KS5zaG91bGRUZXJtaW5hdGUoKSkKKyAgICAgICAgc2hhcmVkKCkudGVybWluYXRlKCk7Cit9CisK
IHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIG1fcGx1Z2luUGF0
aCA9IHBhcmFtZXRlcnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIp
OwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MocGFyYW1ldGVycyk7CisKKyAgICBtZW1v
cnlQcmVzc3VyZUhhbmRsZXIoKS5zZXRMb3dNZW1vcnlIYW5kbGVyKGxvd01lbW9yeUhhbmRsZXIp
OworICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmluc3RhbGwoKTsKIH0KIAogdm9pZCBQbHVn
aW5Qcm9jZXNzOjpyZW1vdmVXZWJQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzQ29ubmVjdGlv
biogd2ViUHJvY2Vzc0Nvbm5lY3Rpb24pCkBAIC0xMjUsOSArMTM2LDcgQEAgTmV0c2NhcGVQbHVn
aW5Nb2R1bGUqIFBsdWdpblByb2Nlc3M6Om5ldAogCiBib29sIFBsdWdpblByb2Nlc3M6OnNob3Vs
ZFRlcm1pbmF0ZSgpCiB7Ci0gICAgQVNTRVJUKG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1w
dHkoKSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbnMuaXNFbXB0eSgpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLmgJKHJldmlzaW9uIDE0MjQ5MSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDggQEAg
cHJpdmF0ZToKICAgICAvLyBUaGUgTWFjaCBwb3J0IHVzZWQgZm9yIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nLgogICAgIG1hY2hfcG9ydF90IG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0Owog
I2VuZGlmCisKKyAgICBzdGF0aWMgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKGJvb2wgY3JpdGljYWwp
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="207535"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>