<?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>147263</bug_id>
          
          <creation_ts>2015-07-24 09:35:37 -0700</creation_ts>
          <short_desc>UserMediaRequest should supply IDs of devices selected by user</short_desc>
          <delta_ts>2015-08-14 02:02:47 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147062</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Daiter">mdaiter</reporter>
          <assigned_to name="Matthew Daiter">mdaiter</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jonlee</cc>
    
    <cc>mdaiter</cc>
    
    <cc>pnormand</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1111993</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-24 09:35:37 -0700</bug_when>
    <thetext>In order to provide the user as much flexibility as possible when selecting his/her device of preference for capture, MediaStreams MUST have an extendable, adaptable and easily connected interface from WebKit2 to Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111994</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-24 09:37:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/21983345&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112124</commentid>
    <comment_count>2</comment_count>
      <attachid>257487</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-24 16:02:42 -0700</bug_when>
    <thetext>Created attachment 257487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113474</commentid>
    <comment_count>3</comment_count>
      <attachid>257849</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-30 13:38:23 -0700</bug_when>
    <thetext>Created attachment 257849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113477</commentid>
    <comment_count>4</comment_count>
      <attachid>257850</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-30 13:44:26 -0700</bug_when>
    <thetext>Created attachment 257850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113720</commentid>
    <comment_count>5</comment_count>
      <attachid>257850</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-07-31 08:51:50 -0700</bug_when>
    <thetext>Comment on attachment 257850
Patch

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

&gt; Source/WebCore/platform/mock/UserMediaClientMock.h:48
&gt; +            m_request-&gt;userMediaAccessGranted(WTF::emptyString(), WTF::emptyString());

This doesn&apos;t seem right. I think you will need to modify UserMediClientMock to allow tests to specify the video and/or audio UIDs that are passed through this.

&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:158
&gt;      if (!_request)
&gt;          return;
&gt;  
&gt; -    _request-&gt;userMediaAccessGranted();
&gt; +    _request-&gt;userMediaAccessGranted(WTF::emptyString(), WTF::emptyString());
&gt; +    RemoveRequestFromMap(_request.get());
&gt; +#endif

Shouldn&apos;t this method be deleted?

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:57
&gt;      // FIXME(147062): Need to add in the support for Safari to pass strings given from user&apos;s decision on what piece of media to open

Is this FIXME still needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113868</commentid>
    <comment_count>6</comment_count>
      <attachid>257961</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 14:49:08 -0700</bug_when>
    <thetext>Created attachment 257961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113873</commentid>
    <comment_count>7</comment_count>
      <attachid>257487</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 14:51:58 -0700</bug_when>
    <thetext>Comment on attachment 257487
Patch

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

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:57
&gt;      // FIXME(147062): Need to add in the support for Safari to pass strings given from user&apos;s decision on what piece of media to open

Do we file this as well? We need everything in this patch to solve this problem, but this problem is solved with this patch. Obsolete the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113892</commentid>
    <comment_count>8</comment_count>
      <attachid>257968</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 15:22:40 -0700</bug_when>
    <thetext>Created attachment 257968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113899</commentid>
    <comment_count>9</comment_count>
      <attachid>257970</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 15:36:58 -0700</bug_when>
    <thetext>Created attachment 257970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113905</commentid>
    <comment_count>10</comment_count>
      <attachid>257973</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 15:53:31 -0700</bug_when>
    <thetext>Created attachment 257973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113907</commentid>
    <comment_count>11</comment_count>
      <attachid>257975</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 15:58:49 -0700</bug_when>
    <thetext>Created attachment 257975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113917</commentid>
    <comment_count>12</comment_count>
      <attachid>257978</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 16:22:51 -0700</bug_when>
    <thetext>Created attachment 257978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113933</commentid>
    <comment_count>13</comment_count>
      <attachid>257983</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-07-31 17:40:57 -0700</bug_when>
    <thetext>Created attachment 257983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114026</commentid>
    <comment_count>14</comment_count>
      <attachid>257983</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-08-01 09:02:15 -0700</bug_when>
    <thetext>Comment on attachment 257983
Patch

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

Looks good generally with the caveats mentioned, but I am not a WK2 reviewer so you will need someone to give the official r+.

&gt; Source/WebCore/platform/mock/UserMediaClientMock.h:48
&gt; +            m_request-&gt;userMediaAccessGranted(WTF::emptyString(), WTF::emptyString());

As I noted before, this doesn&apos;t seem right. I think you will need to modify UserMediClientMock to allow tests to specify the video and/or audio UIDs that are passed through this. It is fine to do this in a follow-up, but please file a bug and add a FIXME.

&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:156
&gt; +    _request-&gt;userMediaAccessGranted(WTF::emptyString(), WTF::emptyString());

You didn&apos;t add this, but it seems strange to call userMediaAccessGranted from cancelRequest - wouldn&apos;t make more sense to call userMediaAccessDenied instead? Please add a FIXME comment so we remember to look at this.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:70
&gt; +    priv-&gt;request-&gt;allow(String::fromUTF8(videoDeviceUID), String::fromUTF8(audioDeviceUID));

You still need to redefine WebKitPermissionRequestIface.allow

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:57
&gt;      // FIXME(147062): Need to add in the support for Safari to pass strings given from user&apos;s decision on what piece of media to open

Is this comment still relevant?

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:47
&gt; -void UserMediaPermissionRequestProxy::allow()
&gt; +void UserMediaPermissionRequestProxy::allow(const String&amp; videoDeviceUID, const String&amp; audioDeviceUID)
&gt;  {
&gt; -    m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, true);
&gt; +    m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, true, videoDeviceUID, audioDeviceUID);
&gt;  }
&gt;  
&gt;  void UserMediaPermissionRequestProxy::deny()
&gt;  {
&gt; -    m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, false);
&gt; +    m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, false, emptyString(), emptyString());
&gt;  }

Instead of passing a two empty string when the request is denied, UserMediaPermissionRequestManager should have separate methods for allow and deny now that they take different parameters. Maybe

    void userMediaPermissionRequestWasGranted(uint64_t userMediaID, const String&amp; deviceUIDVideo, const String&amp; deviceUIDAudio);
    void userMediaPermissionRequestWasDenied(uint64_t userMediaID);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114288</commentid>
    <comment_count>15</comment_count>
      <attachid>258097</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-03 12:06:44 -0700</bug_when>
    <thetext>Created attachment 258097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114292</commentid>
    <comment_count>16</comment_count>
      <attachid>257983</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-03 12:24:05 -0700</bug_when>
    <thetext>Comment on attachment 257983
Patch

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

&gt;&gt; Source/WebCore/platform/mock/UserMediaClientMock.h:48
&gt;&gt; +            m_request-&gt;userMediaAccessGranted(WTF::emptyString(), WTF::emptyString());
&gt; 
&gt; As I noted before, this doesn&apos;t seem right. I think you will need to modify UserMediClientMock to allow tests to specify the video and/or audio UIDs that are passed through this. It is fine to do this in a follow-up, but please file a bug and add a FIXME.

See below comment on emptyString() vs choosing first &quot;best&quot; device.

&gt;&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:156
&gt;&gt; +    _request-&gt;userMediaAccessGranted(WTF::emptyString(), WTF::emptyString());
&gt; 
&gt; You didn&apos;t add this, but it seems strange to call userMediaAccessGranted from cancelRequest - wouldn&apos;t make more sense to call userMediaAccessDenied instead? Please add a FIXME comment so we remember to look at this.

Yep. But this is in allow

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:70
&gt;&gt; +    priv-&gt;request-&gt;allow(String::fromUTF8(videoDeviceUID), String::fromUTF8(audioDeviceUID));
&gt; 
&gt; You still need to redefine WebKitPermissionRequestIface.allow

Not really. There&apos;s an architecture problem with that, because the class inherits the allow method from a generalized PermissionRequestIface, which affects other classes. Rather do this in the class and define the method as a way to choose the &quot;best&quot; device

&gt;&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:57
&gt;&gt;      // FIXME(147062): Need to add in the support for Safari to pass strings given from user&apos;s decision on what piece of media to open
&gt; 
&gt; Is this comment still relevant?

Nope! Deleted

&gt;&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:47
&gt;&gt;  }
&gt; 
&gt; Instead of passing a two empty string when the request is denied, UserMediaPermissionRequestManager should have separate methods for allow and deny now that they take different parameters. Maybe
&gt; 
&gt;     void userMediaPermissionRequestWasGranted(uint64_t userMediaID, const String&amp; deviceUIDVideo, const String&amp; deviceUIDAudio);
&gt;     void userMediaPermissionRequestWasDenied(uint64_t userMediaID);

Later fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114344</commentid>
    <comment_count>17</comment_count>
      <attachid>258109</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-03 13:59:26 -0700</bug_when>
    <thetext>Created attachment 258109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114657</commentid>
    <comment_count>18</comment_count>
      <attachid>258109</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-04 11:16:18 -0700</bug_when>
    <thetext>Comment on attachment 258109
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Linking device query ability from WebKit2 to Safari

There&apos;s nothing Safari specific about this patch. &quot;to clients&quot;?

&gt; Source/WebCore/platform/mock/UserMediaClientMock.h:48
&gt; +            m_request-&gt;userMediaAccessGranted(m_request-&gt;videoDeviceUIDs().at(0), m_request-&gt;audioDeviceUIDs().at(0));

Are we sure there will always be at least one in both vectors?

&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:156
&gt; +    _request-&gt;userMediaAccessGranted(_request-&gt;videoDeviceUIDs().at(0), _request-&gt;audioDeviceUIDs().at(0));

For what reason are we keeping the version of allow that takes no parameters? Also, who calls these?

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:55
&gt; +        const char* deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Video).utf8().data();
&gt; +        WKArrayAppendItem(array, WKStringCreateWithUTF8CString(deviceName));

You don&apos;t need to round-trip through char* here, you can use toAPI (or something like that; look around).

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:64
&gt; +        const char* deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Audio).utf8().data();

Ditto

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h:30
&gt; -WK_EXPORT void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef);
&gt; +WK_EXPORT void WKUserMediaPermissionRequestAllowBest(WKUserMediaPermissionRequestRef);

Are you 100% sure you can change the signature of this SPI? Is it new? Is anything using it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114769</commentid>
    <comment_count>19</comment_count>
      <attachid>258109</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-04 14:13:44 -0700</bug_when>
    <thetext>Comment on attachment 258109
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Linking device query ability from WebKit2 to Safari
&gt; 
&gt; There&apos;s nothing Safari specific about this patch. &quot;to clients&quot;?

Fixed.

&gt;&gt; Source/WebCore/platform/mock/UserMediaClientMock.h:48
&gt;&gt; +            m_request-&gt;userMediaAccessGranted(m_request-&gt;videoDeviceUIDs().at(0), m_request-&gt;audioDeviceUIDs().at(0));
&gt; 
&gt; Are we sure there will always be at least one in both vectors?

Yep. There must be, or else the request at the base will throw an error.

&gt;&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:156
&gt;&gt; +    _request-&gt;userMediaAccessGranted(_request-&gt;videoDeviceUIDs().at(0), _request-&gt;audioDeviceUIDs().at(0));
&gt; 
&gt; For what reason are we keeping the version of allow that takes no parameters? Also, who calls these?

The class inherits from another class, which has an &quot;allow&quot; and &quot;deny&quot; method. So, to make it easier on the developer and to make this class implement its superclass&apos;s methods correctly, we MUST keep this function. There&apos;s also talk of only allowing the &quot;best&quot; device to be selected for a certain task. This method makes making that request easy (vectors are organized so best device for selection is at 0 index).

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:55
&gt;&gt; +        WKArrayAppendItem(array, WKStringCreateWithUTF8CString(deviceName));
&gt; 
&gt; You don&apos;t need to round-trip through char* here, you can use toAPI (or something like that; look around).

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:64
&gt;&gt; +        const char* deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Audio).utf8().data();
&gt; 
&gt; Ditto

Ditto.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h:30
&gt;&gt; +WK_EXPORT void WKUserMediaPermissionRequestAllowBest(WKUserMediaPermissionRequestRef);
&gt; 
&gt; Are you 100% sure you can change the signature of this SPI? Is it new? Is anything using it?

Positive. And we also have another method that lets us use more specific selection if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114770</commentid>
    <comment_count>20</comment_count>
      <attachid>258208</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-04 14:14:44 -0700</bug_when>
    <thetext>Created attachment 258208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114851</commentid>
    <comment_count>21</comment_count>
      <attachid>258208</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-04 16:23:45 -0700</bug_when>
    <thetext>Comment on attachment 258208
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:54
&gt; +        WTF::String deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Video);

No WTF::. Also, why does getDeviceNameForUID have a &quot;get&quot; in its name? No out argument that I can see!

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:55
&gt; +        WKArrayAppendItem(array, toAPI(&amp;API::String::create(deviceName).leakRef()));

My confidence in the memory management situation here is not strong, but I haven&apos;t looked enough to say it&apos;s wrong either.

I really think you want a .ptr() here, though, not a leakRef.

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:64
&gt; +        WTF::String deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Audio);

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115039</commentid>
    <comment_count>22</comment_count>
      <attachid>258281</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-05 10:17:47 -0700</bug_when>
    <thetext>Created attachment 258281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115041</commentid>
    <comment_count>23</comment_count>
      <attachid>258282</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-05 10:19:18 -0700</bug_when>
    <thetext>Created attachment 258282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115042</commentid>
    <comment_count>24</comment_count>
      <attachid>258283</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-05 10:22:57 -0700</bug_when>
    <thetext>Created attachment 258283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115043</commentid>
    <comment_count>25</comment_count>
      <attachid>258208</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-05 10:24:41 -0700</bug_when>
    <thetext>Comment on attachment 258208
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:54
&gt;&gt; +        WTF::String deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Video);
&gt; 
&gt; No WTF::. Also, why does getDeviceNameForUID have a &quot;get&quot; in its name? No out argument that I can see!

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:55
&gt;&gt; +        WKArrayAppendItem(array, toAPI(&amp;API::String::create(deviceName).leakRef()));
&gt; 
&gt; My confidence in the memory management situation here is not strong, but I haven&apos;t looked enough to say it&apos;s wrong either.
&gt; 
&gt; I really think you want a .ptr() here, though, not a leakRef.

You had said to do it the way WKString was doing it, and that was how WKString was doing it here. However, I can change that to a ptr. Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:64
&gt;&gt; +        WTF::String deviceName = toImpl(userMediaPermissionRef)-&gt;getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Audio);
&gt; 
&gt; Ditto

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115051</commentid>
    <comment_count>26</comment_count>
      <attachid>258283</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-08-05 10:43:15 -0700</bug_when>
    <thetext>Comment on attachment 258283
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Linking device query ability from WebKit2 to clients

Please use the updated bug title.

&gt; Source/WebCore/ChangeLog:13
&gt; +        * platform/graphics/mac/WebGLLayer.mm:
&gt; +        (-[WebGLLayer initWithGraphicsContext3D:]):

This wasn&apos;t changed.

&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:156
&gt; +    _request-&gt;userMediaAccessGranted(_request-&gt;videoDeviceUIDs().at(0), _request-&gt;audioDeviceUIDs().at(0));

Will both of these vectors really have at least one element when a user chooses a device that provides only video or audio. What if the call to getUserMedia only request video or audio?

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:37
&gt; +    toImpl(userMediaPermissionRequestRef)-&gt;allow(toImpl(userMediaPermissionRequestRef)-&gt;videoDeviceUIDs().at(0), toImpl(userMediaPermissionRequestRef)-&gt;audioDeviceUIDs().at(0));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115063</commentid>
    <comment_count>27</comment_count>
      <attachid>258286</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-05 11:15:08 -0700</bug_when>
    <thetext>Created attachment 258286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115064</commentid>
    <comment_count>28</comment_count>
      <attachid>258287</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-05 11:16:44 -0700</bug_when>
    <thetext>Created attachment 258287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115066</commentid>
    <comment_count>29</comment_count>
      <attachid>258286</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-08-05 11:21:32 -0700</bug_when>
    <thetext>Comment on attachment 258286
Patch

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

&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:176
&gt; +    if (!_request-&gt;videoDeviceUIDs().isEmpty() &amp;&amp; !_request-&gt;audioDeviceUIDs().isEmpty())
&gt; +        _request-&gt;userMediaAccessGranted(_request-&gt;videoDeviceUIDs().at(0), _request-&gt;audioDeviceUIDs().at(0));
&gt; +    else if (!_request-&gt;videoDeviceUIDs().isEmpty())
&gt; +        _request-&gt;userMediaAccessGranted(_request-&gt;videoDeviceUIDs().at(0), emptyString());
&gt; +    else if (!_request-&gt;audioDeviceUIDs().isEmpty())
&gt; +        _request-&gt;userMediaAccessGranted(emptyString(), _request-&gt;audioDeviceUIDs().at(0));

Nit: I think this would be easier to follow with a couple of local variables:

  const String&amp; videoUID = _request-&gt;videoDeviceUIDs().isEmpty() ? _request-&gt;videoDeviceUIDs().at(0) : emptyString()
  const String&amp; audioUID = _request-&gt;audioDeviceUIDs().isEmpty() ? _request-&gt;audioDeviceUIDs().at(0) : emptyString()

  _request-&gt;userMediaAccessGranted(videoUID, audioUID);

&gt; Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp:37
&gt; +    toImpl(userMediaPermissionRequestRef)-&gt;allow(toImpl(userMediaPermissionRequestRef)-&gt;videoDeviceUIDs().at(0), toImpl(userMediaPermissionRequestRef)-&gt;audioDeviceUIDs().at(0));

Is this OK when one or both of the vectors is empty?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:70
&gt; +    priv-&gt;request-&gt;allow(priv-&gt;request-&gt;videoDeviceUIDs().at(0), priv-&gt;request-&gt;audioDeviceUIDs().at(0));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117073</commentid>
    <comment_count>30</comment_count>
      <attachid>258286</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-12 14:56:30 -0700</bug_when>
    <thetext>Comment on attachment 258286
Patch

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

&gt;&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:176
&gt;&gt; +        _request-&gt;userMediaAccessGranted(emptyString(), _request-&gt;audioDeviceUIDs().at(0));
&gt; 
&gt; Nit: I think this would be easier to follow with a couple of local variables:
&gt; 
&gt;   const String&amp; videoUID = _request-&gt;videoDeviceUIDs().isEmpty() ? _request-&gt;videoDeviceUIDs().at(0) : emptyString()
&gt;   const String&amp; audioUID = _request-&gt;audioDeviceUIDs().isEmpty() ? _request-&gt;audioDeviceUIDs().at(0) : emptyString()
&gt; 
&gt;   _request-&gt;userMediaAccessGranted(videoUID, audioUID);

I think you mean:
  const String&amp; videoUID = !_request-&gt;videoDeviceUIDs().isEmpty() ? _request-&gt;videoDeviceUIDs().at(0) : emptyString()
  const String&amp; audioUID = !_request-&gt;audioDeviceUIDs().isEmpty() ? _request-&gt;audioDeviceUIDs().at(0) : emptyString()

  _request-&gt;userMediaAccessGranted(videoUID, audioUID);

But fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117074</commentid>
    <comment_count>31</comment_count>
      <attachid>258848</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-12 15:01:32 -0700</bug_when>
    <thetext>Created attachment 258848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117094</commentid>
    <comment_count>32</comment_count>
      <attachid>258848</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-08-12 17:13:45 -0700</bug_when>
    <thetext>Comment on attachment 258848
Patch

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        * Platform/mac/LayerHostingContext.mm:
&gt; +        (WebKit::LayerHostingContext::setColorMatchUntaggedContent):
&gt; +        (WebKit::LayerHostingContext::colorMatchUntaggedContent):

This looks unrelated.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:75
&gt; +    const String&amp; videoDevice = !priv-&gt;request-&gt;videoDeviceUIDs().isEmpty() ? priv-&gt;request-&gt;videoDeviceUIDs().at(0) : emptyString();
&gt; +    const String&amp; audioDevice = !priv-&gt;request-&gt;audioDeviceUIDs().isEmpty() ? priv-&gt;request-&gt;audioDeviceUIDs().at(0) : emptyString();

This snippet (`.isEmpty() : .at(0) : emptyString()`) is repeated now 6 times. Is there a better way to do this?  Can the request vend a &quot;firstVideoDeviceUID()&quot; that returns &quot;emptyString()&quot; if its array is empty?

&gt; Tools/WebKitTestRunner/TestController.cpp:1498
&gt; +            if (WKArrayGetSize(WKUserMediaPermissionRequestDeviceNamesVideo(request.get())) &amp;&amp; WKArrayGetSize(WKUserMediaPermissionRequestDeviceNamesAudio(request.get())))
&gt; +                WKUserMediaPermissionRequestAllow(request.get(), reinterpret_cast&lt;WKStringRef&gt;(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesVideo(request.get()), 0)), reinterpret_cast&lt;WKStringRef&gt;(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesAudio(request.get()), 0)));

And this seems weird; this will only allow if BOTH the video and audio lists are non-empty.  What if someone just requests a video camera with no audio capabilities, or vice versa?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117099</commentid>
    <comment_count>33</comment_count>
      <attachid>258848</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-12 17:25:15 -0700</bug_when>
    <thetext>Comment on attachment 258848
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:75
&gt;&gt; +    const String&amp; audioDevice = !priv-&gt;request-&gt;audioDeviceUIDs().isEmpty() ? priv-&gt;request-&gt;audioDeviceUIDs().at(0) : emptyString();
&gt; 
&gt; This snippet (`.isEmpty() : .at(0) : emptyString()`) is repeated now 6 times. Is there a better way to do this?  Can the request vend a &quot;firstVideoDeviceUID()&quot; that returns &quot;emptyString()&quot; if its array is empty?

We could, but that seems like an awfully specific function. However, that could easily be written.

&gt;&gt; Tools/WebKitTestRunner/TestController.cpp:1498
&gt;&gt; +                WKUserMediaPermissionRequestAllow(request.get(), reinterpret_cast&lt;WKStringRef&gt;(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesVideo(request.get()), 0)), reinterpret_cast&lt;WKStringRef&gt;(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesAudio(request.get()), 0)));
&gt; 
&gt; And this seems weird; this will only allow if BOTH the video and audio lists are non-empty.  What if someone just requests a video camera with no audio capabilities, or vice versa?

I can change this so that the system passes back an empty string if the array size is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117129</commentid>
    <comment_count>34</comment_count>
      <attachid>258866</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-12 18:28:49 -0700</bug_when>
    <thetext>Created attachment 258866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117158</commentid>
    <comment_count>35</comment_count>
      <attachid>258866</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-08-12 19:29:32 -0700</bug_when>
    <thetext>Comment on attachment 258866
Patch

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        * Platform/mac/LayerHostingContext.mm:
&gt; +        (WebKit::LayerHostingContext::setColorMatchUntaggedContent):
&gt; +        (WebKit::LayerHostingContext::colorMatchUntaggedContent):

Looks like you forgot to remove these.

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.h:79
&gt; +    const String&amp; firstVideoDeviceUID() const { return !videoDeviceUIDs().isEmpty() ? videoDeviceUIDs().at(0) : emptyString(); }
&gt; +    const String&amp; firstAudioDeviceUID() const { return !audioDeviceUIDs().isEmpty() ? audioDeviceUIDs().at(0) : emptyString(); }

Nit: you can use the instance variables directly instead of calling the functions.

&gt; Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm:157
&gt; +    const String&amp; videoUID = _request-&gt;firstVideoDeviceUID();
&gt; +    const String&amp; audioUID = _request-&gt;firstAudioDeviceUID();

Nit: no need for these local variables now:

_request-&gt;userMediaAccessGranted(_request-&gt;firstVideoDeviceUID(), _request-&gt;firstAudioDeviceUID());

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:77
&gt; +    const String&amp; videoDevice = priv-&gt;request-&gt;videoDeviceUIDs().firstVideoDeviceUID();
&gt; +    const String&amp; audioDevice = priv-&gt;request-&gt;audioDeviceUIDs().firstAudioDeviceUID();
&gt; +    
&gt; +    priv-&gt;request-&gt;allow(videoDevice, audioDevice);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117160</commentid>
    <comment_count>36</comment_count>
      <attachid>258876</attachid>
    <who name="Matthew Daiter">mdaiter</who>
    <bug_when>2015-08-12 19:57:42 -0700</bug_when>
    <thetext>Created attachment 258876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117265</commentid>
    <comment_count>37</comment_count>
      <attachid>258876</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-08-13 10:24:31 -0700</bug_when>
    <thetext>Comment on attachment 258876
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117272</commentid>
    <comment_count>38</comment_count>
      <attachid>258876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-13 10:34:07 -0700</bug_when>
    <thetext>Comment on attachment 258876
Patch

Clearing flags on attachment: 258876

