<?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>181825</bug_id>
          
          <creation_ts>2018-01-18 17:55:50 -0800</creation_ts>
          <short_desc>[GTK] USE_UPOWER causes crashes inside a chroot or on systems with broken dbus/upower</short_desc>
          <delta_ts>2018-02-21 11:42:39 -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>WebKitGTK</component>
          <version>WebKit Local 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>
          
          <blocked>177810</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1390749</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-01-18 17:55:50 -0800</bug_when>
    <thetext>I&apos;m trying to run the GTK layout tests inside a chroot  and I get a lot of test crashing.

Hunting this down it seem it happens only when USE_UPOWER is set.

The problem seems to be that on the constructor of LowPowerModeNotifier at Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp the call to up_client_get_display_device() is returning NULL ( which is ok according to the doc https://upower.freedesktop.org/docs/UPower-up-client.html#up-client-get-display-device ) so we end calling g_signal_connect_swapped with NULL and everything blows up.

Also up_client_new() can as well return NULL according to the doc.

Actually in my test case both are returning NULL, so both m_device and m_upClient are nullptr.

I think we need to check at run-time this, and bail out properly in case something is wrong.

Having UPOWER support at build time doesn&apos;t means that it will be functional at run-time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391503</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 14:29:04 -0800</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #0)
&gt; Having UPOWER support at build time doesn&apos;t means that it will be functional
&gt; at run-time.

It&apos;s also broken in flatpak, but that is a harder problem... we have to create a freedesktop battery status portal to make that case work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391504</commentid>
    <comment_count>2</comment_count>
      <attachid>331883</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 14:29:46 -0800</bug_when>
    <thetext>Created attachment 331883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391505</commentid>
    <comment_count>3</comment_count>
      <attachid>331883</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 14:33:26 -0800</bug_when>
    <thetext>Comment on attachment 331883
Patch

Not ready for review, I missed your warning about up_client_new() also returning NULL.

And the docs seem to indicate that up_client_new() is synchronous, with a recommendation to use a method that does not exist if we want to avoid that behavior. So we&apos;re probably going to need to dispatch all the work to a secondary thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391506</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 15:48:35 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; And the docs seem to indicate that up_client_new() is synchronous, with a
&gt; recommendation to use a method that does not exist if we want to avoid that
&gt; behavior. So we&apos;re probably going to need to dispatch all the work to a
&gt; secondary thread.

There is up_client_new_full(), which does actually exist, but is missing from the documentation. But it&apos;s fully synchronous too.

This is a problem because we don&apos;t want LowPowerModeNotifier to take five seconds (or whatever its timeout is) to construct. LowPowerModeNotifier construction ought to complete instantaneously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391626</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-22 07:09:46 -0800</bug_when>
    <thetext>The author of upower-glib suggests that we should not use it:

mcatanzaro	Heeey hughsie, I have a question about upower-glib. It looks like the API is fully synchronous, right? up_client_new() and up_client_new_full() will both hang until a timeout if upowerd is not responding via D-Bus? So the whole API is intended to be used either by non-GUI applications, or on a secondary thread?
hughsie	mcatanzaro, i gnome-power-manager I think i did it in a thread, right?
although with GDBus you don&apos;t actually need to use the lib
mcatanzaro	I&apos;m trying to decide whether to spin up  another secondary thread to use upower-glib, on to just use the D-Bus API directly.
hughsie	mcatanzaro, go dbus if i were you
mcatanzaro	OK, thanks for the tip

I bet the D-Bus API isn&apos;t too hard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396297</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-02-05 07:38:24 -0800</bug_when>
    <thetext>I think we can maybe land the (In reply to Michael Catanzaro from comment #3)
&gt; Comment on attachment 331883 [details]
&gt; Patch
&gt; 
&gt; Not ready for review, I missed your warning about up_client_new() also
&gt; returning NULL.
&gt; 

I think this patch is fine as a first approach.

I suggest to simply add another null check for up_client_new().

&gt; And the docs seem to indicate that up_client_new() is synchronous, with a
&gt; recommendation to use a method that does not exist if we want to avoid that
&gt; behavior. So we&apos;re probably going to need to dispatch all the work to a
&gt; secondary thread.

Perhaps we can do that in another bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396308</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-05 08:09:42 -0800</bug_when>
    <thetext>No, even with another NULL check, it won&apos;t be OK because the function calls will hang until the D-Bus connection times out. It&apos;s on my short-term TODO list. We need to either fix it properly, or, if you don&apos;t want to wait, remove the USE(UPOWER) support until we have time to get it right.

(We should also make sure it works in Flatpak before bringing it back. We shouldn&apos;t be adding any features that don&apos;t work in Flatpak. That means first creating a freedesktop battery status portal.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396698</commentid>
    <comment_count>8</comment_count>
      <attachid>333155</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-05 21:19:45 -0800</bug_when>
    <thetext>Created attachment 333155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396699</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-05 21:20:52 -0800</bug_when>
    <thetext>Attachment 333155 did not pass style-queue:


ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:41:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:43:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:46:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:53:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:56:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:56:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:57:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:69:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:70:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:71:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:73:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:74:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:76:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:77:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:101:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 21 in 5 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>1396700</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-05 21:22:22 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; Created attachment 333155 [details]
&gt; Patch

This patch seems to work on my desktop, but that&apos;s maybe not very interesting. Any volunteers to test it on a laptop or any device that actually has a battery? I added a bunch of debug output (that&apos;s why the style checker is mad) so that it should be easy to check if it&apos;s giving sane results.

I can test it on my travel laptop if needed, but I&apos;m lazy and would rather not set up a development environment there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400190</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-17 18:41:08 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #10)
&gt; I can test it on my travel laptop if needed, but I&apos;m lazy and would rather
&gt; not set up a development environment there.

Anyone have a quick chance to check on a laptop if the output is sane? Otherwise, I&apos;ll take a day next week to set up an environment to check it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400200</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-17 22:30:44 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; (In reply to Michael Catanzaro from comment #10)
&gt; &gt; I can test it on my travel laptop if needed, but I&apos;m lazy and would rather
&gt; &gt; not set up a development environment there.
&gt; 
&gt; Anyone have a quick chance to check on a laptop if the output is sane?
&gt; Otherwise, I&apos;ll take a day next week to set up an environment to check it
&gt; out.

I have XPS 13 laptop with the development environment.
I&apos;m now applying this patch to my WebKit tree and building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400206</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-17 23:14:29 -0800</bug_when>
    <thetext>Opened Minibrowser, at that time, adapter is connected.

Starting MiniBrowser.
GLib-GIO-Message: Using the &apos;memory&apos; GSettings backend.  Your settings will not be saved or shared with other applications.
xkbcommon: ERROR: Key &quot;&lt;CAPS&gt;&quot; added to modifier map for multiple modifiers; Using Control, ignoring Lock
GLib-GIO-Message: Using the &apos;memory&apos; GSettings backend.  Your settings will not be saved or shared with other applications.
WebCore::LowPowerModeNotifier::LowPowerModeNotifier(WebCore::LowPowerModeNotifier::LowPowerModeChangeCallback&amp;&amp;)
void WebCore::LowPowerModeNotifier::updateWarningLevel()
WarningLevel=1, m_lowPowerModeEnabled=0
Connected to gpropertieschanged!
xkbcommon: ERROR: Key &quot;&lt;CAPS&gt;&quot; added to modifier map for multiple modifiers; Using Control, ignoring Lock
WebCore::LowPowerModeNotifier::LowPowerModeNotifier(WebCore::LowPowerModeNotifier::LowPowerModeChangeCallback&amp;&amp;)
GLib-GIO-Message: Using the &apos;memory&apos; GSettings backend.  Your settings will not be saved or shared with other applications.
void WebCore::LowPowerModeNotifier::updateWarningLevel()
WarningLevel=1, m_lowPowerModeEnabled=0
Connected to gpropertieschanged!
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*) // &lt;- adapter disconnected
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*) // &lt;- adapter reconnected
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400224</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-18 07:48:56 -0800</bug_when>
    <thetext>OK, thanks Yusuke. To be cautious, do you mind leaving your adapter out and testing what happens once you reach low power state? If the WarningLevel changes once you reach low battery, then I&apos;ll strip out the debug and mark it r?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400680</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-19 23:28:57 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; OK, thanks Yusuke. To be cautious, do you mind leaving your adapter out and
&gt; testing what happens once you reach low power state? If the WarningLevel
&gt; changes once you reach low battery, then I&apos;ll strip out the debug and mark
&gt; it r?.

OK, i&apos;ve got the result.

When low-power mode starts,

static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
void WebCore::LowPowerModeNotifier::warningLevelChanged()
void WebCore::LowPowerModeNotifier::updateWarningLevel()
WarningLevel=3, m_lowPowerModeEnabled=1
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
void WebCore::LowPowerModeNotifier::warningLevelChanged()
void WebCore::LowPowerModeNotifier::updateWarningLevel()
WarningLevel=3, m_lowPowerModeEnabled=1

is dumped.
After that, I connected the adapter and got the results.

static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
void WebCore::LowPowerModeNotifier::warningLevelChanged()
void WebCore::LowPowerModeNotifier::updateWarningLevel()
WarningLevel=1, m_lowPowerModeEnabled=0
static void WebCore::LowPowerModeNotifier::gPropertiesChangedCallback(WebCore::LowPowerModeNotifier*, GVariant*)
void WebCore::LowPowerModeNotifier::warningLevelChanged()
void WebCore::LowPowerModeNotifier::updateWarningLevel()
WarningLevel=1, m_lowPowerModeEnabled=0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400825</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-20 10:27:29 -0800</bug_when>
    <thetext>Looks good. Let&apos;s do this. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400831</commentid>
    <comment_count>17</comment_count>
      <attachid>334286</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-20 10:33:36 -0800</bug_when>
    <thetext>Created attachment 334286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401027</commentid>
    <comment_count>18</comment_count>
      <attachid>334286</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-02-20 22:55:30 -0800</bug_when>
    <thetext>Comment on attachment 334286
Patch

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

&gt; Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp:100
&gt; +    if (m_cancellable)
&gt; +        g_cancellable_cancel(m_cancellable.get());

g_cancellable_cancel is null safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401191</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-21 11:42:39 -0800</bug_when>
    <thetext>Committed r228888: &lt;https://trac.webkit.org/changeset/228888&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331883</attachid>
            <date>2018-01-21 14:29:46 -0800</date>
            <delta_ts>2018-02-05 21:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181825-20180121162946.patch</filename>
            <type>text/plain</type>
            <size>2363</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3Mjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjExOTYzMTc1OWNlYTQ5
Zjg4NTk3NWQyMGZiZGFlZTEyYzIwOGUxNS4uYzFmYTc4OGFkYzZhZjJkZTYxNDE5YjA0NTM5MWVm
ODMzNjQ3NDM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTAxLTIxICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBV
U0VfVVBPV0VSIGNhdXNlcyBjcmFzaGVzIGluc2lkZSBhIGNocm9vdCBvciBvbiBzeXN0ZW1zIHdp
dGggYnJva2VuIGRidXMvdXBvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODE4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBlY3QgZmFpbHVyZSB3aGVuIGdldHRpbmcgdGhlIFVwRGV2aWNlLCBh
bmQgbmV2ZXIgZW50ZXIgbG93IHBvd2VyIG1vZGUgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIENv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMsIHdoZW4gcnVuIGluIGFuIGVudmlyb25tZW50IHdoZXJl
IHVwb3dlciBkb2VzIG5vdCB3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9Mb3dQb3dl
ck1vZGVOb3RpZmllckdMaWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG93UG93ZXJNb2RlTm90
aWZpZXI6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bvd2Vy
TW9kZU5vdGlmaWVyOjp+TG93UG93ZXJNb2RlTm90aWZpZXIpOgorCiAyMDE4LTAxLTIxICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaW9zXSBMYXlvdXRUZXN0IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZf
bm90X2FjdGl2ZS5odHRwcy5odG1sIGlzIGNyYXNoaW5nIGluIEpTQzo6SlNPTlBhcnNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0xvd1Bvd2VyTW9kZU5vdGlmaWVy
R0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0xvd1Bvd2VyTW9kZU5vdGlm
aWVyR0xpYi5jcHAKaW5kZXggYzFmZjZhNDMxYTMxNGE4MjZkNDRjNDBjODI5NWM1ZWZmMGNlYjQx
NC4uZTg3ZjczZGQyNmNhMDRhODZhNTZmOGZlMTE2OGFlMGFiZTM1NGY0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Mb3dQb3dlck1vZGVOb3RpZmllckdMaWIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJH
TGliLmNwcApAQCAtMjcsOSArMjcsMTAgQEAgTG93UG93ZXJNb2RlTm90aWZpZXI6Okxvd1Bvd2Vy
TW9kZU5vdGlmaWVyKExvd1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNrJiYgY2FsbGJhY2sKICAgICAs
IG1fZGV2aWNlKGFkb3B0R1JlZih1cF9jbGllbnRfZ2V0X2Rpc3BsYXlfZGV2aWNlKG1fdXBDbGll
bnQuZ2V0KCkpKSkKICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiB7Ci0gICAg
dXBkYXRlU3RhdGUoKTsKLQotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2RldmljZS5n
ZXQoKSwgIm5vdGlmeTo6d2FybmluZy1sZXZlbCIsIEdfQ0FMTEJBQ0sod2FybmluZ0xldmVsQ2Fs
bGJhY2spLCB0aGlzKTsKKyAgICBpZiAobV9kZXZpY2UpIHsKKyAgICAgICAgdXBkYXRlU3RhdGUo
KTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fZGV2aWNlLmdldCgpLCAibm90
aWZ5Ojp3YXJuaW5nLWxldmVsIiwgR19DQUxMQkFDSyh3YXJuaW5nTGV2ZWxDYWxsYmFjayksIHRo
aXMpOworICAgIH0KIH0KIAogdm9pZCBMb3dQb3dlck1vZGVOb3RpZmllcjo6dXBkYXRlU3RhdGUo
KQpAQCAtNDcsNyArNDgsOCBAQCB2b2lkIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjp3YXJuaW5nTGV2
ZWxDYWxsYmFjayhMb3dQb3dlck1vZGVOb3RpZmllciogbm90aWZpZXIpCiAKIExvd1Bvd2VyTW9k
ZU5vdGlmaWVyOjp+TG93UG93ZXJNb2RlTm90aWZpZXIoKQogewotICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2RldmljZS5nZXQoKSwgdGhpcyk7CisgICAgaWYgKG1f
ZGV2aWNlKQorICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2RhdGEobV9k
ZXZpY2UuZ2V0KCksIHRoaXMpOwogfQogCiBib29sIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjppc0xv
d1Bvd2VyTW9kZUVuYWJsZWQoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333155</attachid>
            <date>2018-02-05 21:19:45 -0800</date>
            <delta_ts>2018-02-20 10:33:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181825-20180205231944.patch</filename>
            <type>text/plain</type>
            <size>12620</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI3NDE2ZTNhMTRjMmI2
ODlhYjdjMWM1Mzc3ZTFiMTBjNWJlZTkxMC4uNTVjZDViM2I5NGE0OWU5OTcyMDUyNzdlYTY3N2Rk
ODVkNDFlMWFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTAyLTA1ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBV
U0VfVVBPV0VSIGNhdXNlcyBjcmFzaGVzIGluc2lkZSBhIGNocm9vdCBvciBvbiBzeXN0ZW1zIHdp
dGggYnJva2VuIGRidXMvdXBvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODE4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L0xvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb3dQb3dlck1v
ZGVOb3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZp
ZXJHTGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyOjpMb3dQ
b3dlck1vZGVOb3RpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmll
cjo6dXBkYXRlV2FybmluZ0xldmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bvd2VyTW9kZU5v
dGlmaWVyOjp3YXJuaW5nTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bvd2Vy
TW9kZU5vdGlmaWVyOjpnUHJvcGVydGllc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcjo6fkxvd1Bvd2VyTW9kZU5vdGlmaWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyOjp1cGRhdGVTdGF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcjo6d2FybmluZ0xldmVsQ2Fs
bGJhY2spOiBEZWxldGVkLgorCiAyMDE4LTAyLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBSZWxlYXNlIGFzc2VydCBmYWlsZWQgdW5kZXIg
TmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcAppbmRleCBkYWJlNzMyNWNmZjM2Yzg1OWE4
ZTI3OThiYWMyYmU4Yzc5MTNlOTdjLi4xYWE1YTljMWI0YTcwOTJhNWJjMzEyZjljN2FmNTcxMDk2
ZTdkYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb3dQb3dlck1vZGVO
b3RpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG93UG93ZXJNb2RlTm90
aWZpZXIuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lm
ICFQTEFURk9STShJT1MpICYmICFVU0UoVVBPV0VSKQorI2lmICFQTEFURk9STShJT1MpICYmICFV
U0UoR0xJQikKIAogTG93UG93ZXJNb2RlTm90aWZpZXI6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyKExv
d1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNrJiYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG93UG93ZXJNb2RlTm90aWZpZXIuaAppbmRleCBkYjBiNWM1ZTBkNzNiOWI2YzJmYzJmMzBm
NjYwNzY1ZGRjYTlhMDIyLi42NDI5ODkwZDM3NzVmMDNhYjQyMDI4NWM0NzQ0ZjUwNmQ1Y2ZjZWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvd1Bvd2VyTW9kZU5vdGlmaWVyLmgK
QEAgLTI4LDE1ICsyOCwxMyBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiAjaWYgUExB
VEZPUk0oSU9TKQotCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogT0JKQ19DTEFTUyBXZWJM
b3dQb3dlck1vZGVPYnNlcnZlcjsKLQogI2VuZGlmCiAKLSNpZiBVU0UoVVBPV0VSKQotI2luY2x1
ZGUgPGxpYnVwb3dlci1nbGliL3Vwb3dlci5oPgorI2lmIFVTRShHTElCKQogI2luY2x1ZGUgPHd0
Zi9nbGliL0dSZWZQdHIuaD4KK3R5cGVkZWYgX0dEQnVzUHJveHkgR0RCdXNQcm94eTsKICNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NiwxMiArNTQsMTMgQEAgcHJpdmF0ZToKIAog
ICAgIFJldGFpblB0cjxXZWJMb3dQb3dlck1vZGVPYnNlcnZlcj4gbV9vYnNlcnZlcjsKICAgICBM
b3dQb3dlck1vZGVDaGFuZ2VDYWxsYmFjayBtX2NhbGxiYWNrOwotI2VsaWYgVVNFKFVQT1dFUikK
LSAgICBzdGF0aWMgdm9pZCB3YXJuaW5nTGV2ZWxDYWxsYmFjayhMb3dQb3dlck1vZGVOb3RpZmll
ciopOwotICAgIHZvaWQgdXBkYXRlU3RhdGUoKTsKKyNlbGlmIFVTRShHTElCKQorICAgIHZvaWQg
dXBkYXRlV2FybmluZ0xldmVsKCk7CisgICAgdm9pZCB3YXJuaW5nTGV2ZWxDaGFuZ2VkKCk7Cisg
ICAgc3RhdGljIHZvaWQgZ1Byb3BlcnRpZXNDaGFuZ2VkQ2FsbGJhY2soTG93UG93ZXJNb2RlTm90
aWZpZXIqLCBHVmFyaWFudCogY2hhbmdlZFByb3BlcnRpZXMpOwogCi0gICAgR1JlZlB0cjxVcENs
aWVudD4gbV91cENsaWVudDsKLSAgICBHUmVmUHRyPFVwRGV2aWNlPiBtX2RldmljZTsKKyAgICBH
UmVmUHRyPEdEQnVzUHJveHk+IG1fZGlzcGxheURldmljZVByb3h5OworICAgIEdSZWZQdHI8R0Nh
bmNlbGxhYmxlPiBtX2NhbmNlbGxhYmxlOwogICAgIExvd1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNr
IG1fY2FsbGJhY2s7CiAgICAgYm9vbCBtX2xvd1Bvd2VyTW9kZUVuYWJsZWQgeyBmYWxzZSB9Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0xvd1Bvd2Vy
TW9kZU5vdGlmaWVyR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0xvd1Bv
d2VyTW9kZU5vdGlmaWVyR0xpYi5jcHAKaW5kZXggYzFmZjZhNDMxYTMxNGE4MjZkNDRjNDBjODI5
NWM1ZWZmMGNlYjQxNC4uZjI3YmZlN2VhMTJiOTViYjg1ZTgxOTk2OTcyY2VlNTVkYjk1M2JjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Mb3dQb3dlck1vZGVOb3Rp
ZmllckdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvTG93UG93ZXJN
b2RlTm90aWZpZXJHTGliLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChD
KSAyMDE3IENvbGxhYm9yYSBMdGQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwu
CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xOSwzNSArMjAsOTYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJMb3dQb3dlck1vZGVOb3RpZmllci5oIgogCi0jaWYgVVNFKFVQT1dF
UikKKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGdpby9naW8uaD4KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgY2hhciBrV2FybmluZ0xldmVsW10gPSAiV2Fybmlu
Z0xldmVsIjsKKwogTG93UG93ZXJNb2RlTm90aWZpZXI6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyKExv
d1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNrJiYgY2FsbGJhY2spCi0gICAgOiBtX3VwQ2xpZW50KGFk
b3B0R1JlZih1cF9jbGllbnRfbmV3KCkpKQotICAgICwgbV9kZXZpY2UoYWRvcHRHUmVmKHVwX2Ns
aWVudF9nZXRfZGlzcGxheV9kZXZpY2UobV91cENsaWVudC5nZXQoKSkpKQorICAgIDogbV9jYW5j
ZWxsYWJsZShhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSkpCiAgICAgLCBtX2NhbGxiYWNr
KFdURk1vdmUoY2FsbGJhY2spKQogewotICAgIHVwZGF0ZVN0YXRlKCk7CitXVEZMb2dBbHdheXMo
IiVzIiwgX19QUkVUVFlfRlVOQ1RJT05fXyk7CisgICAgZ19kYnVzX3Byb3h5X25ld19mb3JfYnVz
KEdfQlVTX1RZUEVfU1lTVEVNLCBzdGF0aWNfY2FzdDxHREJ1c1Byb3h5RmxhZ3M+KEdfREJVU19Q
Uk9YWV9GTEFHU19ET19OT1RfQ09OTkVDVF9TSUdOQUxTIHwgR19EQlVTX1BST1hZX0ZMQUdTX0dF
VF9JTlZBTElEQVRFRF9QUk9QRVJUSUVTKSwKKyAgICAgICAgbnVsbHB0ciwgIm9yZy5mcmVlZGVz
a3RvcC5VUG93ZXIiLCAiL29yZy9mcmVlZGVza3RvcC9VUG93ZXIvZGV2aWNlcy9EaXNwbGF5RGV2
aWNlIiwgIm9yZy5mcmVlZGVza3RvcC5VUG93ZXIuRGV2aWNlIiwgbV9jYW5jZWxsYWJsZS5nZXQo
KSwKKyAgICAgICAgW10oR09iamVjdCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1
c2VyRGF0YSkgeworICAgICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAg
ICAgICAgICAgR1JlZlB0cjxHREJ1c1Byb3h5PiBwcm94eSA9IGFkb3B0R1JlZihnX2RidXNfcHJv
eHlfbmV3X2Zvcl9idXNfZmluaXNoKHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CisgICAgICAg
ICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VS
Uk9SX0NBTkNFTExFRCkpCit7CitXVEZMb2dBbHdheXMoIk9oIG5vb28gdGhlcmUncyBubyBwcm94
eSEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cit9CisKKyAgICAgICAgICAgIGF1dG8qIHNl
bGYgPSBzdGF0aWNfY2FzdDxMb3dQb3dlck1vZGVOb3RpZmllcio+KHVzZXJEYXRhKTsKKyAgICAg
ICAgICAgIGlmIChwcm94eSkgeworICAgICAgICAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gbmFt
ZU93bmVyKGdfZGJ1c19wcm94eV9nZXRfbmFtZV9vd25lcihwcm94eS5nZXQoKSkpOworICAgICAg
ICAgICAgICAgIGlmIChuYW1lT3duZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi0+bV9k
aXNwbGF5RGV2aWNlUHJveHkgPSBXVEZNb3ZlKHByb3h5KTsKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi0+dXBkYXRlV2FybmluZ0xldmVsKCk7CitXVEZMb2dBbHdheXMoIkNvbm5lY3RlZCB0byBn
cHJvcGVydGllc2NoYW5nZWQhIik7CisgICAgICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3Rfc3dhcHBlZChzZWxmLT5tX2Rpc3BsYXlEZXZpY2VQcm94eS5nZXQoKSwgImctcHJvcGVydGll
cy1jaGFuZ2VkIiwgR19DQUxMQkFDSyhnUHJvcGVydGllc0NoYW5nZWRDYWxsYmFjayksIHNlbGYp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorZWxzZSBX
VEZMb2dBbHdheXMoIk9oIG5vb28gdGhlcmUncyBubyBuYW1lIG93bmVyISIpOworICAgICAgICAg
ICAgfQogCi0gICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fZGV2aWNlLmdldCgpLCAibm90
aWZ5Ojp3YXJuaW5nLWxldmVsIiwgR19DQUxMQkFDSyh3YXJuaW5nTGV2ZWxDYWxsYmFjayksIHRo
aXMpOworICAgICAgICAgICAgLy8gTm93LCBpZiB0aGVyZSBpcyBubyBuYW1lIG93bmVyLCBpdCB3
b3VsZCBiZSBnb29kIHRvIHRyeSB0bworICAgICAgICAgICAgLy8gY29ubmVjdCB0byBhIEZsYXRw
YWsgYmF0dGVyeSBzdGF0dXMgcG9ydGFsIGluc3RlYWQuCisgICAgICAgICAgICAvLyBVbmZvcnR1
bmF0ZWx5LCBubyBzdWNoIHBvcnRhbCBjdXJyZW50bHkgZXhpc3RzLgorICAgICAgICAgICAgc2Vs
Zi0+bV9jYW5jZWxsYWJsZSA9IG51bGxwdHI7CisgICAgfSwgdGhpcyk7CiB9CiAKLXZvaWQgTG93
UG93ZXJNb2RlTm90aWZpZXI6OnVwZGF0ZVN0YXRlKCkKK3ZvaWQgTG93UG93ZXJNb2RlTm90aWZp
ZXI6OnVwZGF0ZVdhcm5pbmdMZXZlbCgpCiB7Ci0gICAgVXBEZXZpY2VMZXZlbCB3YXJuaW5nTGV2
ZWw7Ci0gICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKG1fZGV2aWNlLmdldCgpKSwgIndhcm5pbmct
bGV2ZWwiLCAmd2FybmluZ0xldmVsLCBudWxscHRyKTsKLSAgICBtX2xvd1Bvd2VyTW9kZUVuYWJs
ZWQgPSB3YXJuaW5nTGV2ZWwgPiBVUF9ERVZJQ0VfTEVWRUxfTk9ORSAmJiB3YXJuaW5nTGV2ZWwg
PD0gVVBfREVWSUNFX0xFVkVMX0FDVElPTjsKK1dURkxvZ0Fsd2F5cygiJXMiLCBfX1BSRVRUWV9G
VU5DVElPTl9fKTsKKyAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9IGFkb3B0R1JlZihnX2Ri
dXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShtX2Rpc3BsYXlEZXZpY2VQcm94eS5nZXQoKSwg
a1dhcm5pbmdMZXZlbCkpOworICBpZiAoIXZhcmlhbnQpIHsKKyAgICAgIG1fbG93UG93ZXJNb2Rl
RW5hYmxlZCA9IGZhbHNlOworV1RGTG9nQWx3YXlzKCJtX2xvd1Bvd2VyTW9kZUVuYWJsZWQgPSBm
YWxzZSAodGhpcyBpcyB0aGUgZXJyb3IgcGF0aCwgc2hvdWxkbid0IGJlIHNlZWluZyB0aGlzISki
KTsKKyAgICAgIHJldHVybjsKKyAgfQorCisgIC8vIDA6IFVua25vd24KKyAgLy8gMTogTm9uZQor
ICAvLyAyOiBEaXNjaGFyZ2luZyAob25seSBmb3IgdW5pdmVyc2FsIHBvd2VyIHN1cHBsaWVzKQor
ICAvLyAzOiBMb3cKKyAgLy8gNDogQ3JpdGljYWwKKyAgLy8gNTogQWN0aW9uCisgIG1fbG93UG93
ZXJNb2RlRW5hYmxlZCA9IGdfdmFyaWFudF9nZXRfdWludDMyKHZhcmlhbnQuZ2V0KCkpID4gMTsK
K1dURkxvZ0Fsd2F5cygiV2FybmluZ0xldmVsPSV1LCBtX2xvd1Bvd2VyTW9kZUVuYWJsZWQ9JWQi
LCBnX3ZhcmlhbnRfZ2V0X3VpbnQzMih2YXJpYW50LmdldCgpKSwgbV9sb3dQb3dlck1vZGVFbmFi
bGVkKTsKIH0KIAotdm9pZCBMb3dQb3dlck1vZGVOb3RpZmllcjo6d2FybmluZ0xldmVsQ2FsbGJh
Y2soTG93UG93ZXJNb2RlTm90aWZpZXIqIG5vdGlmaWVyKQordm9pZCBMb3dQb3dlck1vZGVOb3Rp
Zmllcjo6d2FybmluZ0xldmVsQ2hhbmdlZCgpCiB7Ci0gICAgbm90aWZpZXItPnVwZGF0ZVN0YXRl
KCk7Ci0gICAgbm90aWZpZXItPm1fY2FsbGJhY2sobm90aWZpZXItPm1fbG93UG93ZXJNb2RlRW5h
YmxlZCk7CitXVEZMb2dBbHdheXMoIiVzIiwgX19QUkVUVFlfRlVOQ1RJT05fXyk7CisgICAgdXBk
YXRlV2FybmluZ0xldmVsKCk7CisgICAgbV9jYWxsYmFjayhtX2xvd1Bvd2VyTW9kZUVuYWJsZWQp
OworfQorCit2b2lkIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjpnUHJvcGVydGllc0NoYW5nZWRDYWxs
YmFjayhMb3dQb3dlck1vZGVOb3RpZmllciogc2VsZiwgR1ZhcmlhbnQqIGNoYW5nZWRQcm9wZXJ0
aWVzKQoreworV1RGTG9nQWx3YXlzKCIlcyIsIF9fUFJFVFRZX0ZVTkNUSU9OX18pOworICAgIEdV
bmlxdWVPdXRQdHI8R1ZhcmlhbnRJdGVyPiBpdGVyOworICAgIGdfdmFyaWFudF9nZXQoY2hhbmdl
ZFByb3BlcnRpZXMsICJhe3N2fSIsICZpdGVyLm91dFB0cigpKTsKKworICAgIGNvbnN0IGNoYXIq
IHByb3BlcnR5TmFtZTsKKyAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbmV4dChpdGVyLmdldCgp
LCAieyZzdn0iLCAmcHJvcGVydHlOYW1lLCBudWxscHRyKSkgeworICAgICAgICBpZiAoc3RyY21w
KHByb3BlcnR5TmFtZSwga1dhcm5pbmdMZXZlbCkgPT0gMCkgeworICAgICAgICAgICAgc2VsZi0+
d2FybmluZ0xldmVsQ2hhbmdlZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CiB9CiAKIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjp+TG93UG93ZXJNb2RlTm90aWZpZXIoKQog
ewotICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2RldmljZS5nZXQo
KSwgdGhpcyk7CitXVEZMb2dBbHdheXMoIiVzIiwgX19QUkVUVFlfRlVOQ1RJT05fXyk7CisgICAg
aWYgKG1fY2FuY2VsbGFibGUpCisgICAgICAgIGdfY2FuY2VsbGFibGVfY2FuY2VsKG1fY2FuY2Vs
bGFibGUuZ2V0KCkpOwogfQogCiBib29sIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjppc0xvd1Bvd2Vy
TW9kZUVuYWJsZWQoKSBjb25zdApAQCAtNTUsNSArMTE3LDQgQEAgYm9vbCBMb3dQb3dlck1vZGVO
b3RpZmllcjo6aXNMb3dQb3dlck1vZGVFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9sb3dQ
b3dlck1vZGVFbmFibGVkOwogfQogCi19Ci0jZW5kaWYKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kVVBvd2VyR0xpYi5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9GaW5kVVBvd2VyR0xpYi5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZWNiNWMyYjU0YzJlMmJiOTBlZTEyZDA4OTg5YTE4MTI3MmUyOGZkYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvY21ha2UvRmluZFVQb3dlckdM
aWIuY21ha2UKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIC0gVHJ5IHRvIGZpbmQg
bGlidXBvd2VyLWdsaWIuCi0jIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQotIwotIyAgVVBP
V0VSR0xJQl9JTkNMVURFX0RJUlMgLSB0aGUgbGlidGFzbjEgaW5jbHVkZSBkaXJlY3Rvcmllcwot
IyAgVVBPV0VSR0xJQl9MSUJSQVJJRVMgLSB0aGUgbGlidGFzbjEgbGlicmFyaWVzLgotIwotIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQ29sbGFib3JhIEx0ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLWZpbmRfcGFja2FnZShQa2dDb25maWcpCi1wa2dfY2hlY2tfbW9k
dWxlcyhQQ19VUE9XRVJHTElCIFFVSUVUIHVwb3dlci1nbGliKQotCi1maW5kX3BhdGgoVVBPV0VS
R0xJQl9JTkNMVURFX0RJUlMKLSAgICBOQU1FUyBsaWJ1cG93ZXItZ2xpYi91cG93ZXIuaAotICAg
IFBBVEhTICR7UENfVVBPV0VSR0xJQl9JTkNMVURFRElSfSAke1BDX1VQT1dFUkdMSUJfSU5DTFVE
RV9ESVJTfQotKQotCi1maW5kX2xpYnJhcnkoVVBPV0VSR0xJQl9MSUJSQVJJRVMKLSAgICBOQU1F
UyB1cG93ZXItZ2xpYgotICAgIFBBVEhTICR7UENfVVBPV0VSR0xJQl9MSUJESVJ9ICR7UENfVVBP
V0VSR0xJQl9MSUJSQVJZX0RJUlN9Ci0pCi0KLW1hcmtfYXNfYWR2YW5jZWQoVVBPV0VSR0xJQl9J
TkNMVURFX0RJUlMgVVBPV0VSR0xJQl9MSUJSQVJJRVMpCi0KLWluY2x1ZGUoRmluZFBhY2thZ2VI
YW5kbGVTdGFuZGFyZEFyZ3MpCi1maW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoVVBv
d2VyR0xpYiBSRVFVSVJFRF9WQVJTIFVQT1dFUkdMSUJfSU5DTFVERV9ESVJTIFVQT1dFUkdMSUJf
TElCUkFSSUVTCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTl9WQVIg
ICBQQ19VUE9XRVJHTElCX1ZFUlNJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDFiM2NmMTRh
YzFmZmU3NWYzNTZkODgyZmJiZTVkNDM2OTMyNGY4ZWQuLmY0Y2YzOWE1M2Y2ZDRjYTI4ZmFmZWNi
NmQ2NTk5Yjg5ZDA3MGY5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC04MSw3ICs4MSw2IEBA
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9XQVlMQU5EX1RBUkdFVCAiV2hldGhlciB0byBl
bmFibGUgc3VwcG9ydCBmb3IgdGhlIFdhCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfTElCTk9U
SUZZICJXaGV0aGVyIHRvIGVuYWJsZSB0aGUgZGVmYXVsdCB3ZWIgbm90aWZpY2F0aW9uIGltcGxl
bWVudGF0aW9uLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0xJQkhZUEhF
TiAiV2hldGhlciB0byBlbmFibGUgdGhlIGRlZmF1bHQgYXV0b21hdGljIGh5cGhlbmF0aW9uIGlt
cGxlbWVudGF0aW9uLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0xJQlNF
Q1JFVCAiV2hldGhlciB0byBlbmFibGUgdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbCBzdG9yYWdl
IHVzaW5nIGxpYnNlY3JldC4iIFBVQkxJQyBPTikKLVdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9V
UE9XRVIgIldoZXRoZXIgdG8gZW5hYmxlIHRoZSBsb3cgcG93ZXIgbW9kZSBpbXBsZW1lbnRhdGlv
bi4iIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XT0ZGMiAiV2hldGhlciB0
byBlbmFibGUgc3VwcG9ydCBmb3IgV09GRjIgV2ViIEZvbnRzLiIgUFVCTElDIE9OKQogCiAjIFBy
aXZhdGUgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgR1RLKyBwb3J0LiBDaGFuZ2luZyB0aGVzZSBv
cHRpb25zIGlzCkBAIC0zNDEsMTMgKzM0MCw2IEBAIGlmIChVU0VfTElCSFlQSEVOKQogICAgIGVu
ZGlmICgpCiBlbmRpZiAoKQogCi1pZiAoVVNFX1VQT1dFUikKLSAgICBmaW5kX3BhY2thZ2UoVVBv
d2VyR0xpYikKLSAgICBpZiAoTk9UIFVQT1dFUkdMSUJfRk9VTkQpCi0gICAgICAgbWVzc2FnZShG
QVRBTF9FUlJPUiAidXBvd2VyLWdsaWIgaXMgbmVlZGVkIGZvciBVU0VfVVBPV0VSLiIpCi0gICAg
ZW5kaWYgKCkKLWVuZGlmICgpCi0KIGlmIChVU0VfV09GRjIpCiAgICAgZmluZF9wYWNrYWdlKFdP
RkYyRGVjIDEuMC4yKQogICAgIGlmIChOT1QgV09GRjJERUNfRk9VTkQpCmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMmE4OTRiMDczNjAyMmVmNDU0YjI4NWI4MGNlZjA3
OGFkMzY1NWQzZS4uZThlNTA5NDFhYTdmM2ZmMzIwMDU3ZGVmNTJhYWFiMDJlMjQ3ZjNkMSAxMDA2
NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4
LTAyLTA1ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbR1RLXSBVU0VfVVBPV0VSIGNhdXNlcyBjcmFzaGVzIGluc2lkZSBhIGNocm9vdCBvciBv
biBzeXN0ZW1zIHdpdGggYnJva2VuIGRidXMvdXBvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kVVBvd2VyR0xpYi5j
bWFrZTogUmVtb3ZlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToK
KwogMjAxOC0wMi0wNSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGJ1aWxkIHVzaW5nIHRoZSBuZXcgRU5BQkxFX0FE
RFJFU1NfU0FOSVRJWkVSIG9wdGlvbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334286</attachid>
            <date>2018-02-20 10:33:36 -0800</date>
            <delta_ts>2018-02-20 22:55:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181825-20180220123335.patch</filename>
            <type>text/plain</type>
            <size>12475</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYyZDhmYWY3MGM2NjVk
MzQxNzY1ZWQ2NGUyZmRhMzBiYWMwOGZjYi4uMzE5MThmZjA1YWNiYmMxOGI5MTEyYWEyMTk4NjRi
NjcxNzIxZjgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTAyLTIwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBV
U0VfVVBPV0VSIGNhdXNlcyBjcmFzaGVzIGluc2lkZSBhIGNocm9vdCBvciBvbiBzeXN0ZW1zIHdp
dGggYnJva2VuIGRidXMvdXBvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODE4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZSBjb3VsZCBmaXggdGhpcyBjcmFzaCwgYnV0IHRoYXQgd291bGQgbm90
IGJlIGdvb2QgZW5vdWdoLCBiZWNhdXNlIHVwb3dlci1nbGliIGlzIGEKKyAgICAgICAgc3luY2hy
b25vdXMgQVBJIHRoYXQgd3JhcHMgRC1CdXMgY2FsbHMuIFRoYXQncyBub3QgYWNjZXB0YWJsZSBm
b3IgdXNlIGluIHRoZSB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgUmV3cml0ZSBMb3dQb3dlck1vZGVO
b3RpZmllckdMaWIgdG8gdXNlIHVwb3dlcidzIEQtQnVzIEFQSSBkaXJlY3RseSwgaW5zdGVhZC4K
KworICAgICAgICBOb3RlIHRoYXQgdGhpcyBhbHNvIGVuYWJsZXMgTG93UG93ZXJNb2RlTm90aWZp
ZXIgZm9yIFdQRSwgc2luY2UgdGhlIFVTRShVUE9XRVIpIGJ1aWxkCisgICAgICAgIGZsYWcgaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL0xvd1Bvd2VyTW9kZU5vdGlm
aWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJHTGliLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyOjpMb3dQb3dlck1vZGVOb3RpZmllcik6
CisgICAgICAgIChXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcjo6dXBkYXRlV2FybmluZ0xl
dmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyOjp3YXJuaW5nTGV2
ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyOjpnUHJv
cGVydGllc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMb3dQb3dlck1vZGVO
b3RpZmllcjo6fkxvd1Bvd2VyTW9kZU5vdGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxvd1Bv
d2VyTW9kZU5vdGlmaWVyOjp1cGRhdGVTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMb3dQb3dlck1vZGVOb3RpZmllcjo6d2FybmluZ0xldmVsQ2FsbGJhY2spOiBEZWxldGVkLgor
CiAyMDE4LTAyLTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtFTUVdIEFkb3B0IG5ldyBBVkNvbnRlbnRLZXlTZXNzaW9uIHN1Y2Nlc3MgZGVsZWdhdGUgY2Fs
bGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvd1Bvd2VyTW9kZU5v
dGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvd1Bvd2VyTW9kZU5vdGlmaWVy
LmNwcAppbmRleCBkYWJlNzMyNWNmZjM2Yzg1OWE4ZTI3OThiYWMyYmU4Yzc5MTNlOTdjLi4xYWE1
YTljMWI0YTcwOTJhNWJjMzEyZjljN2FmNTcxMDk2ZTdkYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFQTEFURk9STShJT1MpICYmICFVU0UoVVBP
V0VSKQorI2lmICFQTEFURk9STShJT1MpICYmICFVU0UoR0xJQikKIAogTG93UG93ZXJNb2RlTm90
aWZpZXI6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyKExvd1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNrJiYp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3Rp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG93UG93ZXJNb2RlTm90aWZpZXIuaApp
bmRleCBkYjBiNWM1ZTBkNzNiOWI2YzJmYzJmMzBmNjYwNzY1ZGRjYTlhMDIyLi42NDI5ODkwZDM3
NzVmMDNhYjQyMDI4NWM0NzQ0ZjUwNmQ1Y2ZjZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvd1Bvd2VyTW9kZU5vdGlmaWVyLmgKQEAgLTI4LDE1ICsyOCwxMyBAQAogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQotCiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogT0JKQ19DTEFTUyBXZWJMb3dQb3dlck1vZGVPYnNlcnZlcjsKLQogI2Vu
ZGlmCiAKLSNpZiBVU0UoVVBPV0VSKQotI2luY2x1ZGUgPGxpYnVwb3dlci1nbGliL3Vwb3dlci5o
PgorI2lmIFVTRShHTElCKQogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KK3R5cGVkZWYg
X0dEQnVzUHJveHkgR0RCdXNQcm94eTsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC01NiwxMiArNTQsMTMgQEAgcHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxXZWJMb3dQb3dlck1v
ZGVPYnNlcnZlcj4gbV9vYnNlcnZlcjsKICAgICBMb3dQb3dlck1vZGVDaGFuZ2VDYWxsYmFjayBt
X2NhbGxiYWNrOwotI2VsaWYgVVNFKFVQT1dFUikKLSAgICBzdGF0aWMgdm9pZCB3YXJuaW5nTGV2
ZWxDYWxsYmFjayhMb3dQb3dlck1vZGVOb3RpZmllciopOwotICAgIHZvaWQgdXBkYXRlU3RhdGUo
KTsKKyNlbGlmIFVTRShHTElCKQorICAgIHZvaWQgdXBkYXRlV2FybmluZ0xldmVsKCk7CisgICAg
dm9pZCB3YXJuaW5nTGV2ZWxDaGFuZ2VkKCk7CisgICAgc3RhdGljIHZvaWQgZ1Byb3BlcnRpZXND
aGFuZ2VkQ2FsbGJhY2soTG93UG93ZXJNb2RlTm90aWZpZXIqLCBHVmFyaWFudCogY2hhbmdlZFBy
b3BlcnRpZXMpOwogCi0gICAgR1JlZlB0cjxVcENsaWVudD4gbV91cENsaWVudDsKLSAgICBHUmVm
UHRyPFVwRGV2aWNlPiBtX2RldmljZTsKKyAgICBHUmVmUHRyPEdEQnVzUHJveHk+IG1fZGlzcGxh
eURldmljZVByb3h5OworICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBtX2NhbmNlbGxhYmxlOwog
ICAgIExvd1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNrIG1fY2FsbGJhY2s7CiAgICAgYm9vbCBtX2xv
d1Bvd2VyTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nbGliL0xvd1Bvd2VyTW9kZU5vdGlmaWVyR0xpYi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0xvd1Bvd2VyTW9kZU5vdGlmaWVyR0xpYi5jcHAKaW5k
ZXggYzFmZjZhNDMxYTMxNGE4MjZkNDRjNDBjODI5NWM1ZWZmMGNlYjQxNC4uZDViNGVhNjlkZWUw
MGQ5YWJmNTc4ZTk0YmI5MTczMWIwNDQ4YWY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2xpYi9Mb3dQb3dlck1vZGVOb3RpZmllckdMaWIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJHTGliLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDE3IENvbGxhYm9yYSBMdGQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0x
OSwzNSArMjAsODQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb3dQb3dlck1v
ZGVOb3RpZmllci5oIgogCi0jaWYgVVNFKFVQT1dFUikKKyNpbmNsdWRlIDxjc3RyaW5nPgorI2lu
Y2x1ZGUgPGdpby9naW8uaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3Qg
Y2hhciBrV2FybmluZ0xldmVsW10gPSAiV2FybmluZ0xldmVsIjsKKwogTG93UG93ZXJNb2RlTm90
aWZpZXI6Okxvd1Bvd2VyTW9kZU5vdGlmaWVyKExvd1Bvd2VyTW9kZUNoYW5nZUNhbGxiYWNrJiYg
Y2FsbGJhY2spCi0gICAgOiBtX3VwQ2xpZW50KGFkb3B0R1JlZih1cF9jbGllbnRfbmV3KCkpKQot
ICAgICwgbV9kZXZpY2UoYWRvcHRHUmVmKHVwX2NsaWVudF9nZXRfZGlzcGxheV9kZXZpY2UobV91
cENsaWVudC5nZXQoKSkpKQorICAgIDogbV9jYW5jZWxsYWJsZShhZG9wdEdSZWYoZ19jYW5jZWxs
YWJsZV9uZXcoKSkpCiAgICAgLCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogewotICAg
IHVwZGF0ZVN0YXRlKCk7CisgICAgZ19kYnVzX3Byb3h5X25ld19mb3JfYnVzKEdfQlVTX1RZUEVf
U1lTVEVNLCBzdGF0aWNfY2FzdDxHREJ1c1Byb3h5RmxhZ3M+KEdfREJVU19QUk9YWV9GTEFHU19E
T19OT1RfQ09OTkVDVF9TSUdOQUxTIHwgR19EQlVTX1BST1hZX0ZMQUdTX0dFVF9JTlZBTElEQVRF
RF9QUk9QRVJUSUVTKSwKKyAgICAgICAgbnVsbHB0ciwgIm9yZy5mcmVlZGVza3RvcC5VUG93ZXIi
LCAiL29yZy9mcmVlZGVza3RvcC9VUG93ZXIvZGV2aWNlcy9EaXNwbGF5RGV2aWNlIiwgIm9yZy5m
cmVlZGVza3RvcC5VUG93ZXIuRGV2aWNlIiwgbV9jYW5jZWxsYWJsZS5nZXQoKSwKKyAgICAgICAg
W10oR09iamVjdCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgewor
ICAgICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICAgICAgR1Jl
ZlB0cjxHREJ1c1Byb3h5PiBwcm94eSA9IGFkb3B0R1JlZihnX2RidXNfcHJveHlfbmV3X2Zvcl9i
dXNfZmluaXNoKHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CisgICAgICAgICAgICBpZiAoZ19l
cnJvcl9tYXRjaGVzKGVycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExF
RCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvKiBzZWxmID0g
c3RhdGljX2Nhc3Q8TG93UG93ZXJNb2RlTm90aWZpZXIqPih1c2VyRGF0YSk7CisgICAgICAgICAg
ICBpZiAocHJveHkpIHsKKyAgICAgICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IG5hbWVPd25l
cihnX2RidXNfcHJveHlfZ2V0X25hbWVfb3duZXIocHJveHkuZ2V0KCkpKTsKKyAgICAgICAgICAg
ICAgICBpZiAobmFtZU93bmVyKSB7CisgICAgICAgICAgICAgICAgICAgIHNlbGYtPm1fZGlzcGxh
eURldmljZVByb3h5ID0gV1RGTW92ZShwcm94eSk7CisgICAgICAgICAgICAgICAgICAgIHNlbGYt
PnVwZGF0ZVdhcm5pbmdMZXZlbCgpOworICAgICAgICAgICAgICAgICAgICBnX3NpZ25hbF9jb25u
ZWN0X3N3YXBwZWQoc2VsZi0+bV9kaXNwbGF5RGV2aWNlUHJveHkuZ2V0KCksICJnLXByb3BlcnRp
ZXMtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soZ1Byb3BlcnRpZXNDaGFuZ2VkQ2FsbGJhY2spLCBzZWxm
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KIAotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2RldmljZS5nZXQoKSwg
Im5vdGlmeTo6d2FybmluZy1sZXZlbCIsIEdfQ0FMTEJBQ0sod2FybmluZ0xldmVsQ2FsbGJhY2sp
LCB0aGlzKTsKKyAgICAgICAgICAgIC8vIE5vdywgaWYgdGhlcmUgaXMgbm8gbmFtZSBvd25lciwg
aXQgd291bGQgYmUgZ29vZCB0byB0cnkgdG8KKyAgICAgICAgICAgIC8vIGNvbm5lY3QgdG8gYSBG
bGF0cGFrIGJhdHRlcnkgc3RhdHVzIHBvcnRhbCBpbnN0ZWFkLgorICAgICAgICAgICAgLy8gVW5m
b3J0dW5hdGVseSwgbm8gc3VjaCBwb3J0YWwgY3VycmVudGx5IGV4aXN0cy4KKyAgICAgICAgICAg
IHNlbGYtPm1fY2FuY2VsbGFibGUgPSBudWxscHRyOworICAgIH0sIHRoaXMpOwogfQogCi12b2lk
IExvd1Bvd2VyTW9kZU5vdGlmaWVyOjp1cGRhdGVTdGF0ZSgpCit2b2lkIExvd1Bvd2VyTW9kZU5v
dGlmaWVyOjp1cGRhdGVXYXJuaW5nTGV2ZWwoKQogewotICAgIFVwRGV2aWNlTGV2ZWwgd2Fybmlu
Z0xldmVsOwotICAgIGdfb2JqZWN0X2dldChHX09CSkVDVChtX2RldmljZS5nZXQoKSksICJ3YXJu
aW5nLWxldmVsIiwgJndhcm5pbmdMZXZlbCwgbnVsbHB0cik7Ci0gICAgbV9sb3dQb3dlck1vZGVF
bmFibGVkID0gd2FybmluZ0xldmVsID4gVVBfREVWSUNFX0xFVkVMX05PTkUgJiYgd2FybmluZ0xl
dmVsIDw9IFVQX0RFVklDRV9MRVZFTF9BQ1RJT047CisgICAgR1JlZlB0cjxHVmFyaWFudD4gdmFy
aWFudCA9IGFkb3B0R1JlZihnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShtX2Rpc3Bs
YXlEZXZpY2VQcm94eS5nZXQoKSwga1dhcm5pbmdMZXZlbCkpOworICAgIGlmICghdmFyaWFudCkg
eworICAgICAgICBtX2xvd1Bvd2VyTW9kZUVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIDA6IFVua25vd24KKyAgICAvLyAxOiBOb25lCisgICAgLy8gMjog
RGlzY2hhcmdpbmcgKG9ubHkgZm9yIHVuaXZlcnNhbCBwb3dlciBzdXBwbGllcykKKyAgICAvLyAz
OiBMb3cKKyAgICAvLyA0OiBDcml0aWNhbAorICAgIC8vIDU6IEFjdGlvbgorICAgIG1fbG93UG93
ZXJNb2RlRW5hYmxlZCA9IGdfdmFyaWFudF9nZXRfdWludDMyKHZhcmlhbnQuZ2V0KCkpID4gMTsK
IH0KIAotdm9pZCBMb3dQb3dlck1vZGVOb3RpZmllcjo6d2FybmluZ0xldmVsQ2FsbGJhY2soTG93
UG93ZXJNb2RlTm90aWZpZXIqIG5vdGlmaWVyKQordm9pZCBMb3dQb3dlck1vZGVOb3RpZmllcjo6
d2FybmluZ0xldmVsQ2hhbmdlZCgpCiB7Ci0gICAgbm90aWZpZXItPnVwZGF0ZVN0YXRlKCk7Ci0g
ICAgbm90aWZpZXItPm1fY2FsbGJhY2sobm90aWZpZXItPm1fbG93UG93ZXJNb2RlRW5hYmxlZCk7
CisgICAgdXBkYXRlV2FybmluZ0xldmVsKCk7CisgICAgbV9jYWxsYmFjayhtX2xvd1Bvd2VyTW9k
ZUVuYWJsZWQpOworfQorCit2b2lkIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjpnUHJvcGVydGllc0No
YW5nZWRDYWxsYmFjayhMb3dQb3dlck1vZGVOb3RpZmllciogc2VsZiwgR1ZhcmlhbnQqIGNoYW5n
ZWRQcm9wZXJ0aWVzKQoreworICAgIEdVbmlxdWVPdXRQdHI8R1ZhcmlhbnRJdGVyPiBpdGVyOwor
ICAgIGdfdmFyaWFudF9nZXQoY2hhbmdlZFByb3BlcnRpZXMsICJhe3N2fSIsICZpdGVyLm91dFB0
cigpKTsKKworICAgIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZTsKKyAgICB3aGlsZSAoZ192YXJp
YW50X2l0ZXJfbmV4dChpdGVyLmdldCgpLCAieyZzdn0iLCAmcHJvcGVydHlOYW1lLCBudWxscHRy
KSkgeworICAgICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUsIGtXYXJuaW5nTGV2ZWwpKSB7
CisgICAgICAgICAgICBzZWxmLT53YXJuaW5nTGV2ZWxDaGFuZ2VkKCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KIH0KIAogTG93UG93ZXJNb2RlTm90aWZpZXI6On5Mb3dQ
b3dlck1vZGVOb3RpZmllcigpCiB7Ci0gICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9i
eV9kYXRhKG1fZGV2aWNlLmdldCgpLCB0aGlzKTsKKyAgICBpZiAobV9jYW5jZWxsYWJsZSkKKyAg
ICAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwobV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9CiAKIGJv
b2wgTG93UG93ZXJNb2RlTm90aWZpZXI6OmlzTG93UG93ZXJNb2RlRW5hYmxlZCgpIGNvbnN0CkBA
IC01NSw1ICsxMDUsNCBAQCBib29sIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjppc0xvd1Bvd2VyTW9k
ZUVuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX2xvd1Bvd2VyTW9kZUVuYWJsZWQ7CiB9CiAK
LX0KLSNlbmRpZgorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL0ZpbmRVUG93ZXJHTGliLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRVUG93ZXJHTGliLmNt
YWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2I1YzJiNTRjMmUyYmI5MGVlMTJk
MDg5ODlhMTgxMjcyZTI4ZmRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kVVBvd2VyR0xpYi5jbWFrZQorKysgL2Rldi9udWxs
CkBAIC0xLDQ3ICswLDAgQEAKLSMgLSBUcnkgdG8gZmluZCBsaWJ1cG93ZXItZ2xpYi4KLSMgT25j
ZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCi0jCi0jICBVUE9XRVJHTElCX0lOQ0xVREVfRElSUyAt
IHRoZSBsaWJ0YXNuMSBpbmNsdWRlIGRpcmVjdG9yaWVzCi0jICBVUE9XRVJHTElCX0xJQlJBUklF
UyAtIHRoZSBsaWJ0YXNuMSBsaWJyYXJpZXMuCi0jCi0jIENvcHlyaWdodCAoQykgMjAxNyBDb2xs
YWJvcmEgTHRkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotZmlu
ZF9wYWNrYWdlKFBrZ0NvbmZpZykKLXBrZ19jaGVja19tb2R1bGVzKFBDX1VQT1dFUkdMSUIgUVVJ
RVQgdXBvd2VyLWdsaWIpCi0KLWZpbmRfcGF0aChVUE9XRVJHTElCX0lOQ0xVREVfRElSUwotICAg
IE5BTUVTIGxpYnVwb3dlci1nbGliL3Vwb3dlci5oCi0gICAgUEFUSFMgJHtQQ19VUE9XRVJHTElC
X0lOQ0xVREVESVJ9ICR7UENfVVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9Ci0pCi0KLWZpbmRfbGli
cmFyeShVUE9XRVJHTElCX0xJQlJBUklFUwotICAgIE5BTUVTIHVwb3dlci1nbGliCi0gICAgUEFU
SFMgJHtQQ19VUE9XRVJHTElCX0xJQkRJUn0gJHtQQ19VUE9XRVJHTElCX0xJQlJBUllfRElSU30K
LSkKLQotbWFya19hc19hZHZhbmNlZChVUE9XRVJHTElCX0lOQ0xVREVfRElSUyBVUE9XRVJHTElC
X0xJQlJBUklFUykKLQotaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKLWZp
bmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhVUG93ZXJHTGliIFJFUVVJUkVEX1ZBUlMg
VVBPV0VSR0xJQl9JTkNMVURFX0RJUlMgVVBPV0VSR0xJQl9MSUJSQVJJRVMKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX1ZBUiAgIFBDX1VQT1dFUkdMSUJfVkVSU0lP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggN2NkOGNjMjliMDM2NTY0NWM4MmZiZmQzYTI5N2Yy
YmI5Yjc4MTdlNC4uMjBjYTA3ZTE1MmE2ZWQ1NWFlMzc4MWFmOGEwNGFjMGI3M2IzMmUwZCAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2UKQEAgLTgxLDcgKzgxLDYgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX1dBWUxBTkRfVEFSR0VUICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciB0aGUg
V2EKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9MSUJOT1RJRlkgIldoZXRoZXIgdG8gZW5hYmxl
IHRoZSBkZWZhdWx0IHdlYiBub3RpZmljYXRpb24gaW1wbGVtZW50YXRpb24uIiBQVUJMSUMgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfTElCSFlQSEVOICJXaGV0aGVyIHRvIGVuYWJsZSB0
aGUgZGVmYXVsdCBhdXRvbWF0aWMgaHlwaGVuYXRpb24gaW1wbGVtZW50YXRpb24uIiBQVUJMSUMg
T04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfTElCU0VDUkVUICJXaGV0aGVyIHRvIGVuYWJs
ZSB0aGUgcGVyc2lzdGVudCBjcmVkZW50aWFsIHN0b3JhZ2UgdXNpbmcgbGlic2VjcmV0LiIgUFVC
TElDIE9OKQotV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1VQT1dFUiAiV2hldGhlciB0byBlbmFi
bGUgdGhlIGxvdyBwb3dlciBtb2RlIGltcGxlbWVudGF0aW9uLiIgUFVCTElDIE9OKQogV0VCS0lU
X09QVElPTl9ERUZJTkUoVVNFX1dPRkYyICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBX
T0ZGMiBXZWIgRm9udHMuIiBQVUJMSUMgT04pCiAKICMgUHJpdmF0ZSBvcHRpb25zIHNwZWNpZmlj
IHRvIHRoZSBHVEsrIHBvcnQuIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMKQEAgLTM0MSwxMyAr
MzQwLDYgQEAgaWYgKFVTRV9MSUJIWVBIRU4pCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKLWlm
IChVU0VfVVBPV0VSKQotICAgIGZpbmRfcGFja2FnZShVUG93ZXJHTGliKQotICAgIGlmIChOT1Qg
VVBPV0VSR0xJQl9GT1VORCkKLSAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJ1cG93ZXItZ2xp
YiBpcyBuZWVkZWQgZm9yIFVTRV9VUE9XRVIuIikKLSAgICBlbmRpZiAoKQotZW5kaWYgKCkKLQog
aWYgKFVTRV9XT0ZGMikKICAgICBmaW5kX3BhY2thZ2UoV09GRjJEZWMgMS4wLjIpCiAgICAgaWYg
KE5PVCBXT0ZGMkRFQ19GT1VORCkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCA1NmY5YjZkMTQzNThhMTExZmQ5ZGQwYjE5ZDQ2NzY2YjJmNjQ3Njc3Li5jZTY5NTZkMzJh
NGJlYzU4Y2Y0OTEyYWIzMzg0NzYyOGUzMmNmZTIyIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDItMjAgIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVTRV9VUE9XRVIg
Y2F1c2VzIGNyYXNoZXMgaW5zaWRlIGEgY2hyb290IG9yIG9uIHN5c3RlbXMgd2l0aCBicm9rZW4g
ZGJ1cy91cG93ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MTgyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEdldCByaWQgb2YgdGhlIHVwb3dlci1nbGliIGRlcGVuZGVuY3kuIFdlIHdpbGwgdXNlIHVw
b3dlcidzIEQtQnVzIEFQSSBpbnN0ZWFkLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRV
UG93ZXJHTGliLmNtYWtlOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25z
R1RLLmNtYWtlOgorCiAyMDE4LTAyLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBQbGF5YmluMyBzdXBwb3J0Cg==
</data>
<flag name="review"
          id="353067"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>