<?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>131050</bug_id>
          
          <creation_ts>2014-04-01 11:52:08 -0700</creation_ts>
          <short_desc>Web Inspector: Provide a way for JSContext console to log to system console</short_desc>
          <delta_ts>2014-04-04 12:58:18 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>996376</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-04-01 11:52:08 -0700</bug_when>
    <thetext>We already have a way for a Page&apos;s console to log to the system console. We should provide a way for this to work with JSContext&apos;s console. An application user default seems reasonable. We could also make API/SPI to toggle at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996377</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-04-01 11:53:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/16488820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996379</commentid>
    <comment_count>2</comment_count>
      <attachid>228304</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-04-01 12:03:49 -0700</bug_when>
    <thetext>Created attachment 228304
[PATCH] Proposed Fix

cq- because I haven&apos;t tested with iOS yet and I&apos;m not sure if printf will work. It works on OS X though, so getting the general idea reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996380</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-01 12:05:31 -0700</bug_when>
    <thetext>Attachment 228304 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSConsoleClient.cpp:73:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 4 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>996383</commentid>
    <comment_count>4</comment_count>
      <attachid>228304</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-04-01 12:14:48 -0700</bug_when>
    <thetext>Comment on attachment 228304
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:62
&gt; +    Boolean preference = CFPreferencesGetAppBooleanValue(CFSTR(&quot;JavaScriptCoreConsoleLogToSystemConsole&quot;), kCFPreferencesCurrentApplication, &amp;keyExistsAndHasValidFormat);

JavaScriptCoreConsoleLogToSystemConsole implies only console.log is printed. A verb like &quot;output&quot; would help too. Maybe: OutputJavaScriptCoreConsoleToSystemConsole. Does this work for WebKit too? Maybe OutputJavaScriptConsoleToSystemConsole if so.

&gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:82
&gt; +    if (JSConsoleClient::logToSystemConsole())

No need for JSConsoleClient:: right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996403</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-04-01 13:23:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 228304 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228304&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:62
&gt; &gt; +    Boolean preference = CFPreferencesGetAppBooleanValue(CFSTR(&quot;JavaScriptCoreConsoleLogToSystemConsole&quot;), kCFPreferencesCurrentApplication, &amp;keyExistsAndHasValidFormat);
&gt; 
&gt; JavaScriptCoreConsoleLogToSystemConsole implies only console.log is printed. A verb like &quot;output&quot; would help too. Maybe: OutputJavaScriptCoreConsoleToSystemConsole. Does this work for WebKit too? Maybe OutputJavaScriptConsoleToSystemConsole if so.

I want the preference to start with &quot;JavaScriptCore&quot; as a namespacing thing. There is one other CFPreference in JavaScriptCore and it does the same.

Any preference among these?

    - &quot;JavaScriptCoreOutputConsoleMessagesToSystemConsole&quot;
    - &quot;JavaScriptCoreLogConsoleMessagesToSystemConsole&quot;
    - &quot;JavaScriptCoreConsoleLogToSystemConsoleEnabled&quot;


&gt; &gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:82
&gt; &gt; +    if (JSConsoleClient::logToSystemConsole())
&gt; 
&gt; No need for JSConsoleClient:: right?

Correct, but I prefer the explicit prefix because it makes it obvious that this is a static/class function and not a member function. If we have a style one way or the other I can match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996412</commentid>
    <comment_count>6</comment_count>
      <attachid>228304</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-04-01 13:32:47 -0700</bug_when>
    <thetext>Comment on attachment 228304
[PATCH] Proposed Fix

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

&gt;&gt;&gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:62
&gt;&gt;&gt; +    Boolean preference = CFPreferencesGetAppBooleanValue(CFSTR(&quot;JavaScriptCoreConsoleLogToSystemConsole&quot;), kCFPreferencesCurrentApplication, &amp;keyExistsAndHasValidFormat);
&gt;&gt; 
&gt;&gt; JavaScriptCoreConsoleLogToSystemConsole implies only console.log is printed. A verb like &quot;output&quot; would help too. Maybe: OutputJavaScriptCoreConsoleToSystemConsole. Does this work for WebKit too? Maybe OutputJavaScriptConsoleToSystemConsole if so.
&gt; 
&gt; I want the preference to start with &quot;JavaScriptCore&quot; as a namespacing thing. There is one other CFPreference in JavaScriptCore and it does the same.
&gt; 
&gt; Any preference among these?
&gt; 
&gt;     - &quot;JavaScriptCoreOutputConsoleMessagesToSystemConsole&quot;
&gt;     - &quot;JavaScriptCoreLogConsoleMessagesToSystemConsole&quot;
&gt;     - &quot;JavaScriptCoreConsoleLogToSystemConsoleEnabled&quot;