Committed r188385: &lt;http://trac.webkit.org/changeset/188385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117273</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-13 10:34:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117619</commentid>
    <comment_count>40</comment_count>
      <attachid>258876</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-14 02:02:15 -0700</bug_when>
    <thetext>Comment on attachment 258876
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:91
&gt; +static void webkitUserMediaPermissionRequestAllow(WebKitPermissionRequest* request, const char* videoDeviceUID, const char* audioDeviceUID)
&gt; +{
&gt; +    ASSERT(WEBKIT_IS_USER_MEDIA_PERMISSION_REQUEST(request));
&gt; +
&gt; +    WebKitUserMediaPermissionRequestPrivate* priv = WEBKIT_USER_MEDIA_PERMISSION_REQUEST(request)-&gt;priv;
&gt; +
&gt; +    // Only one decision at a time.
&gt; +    if (priv-&gt;madeDecision)
&gt; +        return;
&gt; +
&gt; +    priv-&gt;madeDecision = true;
&gt; +    priv-&gt;request-&gt;allow(String::fromUTF8(videoDeviceUID), String::fromUTF8(audioDeviceUID));

I think this is dead code. The interface is defined as void (* allow) (WebKitPermissionRequest *request), and webkitUserMediaPermissionRequestAllow is assigned to WebKitPermissionRequestIface.allow. We have two symbols with the same name, but I guess the compiler chooses the one that matches the signature. So, this one is simply never used.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257487</attachid>
            <date>2015-07-24 16:02:42 -0700</date>
            <delta_ts>2015-07-30 13:38:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150724160127.patch</filename>
            <type>text/plain</type>
            <size>18121</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQzMmYyZjllZGU0MGE1
OTk4NDJjOGFhZDYwZDdkZTc1NTkxN2I5OC4uZDgxZjkyZWVjNzhjMzM0ZjExYzQ5ZmJhYTZlYWI4
OGJmMDg4NzA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTI0ICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmRldmljZVVJRHNWaWRlbyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpkZXZpY2VVSURzQXVkaW8pOiBE
ZWxldGVkLgorCiAyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CiAKICAgICAgICAgQ1NTICJjb250ZW50IiBwcm9wZXJ0eSBpcyBtaXNzaW5nIGluIGdldENv
bXB1dGVkU3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMTE5YjFmMjdiNTUwMDc0MDhhOTI4YjJm
ZTFiNWI2NTNiZmI5ZjJkNC4uOTJjYWY4Yjc0YjBmMTdkZGY2OTUyZjQ5YzczOTlhMzdmM2IyMWRk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA3LTI0ICBNYXR0aGV3
IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNlIHF1
ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKC1b
V2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViVXNlck1l
ZGlhUG9saWN5TGlzdGVuZXIgYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6YW5kQXVkaW9VSUQ6XSk6
CisKIDIwMTUtMDctMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgY29tcGlsZSBhbmQgcnVudGltZSBmbGFncyBmb3IgcHJvbWlz
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggZDQzMzYyNzFlZWNhOTY5MTU1ZTdiNTNjNDU2NzM3Yzg1ZDczY2Iy
Ny4uNTA5MGU0NzM4MzE5OTMzMTg4NjUzYmY1NGVmMWIwZWMwY2Q5MjJlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMyIEBACisyMDE1LTA3LTI0ICBNYXR0aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBw
bGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNlIHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJL
aXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTk4MzM0NT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3cpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp2aWRlb0Rl
dmljZVVJRHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjphdWRpb0RldmljZVVJRHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpkZXZpY2VVSURzVmlkZW8pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZXZpY2VVSURzQXVkaW8pOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24pOgorCiAyMDE1LTA3LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBDcmFzaGVzIGR1cmluZyBwbHVn
aW4gaW5zdGFsbGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCAyZGYwMGQzYjI1YzY3ZWY0YjQxMzEz
ZDVhYjdjMmNjZGE1ZTU0YzFmLi4wNGE4MDMxMzA0Y2U1MmU2MTNkZmQ4MDc0YTA3MWRmYWVhMjY3
MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgdm9pZCBVc2VyTWVkaWFS
ZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3UKICAgICB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKCkKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlVUlEKQogeworICAgIG1fY2hvc2VuVmlkZW9EZXZpY2VVSUQgPSB2aWRlb0RldmljZVVJRDsK
KyAgICBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEID0gYXVkaW9EZXZpY2VVSUQ7CiAgICAgUmVmUHRy
PFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAzIC0gdGhlIHVzZXIgZ3JhbnRlZCBh
Y2Nlc3MsIGFzayBwbGF0Zm9ybSB0byBjcmVhdGUgdGhlIG1lZGlhIHN0cmVhbSBkZXNjcmlwdG9y
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmgKaW5kZXggYmNiY2UwODBlNGQzN2NmNzk1ZGE3ZTdmYmMyNDg4ZGFkZTUwZjg5
My4uODk5MGM0ZWEyOGU0NmZlYjZlOTdkZGU1MTU2Nzg2MjE3ZDg3ZDU2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgK
QEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2
aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCiAgICAgYm9vbCByZXF1aXJlc0F1ZGlv
KCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CkBAIC03Myw4ICs3Myw2IEBA
IHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzKCkgY29u
c3QgeyByZXR1cm4gbV92aWRlb0RldmljZVVJRHM7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYXVkaW9EZXZpY2VVSURzKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0RldmljZVVJRHM7IH0K
IAotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8oKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZVVJRHNWaWRlbzsgfQotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZp
Y2VVSURzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2RldmljZVVJRHNBdWRpbzsgfQogcHJpdmF0
ZToKICAgICBVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVk
aWFDb250cm9sbGVyKiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFp
bnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWludHMsIE1lZGlh
RGV2aWNlczo6UHJvbWlzZSYmKTsKIApAQCAtOTEsMTIgKzg5LDEyIEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fYXVkaW9Db25zdHJhaW50czsKICAgICBSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4gbV92aWRlb0NvbnN0cmFpbnRzOwogICAgIAotICAgIFZlY3RvcjxT
dHJpbmc+IG1fZGV2aWNlVUlEc1ZpZGVvOwotICAgIFZlY3RvcjxTdHJpbmc+IG1fZGV2aWNlVUlE
c0F1ZGlvOwotCiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAgICAgVmVj
dG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1fY2hvc2Vu
VmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7CisgICAg
CiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVkaWFEZXZp
Y2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQppbmRleCAxN2YxNjQ3M2VkNWI5ZDQz
NDgzMGVkN2M3MjY5ODY1ZDdhNWIzNTNmLi5jMDI3NmNlZDNjMzY2MTg3MTMwNDQ5ZjY3ODdkYjNl
ZWJlMThmY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBAIC00Nyw3ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogfQogLSAoaWQpaW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0OihQYXNzUmVmUHRy
PFVzZXJNZWRpYVJlcXVlc3Q+KXJlcXVlc3Q7CiAtICh2b2lkKWNhbmNlbFJlcXVlc3Q7Ci0tICh2
b2lkKWFsbG93OworLSAodm9pZClhbGxvd0RldmljZVdpdGhWaWRlb1VJRDooY29uc3QgU3RyaW5n
Jil2aWRlb1VJRCBhbmRBdWRpb1VJRDooY29uc3QgU3RyaW5nJilhdWRpb1VJRDsKIC0gKHZvaWQp
ZGVueTsKIEBlbmQKIApAQCAtMTUyLDggKzE1MiwxOSBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVu
dDo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0JiByZXF1ZXN0KQogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKFdURjo6ZW1wdHlTdHJpbmcoKSwg
V1RGOjplbXB0eVN0cmluZygpKTsKKyAgICBSZW1vdmVSZXF1ZXN0RnJvbU1hcChfcmVxdWVzdC5n
ZXQoKSk7CisjZW5kaWYKK30KKworLSAodm9pZClhbGxvd0RldmljZVdpdGhWaWRlb1VJRDooY29u
c3QgU3RyaW5nJil2aWRlb1VJRCBhbmRBdWRpb1VJRDooY29uc3QgU3RyaW5nJilhdWRpb1VJRAor
eworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKCFfcmVxdWVzdCkKKyAgICAgICAg
cmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBf
cmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAg
IFJlbW92ZVJlcXVlc3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4
NTlkMzIwMzMzMjMuLjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1
ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJ
RCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9B
UEkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwg
V0tTdHJpbmdSZWYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYpLT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3Ry
aW5nKGF1ZGlvRGV2aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYpLT5kZW55KCk7CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVk
aWFQZXJtaXNzaW9uUmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRh
YmxlQXJyYXlSZWYoKTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVy
bWlzc2lvblJlZiktPnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRl
dmljZU5hbWUgPSB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVG
b3JVSUQobmFtZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0
ZjgoKS5kYXRhKCk7CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJh
eTsKK30KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJl
ZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVm
KS0+YXVkaW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9
IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1l
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEo
KTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGRldmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNl
YTU2Y2U1Y2ZjMS4uZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsK
IAogV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBl
SUQoKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93
KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJ
RCk7CiBXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4
YmQ4OWJmOGUuLjZiMDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNz
UmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVz
ZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxv
d2VkKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9v
bCBhbGxvd2VkLCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1
ZGlvRGV2aWNlVUlEKQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0
aGUgc3VwcG9ydCBmb3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBk
ZWNpc2lvbiBvbiB3aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7
CisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0Rl
dmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKaW5kZXggZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0
NDFmNDg5MjIxMGJhYWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQ
dHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRldmljZVVJRHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRp
byk7CiAKICAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3
aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZv
aWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBh
bGxvdywgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0Rl
dmljZVVJRCk7CiAKIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcAppbmRleCBiMDIzMmYyMzAyNTlhODg3MTk1ZjRkODRmNGZlNGUwMmI0MmE1
Y2JiLi45M2NhYTQ0ZTQ4NTU5ZGE2MzMxZjI4Yjk4OTg4YWVlODBmMmU3MGU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC0zMSwxOSArMzIsMTkgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKICAgICAsIG1fdXNlck1l
ZGlhSUQodXNlck1lZGlhSUQpCiAgICAgLCBtX3JlcXVpcmVzQXVkaW8ocmVxdWlyZXNBdWRpbykK
ICAgICAsIG1fcmVxdWlyZXNWaWRlbyhyZXF1aXJlc1ZpZGVvKQotICAgICwgbV9kZXZpY2VVSURz
VmlkZW8oZGV2aWNlVUlEc1ZpZGVvKQotICAgICwgbV9kZXZpY2VVSURzQXVkaW8oZGV2aWNlVUlE
c0F1ZGlvKQorICAgICwgbV92aWRlb0RldmljZVVJRHMoZGV2aWNlVUlEc1ZpZGVvKQorICAgICwg
bV9hdWRpb0RldmljZVVJRHMoZGV2aWNlVUlEc0F1ZGlvKQogewogfQogCi12b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6YWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3Qg
U3RyaW5nJiBhdWRpb0RldmljZVVJRCkKIHsKLSAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKKyAgICBtX21hbmFn
ZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0
cnVlLCB2aWRlb0RldmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpOwogfQogCiB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNl
aXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKKyAg
ICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJN
ZWRpYUlELCBmYWxzZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSk7CiB9CiAKIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaAppbmRleCBhZmIyZDExNTY0ZWU0MmY1NmY5NjdlZGEwYmVhNzg2ZTg5YTc4ZjVjLi5j
ZTA3OTM5NDFiMWNiMWFjNDNhZWE2ZDU2YmJkMTk4ZWYyZjdkMTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQs
IHJlcXVpcmVzQXVkaW8sIHJlcXVpcmVzVmlkZW8sIGRldmljZVVJRHNWaWRlbywgZGV2aWNlVUlE
c0F1ZGlvKSk7CiAgICAgfQogCi0gICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgYWxsb3coY29u
c3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7
CiAgICAgdm9pZCBkZW55KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKQEAgLTQ4LDggKzQ4
LDggQEAgcHVibGljOgogICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1f
cmVxdWlyZXNBdWRpbzsgfQogICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0IHsgcmV0dXJu
IG1fcmVxdWlyZXNWaWRlbzsgfQogICAgIAotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZp
Y2VVSURzVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX2RldmljZVVJRHNWaWRlbzsgfQotICAgIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2Rl
dmljZVVJRHNBdWRpbzsgfQorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2aWRlb0RldmljZVVJ
RHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRGV2aWNlVUlEczsgfQorICAgIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRGV2aWNl
VUlEczsgfQogCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHko
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVk
aWFJRCwgYm9vbCByZXF1aXJlc0F1ZGlvLCBib29sIHJlcXVpcmVzVmlkZW8sIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VV
SURzQXVkaW8pOwpAQCAtNTgsOCArNTgsOCBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fdXNl
ck1lZGlhSUQ7CiAgICAgYm9vbCBtX3JlcXVpcmVzQXVkaW87CiAgICAgYm9vbCBtX3JlcXVpcmVz
VmlkZW87Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9kZXZpY2VVSURzVmlkZW87Ci0gICAgVmVjdG9y
PFN0cmluZz4gbV9kZXZpY2VVSURzQXVkaW87CisgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0Rl
dmljZVVJRHM7CisgICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcAppbmRleCA5MTQ4ZDZjM2M1ZjgzMTAxNTA3Nzk5NDkwYzUwOTAzNGJl
NmYwZDYzLi4xMzU1ZDYzYjliNTA3NTFhMjFmYTI4YTRhM2M0ZDgxZmJhOTE3ZGZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC02Myw3
ICs2Myw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJl
cXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKICAgICBBU1NFUlQod2ViRnJhbWUpOwog
CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IHJlcXVlc3Quc2VjdXJpdHlPcmlnaW4oKTsK
LSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2lu
LT5kYXRhYmFzZUlkZW50aWZpZXIoKSwgcmVxdWVzdC5yZXF1aXJlc0F1ZGlvKCksIHJlcXVlc3Qu
cmVxdWlyZXNWaWRlbygpLCByZXF1ZXN0LmRldmljZVVJRHNWaWRlbygpLCByZXF1ZXN0LmRldmlj
ZVVJRHNBdWRpbygpKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShyZXF1ZXN0SUQsIHdlYkZyYW1lLT5m
cmFtZUlEKCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHJlcXVlc3QucmVxdWlyZXNB
dWRpbygpLCByZXF1ZXN0LnJlcXVpcmVzVmlkZW8oKSwgcmVxdWVzdC52aWRlb0RldmljZVVJRHMo
KSwgcmVxdWVzdC5hdWRpb0RldmljZVVJRHMoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0JiByZXF1
ZXN0KQpAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aQogICAgIG1fcmVx
dWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAgICAgaWYgKGFsbG93ZWQpCi0gICAgICAg
IHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAgICAgcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRlbywgZGV2aWNlVUlEQXVkaW8pOwogICAg
IGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257849</attachid>
            <date>2015-07-30 13:38:23 -0700</date>
            <delta_ts>2015-07-30 13:44:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150730133822.patch</filename>
            <type>text/plain</type>
            <size>17413</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQppbmRleCA0MGE3ZDcwMTc2
YzExODkzNjc1NzcxOTA5ZGZhNzQyMDI3MTBlNDg1Li44YTkxMWRhYTZlOTFmNWY4NWRjNGQzMTZl
MjliZjNkOGU4ZDJlNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViR0xMYXllci5tbQpAQCAtNTQsOCArNTQsOCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgc2VsZi5jb250ZW50c1NjYWxlID0gX2Rl
dmljZVBpeGVsUmF0aW87CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDAKLSAgICBpZiAoW3NlbGYgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRDb2xv
cnNwYWNlOildKQotICAgICAgICBbc2VsZiBzZXRDb2xvcnNwYWNlOnNSR0JDb2xvclNwYWNlUmVm
KCldOworLy8gICAgaWYgKFtzZWxmIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0Q29s
b3JzcGFjZTopXSkKKy8vICAgICAgICBbc2VsZiBzZXRDb2xvcnNwYWNlOnNSR0JDb2xvclNwYWNl
UmVmKCldOwogI2VuZGlmCiAjZW5kaWYKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmgKaW5kZXggY2YxNjhl
NGNlMWNmZTU0ZmE1MDAzNWFkNjdjMTczODI1MWVmNDAwOS4uYzA2ZTI1YjE0YTJiOTYzMDE5NjIz
ZTg0YWQyMjFkODkzMDRlOGY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZmlyZSgpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAobV9yZXF1ZXN0U3VjY2Vz
cykKLSAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAg
ICAgICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKFdURjo6ZW1wdHlTdHJp
bmcoKSwgV1RGOjplbXB0eVN0cmluZygpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9y
ZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KaW5kZXgg
MTdmMTY0NzNlZDViOWQ0MzQ4MzBlZDdjNzI2OTg2NWQ3YTViMzUzZi4uY2FjYWVlNDg3NGJmMTVj
MDkwMTA1ZTdhMWEwOWIxNzNhMTU1MDI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtNDcsNyArNDcsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIH0KIC0gKGlkKWluaXRXaXRoVXNlck1lZGlhUmVx
dWVzdDooUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PilyZXF1ZXN0OwogLSAodm9pZCljYW5j
ZWxSZXF1ZXN0OwotLSAodm9pZClhbGxvdzsKKy0gKHZvaWQpYWxsb3dEZXZpY2VXaXRoVmlkZW9V
SUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNvbnN0IFN0cmluZyYpYXVk
aW9VSUQ7CiAtICh2b2lkKWRlbnk7CiBAZW5kCiAKQEAgLTE1Myw3ICsxNTMsMTggQEAgdm9pZCBX
ZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVz
dCkKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBfcmVxdWVzdC0+
dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKFdURjo6ZW1wdHlTdHJpbmcoKSwgV1RGOjplbXB0eVN0cmluZygpKTsKKyAgICBSZW1v
dmVSZXF1ZXN0RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CisjZW5kaWYKK30KKworLSAodm9pZClh
bGxvd0RldmljZVdpdGhWaWRlb1VJRDooY29uc3QgU3RyaW5nJil2aWRlb1VJRCBhbmRBdWRpb1VJ
RDooY29uc3QgU3RyaW5nJilhdWRpb1VJRAoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgaWYgKCFfcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIF9yZXF1ZXN0LT51
c2VyTWVkaWFBY2Nlc3NHcmFudGVkKHZpZGVvVUlELCBhdWRpb1VJRCk7CiAgICAgUmVtb3ZlUmVx
dWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCmluZGV4IDU0ZmNiOTAw
ZDMzZWZiY2Y4M2JkMGYyMjQ2ZjI3YTNiMGVkZmM2ZTcuLjk5YTA4NjJmZTgxMjE5YTVmYjhjYTE4
MjU2ZDQyMjU2ZWY4ZGY1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCkBAIC0xMDUsMTQgKzEwNSwxNCBAQCBDR0NvbG9yU3Bh
Y2VSZWYgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29sb3JTcGFjZSgpIGNvbnN0CiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogdm9p
ZCBMYXllckhvc3RpbmdDb250ZXh0OjpzZXRDb2xvck1hdGNoVW50YWdnZWRDb250ZW50KGJvb2wg
Y29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCkKIHsKLSAgICBpZiAoW21fY29udGV4dCByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldENvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQ6KV0pCi0g
ICAgICAgIFttX2NvbnRleHQgc2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudDpjb2xvck1hdGNo
VW50YWdnZWRDb250ZW50XTsKKy8vICAgIGlmIChbbV9jb250ZXh0IHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudDopXSkKKy8vICAgICAgICBb
bV9jb250ZXh0IHNldENvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQ6Y29sb3JNYXRjaFVudGFnZ2Vk
Q29udGVudF07CiB9CiAKIGJvb2wgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29sb3JNYXRjaFVudGFn
Z2VkQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKFttX2NvbnRleHQgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihjb2xvck1hdGNoVW50YWdnZWRDb250ZW50KV0pCi0gICAgICAgIHJldHVy
biBbbV9jb250ZXh0IGNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnRdOworLy8gICAgaWYgKFttX2Nv
bnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihjb2xvck1hdGNoVW50YWdnZWRDb250
ZW50KV0pCisvLyAgICAgICAgcmV0dXJuIFttX2NvbnRleHQgY29sb3JNYXRjaFVudGFnZ2VkQ29u
dGVudF07CiAgICAgcmV0dXJuIGZhbHNlOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHAKaW5kZXggMDVmZDNlNjI4YWZmM2EwM2QxNTRhZmUyNDk2ZDg1OWQzMjAzMzMyMy4u
NmM2MGI5ZmQ3Njg1YTI5ZWU2ZWYxOGUyNmM1Y2RjNDAzNDAzZWFiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LmNwcApAQCAtMjEsNiArMjEsOCBAQAogCiAjaW5jbHVkZSAiVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1
ZGUgIldLTXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiV0tTdHJpbmcuaCIKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIApAQCAtMjksMTIgKzMxLDMyIEBAIFdLVHlwZUlEIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogICAgIHJldHVybiB0b0FQSShVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsKIH0KIAotdm9pZCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBh
dWRpb0RldmljZVVJRCkKIHsKLSAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYpLT5hbGxvdygpOworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmcoYXVkaW9EZXZp
Y2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
KQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRlbnkoKTsK
IH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNW
aWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigp
OworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+
dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRv
SW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykudXRmOCgpLmRhdGEoKTsK
KyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGRldmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQorCitXS0Fy
cmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sKKyAg
ICBXS011dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAgZm9y
IChhdXRvJiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRpb0Rldmlj
ZVVJRHMoKSkgeworICAgICAgICBjb25zdCBjaGFyKiBkZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJN
ZWRpYVBlcm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKS51dGY4KCkuZGF0YSgpOworICAgICAgICBX
S0FycmF5QXBwZW5kSXRlbShhcnJheSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoZGV2
aWNlTmFtZSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuaAppbmRleCA1NDVkMzE4OTU4OGJhMTFjYzMzZmEwM2NjYjVmY2VhNTZjZTVjZmMxLi5m
NDUxZjMyNzA4MmY4NTA2MmJkOGYyY2QxNTNiOGI5ZDA2OWQ2NGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0LmgKQEAgLTI3LDkgKzI3LDEyIEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQg
V0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOwogCi1XS19F
WFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdS
ZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5nUmVmIGF1ZGlvRGV2aWNlVUlEKTsKIFdLX0VYUE9S
VCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RSZWYpOwogCitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKTsKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZXZpY2VOYW1lc0F1ZGlvKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUzYTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4uNmIw
NGYyODVjZmYyYTZmMTQzMDAxNDkwOGE3YmJlMWFjZjYzNTMwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQsIGNv
bnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQp
CiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC01NSw3
ICs1NSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpCiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIC8vIEZJWE1FKDE0NzA2Mik6IE5lZWQgdG8gYWRkIGluIHRoZSBzdXBwb3J0IGZv
ciBTYWZhcmkgdG8gcGFzcyBzdHJpbmdzIGdpdmVuIGZyb20gdXNlcidzIGRlY2lzaW9uIG9uIHdo
YXQgcGllY2Ugb2YgbWVkaWEgdG8gb3BlbgotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2Vy
TWVkaWFJRCwgYWxsb3dlZCwgIiIsICIiKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2Uu
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQsIHZpZGVvRGV2aWNlVUlELCBhdWRp
b0RldmljZVVJRCksIG1fcGFnZS5wYWdlSUQoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShh
bGxvd2VkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBl
MDNkY2I4MTU0NTI5YTZlYmZhMzY0ZWM0YzY2YzY4MjhkNWI4NTMxLi4wMzQ0MWY0ODkyMjEwYmFh
ZDNkMmMwYWMwZjY3OTJjOWE5MjUxNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBib29sIGF1ZGlvLCBib29sIHZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlE
c1ZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc0F1ZGlvKTsKIAogICAgIC8v
IENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lv
biBpcyBtYWRlIGJ5IHRoZSB1c2VyLgotICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisgICAgdm9pZCBkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93LCBjb25zdCBT
dHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKIAog
cHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
CmluZGV4IGMzNTA5YmUxNTM5ZjExNmZhYTMyMGM4MDUxMTRjZGZlYTE0MWE5OWMuLjU0YmUyMTA5
MWE4YzNjMGE5ZTVkYTBmZGIwMzdlNmM5NDk2OWM4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKQEAgLTM2LDE0ICszNiwxNCBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pcwogewogfQogCi12
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3ZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0Rldmlj
ZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCkKIHsKLSAgICBtX21hbmFnZXIuZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsK
KyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3Vz
ZXJNZWRpYUlELCB0cnVlLCB2aWRlb0RldmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpOwogfQogCiB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQogewotICAgIG1fbWFu
YWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQs
IGZhbHNlKTsKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSwgV1RGOjplbXB0eVN0cmluZygpLCBXVEY6OmVtcHR5
U3RyaW5nKCkpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Omlu
dmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFj
MjMzMmNmMzcyY2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJh
NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KG1hbmFnZXIsIHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZp
Y2VVSURzVmlkZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3co
KTsKKyAgICB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZh
bGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKaW5kZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1
NWQ2M2I5YjUwNzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVl
c3QpOwogCiAgICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQoKTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZp
Y2VVSURWaWRlbywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+
dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257850</attachid>
            <date>2015-07-30 13:44:26 -0700</date>
            <delta_ts>2015-07-31 14:49:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150730134425.patch</filename>
            <type>text/plain</type>
            <size>15417</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2Ux
Y2ZlNTRmYTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li5jMDZlMjViMTRhMmI5NjMwMTk2MjNlODRh
ZDIyMWQ4OTMwNGU4ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1VzZXJNZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1VzZXJNZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmaXJlKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQot
ICAgICAgICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAg
ICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoV1RGOjplbXB0eVN0cmluZygp
LCBXVEY6OmVtcHR5U3RyaW5nKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3JlcXVl
c3QtPnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQppbmRleCAxN2Yx
NjQ3M2VkNWI5ZDQzNDgzMGVkN2M3MjY5ODY1ZDdhNWIzNTNmLi5jYWNhZWU0ODc0YmYxNWMwOTAx
MDVlN2ExYTA5YjE3M2ExNTUwMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBAIC00Nyw3ICs0Nyw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfQogLSAoaWQpaW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0
OihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+KXJlcXVlc3Q7CiAtICh2b2lkKWNhbmNlbFJl
cXVlc3Q7Ci0tICh2b2lkKWFsbG93OworLSAodm9pZClhbGxvd0RldmljZVdpdGhWaWRlb1VJRDoo
Y29uc3QgU3RyaW5nJil2aWRlb1VJRCBhbmRBdWRpb1VJRDooY29uc3QgU3RyaW5nJilhdWRpb1VJ
RDsKIC0gKHZvaWQpZGVueTsKIEBlbmQKIApAQCAtMTUzLDcgKzE1MywxOCBAQCB2b2lkIFdlYlVz
ZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0JiByZXF1ZXN0KQog
ICAgIGlmICghX3JlcXVlc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIF9yZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50
ZWQoV1RGOjplbXB0eVN0cmluZygpLCBXVEY6OmVtcHR5U3RyaW5nKCkpOworICAgIFJlbW92ZVJl
cXVlc3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKKyNlbmRpZgorfQorCistICh2b2lkKWFsbG93
RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihj
b25zdCBTdHJpbmcmKWF1ZGlvVUlECit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBp
ZiAoIV9yZXF1ZXN0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgX3JlcXVlc3QtPnVzZXJN
ZWRpYUFjY2Vzc0dyYW50ZWQodmlkZW9VSUQsIGF1ZGlvVUlEKTsKICAgICBSZW1vdmVSZXF1ZXN0
RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcAppbmRleCAwNWZkM2U2MjhhZmYzYTAzZDE1NGFmZTI0OTZkODU5ZDMyMDMzMzIzLi42
YzYwYjlmZDc2ODVhMjllZTZlZjE4ZTI2YzVjZGM0MDM0MDNlYWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwCkBAIC0yMSw2ICsyMSw4IEBACiAKICNpbmNsdWRlICJVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVk
ZSAiV0tNdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJXS1N0cmluZy5oIgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCkBAIC0yOSwxMiArMzEsMzIgQEAgV0tUeXBlSUQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCiAgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5cGUpOwogfQogCi12b2lkIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5nUmVmIGF1
ZGlvRGV2aWNlVUlEKQogewotICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiktPmFsbG93KCk7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+
YWxsb3codG9XVEZTdHJpbmcodmlkZW9EZXZpY2VVSUQpLCB0b1dURlN0cmluZyhhdWRpb0Rldmlj
ZVVJRCkpOwogfQogCiB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
CiB7CiAgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+ZGVueSgpOwog
fQorCitXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1Zp
ZGVvKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJl
ZikKK3sKKyAgICBXS011dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7
CisgICAgZm9yIChhdXRvJiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT52
aWRlb0RldmljZVVJRHMoKSkgeworICAgICAgICBjb25zdCBjaGFyKiBkZXZpY2VOYW1lID0gdG9J
bXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKS51dGY4KCkuZGF0YSgpOwor
ICAgICAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJheSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoZGV2aWNlTmFtZSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CisKK1dLQXJy
YXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8oV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKQoreworICAg
IFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYoKTsKKyAgICBmb3Ig
KGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmF1ZGlvRGV2aWNl
VUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0b0ltcGwodXNlck1l
ZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgIFdL
QXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhkZXZp
Y2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oCmluZGV4IDU0NWQzMTg5NTg4YmExMWNjMzNmYTAzY2NiNWZjZWE1NmNlNWNmYzEuLmY0
NTFmMzI3MDgyZjg1MDYyYmQ4ZjJjZDE1M2I4YjlkMDY5ZDY0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaApAQCAtMjcsOSArMjcsMTIgQEAgZXh0ZXJuICJDIiB7CiAKIFdLX0VYUE9SVCBX
S1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CiAKLVdLX0VY
UE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1Jl
ZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYgYXVkaW9EZXZpY2VVSUQpOwogV0tfRVhQT1JU
IHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZik7CiAKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYpOworV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERl
dmljZU5hbWVzQXVkaW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CisKICNpZmRl
ZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAppbmRleCA1ZGM4YjMyMTY2YmE5ZTNhMjZkZjkwYmMyM2ViYzNiOGJkODliZjhlLi42YjA0
ZjI4NWNmZjJhNmYxNDMwMDE0OTA4YTdiYmUxYWNmNjM1MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUGFzc1JlZlB0cjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm8KICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCwgY29u
c3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCkK
IHsKICAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU1LDcg
KzU1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2kKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgLy8gRklYTUUoMTQ3MDYyKTogTmVlZCB0byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9y
IFNhZmFyaSB0byBwYXNzIHN0cmluZ3MgZ2l2ZW4gZnJvbSB1c2VyJ3MgZGVjaXNpb24gb24gd2hh
dCBwaWVjZSBvZiBtZWRpYSB0byBvcGVuCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJN
ZWRpYUlELCBhbGxvd2VkLCAiIiwgIiIpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5w
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlv
RGV2aWNlVUlEKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGFs
bG93ZWQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGUw
M2RjYjgxNTQ1MjlhNmViZmEzNjRlYzRjNjZjNjgyOGQ1Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFk
M2QyYzBhYzBmNjc5MmM5YTkyNTE0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQs
IGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURz
VmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzQXVkaW8pOwogCiAgICAgLy8g
Q2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9u
IGlzIG1hZGUgYnkgdGhlIHVzZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBw
cml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAK
aW5kZXggYzM1MDliZTE1MzlmMTE2ZmFhMzIwYzgwNTExNGNkZmVhMTQxYTk5Yy4uNTRiZTIxMDkx
YThjM2MwYTllNWRhMGZkYjAzN2U2Yzk0OTY5YzgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cApAQCAtMzYsMTQgKzM2LDE0IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzCiB7CiB9CiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
VUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKQogewotICAgIG1fbWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOwor
ICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNl
ck1lZGlhSUQsIHRydWUsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCk7CiB9CiAKIHZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5h
Z2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwg
ZmFsc2UpOworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlLCBXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlT
dHJpbmcoKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52
YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA5ZmFkNzY3ZGJmYzZhYzRmNWQyMWMy
MzMyY2YzNzJjYTBkNTk5NTFhLi40ZDBjZmZlYmJiY2ZiNjc0ZmEwZDc4ZjQ1OTk5NjM3NDg1YmE1
ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHko
bWFuYWdlciwgdXNlck1lZGlhSUQsIHJlcXVpcmVzQXVkaW8sIHJlcXVpcmVzVmlkZW8sIGRldmlj
ZVVJRHNWaWRlbywgZGV2aWNlVUlEc0F1ZGlvKSk7CiAgICAgfQogCi0gICAgdm9pZCBhbGxvdygp
OworICAgIHZvaWQgYWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3Ry
aW5nJiBhdWRpb0RldmljZVVJRCk7CiAgICAgdm9pZCBkZW55KCk7CiAKICAgICB2b2lkIGludmFs
aWRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJl
YW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcAppbmRleCA1NWExMWZmZjVjOTkyYWY3ZGQ2OWJmY2U2NDBhZTNiNTNjMTFiNTgyLi4xMzU1
ZDYzYjliNTA3NTFhMjFmYTI4YTRhM2M0ZDgxZmJhOTE3ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKHVpCiAgICAgbV9yZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVz
dCk7CiAKICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNz
R3JhbnRlZCgpOworICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGRldmlj
ZVVJRFZpZGVvLCBkZXZpY2VVSURBdWRpbyk7CiAgICAgZWxzZQogICAgICAgICByZXF1ZXN0LT51
c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257961</attachid>
            <date>2015-07-31 14:49:08 -0700</date>
            <delta_ts>2015-07-31 15:22:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731144907.patch</filename>
            <type>text/plain</type>
            <size>16264</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4OWJmOGUuLjZi
MDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkLCBj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBm
b3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3
aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNl
ck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVk
aW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJh
YWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJ
RHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAv
LyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNp
b24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAK
IHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2Rm
N2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7
CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91
c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcy
Y2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlk
ZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUw
NzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQo
KTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRl
bywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzRGVuaWVkKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257968</attachid>
            <date>2015-07-31 15:22:40 -0700</date>
            <delta_ts>2015-07-31 15:36:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731152237.patch</filename>
            <type>text/plain</type>
            <size>17387</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4OWJmOGUuLjZi
MDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkLCBj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBm
b3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3
aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNl
ck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVk
aW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJh
YWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJ
RHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAv
LyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNp
b24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAK
IHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2Rm
N2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7
CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91
c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcy
Y2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlk
ZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUw
NzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQo
KTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRl
bywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGQzOWUwZTA3ZTA0ZTRlZGE3ODk5ZmJiNDdkNjdjNGMzNzNlMzQyODEuLjQ2Yzg4
NjdiNjNlOTBhN2FkMDA2OWI2MzFjYzFhMzhlMGVmMzJhYzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDk3LDkgKzE0OTcsMTAgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBv
c3NpYmxlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMpIHsKLSAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQ
ZXJtaXNzaW9uQWxsb3dlZCkKLSAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyhyZXF1ZXN0LmdldCgpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAobV9pc1Vz
ZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKSB7CisgICAgICAgICAgICBpZiAoIVdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpLmlzRW1wdHko
KSAmJiAhV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVz
dC5nZXQoKSkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhyZXF1ZXN0LmdldCgpLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKVswXSwgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSlbMF0pOworICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3Qu
Z2V0KCkpOwogICAgIH0KICAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257970</attachid>
            <date>2015-07-31 15:36:58 -0700</date>
            <delta_ts>2015-07-31 15:53:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731153656.patch</filename>
            <type>text/plain</type>
            <size>17671</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4OWJmOGUuLjZi
MDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkLCBj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBm
b3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3
aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNl
ck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVk
aW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJh
YWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJ
RHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAv
LyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNp
b24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAK
IHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2Rm
N2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7
CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91
c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcy
Y2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlk
ZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUw
NzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQo
KTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRl
bywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGQzOWUwZTA3ZTA0ZTRlZGE3ODk5ZmJiNDdkNjdjNGMzNzNlMzQyODEuLmM4ZWJh
NGYyOWNlY2MyYTRmYTM4MjNmM2I4NTE3N2JjZmFjYzRmZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
VGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTE0OTcsOSArMTQ5OCwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9z
c2libGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykgewotICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBl
cm1pc3Npb25BbGxvd2VkKQotICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICAgICAgICAgIGlmICghV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8ocmVxdWVzdC5nZXQoKSkuaXNFbXB0eSgp
ICYmICFXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhyZXF1ZXN0
LmdldCgpKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpWzBdLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhyZXF1ZXN0LmdldCgpKVswXSk7CisgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdC5n
ZXQoKSk7CiAgICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257973</attachid>
            <date>2015-07-31 15:53:31 -0700</date>
            <delta_ts>2015-07-31 15:58:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731155328.patch</filename>
            <type>text/plain</type>
            <size>17717</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4OWJmOGUuLjZi
MDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkLCBj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBm
b3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3
aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNl
ck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVk
aW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJh
YWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJ
RHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAv
LyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNp
b24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAK
IHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2Rm
N2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7
CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91
c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcy
Y2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlk
ZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUw
NzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQo
KTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRl
bywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGQzOWUwZTA3ZTA0ZTRlZGE3ODk5ZmJiNDdkNjdjNGMzNzNlMzQyODEuLjA3NTM1
NTMwYzZiYTA1ZjUxZWE4M2RjZWVjNDk2ZTYwYjFhN2E5NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
VGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTE0OTcsOSArMTQ5OCwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9z
c2libGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykgewotICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBl
cm1pc3Npb25BbGxvd2VkKQotICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICAgICAgICAgIGlmICghV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8ocmVxdWVzdC5nZXQoKSkuaXNFbXB0eSgp
ICYmICFXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhyZXF1ZXN0
LmdldCgpKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSwgMCks
IFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNBdWRpbyhyZXF1ZXN0LmdldCgpKSwgMCkpOworICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3QuZ2V0KCkpOwogICAg
IH0KICAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257975</attachid>
            <date>2015-07-31 15:58:49 -0700</date>
            <delta_ts>2015-07-31 16:22:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731155847.patch</filename>
            <type>text/plain</type>
            <size>17737</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4OWJmOGUuLjZi
MDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkLCBj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBm
b3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3
aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNl
ck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVk
aW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJh
YWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJ
RHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAv
LyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNp
b24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAK
IHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2Rm
N2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7
CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91
c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcy
Y2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlk
ZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUw
NzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQo
KTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRl
bywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGQzOWUwZTA3ZTA0ZTRlZGE3ODk5ZmJiNDdkNjdjNGMzNzNlMzQyODEuLjZkOTY4
NWY0NjczOWE3ODhjMGIzZmNkODE1MWY2OGJjN2FhYWE4N2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
VGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTE0OTcsOSArMTQ5OCwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9z
c2libGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykgewotICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBl
cm1pc3Npb25BbGxvd2VkKQotICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICAgICAgICAgIGlmIChXS0FycmF5R2V0U2l6
ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0Lmdl
dCgpKSkgJiYgV0tBcnJheUdldFNpemUoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmlj
ZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSkuaXNFbXB0eSgpKSkKKyAgICAgICAgICAgICAgICBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVzdC5nZXQoKSwgV0tBcnJheUdl
dEl0ZW1BdEluZGV4KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVv
KHJlcXVlc3QuZ2V0KCkpLCAwKSwgV0tBcnJheUdldEl0ZW1BdEluZGV4KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKHJlcXVlc3QuZ2V0KCkpLCAwKSk7CisgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnko
cmVxdWVzdC5nZXQoKSk7CiAgICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Rz
LmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257978</attachid>
            <date>2015-07-31 16:22:51 -0700</date>
            <delta_ts>2015-07-31 17:40:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731162249.patch</filename>
            <type>text/plain</type>
            <size>17789</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4OWJmOGUuLjZi
MDRmMjg1Y2ZmMmE2ZjE0MzAwMTQ5MDhhN2JiZTFhY2Y2MzUzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2VkLCBj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBm
b3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3
aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNl
ck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVk
aW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
YWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJh
YWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJ
RHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAv
LyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNp
b24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3Qg
U3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAK
IHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2Rm
N2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAot
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7
CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91
c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21h
bmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlE
LCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcy
Y2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlk
ZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUw
NzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQo
KTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRl
bywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGQzOWUwZTA3ZTA0ZTRlZGE3ODk5ZmJiNDdkNjdjNGMzNzNlMzQyODEuLjdiNTcz
YWIxZTg2MWZlYzBkMTRjN2I3MjhmZDRlZjU0ZjZmNjhiMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
VGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTE0OTcsOSArMTQ5OCwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9z
c2libGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykgewotICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBl
cm1pc3Npb25BbGxvd2VkKQotICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNl
ck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICAgICAgICAgIGlmIChXS0FycmF5R2V0U2l6
ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0Lmdl
dCgpKSkgJiYgV0tBcnJheUdldFNpemUoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmlj
ZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSkpKQorICAgICAgICAgICAgICAgIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyhyZXF1ZXN0LmdldCgpLCByZWludGVycHJldF9jYXN0PFdL
U3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERldmljZU5hbWVzVmlkZW8ocmVxdWVzdC5nZXQoKSksIDApKSwgcmVpbnRlcnByZXRfY2Fz
dDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKHJlcXVlc3QuZ2V0KCkpLCAwKSkpOworICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVl
c3QuZ2V0KCkpOwogICAgIH0KICAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVh
cigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257983</attachid>
            <date>2015-07-31 17:40:57 -0700</date>
            <delta_ts>2015-08-03 12:06:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150731174055.patch</filename>
            <type>text/plain</type>
            <size>19093</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcAppbmRleCAwNWIyZTY0NzBhYjM2NTg3MGRkOTIyYjc3NzlkODZhYWI4YjEyYjFi
Li41Mzc3NDhmMjI5NjZkYTIyMjM2ZTExNTk0OTJhMjUzYWRiNTk4ZWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC01Niw3ICs1Niw3IEBAIFdFQktJVF9E
RUZJTkVfVFlQRV9XSVRIX0NPREUoCiAgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QsIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCwK
ICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNU
LCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkKIAotc3RhdGljIHZv
aWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9u
UmVxdWVzdCogcmVxdWVzdCkKK3N0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIq
IHZpZGVvRGV2aWNlVUlELCBjb25zdCBjaGFyKiBhdWRpb0RldmljZVVJRCkKIHsKICAgICBBU1NF
UlQoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKIApA
QCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZQogICAgICAgICByZXR1cm47
CiAKICAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwotICAgIHByaXYtPnJlcXVlc3QtPmFs
bG93KCk7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coU3RyaW5nOjpmcm9tVVRGOCh2aWRlb0Rl
dmljZVVJRCksIFN0cmluZzo6ZnJvbVVURjgoYXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogc3RhdGlj
IHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0KiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
aW5kZXggNWRjOGIzMjE2NmJhOWUzYTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4uNmIwNGYyODVj
ZmYyYTZmMTQzMDAxNDkwOGE3YmJlMWFjZjYzNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
CiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQsIGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CiAg
ICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC01NSw3ICs1NSw3
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIC8vIEZJWE1FKDE0NzA2Mik6IE5lZWQgdG8gYWRkIGluIHRoZSBzdXBwb3J0IGZvciBTYWZh
cmkgdG8gcGFzcyBzdHJpbmdzIGdpdmVuIGZyb20gdXNlcidzIGRlY2lzaW9uIG9uIHdoYXQgcGll
Y2Ugb2YgbWVkaWEgdG8gb3BlbgotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJ
RCwgYWxsb3dlZCwgIiIsICIiKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0Rldmlj
ZVVJRCksIG1fcGFnZS5wYWdlSUQoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShhbGxvd2Vk
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBlMDNkY2I4
MTU0NTI5YTZlYmZhMzY0ZWM0YzY2YzY4MjhkNWI4NTMxLi4wMzQ0MWY0ODkyMjEwYmFhZDNkMmMw
YWMwZjY3OTJjOWE5MjUxNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApA
QCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29s
IGF1ZGlvLCBib29sIHZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc1ZpZGVv
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc0F1ZGlvKTsKIAogICAgIC8vIENhbGxl
ZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBt
YWRlIGJ5IHRoZSB1c2VyLgotICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93LCBjb25zdCBTdHJpbmcm
IHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKIAogcHJpdmF0
ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCmluZGV4
IGMzNTA5YmUxNTM5ZjExNmZhYTMyMGM4MDUxMTRjZGZlYTE0MWE5OWMuLjUyNzE3ZGY3ZDQ0MjUx
ODMwN2Y4OWFmYzNlZjI3ZTZjN2U2NWUxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAg
LTM2LDE0ICszNiwxNCBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pcwogewogfQogCi12b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCkKIHsKLSAgICBtX21hbmFnZXIuZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKKyAgICBt
X21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRp
YUlELCB0cnVlLCB2aWRlb0RldmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpOwogfQogCiB2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQogewotICAgIG1fbWFuYWdlci5k
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNl
KTsKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbiht
X3VzZXJNZWRpYUlELCBmYWxzZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSk7CiB9CiAK
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaAppbmRleCA5ZmFkNzY3ZGJmYzZhYzRmNWQyMWMyMzMyY2YzNzJjYTBkNTk5
NTFhLi40ZDBjZmZlYmJiY2ZiNjc0ZmEwZDc4ZjQ1OTk5NjM3NDg1YmE1ODIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1l
ZGlhSUQsIHJlcXVpcmVzQXVkaW8sIHJlcXVpcmVzVmlkZW8sIGRldmljZVVJRHNWaWRlbywgZGV2
aWNlVUlEc0F1ZGlvKSk7CiAgICAgfQogCi0gICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgYWxs
b3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZVVJRCk7CiAgICAgdm9pZCBkZW55KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA1NWEx
MWZmZjVjOTkyYWY3ZGQ2OWJmY2U2NDBhZTNiNTNjMTFiNTgyLi4xMzU1ZDYzYjliNTA3NTFhMjFm
YTI4YTRhM2M0ZDgxZmJhOTE3ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpCiAgICAgbV9yZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CiAKICAgICBpZiAo
YWxsb3dlZCkKLSAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAg
ICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGRldmljZVVJRFZpZGVvLCBkZXZp
Y2VVSURBdWRpbyk7CiAgICAgZWxzZQogICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NE
ZW5pZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggZDM5ZTBlMDdlMDRlNGVkYTc4OTlmYmI0N2Q2N2M0YzM3M2UzNDI4MS4uN2I1NzNhYjFlODYx
ZmVjMGQxNGM3YjcyOGZkNGVmNTRmNmY2OGIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdl
YlZpZXcuaCIKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0SW52
b2NhdGlvbi5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0FycmF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5oPgpAQCAtMTQ5Nyw5ICsxNDk4LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RzKSB7Ci0gICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lv
bkFsbG93ZWQpCi0gICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
cmVxdWVzdC5nZXQoKSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQ
ZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICAgICAgaWYgKFdLQXJyYXlHZXRTaXplKFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpKSAm
JiBXS0FycmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNB
dWRpbyhyZXF1ZXN0LmdldCgpKSkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdS
ZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSwgMCkpLCByZWludGVycHJldF9jYXN0PFdLU3Ry
aW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSksIDApKSk7CisgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdC5nZXQo
KSk7CiAgICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258097</attachid>
            <date>2015-08-03 12:06:44 -0700</date>
            <delta_ts>2015-08-03 13:59:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150803120648.patch</filename>
            <type>text/plain</type>
            <size>19102</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4ZTEyMGUxOGU5NmJh
OTYyNTE1YjdkZTI4OWM3MDUyYjEyNzZjNy4uOGEzM2I0NWU4N2ZiZGRmYmFkNzhiZjA4YTAwOWFk
MTQ3NjhmMmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA3LTMwICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA3LTMwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBtb3JlIGNsYXNzZXMgYXMgZmFzdCBh
bGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZDI1YmRmYWQ0ZjBiYTgzMWFkZmViZWVlYzgy
NWM1NDMzOWIyYzI0Li5iNjRkNzdmM2NiZTM2NGZkZTc1NmU5Y2YzZDhlMzdkZGY0YzkzNDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMzAgIE1hdHRoZXcgRGFp
dGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkg
YWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgtW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRp
YVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0pOgor
CiAyMDE1LTA3LTI5ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGJhc2ljIHR5cGVzIGZvciBFQ01BU2NyaXB0IEludGVybmF0
aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MTIxZTUxMGM2NjJmMTEzZTQ5M2UwMDcy
ODYzODliMWExZDEwNzQuLmI0Njc4ZWEwZjE5NDhjYmQzMTlmODI1ZTgwMDkwZmU5NGEzOTllY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNS0wNy0zMCAgTWF0dGhldyBEYWl0ZXIg
IDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmls
aXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5ODMz
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6CisgICAg
ICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOgorCiAyMDE1
LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBt
b3JlIGNsYXNzZXMgYXMgZmFzdCBhbGxvY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDJkZjAwZDNi
MjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEzMDRjZTUyZTYxM2RmZDgw
NzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCB2
b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRlb0RldmljZVVJRCA9IHZp
ZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJ
RDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAgIC8vIDMgLSB0aGUg
dXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0ZSB0aGUgbWVkaWEgc3Ry
ZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZmOGE4YjM2MzFhOGEyY2Iy
NGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZkZTNkZTZhZTNmMjY3MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2b2lkIHN0
YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAKICAgICBib29s
IHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29uc3RyYWludHM7IH0KQEAg
LTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3ZpZGVvRGV2aWNl
VUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKICAgICAKKyAgICBT
dHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcgbV9jaG9zZW5BdWRpb0Rl
dmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAK
ICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRjZTJjMDhmM2Y1NzQyZmUu
LmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRv
bigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJlYW1DZW50ZXIoUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCmluZGV4IGNmMTY4ZTRj
ZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLmMwNmUyNWIxNGEyYjk2MzAxOTYyM2U4
NGFkMjIxZDg5MzA0ZThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcmVxdWVzdFN1Y2Nlc3Mp
Ci0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChXVEY6OmVtcHR5U3RyaW5n
KCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3
ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YuLmNhY2FlZTQ4NzRiZjE1YzA5
MDEwNWU3YTFhMDliMTczYTE1NTAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdDsKIC0gKHZvaWQpY2FuY2Vs
UmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlE
Oihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlv
VUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMsNyArMTUzLDE4IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3Qp
CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3JlcXVlc3QtPnVz
ZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZChXVEY6OmVtcHR5U3RyaW5nKCksIFdURjo6ZW1wdHlTdHJpbmcoKSk7CisgICAgUmVtb3Zl
UmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6
KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IGlmICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVl
c3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMu
LjZjNjBiOWZkNzY4NWEyOWVlNmVmMThlMjZjNWNkYzQwMzQwM2VhYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzMiBAQCBXS1R5cGVJRCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYg
YXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
LT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7
CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVz
VmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYo
KTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZikt
PnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZU5hbWUgPSB0
b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhkZXZpY2VOYW1lKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30KKworV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7Cisg
ICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJlZigpOworICAgIGZv
ciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+YXVkaW9EZXZp
Y2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykudXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
V0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGRl
dmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4u
ZjQ1MWYzMjcwODJmODUwNjJiZDhmMmNkMTUzYjhiOWQwNjlkNjRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsyNywxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JU
IFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tf
RVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5n
UmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcAppbmRleCAwNWIyZTY0NzBhYjM2NTg3MGRkOTIyYjc3NzlkODZhYWI4YjEyYjFi
Li43N2Q1YjBmNGZjNmIyYzg2MmZlMmY0MWM3NDY5MzY2MTg5MGFlMGMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC02Nyw3ICs2NywyMSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0KiByZXF1ZQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5tYWRlRGVjaXNp
b24gPSB0cnVlOwotICAgIHByaXYtPnJlcXVlc3QtPmFsbG93KCk7CisgICAgcHJpdi0+cmVxdWVz
dC0+YWxsb3cocHJpdi0+cmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuYXQoMCksIHByaXYtPnJl
cXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCog
cmVxdWVzdCwgY29uc3QgY2hhciogdmlkZW9EZXZpY2VVSUQsIGNvbnN0IGNoYXIqIGF1ZGlvRGV2
aWNlVUlEKQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JF
UVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlm
IChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1hZGVE
ZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coU3RyaW5nOjpmcm9tVVRG
OCh2aWRlb0RldmljZVVJRCksIFN0cmluZzo6ZnJvbVVURjgoYXVkaW9EZXZpY2VVSUQpKTsKIH0K
IAogc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdlYktp
dFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUzYTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4u
NmIwNGYyODVjZmYyYTZmMTQzMDAxNDkwOGE3YmJlMWFjZjYzNTMwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQs
IGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VV
SUQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC01
NSw3ICs1NSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpCiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogICAgIC8vIEZJWE1FKDE0NzA2Mik6IE5lZWQgdG8gYWRkIGluIHRoZSBzdXBwb3J0
IGZvciBTYWZhcmkgdG8gcGFzcyBzdHJpbmdzIGdpdmVuIGZyb20gdXNlcidzIGRlY2lzaW9uIG9u
IHdoYXQgcGllY2Ugb2YgbWVkaWEgdG8gb3BlbgotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1
c2VyTWVkaWFJRCwgYWxsb3dlZCwgIiIsICIiKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3Bh
Z2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQsIHZpZGVvRGV2aWNlVUlELCBh
dWRpb0RldmljZVVJRCksIG1fcGFnZS5wYWdlSUQoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShhbGxvd2VkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRl
eCBlMDNkY2I4MTU0NTI5YTZlYmZhMzY0ZWM0YzY2YzY4MjhkNWI4NTMxLi4wMzQ0MWY0ODkyMjEw
YmFhZDNkMmMwYWMwZjY3OTJjOWE5MjUxNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNl
VUlEc1ZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc0F1ZGlvKTsKIAogICAg
IC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBkZWNp
c2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgotICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdyk7CisgICAgdm9pZCBkaWRSZWNl
aXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93LCBjb25z
dCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsK
IAogcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCmluZGV4IGMzNTA5YmUxNTM5ZjExNmZhYTMyMGM4MDUxMTRjZGZlYTE0MWE5OWMuLjUyNzE3
ZGY3ZDQ0MjUxODMwN2Y4OWFmYzNlZjI3ZTZjN2U2NWUxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKQEAgLTM2LDE0ICszNiwxNCBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pcwogewogfQog
Ci12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0Rl
dmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCkKIHsKLSAgICBtX21hbmFnZXIu
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVl
KTsKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbiht
X3VzZXJNZWRpYUlELCB0cnVlLCB2aWRlb0RldmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpOwogfQog
CiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQogewotICAgIG1f
bWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlh
SUQsIGZhbHNlKTsKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25E
ZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA5ZmFkNzY3ZGJmYzZhYzRmNWQyMWMyMzMyY2Yz
NzJjYTBkNTk5NTFhLi40ZDBjZmZlYmJiY2ZiNjc0ZmEwZDc4ZjQ1OTk5NjM3NDg1YmE1ODIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdl
ciwgdXNlck1lZGlhSUQsIHJlcXVpcmVzQXVkaW8sIHJlcXVpcmVzVmlkZW8sIGRldmljZVVJRHNW
aWRlbywgZGV2aWNlVUlEc0F1ZGlvKSk7CiAgICAgfQogCi0gICAgdm9pZCBhbGxvdygpOworICAg
IHZvaWQgYWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBh
dWRpb0RldmljZVVJRCk7CiAgICAgdm9pZCBkZW55KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApp
bmRleCA1NWExMWZmZjVjOTkyYWY3ZGQ2OWJmY2U2NDBhZTNiNTNjMTFiNTgyLi4xMzU1ZDYzYjli
NTA3NTFhMjFmYTI4YTRhM2M0ZDgxZmJhOTE3ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpCiAgICAgbV9yZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CiAK
ICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRl
ZCgpOworICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGRldmljZVVJRFZp
ZGVvLCBkZXZpY2VVSURBdWRpbyk7CiAgICAgZWxzZQogICAgICAgICByZXF1ZXN0LT51c2VyTWVk
aWFBY2Nlc3NEZW5pZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggZDM5ZTBlMDdlMDRlNGVkYTc4OTlmYmI0N2Q2N2M0YzM3M2UzNDI4MS4uN2I1
NzNhYjFlODYxZmVjMGQxNGM3YjcyOGZkNGVmNTRmNmY2OGIwNyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRl
ICJUZXN0SW52b2NhdGlvbi5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0FycmF5Lmg+CiAjaW5jbHVk
ZSA8V2ViS2l0L1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgpAQCAtMTQ5Nyw5ICsxNDk4LDEwIEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQ
b3NzaWJsZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1f
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKSB7Ci0gICAgICAgIGlmIChtX2lzVXNlck1lZGlh
UGVybWlzc2lvbkFsbG93ZWQpCi0gICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0QWxsb3cocmVxdWVzdC5nZXQoKSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKG1faXNV
c2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICAgICAgaWYgKFdLQXJyYXlHZXRT
aXplKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3Qu
Z2V0KCkpKSAmJiBXS0FycmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNBdWRpbyhyZXF1ZXN0LmdldCgpKSkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8
V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSwgMCkpLCByZWludGVycHJldF9j
YXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSksIDApKSk7CisgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocmVx
dWVzdC5nZXQoKSk7CiAgICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNs
ZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258109</attachid>
            <date>2015-08-03 13:59:26 -0700</date>
            <delta_ts>2015-08-04 14:14:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150803135920.patch</filename>
            <type>text/plain</type>
            <size>20236</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uZTY2ZTA1MzVlM2VmZjA2MzNmNjhjZTAzMzVjZTRm
MDk0MTU0ZmNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIFNhZmFyaQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2Vi
R0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAyMDE1LTA4LTAzICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTg3NzI5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDZiNmRjMWI0NWEyY2JhNjRlMTQ4ZjYw
MjJmNzU1NWIwMzMxNTFjZjkuLmJkOWJmOWU3ZDFjMTc4NWVkZDNjM2Y2NWYyYjMwZjM0ZTYwODcw
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wOC0wMyAgTWF0dGhl
dyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRldmljZSBx
dWVyeSBhYmlsaXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgICgt
W1dlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93XSk6CisgICAgICAgICgtW1dlYlVzZXJN
ZWRpYVBvbGljeUxpc3RlbmVyIGFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOmFuZEF1ZGlvVUlEOl0p
OgorCisKIDIwMTUtMDctMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBEcm9wIGR1bW15IFRpbWVyIGNhbGxiYWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ2MDY2NDEyMTg4
NDkyN2E3OTMxY2NiNDM3Y2JhMTQyNmVhMjhkOWYuLjc1ODNkOGRjMDIyYjIxNzJhNzA3NTYxNzY5
Y2IzOTUxNDU2YmM5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNS0wOC0wMyAg
TWF0dGhldyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5raW5nIGRl
dmljZSBxdWVyeSBhYmlsaXR5IGZyb20gV2ViS2l0MiB0byBTYWZhcmkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29u
dGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hV
bnRhZ2dlZENvbnRlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNWaWRlbyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNBdWRpbyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24pOgorCisKIDIwMTUtMDgtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgV2ViTWVtb3J5U2FtcGxlciBkb2Vzbid0IGxl
YWsgZmlsZSBkZXNjcmlwdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCAyZGYwMGQzYjI1YzY3ZWY0YjQx
MzEzZDVhYjdjMmNjZGE1ZTU0YzFmLi4wNGE4MDMxMzA0Y2U1MmU2MTNkZmQ4MDc0YTA3MWRmYWVh
MjY3MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgdm9pZCBVc2VyTWVk
aWFSZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3UKICAgICB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2VyTWVk
aWFBY2Nlc3NHcmFudGVkKCkKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNz
R3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlv
RGV2aWNlVUlEKQogeworICAgIG1fY2hvc2VuVmlkZW9EZXZpY2VVSUQgPSB2aWRlb0RldmljZVVJ
RDsKKyAgICBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEID0gYXVkaW9EZXZpY2VVSUQ7CiAgICAgUmVm
UHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAzIC0gdGhlIHVzZXIgZ3JhbnRl
ZCBhY2Nlc3MsIGFzayBwbGF0Zm9ybSB0byBjcmVhdGUgdGhlIG1lZGlhIHN0cmVhbSBkZXNjcmlw
dG9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmgKaW5kZXggMDk5ZTE0ZjlmZjhhOGIzNjMxYThhMmNiMjRjZWU0ZjdkYTU0
M2MwZS4uYjZkZDEzZTAzYThkZDJjODhkNjNhNzRmZGUzZGU2YWUzZjI2NzMyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5
T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVv
RGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCiAgICAgYm9vbCByZXF1aXJlc0F1
ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CkBAIC05Miw2ICs5Miw5
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAgICAg
VmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1fY2hv
c2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7Cisg
ICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVkaWFE
ZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApp
bmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZjYTRm
ZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIg
ewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsKIAot
ICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xldG9u
KCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJh
aW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRyPE1l
ZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRmYTUw
MDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0MzE1
MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRp
YUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRp
YUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlKCkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAgICAg
ICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBtX3Jl
cXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMo
KS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1
M2YuLjYzMGYyNGVmYWJmYmQwZDRlYmRkYWMwMWVhN2I1Y2UzMTZmYjY0NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
bW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChpZClp
bml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVx
dWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lkKWFs
bG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlE
Oihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0xNTMs
NyArMTUzLDE4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVzZXJN
ZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVxdWVz
dC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuYXQo
MCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CisgICAgUmVtb3ZlUmVxdWVz
dEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxsb3dEZXZp
Y2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNvbnN0
IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlmICgh
X3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNlck1lZGlh
QWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVlc3RGcm9t
TWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMuLjZjMDg2
NTlhMmQ4YjBlZjY2NDU1ZmZhOTkxMTgyZjY0YmY4NjQxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJX
S011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzOCBAQCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYpCisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dEFsbG93QmVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UmVmKQogewotICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZiktPmFsbG93KCk7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
KS0+YWxsb3codG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+dmlkZW9EZXZp
Y2VVSURzKCkuYXQoMCksIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmF1
ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5nUmVm
IGF1ZGlvRGV2aWNlVUlEKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmcoYXVk
aW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVu
eShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmRl
bnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJh
eVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9u
UmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgY29uc3QgY2hhciogZGV2aWNlTmFt
ZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChu
YW1lLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykudXRmOCgpLmRh
dGEoKTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKGRldmljZU5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQor
CitXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlv
KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikK
K3sKKyAgICBXS011dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7Cisg
ICAgZm9yIChhdXRvJiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRp
b0RldmljZVVJRHMoKSkgeworICAgICAgICBjb25zdCBjaGFyKiBkZXZpY2VOYW1lID0gdG9JbXBs
KHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKS51dGY4KCkuZGF0YSgpOworICAg
ICAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJheSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoZGV2aWNlTmFtZSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaAppbmRleCA1NDVkMzE4OTU4OGJhMTFjYzMzZmEwM2NjYjVmY2VhNTZjZTVj
ZmMxLi5jOWVlYWUzNDJkZWI2ZTQyNTI1MjEwZGExOWJhZjA1MDcyN2VlZWY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmgKQEAgLTI3LDkgKzI3LDEzIEBAIGV4dGVybiAiQyIgewogCiBXS19F
WFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOwog
Ci1XS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYp
OworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBX
S1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKIAor
V0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5h
bWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgV0tB
cnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAwNWIy
ZTY0NzBhYjM2NTg3MGRkOTIyYjc3NzlkODZhYWI4YjEyYjFiLi43N2Q1YjBmNGZjNmIyYzg2MmZl
MmY0MWM3NDY5MzY2MTg5MGFlMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwCkBAIC02Nyw3ICs2NywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZQogICAg
ICAgICByZXR1cm47CiAKICAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwotICAgIHByaXYt
PnJlcXVlc3QtPmFsbG93KCk7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3cocHJpdi0+cmVxdWVz
dC0+dmlkZW9EZXZpY2VVSURzKCkuYXQoMCksIHByaXYtPnJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlE
cygpLmF0KDApKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciog
dmlkZW9EZXZpY2VVSUQsIGNvbnN0IGNoYXIqIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIEFTU0VS
VChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisg
ICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lU
X1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8g
T25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAg
cHJpdi0+cmVxdWVzdC0+YWxsb3coU3RyaW5nOjpmcm9tVVRGOCh2aWRlb0RldmljZVVJRCksIFN0
cmluZzo6ZnJvbVVURjgoYXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiBy
ZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNWRjOGIz
MjE2NmJhOWUzYTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4uN2JiY2U1OWEzNjhjODc5OTg1MjMx
NzdlOTgwMGEyY2Y4Y2I5YWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJvCiAgICAgcmV0dXJu
IHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgdmlkZW9E
ZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC01NCw4ICs1NCw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0gICAgLy8gRklYTUUoMTQ3MDYyKTogTmVlZCB0byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9y
IFNhZmFyaSB0byBwYXNzIHN0cmluZ3MgZ2l2ZW4gZnJvbSB1c2VyJ3MgZGVjaXNpb24gb24gd2hh
dCBwaWVjZSBvZiBtZWRpYSB0byBvcGVuCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJN
ZWRpYUlELCBhbGxvd2VkLCAiIiwgIiIpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5w
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1p
c3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlv
RGV2aWNlVUlEKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGFs
bG93ZWQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGUw
M2RjYjgxNTQ1MjlhNmViZmEzNjRlYzRjNjZjNjgyOGQ1Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFk
M2QyYzBhYzBmNjc5MmM5YTkyNTE0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQs
IGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURz
VmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzQXVkaW8pOwogCiAgICAgLy8g
Q2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9u
IGlzIG1hZGUgYnkgdGhlIHVzZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVV
c2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0
cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBw
cml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAK
aW5kZXggYzM1MDliZTE1MzlmMTE2ZmFhMzIwYzgwNTExNGNkZmVhMTQxYTk5Yy4uNTI3MTdkZjdk
NDQyNTE4MzA3Zjg5YWZjM2VmMjdlNmM3ZTY1ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cApAQCAtMzYsMTQgKzM2LDE0IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzCiB7CiB9CiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
VUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKQogewotICAgIG1fbWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOwor
ICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNl
ck1lZGlhSUQsIHRydWUsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCk7CiB9CiAKIHZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5h
Z2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwg
ZmFsc2UpOworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKTsK
IH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCmluZGV4IDlmYWQ3NjdkYmZjNmFjNGY1ZDIxYzIzMzJjZjM3MmNh
MGQ1OTk1MWEuLjRkMGNmZmViYmJjZmI2NzRmYTBkNzhmNDU5OTk2Mzc0ODViYTU4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1
c2VyTWVkaWFJRCwgcmVxdWlyZXNBdWRpbywgcmVxdWlyZXNWaWRlbywgZGV2aWNlVUlEc1ZpZGVv
LCBkZXZpY2VVSURzQXVkaW8pKTsKICAgICB9CiAKLSAgICB2b2lkIGFsbG93KCk7CisgICAgdm9p
ZCBhbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlv
RGV2aWNlVUlEKTsKICAgICB2b2lkIGRlbnkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4
IDU1YTExZmZmNWM5OTJhZjdkZDY5YmZjZTY0MGFlM2I1M2MxMWI1ODIuLjEzNTVkNjNiOWI1MDc1
MWEyMWZhMjhhNGEzYzRkODFmYmE5MTdkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24odWkKICAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKIAogICAg
IGlmIChhbGxvd2VkKQotICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7
CisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoZGV2aWNlVUlEVmlkZW8s
IGRldmljZVVJREF1ZGlvKTsKICAgICBlbHNlCiAgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFj
Y2Vzc0RlbmllZCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
VXNlck1lZGlhLmNwcAppbmRleCAyMzAwOTJjZDQ4YzE5YjMxNzI4NGI2OWY2NzI2OTZmZGY3YTg2
NjJlLi42MmRmMjJkMTU0MzhkNzMwYTVkNjc2MWI4NzE2M2MxZmEyOWYzZmNmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBzdGF0aWMgYm9vbCBkb25lOwogCiB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25S
ZXF1ZXN0LCBjb25zdCB2b2lkKiAvKiBjbGllbnRJbmZvICovKQogewotICAgIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93QmVzdChwZXJtaXNzaW9uUmVxdWVzdCk7CiAgICAgZG9u
ZSA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggZDM5ZTBlMDdlMDRlNGVkYTc4OTlmYmI0N2Q2N2M0YzM3M2UzNDI4MS4uN2I1NzNhYjFl
ODYxZmVjMGQxNGM3YjcyOGZkNGVmNTRmNmY2OGIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9y
bVdlYlZpZXcuaCIKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0
SW52b2NhdGlvbi5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0FycmF5Lmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRo
ZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0
Q29uZmlndXJhdGlvblJlZi5oPgpAQCAtMTQ5Nyw5ICsxNDk4LDEwIEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJs
ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RzKSB7Ci0gICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlz
c2lvbkFsbG93ZWQpCi0gICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxs
b3cocmVxdWVzdC5nZXQoKSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKG1faXNVc2VyTWVk
aWFQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICAgICAgaWYgKFdLQXJyYXlHZXRTaXplKFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkp
KSAmJiBXS0FycmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNBdWRpbyhyZXF1ZXN0LmdldCgpKSkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V0tTdHJp
bmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSwgMCkpLCByZWludGVycHJldF9jYXN0PFdL
U3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSksIDApKSk7CisgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdC5n
ZXQoKSk7CiAgICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258208</attachid>
            <date>2015-08-04 14:14:44 -0700</date>
            <delta_ts>2015-08-05 10:17:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150804141437.patch</filename>
            <type>text/plain</type>
            <size>20227</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uYmY3MGJkNWEyN2QwZTYxNjkxMGE2M2U0MjU4MjMx
N2YzN2UxNWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNzR3JhbnRlZCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dl
YkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDpdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaDoKKwogMjAxNS0wOC0wMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE4NzcyOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2YjZkYzFiNDVhMmNiYTY0ZTE0OGY2
MDIyZjc1NTViMDMzMTUxY2Y5Li4wZTlkMmJjOGNhYmQwZWRlMjAxNDMwZGUwNjYxZTkzMTdjNDBj
NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDgtMDMgIE1hdHRo
ZXcgRGFpdGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2Ug
cXVlcnkgYWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAg
KC1bV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViVXNl
ck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6YW5kQXVkaW9VSUQ6
XSk6CisKKwogMjAxNS0wNy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERyb3AgZHVtbXkgVGltZXIgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDYwNjY0MTIx
ODg0OTI3YTc5MzFjY2I0MzdjYmExNDI2ZWEyOGQ5Zi4uYWZmNzljMjc0Y2Y0MWU1ODZjNTIyY2Ni
MzJiZWYwMzQ3MGViZjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTAz
ICBNYXR0aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcg
ZGV2aWNlIHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2Vk
Q29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0
Y2hVbnRhZ2dlZENvbnRlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNWaWRlbyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNBdWRpbyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24pOgorCisKIDIwMTUtMDgtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgV2ViTWVtb3J5U2FtcGxlciBkb2Vzbid0
IGxlYWsgZmlsZSBkZXNjcmlwdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCAyZGYwMGQzYjI1YzY3ZWY0
YjQxMzEzZDVhYjdjMmNjZGE1ZTU0YzFmLi4wNGE4MDMxMzA0Y2U1MmU2MTNkZmQ4MDc0YTA3MWRm
YWVhMjY3MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3UKICAgICB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCkKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNj
ZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1
ZGlvRGV2aWNlVUlEKQogeworICAgIG1fY2hvc2VuVmlkZW9EZXZpY2VVSUQgPSB2aWRlb0Rldmlj
ZVVJRDsKKyAgICBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEID0gYXVkaW9EZXZpY2VVSUQ7CiAgICAg
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAzIC0gdGhlIHVzZXIgZ3Jh
bnRlZCBhY2Nlc3MsIGFzayBwbGF0Zm9ybSB0byBjcmVhdGUgdGhlIG1lZGlhIHN0cmVhbSBkZXNj
cmlwdG9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMDk5ZTE0ZjlmZjhhOGIzNjMxYThhMmNiMjRjZWU0Zjdk
YTU0M2MwZS4uYjZkZDEzZTAzYThkZDJjODhkNjNhNzRmZGUzZGU2YWUzZjI2NzMyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCiAgICAgYm9vbCByZXF1aXJl
c0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CkBAIC05Miw2ICs5
Miw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1f
Y2hvc2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7
CisgICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVk
aWFEZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aAppbmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZj
YTRmZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsK
IAotICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xl
dG9uKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRm
YTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0
MzE1MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJl
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAg
ICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBt
X3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1
YjM1M2YuLjYzMGYyNGVmYWJmYmQwZDRlYmRkYWMwMWVhN2I1Y2UzMTZmYjY0NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChp
ZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4p
cmVxdWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lk
KWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlv
VUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0x
NTMsNyArMTUzLDE4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCku
YXQoMCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CisgICAgUmVtb3ZlUmVx
dWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxsb3dE
ZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNv
bnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNlck1l
ZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVlc3RG
cm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMuLjVi
NmZkZDE4YTAxZDExNTkxNzJjYTE2MTUxYmI2MjNjNzUxNTg4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzOCBAQCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93QmVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKQogewotICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KCk7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3codG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+dmlkZW9E
ZXZpY2VVSURzKCkuYXQoMCksIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5n
UmVmIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmco
YXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmRlbnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVB
cnJheVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgV1RGOjpTdHJpbmcgZGV2aWNl
TmFtZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJ
RChuYW1lLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAg
ICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCB0b0FQSSgmQVBJOjpTdHJpbmc6OmNyZWF0ZShk
ZXZpY2VOYW1lKS5sZWFrUmVmKCkpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQorCitX
S0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sK
KyAgICBXS011dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAg
Zm9yIChhdXRvJiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRpb0Rl
dmljZVVJRHMoKSkgeworICAgICAgICBXVEY6OlN0cmluZyBkZXZpY2VOYW1lID0gdG9JbXBsKHVz
ZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKTsKKyAgICAgICAgV0tBcnJheUFwcGVu
ZEl0ZW0oYXJyYXksIHRvQVBJKCZBUEk6OlN0cmluZzo6Y3JlYXRlKGRldmljZU5hbWUpLmxlYWtS
ZWYoKSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaAppbmRleCA1NDVkMzE4OTU4OGJhMTFjYzMzZmEwM2NjYjVmY2VhNTZjZTVjZmMxLi5jOWVl
YWUzNDJkZWI2ZTQyNTI1MjEwZGExOWJhZjA1MDcyN2VlZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKQEAgLTI3LDkgKzI3LDEzIEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQgV0tU
eXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOwogCi1XS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQ
T1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1Jl
ZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JU
IFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8o
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAwNWIyZTY0NzBhYjM2
NTg3MGRkOTIyYjc3NzlkODZhYWI4YjEyYjFiLi43N2Q1YjBmNGZjNmIyYzg2MmZlMmY0MWM3NDY5
MzY2MTg5MGFlMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CkBAIC02Nyw3ICs2NywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZQogICAgICAgICByZXR1
cm47CiAKICAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwotICAgIHByaXYtPnJlcXVlc3Qt
PmFsbG93KCk7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3cocHJpdi0+cmVxdWVzdC0+dmlkZW9E
ZXZpY2VVSURzKCkuYXQoMCksIHByaXYtPnJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmF0KDAp
KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxv
dyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IGNoYXIqIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIEFTU0VSVChXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUg
ZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAg
IHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVx
dWVzdC0+YWxsb3coU3RyaW5nOjpmcm9tVVRGOCh2aWRlb0RldmljZVVJRCksIFN0cmluZzo6ZnJv
bVVURjgoYXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUz
YTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4uN2JiY2U1OWEzNjhjODc5OTg1MjMxNzdlOTgwMGEy
Y2Y4Y2I5YWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00
NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQs
IGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm47CkBAIC01NCw4ICs1NCw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
Ly8gRklYTUUoMTQ3MDYyKTogTmVlZCB0byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9yIFNhZmFyaSB0
byBwYXNzIHN0cmluZ3MgZ2l2ZW4gZnJvbSB1c2VyJ3MgZGVjaXNpb24gb24gd2hhdCBwaWVjZSBv
ZiBtZWRpYSB0byBvcGVuCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBh
bGxvd2VkLCAiIiwgIiIpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlE
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGUwM2RjYjgxNTQ1
MjlhNmViZmEzNjRlYzRjNjZjNjgyOGQ1Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFkM2QyYzBhYzBm
Njc5MmM5YTkyNTE0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0z
Niw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVk
aW8sIGJvb2wgdmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8sIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzQXVkaW8pOwogCiAgICAgLy8gQ2FsbGVkIGJ5
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUg
YnkgdGhlIHVzZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0cmluZyYgdmlk
ZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBwcml2YXRlOgog
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggYzM1
MDliZTE1MzlmMTE2ZmFhMzIwYzgwNTExNGNkZmVhMTQxYTk5Yy4uNTI3MTdkZjdkNDQyNTE4MzA3
Zjg5YWZjM2VmMjdlNmM3ZTY1ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzYs
MTQgKzM2LDE0IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzCiB7CiB9CiAKLXZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25z
dCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworICAgIG1fbWFu
YWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQs
IHRydWUsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCk7CiB9CiAKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5hZ2VyLmRpZFJl
Y2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UpOwor
ICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNl
ck1lZGlhSUQsIGZhbHNlLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKTsKIH0KIAogdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oCmluZGV4IDlmYWQ3NjdkYmZjNmFjNGY1ZDIxYzIzMzJjZjM3MmNhMGQ1OTk1MWEu
LjRkMGNmZmViYmJjZmI2NzRmYTBkNzhmNDU5OTk2Mzc0ODViYTU4MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJ
RCwgcmVxdWlyZXNBdWRpbywgcmVxdWlyZXNWaWRlbywgZGV2aWNlVUlEc1ZpZGVvLCBkZXZpY2VV
SURzQXVkaW8pKTsKICAgICB9CiAKLSAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBhbGxvdyhj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KTsKICAgICB2b2lkIGRlbnkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDU1YTExZmZm
NWM5OTJhZjdkZDY5YmZjZTY0MGFlM2I1M2MxMWI1ODIuLjEzNTVkNjNiOWI1MDc1MWEyMWZhMjhh
NGEzYzRkODFmYmE5MTdkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWkKICAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKIAogICAgIGlmIChhbGxv
d2VkKQotICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAg
IHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoZGV2aWNlVUlEVmlkZW8sIGRldmljZVVJ
REF1ZGlvKTsKICAgICBlbHNlCiAgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0Rlbmll
ZCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Vz
ZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlh
LmNwcAppbmRleCAyMzAwOTJjZDQ4YzE5YjMxNzI4NGI2OWY2NzI2OTZmZGY3YTg2NjJlLi42MmRm
MjJkMTU0MzhkNzMwYTVkNjc2MWI4NzE2M2MxZmEyOWYzZmNmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApAQCAtMzQsNyArMzQsNyBAQCBz
dGF0aWMgYm9vbCBkb25lOwogCiB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBj
b25zdCB2b2lkKiAvKiBjbGllbnRJbmZvICovKQogewotICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93QmVzdChwZXJtaXNzaW9uUmVxdWVzdCk7CiAgICAgZG9uZSA9IHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDM5
ZTBlMDdlMDRlNGVkYTc4OTlmYmI0N2Q2N2M0YzM3M2UzNDI4MS4uN2I1NzNhYjFlODYxZmVjMGQx
NGM3YjcyOGZkNGVmNTRmNmY2OGIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcu
aCIKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0SW52b2NhdGlv
bi5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0FycmF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJh
dGlvblJlZi5oPgpAQCAtMTQ5Nyw5ICsxNDk4LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RzKSB7Ci0gICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93
ZWQpCi0gICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVz
dC5nZXQoKSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJtaXNz
aW9uQWxsb3dlZCkgeworICAgICAgICAgICAgaWYgKFdLQXJyYXlHZXRTaXplKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpKSAmJiBXS0Fy
cmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhy
ZXF1ZXN0LmdldCgpKSkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdL
QXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSwgMCkpLCByZWludGVycHJldF9jYXN0PFdLU3RyaW5nUmVm
PihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmlj
ZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSksIDApKSk7CisgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdC5nZXQoKSk7CiAg
ICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258281</attachid>
            <date>2015-08-05 10:17:47 -0700</date>
            <delta_ts>2015-08-05 10:19:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150805101739.patch</filename>
            <type>text/plain</type>
            <size>20214</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uYmY3MGJkNWEyN2QwZTYxNjkxMGE2M2U0MjU4MjMx
N2YzN2UxNWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNzR3JhbnRlZCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dl
YkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDpdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaDoKKwogMjAxNS0wOC0wMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE4NzcyOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2YjZkYzFiNDVhMmNiYTY0ZTE0OGY2
MDIyZjc1NTViMDMzMTUxY2Y5Li4wZTlkMmJjOGNhYmQwZWRlMjAxNDMwZGUwNjYxZTkzMTdjNDBj
NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDgtMDMgIE1hdHRo
ZXcgRGFpdGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2Ug
cXVlcnkgYWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAg
KC1bV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViVXNl
ck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6YW5kQXVkaW9VSUQ6
XSk6CisKKwogMjAxNS0wNy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERyb3AgZHVtbXkgVGltZXIgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDYwNjY0MTIx
ODg0OTI3YTc5MzFjY2I0MzdjYmExNDI2ZWEyOGQ5Zi4uYWZmNzljMjc0Y2Y0MWU1ODZjNTIyY2Ni
MzJiZWYwMzQ3MGViZjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTAz
ICBNYXR0aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcg
ZGV2aWNlIHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2Vk
Q29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0
Y2hVbnRhZ2dlZENvbnRlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNWaWRlbyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNBdWRpbyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24pOgorCisKIDIwMTUtMDgtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgV2ViTWVtb3J5U2FtcGxlciBkb2Vzbid0
IGxlYWsgZmlsZSBkZXNjcmlwdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCAyZGYwMGQzYjI1YzY3ZWY0
YjQxMzEzZDVhYjdjMmNjZGE1ZTU0YzFmLi4wNGE4MDMxMzA0Y2U1MmU2MTNkZmQ4MDc0YTA3MWRm
YWVhMjY3MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3UKICAgICB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCkKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNj
ZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1
ZGlvRGV2aWNlVUlEKQogeworICAgIG1fY2hvc2VuVmlkZW9EZXZpY2VVSUQgPSB2aWRlb0Rldmlj
ZVVJRDsKKyAgICBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEID0gYXVkaW9EZXZpY2VVSUQ7CiAgICAg
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAzIC0gdGhlIHVzZXIgZ3Jh
bnRlZCBhY2Nlc3MsIGFzayBwbGF0Zm9ybSB0byBjcmVhdGUgdGhlIG1lZGlhIHN0cmVhbSBkZXNj
cmlwdG9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMDk5ZTE0ZjlmZjhhOGIzNjMxYThhMmNiMjRjZWU0Zjdk
YTU0M2MwZS4uYjZkZDEzZTAzYThkZDJjODhkNjNhNzRmZGUzZGU2YWUzZjI2NzMyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCiAgICAgYm9vbCByZXF1aXJl
c0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CkBAIC05Miw2ICs5
Miw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1f
Y2hvc2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7
CisgICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVk
aWFEZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aAppbmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZj
YTRmZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsK
IAotICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xl
dG9uKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRm
YTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0
MzE1MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJl
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAg
ICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBt
X3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1
YjM1M2YuLjYzMGYyNGVmYWJmYmQwZDRlYmRkYWMwMWVhN2I1Y2UzMTZmYjY0NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChp
ZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4p
cmVxdWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lk
KWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlv
VUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0x
NTMsNyArMTUzLDE4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCku
YXQoMCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CisgICAgUmVtb3ZlUmVx
dWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxsb3dE
ZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNv
bnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNlck1l
ZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVlc3RG
cm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMuLmIx
YmI4MjliNjJlNWYxMWY1NDI1MDEyMGZmMWRmMzllNzZmYWRkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzOCBAQCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93QmVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKQogewotICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KCk7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3codG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+dmlkZW9E
ZXZpY2VVSURzKCkuYXQoMCksIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5n
UmVmIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmco
YXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmRlbnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVB
cnJheVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgU3RyaW5nIGRldmljZU5hbWUg
PSB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFt
ZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBX
S0FycmF5QXBwZW5kSXRlbShhcnJheSwgdG9BUEkoJkFQSTo6U3RyaW5nOjpjcmVhdGUoZGV2aWNl
TmFtZSkuZ2V0KCkpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQorCitXS0FycmF5UmVm
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sKKyAgICBXS011
dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAgZm9yIChhdXRv
JiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRpb0RldmljZVVJRHMo
KSkgeworICAgICAgICBXVEY6OlN0cmluZyBkZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJy
YXksIHRvQVBJKCZBUEk6OlN0cmluZzo6Y3JlYXRlKGRldmljZU5hbWUpLmdldCgpKSk7CisgICAg
fQorICAgIHJldHVybiBhcnJheTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDU0
NWQzMTg5NTg4YmExMWNjMzNmYTAzY2NiNWZjZWE1NmNlNWNmYzEuLmM5ZWVhZTM0MmRlYjZlNDI1
MjUyMTBkYTE5YmFmMDUwNzI3ZWVlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAt
MjcsOSArMjcsMTMgQEAgZXh0ZXJuICJDIiB7CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CiAKLVdLX0VYUE9SVCB2b2lkIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvd0Jl
c3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5nUmVmIGF1ZGlvRGV2aWNl
VUlEKTsKIFdLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOwogCitXS19FWFBPUlQgV0tBcnJheVJlZiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDA1YjJlNjQ3MGFiMzY1ODcwZGQ5MjJiNzc3
OWQ4NmFhYjhiMTJiMWIuLjc3ZDViMGY0ZmM2YjJjODYyZmUyZjQxYzc0NjkzNjYxODkwYWUwYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTY3LDcgKzY3
LDIxIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
V2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlCiAgICAgICAgIHJldHVybjsKIAogICAgIHBy
aXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Ci0gICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsKKyAg
ICBwcml2LT5yZXF1ZXN0LT5hbGxvdyhwcml2LT5yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKS5h
dCgwKSwgcHJpdi0+cmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkpOworfQorCitzdGF0
aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1p
c3Npb25SZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB2aWRlb0RldmljZVVJRCwgY29uc3Qg
Y2hhciogYXVkaW9EZXZpY2VVSUQpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElB
X1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBh
IHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdyhT
dHJpbmc6OmZyb21VVEY4KHZpZGVvRGV2aWNlVUlEKSwgU3RyaW5nOjpmcm9tVVRGOChhdWRpb0Rl
dmljZVVJRCkpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA1ZGM4YjMyMTY2YmE5ZTNhMjZkZjkwYmMyM2Vi
YzNiOGJkODliZjhlLi43YmJjZTU5YTM2OGM4Nzk5ODUyMzE3N2U5ODAwYTJjZjhjYjlhY2M1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAg
UGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm8KICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wg
YWxsb3dlZCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQs
IGJvb2wgYWxsb3dlZCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5n
JiBhdWRpb0RldmljZVVJRCkKIHsKICAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTU0LDggKzU0LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2kKICAgICAg
ICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAvLyBGSVhNRSgxNDcw
NjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUgc3VwcG9ydCBmb3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5n
cyBnaXZlbiBmcm9tIHVzZXIncyBkZWNpc2lvbiBvbiB3aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9w
ZW4KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQsICIiLCAi
IiksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRp
YUlELCBhbGxvd2VkLCB2aWRlb0RldmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFn
ZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVj
NGM2NmM2ODI4ZDViODUzMS4uMDM0NDFmNDg5MjIxMGJhYWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAg
cHVibGljOgogICAgIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4g
Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRl
bywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNWaWRlbywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRldmljZVVJRHNBdWRpbyk7CiAKICAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSB3aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4K
LSAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qs
IGJvb2wgYWxsb3cpOworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCwgYm9vbCBhbGxvdywgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAKIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRp
bmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCBjMzUwOWJlMTUzOWYxMTZm
YWEzMjBjODA1MTE0Y2RmZWExNDFhOTljLi41MjcxN2RmN2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2
YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC0zNiwxNCArMzYsMTQgQEAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eShVc2VyTWVkaWFQZXJtaXMKIHsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjphbGxvdygpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9E
ZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpkZW55KCkKIHsKLSAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSk7CisgICAgbV9tYW5hZ2Vy
LmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFs
c2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5k
ZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFjMjMzMmNmMzcyY2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNm
YjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJhNTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0z
Niw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCByZXF1aXJlc0F1
ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZpY2VVSURzVmlkZW8sIGRldmljZVVJRHNBdWRpbykpOwog
ICAgIH0KIAotICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYg
dmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAgIHZvaWQg
ZGVueSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjli
ZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1NWQ2M2I5YjUwNzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkx
N2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aQogICAgIG1fcmVx
dWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOwogCiAgICAgaWYgKGFsbG93ZWQpCi0gICAgICAg
IHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICAgICAgcmVxdWVzdC0+dXNl
ck1lZGlhQWNjZXNzR3JhbnRlZChkZXZpY2VVSURWaWRlbywgZGV2aWNlVUlEQXVkaW8pOwogICAg
IGVsc2UKICAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCmluZGV4IDIz
MDA5MmNkNDhjMTliMzE3Mjg0YjY5ZjY3MjY5NmZkZjdhODY2MmUuLjYyZGYyMmQxNTQzOGQ3MzBh
NWQ2NzYxYjg3MTYzYzFmYTI5ZjNmY2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBib29sIGRv
bmU7CiAKIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxs
QmFjayhXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIC8q
IGNsaWVudEluZm8gKi8pCiB7Ci0gICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93
KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxs
b3dCZXN0KHBlcm1pc3Npb25SZXF1ZXN0KTsKICAgICBkb25lID0gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkMzllMGUwN2UwNGU0ZWRh
Nzg5OWZiYjQ3ZDY3YzRjMzczZTM0MjgxLi43YjU3M2FiMWU4NjFmZWMwZDE0YzdiNzI4ZmQ0ZWY1
NGY2ZjY4YjA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUg
IlN0cmluZ0Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlRlc3RJbnZvY2F0aW9uLmgiCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQXJyYXkuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBA
IC0xNDk3LDkgKzE0OTgsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3NpYmxlKCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMp
IHsKLSAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkKLSAgICAgICAg
ICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhyZXF1ZXN0LmdldCgpKTsKLSAg
ICAgICAgZWxzZQorICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKSB7
CisgICAgICAgICAgICBpZiAoV0tBcnJheUdldFNpemUoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERldmljZU5hbWVzVmlkZW8ocmVxdWVzdC5nZXQoKSkpICYmIFdLQXJyYXlHZXRTaXplKFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKHJlcXVlc3QuZ2V0KCkp
KSkKKyAgICAgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVx
dWVzdC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1B
dEluZGV4KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVl
c3QuZ2V0KCkpLCAwKSksIHJlaW50ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJ
dGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhy
ZXF1ZXN0LmdldCgpKSwgMCkpKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShyZXF1ZXN0LmdldCgpKTsKICAgICB9CiAgICAgbV91
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258282</attachid>
            <date>2015-08-05 10:19:18 -0700</date>
            <delta_ts>2015-08-05 10:22:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150805101909.patch</filename>
            <type>text/plain</type>
            <size>20209</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uYmY3MGJkNWEyN2QwZTYxNjkxMGE2M2U0MjU4MjMx
N2YzN2UxNWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNzR3JhbnRlZCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dl
YkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDpdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaDoKKwogMjAxNS0wOC0wMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE4NzcyOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2YjZkYzFiNDVhMmNiYTY0ZTE0OGY2
MDIyZjc1NTViMDMzMTUxY2Y5Li4wZTlkMmJjOGNhYmQwZWRlMjAxNDMwZGUwNjYxZTkzMTdjNDBj
NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDgtMDMgIE1hdHRo
ZXcgRGFpdGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2Ug
cXVlcnkgYWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAg
KC1bV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViVXNl
ck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6YW5kQXVkaW9VSUQ6
XSk6CisKKwogMjAxNS0wNy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERyb3AgZHVtbXkgVGltZXIgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDYwNjY0MTIx
ODg0OTI3YTc5MzFjY2I0MzdjYmExNDI2ZWEyOGQ5Zi4uYWZmNzljMjc0Y2Y0MWU1ODZjNTIyY2Ni
MzJiZWYwMzQ3MGViZjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTAz
ICBNYXR0aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcg
ZGV2aWNlIHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2Vk
Q29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0
Y2hVbnRhZ2dlZENvbnRlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNWaWRlbyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNBdWRpbyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24pOgorCisKIDIwMTUtMDgtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgV2ViTWVtb3J5U2FtcGxlciBkb2Vzbid0
IGxlYWsgZmlsZSBkZXNjcmlwdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCAyZGYwMGQzYjI1YzY3ZWY0
YjQxMzEzZDVhYjdjMmNjZGE1ZTU0YzFmLi4wNGE4MDMxMzA0Y2U1MmU2MTNkZmQ4MDc0YTA3MWRm
YWVhMjY3MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3UKICAgICB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCkKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNj
ZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1
ZGlvRGV2aWNlVUlEKQogeworICAgIG1fY2hvc2VuVmlkZW9EZXZpY2VVSUQgPSB2aWRlb0Rldmlj
ZVVJRDsKKyAgICBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEID0gYXVkaW9EZXZpY2VVSUQ7CiAgICAg
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAzIC0gdGhlIHVzZXIgZ3Jh
bnRlZCBhY2Nlc3MsIGFzayBwbGF0Zm9ybSB0byBjcmVhdGUgdGhlIG1lZGlhIHN0cmVhbSBkZXNj
cmlwdG9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMDk5ZTE0ZjlmZjhhOGIzNjMxYThhMmNiMjRjZWU0Zjdk
YTU0M2MwZS4uYjZkZDEzZTAzYThkZDJjODhkNjNhNzRmZGUzZGU2YWUzZjI2NzMyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCiAgICAgYm9vbCByZXF1aXJl
c0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CkBAIC05Miw2ICs5
Miw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1f
Y2hvc2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7
CisgICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVk
aWFEZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aAppbmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZj
YTRmZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsK
IAotICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xl
dG9uKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRm
YTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0
MzE1MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJl
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAg
ICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBt
X3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1
YjM1M2YuLjYzMGYyNGVmYWJmYmQwZDRlYmRkYWMwMWVhN2I1Y2UzMTZmYjY0NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChp
ZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4p
cmVxdWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lk
KWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlv
VUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0x
NTMsNyArMTUzLDE4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCku
YXQoMCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CisgICAgUmVtb3ZlUmVx
dWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxsb3dE
ZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNv
bnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNlck1l
ZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVlc3RG
cm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMuLjVm
YjY3NTg3NDNjNjk0Y2I1NWIwOGI1MjIwNzkxOTllYzcwMGVhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzOCBAQCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93QmVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKQogewotICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KCk7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3codG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+dmlkZW9E
ZXZpY2VVSURzKCkuYXQoMCksIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5n
UmVmIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmco
YXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmRlbnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVB
cnJheVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgU3RyaW5nIGRldmljZU5hbWUg
PSB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFt
ZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBX
S0FycmF5QXBwZW5kSXRlbShhcnJheSwgdG9BUEkoJkFQSTo6U3RyaW5nOjpjcmVhdGUoZGV2aWNl
TmFtZSkuZ2V0KCkpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQorCitXS0FycmF5UmVm
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sKKyAgICBXS011
dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAgZm9yIChhdXRv
JiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRpb0RldmljZVVJRHMo
KSkgeworICAgICAgICBTdHJpbmcgZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbyk7CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCB0
b0FQSSgmQVBJOjpTdHJpbmc6OmNyZWF0ZShkZXZpY2VOYW1lKS5nZXQoKSkpOworICAgIH0KKyAg
ICByZXR1cm4gYXJyYXk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAppbmRleCA1NDVkMzE4
OTU4OGJhMTFjYzMzZmEwM2NjYjVmY2VhNTZjZTVjZmMxLi5jOWVlYWUzNDJkZWI2ZTQyNTI1MjEw
ZGExOWJhZjA1MDcyN2VlZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTI3LDkg
KzI3LDEzIEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOwogCi1XS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7
CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYs
IFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7
CiBXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVm
KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAwNWIyZTY0NzBhYjM2NTg3MGRkOTIyYjc3NzlkODZh
YWI4YjEyYjFiLi43N2Q1YjBmNGZjNmIyYzg2MmZlMmY0MWM3NDY5MzY2MTg5MGFlMGMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC02Nyw3ICs2NywyMSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktp
dFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5t
YWRlRGVjaXNpb24gPSB0cnVlOwotICAgIHByaXYtPnJlcXVlc3QtPmFsbG93KCk7CisgICAgcHJp
di0+cmVxdWVzdC0+YWxsb3cocHJpdi0+cmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuYXQoMCks
IHByaXYtPnJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKworc3RhdGljIHZv
aWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9u
UmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdmlkZW9EZXZpY2VVSUQsIGNvbnN0IGNoYXIq
IGF1ZGlvRGV2aWNlVUlEKQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJN
SVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFV
RVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1l
LgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHBy
aXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coU3RyaW5n
Ojpmcm9tVVRGOCh2aWRlb0RldmljZVVJRCksIFN0cmluZzo6ZnJvbVVURjgoYXVkaW9EZXZpY2VV
SUQpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUzYTI2ZGY5MGJjMjNlYmMzYjhi
ZDg5YmY4ZS4uN2JiY2U1OWEzNjhjODc5OTg1MjMxNzdlOTgwMGEyY2Y4Y2I5YWNjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NS
ZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93
ZWQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNl
aXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29s
IGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVk
aW9EZXZpY2VVSUQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm47CkBAIC01NCw4ICs1NCw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpCiAgICAgICAgIHJl
dHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgLy8gRklYTUUoMTQ3MDYyKTog
TmVlZCB0byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9yIFNhZmFyaSB0byBwYXNzIHN0cmluZ3MgZ2l2
ZW4gZnJvbSB1c2VyJ3MgZGVjaXNpb24gb24gd2hhdCBwaWVjZSBvZiBtZWRpYSB0byBvcGVuCi0g
ICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCAiIiwgIiIpLCBt
X3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwg
YWxsb3dlZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKSwgbV9wYWdlLnBhZ2VJRCgp
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGUwM2RjYjgxNTQ1MjlhNmViZmEzNjRlYzRjNjZj
NjgyOGQ1Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFkM2QyYzBhYzBmNjc5MmM5YTkyNTE0NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0
ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8sIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBkZXZpY2VVSURzQXVkaW8pOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCi0gICAg
dm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29s
IGFsbG93KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0
IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVx
dWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggYzM1MDliZTE1MzlmMTE2ZmFhMzIw
YzgwNTExNGNkZmVhMTQxYTk5Yy4uNTI3MTdkZjdkNDQyNTE4MzA3Zjg5YWZjM2VmMjdlNmM3ZTY1
ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzYsMTQgKzM2LDE0IEBAIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkoVXNlck1lZGlhUGVybWlzCiB7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6YWxsb3coKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojph
bGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlVUlEKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRl
Y2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUsIHZpZGVvRGV2aWNl
VUlELCBhdWRpb0RldmljZVVJRCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UpOworICAgIG1fbWFuYWdlci5kaWRS
ZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCmluZGV4IDlm
YWQ3NjdkYmZjNmFjNGY1ZDIxYzIzMzJjZjM3MmNhMGQ1OTk1MWEuLjRkMGNmZmViYmJjZmI2NzRm
YTBkNzhmNDU5OTk2Mzc0ODViYTU4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgcmVxdWlyZXNBdWRpbywg
cmVxdWlyZXNWaWRlbywgZGV2aWNlVUlEc1ZpZGVvLCBkZXZpY2VVSURzQXVkaW8pKTsKICAgICB9
CiAKLSAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBhbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVv
RGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICB2b2lkIGRlbnko
KTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDU1YTExZmZmNWM5OTJhZjdkZDY5YmZjZTY0
MGFlM2I1M2MxMWI1ODIuLjEzNTVkNjNiOWI1MDc1MWEyMWZhMjhhNGEzYzRkODFmYmE5MTdkZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWkKICAgICBtX3JlcXVlc3RU
b0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKIAogICAgIGlmIChhbGxvd2VkKQotICAgICAgICByZXF1
ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRp
YUFjY2Vzc0dyYW50ZWQoZGV2aWNlVUlEVmlkZW8sIGRldmljZVVJREF1ZGlvKTsKICAgICBlbHNl
CiAgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAppbmRleCAyMzAwOTJj
ZDQ4YzE5YjMxNzI4NGI2OWY2NzI2OTZmZGY3YTg2NjJlLi42MmRmMjJkMTU0MzhkNzMwYTVkNjc2
MWI4NzE2M2MxZmEyOWYzZmNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvVXNlck1lZGlhLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvVXNlck1lZGlhLmNwcApAQCAtMzQsNyArMzQsNyBAQCBzdGF0aWMgYm9vbCBkb25lOwog
CiB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2so
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiAvKiBjbGll
bnRJbmZvICovKQogewotICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhwZXJt
aXNzaW9uUmVxdWVzdCk7CisgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93QmVz
dChwZXJtaXNzaW9uUmVxdWVzdCk7CiAgICAgZG9uZSA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDM5ZTBlMDdlMDRlNGVkYTc4OTlm
YmI0N2Q2N2M0YzM3M2UzNDI4MS4uN2I1NzNhYjFlODYxZmVjMGQxNGM3YjcyOGZkNGVmNTRmNmY2
OGIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRlICJTdHJp
bmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0SW52b2NhdGlvbi5oIgorI2luY2x1ZGUgPFdl
YktpdC9XS0FycmF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIu
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgpAQCAtMTQ5
Nyw5ICsxNDk4LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGZvciAoYXV0byYgcmVxdWVzdCA6IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKSB7Ci0g
ICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpCi0gICAgICAgICAgICBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVzdC5nZXQoKSk7Ci0gICAgICAg
IGVsc2UKKyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkgeworICAg
ICAgICAgICAgaWYgKFdLQXJyYXlHZXRTaXplKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RE
ZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpKSAmJiBXS0FycmF5R2V0U2l6ZShXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhyZXF1ZXN0LmdldCgpKSkpCisg
ICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHJlcXVlc3Qu
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRl
eChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0Lmdl
dCgpKSwgMCkpLCByZWludGVycHJldF9jYXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0
SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVz
dC5nZXQoKSksIDApKSk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdC5nZXQoKSk7CiAgICAgfQogICAgIG1fdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258283</attachid>
            <date>2015-08-05 10:22:57 -0700</date>
            <delta_ts>2015-08-05 11:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150805102250.patch</filename>
            <type>text/plain</type>
            <size>20207</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uYmY3MGJkNWEyN2QwZTYxNjkxMGE2M2U0MjU4MjMx
N2YzN2UxNWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNl
IHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNzR3JhbnRlZCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dl
YkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDpdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaDoKKwogMjAxNS0wOC0wMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE4NzcyOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2YjZkYzFiNDVhMmNiYTY0ZTE0OGY2
MDIyZjc1NTViMDMzMTUxY2Y5Li4wZTlkMmJjOGNhYmQwZWRlMjAxNDMwZGUwNjYxZTkzMTdjNDBj
NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDgtMDMgIE1hdHRo
ZXcgRGFpdGVyICA8bWRhaXRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2Ug
cXVlcnkgYWJpbGl0eSBmcm9tIFdlYktpdDIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMTk4MzM0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAg
KC1bV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViVXNl
ck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6YW5kQXVkaW9VSUQ6
XSk6CisKKwogMjAxNS0wNy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERyb3AgZHVtbXkgVGltZXIgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDYwNjY0MTIx
ODg0OTI3YTc5MzFjY2I0MzdjYmExNDI2ZWEyOGQ5Zi4uYWZmNzljMjc0Y2Y0MWU1ODZjNTIyY2Ni
MzJiZWYwMzQ3MGViZjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTAz
ICBNYXR0aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcg
ZGV2aWNlIHF1ZXJ5IGFiaWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjE5ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2Vk
Q29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0
Y2hVbnRhZ2dlZENvbnRlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RBbGxvdyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNWaWRlbyk6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNl
TmFtZXNBdWRpbyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24pOgorCisKIDIwMTUtMDgtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgV2ViTWVtb3J5U2FtcGxlciBkb2Vzbid0
IGxlYWsgZmlsZSBkZXNjcmlwdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCAyZGYwMGQzYjI1YzY3ZWY0
YjQxMzEzZDVhYjdjMmNjZGE1ZTU0YzFmLi4wNGE4MDMxMzA0Y2U1MmU2MTNkZmQ4MDc0YTA3MWRm
YWVhMjY3MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgdm9pZCBVc2Vy
TWVkaWFSZXF1ZXN0Ojpjb25zdHJhaW50c1ZhbGlkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3UKICAgICB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojp1c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCkKK3ZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNj
ZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1
ZGlvRGV2aWNlVUlEKQogeworICAgIG1fY2hvc2VuVmlkZW9EZXZpY2VVSUQgPSB2aWRlb0Rldmlj
ZVVJRDsKKyAgICBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEID0gYXVkaW9EZXZpY2VVSUQ7CiAgICAg
UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpc10gewogICAgICAgICAvLyAzIC0gdGhlIHVzZXIgZ3Jh
bnRlZCBhY2Nlc3MsIGFzayBwbGF0Zm9ybSB0byBjcmVhdGUgdGhlIG1lZGlhIHN0cmVhbSBkZXNj
cmlwdG9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMDk5ZTE0ZjlmZjhhOGIzNjMxYThhMmNiMjRjZWU0Zjdk
YTU0M2MwZS4uYjZkZDEzZTAzYThkZDJjODhkNjNhNzRmZGUzZGU2YWUzZjI2NzMyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydCgpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCiAgICAgYm9vbCByZXF1aXJl
c0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9CkBAIC05Miw2ICs5
Miw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1f
Y2hvc2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7
CisgICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVk
aWFEZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aAppbmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZj
YTRmZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsK
IAotICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xl
dG9uKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRm
YTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0
MzE1MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJl
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAg
ICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBt
X3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1
YjM1M2YuLjYzMGYyNGVmYWJmYmQwZDRlYmRkYWMwMWVhN2I1Y2UzMTZmYjY0NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChp
ZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4p
cmVxdWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lk
KWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlv
VUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0x
NTMsNyArMTUzLDE4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBfcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCku
YXQoMCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CisgICAgUmVtb3ZlUmVx
dWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpYWxsb3dE
ZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNv
bnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfcmVxdWVzdC0+dXNlck1l
ZGlhQWNjZXNzR3JhbnRlZCh2aWRlb1VJRCwgYXVkaW9VSUQpOwogICAgIFJlbW92ZVJlcXVlc3RG
cm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuY3BwCmluZGV4IDA1ZmQzZTYyOGFmZjNhMDNkMTU0YWZlMjQ5NmQ4NTlkMzIwMzMzMjMuLjRh
ZGE5ZTM1Mjk1ZDhjOWU3NjJjZDlhMTRkNTFjZTJkN2Q0N2I3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKQEAgLTI5LDEyICszMSwzOCBAQCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6QVBJVHlwZSk7CiB9CiAKLXZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93QmVzdChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKQogewotICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KCk7CisgICAgdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UmVmKS0+YWxsb3codG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+dmlkZW9E
ZXZpY2VVSURzKCkuYXQoMCksIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKK30KKwordm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5n
UmVmIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmco
YXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmRlbnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVB
cnJheVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgU3RyaW5nIGRldmljZU5hbWUg
PSB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFt
ZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBX
S0FycmF5QXBwZW5kSXRlbShhcnJheSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShkZXZpY2VO
YW1lKS5wdHIoKSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CisKK1dLQXJyYXlSZWYg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8oV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKQoreworICAgIFdLTXV0
YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYoKTsKKyAgICBmb3IgKGF1dG8m
IG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmF1ZGlvRGV2aWNlVUlEcygp
KSB7CisgICAgICAgIFN0cmluZyBkZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIHRv
QVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoZGV2aWNlTmFtZSkucHRyKCkpKTsKKyAgICB9CisgICAg
cmV0dXJuIGFycmF5OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggNTQ1ZDMxODk1
ODhiYTExY2MzM2ZhMDNjY2I1ZmNlYTU2Y2U1Y2ZjMS4uYzllZWFlMzQyZGViNmU0MjUyNTIxMGRh
MTliYWYwNTA3MjdlZWVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0yNyw5ICsy
NywxMyBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JUIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOwor
V0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93QmVzdChXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBX
S1N0cmluZ1JlZiB2aWRlb0RldmljZVVJRCwgV0tTdHJpbmdSZWYgYXVkaW9EZXZpY2VVSUQpOwog
V0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CiAKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYpOworV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERldmljZU5hbWVzQXVkaW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7
CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKaW5kZXggMDViMmU2NDcwYWIzNjU4NzBkZDkyMmI3Nzc5ZDg2YWFi
OGIxMmIxYi4uNzdkNWIwZjRmYzZiMmM4NjJmZTJmNDFjNzQ2OTM2NjE4OTBhZTBjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtNjcsNyArNjcsMjEgQEAg
c3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQ
ZXJtaXNzaW9uUmVxdWVzdCogcmVxdWUKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+bWFk
ZURlY2lzaW9uID0gdHJ1ZTsKLSAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworICAgIHByaXYt
PnJlcXVlc3QtPmFsbG93KHByaXYtPnJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmF0KDApLCBw
cml2LT5yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJl
cXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHZpZGVvRGV2aWNlVUlELCBjb25zdCBjaGFyKiBh
dWRpb0RldmljZVVJRCkKK3sKKyAgICBBU1NFUlQoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlT
U0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVT
VChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4K
KyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2
LT5tYWRlRGVjaXNpb24gPSB0cnVlOworICAgIHByaXYtPnJlcXVlc3QtPmFsbG93KFN0cmluZzo6
ZnJvbVVURjgodmlkZW9EZXZpY2VVSUQpLCBTdHJpbmc6OmZyb21VVEY4KGF1ZGlvRGV2aWNlVUlE
KSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVu
eShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJjM2I4YmQ4
OWJmOGUuLjdiYmNlNTlhMzY4Yzg3OTk4NTIzMTc3ZTk4MDBhMmNmOGNiOWFjYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVm
UHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBhbGxvd2Vk
KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBh
bGxvd2VkLCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlv
RGV2aWNlVUlEKQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNTQsOCArNTQsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogICAgICAgICByZXR1
cm47CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIC8vIEZJWE1FKDE0NzA2Mik6IE5l
ZWQgdG8gYWRkIGluIHRoZSBzdXBwb3J0IGZvciBTYWZhcmkgdG8gcGFzcyBzdHJpbmdzIGdpdmVu
IGZyb20gdXNlcidzIGRlY2lzaW9uIG9uIHdoYXQgcGllY2Ugb2YgbWVkaWEgdG8gb3BlbgotICAg
IG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgIiIsICIiKSwgbV9w
YWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlhSUQsIGFs
bG93ZWQsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCksIG1fcGFnZS5wYWdlSUQoKSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBlMDNkY2I4MTU0NTI5YTZlYmZhMzY0ZWM0YzY2YzY4
MjhkNWI4NTMxLi4wMzQ0MWY0ODkyMjEwYmFhZDNkMmMwYWMwZjY3OTJjOWE5MjUxNDQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6
CiAgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVS
ZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVvLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc1ZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZGV2aWNlVUlEc0F1ZGlvKTsKIAogICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgotICAgIHZv
aWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBh
bGxvdyk7CisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVp
bnQ2NF90LCBib29sIGFsbG93LCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVl
c3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCmluZGV4IGMzNTA5YmUxNTM5ZjExNmZhYTMyMGM4
MDUxMTRjZGZlYTE0MWE5OWMuLjUyNzE3ZGY3ZDQ0MjUxODMwN2Y4OWFmYzNlZjI3ZTZjN2U2NWUx
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTM2LDE0ICszNiwxNCBAQCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KFVzZXJNZWRpYVBlcm1pcwogewogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmFsbG93KCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxs
b3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZVVJRCkKIHsKLSAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJN
ZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlLCB2aWRlb0RldmljZVVJ
RCwgYXVkaW9EZXZpY2VVSUQpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmRlbnkoKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlz
c2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKKyAgICBtX21hbmFnZXIuZGlkUmVj
ZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxzZSwgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA5ZmFk
NzY3ZGJmYzZhYzRmNWQyMWMyMzMyY2YzNzJjYTBkNTk5NTFhLi40ZDBjZmZlYmJiY2ZiNjc0ZmEw
ZDc4ZjQ1OTk5NjM3NDg1YmE1ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTM2LDcgKzM2
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIHJlcXVpcmVzQXVkaW8sIHJl
cXVpcmVzVmlkZW8sIGRldmljZVVJRHNWaWRlbywgZGV2aWNlVUlEc0F1ZGlvKSk7CiAgICAgfQog
Ci0gICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgYWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0Rl
dmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAgICAgdm9pZCBkZW55KCk7
CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA1NWExMWZmZjVjOTkyYWY3ZGQ2OWJmY2U2NDBh
ZTNiNTNjMTFiNTgyLi4xMzU1ZDYzYjliNTA3NTFhMjFmYTI4YTRhM2M0ZDgxZmJhOTE3ZGZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBA
IC04Miw3ICs4Miw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpCiAgICAgbV9yZXF1ZXN0VG9J
RE1hcC5yZW1vdmUocmVxdWVzdCk7CiAKICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAgcmVxdWVz
dC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKGRldmljZVVJRFZpZGVvLCBkZXZpY2VVSURBdWRpbyk7CiAgICAgZWxzZQog
ICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKaW5kZXggMjMwMDkyY2Q0
OGMxOWIzMTcyODRiNjlmNjcyNjk2ZmRmN2E4NjYyZS4uNjJkZjIyZDE1NDM4ZDczMGE1ZDY3NjFi
ODcxNjNjMWZhMjlmM2ZjZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1VzZXJNZWRpYS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIGJvb2wgZG9uZTsKIAog
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrKFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogLyogY2xpZW50
SW5mbyAqLykKIHsKLSAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlz
c2lvblJlcXVlc3QpOworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvd0Jlc3Qo
cGVybWlzc2lvblJlcXVlc3QpOwogICAgIGRvbmUgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzOWUwZTA3ZTA0ZTRlZGE3ODk5ZmJi
NDdkNjdjNGMzNzNlMzQyODEuLjdiNTczYWIxZTg2MWZlYzBkMTRjN2I3MjhmZDRlZjU0ZjZmNjhi
MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5n
RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJL
aXQvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTE0OTcs
OSArMTQ5OCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBm
b3IgKGF1dG8mIHJlcXVlc3QgOiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykgewotICAg
ICAgICBpZiAobV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKQotICAgICAgICAgICAgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBl
bHNlCisgICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICAg
ICAgICAgIGlmIChXS0FycmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSkgJiYgV0tBcnJheUdldFNpemUoV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSkpKQorICAg
ICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhyZXF1ZXN0Lmdl
dCgpLCByZWludGVycHJldF9jYXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgo
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8ocmVxdWVzdC5nZXQo
KSksIDApKSwgcmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdElu
ZGV4KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKHJlcXVlc3Qu
Z2V0KCkpLCAwKSkpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3QuZ2V0KCkpOwogICAgIH0KICAgICBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258286</attachid>
            <date>2015-08-05 11:15:08 -0700</date>
            <delta_ts>2015-08-05 11:16:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150805111500.patch</filename>
            <type>text/plain</type>
            <size>20968</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uMGZmN2YzOTQxMmExYjQ4MWJiZWM0MmJjNWFkZGY4
YzRhNGY2YmUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZXJNZWRpYVJlcXVl
c3Qgc2hvdWxkIHN1cHBseSBJRHMgb2YgZGV2aWNlcyBzZWxlY3RlZCBieSB1c2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAy
MDE1LTA4LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg3NzI5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDZiNmRjMWI0NWEyY2JhNjRlMTQ4ZjYwMjJmNzU1NWIwMzMxNTFjZjkuLjBlOWQyYmM4Y2FiZDBl
ZGUyMDE0MzBkZTA2NjFlOTMxN2M0MGM0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxNS0wOC0wMyAgTWF0dGhldyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmlsaXR5IGZyb20gV2ViS2l0MiB0byBjbGll
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxv
d10pOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvd0RldmljZVdp
dGhWaWRlb1VJRDphbmRBdWRpb1VJRDpdKToKKworCiAyMDE1LTA3LTMxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBkdW1teSBUaW1lciBjYWxsYmFja3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjA2NjQxMjE4ODQ5MjdhNzkzMWNjYjQzN2NiYTE0MjZlYTI4ZDlmLi5h
ZmY3OWMyNzRjZjQxZTU4NmM1MjJjY2IzMmJlZjAzNDcwZWJmNjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTUtMDgtMDMgIE1hdHRoZXcgRGFpdGVyICA8bWRhaXRlckBhcHBsZS5j
b20+CisKKyAgICAgICAgTGlua2luZyBkZXZpY2UgcXVlcnkgYWJpbGl0eSBmcm9tIFdlYktpdDIg
dG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTk4MzM0NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL21hYy9MYXll
ckhvc3RpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0
OjpzZXRDb2xvck1hdGNoVW50YWdnZWRDb250ZW50KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJI
b3N0aW5nQ29udGV4dDo6Y29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOgorICAgICAgICAo
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKToKKyAgICAgICAgKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6CisKKwogMjAxNS0wOC0w
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBX
ZWJNZW1vcnlTYW1wbGVyIGRvZXNuJ3QgbGVhayBmaWxlIGRlc2NyaXB0b3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CmluZGV4IDJkZjAwZDNiMjVjNjdlZjRiNDEzMTNkNWFiN2MyY2NkYTVlNTRjMWYuLjA0YTgwMzEz
MDRjZTUyZTYxM2RmZDgwNzRhMDcxZGZhZWEyNjcxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTM1
LDggKzEzNSwxMCBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVk
KGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVk
aWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRl
b0RldmljZVVJRCA9IHZpZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQg
PSBhdWRpb0RldmljZVVJRDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVk
VGhpcyh0aGlzKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAg
ICAgIC8vIDMgLSB0aGUgdXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0
ZSB0aGUgbWVkaWEgc3RyZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwOTllMTRmOWZm
OGE4YjM2MzFhOGEyY2IyNGNlZTRmN2RhNTQzYzBlLi5iNmRkMTNlMDNhOGRkMmM4OGQ2M2E3NGZk
ZTNkZTZhZTNmMjY3MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAKICAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9E
ZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVk
KCk7CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29u
c3RyYWludHM7IH0KQEAgLTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5n
PiBtX3ZpZGVvRGV2aWNlVUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlE
czsKICAgICAKKyAgICBTdHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcg
bV9jaG9zZW5BdWRpb0RldmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CiAKICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRj
ZTJjMDhmM2Y1NzQyZmUuLmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3Mg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXImIHNpbmdsZXRvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRT
dHJlYW1DZW50ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2
b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVh
dGlvbkNsaWVudD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50
cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1v
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5o
CmluZGV4IGNmMTY4ZTRjZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLjlkMjZlNmIy
MjcyYzY4OGM3YzRiYzQyZjNhMmI4MjQzMTUyOWYwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1f
cmVxdWVzdFN1Y2Nlc3MpCi0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dy
YW50ZWQoKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCht
X3JlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmF0KDApLCBtX3JlcXVlc3QtPmF1ZGlvRGV2aWNl
VUlEcygpLmF0KDApKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9yZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NEZW5pZWQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KaW5kZXggMTdmMTY0NzNlZDVi
OWQ0MzQ4MzBlZDdjNzI2OTg2NWQ3YTViMzUzZi4uMjQ3ZjU2M2QwZjU4NjIwNTg5ZmZiOGM2Yjdk
YTE4ZTM4ZGE2ODIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIH0KIC0gKGlkKWluaXRXaXRoVXNlck1lZGlhUmVxdWVzdDooUGFzc1Jl
ZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PilyZXF1ZXN0OwogLSAodm9pZCljYW5jZWxSZXF1ZXN0Owot
LSAodm9pZClhbGxvdzsKKy0gKHZvaWQpYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0
cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQ7CiAtICh2
b2lkKWRlbnk7CiBAZW5kCiAKQEAgLTE1Miw4ICsxNTIsMjggQEAgdm9pZCBXZWJVc2VyTWVkaWFD
bGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghX3JlcXVlc3QpCiAgICAgICAgIHJldHVybjsKKyAg
ICBpZiAoIV9yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKS5pc0VtcHR5KCkgJiYgIV9yZXF1ZXN0
LT5hdWRpb0RldmljZVVJRHMoKS5pc0VtcHR5KCkpCisgICAgICAgIF9yZXF1ZXN0LT51c2VyTWVk
aWFBY2Nlc3NHcmFudGVkKF9yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKS5hdCgwKSwgX3JlcXVl
c3QtPmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKKyAgICBlbHNlIGlmICghX3JlcXVlc3QtPnZp
ZGVvRGV2aWNlVUlEcygpLmlzRW1wdHkoKSkKKyAgICAgICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFj
Y2Vzc0dyYW50ZWQoX3JlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmF0KDApLCBlbXB0eVN0cmlu
ZygpKTsKKyAgICBlbHNlIGlmICghX3JlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmlzRW1wdHko
KSkKKyAgICAgICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoZW1wdHlTdHJpbmco
KSwgX3JlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmF0KDApKTsKKyAgICBSZW1vdmVSZXF1ZXN0
RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CisjZW5kaWYKK30KIAotICAgIF9yZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKCk7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihj
b25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlE
Cit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoIV9yZXF1ZXN0KQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgaWYgKCFfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuaXNF
bXB0eSgpICYmICFfcmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpKQorICAgICAg
ICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VV
SURzKCkuYXQoMCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CisgICAgZWxz
ZSBpZiAoIV9yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKS5pc0VtcHR5KCkpCisgICAgICAgIF9y
ZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKF9yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMo
KS5hdCgwKSwgZW1wdHlTdHJpbmcoKSk7CisgICAgZWxzZSBpZiAoIV9yZXF1ZXN0LT5hdWRpb0Rl
dmljZVVJRHMoKS5pc0VtcHR5KCkpCisgICAgICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKGVtcHR5U3RyaW5nKCksIF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7
CiAgICAgUmVtb3ZlUmVxdWVzdEZyb21NYXAoX3JlcXVlc3QuZ2V0KCkpOwogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKaW5kZXggMDVmZDNlNjI4YWZmM2EwM2QxNTRhZmUy
NDk2ZDg1OWQzMjAzMzMyMy4uNGFkYTllMzUyOTVkOGM5ZTc2MmNkOWExNGQ1MWNlMmQ3ZDQ3Yjdh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMjEsNiArMjEsOCBAQAogCiAj
aW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLTXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiV0tTdHJp
bmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjksMTIgKzMxLDM4IEBAIFdL
VHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogICAgIHJldHVy
biB0b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsKIH0KIAot
dm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKKwordm9pZCBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCiB7Ci0gICAgdG9JbXBsKHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3coKTsKKyAgICB0b0ltcGwodXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdyh0b0ltcGwodXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYpLT52aWRlb0RldmljZVVJRHMoKS5hdCgwKSwgdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKS0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkpOworfQorCit2b2lk
IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiB2aWRl
b0RldmljZVVJRCwgV0tTdHJpbmdSZWYgYXVkaW9EZXZpY2VVSUQpCit7CisgICAgdG9JbXBsKHVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YWxsb3codG9XVEZTdHJpbmcodmlkZW9EZXZp
Y2VVSUQpLCB0b1dURlN0cmluZyhhdWRpb0RldmljZVVJRCkpOwogfQogCiB2b2lkIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCiB7CiAgICAgdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKS0+ZGVueSgpOwogfQorCitXS0FycmF5UmVmIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sKKyAgICBXS011dGFibGVBcnJheVJl
ZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAgZm9yIChhdXRvJiBuYW1lIDogdG9J
bXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT52aWRlb0RldmljZVVJRHMoKSkgeworICAgICAg
ICBTdHJpbmcgZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0
RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpWaWRlbyk7CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCB0b0FQSShBUEk6OlN0
cmluZzo6Y3JlYXRlKGRldmljZU5hbWUpLnB0cigpKSk7CisgICAgfQorICAgIHJldHVybiBhcnJh
eTsKK30KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVBcnJheVJl
ZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVm
KS0+YXVkaW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgU3RyaW5nIGRldmljZU5hbWUgPSB0b0lt
cGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFtZSwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pOworICAgICAgICBXS0FycmF5
QXBwZW5kSXRlbShhcnJheSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShkZXZpY2VOYW1lKS5w
dHIoKSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaAppbmRleCA1NDVkMzE4OTU4OGJhMTFjYzMzZmEwM2NjYjVmY2VhNTZjZTVjZmMxLi5jOWVl
YWUzNDJkZWI2ZTQyNTI1MjEwZGExOWJhZjA1MDcyN2VlZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmgKQEAgLTI3LDkgKzI3LDEzIEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQgV0tU
eXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOwogCi1XS19FWFBP
UlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQ
T1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1Jl
ZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JU
IFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8o
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAwNWIyZTY0NzBhYjM2
NTg3MGRkOTIyYjc3NzlkODZhYWI4YjEyYjFiLi43N2Q1YjBmNGZjNmIyYzg2MmZlMmY0MWM3NDY5
MzY2MTg5MGFlMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CkBAIC02Nyw3ICs2NywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZQogICAgICAgICByZXR1
cm47CiAKICAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwotICAgIHByaXYtPnJlcXVlc3Qt
PmFsbG93KCk7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3cocHJpdi0+cmVxdWVzdC0+dmlkZW9E
ZXZpY2VVSURzKCkuYXQoMCksIHByaXYtPnJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmF0KDAp
KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxv
dyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IGNoYXIqIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIEFTU0VSVChXRUJLSVRf
SVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUg
ZGVjaXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAg
IHJldHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVx
dWVzdC0+YWxsb3coU3RyaW5nOjpmcm9tVVRGOCh2aWRlb0RldmljZVVJRCksIFN0cmluZzo6ZnJv
bVVURjgoYXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUz
YTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4uN2JiY2U1OWEzNjhjODc5OTg1MjMxNzdlOTgwMGEy
Y2Y4Y2I5YWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00
NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBib29sIGFsbG93ZWQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQs
IGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm47CkBAIC01NCw4ICs1NCw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
Ly8gRklYTUUoMTQ3MDYyKTogTmVlZCB0byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9yIFNhZmFyaSB0
byBwYXNzIHN0cmluZ3MgZ2l2ZW4gZnJvbSB1c2VyJ3MgZGVjaXNpb24gb24gd2hhdCBwaWVjZSBv
ZiBtZWRpYSB0byBvcGVuCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBh
bGxvd2VkLCAiIiwgIiIpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNp
c2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlE
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGUwM2RjYjgxNTQ1
MjlhNmViZmEzNjRlYzRjNjZjNjgyOGQ1Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFkM2QyYzBhYzBm
Njc5MmM5YTkyNTE0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0z
Niw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVk
aW8sIGJvb2wgdmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8sIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzQXVkaW8pOwogCiAgICAgLy8gQ2FsbGVkIGJ5
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUg
YnkgdGhlIHVzZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQ
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0cmluZyYgdmlk
ZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBwcml2YXRlOgog
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggYzM1
MDliZTE1MzlmMTE2ZmFhMzIwYzgwNTExNGNkZmVhMTQxYTk5Yy4uNTI3MTdkZjdkNDQyNTE4MzA3
Zjg5YWZjM2VmMjdlNmM3ZTY1ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzYs
MTQgKzM2LDE0IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzCiB7CiB9CiAKLXZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjphbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25z
dCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworICAgIG1fbWFu
YWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQs
IHRydWUsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCk7CiB9CiAKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5hZ2VyLmRpZFJl
Y2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UpOwor
ICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNl
ck1lZGlhSUQsIGZhbHNlLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKTsKIH0KIAogdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oCmluZGV4IDlmYWQ3NjdkYmZjNmFjNGY1ZDIxYzIzMzJjZjM3MmNhMGQ1OTk1MWEu
LjRkMGNmZmViYmJjZmI2NzRmYTBkNzhmNDU5OTk2Mzc0ODViYTU4MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJ
RCwgcmVxdWlyZXNBdWRpbywgcmVxdWlyZXNWaWRlbywgZGV2aWNlVUlEc1ZpZGVvLCBkZXZpY2VV
SURzQXVkaW8pKTsKICAgICB9CiAKLSAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBhbGxvdyhj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KTsKICAgICB2b2lkIGRlbnkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDU1YTExZmZm
NWM5OTJhZjdkZDY5YmZjZTY0MGFlM2I1M2MxMWI1ODIuLjEzNTVkNjNiOWI1MDc1MWEyMWZhMjhh
NGEzYzRkODFmYmE5MTdkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24o
dWkKICAgICBtX3JlcXVlc3RUb0lETWFwLnJlbW92ZShyZXF1ZXN0KTsKIAogICAgIGlmIChhbGxv
d2VkKQotICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAg
IHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoZGV2aWNlVUlEVmlkZW8sIGRldmljZVVJ
REF1ZGlvKTsKICAgICBlbHNlCiAgICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0Rlbmll
ZCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Vz
ZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlh
LmNwcAppbmRleCAyMzAwOTJjZDQ4YzE5YjMxNzI4NGI2OWY2NzI2OTZmZGY3YTg2NjJlLi42MmRm
MjJkMTU0MzhkNzMwYTVkNjc2MWI4NzE2M2MxZmEyOWYzZmNmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcApAQCAtMzQsNyArMzQsNyBAQCBz
dGF0aWMgYm9vbCBkb25lOwogCiB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBj
b25zdCB2b2lkKiAvKiBjbGllbnRJbmZvICovKQogewotICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdEFsbG93QmVzdChwZXJtaXNzaW9uUmVxdWVzdCk7CiAgICAgZG9uZSA9IHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDM5
ZTBlMDdlMDRlNGVkYTc4OTlmYmI0N2Q2N2M0YzM3M2UzNDI4MS4uN2I1NzNhYjFlODYxZmVjMGQx
NGM3YjcyOGZkNGVmNTRmNmY2OGIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcu
aCIKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0SW52b2NhdGlv
bi5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0FycmF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJh
dGlvblJlZi5oPgpAQCAtMTQ5Nyw5ICsxNDk4LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RzKSB7Ci0gICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93
ZWQpCi0gICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVz
dC5nZXQoKSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKG1faXNVc2VyTWVkaWFQZXJtaXNz
aW9uQWxsb3dlZCkgeworICAgICAgICAgICAgaWYgKFdLQXJyYXlHZXRTaXplKFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpKSAmJiBXS0Fy
cmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhy
ZXF1ZXN0LmdldCgpKSkpCisgICAgICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEFsbG93KHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdL
QXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFt
ZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSwgMCkpLCByZWludGVycHJldF9jYXN0PFdLU3RyaW5nUmVm
PihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmlj
ZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSksIDApKSk7CisgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdC5nZXQoKSk7CiAg
ICAgfQogICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258287</attachid>
            <date>2015-08-05 11:16:44 -0700</date>
            <delta_ts>2015-08-12 15:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150805111635.patch</filename>
            <type>text/plain</type>
            <size>20988</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxZjM5YjBlYzU1NTEy
NjIwYzExMjliNTM4NTRjMGFkN2VjM2Y0NS4uMGZmN2YzOTQxMmExYjQ4MWJiZWM0MmJjNWFkZGY4
YzRhNGY2YmUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTAzICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZXJNZWRpYVJlcXVl
c3Qgc2hvdWxkIHN1cHBseSBJRHMgb2YgZGV2aWNlcyBzZWxlY3RlZCBieSB1c2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAy
MDE1LTA4LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg3NzI5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDZiNmRjMWI0NWEyY2JhNjRlMTQ4ZjYwMjJmNzU1NWIwMzMxNTFjZjkuLjYyZGFlZTA5NWZlYzk4
YTE1M2RkMjE4ODFiOWYwNjRjYjQ2ZGNlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxNS0wOC0wMyAgTWF0dGhldyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2VyTWVkaWFSZXF1ZXN0IHNob3VsZCBzdXBwbHkgSURzIG9mIGRldmljZXMgc2Vs
ZWN0ZWQgYnkgdXNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3MjYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTk4MzM0NT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViVXNlck1lZGlhUG9saWN5TGlz
dGVuZXIgYWxsb3ddKToKKyAgICAgICAgKC1bV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxs
b3dEZXZpY2VXaXRoVmlkZW9VSUQ6YW5kQXVkaW9VSUQ6XSk6CisKKwogMjAxNS0wNy0zMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgZHVtbXkgVGltZXIg
Y2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDYwNjY0MTIxODg0OTI3YTc5MzFjY2I0MzdjYmExNDI2
ZWEyOGQ5Zi4uYTRiM2Q5NWEyYzMzYzVlYmZiNDY1Mjg3Y2JlYTJhNWQzNjJlOWJiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTAzICBNYXR0aGV3IERhaXRlciAgPG1kYWl0
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZXJNZWRpYVJlcXVlc3Qgc2hvdWxkIHN1cHBseSBJ
RHMgb2YgZGV2aWNlcyBzZWxlY3RlZCBieSB1c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIx
OTgzMzQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6
OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldENvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpjb2xvck1hdGNoVW50YWdnZWRDb250
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC5jcHA6CisgICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgor
ICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8pOgor
ICAgICAgICAoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24pOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6YWxsb3cpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjpkZW55KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKToKKworCiAyMDE1LTA4LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBzdXJlIFdlYk1lbW9yeVNhbXBsZXIgZG9lc24ndCBsZWFrIGZpbGUgZGVz
Y3JpcHRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggMmRmMDBkM2IyNWM2N2VmNGI0MTMxM2Q1YWI3YzJj
Y2RhNWU1NGMxZi4uMDRhODAzMTMwNGNlNTJlNjEzZGZkODA3NGEwNzFkZmFlYTI2NzE3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCkBAIC0xMzUsOCArMTM1LDEwIEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6
Y29uc3RyYWludHNWYWxpZGF0ZWQoY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291
CiAgICAgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUmVxdWVzdDo6dXNlck1lZGlhQWNjZXNzR3Jh
bnRlZCgpCit2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoY29u
c3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCkK
IHsKKyAgICBtX2Nob3NlblZpZGVvRGV2aWNlVUlEID0gdmlkZW9EZXZpY2VVSUQ7CisgICAgbV9j
aG9zZW5BdWRpb0RldmljZVVJRCA9IGF1ZGlvRGV2aWNlVUlEOwogICAgIFJlZlB0cjxVc2VyTWVk
aWFSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3By
b3RlY3RlZFRoaXNdIHsKICAgICAgICAgLy8gMyAtIHRoZSB1c2VyIGdyYW50ZWQgYWNjZXNzLCBh
c2sgcGxhdGZvcm0gdG8gY3JlYXRlIHRoZSBtZWRpYSBzdHJlYW0gZGVzY3JpcHRvcnMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oCmluZGV4IDA5OWUxNGY5ZmY4YThiMzYzMWE4YTJjYjI0Y2VlNGY3ZGE1NDNjMGUuLmI2ZGQx
M2UwM2E4ZGQyYzg4ZDYzYTc0ZmRlM2RlNmFlM2YyNjczMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBAIC02NCw3
ICs2NCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnQoKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIAogICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0
IHsgcmV0dXJuIG1fYXVkaW9Db25zdHJhaW50czsgfQpAQCAtOTIsNiArOTIsOSBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxTdHJpbmc+IG1fdmlkZW9EZXZpY2VVSURzOwogICAgIFZlY3RvcjxTdHJp
bmc+IG1fYXVkaW9EZXZpY2VVSURzOwogICAgIAorICAgIFN0cmluZyBtX2Nob3NlblZpZGVvRGV2
aWNlVUlEOworICAgIFN0cmluZyBtX2Nob3NlbkF1ZGlvRGV2aWNlVUlEOworICAgIAogICAgIFVz
ZXJNZWRpYUNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKIAogICAgIE1lZGlhRGV2aWNlczo6UHJv
bWlzZSBtX3Byb21pc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggYjZkNGMw
MDIwMjY4MmE3YmI0MWYzYTFmNGNlMmMwOGYzZjU3NDJmZS4uYzI5ODhmY2E0ZmYzNDJhOGJmNmUw
MDg3MTk2OTkzY2FhZDcyNWY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAt
NTAsNyArNTAsNyBAQCBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCk7CiAKLSAgICBzdGF0aWMg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xldG9uKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRvbigpOwogICAgIHN0
YXRpYyB2b2lkIHNldFNoYXJlZFN0cmVhbUNlbnRlcihSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFp
bnRzPiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVv
Q29uc3RyYWludHMpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svVXNlck1lZGlhQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9V
c2VyTWVkaWFDbGllbnRNb2NrLmgKaW5kZXggY2YxNjhlNGNlMWNmZTU0ZmE1MDAzNWFkNjdjMTcz
ODI1MWVmNDAwOS4uOWQyNmU2YjIyNzJjNjg4YzdjNGJjNDJmM2EyYjgyNDMxNTI5ZjBmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2Nr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2Nr
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZmlyZSgpIG92ZXJyaWRlCiAg
ICAgewogICAgICAgICBpZiAobV9yZXF1ZXN0U3VjY2VzcykKLSAgICAgICAgICAgIG1fcmVxdWVz
dC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgICAgICAgICAgbV9yZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKG1fcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuYXQoMCksIG1f
cmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQppbmRleCAxN2YxNjQ3M2VkNWI5ZDQzNDgzMGVkN2M3MjY5ODY1ZDdhNWIzNTNmLi4yNDdmNTYz
ZDBmNTg2MjA1ODlmZmI4YzZiN2RhMThlMzhkYTY4MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBAIC00Nyw3
ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfQogLSAoaWQpaW5pdFdpdGhVc2Vy
TWVkaWFSZXF1ZXN0OihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+KXJlcXVlc3Q7CiAtICh2
b2lkKWNhbmNlbFJlcXVlc3Q7Ci0tICh2b2lkKWFsbG93OworLSAodm9pZClhbGxvd0RldmljZVdp
dGhWaWRlb1VJRDooY29uc3QgU3RyaW5nJil2aWRlb1VJRCBhbmRBdWRpb1VJRDooY29uc3QgU3Ry
aW5nJilhdWRpb1VJRDsKIC0gKHZvaWQpZGVueTsKIEBlbmQKIApAQCAtMTUyLDggKzE1MiwyOCBA
QCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsUmVxdWVzdChVc2VyTWVkaWFSZXF1ZXN0
JiByZXF1ZXN0KQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFfcmVxdWVzdCkK
ICAgICAgICAgcmV0dXJuOworICAgIGlmICghX3JlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmlz
RW1wdHkoKSAmJiAhX3JlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmlzRW1wdHkoKSkKKyAgICAg
ICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoX3JlcXVlc3QtPnZpZGVvRGV2aWNl
VUlEcygpLmF0KDApLCBfcmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkpOworICAgIGVs
c2UgaWYgKCFfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpKQorICAgICAgICBf
cmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURz
KCkuYXQoMCksIGVtcHR5U3RyaW5nKCkpOworICAgIGVsc2UgaWYgKCFfcmVxdWVzdC0+YXVkaW9E
ZXZpY2VVSURzKCkuaXNFbXB0eSgpKQorICAgICAgICBfcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNz
R3JhbnRlZChlbXB0eVN0cmluZygpLCBfcmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkp
OworICAgIFJlbW92ZVJlcXVlc3RGcm9tTWFwKF9yZXF1ZXN0LmdldCgpKTsKKyNlbmRpZgorfQog
Ci0gICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKTsKKy0gKHZvaWQpYWxsb3dE
ZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNv
bnN0IFN0cmluZyYpYXVkaW9VSUQKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghX3JlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoIV9yZXF1ZXN0LT52
aWRlb0RldmljZVVJRHMoKS5pc0VtcHR5KCkgJiYgIV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMo
KS5pc0VtcHR5KCkpCisgICAgICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKF9y
ZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKS5hdCgwKSwgX3JlcXVlc3QtPmF1ZGlvRGV2aWNlVUlE
cygpLmF0KDApKTsKKyAgICBlbHNlIGlmICghX3JlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmlz
RW1wdHkoKSkKKyAgICAgICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoX3JlcXVl
c3QtPnZpZGVvRGV2aWNlVUlEcygpLmF0KDApLCBlbXB0eVN0cmluZygpKTsKKyAgICBlbHNlIGlm
ICghX3JlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpLmlzRW1wdHkoKSkKKyAgICAgICAgX3JlcXVl
c3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoZW1wdHlTdHJpbmcoKSwgX3JlcXVlc3QtPmF1ZGlv
RGV2aWNlVUlEcygpLmF0KDApKTsKICAgICBSZW1vdmVSZXF1ZXN0RnJvbU1hcChfcmVxdWVzdC5n
ZXQoKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAwNWZk
M2U2MjhhZmYzYTAzZDE1NGFmZTI0OTZkODU5ZDMyMDMzMzIzLi40YWRhOWUzNTI5NWQ4YzllNzYy
Y2Q5YTE0ZDUxY2UyZDdkNDdiN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBA
IC0yMSw2ICsyMSw4IEBACiAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tNdXRhYmxlQXJyYXku
aCIKKyNpbmNsdWRlICJXS1N0cmluZy5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBA
IC0yOSwxMiArMzEsMzggQEAgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdl
dFR5cGVJRCgpCiAgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OkFQSVR5cGUpOwogfQogCi12b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxv
dyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmKQorCit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvd0Jlc3QoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZikKIHsKLSAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygp
OworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFsbG93KHRvSW1w
bCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPnZpZGVvRGV2aWNlVUlEcygpLmF0KDAp
LCB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hdWRpb0RldmljZVVJRHMo
KS5hdCgwKSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJ
RCkKK3sKKyAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdyh0
b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRvV1RGU3RyaW5nKGF1ZGlvRGV2aWNlVUlEKSk7
CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKIHsKICAg
ICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5kZW55KCk7CiB9CisKK1dL
QXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKQorewor
ICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYoKTsKKyAgICBm
b3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPnZpZGVvRGV2
aWNlVUlEcygpKSB7CisgICAgICAgIFN0cmluZyBkZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJNZWRp
YVBlcm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0o
YXJyYXksIHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoZGV2aWNlTmFtZSkucHRyKCkpKTsKKyAg
ICB9CisgICAgcmV0dXJuIGFycmF5OworfQorCitXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RS
ZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sKKyAgICBXS011dGFibGVBcnJheVJlZiBhcnJh
eSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAgZm9yIChhdXRvJiBuYW1lIDogdG9JbXBsKHVz
ZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRpb0RldmljZVVJRHMoKSkgeworICAgICAgICBTdHJp
bmcgZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNl
TmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
byk7CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVtKGFycmF5LCB0b0FQSShBUEk6OlN0cmluZzo6
Y3JlYXRlKGRldmljZU5hbWUpLnB0cigpKSk7CisgICAgfQorICAgIHJldHVybiBhcnJheTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDU0NWQzMTg5NTg4YmExMWNjMzNmYTAzY2Ni
NWZjZWE1NmNlNWNmYzEuLmM5ZWVhZTM0MmRlYjZlNDI1MjUyMTBkYTE5YmFmMDUwNzI3ZWVlZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMjcsOSArMjcsMTMgQEAgZXh0ZXJuICJD
IiB7CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0
VHlwZUlEKCk7CiAKLVdLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RB
bGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvd0Jlc3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9E
ZXZpY2VVSUQsIFdLU3RyaW5nUmVmIGF1ZGlvRGV2aWNlVUlEKTsKIFdLX0VYUE9SVCB2b2lkIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWYpOwogCitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0RGV2aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dL
X0VYUE9SVCBXS0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1l
c0F1ZGlvKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOworCiAjaWZkZWYgX19jcGx1
c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
CmluZGV4IDA1YjJlNjQ3MGFiMzY1ODcwZGQ5MjJiNzc3OWQ4NmFhYjhiMTJiMWIuLjc3ZDViMGY0
ZmM2YjJjODYyZmUyZjQxYzc0NjkzNjYxODkwYWUwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTY3LDcgKzY3LDIxIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3Qq
IHJlcXVlCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7
Ci0gICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdyhw
cml2LT5yZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKS5hdCgwKSwgcHJpdi0+cmVxdWVzdC0+YXVk
aW9EZXZpY2VVSURzKCkuYXQoMCkpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0LCBj
b25zdCBjaGFyKiB2aWRlb0RldmljZVVJRCwgY29uc3QgY2hhciogYXVkaW9EZXZpY2VVSUQpCit7
CisgICAgQVNTRVJUKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KSk7CisKKyAgICBXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHBy
aXYgPSBXRUJLSVRfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7
CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1h
ZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0g
dHJ1ZTsKKyAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdyhTdHJpbmc6OmZyb21VVEY4KHZpZGVvRGV2
aWNlVUlEKSwgU3RyaW5nOjpmcm9tVVRGOChhdWRpb0RldmljZVVJRCkpOwogfQogCiBzdGF0aWMg
dm9pZCB3ZWJraXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lv
blJlcXVlc3QqIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApp
bmRleCA1ZGM4YjMyMTY2YmE5ZTNhMjZkZjkwYmMyM2ViYzNiOGJkODliZjhlLi43YmJjZTU5YTM2
OGM4Nzk5ODUyMzE3N2U5ODAwYTJjZjhjYjlhY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm8K
ICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCkKK3ZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYWxsb3dlZCwgY29uc3QgU3Ry
aW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCkKIHsKICAg
ICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU0LDggKzU0LDcg
QEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2kKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLSAgICAvLyBGSVhNRSgxNDcwNjIpOiBOZWVkIHRvIGFkZCBpbiB0aGUg
c3VwcG9ydCBmb3IgU2FmYXJpIHRvIHBhc3Mgc3RyaW5ncyBnaXZlbiBmcm9tIHVzZXIncyBkZWNp
c2lvbiBvbiB3aGF0IHBpZWNlIG9mIG1lZGlhIHRvIG9wZW4KLSAgICBtX3BhZ2UucHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24odXNlck1lZGlhSUQsIGFsbG93ZWQsICIiLCAiIiksIG1fcGFnZS5wYWdlSUQoKSk7Cisg
ICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCB2aWRlb0Rldmlj
ZVVJRCwgYXVkaW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKaW5kZXggZTAzZGNiODE1NDUyOWE2ZWJmYTM2NGVjNGM2NmM2ODI4ZDViODUzMS4uMDM0NDFm
NDg5MjIxMGJhYWQzZDJjMGFjMGY2NzkyYzlhOTI1MTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgYm9vbCBhdWRpbywgYm9vbCB2aWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGRldmljZVVJRHNWaWRlbywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRldmljZVVJRHNBdWRpbyk7
CiAKICAgICAvLyBDYWxsZWQgYnkgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSB3aGVu
IGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVVc2Vy
TWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3cpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwgYm9vbCBhbGxv
dywgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZVVJRCk7CiAKIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcAppbmRleCBjMzUwOWJlMTUzOWYxMTZmYWEzMjBjODA1MTE0Y2RmZWExNDFhOTlj
Li41MjcxN2RmN2Q0NDI1MTgzMDdmODlhZmMzZWYyN2U2YzdlNjVlMTI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuY3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXMK
IHsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KGNvbnN0IFN0cmluZyYg
dmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7Ci0gICAgbV9t
YW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJ
RCwgdHJ1ZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpb24obV91c2VyTWVkaWFJRCwgdHJ1ZSwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlE
KTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKIHsK
LSAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3Vz
ZXJNZWRpYUlELCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCkpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Omlu
dmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggOWZhZDc2N2RiZmM2YWM0ZjVkMjFj
MjMzMmNmMzcyY2EwZDU5OTUxYS4uNGQwY2ZmZWJiYmNmYjY3NGZhMGQ3OGY0NTk5OTYzNzQ4NWJh
NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KG1hbmFnZXIsIHVzZXJNZWRpYUlELCByZXF1aXJlc0F1ZGlvLCByZXF1aXJlc1ZpZGVvLCBkZXZp
Y2VVSURzVmlkZW8sIGRldmljZVVJRHNBdWRpbykpOwogICAgIH0KIAotICAgIHZvaWQgYWxsb3co
KTsKKyAgICB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogICAgIHZvaWQgZGVueSgpOwogCiAgICAgdm9pZCBpbnZh
bGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKaW5kZXggNTVhMTFmZmY1Yzk5MmFmN2RkNjliZmNlNjQwYWUzYjUzYzExYjU4Mi4uMTM1
NWQ2M2I5YjUwNzUxYTIxZmEyOGE0YTNjNGQ4MWZiYTkxN2RmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVVzZXJNZWRp
YVBlcm1pc3Npb25EZWNpc2lvbih1aQogICAgIG1fcmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVl
c3QpOwogCiAgICAgaWYgKGFsbG93ZWQpCi0gICAgICAgIHJlcXVlc3QtPnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQoKTsKKyAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZChkZXZp
Y2VVSURWaWRlbywgZGV2aWNlVUlEQXVkaW8pOwogICAgIGVsc2UKICAgICAgICAgcmVxdWVzdC0+
dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwCmluZGV4IDIzMDA5MmNkNDhjMTliMzE3Mjg0YjY5ZjY3
MjY5NmZkZjdhODY2MmUuLjYyZGYyMmQxNTQzOGQ3MzBhNWQ2NzYxYjg3MTYzYzFmYTI5ZjNmY2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3Bw
CkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBib29sIGRvbmU7CiAKIHZvaWQgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayhXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
cGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIC8qIGNsaWVudEluZm8gKi8pCiB7Ci0gICAg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHBlcm1pc3Npb25SZXF1ZXN0KTsKKyAg
ICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KHBlcm1pc3Npb25SZXF1ZXN0
KTsKICAgICBkb25lID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCBkMzllMGUwN2UwNGU0ZWRhNzg5OWZiYjQ3ZDY3YzRjMzczZTM0Mjgx
Li43YjU3M2FiMWU4NjFmZWMwZDE0YzdiNzI4ZmQ0ZWY1NGY2ZjY4YjA3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2lu
Y2x1ZGUgIlRlc3RJbnZvY2F0aW9uLmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktp
dC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC0xNDk3LDkgKzE0OTgsMTAgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RJZlBvc3NpYmxlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0
IDogbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMpIHsKLSAgICAgICAgaWYgKG1faXNVc2Vy
TWVkaWFQZXJtaXNzaW9uQWxsb3dlZCkKLSAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhyZXF1ZXN0LmdldCgpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAo
bV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKSB7CisgICAgICAgICAgICBpZiAoV0tBcnJh
eUdldFNpemUoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8ocmVx
dWVzdC5nZXQoKSkpICYmIFdLQXJyYXlHZXRTaXplKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3REZXZpY2VOYW1lc0F1ZGlvKHJlcXVlc3QuZ2V0KCkpKSkKKyAgICAgICAgICAgICAgICBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVzdC5nZXQoKSwgcmVpbnRlcnByZXRf
Y2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3REZXZpY2VOYW1lc1ZpZGVvKHJlcXVlc3QuZ2V0KCkpLCAwKSksIHJlaW50ZXJw
cmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyhyZXF1ZXN0LmdldCgpKSwgMCkpKTsKKyAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVu
eShyZXF1ZXN0LmdldCgpKTsKICAgICB9CiAgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dHMuY2xlYXIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258848</attachid>
            <date>2015-08-12 15:01:32 -0700</date>
            <delta_ts>2015-08-12 18:28:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150812150114.patch</filename>
            <type>text/plain</type>
            <size>20897</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE2NDY1NDRmOTcyZmEx
NzYyNDIxN2VkMTdiZDI3ZWQzZDFjNjZmOC4uZmE3NDdjOWE3ZjRhNmRiYjIzN2Q5ZTYxMmI0ZTI3
MWVjZmU1MDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTEyICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZXJNZWRpYVJlcXVl
c3Qgc2hvdWxkIHN1cHBseSBJRHMgb2YgZGV2aWNlcyBzZWxlY3RlZCBieSB1c2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAy
MDE1LTA4LTEyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBD
YWNoZWRSZXNvdXJjZSBsZWFrIGluIHZhbGlkYXRpb24gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDQ5NDNiYWY5M2VjM2ViMGQ5ZjJlMjJlN2NlMjA2NGU2NmRlMzQ4MWIuLjc2ODhhZTZjMjVlNmRh
NjAwMzZmNTc1OGJjNmJlMjMxMzkxZGUxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxNS0wOC0xMiAgTWF0dGhldyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmlsaXR5IGZyb20gV2ViS2l0MiB0byBjbGll
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxv
d10pOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvd0RldmljZVdp
dGhWaWRlb1VJRDphbmRBdWRpb1VJRDpdKToKKworCiAyMDE1LTA4LTEwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWxpZ24gV2ViS2l0MSdzIFBhZ2VDYWNoZSBz
aXplIHdpdGggV2ViS2l0MidzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDUyOWNlYTNlNGEwZGU1ODQ2NGQzZjY5
ZGM2NmEyZDVlNDhiYTljZC4uYjY0ZWFiNGM2ZjhhMDZjZTkwMWU1ZmJhMTMzZjlkNTA2NWY3NTk4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTEyICBNYXR0aGV3IERhaXRl
ciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNlIHF1ZXJ5IGFi
aWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5
ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6Cisg
ICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6Cisg
ICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24pOgorCisKIDIwMTUtMDgtMTIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOb3QgcmVjZWl2aW5nIHJlc3BvbnNlcyBmb3Ig
YXN5bmMgcmVxdWVzdCBJbmRleGVkREIucmVxdWVzdERhdGFiYXNlTmFtZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CmluZGV4IGNlY2YxM2ZlYjI0NGIzNTMxZWM0ZjVmYzE3NjVlZTI2OTUzNmViZWIuLmMzYTM2OGE0
NDhhZTIyMmFkYTU2M2FlMzgwNTVkYzg4ZWY0N2RiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTQz
LDggKzE0MywxMCBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVk
KGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVk
aWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRl
b0RldmljZVVJRCA9IHZpZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQg
PSBhdWRpb0RldmljZVVJRDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVk
VGhpcyh0aGlzKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAg
ICAgIC8vIDMgLSB0aGUgdXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0
ZSB0aGUgbWVkaWEgc3RyZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBlOWY5ZWU1Y2Yz
NWYwYjUzMzIzOGQzZjM5NDhkYjMwYTVlZjY2YzkwLi43NmRlYmY1MTE3ODQ2YjYzNjE3OTQ5MDM1
MzNiYTA1NWFlMDU4MTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAKICAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9E
ZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVk
KCk7CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29u
c3RyYWludHM7IH0KQEAgLTk0LDYgKzk0LDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5n
PiBtX3ZpZGVvRGV2aWNlVUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlE
czsKICAgICAKKyAgICBTdHJpbmcgbV9jaG9zZW5WaWRlb0RldmljZVVJRDsKKyAgICBTdHJpbmcg
bV9jaG9zZW5BdWRpb0RldmljZVVJRDsKKyAgICAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7CiAKICAgICBNZWRpYURldmljZXM6OlByb21pc2UgbV9wcm9taXNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IGI2ZDRjMDAyMDI2ODJhN2JiNDFmM2ExZjRj
ZTJjMDhmM2Y1NzQyZmUuLmMyOTg4ZmNhNGZmMzQyYThiZjZlMDA4NzE5Njk5M2NhYWQ3MjVmOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3Mg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcigpOwogCi0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXImIHNpbmdsZXRvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRT
dHJlYW1DZW50ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciopOwogCiAgICAgdmlydHVhbCB2
b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVh
dGlvbkNsaWVudD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50
cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1v
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5o
CmluZGV4IGNmMTY4ZTRjZTFjZmU1NGZhNTAwMzVhZDY3YzE3MzgyNTFlZjQwMDkuLjlkMjZlNmIy
MjcyYzY4OGM3YzRiYzQyZjNhMmI4MjQzMTUyOWYwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC00NSw3ICs0NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGZpcmUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1f
cmVxdWVzdFN1Y2Nlc3MpCi0gICAgICAgICAgICBtX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dy
YW50ZWQoKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCht
X3JlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmF0KDApLCBtX3JlcXVlc3QtPmF1ZGlvRGV2aWNl
VUlEcygpLmF0KDApKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9yZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NEZW5pZWQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KaW5kZXggMTdmMTY0NzNlZDVi
OWQ0MzQ4MzBlZDdjNzI2OTg2NWQ3YTViMzUzZi4uNDczOGRiY2Q5Yzc4NzFjNTAyMDMzODQ5ZWQ1
MzYwNjgxNGU0M2YyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIH0KIC0gKGlkKWluaXRXaXRoVXNlck1lZGlhUmVxdWVzdDooUGFzc1Jl
ZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PilyZXF1ZXN0OwogLSAodm9pZCljYW5jZWxSZXF1ZXN0Owot
LSAodm9pZClhbGxvdzsKKy0gKHZvaWQpYWxsb3dEZXZpY2VXaXRoVmlkZW9VSUQ6KGNvbnN0IFN0
cmluZyYpdmlkZW9VSUQgYW5kQXVkaW9VSUQ6KGNvbnN0IFN0cmluZyYpYXVkaW9VSUQ7CiAtICh2
b2lkKWRlbnk7CiBAZW5kCiAKQEAgLTE1Miw4ICsxNTIsMjMgQEAgdm9pZCBXZWJVc2VyTWVkaWFD
bGllbnQ6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghX3JlcXVlc3QpCiAgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBjb25zdCBTdHJpbmcmIHZpZGVvVUlEID0gIV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5pc0VtcHR5KCkgPyBfcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuYXQoMCkgOiBlbXB0
eVN0cmluZygpOworICAgIGNvbnN0IFN0cmluZyYgYXVkaW9VSUQgPSAhX3JlcXVlc3QtPmF1ZGlv
RGV2aWNlVUlEcygpLmlzRW1wdHkoKSA/IF9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgw
KSA6IGVtcHR5U3RyaW5nKCk7CisgICAgCisgICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dy
YW50ZWQodmlkZW9VSUQsIGF1ZGlvVUlEKTsKKyAgICBSZW1vdmVSZXF1ZXN0RnJvbU1hcChfcmVx
dWVzdC5nZXQoKSk7CisjZW5kaWYKK30KIAotICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKCk7CistICh2b2lkKWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcm
KXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlECit7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoIV9yZXF1ZXN0KQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQodmlkZW9VSUQsIGF1ZGlv
VUlEKTsKKyAgICAKICAgICBSZW1vdmVSZXF1ZXN0RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CiAj
ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAwNWZkM2U2MjhhZmYz
YTAzZDE1NGFmZTI0OTZkODU5ZDMyMDMzMzIzLi4xMjM4NWJlNTBjNDZiZTJhNzA3YTAzNzZhYTRh
M2M0NDUxZjUzNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0yMSw2ICsy
MSw4IEBACiAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tNdXRhYmxlQXJyYXkuaCIKKyNpbmNs
dWRlICJXS1N0cmluZy5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC0yOSwxMiAr
MzEsNDAgQEAgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgp
CiAgICAgcmV0dXJuIHRvQVBJKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OkFQSVR5
cGUpOwogfQogCi12b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKQor
Cit2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvd0Jlc3QoV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKIHsKLSAg
ICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdygpOworICAgIGNv
bnN0IFN0cmluZyYgdmlkZW9EZXZpY2UgPSAhdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmKS0+dmlkZW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpID8gdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKS0+dmlkZW9EZXZpY2VVSURzKCkuYXQoMCkgOiBlbXB0eVN0cmlu
ZygpOworICAgIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2UgPSAhdG9JbXBsKHVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UmVmKS0+YXVkaW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpID8gdG9JbXBs
KHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkg
OiBlbXB0eVN0cmluZygpOworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiktPmFsbG93KHZpZGVvRGV2aWNlLCBhdWRpb0RldmljZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlE
LCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCkKK3sKKyAgICB0b0ltcGwodXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYpLT5hbGxvdyh0b1dURlN0cmluZyh2aWRlb0RldmljZVVJRCksIHRv
V1RGU3RyaW5nKGF1ZGlvRGV2aWNlVUlEKSk7CiB9CiAKIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERlbnkoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZikKIHsKICAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYpLT5kZW55KCk7CiB9CisKK1dLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVmKQoreworICAgIFdLTXV0YWJsZUFycmF5UmVmIGFycmF5ID0g
V0tNdXRhYmxlQXJyYXlSZWYoKTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiB0b0ltcGwodXNlck1l
ZGlhUGVybWlzc2lvblJlZiktPnZpZGVvRGV2aWNlVUlEcygpKSB7CisgICAgICAgIFN0cmluZyBk
ZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5nZXREZXZpY2VOYW1l
Rm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsK
KyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVh
dGUoZGV2aWNlTmFtZSkucHRyKCkpKTsKKyAgICB9CisgICAgcmV0dXJuIGFycmF5OworfQorCitX
S0FycmF5UmVmIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlZikKK3sK
KyAgICBXS011dGFibGVBcnJheVJlZiBhcnJheSA9IFdLTXV0YWJsZUFycmF5UmVmKCk7CisgICAg
Zm9yIChhdXRvJiBuYW1lIDogdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZWYpLT5hdWRpb0Rl
dmljZVVJRHMoKSkgeworICAgICAgICBTdHJpbmcgZGV2aWNlTmFtZSA9IHRvSW1wbCh1c2VyTWVk
aWFQZXJtaXNzaW9uUmVmKS0+Z2V0RGV2aWNlTmFtZUZvclVJRChuYW1lLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyk7CisgICAgICAgIFdLQXJyYXlBcHBlbmRJdGVt
KGFycmF5LCB0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKGRldmljZU5hbWUpLnB0cigpKSk7Cisg
ICAgfQorICAgIHJldHVybiBhcnJheTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4
IDU0NWQzMTg5NTg4YmExMWNjMzNmYTAzY2NiNWZjZWE1NmNlNWNmYzEuLmM5ZWVhZTM0MmRlYjZl
NDI1MjUyMTBkYTE5YmFmMDUwNzI3ZWVlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaApA
QCAtMjcsOSArMjcsMTMgQEAgZXh0ZXJuICJDIiB7CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CiAKLVdLX0VYUE9SVCB2b2lkIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxv
d0Jlc3QoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQgdm9pZCBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiwgV0tTdHJpbmdSZWYgdmlkZW9EZXZpY2VVSUQsIFdLU3RyaW5nUmVmIGF1ZGlvRGV2
aWNlVUlEKTsKIFdLX0VYUE9SVCB2b2lkIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55
KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpOwogCitXS19FWFBPUlQgV0tBcnJheVJl
ZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDI1MDM4YTQ0ODExZTJlYjA3NGQ5NzZm
N2NjNGVjMWJkYjYzNDVlYWUuLjdkMjRhMjY4MTY2YWZkYzMzMDM5ZDZiNDM2MWZkNzFmMTBkMTI3
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTcwLDcg
KzcwLDI1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxs
b3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlCiAgICAgICAgIHJldHVybjsKIAogICAg
IHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Ci0gICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coKTsK
KworICAgIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2UgPSAhcHJpdi0+cmVxdWVzdC0+dmlkZW9E
ZXZpY2VVSURzKCkuaXNFbXB0eSgpID8gcHJpdi0+cmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCku
YXQoMCkgOiBlbXB0eVN0cmluZygpOworICAgIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2UgPSAh
cHJpdi0+cmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpID8gcHJpdi0+cmVxdWVz
dC0+YXVkaW9EZXZpY2VVSURzKCkuYXQoMCkgOiBlbXB0eVN0cmluZygpOworICAgIAorICAgIHBy
aXYtPnJlcXVlc3QtPmFsbG93KHZpZGVvRGV2aWNlLCBhdWRpb0RldmljZSk7Cit9CisKK3N0YXRp
YyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlz
c2lvblJlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHZpZGVvRGV2aWNlVUlELCBjb25zdCBj
aGFyKiBhdWRpb0RldmljZVVJRCkKK3sKKyAgICBBU1NFUlQoV0VCS0lUX0lTX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKTsKKworICAgIFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9VU0VSX01FRElBX1BFUk1JU1NJT05f
UkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEg
dGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOworICAgIHByaXYtPnJlcXVlc3QtPmFsbG93KFN0
cmluZzo6ZnJvbVVURjgodmlkZW9EZXZpY2VVSUQpLCBTdHJpbmc6OmZyb21VVEY4KGF1ZGlvRGV2
aWNlVUlEKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0RGVueShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDVkYzhiMzIxNjZiYTllM2EyNmRmOTBiYzIzZWJj
M2I4YmQ4OWJmOGUuLjdiYmNlNTlhMzY4Yzg3OTk4NTIzMTc3ZTk4MDBhMmNmOGNiOWFjYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBQ
YXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclBybwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0K
IAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwgYm9vbCBh
bGxvd2VkKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlk
UmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCB1c2VyTWVkaWFJRCwg
Ym9vbCBhbGxvd2VkLCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcm
IGF1ZGlvRGV2aWNlVUlEKQogewogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNTQsOCArNTQsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaQogICAgICAg
ICByZXR1cm47CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIC8vIEZJWE1FKDE0NzA2
Mik6IE5lZWQgdG8gYWRkIGluIHRoZSBzdXBwb3J0IGZvciBTYWZhcmkgdG8gcGFzcyBzdHJpbmdz
IGdpdmVuIGZyb20gdXNlcidzIGRlY2lzaW9uIG9uIHdoYXQgcGllY2Ugb2YgbWVkaWEgdG8gb3Bl
bgotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgIiIsICIi
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odXNlck1lZGlh
SUQsIGFsbG93ZWQsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCksIG1fcGFnZS5wYWdl
SUQoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBlMDNkY2I4MTU0NTI5YTZlYmZhMzY0ZWM0
YzY2YzY4MjhkNWI4NTMxLi4wMzQ0MWY0ODkyMjEwYmFhZDNkMmMwYWMwZjY3OTJjOWE5MjUxNDQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMzYsNyArMzYsNyBAQCBw
dWJsaWM6CiAgICAgUGFzc1JlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBj
cmVhdGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGF1ZGlvLCBib29sIHZpZGVv
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc1ZpZGVvLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZGV2aWNlVUlEc0F1ZGlvKTsKIAogICAgIC8vIENhbGxlZCBieSBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1c2VyLgot
ICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCwg
Ym9vbCBhbGxvdyk7CisgICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90LCBib29sIGFsbG93LCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBj
b25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGlu
Z1JlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCmluZGV4IGMzNTA5YmUxNTM5ZjExNmZh
YTMyMGM4MDUxMTRjZGZlYTE0MWE5OWMuLjUyNzE3ZGY3ZDQ0MjUxODMwN2Y4OWFmYzNlZjI3ZTZj
N2U2NWUxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTM2LDE0ICszNiwxNCBAQCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5KFVzZXJNZWRpYVBlcm1pcwogewogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmFsbG93KCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6YWxsb3coY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRp
b0RldmljZVVJRCkKIHsKLSAgICBtX21hbmFnZXIuZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Np
b25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlKTsKKyAgICBtX21hbmFnZXIuZGlkUmVjZWl2
ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCB0cnVlLCB2aWRlb0Rl
dmljZVVJRCwgYXVkaW9EZXZpY2VVSUQpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmRlbnkoKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlKTsKKyAgICBtX21hbmFnZXIu
ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbihtX3VzZXJNZWRpYUlELCBmYWxz
ZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRl
eCA5ZmFkNzY3ZGJmYzZhYzRmNWQyMWMyMzMyY2YzNzJjYTBkNTk5NTFhLi40ZDBjZmZlYmJiY2Zi
Njc0ZmEwZDc4ZjQ1OTk5NjM3NDg1YmE1ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTM2
LDcgKzM2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIHJlcXVpcmVzQXVk
aW8sIHJlcXVpcmVzVmlkZW8sIGRldmljZVVJRHNWaWRlbywgZGV2aWNlVUlEc0F1ZGlvKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgYWxsb3coY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CiAgICAgdm9pZCBk
ZW55KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA1NWExMWZmZjVjOTkyYWY3ZGQ2OWJm
Y2U2NDBhZTNiNTNjMTFiNTgyLi4xMzU1ZDYzYjliNTA3NTFhMjFmYTI4YTRhM2M0ZDgxZmJhOTE3
ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpCiAgICAgbV9yZXF1
ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CiAKICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAg
cmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgICAgICByZXF1ZXN0LT51c2Vy
TWVkaWFBY2Nlc3NHcmFudGVkKGRldmljZVVJRFZpZGVvLCBkZXZpY2VVSURBdWRpbyk7CiAgICAg
ZWxzZQogICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKaW5kZXggMjMw
MDkyY2Q0OGMxOWIzMTcyODRiNjlmNjcyNjk2ZmRmN2E4NjYyZS4uNjJkZjIyZDE1NDM4ZDczMGE1
ZDY3NjFiODcxNjNjMWZhMjlmM2ZjZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIGJvb2wgZG9u
ZTsKIAogdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxC
YWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogLyog
Y2xpZW50SW5mbyAqLykKIHsKLSAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3co
cGVybWlzc2lvblJlcXVlc3QpOworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxv
d0Jlc3QocGVybWlzc2lvblJlcXVlc3QpOwogICAgIGRvbmUgPSB0cnVlOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDhkYTQzZTY1MGZhY2M1N2Vj
NTc0YzI2ZmU2OTdhOGY4MGJmYzQ2ZDQuLjJiOTA3ZDJlM2M5N2RkOTI1YmM3ZjUzZGViZDM5ODAy
Y2I2YzI2YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAi
U3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRl
IDxXZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3Rl
bmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAg
LTE0OTIsOSArMTQ5MywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykg
ewotICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKQotICAgICAgICAg
ICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAg
ICAgICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsK
KyAgICAgICAgICAgIGlmIChXS0FycmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSkgJiYgV0tBcnJheUdldFNpemUoV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSkp
KQorICAgICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhyZXF1
ZXN0LmdldCgpLCByZWludGVycHJldF9jYXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0
SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8ocmVxdWVz
dC5nZXQoKSksIDApKSwgcmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0
ZW1BdEluZGV4KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZXZpY2VOYW1lc0F1ZGlvKHJl
cXVlc3QuZ2V0KCkpLCAwKSkpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFdLVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3QuZ2V0KCkpOwogICAgIH0KICAgICBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258866</attachid>
            <date>2015-08-12 18:28:49 -0700</date>
            <delta_ts>2015-08-12 19:57:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150812182831.patch</filename>
            <type>text/plain</type>
            <size>22781</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE2NDY1NDRmOTcyZmEx
NzYyNDIxN2VkMTdiZDI3ZWQzZDFjNjZmOC4uZmE3NDdjOWE3ZjRhNmRiYjIzN2Q5ZTYxMmI0ZTI3
MWVjZmU1MDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTEyICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZXJNZWRpYVJlcXVl
c3Qgc2hvdWxkIHN1cHBseSBJRHMgb2YgZGV2aWNlcyBzZWxlY3RlZCBieSB1c2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAy
MDE1LTA4LTEyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBD
YWNoZWRSZXNvdXJjZSBsZWFrIGluIHZhbGlkYXRpb24gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDQ5NDNiYWY5M2VjM2ViMGQ5ZjJlMjJlN2NlMjA2NGU2NmRlMzQ4MWIuLjc2ODhhZTZjMjVlNmRh
NjAwMzZmNTc1OGJjNmJlMjMxMzkxZGUxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxNS0wOC0xMiAgTWF0dGhldyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmlsaXR5IGZyb20gV2ViS2l0MiB0byBjbGll
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxv
d10pOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvd0RldmljZVdp
dGhWaWRlb1VJRDphbmRBdWRpb1VJRDpdKToKKworCiAyMDE1LTA4LTEwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWxpZ24gV2ViS2l0MSdzIFBhZ2VDYWNoZSBz
aXplIHdpdGggV2ViS2l0MidzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDUyOWNlYTNlNGEwZGU1ODQ2NGQzZjY5
ZGM2NmEyZDVlNDhiYTljZC4uYjY0ZWFiNGM2ZjhhMDZjZTkwMWU1ZmJhMTMzZjlkNTA2NWY3NTk4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTEyICBNYXR0aGV3IERhaXRl
ciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNlIHF1ZXJ5IGFi
aWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5
ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6Cisg
ICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6Cisg
ICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24pOgorCisKIDIwMTUtMDgtMTIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOb3QgcmVjZWl2aW5nIHJlc3BvbnNlcyBmb3Ig
YXN5bmMgcmVxdWVzdCBJbmRleGVkREIucmVxdWVzdERhdGFiYXNlTmFtZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CmluZGV4IGNlY2YxM2ZlYjI0NGIzNTMxZWM0ZjVmYzE3NjVlZTI2OTUzNmViZWIuLmMzYTM2OGE0
NDhhZTIyMmFkYTU2M2FlMzgwNTVkYzg4ZWY0N2RiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTQz
LDggKzE0MywxMCBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVk
KGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVk
aWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRl
b0RldmljZVVJRCA9IHZpZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQg
PSBhdWRpb0RldmljZVVJRDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVk
VGhpcyh0aGlzKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAg
ICAgIC8vIDMgLSB0aGUgdXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0
ZSB0aGUgbWVkaWEgc3RyZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBlOWY5ZWU1Y2Yz
NWYwYjUzMzIzOGQzZjM5NDhkYjMwYTVlZjY2YzkwLi40MTliOTE3ZWRiOWUxZmI0N2YwNzY3MGEy
NjZmNjVlNmI5YWY3ZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAKICAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9E
ZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVk
KCk7CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29u
c3RyYWludHM7IH0KQEAgLTc0LDYgKzc0LDkgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRGV2
aWNlVUlEczsgfQogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMoKSBj
b25zdCB7IHJldHVybiBtX2F1ZGlvRGV2aWNlVUlEczsgfQorICAgIAorICAgIGNvbnN0IFN0cmlu
ZyYgZmlyc3RWaWRlb0RldmljZVVJRCgpIGNvbnN0IHsgcmV0dXJuICF2aWRlb0RldmljZVVJRHMo
KS5pc0VtcHR5KCkgPyB2aWRlb0RldmljZVVJRHMoKS5hdCgwKSA6IGVtcHR5U3RyaW5nKCk7IH0K
KyAgICBjb25zdCBTdHJpbmcmIGZpcnN0QXVkaW9EZXZpY2VVSUQoKSBjb25zdCB7IHJldHVybiAh
YXVkaW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpID8gYXVkaW9EZXZpY2VVSURzKCkuYXQoMCkgOiBl
bXB0eVN0cmluZygpOyB9CiAKIHByaXZhdGU6CiAgICAgVXNlck1lZGlhUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiB2aWRlb0NvbnN0cmFpbnRzLCBNZWRpYURldmljZXM6OlByb21pc2UmJik7CkBAIC05NCw2ICs5
Nyw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1f
Y2hvc2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7
CisgICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVk
aWFEZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aAppbmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZj
YTRmZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsK
IAotICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xl
dG9uKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRm
YTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0
MzE1MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJl
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAg
ICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBt
X3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1
YjM1M2YuLjNmZmE2Y2YwMjA5MzM2YjUwZmM0YjA0MjEwZGM2NDIwMjQyM2JkMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChp
ZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4p
cmVxdWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lk
KWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlv
VUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0x
NTIsOCArMTUyLDIzIEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBp
ZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CisgICAgCisgICAgY29uc3QgU3RyaW5nJiB2
aWRlb1VJRCA9IF9yZXF1ZXN0LT5maXJzdFZpZGVvRGV2aWNlVUlEKCk7CisgICAgY29uc3QgU3Ry
aW5nJiBhdWRpb1VJRCA9IF9yZXF1ZXN0LT5maXJzdEF1ZGlvRGV2aWNlVUlEKCk7CisgICAgCisg
ICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQodmlkZW9VSUQsIGF1ZGlvVUlEKTsK
KyAgICBSZW1vdmVSZXF1ZXN0RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CisjZW5kaWYKK30KIAot
ICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CistICh2b2lkKWFsbG93RGV2
aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25z
dCBTdHJpbmcmKWF1ZGlvVUlECit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAo
IV9yZXF1ZXN0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgX3JlcXVlc3QtPnVzZXJNZWRp
YUFjY2Vzc0dyYW50ZWQodmlkZW9VSUQsIGF1ZGlvVUlEKTsKKyAgICAKICAgICBSZW1vdmVSZXF1
ZXN0RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcAppbmRleCAwNWZkM2U2MjhhZmYzYTAzZDE1NGFmZTI0OTZkODU5ZDMyMDMzMzIz
Li5jNWFhNzFhOGZiNjE5OWQ2MzczMTg4ZTlmOWRlMzRhNjMyYTZjODQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCkBAIC0yMSw2ICsyMSw5IEBACiAKICNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV0tBcnJheS5oIgorI2luY2x1ZGUgIldLTXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAi
V0tTdHJpbmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjksMTIgKzMyLDUw
IEBAIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogICAg
IHJldHVybiB0b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsK
IH0KIAotdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKKwordm9p
ZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgY29u
c3QgU3RyaW5nJiB2aWRlb0RldmljZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZiktPmZpcnN0VmlkZW9EZXZpY2VVSUQoKTsKKyAgICBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlID0gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+Zmlyc3RBdWRpb0Rl
dmljZVVJRCgpOworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFs
bG93KHZpZGVvRGV2aWNlLCBhdWRpb0RldmljZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0
cmluZ1JlZiBhdWRpb0RldmljZVVJRCkKIHsKLSAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYpLT5hbGxvdygpOworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmco
YXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmRlbnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVB
cnJheVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgU3RyaW5nIGRldmljZU5hbWUg
PSB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFt
ZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBX
S0FycmF5QXBwZW5kSXRlbShhcnJheSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShkZXZpY2VO
YW1lKS5wdHIoKSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CisKK1dLQXJyYXlSZWYg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8oV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKQoreworICAgIFdLTXV0
YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYoKTsKKyAgICBmb3IgKGF1dG8m
IG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmF1ZGlvRGV2aWNlVUlEcygp
KSB7CisgICAgICAgIFN0cmluZyBkZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIHRv
QVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoZGV2aWNlTmFtZSkucHRyKCkpKTsKKyAgICB9CisgICAg
cmV0dXJuIGFycmF5OworfQorCitXS1N0cmluZ1JlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0Rmlyc3RWaWRlb0RldmljZVVJRChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVz
ZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7CisgICAgcmV0dXJuICF0b0ltcGwodXNlck1lZGlhUGVy
bWlzc2lvblJlZiktPnZpZGVvRGV2aWNlVUlEcygpLmlzRW1wdHkoKSA/IHJlaW50ZXJwcmV0X2Nh
c3Q8V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKSwgMCkpIDog
cmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4oV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIiIpKTsKK30KKworV0tTdHJpbmdSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEZp
cnN0QXVkaW9EZXZpY2VVSUQoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVk
aWFQZXJtaXNzaW9uUmVmKQoreworICAgIHJldHVybiAhdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpLT5hdWRpb0RldmljZVVJRHMoKS5pc0VtcHR5KCkgPyByZWludGVycHJldF9jYXN0PFdL
U3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERldmljZU5hbWVzQXVkaW8odXNlck1lZGlhUGVybWlzc2lvblJlZiksIDApKSA6IHJlaW50
ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIi
KSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAppbmRleCA1NDVkMzE4OTU4OGJhMTFjYzMz
ZmEwM2NjYjVmY2VhNTZjZTVjZmMxLi45MGFhMzIwNGY1YjBlMjk3MTM3NzUzOGJiNjNlOTMyOTFi
OTVkOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTI3LDkgKzI3LDE2IEBAIGV4
dGVybiAiQyIgewogCiBXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEdldFR5cGVJRCgpOwogCi1XS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQg
dm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVm
IHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBPUlQg
dm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
Zik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKyAgICAKK1dL
X0VYUE9SVCBXS1N0cmluZ1JlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Rmlyc3RWaWRl
b0RldmljZVVJRChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Rmlyc3RBdWRpb0RldmljZVVJ
RChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRl
eCAyNTAzOGE0NDgxMWUyZWIwNzRkOTc2ZjdjYzRlYzFiZGI2MzQ1ZWFlLi4wYmZlMzI0OWIxMGZk
YmYyMGU2ZDk5MDcyNmMzMTRjMzI2N2MxMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwCkBAIC03MCw3ICs3MCwyNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1
ZQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwotICAg
IHByaXYtPnJlcXVlc3QtPmFsbG93KCk7CisKKyAgICBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
ID0gcHJpdi0+cmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkuZmlyc3RWaWRlb0RldmljZVVJRCgp
OworICAgIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2UgPSBwcml2LT5yZXF1ZXN0LT5hdWRpb0Rl
dmljZVVJRHMoKS5maXJzdEF1ZGlvRGV2aWNlVUlEKCk7CisgICAgCisgICAgcHJpdi0+cmVxdWVz
dC0+YWxsb3codmlkZW9EZXZpY2UsIGF1ZGlvRGV2aWNlKTsKK30KKworc3RhdGljIHZvaWQgd2Vi
a2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVz
dCogcmVxdWVzdCwgY29uc3QgY2hhciogdmlkZW9EZXZpY2VVSUQsIGNvbnN0IGNoYXIqIGF1ZGlv
RGV2aWNlVUlEKQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJl
cXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAg
IGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPm1h
ZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3coU3RyaW5nOjpmcm9t
VVRGOCh2aWRlb0RldmljZVVJRCksIFN0cmluZzo6ZnJvbVVURjgoYXVkaW9EZXZpY2VVSUQpKTsK
IH0KIAogc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KFdl
YktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUzYTI2ZGY5MGJjMjNlYmMzYjhiZDg5YmY4
ZS4uN2JiY2U1OWEzNjhjODc5OTg1MjMxNzdlOTgwMGEyY2Y4Y2I5YWNjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93ZWQpCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlVXNl
ck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBib29sIGFsbG93
ZWQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZp
Y2VVSUQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBA
IC01NCw4ICs1NCw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpCiAgICAgICAgIHJldHVybjsK
IAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgLy8gRklYTUUoMTQ3MDYyKTogTmVlZCB0
byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9yIFNhZmFyaSB0byBwYXNzIHN0cmluZ3MgZ2l2ZW4gZnJv
bSB1c2VyJ3MgZGVjaXNpb24gb24gd2hhdCBwaWVjZSBvZiBtZWRpYSB0byBvcGVuCi0gICAgbV9w
YWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxvd2VkLCAiIiwgIiIpLCBtX3BhZ2Uu
cGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbih1c2VyTWVkaWFJRCwgYWxsb3dl
ZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oCmluZGV4IGUwM2RjYjgxNTQ1MjlhNmViZmEzNjRlYzRjNjZjNjgyOGQ1
Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFkM2QyYzBhYzBmNjc5MmM5YTkyNTE0NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVl
c3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8sIGJvb2wgdmlkZW8sIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZp
Y2VVSURzQXVkaW8pOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUgYnkgdGhlIHVzZXIuCi0gICAgdm9pZCBk
aWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmlu
ZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggYzM1MDliZTE1MzlmMTE2ZmFhMzIwYzgwNTEx
NGNkZmVhMTQxYTk5Yy4uNTI3MTdkZjdkNDQyNTE4MzA3Zjg5YWZjM2VmMjdlNmM3ZTY1ZTEyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzYsMTQgKzM2LDE0IEBAIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNl
ck1lZGlhUGVybWlzCiB7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6YWxsb3coKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyhj
b25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlE
KQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KG1fdXNlck1lZGlhSUQsIHRydWUpOworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlh
UGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUsIHZpZGVvRGV2aWNlVUlELCBh
dWRpb0RldmljZVVJRCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5hZ2VyLmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9u
RGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UpOworICAgIG1fbWFuYWdlci5kaWRSZWNlaXZl
VXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIGZhbHNlLCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjppbnZhbGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCmluZGV4IDlmYWQ3Njdk
YmZjNmFjNGY1ZDIxYzIzMzJjZjM3MmNhMGQ1OTk1MWEuLjE2ODUyYmIwOWE4ODQ4Mjk1Yjc3NjI2
ZmVjNzEyMDRlMTgzOTM0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMzYsNyArMzYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgcmVxdWlyZXNBdWRpbywgcmVxdWly
ZXNWaWRlbywgZGV2aWNlVUlEc1ZpZGVvLCBkZXZpY2VVSURzQXVkaW8pKTsKICAgICB9CiAKLSAg
ICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBhbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
VUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICB2b2lkIGRlbnkoKTsKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpAQCAtNTAsNiArNTAsOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHZpZGVvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9EZXZpY2VVSURzOyB9CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2
aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9kZXZpY2VVSURzOyB9CisgICAgCisgICAg
Y29uc3QgU3RyaW5nJiBmaXJzdFZpZGVvRGV2aWNlVUlEKCkgY29uc3QgeyByZXR1cm4gIXZpZGVv
RGV2aWNlVUlEcygpLmlzRW1wdHkoKSA/IHZpZGVvRGV2aWNlVUlEcygpLmF0KDApIDogZW1wdHlT
dHJpbmcoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgZmlyc3RBdWRpb0RldmljZVVJRCgpIGNvbnN0
IHsgcmV0dXJuICFhdWRpb0RldmljZVVJRHMoKS5pc0VtcHR5KCkgPyBhdWRpb0RldmljZVVJRHMo
KS5hdCgwKSA6IGVtcHR5U3RyaW5nKCk7IH0KIAogcHJpdmF0ZToKICAgICBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgcmVxdWlyZXNBdWRpbywgYm9vbCByZXF1aXJl
c1ZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc1ZpZGVvLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZGV2aWNlVUlEc0F1ZGlvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA1NWExMWZmZjVjOTkyYWY3ZGQ2OWJmY2U2
NDBhZTNiNTNjMTFiNTgyLi4xMzU1ZDYzYjliNTA3NTFhMjFmYTI4YTRhM2M0ZDgxZmJhOTE3ZGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpCiAgICAgbV9yZXF1ZXN0
VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CiAKICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAgcmVx
dWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAgICAgICByZXF1ZXN0LT51c2VyTWVk
aWFBY2Nlc3NHcmFudGVkKGRldmljZVVJRFZpZGVvLCBkZXZpY2VVSURBdWRpbyk7CiAgICAgZWxz
ZQogICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NEZW5pZWQoKTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVkaWEuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKaW5kZXggMjMwMDky
Y2Q0OGMxOWIzMTcyODRiNjlmNjcyNjk2ZmRmN2E4NjYyZS4uNjJkZjIyZDE1NDM4ZDczMGE1ZDY3
NjFiODcxNjNjMWZhMjlmM2ZjZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1VzZXJNZWRpYS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIGJvb2wgZG9uZTsK
IAogdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNr
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogLyogY2xp
ZW50SW5mbyAqLykKIHsKLSAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVy
bWlzc2lvblJlcXVlc3QpOworICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvd0Jl
c3QocGVybWlzc2lvblJlcXVlc3QpOwogICAgIGRvbmUgPSB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDhkYTQzZTY1MGZhY2M1N2VjNTc0
YzI2ZmU2OTdhOGY4MGJmYzQ2ZDQuLmM3Mjk1ODZiZDMxNDBjNDUyZDc0Yzg4YmI4OTUwYzZmZjBj
MWZkNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3Ry
aW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdEludm9jYXRpb24uaCIKKyNpbmNsdWRlIDxX
ZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVy
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTE0
OTIsOSArMTQ5MywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cykgewot
ICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBlcm1pc3Npb25BbGxvd2VkKQotICAgICAgICAgICAg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHJlcXVlc3QuZ2V0KCkpOwotICAgICAg
ICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVybWlzc2lvbkFsbG93ZWQpIHsKKyAg
ICAgICAgICAgIGlmIChXS0FycmF5R2V0U2l6ZShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSkgfHwgV0tBcnJheUdldFNpemUoV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8ocmVxdWVzdC5nZXQoKSkpKQor
ICAgICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhyZXF1ZXN0
LmdldCgpLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Rmlyc3RWaWRlb0RldmljZVVJRChy
ZXF1ZXN0LmdldCgpKSwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEZpcnN0QXVkaW9EZXZp
Y2VVSUQocmVxdWVzdC5nZXQoKSkpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFdLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3QuZ2V0KCkpOwogICAgIH0KICAgICBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258876</attachid>
            <date>2015-08-12 19:57:42 -0700</date>
            <delta_ts>2015-08-13 10:34:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147263-20150812195724.patch</filename>
            <type>text/plain</type>
            <size>22745</size>
            <attacher name="Matthew Daiter">mdaiter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE2NDY1NDRmOTcyZmEx
NzYyNDIxN2VkMTdiZDI3ZWQzZDFjNjZmOC4uZmE3NDdjOWE3ZjRhNmRiYjIzN2Q5ZTYxMmI0ZTI3
MWVjZmU1MDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTEyICBNYXR0
aGV3IERhaXRlciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZXJNZWRpYVJlcXVl
c3Qgc2hvdWxkIHN1cHBseSBJRHMgb2YgZGV2aWNlcyBzZWxlY3RlZCBieSB1c2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vz
c0dyYW50ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svVXNlck1lZGlhQ2xpZW50TW9jay5oOgorCiAy
MDE1LTA4LTEyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBD
YWNoZWRSZXNvdXJjZSBsZWFrIGluIHZhbGlkYXRpb24gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDQ5NDNiYWY5M2VjM2ViMGQ5ZjJlMjJlN2NlMjA2NGU2NmRlMzQ4MWIuLjc2ODhhZTZjMjVlNmRh
NjAwMzZmNTc1OGJjNmJlMjMxMzkxZGUxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxNS0wOC0xMiAgTWF0dGhldyBEYWl0ZXIgIDxtZGFpdGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBMaW5raW5nIGRldmljZSBxdWVyeSBhYmlsaXR5IGZyb20gV2ViS2l0MiB0byBjbGll
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcy
NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxOTgzMzQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxv
d10pOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvd0RldmljZVdp
dGhWaWRlb1VJRDphbmRBdWRpb1VJRDpdKToKKworCiAyMDE1LTA4LTEwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWxpZ24gV2ViS2l0MSdzIFBhZ2VDYWNoZSBz
aXplIHdpdGggV2ViS2l0MidzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDUyOWNlYTNlNGEwZGU1ODQ2NGQzZjY5
ZGM2NmEyZDVlNDhiYTljZC4uYjY0ZWFiNGM2ZjhhMDZjZTkwMWU1ZmJhMTMzZjlkNTA2NWY3NTk4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA4LTEyICBNYXR0aGV3IERhaXRl
ciAgPG1kYWl0ZXJAYXBwbGUuY29tPgorCisgICAgICAgIExpbmtpbmcgZGV2aWNlIHF1ZXJ5IGFi
aWxpdHkgZnJvbSBXZWJLaXQyIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE5
ODMzNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6Cisg
ICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyk6Cisg
ICAgICAgIChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNBdWRpbyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lvbik6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OmRlbnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNp
b24pOgorCisKIDIwMTUtMDgtMTIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOb3QgcmVjZWl2aW5nIHJlc3BvbnNlcyBmb3Ig
YXN5bmMgcmVxdWVzdCBJbmRleGVkREIucmVxdWVzdERhdGFiYXNlTmFtZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
CmluZGV4IGNlY2YxM2ZlYjI0NGIzNTMxZWM0ZjVmYzE3NjVlZTI2OTUzNmViZWIuLmMzYTM2OGE0
NDhhZTIyMmFkYTU2M2FlMzgwNTVkYzg4ZWY0N2RiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTQz
LDggKzE0MywxMCBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnN0cmFpbnRzVmFsaWRhdGVk
KGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdQogICAgIH0pOwogfQogCi12b2lk
IFVzZXJNZWRpYVJlcXVlc3Q6OnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQoKQordm9pZCBVc2VyTWVk
aWFSZXF1ZXN0Ojp1c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZp
Y2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CisgICAgbV9jaG9zZW5WaWRl
b0RldmljZVVJRCA9IHZpZGVvRGV2aWNlVUlEOworICAgIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQg
PSBhdWRpb0RldmljZVVJRDsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gcHJvdGVjdGVk
VGhpcyh0aGlzKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzXSB7CiAgICAg
ICAgIC8vIDMgLSB0aGUgdXNlciBncmFudGVkIGFjY2VzcywgYXNrIHBsYXRmb3JtIHRvIGNyZWF0
ZSB0aGUgbWVkaWEgc3RyZWFtIGRlc2NyaXB0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBlOWY5ZWU1Y2Yz
NWYwYjUzMzIzOGQzZjM5NDhkYjMwYTVlZjY2YzkwLi40MTliOTE3ZWRiOWUxZmI0N2YwNzY3MGEy
NjZmNjVlNmI5YWY3ZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAKICAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFB
Y2Nlc3NHcmFudGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nlc3NH
cmFudGVkKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9E
ZXZpY2VVSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzRGVuaWVk
KCk7CiAKICAgICBib29sIHJlcXVpcmVzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ29u
c3RyYWludHM7IH0KQEAgLTc0LDYgKzc0LDkgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRGV2
aWNlVUlEczsgfQogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMoKSBj
b25zdCB7IHJldHVybiBtX2F1ZGlvRGV2aWNlVUlEczsgfQorICAgIAorICAgIGNvbnN0IFN0cmlu
ZyYgZmlyc3RWaWRlb0RldmljZVVJRCgpIGNvbnN0IHsgcmV0dXJuICF2aWRlb0RldmljZVVJRHMo
KS5pc0VtcHR5KCkgPyB2aWRlb0RldmljZVVJRHMoKS5hdCgwKSA6IGVtcHR5U3RyaW5nKCk7IH0K
KyAgICBjb25zdCBTdHJpbmcmIGZpcnN0QXVkaW9EZXZpY2VVSUQoKSBjb25zdCB7IHJldHVybiAh
YXVkaW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpID8gYXVkaW9EZXZpY2VVSURzKCkuYXQoMCkgOiBl
bXB0eVN0cmluZygpOyB9CiAKIHByaXZhdGU6CiAgICAgVXNlck1lZGlhUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiB2aWRlb0NvbnN0cmFpbnRzLCBNZWRpYURldmljZXM6OlByb21pc2UmJik7CkBAIC05NCw2ICs5
Nyw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0RldmljZVVJRHM7CiAgICAgCisgICAgU3RyaW5nIG1f
Y2hvc2VuVmlkZW9EZXZpY2VVSUQ7CisgICAgU3RyaW5nIG1fY2hvc2VuQXVkaW9EZXZpY2VVSUQ7
CisgICAgCiAgICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogCiAgICAgTWVk
aWFEZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aAppbmRleCBiNmQ0YzAwMjAyNjgyYTdiYjQxZjNhMWY0Y2UyYzA4ZjNmNTc0MmZlLi5jMjk4OGZj
YTRmZjM0MmE4YmY2ZTAwODcxOTY5OTNjYWFkNzI1ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsK
IAotICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xl
dG9uKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU3RyZWFtQ2VudGVyKFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Vc2VyTWVkaWFDbGllbnRNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1VzZXJNZWRpYUNsaWVudE1vY2suaAppbmRleCBjZjE2OGU0Y2UxY2ZlNTRm
YTUwMDM1YWQ2N2MxNzM4MjUxZWY0MDA5Li45ZDI2ZTZiMjI3MmM2ODhjN2M0YmM0MmYzYTJiODI0
MzE1MjlmMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1VzZXJN
ZWRpYUNsaWVudE1vY2suaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJl
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3JlcXVlc3RTdWNjZXNzKQotICAgICAg
ICAgICAgbV9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CisgICAgICAgICAgICBt
X3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQobV9yZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5hdCgwKSwgbV9yZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5hdCgwKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzRGVuaWVkKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50Lm1tCmluZGV4IDE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1
YjM1M2YuLjNmZmE2Y2YwMjA5MzM2YjUwZmM0YjA0MjEwZGM2NDIwMjQyM2JkMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9CiAtIChp
ZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4p
cmVxdWVzdDsKIC0gKHZvaWQpY2FuY2VsUmVxdWVzdDsKLS0gKHZvaWQpYWxsb3c7CistICh2b2lk
KWFsbG93RGV2aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlv
VUlEOihjb25zdCBTdHJpbmcmKWF1ZGlvVUlEOwogLSAodm9pZClkZW55OwogQGVuZAogCkBAIC0x
NTIsOCArMTUyLDIzIEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxSZXF1ZXN0KFVz
ZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBp
ZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CisgICAgCisgICAgY29uc3QgU3RyaW5nJiB2
aWRlb1VJRCA9IF9yZXF1ZXN0LT5maXJzdFZpZGVvRGV2aWNlVUlEKCk7CisgICAgY29uc3QgU3Ry
aW5nJiBhdWRpb1VJRCA9IF9yZXF1ZXN0LT5maXJzdEF1ZGlvRGV2aWNlVUlEKCk7CisgICAgCisg
ICAgX3JlcXVlc3QtPnVzZXJNZWRpYUFjY2Vzc0dyYW50ZWQodmlkZW9VSUQsIGF1ZGlvVUlEKTsK
KyAgICBSZW1vdmVSZXF1ZXN0RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CisjZW5kaWYKK30KIAot
ICAgIF9yZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CistICh2b2lkKWFsbG93RGV2
aWNlV2l0aFZpZGVvVUlEOihjb25zdCBTdHJpbmcmKXZpZGVvVUlEIGFuZEF1ZGlvVUlEOihjb25z
dCBTdHJpbmcmKWF1ZGlvVUlECit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAo
IV9yZXF1ZXN0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgX3JlcXVlc3QtPnVzZXJNZWRp
YUFjY2Vzc0dyYW50ZWQodmlkZW9VSUQsIGF1ZGlvVUlEKTsKKyAgICAKICAgICBSZW1vdmVSZXF1
ZXN0RnJvbU1hcChfcmVxdWVzdC5nZXQoKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0LmNwcAppbmRleCAwNWZkM2U2MjhhZmYzYTAzZDE1NGFmZTI0OTZkODU5ZDMyMDMzMzIz
Li5jNWFhNzFhOGZiNjE5OWQ2MzczMTg4ZTlmOWRlMzRhNjMyYTZjODQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QuY3BwCkBAIC0yMSw2ICsyMSw5IEBACiAKICNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV0tBcnJheS5oIgorI2luY2x1ZGUgIldLTXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAi
V0tTdHJpbmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtMjksMTIgKzMyLDUw
IEBAIFdLVHlwZUlEIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogICAg
IHJldHVybiB0b0FQSShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpBUElUeXBlKTsK
IH0KIAotdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikKKwordm9p
ZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RSZWYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYpCit7CisgICAgY29u
c3QgU3RyaW5nJiB2aWRlb0RldmljZSA9IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFJlZiktPmZpcnN0VmlkZW9EZXZpY2VVSUQoKTsKKyAgICBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlID0gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKS0+Zmlyc3RBdWRpb0Rl
dmljZVVJRCgpOworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiktPmFs
bG93KHZpZGVvRGV2aWNlLCBhdWRpb0RldmljZSk7Cit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVmIHZpZGVvRGV2aWNlVUlELCBXS1N0
cmluZ1JlZiBhdWRpb0RldmljZVVJRCkKIHsKLSAgICB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYpLT5hbGxvdygpOworICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFJlZiktPmFsbG93KHRvV1RGU3RyaW5nKHZpZGVvRGV2aWNlVUlEKSwgdG9XVEZTdHJpbmco
YXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
RGVueShXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UmVmKQogewogICAgIHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZikt
PmRlbnkoKTsKIH0KKworV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNWaWRlbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVzZXJNZWRpYVBl
cm1pc3Npb25SZWYpCit7CisgICAgV0tNdXRhYmxlQXJyYXlSZWYgYXJyYXkgPSBXS011dGFibGVB
cnJheVJlZigpOworICAgIGZvciAoYXV0byYgbmFtZSA6IHRvSW1wbCh1c2VyTWVkaWFQZXJtaXNz
aW9uUmVmKS0+dmlkZW9EZXZpY2VVSURzKCkpIHsKKyAgICAgICAgU3RyaW5nIGRldmljZU5hbWUg
PSB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmdldERldmljZU5hbWVGb3JVSUQobmFt
ZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBX
S0FycmF5QXBwZW5kSXRlbShhcnJheSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShkZXZpY2VO
YW1lKS5wdHIoKSkpOworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7Cit9CisKK1dLQXJyYXlSZWYg
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVkaW8oV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKQoreworICAgIFdLTXV0
YWJsZUFycmF5UmVmIGFycmF5ID0gV0tNdXRhYmxlQXJyYXlSZWYoKTsKKyAgICBmb3IgKGF1dG8m
IG5hbWUgOiB0b0ltcGwodXNlck1lZGlhUGVybWlzc2lvblJlZiktPmF1ZGlvRGV2aWNlVUlEcygp
KSB7CisgICAgICAgIFN0cmluZyBkZXZpY2VOYW1lID0gdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpLT5nZXREZXZpY2VOYW1lRm9yVUlEKG5hbWUsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKTsKKyAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oYXJyYXksIHRv
QVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoZGV2aWNlTmFtZSkucHRyKCkpKTsKKyAgICB9CisgICAg
cmV0dXJuIGFycmF5OworfQorCitXS1N0cmluZ1JlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0Rmlyc3RWaWRlb0RldmljZVVJRChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHVz
ZXJNZWRpYVBlcm1pc3Npb25SZWYpCit7CisgICAgcmV0dXJuICF0b0ltcGwodXNlck1lZGlhUGVy
bWlzc2lvblJlZiktPnZpZGVvRGV2aWNlVUlEcygpLmlzRW1wdHkoKSA/IHJlaW50ZXJwcmV0X2Nh
c3Q8V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyh1c2VyTWVkaWFQZXJtaXNzaW9uUmVmKSwgMCkpIDog
cmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4oV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIiIpKTsKK30KKworV0tTdHJpbmdSZWYgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEZp
cnN0QXVkaW9EZXZpY2VVSUQoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiB1c2VyTWVk
aWFQZXJtaXNzaW9uUmVmKQoreworICAgIHJldHVybiAhdG9JbXBsKHVzZXJNZWRpYVBlcm1pc3Np
b25SZWYpLT5hdWRpb0RldmljZVVJRHMoKS5pc0VtcHR5KCkgPyByZWludGVycHJldF9jYXN0PFdL
U3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdERldmljZU5hbWVzQXVkaW8odXNlck1lZGlhUGVybWlzc2lvblJlZiksIDApKSA6IHJlaW50
ZXJwcmV0X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIi
KSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaAppbmRleCA1NDVkMzE4OTU4OGJhMTFjYzMz
ZmEwM2NjYjVmY2VhNTZjZTVjZmMxLi45MGFhMzIwNGY1YjBlMjk3MTM3NzUzOGJiNjNlOTMyOTFi
OTVkOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTI3LDkgKzI3LDE2IEBAIGV4
dGVybiAiQyIgewogCiBXS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdEdldFR5cGVJRCgpOwogCi1XS19FWFBPUlQgdm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZik7CitXS19FWFBPUlQg
dm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0QWxsb3dCZXN0KFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEFsbG93KFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYsIFdLU3RyaW5nUmVm
IHZpZGVvRGV2aWNlVUlELCBXS1N0cmluZ1JlZiBhdWRpb0RldmljZVVJRCk7CiBXS19FWFBPUlQg
dm9pZCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGVueShXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmKTsKIAorV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdERldmljZU5hbWVzVmlkZW8oV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
Zik7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2
aWNlTmFtZXNBdWRpbyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKyAgICAKK1dL
X0VYUE9SVCBXS1N0cmluZ1JlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Rmlyc3RWaWRl
b0RldmljZVVJRChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKK1dLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Rmlyc3RBdWRpb0RldmljZVVJ
RChXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRl
eCAyNTAzOGE0NDgxMWUyZWIwNzRkOTc2ZjdjYzRlYzFiZGI2MzQ1ZWFlLi5hZWVhN2E1MTY2NGVm
MTczMzBmODBkYjdjODI3YWNlNWZjYWYwNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwCkBAIC03MCw3ICs3MCwyNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1
ZQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwotICAg
IHByaXYtPnJlcXVlc3QtPmFsbG93KCk7CisKKyAgICBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNl
ID0gcHJpdi0+cmVxdWVzdC0+Zmlyc3RWaWRlb0RldmljZVVJRCgpOworICAgIGNvbnN0IFN0cmlu
ZyYgYXVkaW9EZXZpY2UgPSBwcml2LT5yZXF1ZXN0LT5maXJzdEF1ZGlvRGV2aWNlVUlEKCk7Cisg
ICAgCisgICAgcHJpdi0+cmVxdWVzdC0+YWxsb3codmlkZW9EZXZpY2UsIGF1ZGlvRGV2aWNlKTsK
K30KKworc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RBbGxvdyhX
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdmlkZW9EZXZpY2VV
SUQsIGNvbnN0IGNoYXIqIGF1ZGlvRGV2aWNlVUlEKQoreworICAgIEFTU0VSVChXRUJLSVRfSVNf
VVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVj
aXNpb24gYXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CisgICAgcHJpdi0+cmVxdWVz
dC0+YWxsb3coU3RyaW5nOjpmcm9tVVRGOCh2aWRlb0RldmljZVVJRCksIFN0cmluZzo6ZnJvbVVU
RjgoYXVkaW9EZXZpY2VVSUQpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNWRjOGIzMjE2NmJhOWUzYTI2
ZGY5MGJjMjNlYmMzYjhiZDg5YmY4ZS4uN2JiY2U1OWEzNjhjODc5OTg1MjMxNzdlOTgwMGEyY2Y4
Y2I5YWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIFBhc3NSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJvCiAgICAgcmV0dXJuIHJlcXVlc3QucmVs
ZWFzZSgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBib29sIGFsbG93ZWQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNv
bnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm47CkBAIC01NCw4ICs1NCw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVj
aXNpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgLy8g
RklYTUUoMTQ3MDYyKTogTmVlZCB0byBhZGQgaW4gdGhlIHN1cHBvcnQgZm9yIFNhZmFyaSB0byBw
YXNzIHN0cmluZ3MgZ2l2ZW4gZnJvbSB1c2VyJ3MgZGVjaXNpb24gb24gd2hhdCBwaWVjZSBvZiBt
ZWRpYSB0byBvcGVuCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpEaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKHVzZXJNZWRpYUlELCBhbGxv
d2VkLCAiIiwgIiIpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVVzZXJNZWRpYVBlcm1pc3Npb25EZWNpc2lv
bih1c2VyTWVkaWFJRCwgYWxsb3dlZCwgdmlkZW9EZXZpY2VVSUQsIGF1ZGlvRGV2aWNlVUlEKSwg
bV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGUwM2RjYjgxNTQ1Mjlh
NmViZmEzNjRlYzRjNjZjNjgyOGQ1Yjg1MzEuLjAzNDQxZjQ4OTIyMTBiYWFkM2QyYzBhYzBmNjc5
MmM5YTkyNTE0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0zNiw3
ICszNiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgYXVkaW8s
IGJvb2wgdmlkZW8sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzVmlkZW8sIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkZXZpY2VVSURzQXVkaW8pOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgd2hlbiBhIGRlY2lzaW9uIGlzIG1hZGUgYnkg
dGhlIHVzZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90LCBib29sIGFsbG93KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VyTWVkaWFQZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QsIGJvb2wgYWxsb3csIGNvbnN0IFN0cmluZyYgdmlkZW9E
ZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQpOwogCiBwcml2YXRlOgogICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggYzM1MDli
ZTE1MzlmMTE2ZmFhMzIwYzgwNTExNGNkZmVhMTQxYTk5Yy4uNTI3MTdkZjdkNDQyNTE4MzA3Zjg5
YWZjM2VmMjdlNmM3ZTY1ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzYsMTQg
KzM2LDE0IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzCiB7CiB9CiAKLXZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjphbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlVUlEKQogewotICAgIG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1l
ZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRydWUpOworICAgIG1fbWFuYWdl
ci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1lZGlhSUQsIHRy
dWUsIHZpZGVvRGV2aWNlVUlELCBhdWRpb0RldmljZVVJRCk7CiB9CiAKIHZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCiB7Ci0gICAgbV9tYW5hZ2VyLmRpZFJlY2Vp
dmVVc2VyTWVkaWFQZXJtaXNzaW9uRGVjaXNpb24obV91c2VyTWVkaWFJRCwgZmFsc2UpOworICAg
IG1fbWFuYWdlci5kaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lzaW9uKG1fdXNlck1l
ZGlhSUQsIGZhbHNlLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKTsKIH0KIAogdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oCmluZGV4IDlmYWQ3NjdkYmZjNmFjNGY1ZDIxYzIzMzJjZjM3MmNhMGQ1OTk1MWEuLjE2
ODUyYmIwOWE4ODQ4Mjk1Yjc3NjI2ZmVjNzEyMDRlMTgzOTM0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwg
cmVxdWlyZXNBdWRpbywgcmVxdWlyZXNWaWRlbywgZGV2aWNlVUlEc1ZpZGVvLCBkZXZpY2VVSURz
QXVkaW8pKTsKICAgICB9CiAKLSAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBhbGxvdyhjb25z
dCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsK
ICAgICB2b2lkIGRlbnkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpAQCAtNTAsNiArNTAs
OSBAQCBwdWJsaWM6CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHZpZGVvRGV2aWNl
VUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9EZXZpY2VVSURzOyB9CiAgICAgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9kZXZp
Y2VVSURzOyB9CisgICAgCisgICAgY29uc3QgU3RyaW5nJiBmaXJzdFZpZGVvRGV2aWNlVUlEKCkg
Y29uc3QgeyByZXR1cm4gIXZpZGVvRGV2aWNlVUlEcygpLmlzRW1wdHkoKSA/IHZpZGVvRGV2aWNl
VUlEcygpLmF0KDApIDogZW1wdHlTdHJpbmcoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgZmlyc3RB
dWRpb0RldmljZVVJRCgpIGNvbnN0IHsgcmV0dXJuICFhdWRpb0RldmljZVVJRHMoKS5pc0VtcHR5
KCkgPyBhdWRpb0RldmljZVVJRHMoKS5hdCgwKSA6IGVtcHR5U3RyaW5nKCk7IH0KIAogcHJpdmF0
ZToKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIGJvb2wgcmVxdWly
ZXNBdWRpbywgYm9vbCByZXF1aXJlc1ZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNl
VUlEc1ZpZGVvLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGV2aWNlVUlEc0F1ZGlvKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA1NWEx
MWZmZjVjOTkyYWY3ZGQ2OWJmY2U2NDBhZTNiNTNjMTFiNTgyLi4xMzU1ZDYzYjliNTA3NTFhMjFm
YTI4YTRhM2M0ZDgxZmJhOTE3ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlVXNlck1lZGlhUGVybWlzc2lvbkRlY2lz
aW9uKHVpCiAgICAgbV9yZXF1ZXN0VG9JRE1hcC5yZW1vdmUocmVxdWVzdCk7CiAKICAgICBpZiAo
YWxsb3dlZCkKLSAgICAgICAgcmVxdWVzdC0+dXNlck1lZGlhQWNjZXNzR3JhbnRlZCgpOworICAg
ICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NHcmFudGVkKGRldmljZVVJRFZpZGVvLCBkZXZp
Y2VVSURBdWRpbyk7CiAgICAgZWxzZQogICAgICAgICByZXF1ZXN0LT51c2VyTWVkaWFBY2Nlc3NE
ZW5pZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJN
ZWRpYS5jcHAKaW5kZXggMjMwMDkyY2Q0OGMxOWIzMTcyODRiNjlmNjcyNjk2ZmRmN2E4NjYyZS4u
NjJkZjIyZDE1NDM4ZDczMGE1ZDY3NjFiODcxNjNjMWZhMjlmM2ZjZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZWRpYS5jcHAKQEAgLTM0LDcgKzM0LDcg
QEAgc3RhdGljIGJvb2wgZG9uZTsKIAogdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENhbGxCYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9y
aWdpblJlZiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVz
dCwgY29uc3Qgdm9pZCogLyogY2xpZW50SW5mbyAqLykKIHsKLSAgICBXS1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworICAgIFdLVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RBbGxvd0Jlc3QocGVybWlzc2lvblJlcXVlc3QpOwogICAgIGRvbmUgPSB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDhkYTQzZTY1MGZhY2M1N2VjNTc0YzI2ZmU2OTdhOGY4MGJmYzQ2ZDQuLmM3Mjk1ODZiZDMxNDBj
NDUyZDc0Yzg4YmI4OTUwYzZmZjBjMWZkNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdEludm9j
YXRpb24uaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgogI2luY2x1ZGUgPFdlYktpdC9X
S0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuaD4KQEAgLTE0OTIsOSArMTQ5MywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdElmUG9zc2libGUoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0cykgewotICAgICAgICBpZiAobV9pc1VzZXJNZWRpYVBlcm1pc3Npb25B
bGxvd2VkKQotICAgICAgICAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdEFsbG93KHJl
cXVlc3QuZ2V0KCkpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChtX2lzVXNlck1lZGlhUGVy
bWlzc2lvbkFsbG93ZWQpIHsKKyAgICAgICAgICAgIGlmIChXS0FycmF5R2V0U2l6ZShXS1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0RGV2aWNlTmFtZXNWaWRlbyhyZXF1ZXN0LmdldCgpKSkgfHwg
V0tBcnJheUdldFNpemUoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdERldmljZU5hbWVzQXVk
aW8ocmVxdWVzdC5nZXQoKSkpKQorICAgICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RBbGxvdyhyZXF1ZXN0LmdldCgpLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
Rmlyc3RWaWRlb0RldmljZVVJRChyZXF1ZXN0LmdldCgpKSwgV0tVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdEZpcnN0QXVkaW9EZXZpY2VVSUQocmVxdWVzdC5nZXQoKSkpOworICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3Qu
Z2V0KCkpOwogICAgIH0KICAgICBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>