Prefixing with JSC makes sense. I like JavaScriptCoreOutputConsoleMessagesToSystemConsole.

&gt;&gt;&gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:82
&gt;&gt;&gt; +    if (JSConsoleClient::logToSystemConsole())
&gt;&gt; 
&gt;&gt; No need for JSConsoleClient:: right?
&gt; 
&gt; Correct, but I prefer the explicit prefix because it makes it obvious that this is a static/class function and not a member function. If we have a style one way or the other I can match.

It looks like you are calling a base class method with this syntax. I know I have seen other static methods called without a prefix in WebCore. Not sure there is a formal style guide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997318</commentid>
    <comment_count>7</comment_count>
      <attachid>228546</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-04-03 14:57:12 -0700</bug_when>
    <thetext>Created attachment 228546
[PATCH] Revised

This refactors all the printfs instead StringBuilder + WTFLogAlways. It also includes the updated default name. I tested on iOS this works (the printf would have too, but I think this is nicer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997319</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-03 14:58:52 -0700</bug_when>
    <thetext>Attachment 228546 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSConsoleClient.cpp:73:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 4 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>997664</commentid>
    <comment_count>9</comment_count>
      <attachid>228546</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-04-04 12:26:56 -0700</bug_when>
    <thetext>Comment on attachment 228546
[PATCH] Revised

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

&gt; Source/JavaScriptCore/inspector/JSConsoleClient.cpp:75
&gt; +    static std::once_flag initializeLogging;
&gt; +    std::call_once(initializeLogging, []{
&gt; +        JSConsoleClient::initializeLogToSystemConsole();
&gt; +    });

This makes the default behave differently than the WebKit2 equivalent setting. It can only be changed between executions, not while the app is running. That seems fine, but it might be limiting if an app needed to change it at runtime (like with a command line flag or checkbox.) The solution would require always calling CFPreferencesGetAppBooleanValue, or exposing a JSC API to change it at runtime. We can cross that bridge when needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997669</commentid>
    <comment_count>10</comment_count>
      <attachid>228546</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-04 12:58:13 -0700</bug_when>
    <thetext>Comment on attachment 228546
[PATCH] Revised

Clearing flags on attachment: 228546

Committed r166799: &lt;http://trac.webkit.org/changeset/166799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997670</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-04 12:58:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228304</attachid>
            <date>2014-04-01 12:03:49 -0700</date>
            <delta_ts>2014-04-03 14:57:12 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>logging.patch</filename>
            <type>text/plain</type>
            <size>6228</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDcwNDE4Y2EuLmQ2ZTQxMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTA0LTAxICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdmlk
ZSBhIHdheSBmb3IgSlNDb250ZXh0IGNvbnNvbGUgdG8gbG9nIHRvIHN5c3RlbSBjb25zb2xlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEwNTAKKwor
ICAgICAgICBBcHBsaWNhdGlvbnMgb2Z0ZW4gcmUtZXhwb3NlIHNvbWUgbG9nIC0+IE5TTG9nIGZ1
bmN0aW9uYWxpdHkuCisgICAgICAgIFdlIGFscmVhZHkgaGF2ZSB0aGUgY2FwYWJpbGl0eSBvdXJz
ZWx2ZXMsIHdoaWNoIGluY2x1ZGVzIGV4dHJhCisgICAgICAgIGluZm9ybWF0aW9uIHN1Y2ggYXMg
c291cmNlVVJMOmxpbmU6Y29sdW1uLCBhbGwgYXJndW1lbnRzIGluc3RlYWQKKyAgICAgICAgb2Yg
anVzdCBvbmUgYXJndW1lbnQsIGFuZCBiYWNrdHJhY2UgaW5mb3JtYXRpb24gb24gY29uc29sZS50
cmFjZS4KKyAgICAgICAgVGhlcmVmb3JlIGl0IHdvdWxkIGJlIGNvbnZlbmllbnQgaWYgZGV2ZWxv
cGVycyBjb3VsZCBqdXN0IHVzZQorICAgICAgICB0aGUgYnVpbHQtaW4gY29uc29sZS5sb2cgYW5k
IGdldCByaWNoIG91dHB1dCBpbiBib3RoIHRoZSBpbnNwZWN0b3IKKyAgICAgICAgYW5kIHRoZSBj
b25zb2xlLCB3aXRob3V0IHdyaXRpbmcgdGhlaXIgb3duIGxvZ2dlci4KKworICAgICAgICBUaGUg
bG9nZ2luZyB3aWxsIGJlIGVuYWJsZWQgaW4gZGVidWcgYnVpbGRzIGJ5IGRlZmF1bHQsIGFuZCBj
YW4gYmUgZW5hYmxlZAorICAgICAgICBvdGhlcndpc2UgYnkgc2V0dGluZyBhIHVzZXIgZGVmYXVs
dCBiZWZvcmUgY3JlYXRpbmcgdGhlIGZpcnN0IGNvbnRleHQuCisgICAgICAgIAorICAgICAgICBG
b3IgZXhhbXBsZSwgaW4gdGhlIGFwcGxpY2F0aW9uIGl0c2VsZjoKKworICAgICAgICAgICAgW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpZRVMgZm9yS2V5OkAi
SmF2YVNjcmlwdENvcmVDb25zb2xlTG9nVG9TeXN0ZW1Db25zb2xlIl07CisKKyAgICAgICAgT3Ig
ZnJvbSBvdXRzaWRlIHRoZSBhcHBsaWNhdGlvbjoKKyAgICAgICAgCisgICAgICAgICAgICBzaGVs
bD4gZGVmYXVsdHMgd3JpdGUgPGFwcC1idW5kbGUtaWRlbnRpZmllcj4gSmF2YVNjcmlwdENvcmVD
b25zb2xlTG9nVG9TeXN0ZW1Db25zb2xlIC1ib29sIFlFUworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0pTQ29uc29sZUNsaWVudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSW5z
cGVjdG9yOjpKU0NvbnNvbGVDbGllbnQ6OmxvZ1RvU3lzdGVtQ29uc29sZSk6CisgICAgICAgIChJ
bnNwZWN0b3I6OkpTQ29uc29sZUNsaWVudDo6c2V0TG9nVG9TeXN0ZW1Db25zb2xlKToKKyAgICAg
ICAgKEluc3BlY3Rvcjo6SlNDb25zb2xlQ2xpZW50Ojppbml0aWFsaXplTG9nVG9TeXN0ZW1Db25z
b2xlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNDb25zb2xlQ2xpZW50OjpKU0NvbnNvbGVDbGll
bnQpOgorICAgICAgICBHbG9iYWwgc2V0dGluZyBmb3IgbG9nZ2luZyB0byBzeXN0ZW0gY29uc29s
ZS4gRW5hYmxlZCBvbgorICAgICAgICBkZWJ1ZyBidWlsZHMsIGFuZCBieSBhIHVzZXIgZGVmYXVs
dCBvbiBzdXBwb3J0ZWQgcGxhdGZvcm1zLgorCisgICAgICAgIChJbnNwZWN0b3I6OkpTQ29uc29s
ZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwpOgorICAgICAgICBMb2cgdG8gc3lzdGVt
IGNvbnNvbGUgd2hlbiB0aGUgc3RhdGljIHNldHRpbmcgaXMgZW5hYmxlZC4KKworICAgICAgICAq
IHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6
OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAgICAgQ2xlYW4gdXAgcHJp
bnRpbmcuIElmIHRoZXJlIGlzIG5vIHNvdXJjZSBVUkwsIGRvbid0IHByaW50IGEgbGVhZGluZyBj
b2xvbi4KKwogMjAxNC0wMy0zMSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcHJvdmUgR0NfTE9HR0lORwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuY3BwCmluZGV4IDU3MmNjNWMuLmY0
ZDhlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNDb25z
b2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTQ29u
c29sZUNsaWVudC5jcHAKQEAgLTMzLDIzICszMyw1NCBAQAogI2luY2x1ZGUgIlNjcmlwdENhbGxT
dGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKIAorI2lmIFVTRShD
RikKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2VuZGlmCisK
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCitzdGF0aWMg
Ym9vbCBzTG9nVG9TeXN0ZW1Db25zb2xlID0gZmFsc2U7CisKK2Jvb2wgSlNDb25zb2xlQ2xpZW50
Ojpsb2dUb1N5c3RlbUNvbnNvbGUoKQoreworICAgIHJldHVybiBzTG9nVG9TeXN0ZW1Db25zb2xl
OworfQorCit2b2lkIEpTQ29uc29sZUNsaWVudDo6c2V0TG9nVG9TeXN0ZW1Db25zb2xlKGJvb2wg
c2hvdWxkTG9nKQoreworICAgIHNMb2dUb1N5c3RlbUNvbnNvbGUgPSBzaG91bGRMb2c7Cit9CisK
K3ZvaWQgSlNDb25zb2xlQ2xpZW50Ojppbml0aWFsaXplTG9nVG9TeXN0ZW1Db25zb2xlKCkKK3sK
KyNpZiAhTE9HX0RJU0FCTEVECisgICAgc0xvZ1RvU3lzdGVtQ29uc29sZSA9IHRydWU7CisjZWxp
ZiBVU0UoQ0YpCisgICAgQm9vbGVhbiBrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCA9IGZhbHNl
OworICAgIEJvb2xlYW4gcHJlZmVyZW5jZSA9IENGUHJlZmVyZW5jZXNHZXRBcHBCb29sZWFuVmFs
dWUoQ0ZTVFIoIkphdmFTY3JpcHRDb3JlQ29uc29sZUxvZ1RvU3lzdGVtQ29uc29sZSIpLCBrQ0ZQ
cmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwgJmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0
KTsKKyAgICBpZiAoa2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQpCisgICAgICAgIHNMb2dUb1N5
c3RlbUNvbnNvbGUgPSBwcmVmZXJlbmNlOworI2VuZGlmCit9CisKIEpTQ29uc29sZUNsaWVudDo6
SlNDb25zb2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50KQogICAg
IDogQ29uc29sZUNsaWVudCgpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChjb25zb2xlQWdlbnQpCiB7
CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVMb2dnaW5nOworICAgIHN0ZDo6
Y2FsbF9vbmNlKGluaXRpYWxpemVMb2dnaW5nLCBbXXsKKyAgICAgICAgSlNDb25zb2xlQ2xpZW50
Ojppbml0aWFsaXplTG9nVG9TeXN0ZW1Db25zb2xlKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgSlND
b25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4gcHJwQXJndW1lbnRzKQogewogICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+
IGFyZ3VtZW50cyA9IHBycEFyZ3VtZW50czsKIAotI2lmICFMT0dfRElTQUJMRUQKLSAgICBDb25z
b2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNl
OjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgZXhlYywgYXJndW1lbnRzKTsKLSNlbmRpZgorICAg
IGlmIChKU0NvbnNvbGVDbGllbnQ6OmxvZ1RvU3lzdGVtQ29uc29sZSgpKQorICAgICAgICBDb25z
b2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNl
OjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgZXhlYywgYXJndW1lbnRzKTsKIAogICAgIFN0cmlu
ZyBtZXNzYWdlOwogICAgIGFyZ3VtZW50cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3Nh
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0NvbnNv
bGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNDb25zb2xlQ2xp
ZW50LmgKaW5kZXggYTlmNzRjOC4uZjdlNWY3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTQ29uc29sZUNsaWVudC5oCkBAIC0zNyw2ICszNywxMCBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgSlNDb25zb2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCop
OwogICAgIHZpcnR1YWwgfkpTQ29uc29sZUNsaWVudCgpIHsgfQogCisgICAgc3RhdGljIGJvb2wg
bG9nVG9TeXN0ZW1Db25zb2xlKCk7CisgICAgc3RhdGljIHZvaWQgc2V0TG9nVG9TeXN0ZW1Db25z
b2xlKGJvb2wpOworICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVMb2dUb1N5c3RlbUNvbnNvbGUo
KTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvdW50KEpTQzo6
RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXggODdj
MDc1MS4uZGM1OGZhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29u
c29sZUNsaWVudC5jcHAKQEAgLTEzNCwxMyArMTM0LDE3IEBAIHZvaWQgQ29uc29sZUNsaWVudDo6
cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhCiAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENh
bGxTdGFja0ZvckNvbnNvbGUoZXhlYywgc3RhY2tTaXplKSk7CiAgICAgY29uc3QgU2NyaXB0Q2Fs
bEZyYW1lJiBsYXN0Q2FsbGVyID0gY2FsbFN0YWNrLT5hdCgwKTsKIAotICAgIENvbnNvbGVDbGll
bnQ6OnByaW50VVJMQW5kUG9zaXRpb24obGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxl
ci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuY29sdW1uTnVtYmVyKCkpOwotICAgIHByaW50Zigi
OiAiKTsKKyAgICBpZiAoIWxhc3RDYWxsZXIuc291cmNlVVJMKCkuaXNFbXB0eSgpKSB7CisgICAg
ICAgIENvbnNvbGVDbGllbnQ6OnByaW50VVJMQW5kUG9zaXRpb24obGFzdENhbGxlci5zb3VyY2VV
UkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuY29sdW1uTnVtYmVyKCkp
OworICAgICAgICBwcmludGYoIjogIik7CisgICAgfQorCiAgICAgQ29uc29sZUNsaWVudDo6cHJp
bnRNZXNzYWdlUHJlZml4KHNvdXJjZSwgdHlwZSwgbGV2ZWwpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYXJndW1lbnRzLT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICBTdHJp
bmcgYXJnQXNTdHJpbmcgPSBhcmd1bWVudHMtPmFyZ3VtZW50QXQoaSkudG9TdHJpbmcoYXJndW1l
bnRzLT5nbG9iYWxTdGF0ZSgpKTsKICAgICAgICAgcHJpbnRmKCIgJXMiLCBhcmdBc1N0cmluZy51
dGY4KCkuZGF0YSgpKTsKICAgICB9CisKICAgICBwcmludGYoIlxuIik7CiAKICAgICBpZiAoaXNU
cmFjZU1lc3NhZ2UpIHsK
</data>
<flag name="review"
          id="252582"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="252583"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228546</attachid>
            <date>2014-04-03 14:57:12 -0700</date>
            <delta_ts>2014-04-04 12:58:13 -0700</delta_ts>
            <desc>[PATCH] Revised</desc>
            <filename>revised.patch</filename>
            <type>text/plain</type>
            <size>11492</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNhZWM2MjguLjE5NzZmZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA0LTAzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdmlk
ZSBhIHdheSBmb3IgSlNDb250ZXh0IGNvbnNvbGUgdG8gbG9nIHRvIHN5c3RlbSBjb25zb2xlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEwNTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgQXBwbGljYXRp
b25zIG9mdGVuIHJlLWV4cG9zZSBzb21lIGxvZyAtPiBOU0xvZyBmdW5jdGlvbmFsaXR5LgorICAg
ICAgICBXZSBhbHJlYWR5IGhhdmUgdGhlIGNhcGFiaWxpdHkgb3Vyc2VsdmVzLCB3aGljaCBpbmNs
dWRlcyBleHRyYQorICAgICAgICBpbmZvcm1hdGlvbiBzdWNoIGFzIHNvdXJjZVVSTDpsaW5lOmNv
bHVtbiwgYWxsIGFyZ3VtZW50cyBpbnN0ZWFkCisgICAgICAgIG9mIGp1c3Qgb25lIGFyZ3VtZW50
LCBhbmQgYmFja3RyYWNlIGluZm9ybWF0aW9uIG9uIGNvbnNvbGUudHJhY2UuCisgICAgICAgIFRo
ZXJlZm9yZSBpdCB3b3VsZCBiZSBjb252ZW5pZW50IGlmIGRldmVsb3BlcnMgY291bGQganVzdCB1
c2UKKyAgICAgICAgdGhlIGJ1aWx0LWluIGNvbnNvbGUubG9nIGFuZCBnZXQgcmljaCBvdXRwdXQg
aW4gYm90aCB0aGUgaW5zcGVjdG9yCisgICAgICAgIGFuZCB0aGUgY29uc29sZSwgd2l0aG91dCB3
cml0aW5nIHRoZWlyIG93biBsb2dnZXIuCisKKyAgICAgICAgVGhlIGxvZ2dpbmcgd2lsbCBiZSBl
bmFibGVkIGluIGRlYnVnIGJ1aWxkcyBieSBkZWZhdWx0LCBhbmQgY2FuIGJlIGVuYWJsZWQKKyAg
ICAgICAgb3RoZXJ3aXNlIGJ5IHNldHRpbmcgYSB1c2VyIGRlZmF1bHQgYmVmb3JlIGNyZWF0aW5n
IHRoZSBmaXJzdCBjb250ZXh0LgorICAgICAgICAKKyAgICAgICAgRm9yIGV4YW1wbGUsIGluIHRo
ZSBhcHBsaWNhdGlvbiBpdHNlbGY6CisKKyAgICAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6WUVTIGZvcktleTpAIkphdmFTY3JpcHRDb3JlT3V0
cHV0Q29uc29sZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlIl07CisKKyAgICAgICAgT3IgZnJvbSBv
dXRzaWRlIHRoZSBhcHBsaWNhdGlvbjoKKyAgICAgICAgCisgICAgICAgICAgICBzaGVsbD4gZGVm
YXVsdHMgd3JpdGUgPGFwcC1idW5kbGUtaWRlbnRpZmllcj4gSmF2YVNjcmlwdENvcmVPdXRwdXRD
b25zb2xlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGUgLWJvb2wgWUVTCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSlNDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTQ29uc29sZUNs
aWVudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTQ29uc29sZUNsaWVudDo6bG9nVG9TeXN0
ZW1Db25zb2xlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNDb25zb2xlQ2xpZW50OjpzZXRMb2dU
b1N5c3RlbUNvbnNvbGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0NvbnNvbGVDbGllbnQ6Omlu
aXRpYWxpemVMb2dUb1N5c3RlbUNvbnNvbGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0NvbnNv
bGVDbGllbnQ6OkpTQ29uc29sZUNsaWVudCk6CisgICAgICAgIEdsb2JhbCBzZXR0aW5nIGZvciBs
b2dnaW5nIHRvIHN5c3RlbSBjb25zb2xlLiBFbmFibGVkIG9uCisgICAgICAgIGRlYnVnIGJ1aWxk
cywgYW5kIGJ5IGEgdXNlciBkZWZhdWx0IG9uIHN1cHBvcnRlZCBwbGF0Zm9ybXMuCisKKyAgICAg
ICAgKEluc3BlY3Rvcjo6SlNDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbCk6
CisgICAgICAgIExvZyB0byBzeXN0ZW0gY29uc29sZSB3aGVuIHRoZSBzdGF0aWMgc2V0dGluZyBp
cyBlbmFibGVkLgorCisgICAgICAgICogcnVudGltZS9Db25zb2xlQ2xpZW50Lmg6CisgICAgICAg
ICogcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKEpTQzo6YXBwZW5kVVJMQW5k
UG9zaXRpb24pOgorICAgICAgICAoSlNDOjphcHBlbmRNZXNzYWdlUHJlZml4KToKKyAgICAgICAg
KEpTQzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChKU0M6
OkNvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAg
ICAgQ2xlYW4gdXAgcHJpbnRpbmcuIEJ1aWxkIHN0cmluZ3MgYW5kIHVzZSBXVEZMb2dBbHdheXMg
aW5zdGVhZCBvZiBwcmludGYKKyAgICAgICAgZm9yIGNvbnNpc3RhbnQgbG9nZ2luZy4KKworICAg
ICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVD
bGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAgICAgQ2xlYW4g
dXAgcHJpbnRpbmcuIElmIHRoZXJlIGlzIG5vIHNvdXJjZSBVUkwsIGRvbid0IHByaW50IGEgbGVh
ZGluZyBjb2xvbi4KKwogMjAxNC0wNC0wMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEhlYXBQcm9maWxlciBmcm9tIHRoZSBXZWIgSW5zcGVj
dG9yIHByb3RvY29sLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0NvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0NvbnNvbGVDbGllbnQuY3BwCmluZGV4IDU3MmNjNWMuLjg4ZDdhY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNDb25zb2xlQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTQ29uc29sZUNsaWVudC5jcHAKQEAgLTMz
LDIzICszMyw1NCBAQAogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKIAorI2lmIFVTRShDRikKKyNpbmNsdWRlIDxDb3JlRm91
bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCitzdGF0aWMgYm9vbCBzTG9nVG9TeXN0ZW1Db25z
b2xlID0gZmFsc2U7CisKK2Jvb2wgSlNDb25zb2xlQ2xpZW50Ojpsb2dUb1N5c3RlbUNvbnNvbGUo
KQoreworICAgIHJldHVybiBzTG9nVG9TeXN0ZW1Db25zb2xlOworfQorCit2b2lkIEpTQ29uc29s
ZUNsaWVudDo6c2V0TG9nVG9TeXN0ZW1Db25zb2xlKGJvb2wgc2hvdWxkTG9nKQoreworICAgIHNM
b2dUb1N5c3RlbUNvbnNvbGUgPSBzaG91bGRMb2c7Cit9CisKK3ZvaWQgSlNDb25zb2xlQ2xpZW50
Ojppbml0aWFsaXplTG9nVG9TeXN0ZW1Db25zb2xlKCkKK3sKKyNpZiAhTE9HX0RJU0FCTEVECisg
ICAgc0xvZ1RvU3lzdGVtQ29uc29sZSA9IHRydWU7CisjZWxpZiBVU0UoQ0YpCisgICAgQm9vbGVh
biBrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCA9IGZhbHNlOworICAgIEJvb2xlYW4gcHJlZmVy
ZW5jZSA9IENGUHJlZmVyZW5jZXNHZXRBcHBCb29sZWFuVmFsdWUoQ0ZTVFIoIkphdmFTY3JpcHRD
b3JlT3V0cHV0Q29uc29sZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlIiksIGtDRlByZWZlcmVuY2Vz
Q3VycmVudEFwcGxpY2F0aW9uLCAma2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQpOworICAgIGlm
IChrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCkKKyAgICAgICAgc0xvZ1RvU3lzdGVtQ29uc29s
ZSA9IHByZWZlcmVuY2U7CisjZW5kaWYKK30KKwogSlNDb25zb2xlQ2xpZW50OjpKU0NvbnNvbGVD
bGllbnQoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQpCiAgICAgOiBDb25zb2xl
Q2xpZW50KCkKICAgICAsIG1fY29uc29sZUFnZW50KGNvbnNvbGVBZ2VudCkKIHsKKyAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUxvZ2dpbmc7CisgICAgc3RkOjpjYWxsX29uY2Uo
aW5pdGlhbGl6ZUxvZ2dpbmcsIFtdeworICAgICAgICBKU0NvbnNvbGVDbGllbnQ6OmluaXRpYWxp
emVMb2dUb1N5c3RlbUNvbnNvbGUoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBKU0NvbnNvbGVDbGll
bnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiBwcnBBcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
ID0gcHJwQXJndW1lbnRzOwogCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIENvbnNvbGVDbGllbnQ6
OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVB
UEksIHR5cGUsIGxldmVsLCBleGVjLCBhcmd1bWVudHMpOwotI2VuZGlmCisgICAgaWYgKEpTQ29u
c29sZUNsaWVudDo6bG9nVG9TeXN0ZW1Db25zb2xlKCkpCisgICAgICAgIENvbnNvbGVDbGllbnQ6
OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVB
UEksIHR5cGUsIGxldmVsLCBleGVjLCBhcmd1bWVudHMpOwogCiAgICAgU3RyaW5nIG1lc3NhZ2U7
CiAgICAgYXJndW1lbnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTQ29uc29sZUNsaWVudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuaAppbmRl
eCBhOWY3NGM4Li5mN2U1Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTQ29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNDb25zb2xlQ2xpZW50LmgKQEAgLTM3LDYgKzM3LDEwIEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBKU0NvbnNvbGVDbGllbnQoSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7CiAgICAgdmly
dHVhbCB+SlNDb25zb2xlQ2xpZW50KCkgeyB9CiAKKyAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3Rl
bUNvbnNvbGUoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCk7
CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUxvZ1RvU3lzdGVtQ29uc29sZSgpOworCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUq
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAppbmRleCA4N2MwNzUxLi5jMWI5
ZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50
LmNwcApAQCAtMzAsMjggKzMwLDM0IEBACiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCi0jaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBKU0MgewogCi12b2lkIENvbnNvbGVDbGllbnQ6OnBy
aW50VVJMQW5kUG9zaXRpb24oY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlcikKK3N0YXRpYyB2b2lkIGFwcGVuZFVSTEFuZFBvc2l0aW9u
KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIpCiB7CiAgICAgaWYgKHVybC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChsaW5lTnVtYmVyID4gMCAmJiBjb2x1bW5OdW1i
ZXIgPiAwKQotICAgICAgICBwcmludGYoIiVzOiV1OiV1IiwgdXJsLnV0ZjgoKS5kYXRhKCksIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlcik7Ci0gICAgZWxzZSBpZiAobGluZU51bWJlciA+IDApCi0g
ICAgICAgIHByaW50ZigiJXM6JXUiLCB1cmwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7Ci0g
ICAgZWxzZQotICAgICAgICBwcmludGYoIiVzIiwgdXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIGJ1
aWxkZXIuYXBwZW5kKHVybCk7CisKKyAgICBpZiAobGluZU51bWJlciA+IDApIHsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobGluZU51
bWJlcik7CisgICAgfQorCisgICAgaWYgKGNvbHVtbk51bWJlciA+IDApIHsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoY29sdW1uTnVt
YmVyKTsKKyAgICB9CiB9CiAKLXZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRNZXNzYWdlUHJlZml4
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwpCitzdGF0aWMgdm9pZCBhcHBlbmRNZXNzYWdlUHJlZml4KFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwpCiB7CiAgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOwogICAgIHN3aXRjaCAoc291
cmNlKSB7CkBAIC0xMTQsMTUgKzEyMCwyNSBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50TWVz
c2FnZVByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTQogICAg
IGlmICh0eXBlID09IE1lc3NhZ2VUeXBlOjpUcmFjZSkKICAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
VFJBQ0UiOwogCi0gICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5n
KTsKKyAgICBidWlsZGVyLmFwcGVuZChzb3VyY2VTdHJpbmcpOworICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CisgICAgYnVpbGRlci5hcHBlbmQobGV2ZWxTdHJpbmcpOwogfQogCiB2b2lkIENvbnNv
bGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVt
YmVyKQogewotICAgIENvbnNvbGVDbGllbnQ6OnByaW50VVJMQW5kUG9zaXRpb24odXJsLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIpOwotICAgIHByaW50ZigiOiAiKTsKLSAgICBDb25zb2xlQ2xp
ZW50OjpwcmludE1lc3NhZ2VQcmVmaXgoc291cmNlLCB0eXBlLCBsZXZlbCk7Ci0gICAgcHJpbnRm
KCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworCisgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CisgICAgICAgIGFwcGVuZFVSTEFuZFBv
c2l0aW9uKGJ1aWxkZXIsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOworICAgIH0KKworICAgIGFwcGVuZE1lc3NhZ2VQ
cmVmaXgoYnVpbGRlciwgc291cmNlLCB0eXBlLCBsZXZlbCk7CisgICAgYnVpbGRlci5hcHBlbmQo
JyAnKTsKKyAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKKworICAgIFdURkxvZ0Fsd2F5cygi
JXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZvaWQgQ29uc29s
ZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBwcnBBcmd1bWVudHMpCkBAIC0x
MzQsMTQgKzE1MCwyMSBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VX
aXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYQogICAgIFJlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4
ZWMsIHN0YWNrU2l6ZSkpOwogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgbGFzdENhbGxlciA9
IGNhbGxTdGFjay0+YXQoMCk7CiAKLSAgICBDb25zb2xlQ2xpZW50OjpwcmludFVSTEFuZFBvc2l0
aW9uKGxhc3RDYWxsZXIuc291cmNlVVJMKCksIGxhc3RDYWxsZXIubGluZU51bWJlcigpLCBsYXN0
Q2FsbGVyLmNvbHVtbk51bWJlcigpKTsKLSAgICBwcmludGYoIjogIik7Ci0gICAgQ29uc29sZUNs
aWVudDo6cHJpbnRNZXNzYWdlUHJlZml4KHNvdXJjZSwgdHlwZSwgbGV2ZWwpOworICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKworICAgIGlmICghbGFzdENhbGxlci5zb3VyY2VVUkwoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgYXBwZW5kVVJMQW5kUG9zaXRpb24oYnVpbGRlciwgbGFzdENhbGxl
ci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuY29sdW1u
TnVtYmVyKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CisgICAgfQor
CisgICAgYXBwZW5kTWVzc2FnZVByZWZpeChidWlsZGVyLCBzb3VyY2UsIHR5cGUsIGxldmVsKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpOyAr
K2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0gYXJndW1lbnRzLT5hcmd1bWVudEF0
KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUoKSk7Ci0gICAgICAgIHByaW50Zigi
ICVzIiwgYXJnQXNTdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFyZ0FzU3RyaW5nLnV0ZjgoKS5kYXRhKCkp
OwogICAgIH0KLSAgICBwcmludGYoIlxuIik7CisKKyAgICBXVEZMb2dBbHdheXMoIiVzIiwgYnVp
bGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKGlzVHJhY2VNZXNzYWdl
KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2FsbFN0YWNrLT5zaXplKCk7ICsr
aSkgewpAQCAtMTQ5LDkgKzE3MiwxNiBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29s
ZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYQogICAgICAg
ICAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IFN0cmluZyhjYWxsRnJhbWUuZnVuY3Rpb25OYW1l
KCkpOwogICAgICAgICAgICAgaWYgKGZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICAgICAgZnVuY3Rpb25OYW1lID0gQVNDSUlMaXRlcmFsKCIodW5rbm93bikiKTsKLSAgICAgICAg
ICAgIHByaW50ZigiJWx1OiAlcyAoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaSksIGZ1
bmN0aW9uTmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIENvbnNvbGVDbGllbnQ6OnBy
aW50VVJMQW5kUG9zaXRpb24oY2FsbEZyYW1lLnNvdXJjZVVSTCgpLCBjYWxsRnJhbWUubGluZU51
bWJlcigpLCBjYWxsRnJhbWUuY29sdW1uTnVtYmVyKCkpOwotICAgICAgICAgICAgcHJpbnRmKCIp
XG4iKTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBjYWxsRnJhbWVCdWlsZGVyOworICAg
ICAgICAgICAgY2FsbEZyYW1lQnVpbGRlci5hcHBlbmROdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgbG9uZz4oaSkpOworICAgICAgICAgICAgY2FsbEZyYW1lQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCI6ICIpOworICAgICAgICAgICAgY2FsbEZyYW1lQnVpbGRlci5hcHBlbmQoZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgICAgIGNhbGxGcmFtZUJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgICAg
ICBhcHBlbmRVUkxBbmRQb3NpdGlvbihjYWxsRnJhbWVCdWlsZGVyLCBjYWxsRnJhbWUuc291cmNl
VVJMKCksIGNhbGxGcmFtZS5saW5lTnVtYmVyKCksIGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIoKSk7
CisgICAgICAgICAgICBjYWxsRnJhbWVCdWlsZGVyLmFwcGVuZCgnKScpOworCisgICAgICAgICAg
ICBXVEZMb2dBbHdheXMoIiVzIiwgY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29uc29sZUNsaWVudC5oCmluZGV4IDdlNzg0ZWY3Li44ZjRmMTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCkBAIC00MSw4ICs0MSw2
IEBAIGNsYXNzIENvbnNvbGVDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkNvbnNvbGVD
bGllbnQoKSB7IH0KIAotICAgIHN0YXRpYyB2b2lkIHByaW50VVJMQW5kUG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcik7
Ci0gICAgc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlUHJlZml4KE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lk
IHByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyKTsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgdm9pZCBwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>