<?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>43239</bug_id>
          <alias>HTMLMediaCaptureAPI</alias>
          <creation_ts>2010-07-30 04:23:09 -0700</creation_ts>
          <short_desc>Support for HTML Media Capture API</short_desc>
          <delta_ts>2023-04-27 17:10:19 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=158799</see_also>
          <bug_file_loc>http://www.w3.org/TR/2011/WD-html-media-capture-20110414/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78947</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="jvn">jvnforums10</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>709922234</cc>
    
    <cc>agold</cc>
    
    <cc>chrisjshull</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gruan</cc>
    
    <cc>jay</cc>
    
    <cc>jonlee</cc>
    
    <cc>js45.yang</cc>
    
    <cc>jvnforums10</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mdaiter</cc>
    
    <cc>mitz</cc>
    
    <cc>rcombs</cc>
    
    <cc>sam</cc>
    
    <cc>skyul</cc>
    
    <cc>syoichi</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wonsuk11.lee</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>258135</commentid>
    <comment_count>0</comment_count>
    <who name="jvn">jvnforums10</who>
    <bug_when>2010-07-30 04:23:09 -0700</bug_when>
    <thetext>Add The Capture API interface to WebKit API.
This API provides access to the audio, image and video capture capabilities of the device.
http://www.w3.org/TR/2010/WD-capture-api-20100401/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261300</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-06 09:40:59 -0700</bug_when>
    <thetext>*** Bug 16474 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791262</commentid>
    <comment_count>2</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-12-13 19:57:40 -0800</bug_when>
    <thetext>*** Bug 58184 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791263</commentid>
    <comment_count>3</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-12-13 19:59:22 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Add The Capture API interface to WebKit API.
&gt; This API provides access to the audio, image and video capture capabilities of the device.
&gt; http://www.w3.org/TR/2010/WD-capture-api-20100401/

The most recent working draft is located at [1], dated December 2012.

[1] http://www.w3.org/TR/html-media-capture/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103960</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2015-06-22 17:01:40 -0700</bug_when>
    <thetext>rdar://problem/9911008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202755</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-06-15 16:48:19 -0700</bug_when>
    <thetext>*** Bug 158800 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248378</commentid>
    <comment_count>6</comment_count>
      <attachid>293962</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-04 17:03:14 -0700</bug_when>
    <thetext>Created attachment 293962
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248847</commentid>
    <comment_count>7</comment_count>
      <attachid>293962</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-07 14:35:33 -0800</bug_when>
    <thetext>Comment on attachment 293962
Proposed patch.

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:67
&gt; +- (void)_webView:(WKWebView *)webVIew checkUserMediaPermissionForURL:(NSURL *)url mainFrameURL:(NSURL *)mainFrameURL frameIdentifier:(NSUInteger)frameIdentifier decisionHandler:(void (^)(NSString *salt, BOOL authorized))decisionHandler WK_API_AVAILABLE(ios(10.3));

s/VI/Vi

&gt; Source/WebKit2/UIProcess/WKUserMediaProviderIOS.h:45
&gt; +@interface WKUserMediaProviderIOS : NSObject

Do you think it would be reasonable to have the same interface on Mac, and call this WKUserMediaProvider, and have it implemented perhaps in platform specific ways (or perhaps shared!).

&gt; Source/WebKit2/UIProcess/WKUserMediaProviderIOS.mm:56
&gt; +-(void)decidePolicyForUserMediaRequestFromOrigin:(SecurityOrigin&amp;)userMediaOrigin topLevelOrigin:(SecurityOrigin&amp;)topLevelOrigin frame:(WebFrameProxy&amp;)frame request:(UserMediaPermissionRequestProxy&amp;)permissionRequest view:(WKWebView*)view {

Space after the -, and before the star in WKWebView*

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:368
&gt; +    PageClient&amp; pageClient() { return m_pageClient; }

This is surprising. The fact that it wasn&apos;t here before suggests that maybe it shouldn&apos;t be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249120</commentid>
    <comment_count>8</comment_count>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-08 13:48:42 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 293962 [details]
&gt; Proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=293962&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:67
&gt; &gt; +- (void)_webView:(WKWebView *)webVIew checkUserMediaPermissionForURL:(NSURL *)url mainFrameURL:(NSURL *)mainFrameURL frameIdentifier:(NSUInteger)frameIdentifier decisionHandler:(void (^)(NSString *salt, BOOL authorized))decisionHandler WK_API_AVAILABLE(ios(10.3));
&gt; 
&gt; s/VI/Vi

Done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WKUserMediaProviderIOS.h:45
&gt; &gt; +@interface WKUserMediaProviderIOS : NSObject
&gt; 
&gt; Do you think it would be reasonable to have the same interface on Mac, and
&gt; call this WKUserMediaProvider, and have it implemented perhaps in platform
&gt; specific ways (or perhaps shared!).

Yes! It will have to be an interface and implemented differently on Mac and iOS because the AVFoundation APIs used in the class are platform specific, but I will make this change and implement it for iOS.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WKUserMediaProviderIOS.mm:56
&gt; &gt; +-(void)decidePolicyForUserMediaRequestFromOrigin:(SecurityOrigin&amp;)userMediaOrigin topLevelOrigin:(SecurityOrigin&amp;)topLevelOrigin frame:(WebFrameProxy&amp;)frame request:(UserMediaPermissionRequestProxy&amp;)permissionRequest view:(WKWebView*)view {
&gt; 
&gt; Space after the -, and before the star in WKWebView*

Done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.h:368
&gt; &gt; +    PageClient&amp; pageClient() { return m_pageClient; }
&gt; 
&gt; This is surprising. The fact that it wasn&apos;t here before suggests that maybe
&gt; it shouldn&apos;t be?

Hm maybe not. I exposed it because the UserMediaPermissionRequestManagerProxy is calling decidePolicyForUserMediaPermissionRequest on the page proxy&apos;s uiClient for the C API so I wanted to do something similar for the WebKit2 API, but perhaps it would make more sense to have UserMediaPermissionRequestManagerProxy call decidePolicyForUserMediaPermissionRequest on the page proxy directly and the page proxy can call the appropriate methods on the respective clients. 

Thanks for the review! V2 coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249620</commentid>
    <comment_count>9</comment_count>
      <attachid>294315</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-09 17:52:59 -0800</bug_when>
    <thetext>Created attachment 294315
Proposed patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250068</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-10 17:12:10 -0800</bug_when>
    <thetext>Attachment 294315 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKUserMediaCaptureDeviceAuthorizerIOS.mm:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
ERROR: Source/WebKit2/UIProcess/ios/WKUserMediaCaptureDeviceAuthorizerIOS.mm:11:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250077</commentid>
    <comment_count>11</comment_count>
      <attachid>294315</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-10 17:24:03 -0800</bug_when>
    <thetext>Comment on attachment 294315
Proposed patch V2

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

&gt; Source/WebKit2/UIProcess/PageClient.h:142
&gt; +    virtual WKUserMediaProvider *userMediaProvider() = 0;

You should define WKUserMediaProvider as an abstract C++ API, in a non-ObjC header,  so other ports can implement it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250394</commentid>
    <comment_count>12</comment_count>
      <attachid>294531</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-11 14:02:39 -0800</bug_when>
    <thetext>Created attachment 294531
Proposed patc v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250397</commentid>
    <comment_count>13</comment_count>
      <attachid>294532</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-11 14:03:40 -0800</bug_when>
    <thetext>Created attachment 294532
Proposed patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250419</commentid>
    <comment_count>14</comment_count>
      <attachid>294532</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-11 14:38:43 -0800</bug_when>
    <thetext>Comment on attachment 294532
Proposed patch v3

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

&gt; Source/WebKit2/UIProcess/Cocoa/WKUserMediaProviderCocoa.mm:67
&gt; +    void (^uiDelegateAuthorizationBlock)(void) = ^ {

Much of this should be in UIDelegate

&gt; Source/WebKit2/UIProcess/Cocoa/WKUserMediaProviderCocoa.mm:73
&gt; +            if ((requiresAudio!= authorizedMicrophone) || (requiresVideo != authorizedCamera)) {

space before the !=

&gt; Source/WebKit2/UIProcess/WKUserMediaProvider.h:40
&gt; +class WKUserMediaProvider {

Now that this is a C++ class in the WebKit namespace you can (should!) drop the prefix.

&gt; Source/WebKit2/UIProcess/WKUserMediaProvider.h:45
&gt; +    virtual void mediaStateDidChange(WebCore::MediaProducer::MediaStateFlags, WKWebView*) = 0;

Very surprised to see WKWebView here.

&gt; Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm:231
&gt; +WKUserMediaProvider&amp; PageClientImpl::userMediaProvider()

This all seems wrong. It should be owned by WebPageProxy, know nothing about WKWebView, and communicate with WKWebView and friends when needed via the PageClient/UIClient/etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250420</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-11 14:39:51 -0800</bug_when>
    <thetext>You may want to have Sam or Anders sit down and chat about this before going crazy making those changes, they will have Opinions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250426</commentid>
    <comment_count>16</comment_count>
      <attachid>294532</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-11 14:52:05 -0800</bug_when>
    <thetext>Comment on attachment 294532
Proposed patch v3

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

&gt; Source/WebKit2/UIProcess/Cocoa/WKUserMediaProviderCocoa.h:42
&gt; +class WKUserMediaProviderCocoa final : public WKUserMediaProvider {

No WK prefix here either.

&gt; Source/WebKit2/UIProcess/Cocoa/WKUserMediaProviderCocoa.mm:86
&gt; +    void (^cameraAuthorizationBlock)(void) = ^ {
&gt; +        if (requiresVideo) {
&gt; +            [captureDeviceAuthorizer() requestCameraAuthorization:^(BOOL authorized) {

I think instead of this mechanism, this should be the default implementation of the UIDelegate, perhaps.

&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:3265
&gt; -		7CB16FE41724B9B5007A0A95 /* com.apple.WebKit.plugin-common.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = &quot;com.apple.WebKit.plugin-common.sb.in&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		7CB16FE41724B9B5007A0A95 /* com.apple.WebKit.plugin-common.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = &quot;com.apple.WebKit.plugin-common.sb.in&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };

This shouldn&apos;t be in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251027</commentid>
    <comment_count>17</comment_count>
      <attachid>294713</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 10:48:51 -0800</bug_when>
    <thetext>Created attachment 294713
Proposed Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251032</commentid>
    <comment_count>18</comment_count>
      <attachid>294716</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 10:53:36 -0800</bug_when>
    <thetext>Created attachment 294716
Proposed Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251072</commentid>
    <comment_count>19</comment_count>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 12:09:33 -0800</bug_when>
    <thetext>Hm my patch still seems to be failing when building for Mac. I&apos;m going to make a few changes and try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251076</commentid>
    <comment_count>20</comment_count>
      <attachid>294726</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 12:11:45 -0800</bug_when>
    <thetext>Created attachment 294726
Proposed Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251143</commentid>
    <comment_count>21</comment_count>
      <attachid>294743</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 14:20:59 -0800</bug_when>
    <thetext>Created attachment 294743
Proposed Patch v5

Thanks to a little help from Eric, I think this one is going to be all green!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251171</commentid>
    <comment_count>22</comment_count>
      <attachid>294754</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 15:03:36 -0800</bug_when>
    <thetext>Created attachment 294754
Proposed Patch V6

Okay, let&apos;s try that again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251188</commentid>
    <comment_count>23</comment_count>
      <attachid>294760</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 15:34:04 -0800</bug_when>
    <thetext>Created attachment 294760
Proposed Patch V7

Aaaaand again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251257</commentid>
    <comment_count>24</comment_count>
      <attachid>294777</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-14 17:07:00 -0800</bug_when>
    <thetext>Created attachment 294777
Proposed Patch V8

Added the proper API annotations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251594</commentid>
    <comment_count>25</comment_count>
      <attachid>294777</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-15 13:32:54 -0800</bug_when>
    <thetext>Comment on attachment 294777
Proposed Patch V8

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

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:325
&gt; +    if (!delegate || !m_uiDelegate.m_delegateMethods.webViewRequestUserMediaAuthorizationForMicrophoneCameraUrlMainFrameURLDecisionHandler) {

URL or Url?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251608</commentid>
    <comment_count>26</comment_count>
      <attachid>294874</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-15 13:51:49 -0800</bug_when>
    <thetext>Created attachment 294874
Proposed Patch V9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252479</commentid>
    <comment_count>27</comment_count>
      <attachid>294874</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-11-17 15:16:00 -0800</bug_when>
    <thetext>Comment on attachment 294874
Proposed Patch V9

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

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:118
&gt; +#if PLATFORM(IOS)
&gt; +        WKUserMediaCaptureDeviceAuthorizerIOS *captureDeviceAuthorizer();
&gt; +        RetainPtr&lt;WKUserMediaCaptureDeviceAuthorizerIOS&gt; m_captureDeviceAuthorizer;
&gt; +#endif

This class really shouldn&apos;t have any data members.  Can this be merged into WebPageProxy.

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:119
&gt; +        WebCore::MediaProducer::MediaStateFlags m_mediaState { WebCore::MediaProducer::IsNotPlaying };

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:375
&gt; +    void (^cameraAuthorizationBlock)(void) = ^ {
&gt; +        if (requiresVideo) {
&gt; +            [captureDeviceAuthorizer() requestCameraAuthorization:^(BOOL authorized) {
&gt; +                if (!authorized)
&gt; +                    request.deny(UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::PermissionDenied);
&gt; +                else
&gt; +                    uiDelegateAuthorizationBlock();
&gt; +            }];
&gt; +        } else
&gt; +            uiDelegateAuthorizationBlock();
&gt; +    };
&gt; +
&gt; +    if (requiresAudio) {
&gt; +        [captureDeviceAuthorizer() requestMicrophoneAuthorization:^(BOOL authorized) {
&gt; +            if (!authorized)
&gt; +                request.deny(UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::PermissionDenied);
&gt; +            else
&gt; +                cameraAuthorizationBlock();
&gt; +        }];
&gt; +    } else
&gt; +        cameraAuthorizationBlock();

Why does this need to be iOS specific?

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:395
&gt; +    [(id &lt;WKUIDelegatePrivate&gt;)delegate _webView:webView checkUserMediaPermissionForURL:requestFrameURL mainFrameURL:mainFrameURL frameIdentifier:frame.frameID() decisionHandler:^(NSString *salt, BOOL authorized) {

It&apos;s a bit odd that you pass SecurityOrigin&apos;s to this level, but then don&apos;t use them, but rather get URLs.

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:402
&gt; +void UIDelegate::UIClient::isPlayingAudioDidChange(WebKit::WebPageProxy&amp; page)

It is really weird that isPlayingAudioDidChange is what triggers _webViewDidBeginCaptureSession/_webViewDidEndCaptureSession.  This should be re-worked to be more direct.

&gt; Source/WebKit2/UIProcess/ios/WKUserMediaCaptureDeviceAuthorizerIOS.h:28
&gt; +@interface WKUserMediaCaptureDeviceAuthorizerIOS : NSObject

As this class is not AP/SPII, it should not have the WK prefix.  I am generally confused about why this class is necessary, as it seems to store no state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252481</commentid>
    <comment_count>28</comment_count>
      <attachid>294874</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-17 15:25:31 -0800</bug_when>
    <thetext>Comment on attachment 294874
Proposed Patch V9

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

Thanks for the review!

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:118
&gt;&gt; +#endif
&gt; 
&gt; This class really shouldn&apos;t have any data members.  Can this be merged into WebPageProxy.

Will move these.

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:119
&gt;&gt; +        WebCore::MediaProducer::MediaStateFlags m_mediaState { WebCore::MediaProducer::IsNotPlaying };
&gt; 
&gt; Ditto.

Ditto.

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:375
&gt;&gt; +        cameraAuthorizationBlock();
&gt; 
&gt; Why does this need to be iOS specific?

This is iOS specific because Mac does not require apps to request permission to use media capture devices.

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:395
&gt;&gt; +    [(id &lt;WKUIDelegatePrivate&gt;)delegate _webView:webView checkUserMediaPermissionForURL:requestFrameURL mainFrameURL:mainFrameURL frameIdentifier:frame.frameID() decisionHandler:^(NSString *salt, BOOL authorized) {
&gt; 
&gt; It&apos;s a bit odd that you pass SecurityOrigin&apos;s to this level, but then don&apos;t use them, but rather get URLs.

Will refactor.

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:402
&gt;&gt; +void UIDelegate::UIClient::isPlayingAudioDidChange(WebKit::WebPageProxy&amp; page)
&gt; 
&gt; It is really weird that isPlayingAudioDidChange is what triggers _webViewDidBeginCaptureSession/_webViewDidEndCaptureSession.  This should be re-worked to be more direct.

This is what is currently being used on Mac to notify the client of a capture session beginning/ending. Should I write a new method and only call that one and let the Mac team know to change their implementation, or should I continue to call this method to let clients using the C API know of a change in state, and also call a new method to notify WK2 clients?

&gt;&gt; Source/WebKit2/UIProcess/ios/WKUserMediaCaptureDeviceAuthorizerIOS.h:28
&gt;&gt; +@interface WKUserMediaCaptureDeviceAuthorizerIOS : NSObject
&gt; 
&gt; As this class is not AP/SPII, it should not have the WK prefix.  I am generally confused about why this class is necessary, as it seems to store no state.

I will remove this class and folds its logic into UIDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252537</commentid>
    <comment_count>29</comment_count>
      <attachid>295111</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-17 17:00:25 -0800</bug_when>
    <thetext>Created attachment 295111
Proposed Patch v10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252540</commentid>
    <comment_count>30</comment_count>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-17 17:11:14 -0800</bug_when>
    <thetext>Forgot to rebase like an amateur. Fixed patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252666</commentid>
    <comment_count>31</comment_count>
      <attachid>295147</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-18 06:45:58 -0800</bug_when>
    <thetext>Created attachment 295147
Rebased patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252847</commentid>
    <comment_count>32</comment_count>
      <attachid>295147</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-18 14:08:23 -0800</bug_when>
    <thetext>Comment on attachment 295147
Rebased patch.

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

So much progress!

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:62
&gt; +- (void)_webView:(WKWebView *)webView checkUserMediaPermissionForURL:(NSURL *)url mainFrameURL:(NSURL *)mainFrameURL frameIdentifier:(NSUInteger)frameIdentifier decisionHandler:(void (^)(NSString *salt, BOOL authorized))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));

What&apos;s up with the salt parameter?

&gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:351
&gt; +#if PLATFORM(IOS)

Likely we should have a function that does this work and implement it separately in e.g. new UIDelegateIOS and UIDelegateMac files, doing the different things, to satisfy Sam&apos;s comment above. There are also other things around that should be (separately) moved into something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252848</commentid>
    <comment_count>33</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-11-18 14:08:48 -0800</bug_when>
    <thetext>Also, tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253888</commentid>
    <comment_count>34</comment_count>
      <attachid>295504</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-28 11:04:39 -0800</bug_when>
    <thetext>Created attachment 295504
Fixed Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253889</commentid>
    <comment_count>35</comment_count>
      <attachid>295504</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-28 11:10:56 -0800</bug_when>
    <thetext>Comment on attachment 295504
Fixed Patch.

Rejecting attachment 295504 from commit-queue.

agold@apple.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253900</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-28 11:57:05 -0800</bug_when>
    <thetext>Attachment 295504 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:45:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:6413:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253902</commentid>
    <comment_count>37</comment_count>
      <attachid>295508</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-28 12:01:33 -0800</bug_when>
    <thetext>Created attachment 295508
Fixed Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253906</commentid>
    <comment_count>38</comment_count>
      <attachid>295508</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-28 12:05:17 -0800</bug_when>
    <thetext>Comment on attachment 295508
Fixed Patch.

Rejecting attachment 295508 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 295508, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebKit2/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/2584191</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253908</commentid>
    <comment_count>39</comment_count>
      <attachid>295510</attachid>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-28 12:07:57 -0800</bug_when>
    <thetext>Created attachment 295510
Fixed Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253916</commentid>
    <comment_count>40</comment_count>
    <who name="Andrew Gold">agold</who>
    <bug_when>2016-11-28 12:18:30 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; Comment on attachment 295147 [details]
&gt; Rebased patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=295147&amp;action=review
&gt; 
&gt; So much progress!
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:62
&gt; &gt; +- (void)_webView:(WKWebView *)webView checkUserMediaPermissionForURL:(NSURL *)url mainFrameURL:(NSURL *)mainFrameURL frameIdentifier:(NSUInteger)frameIdentifier decisionHandler:(void (^)(NSString *salt, BOOL authorized))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; What&apos;s up with the salt parameter?

It is the string we use to make sure capture device IDs are unique per domain.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:351
&gt; &gt; +#if PLATFORM(IOS)
&gt; 
&gt; Likely we should have a function that does this work and implement it
&gt; separately in e.g. new UIDelegateIOS and UIDelegateMac files, doing the
&gt; different things, to satisfy Sam&apos;s comment above. There are also other
&gt; things around that should be (separately) moved into something like that.

Filed: https://bugs.webkit.org/show_bug.cgi?id=165101</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253945</commentid>
    <comment_count>41</comment_count>
      <attachid>295510</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-28 12:47:02 -0800</bug_when>
    <thetext>Comment on attachment 295510
Fixed Patch.

Clearing flags on attachment: 295510

Committed r209010: &lt;http://trac.webkit.org/changeset/209010&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293962</attachid>
            <date>2016-11-04 17:03:14 -0700</date>
            <delta_ts>2016-11-09 17:52:59 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>0001-HTMLMediaCaptureAPI-Support-for-HTML-Media-Capture-A.patch</filename>
            <type>text/plain</type>
            <size>36169</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSAwOGRjMWViZjk4N2ZkOTA1ZGVkOTM0ODEwZDkyNjEyZDdhM2RmZDU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDIgTm92IDIwMTYgMTY6MDY6MTUgLTA3MDAKU3ViamVjdDogW1BBVENIXSAoSFRNTE1lZGlh
Q2FwdHVyZUFQSSkgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CgpJbiBvcmRlciB0byBlbmFibGUg
bWVkaWEgY2FwdHVyZSBvbiBpT1MsIFNhZmFyaSBtdXN0IGZpcnN0IHJlcXVlc3QgcGVybWlzc2lv
biBmcm9tIHRoZSB1c2VyCnRvIHVzZSBjYXB0dXJlIGRldmljZXMgYW5kIHRoZW4gdXBkYXRlIHRo
ZSBVSSBzbyB0aGF0IHRoZSB1c2VyIGtub3dzIHRoYXQgdGhlaXIgY2FwdHVyZQpkZXZpY2VzIGFy
ZSByZWNvcmRpbmcuIFRvIGRvIHRoaXMsIHdlIGFkZGVkIGZvdXIgbWV0aG9kcyB0byBXS1VJRGVs
ZWdhdGVQcml2YXRlIHRvIHJlcXVlc3QKcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBm
b3IgcGVybWlzc2lvbiwgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGJlZ3VuLCBh
bmQKbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVuZGVkLiBBZGRpdGlvbmFsbHks
IHdlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3CnRoYXQgYWxsb3dzIFNhZmFy
aSB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgoqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVd
KTogU2V0cyB0aGUgV2ViUGFnZVByb3h5J3MgbXV0ZWQgc3RhdGUgdG8gQ2FwdHVyZURldmljZXNB
cmVNdXRlZC4KKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKiBVSVBy
b2Nlc3MvUGFnZUNsaWVudC5oOgooV2ViS2l0OjpQYWdlQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IEFkZGVkLgooV2ViS2l0OjpQYWdlQ2xpZW50Ojpj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBBZGRlZC4KKFdlYktpdDo6UGFnZUNs
aWVudDo6bWVkaWFTdGF0ZURpZENoYW5nZSk6IEFkZGVkLgoqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CihXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKTogTm93CnJlcXVlc3RzIGZyb20gdGhlIHBhZ2VDbGllbnQgYXMgd2VsbCBhcyB0aGUgdWlD
bGllbnQuCihXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpl
bnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6IERpdHRvLgoqIFVJUHJvY2Vzcy9XS1VzZXJN
ZWRpYVByb3ZpZGVySU9TLmg6IEFkZGVkLgoqIFVJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVy
SU9TLm1tOiBBZGRlZC4KKC1bV0tVc2VyTWVkaWFQcm92aWRlcklPUyBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFSZXF1ZXN0RnJvbU9yaWdpbjp0b3BMZXZlbE9yaWdpbjpmcmFtZTpyZXF1ZXN0OnZp
ZXc6XSk6ClJlcXVlc3RzIHBlcm1pc3Npb24gdG8gYWNjZXNzIGNhcHR1cmUgZGV2aWNlcyBmcm9t
IHRoZSB1aURlbGVnYXRlLiBUaGUgcmVxdWVzdCBpcyBvbmx5IGZ1bGZpbGxlZCBpZgp0aGUgdXNl
ciBhbGxvd3MgYm90aCByZXF1ZXN0ZWQgY2FwdHVyZSBkZXZpY2VzLgooLVtXS1VzZXJNZWRpYVBy
b3ZpZGVySU9TIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjp0b3BMZXZlbE9yaWdp
bjpmcmFtZTpyZXF1ZXN0OnZpZXc6XSk6CkNoZWNrcyBmb3IgcGVybWlzc2lvbiB0byBhY2Nlc3Mg
Y2FwdHVyZSBkZXZpY2VzIGZyb20gdGhlIHVpRGVsZWdhdGUuCigtW1dLVXNlck1lZGlhUHJvdmlk
ZXJJT1MgbWVkaWFTdGF0ZURpZENoYW5nZTpmb3JWaWV3Ol0pOgpOb3RpZmllcyB0aGUgdWlEZWxl
Z2F0ZSBpZiBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgYmVndW4gb3IgZW5kZWQuCiogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOiBOb3RpZmllcyB0aGUgcGFnZUNsaWVudCBvZiBhIG1lZGlhIHN0YXRlIGNoYW5n
ZS4KKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cGFn
ZUNsaWVudCk6IEFkZGVkLgoqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKiBV
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgooV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6dXNlck1lZGlhUHJvdmlkZXIpOiBJbml0aWFsaXplcyBpZiBuZWNlc3NhcnkgYW5kIHJldHVy
bnMgdGhlIHVzZXJNZWRpYVByb3ZpZGVyLgooV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBDYWxscyBtZXRob2Qgb24gdGhl
CnVzZXJNZWRpYVByb3ZpZGVyIHRvIHJlcXVlc3QgcGVybWlzc2lvbiB0byB1c2UgY2FwdHVyZSBk
ZXZpY2VzLgooV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKTogQ2FsbHMgbWV0aG9kIG9uIHRoZSB1c2VyTWVkaWFQcm92aWRlcgp0byBjaGVj
ayBmb3IgcGVybWlzc2lvbiBmb3IgY2FwdHVyZSBkZXZpY2VzLgooV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6bWVkaWFTdGF0ZURpZENoYW5nZSk6IENhbGxzIG1ldGhvZCBvbiB1c2VyTWVkaWFQcm92
aWRlciB0byBub3RpZnkKdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcg
b3IgZW5kaW5nLgoqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKLS0tCiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NyArKysr
KysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oICAgICAg
fCAgIDQgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0g
ICAgfCAgIDUgKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmggfCAgIDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCAgICAg
ICAgICAgICAgfCAgMTcgKystCiAuLi4vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwICAgICB8ICAyNSArKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2Vy
TWVkaWFQcm92aWRlcklPUy5oICB8ICA1MyArKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV0tVc2VyTWVkaWFQcm92aWRlcklPUy5tbSB8IDE2MCArKysrKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8
ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
ICB8ICAgNiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tICB8ICAyNyArKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogICB8ICAgOCArKwogMTMgZmlsZXMgY2hhbmdlZCwgMzYwIGluc2VydGlvbnMoKyks
IDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVySU9TLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlcklPUy5tbQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA3ZjA4ZDVkLi42YjViNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTYtMTEt
MDYgQW5kcmV3IEdvbGQgPGFnb2xkQGFwcGxlLmNvbT4KKworICAgICAgICAoSFRNTE1lZGlhQ2Fw
dHVyZUFQSSkgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMyMzkKKyAgICAKKyAgICAgICAg
SW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24gaU9TLCBTYWZhcmkgbXVzdCBmaXJz
dCByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlcgorICAgICAgICB0byB1c2UgY2FwdHVy
ZSBkZXZpY2VzIGFuZCB0aGVuIHVwZGF0ZSB0aGUgVUkgc28gdGhhdCB0aGUgdXNlciBrbm93cyB0
aGF0IHRoZWlyIGNhcHR1cmUKKyAgICAgICAgZGV2aWNlcyBhcmUgcmVjb3JkaW5nLiBUbyBkbyB0
aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhvZHMgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1
ZXN0CisgICAgICAgIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciwgY2hlY2sgZm9yIHBlcm1pc3Np
b24sIG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kCisgICAgICAg
IG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LCB3
ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldworICAgICAgICB0aGF0IGFsbG93
cyBTYWZhcmkgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAgICAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IEFkZGVkIG1ldGhvZHMgdG8gcmVxdWVzdCBjYXB0dXJl
IHBlcm1pc3Npb24gZnJvbQorICAgICAgICB0aGUgY2xpZW50LgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc3RvcE1l
ZGlhQ2FwdHVyZV0pOiBTZXRzIHRoZSBXZWJQYWdlUHJveHkncyBtdXRlZCBzdGF0ZSB0byBDYXB0
dXJlRGV2aWNlc0FyZU11dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6Y2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnQ6Om1lZGlhU3RhdGVEaWRDaGFuZ2UpOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKTogTm93CisgICAgICAgIHJlcXVlc3RzIGZyb20gdGhl
IHBhZ2VDbGllbnQgYXMgd2VsbCBhcyB0aGUgdWlDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmlj
ZXNGb3JGcmFtZSk6IERpdHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL1dLVXNlck1lZGlhUHJv
dmlkZXJJT1MuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dLVXNlck1lZGlhUHJvdmlk
ZXJJT1MubW06IEFkZGVkLgorICAgICAgICAoLVtXS1VzZXJNZWRpYVByb3ZpZGVySU9TIGRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVJlcXVlc3RGcm9tT3JpZ2luOnRvcExldmVsT3JpZ2luOmZyYW1l
OnJlcXVlc3Q6dmlldzpdKToKKyAgICAgICAgUmVxdWVzdHMgcGVybWlzc2lvbiB0byBhY2Nlc3Mg
Y2FwdHVyZSBkZXZpY2VzIGZyb20gdGhlIHVpRGVsZWdhdGUuIFRoZSByZXF1ZXN0IGlzIG9ubHkg
ZnVsZmlsbGVkIGlmCisgICAgICAgIHRoZSB1c2VyIGFsbG93cyBib3RoIHJlcXVlc3RlZCBjYXB0
dXJlIGRldmljZXMuCisgICAgICAgICgtW1dLVXNlck1lZGlhUHJvdmlkZXJJT1MgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOnRvcExldmVsT3JpZ2luOmZyYW1lOnJlcXVlc3Q6dmll
dzpdKToKKyAgICAgICAgQ2hlY2tzIGZvciBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRl
dmljZXMgZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKC1bV0tVc2VyTWVkaWFQcm92aWRl
cklPUyBtZWRpYVN0YXRlRGlkQ2hhbmdlOmZvclZpZXc6XSk6CisgICAgICAgIE5vdGlmaWVzIHRo
ZSB1aURlbGVnYXRlIGlmIGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biBvciBlbmRlZC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogTm90aWZpZXMgdGhlIHBhZ2VD
bGllbnQgb2YgYSBtZWRpYSBzdGF0ZSBjaGFuZ2UuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBhZ2VDbGllbnQpOiBB
ZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6dXNlck1lZGlhUHJvdmlkZXIpOiBJbml0aWFsaXplcyBpZiBu
ZWNlc3NhcnkgYW5kIHJldHVybnMgdGhlIHVzZXJNZWRpYVByb3ZpZGVyLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QpOiBDYWxscyBtZXRob2Qgb24gdGhlCisgICAgICAgIHVzZXJNZWRpYVByb3ZpZGVyIHRv
IHJlcXVlc3QgcGVybWlzc2lvbiB0byB1c2UgY2FwdHVyZSBkZXZpY2VzLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKTog
Q2FsbHMgbWV0aG9kIG9uIHRoZSB1c2VyTWVkaWFQcm92aWRlcgorICAgICAgICB0byBjaGVjayBm
b3IgcGVybWlzc2lvbiBmb3IgY2FwdHVyZSBkZXZpY2VzLgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6bWVkaWFTdGF0ZURpZENoYW5nZSk6IENhbGxzIG1ldGhvZCBvbiB1c2VyTWVk
aWFQcm92aWRlciB0byBub3RpZnkKKyAgICAgICAgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vz
c2lvbiBiZWdpbm5pbmcgb3IgZW5kaW5nLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxNi0xMS0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZHVjZSBQYXNzUmVmUHRyIHVzZSBpbiBXZWJL
aXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjMwY2Y3ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCkBAIC02Myw2ICs2MywxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAoTlNBcnJheSAq
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxl
bWVudEFjdGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDooQ0dQb2ludClwb2lu
dDsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUmVxdWVzdEdl
b2xvY2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgaXNNYWluRnJhbWU6KEJP
T0wpaXNNYWluRnJhbWUgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTDsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JNaWNyb3Bob25lOihCT09MKW1pY3JvcGhvbmUgY2FtZXJhOihCT09MKWNhbWVyYSB1
cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25lLCBCT09MIGF1dGhv
cml6ZWRDYW1lcmEpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWSWV3IGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdE
aWRCZWdpbkNhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiAtIChVSVZpZXdD
b250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250
cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0Nv
bnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19B
UElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IDk3NjcxNWEuLmRkNjllZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00Mzg3LDYgKzQzODcs
MTEgQEAgLSAodm9pZClzZXRTZW1hbnRpY0NvbnRlbnRBdHRyaWJ1dGU6KFVJU2VtYW50aWNDb250
ZW50QXR0cmlidXRlKWNvbnRlbnRBdHRyaWJ1dGUKICAgICBfcGFnZS0+c2V0VXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbih0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oY29udGVudEF0
dHJpYnV0ZSkpOwogfQogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCit7CisgICAgX3BhZ2Ut
PnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkNhcHR1cmVEZXZpY2VzQXJlTXV0ZWQp
OworfQorCiAjZWxzZSAvLyAjaWYgUExBVEZPUk0oSU9TKQogCiAjcHJhZ21hIG1hcmsgLSBPUyBY
LXNwZWNpZmljIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggZWFiMjliNC4uNjhkZGExNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKQEAgLTI0OCw2ICsyNDgsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJ
bW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRG
dWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVu
RGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOwogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlOworCiBAZW5k
CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKaW5kZXggNjgzNzk0NC4uZmIzNjA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCkBAIC02Niw3ICs2Niw3IEBAIGNsYXNzIFZpZXdTbmFwc2hvdDsKIGNsYXNzIFdlYkNv
bnRleHRNZW51UHJveHk7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViUG9w
dXBNZW51UHJveHk7Ci0KKyAgICAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogY2xhc3MgTmF0
aXZlV2ViVG91Y2hFdmVudDsKICNlbmRpZgpAQCAtMTM2LDYgKzEzNiwyMSBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgICAgICAKKyAgICB2aXJ0dWFs
IGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViRnJhbWVQ
cm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JPcmlnaW4oV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpCisgICAg
eworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENv
bW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0
b21Db250ZW50UHJvdmlkZXIpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKaW5kZXggOGZmYzE4My4uN2NjZmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJBUElTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudC5o
IgogI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgpAQCAtMTkyLDEwICsxOTMsMTQgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgYXV0byB0b3BMZXZlbE9yaWdpbiA9IEFQSTo6
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNl
SWRlbnRpZmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikpOwogICAgICAgICBh
dXRvIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlELCBhdWRpb0RldmljZVVJRHMs
IHZpZGVvRGV2aWNlVUlEcyk7CiAKLSAgICAgICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5kZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJv
Y2VzcygpLndlYkZyYW1lKGZyYW1lSUQpLCAqdXNlck1lZGlhT3JpZ2luLmdldCgpLCAqdG9wTGV2
ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdV
c2VyTWVkaWFSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKTsKLSAgICAgICAgICAgIHJlcXVlc3Qt
PmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKG1f
cGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksICp1c2VyTWVkaWFP
cmlnaW4uZ2V0KCksICp0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBpZiAobV9wYWdlLnBhZ2VDbGllbnQo
KS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgqbV9wYWdlLnByb2Nl
c3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgKnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRvcExldmVs
T3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgCisgICAgICAgIG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3RzLnRha2UodXNlck1lZGlhSUQp
OworICAgICAgICByZXF1ZXN0LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwogICAgIH07
CiAKICAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3Jl
YXRlKGF1ZGlvQ29uc3RyYWludHNEYXRhKTsKQEAgLTIyMiwxMCArMjI3LDE0IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2CiAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4gPSBBUEk6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZp
ZXIodXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSk7CiAgICAgYXV0byB0b3BMZXZl
bE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmll
cikpOwogCi0gICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwg
KnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0Lmdl
dCgpKSkgewotICAgICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlE
KTsKLSAgICAgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRD
b21wbGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24odXNlck1lZGlhSUQsIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPigpLCBlbXB0eVN0cmluZygpLCBmYWxzZSksIG1fcGFnZS5wYWdlSUQo
KSk7Ci0gICAgfQorICAgIGlmIChtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlE
KSwgKnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0
LmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmIChtX3BhZ2UucGFnZUNsaWVu
dCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbigqbV9wYWdlLnByb2Nlc3MoKS53
ZWJGcmFtZShmcmFtZUlEKSwgKnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRvcExldmVsT3JpZ2lu
LmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fcGVu
ZGluZ0RldmljZVJlcXVlc3RzLnRha2UodXNlck1lZGlhSUQpOworICAgIG1fcGFnZS5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0
aW9uKHVzZXJNZWRpYUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4oKSwgZW1wdHlT
dHJpbmcoKSwgZmFsc2UpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0odXNlck1lZGlhSUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVySU9TLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlcklPUy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMTBjYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlcklPUy5oCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0IDxGb3VuZGF0
aW9uL05TT2JqZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS0Jhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk7CitjbGFzcyBXZWJGcmFtZVByb3h5OworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Cit9CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCitAY2xhc3Mg
V0tXZWJWaWV3OworCitAaW50ZXJmYWNlIFdLVXNlck1lZGlhUHJvdmlkZXJJT1MgOiBOU09iamVj
dAorCistICh2b2lkKWRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVJlcXVlc3RGcm9tT3JpZ2luOihX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpdXNlck1lZGlhT3JpZ2luIHRvcExldmVsT3JpZ2luOihX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpdG9wTGV2ZWxPcmlnaW4gZnJhbWU6KFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYpZnJhbWUgcmVxdWVzdDooV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5JilwZXJtaXNzaW9uUmVxdWVzdCB2aWV3OihXS1dlYlZpZXcqKXZpZXc7CistICh2
b2lkKWNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjooV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mKXVzZXJNZWRpYU9yaWdpbiB0b3BMZXZlbE9yaWdpbjooV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mKXRvcExldmVsT3JpZ2luIGZyYW1lOihXZWJLaXQ6OldlYkZyYW1lUHJveHkmKWZyYW1l
IHJlcXVlc3Q6KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKXBlcm1pc3Np
b25SZXF1ZXN0IHZpZXc6KFdLV2ViVmlldyAqKXZpZXc7CistICh2b2lkKW1lZGlhU3RhdGVEaWRD
aGFuZ2U6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyltZWRpYVN0YXRl
IGZvclZpZXc6KFdLV2ViVmlldyAqKXZpZXc7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRpYVBy
b3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dLVXNlck1lZGlhUHJvdmlk
ZXJJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlNmMyMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3Zp
ZGVySU9TLm1tCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJXS1VzZXJNZWRpYVByb3ZpZGVySU9TLmgiCisKKyNpZiBQTEFURk9STShJ
T1MpCisKKyNpbXBvcnQgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW1wb3J0ICJVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oIgorI2ltcG9ydCAiV0tVSURlbGVnYXRlUHJpdmF0ZS5oIgorI2ltcG9ydCAiV0tX
ZWJWaWV3LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgorI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQ2FwdHVyZURldmljZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3Jt
YXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKTsKK1NPRlRfTElOS19DTEFT
UyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSk7CitTT0ZUX0xJTktfQ09OU1RBTlQoQVZG
b3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19DT05T
VEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlVmlkZW8sIE5TU3RyaW5nICopOworCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK0BpbXBsZW1l
bnRhdGlvbiBXS1VzZXJNZWRpYVByb3ZpZGVySU9TIHsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgX21lZGlhU3RhdGU7Cit9CisKKy0odm9pZClkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFSZXF1ZXN0RnJvbU9yaWdpbjooU2VjdXJpdHlPcmlnaW4mKXVzZXJNZWRpYU9yaWdpbiB0
b3BMZXZlbE9yaWdpbjooU2VjdXJpdHlPcmlnaW4mKXRvcExldmVsT3JpZ2luIGZyYW1lOihXZWJG
cmFtZVByb3h5JilmcmFtZSByZXF1ZXN0OihVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
JilwZXJtaXNzaW9uUmVxdWVzdCB2aWV3OihXS1dlYlZpZXcqKXZpZXcgeworICAgIGlkPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4+KFt2aWV3IFVJRGVsZWdhdGVdKTsKKyAgICBpZiAoIVt1aURlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JNaWNyb3Bob25lOmNhbWVyYTp1cmw6bWFpbkZyYW1lVVJMOmRlY2lzaW9uSGFuZGxl
cjopXSkgeworICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlz
YWJsZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCByZXF1aXJlc0F1ZGlv
ID0gcGVybWlzc2lvblJlcXVlc3QucmVxdWlyZXNBdWRpbygpOworICAgIGJvb2wgcmVxdWlyZXNW
aWRlbyA9IHBlcm1pc3Npb25SZXF1ZXN0LnJlcXVpcmVzVmlkZW8oKTsKKyAgICBpZiAoIXJlcXVp
cmVzQXVkaW8gJiYgIXJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgcGVybWlzc2lvblJlcXVlc3Qu
ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246Ok5vQ29uc3RyYWludHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QVZBdXRob3JpemF0aW9uU3RhdHVzIG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3RhdHVzID0gW2dl
dEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpn
ZXRBVk1lZGlhVHlwZUF1ZGlvKCldOworICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBjYW1lcmFB
dXRob3JpemF0aW9uU3RhdHVzID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXph
dGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCldOworICAgIGlmIChy
ZXF1aXJlc0F1ZGlvICYmIChtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhv
cml6YXRpb25TdGF0dXNEZW5pZWQgfHwgbWljcm9waG9uZUF1dGhvcml6YXRpb25TdGF0dXMgPT0g
QVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZCkpIHsKKyAgICAgICAgcGVybWlzc2lvblJl
cXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nl
c3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChyZXF1aXJlc1ZpZGVvICYmIChjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID09
IEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZCB8fCBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVz
ID09IEFWQXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0ZWQpKSB7CisgICAgICAgIHBlcm1pc3Np
b25SZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKSh2b2lkKSA9
IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdl
KCktPm1haW5GcmFtZSgpOworICAgICAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFt
ZS51cmwoKSk7CisgICAgICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJs
KCkpOworCisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3OnZpZXcgcmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJlcXVpcmVzQXVkaW8gY2FtZXJhOnJlcXVpcmVz
VmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lz
aW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1pY3JvcGhvbmUsIEJPT0wgYXV0aG9yaXplZENh
bWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1aXJlc0F1ZGlvIT0gYXV0aG9yaXplZE1pY3Jv
cGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRDYW1lcmEpKSB7CisgICAgICAg
ICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJlc1ZpZGVvID8gcGVybWlzc2lvblJlcXVl
c3QudmlkZW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgY29u
c3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCA9IHJlcXVpcmVzQXVkaW8gPyBwZXJtaXNzaW9uUmVx
dWVzdC5hdWRpb0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICBw
ZXJtaXNzaW9uUmVxdWVzdC5hbGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOwor
ICAgICAgICB9XTsKKyAgICB9OworCisgICAgdm9pZCAoXmNhbWVyYUF1dGhvcml6YXRpb25CbG9j
aykodm9pZCkgPSBeIHsKKyAgICAgICAgaWYgKHJlcXVpcmVzVmlkZW8gJiYgY2FtZXJhQXV0aG9y
aXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkKSB7Cisg
ICAgICAgICAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNjZXNzRm9yTWVk
aWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgZ3Jh
bnRlZCkgeworICAgICAgICAgICAgICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgICAgICAgICAg
ICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaygpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
dWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAocmVxdWly
ZXNBdWRpbyAmJiBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRp
b25TdGF0dXNOb3REZXRlcm1pbmVkKSB7CisgICAgICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFz
cygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNvbXBs
ZXRpb25IYW5kbGVyOl4oQk9PTCBncmFudGVkKSB7CisgICAgICAgICAgICBpZiAoIWdyYW50ZWQp
CisgICAgICAgICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbWVyYUF1dGhvcml6
YXRpb25CbG9jaygpOworICAgICAgICB9XTsKKyAgICB9IGVsc2UKKyAgICAgICAgY2FtZXJhQXV0
aG9yaXphdGlvbkJsb2NrKCk7Cit9CisKKy0gKHZvaWQpY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luOihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpdXNlck1lZGlhT3JpZ2luIHRvcExl
dmVsT3JpZ2luOihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpdG9wTGV2ZWxPcmlnaW4gZnJhbWU6
KFdlYkZyYW1lUHJveHkmKWZyYW1lIHJlcXVlc3Q6KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkmKXBlcm1pc3Npb25SZXF1ZXN0IHZpZXc6KFdLV2ViVmlldyAqKXZpZXcKK3sK
KyAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbdmlldyBVSURlbGVnYXRlXSk7CisgICAgaWYgKCFbdWlE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9u
SGFuZGxlcjopXSkgeworICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nl
c3NJbmZvKFN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBj
b25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OworICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwoVVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICBVUkwg
bWFpbkZyYW1lVVJMKFVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKyAgICAKKyAgICBbdWlEZWxl
Z2F0ZSBfd2ViVmlldzp2aWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0
RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUu
ZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6
ZWQpIHsKKyAgICAgICAgcGVybWlzc2lvblJlcXVlc3Quc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhT
dHJpbmcoc2FsdCksIGF1dGhvcml6ZWQpOworICAgIH1dOworfQorCistICh2b2lkKW1lZGlhU3Rh
dGVEaWRDaGFuZ2U6KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyltZWRpYVN0YXRlIGZv
clZpZXc6KFdLV2ViVmlldyAqKXZpZXcKK3sKKyAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1
aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbdmlldyBV
SURlbGVnYXRlXSk7CisgICAgaWYgKCEoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KV0gJiYgW3VpRGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9u
OildKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gX21lZGlhU3RhdGUgJiBNZWRpYVBy
b2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZpY2U7CisgICAgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbWVkaWFTdGF0
ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURldmljZTsKKyAgICBpZiAo
b2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPT0gbmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNh
cHR1cmUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBfbWVkaWFTdGF0ZSA9IG1lZGlhU3Rh
dGU7CisgICAgaWYgKCFvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiBuZXdNZWRpYVN0
YXRlSGFzQWN0aXZlQ2FwdHVyZSkgeworICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlld0RpZEJl
Z2luQ2FwdHVyZVNlc3Npb246dmlld107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgJiYgIW5ld01lZGlhU3RhdGVIYXNBY3Rp
dmVDYXB0dXJlKQorICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNz
aW9uOnZpZXddOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJiNGIwNTEuLjZiNDM0Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02MzY2LDgg
KzYzNjYsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwKICAgICBhY3Rpdml0eVN0YXRlRGlk
Q2hhbmdlKEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSk7CiAKICAgICBwbGF5aW5nTWVkaWFNYXNr
IHw9IE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURldmljZTsKLSAgICBpZiAo
KG9sZFN0YXRlICYgcGxheWluZ01lZGlhTWFzaykgIT0gKG1fbWVkaWFTdGF0ZSAmIHBsYXlpbmdN
ZWRpYU1hc2spKQorICAgIGlmICgob2xkU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSAhPSAobV9t
ZWRpYVN0YXRlICYgcGxheWluZ01lZGlhTWFzaykpIHsKICAgICAgICAgbV91aUNsaWVudC0+aXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2UoKnRoaXMpOworICAgICAgICBtX3BhZ2VDbGllbnQubWVkaWFT
dGF0ZURpZENoYW5nZShtX21lZGlhU3RhdGUpOworICAgIH0KICNpZiBQTEFURk9STShNQUMpCiAg
ICAgaWYgKChvbGRTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykgIT0gKG1f
bWVkaWFTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykpCiAgICAgICAgIHZp
ZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMjFkYjU5Mi4uODgzMjJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzY0LDYgKzM2NCw4IEBAIHB1YmxpYzoKIAogICAgIEFQ
STo6VUlDbGllbnQmIHVpQ2xpZW50KCkgeyByZXR1cm4gKm1fdWlDbGllbnQ7IH0KICAgICB2b2lk
IHNldFVJQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OlVJQ2xpZW50Pik7CisgICAgICAgIAor
ICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSB7IHJldHVybiBtX3BhZ2VDbGllbnQ7IH0KIAog
ICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDAxYWIxMGQuLjQ4NGVlOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
QEAgLTM1LDYgKzM1LDcgQEAKIE9CSkNfQ0xBU1MgV0tDb250ZW50VmlldzsKIE9CSkNfQ0xBU1Mg
V0tXZWJWaWV3OwogT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOworT0JKQ19DTEFT
UyBXS1VzZXJNZWRpYVByb3ZpZGVySU9TOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKQEAg
LTY1LDYgKzY2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgp
IG92ZXJyaWRlOwogICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Jikgb3ZlcnJpZGU7CisgICAgV0tVc2VyTWVk
aWFQcm92aWRlcklPUyAqdXNlck1lZGlhUHJvdmlkZXIoKTsKKyAgICBib29sIGRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkmKSBvdmVycmlkZTsKKyAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbihXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIG92ZXJyaWRlOworICAg
IGJvb2wgbWVkaWFTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIG92ZXJyaWRlOwpAQCAtMTk1LDYgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgV0tDb250
ZW50VmlldyAqbV9jb250ZW50VmlldzsKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKICAgICBS
ZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0OworICAgIFJldGFp
blB0cjxXS1VzZXJNZWRpYVByb3ZpZGVySU9TPiBtX3VzZXJNZWRpYVByb3ZpZGVyOwogfTsKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBiY2I0MDQ5Li4yZTc0ZmIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTQw
LDYgKzQwLDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgogI2ltcG9y
dCAiV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXJJT1MuaCIKICNpbXBvcnQgIldL
V2ViVmlld0NvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29udGVu
dFByb3ZpZGVyUmVnaXN0cnkuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCkBAIC0y
MjQsNiArMjI1LDMyIEBAIGJvb2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBvbGljeUZvckdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViRnJhbWVQcm94eSYKICAgICBbW3dyYXBwZXIobV93
ZWJWaWV3LT5fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkpIF9nZW9sb2NhdGlvblByb3Zp
ZGVyXSBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luOm9yaWdpbi5z
ZWN1cml0eU9yaWdpbigpIGZyYW1lOmZyYW1lIHJlcXVlc3Q6cmVxdWVzdCB2aWV3Om1fd2ViVmll
d107CiAgICAgcmV0dXJuIHRydWU7CiB9CisgICAgCitXS1VzZXJNZWRpYVByb3ZpZGVySU9TICpQ
YWdlQ2xpZW50SW1wbDo6dXNlck1lZGlhUHJvdmlkZXIoKQoreworICAgIGlmICghbV91c2VyTWVk
aWFQcm92aWRlcikKKyAgICAgICAgbV91c2VyTWVkaWFQcm92aWRlciA9IGFkb3B0TlMoW1tXS1Vz
ZXJNZWRpYVByb3ZpZGVySU9TIGFsbG9jXSBpbml0XSk7CisKKyAgICByZXR1cm4gbV91c2VyTWVk
aWFQcm92aWRlci5nZXQoKTsKK30KKyAgICAKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYkZyYW1lUHJveHkmIGZyYW1lLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
KQoreworICAgIFt1c2VyTWVkaWFQcm92aWRlcigpIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVJl
cXVlc3RGcm9tT3JpZ2luOnVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpIHRvcExldmVs
T3JpZ2luOnRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkgZnJhbWU6ZnJhbWUgcmVxdWVz
dDpyZXF1ZXN0IHZpZXc6bV93ZWJWaWV3XTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyAgICAKK2Jv
b2wgUGFnZUNsaWVudEltcGw6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJG
cmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkmIHJlcXVlc3QpCit7CisgICAgW3VzZXJNZWRpYVByb3ZpZGVyKCkgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOnVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigp
IHRvcExldmVsT3JpZ2luOnRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkgZnJhbWU6ZnJh
bWUgcmVxdWVzdDpyZXF1ZXN0IHZpZXc6bV93ZWJWaWV3XTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KyAgICAKK2Jvb2wgUGFnZUNsaWVudEltcGw6Om1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUpCit7CisgICAgW3VzZXJNZWRpYVByb3Zp
ZGVyKCkgbWVkaWFTdGF0ZURpZENoYW5nZTptZWRpYVN0YXRlIGZvclZpZXc6bV93ZWJWaWV3XTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9h
ZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRl
bnRQcm92aWRlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBkMWYxYmU0Li5mZjY2ODczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzkwLDYgKzE3OTAs
OCBAQAogCQlDRURBMTJFMjE1MkNEMUFFMDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENF
REExMkRGMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwICov
OyB9OwogCQlDRURBMTJFMzE1MkNEMUIzMDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRURB
MTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi87IH07
CiAJCUNFRTRBRTJCMUE1RENGNDMwMDAyRjQ5QiAvKiBVSUtpdFNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VFNEFFMkExQTVEQ0Y0MzAwMDJGNDlC
IC8qIFVJS2l0U1BJLmggKi87IH07CisJCUQzQjVGMDU2MURCMTg2NEYwMDAzMDc5RSAvKiBXS1Vz
ZXJNZWRpYVByb3ZpZGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEM0I1RjA1NDFEQjE4NjRGMDAwMzA3OUUgLyogV0tVc2VyTWVkaWFQcm92aWRl
cklPUy5oICovOyB9OworCQlEM0I1RjA1NzFEQjE4NjUwMDAwMzA3OUUgLyogV0tVc2VyTWVkaWFQ
cm92aWRlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzQjVGMDU1MURCMTg2NEYwMDAzMDc5RSAvKiBXS1VzZXJNZWRpYVByb3ZpZGVySU9TLm1t
ICovOyB9OwogCQlEM0I5NDg0NjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQyMTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovOyB9OwogCQlEM0I5NDg0NzExRkY0
QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmggKi87IH07CiAJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi87IH07
CkBAIC0zOTQ0LDYgKzM5NDYsOCBAQAogCQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRURBMTJERjE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFsdGVybmF0aXZlVGV4
dENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFRTRBRTJBMUE1RENG
NDMwMDAyRjQ5QiAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0I1RjA1NDFEQjE4
NjRGMDAwMzA3OUUgLyogV0tVc2VyTWVkaWFQcm92aWRlcklPUy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVByb3ZpZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzQjVGMDU1MURCMTg2NEYwMDAzMDc5RSAvKiBXS1VzZXJNZWRpYVBy
b3ZpZGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tV
c2VyTWVkaWFQcm92aWRlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNC
OTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNlYXJjaFBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDY1
LDYgKzUwNjksOCBAQAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZp
ZXcubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xp
Y2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCTI2RjEwQkU3MTkxODdFMkUwMDFEMEU2
OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubSAqLywKKwkJCQlEM0I1
RjA1NDFEQjE4NjRGMDAwMzA3OUUgLyogV0tVc2VyTWVkaWFQcm92aWRlcklPUy5oICovLAorCQkJ
CUQzQjVGMDU1MURCMTg2NEYwMDAzMDc5RSAvKiBXS1VzZXJNZWRpYVByb3ZpZGVySU9TLm1tICov
LAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
NzU1Myw2ICs3NTU5LDcgQEAKIAkJCQkxQUUyODY4MDFDN0Y5MkMwMDA2OUFDNEYgLyogX1dLV2Vi
c2l0ZURhdGFTaXplSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkI0QzcyMUFERjE1
NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTRBOTNCNzFBRUIwOEVBMDAxNTBFOUMgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlEM0I1RjA1NjFEQjE4NjRGMDAwMzA3OUUgLyogV0tVc2VyTWVk
aWFQcm92aWRlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTExNURDNzIxOTFEODJEQTAwREE4
MDcyIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q3
OEUxMTkxREI3RTVBRDAwMTRBMkRFIC8qIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE5REQzQzAxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZv
cm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTkwNTIsNiArOTA1OSw3IEBACiAJ
CQkJQTE4MkQ1QjQxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY5NkYxMURCRTYwMzAwNjQ1NUIwIC8qIEFQ
SUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQjVGMDU3MURCMTg2NTAwMDAzMDc5RSAv
KiBXS1VzZXJNZWRpYVByb3ZpZGVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBQjAzN0Mx
ODVGOTlEODAwRURGNTAxIC8qIEFQSURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRUYx
OTkxQTFENUI0MjAwMjMyMDBBIC8qIEFQSURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDMUJBMzNEMUE0QTBFNjAwMDQzRTI0OSAvKiBBUElEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2Vz
ICovLAotLSAKMi45LjMgKEFwcGxlIEdpdC03NSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294315</attachid>
            <date>2016-11-09 17:52:59 -0800</date>
            <delta_ts>2016-11-11 14:02:39 -0800</delta_ts>
            <desc>Proposed patch V2</desc>
            <filename>0001-HTMLMediaCaptureAPI-Support-for-HTML-Media-Capture-A.patch</filename>
            <type>text/plain</type>
            <size>48063</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA4MjVjMzdmY2VmYzU4ZmY5NWQ1NGNkNzRiYmMxNzcwYzIyYmJkZGJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDkgTm92IDIwMTYgMTc6MjI6NTggLTA4MDAKU3ViamVjdDogW1BBVENIXSAoSFRNTE1lZGlh
Q2FwdHVyZUFQSSkgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CgpJbiBvcmRlciB0byBlbmFibGUg
bWVkaWEgY2FwdHVyZSBvbiBpT1MsIHdlIG11c3QgZmlyc3QgdXNlIHRoZSBBVkZvdW5kYXRpb24g
QVBJIHRvIGNoZWNrL3JlcXVlc3QKY2FwdHVyZSBwZXJtaXNzaW9uIGZyb20gdGhlIHVzZXIgZm9y
IFNhZmFyaS4gVGhlbiwgU2FmYXJpIG11c3QgcmVxdWVzdCBwZXJtaXNzaW9uIG9uIGJlaGFsZgpv
ZiB0aGUgd2VicGFnZSB0byB1c2UgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHksIFNhZmFy
aSBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcwp0YWtpbmcgcGxhY2UsIHNvIFdl
YktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdp
bm5pbmcgYW5kIGVuZGluZy4KVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBtZXRob2RzIHRvIFdL
VUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVzZXIsCmNo
ZWNrIGZvciBwZXJtaXNzaW9uLCBub3RpZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgYmVn
dW4sIGFuZCBub3RpZnkgdGhhdCBhIGNhcHR1cmUKc2Vzc2lvbiBoYXMgZW5kZWQuIEFkZGl0aW9u
YWxseSwgd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhvZCB0byBXS1dlYlZpZXcgdGhhdCBhbGxvd3Mg
U2FmYXJpCiB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRl
ZCBtZXRob2RzIHRvIHJlcXVlc3QvY2hlY2sgcGVybWlzc2lvbiBhbmQKbm90aWZ5IG9mIGEgY2Fw
dHVyZSBzZXNzaW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXSk6IEFsbG93cyB0
aGUgY2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCiogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3Zp
ZGVyLmg6IEFkZGVkLgoqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyLm1tOiBB
ZGRlZC4KKC1bV0tVc2VyTWVkaWFQcm92aWRlciBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFSZXF1
ZXN0RnJvbU9yaWdpbjp0b3BMZXZlbE9yaWdpbjpmcmFtZTpyZXF1ZXN0OnZpZXc6XSk6CklmIG9u
IGlPUywgd2UgZmlyc3QgY2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50
IHBlcm1pc3Npb24gdG8gdXNlIGNhcHR1cmUgZGV2aWNlcywKYW5kIGlmIG5vdCB3ZSByZXF1ZXN0
IHBlcm1pc3Npb24uIFRoZW4sIHdlIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1aURlbGVn
YXRlLgooLVtXS1VzZXJNZWRpYVByb3ZpZGVyIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbjp0b3BMZXZlbE9yaWdpbjpmcmFtZTpyZXF1ZXN0OnZpZXc6XSk6CkNoZWNrcyB0aGUgY2xp
ZW50IGZvciBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCigtW1dLVXNlck1l
ZGlhUHJvdmlkZXIgbWVkaWFTdGF0ZURpZENoYW5nZTpmb3JWaWV3Ol0pOiBOb3RpZmllcyB0aGUg
Y2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRpbmcuCigtW1dLVXNlck1l
ZGlhUHJvdmlkZXIgX2NhcHR1cmVEZXZpY2VBdXRob3JpemVyXSk6IElmIG9uIGlPUywgdGhpcyBy
ZXR1cm5zIGFuIG9iamVjdCB0aGF0CmNhbiBiZSB1c2VkIHRvIGFjcXVpcmUgY2FtZXJhL21pY3Jv
cGhvbmUgcGVybWlzc2lvbi4KCiogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKFdlYktpdDo6UGFn
ZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgooV2Vi
S2l0OjpQYWdlQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOgooV2Vi
S2l0OjpQYWdlQ2xpZW50OjptZWRpYVN0YXRlRGlkQ2hhbmdlKToKCiogVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUpOgpHb2VzIHRocm91Z2ggdGhlIHdlYnBhZ2UgcHJveHkgdG8gcmVxdWVzdCBwZXJt
aXNzaW9uIHRocm91Z2ggYm90aCBBUElzLgooV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgpEaXR0by4K
CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBSZXF1ZXN0cyBjYXB0dXJl
CnBlcm1pc3Npb24gZnJvbSB0aGUgY2xpZW50LgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyBjYXB0dXJlIHBlcm1pc3Npb24g
ZnJvbQp0aGUgY2xpZW50LgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbgpiZWdpbm5p
bmcvZW5kaW5nLgoKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CgoqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgooV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dXNlck1lZGlhUHJvdmlkZXIpOiBSZXR1cm5zIGFu
IGluc3RhbmNlIG9mIFdLVXNlck1lZGlhUHJvdmlkZXIuCihXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IFVzZXMgdGhlIFdL
VXNlck1lZGlhUHJvdmlkZXIKdG8gcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
Y2xpZW50LgooV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKTogVXNlcyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlciB0bwpjaGVjayBjYXB0dXJl
IHBlcm1pc3Npb24gZnJvbSB0aGUgY2xpZW50LgooV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6bWVk
aWFTdGF0ZURpZENoYW5nZSk6IFVzZXMgdGhlIFdLVXNlck1lZGlhUHJvdmlkZXIgdG8gbm90aWZ5
IHRoZQpjbGllbnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5uaW5nL2VuZGluZy4KCiogVUlQ
cm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg6IEFkZGVk
LgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bTogQWRkZWQuCigtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgcmVxdWVz
dE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbgp0byByZXF1ZXN0
IG1pY3JvcGhvbmUgYWNjZXNzIGZyb20gdGhlIHVzZXIgZm9yIHRoZSBjbGllbnQuCigtW1dLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRp
b246XSk6IFVzZXMgQVZGb3VuZGF0aW9uCnRvIHJlcXVlc3QgY2FtZXJhIGFjY2VzcyBmcm9tIHRo
ZSB1c2VyIGZvciB0aGUgY2xpZW50LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TIF9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTpjYWxsYmFjazpdKToKSGVs
cGVyIG1ldGhvZCBmb3IgcmVxdWVzdGluZyBtaWNyb3Bob25lL2NhbWVyYSBhY2Nlc3MuCgoqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3NyArKysrKysrKysrCiAuLi4vVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggICAgICB8ICAgNCArCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSAgICB8ICAgNSArCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCB8ICAgMiAr
CiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV0tVc2VyTWVkaWFQcm92aWRlci5oICB8ICA0
NyArKysrKysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVy
Lm1tIHwgMTYxICsrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaCAgICAgICAgICAgICAgfCAgIDYgKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgIDI2ICsrKy0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAzICsKIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCAgIHwgICA2ICsKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gIHwgIDI4ICsrKysK
IC4uLi9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICAgIHwgIDM3
ICsrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0g
ICB8ICA1NCArKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogICB8ICAxNiArKwogMTUgZmlsZXMgY2hhbmdlZCwgNDc2IGluc2VydGlvbnMoKyks
IDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyLm1tCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0K
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggOTNlOWU4MC4uYjEwZjc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgw
IEBACisyMDE2LTExLTA5ICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxlLmNvbT4KKworICAgICAg
ICAoSFRNTE1lZGlhQ2FwdHVyZUFQSSkgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMyMzkK
KworICAgICAgICBJbiBvcmRlciB0byBlbmFibGUgbWVkaWEgY2FwdHVyZSBvbiBpT1MsIHdlIG11
c3QgZmlyc3QgdXNlIHRoZSBBVkZvdW5kYXRpb24gQVBJIHRvIGNoZWNrL3JlcXVlc3QKKyAgICAg
ICAgY2FwdHVyZSBwZXJtaXNzaW9uIGZyb20gdGhlIHVzZXIgZm9yIFNhZmFyaS4gVGhlbiwgU2Fm
YXJpIG11c3QgcmVxdWVzdCBwZXJtaXNzaW9uIG9uIGJlaGFsZgorICAgICAgICBvZiB0aGUgd2Vi
cGFnZSB0byB1c2UgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHksIFNhZmFyaSBtdXN0IHBy
ZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcworICAgICAgICB0YWtpbmcgcGxhY2UsIHNvIFdl
YktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdp
bm5pbmcgYW5kIGVuZGluZy4KKyAgICAgICAgVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBtZXRo
b2RzIHRvIFdLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhl
IHVzZXIsCisgICAgICAgIGNoZWNrIGZvciBwZXJtaXNzaW9uLCBub3RpZnkgdGhhdCBhIGNhcHR1
cmUgc2Vzc2lvbiBoYXMgYmVndW4sIGFuZCBub3RpZnkgdGhhdCBhIGNhcHR1cmUKKyAgICAgICAg
c2Vzc2lvbiBoYXMgZW5kZWQuIEFkZGl0aW9uYWxseSwgd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhv
ZCB0byBXS1dlYlZpZXcgdGhhdCBhbGxvd3MgU2FmYXJpCisgICAgICAgIHRvIHN0b3AgYSBjYXB0
dXJlIHNlc3Npb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQg
bWV0aG9kcyB0byByZXF1ZXN0L2NoZWNrIHBlcm1pc3Npb24gYW5kCisgICAgICAgIG5vdGlmeSBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0
b3BNZWRpYUNhcHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vz
c2lvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyLm1tOiBBZGRl
ZC4KKyAgICAgICAgKC1bV0tVc2VyTWVkaWFQcm92aWRlciBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFSZXF1ZXN0RnJvbU9yaWdpbjp0b3BMZXZlbE9yaWdpbjpmcmFtZTpyZXF1ZXN0OnZpZXc6XSk6
CisgICAgICAgIElmIG9uIGlPUywgd2UgZmlyc3QgY2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3Jh
bnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8gdXNlIGNhcHR1cmUgZGV2aWNlcywKKyAgICAg
ICAgYW5kIGlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRoZW4sIHdlIHJlcXVlc3QgcGVy
bWlzc2lvbiBmcm9tIHRoZSB1aURlbGVnYXRlLgorICAgICAgICAoLVtXS1VzZXJNZWRpYVByb3Zp
ZGVyIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjp0b3BMZXZlbE9yaWdpbjpmcmFt
ZTpyZXF1ZXN0OnZpZXc6XSk6CisgICAgICAgIENoZWNrcyB0aGUgY2xpZW50IGZvciBwZXJtaXNz
aW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCisgICAgICAgICgtW1dLVXNlck1lZGlhUHJv
dmlkZXIgbWVkaWFTdGF0ZURpZENoYW5nZTpmb3JWaWV3Ol0pOiBOb3RpZmllcyB0aGUgY2xpZW50
IG9mIGEgY2FwdHVyZQorICAgICAgICBzZXNzaW9uIGJlZ2lubmluZy9lbmRpbmcuCisgICAgICAg
ICgtW1dLVXNlck1lZGlhUHJvdmlkZXIgX2NhcHR1cmVEZXZpY2VBdXRob3JpemVyXSk6IElmIG9u
IGlPUywgdGhpcyByZXR1cm5zIGFuIG9iamVjdCB0aGF0CisgICAgICAgIGNhbiBiZSB1c2VkIHRv
IGFjcXVpcmUgY2FtZXJhL21pY3JvcGhvbmUgcGVybWlzc2lvbi4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudDo6bWVkaWFTdGF0ZURpZENoYW5nZSk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIEdvZXMgdGhyb3VnaCB0aGUg
d2VicGFnZSBwcm94eSB0byByZXF1ZXN0IHBlcm1pc3Npb24gdGhyb3VnaCBib3RoIEFQSXMuCisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpl
bnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBSZXF1ZXN0
cyBjYXB0dXJlCisgICAgICAgIHBlcm1pc3Npb24gZnJvbSB0aGUgY2xpZW50LgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6
IENoZWNrcyBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbQorICAgICAgICB0aGUgY2xpZW50LgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogTm90
aWZpZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbgorICAgICAgICBiZWdpbm5pbmcv
ZW5kaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjp1c2VyTWVkaWFQcm92aWRlcik6IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgV0tVc2VyTWVk
aWFQcm92aWRlci4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogVXNlcyB0aGUgV0tVc2VyTWVkaWFQcm92
aWRlcgorICAgICAgICB0byByZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JPcmlnaW4pOiBVc2VzIHRoZSBXS1VzZXJNZWRpYVByb3ZpZGVyIHRvCisgICAgICAg
IGNoZWNrIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGllbnQuCisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogVXNlcyB0aGUgV0tVc2Vy
TWVkaWFQcm92aWRlciB0byBub3RpZnkgdGhlCisgICAgICAgIGNsaWVudCBvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbTogQWRk
ZWQuCisgICAgICAgICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgcmVx
dWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbgorICAgICAg
ICB0byByZXF1ZXN0IG1pY3JvcGhvbmUgYWNjZXNzIGZyb20gdGhlIHVzZXIgZm9yIHRoZSBjbGll
bnQuCisgICAgICAgICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgcmVx
dWVzdENhbWVyYUF1dGhvcml6YXRpb246XSk6IFVzZXMgQVZGb3VuZGF0aW9uCisgICAgICAgIHRv
IHJlcXVlc3QgY2FtZXJhIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50LgorICAg
ICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIF9yZXF1ZXN0QXV0
aG9yaXphdGlvbkZvck1lZGlhVHlwZTpjYWxsYmFjazpdKToKKyAgICAgICAgSGVscGVyIG1ldGhv
ZCBmb3IgcmVxdWVzdGluZyBtaWNyb3Bob25lL2NhbWVyYSBhY2Nlc3MuCisKKyAgICAgICAgKiBX
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTEtMDkgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUmFuZ2UgZnJvbSBFeGNlcHRp
b25Db2RlIHRvIEV4Y2VwdGlvbk9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjMwY2Y3
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC02Myw2ICs2MywxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5z
ZXRzOwogLSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNG
b3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlv
bnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQ
b2ludDooQ0dQb2ludClwb2ludDsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc2hvdWxkUmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1
cmwgaXNNYWluRnJhbWU6KEJPT0wpaXNNYWluRnJhbWUgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTDsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOihCT09MKW1pY3JvcGhvbmUgY2Ft
ZXJhOihCT09MKWNhbWVyYSB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWRNaWNy
b3Bob25lLCBCT09MIGF1dGhvcml6ZWRDYW1lcmEpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWSWV3
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJ
ZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wg
YXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsK
Ky0gKHZvaWQpX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJW
aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmRD
YXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygx
MC4zKSk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxB
QkxFKGlvcyg5LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29t
bWl0UHJldmlld2VkVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRW
aWV3Q29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5TVVJMICop
aW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDkzMWU0ZDAuLmE3NDE2MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC00NDMzLDYgKzQ0MzMsMTEgQEAgLSAodm9pZClzZXRTZW1hbnRpY0NvbnRlbnRBdHRyaWJ1
dGU6KFVJU2VtYW50aWNDb250ZW50QXR0cmlidXRlKWNvbnRlbnRBdHRyaWJ1dGUKICAgICBfcGFn
ZS0+c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbih0b1VzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb24oY29udGVudEF0dHJpYnV0ZSkpOwogfQogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0
dXJlCit7CisgICAgX3BhZ2UtPnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkNhcHR1
cmVEZXZpY2VzQXJlTXV0ZWQpOworfQorCiAjZWxzZSAvLyAjaWYgUExBVEZPUk0oSU9TKQogCiAj
cHJhZ21hIG1hcmsgLSBPUyBYLXNwZWNpZmljIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMDNlODRj
Mi4uOWIwZTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI1NSw2ICsyNTUsOCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVs
ZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCistICh2b2lkKV9zdG9wTWVk
aWFDYXB0dXJlOworCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNlMmJiOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVBy
b2R1Y2VyLmg+CisKK0BjbGFzcyBXS1dlYlZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTsKK2NsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK30K
KworQGludGVyZmFjZSBXS1VzZXJNZWRpYVByb3ZpZGVyIDogTlNPYmplY3QKKworLSAodm9pZClk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFSZXF1ZXN0RnJvbU9yaWdpbjooV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mKXVzZXJNZWRpYU9yaWdpbiB0b3BMZXZlbE9yaWdpbjooV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mKXRvcExldmVsT3JpZ2luIGZyYW1lOihXZWJLaXQ6OldlYkZyYW1lUHJveHkmKWZy
YW1lIHJlcXVlc3Q6KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpcGVy
bWlzc2lvblJlcXVlc3QgdmlldzooV0tXZWJWaWV3ICopdmlldzsKKy0gKHZvaWQpY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpdXNlck1l
ZGlhT3JpZ2luIHRvcExldmVsT3JpZ2luOihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpdG9wTGV2
ZWxPcmlnaW4gZnJhbWU6KFdlYktpdDo6V2ViRnJhbWVQcm94eSYpZnJhbWUgcmVxdWVzdDooV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpcGVybWlzc2lvblJlcXVlc3Qgdmll
dzooV0tXZWJWaWV3ICopdmlldzsKKy0gKHZvaWQpbWVkaWFTdGF0ZURpZENoYW5nZTooV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKW1lZGlhU3RhdGUgZm9yVmlldzooV0tX
ZWJWaWV3ICopdmlldzsKKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV0tVc2VyTWVkaWFQcm92aWRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NTZlYzdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXIubW0KQEAgLTAsMCArMSwxNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tVc2VyTWVkaWFQ
cm92aWRlci5oIgorCisjaW1wb3J0ICJBUElTZWN1cml0eU9yaWdpbi5oIgorI2ltcG9ydCAiVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKKyNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCIKKyNpbXBvcnQgIldLVUlEZWxlZ2F0ZVByaXZhdGUuaCIKKyNpbXBv
cnQgIldLV2ViVmlldy5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0
IDx3dGYvUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFURk9S
TShJT1MpCisjaW1wb3J0ICJXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgi
CisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworCitAaW1wbGVtZW50YXRpb24gV0tVc2VyTWVkaWFQcm92aWRlciB7CisgICAgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIF9tZWRpYVN0YXRlOworI2lmIFBMQVRGT1JNKElPUykK
KyAgICBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICpfY2FwdHVyZURldmlj
ZUF1dGhvcml6ZXI7CisjZW5kaWYKK30KKworLSAodm9pZClkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFSZXF1ZXN0RnJvbU9yaWdpbjooU2VjdXJpdHlPcmlnaW4mKXVzZXJNZWRpYU9yaWdpbiB0b3BM
ZXZlbE9yaWdpbjooU2VjdXJpdHlPcmlnaW4mKXRvcExldmVsT3JpZ2luIGZyYW1lOihXZWJGcmFt
ZVByb3h5JilmcmFtZSByZXF1ZXN0OihVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jilw
ZXJtaXNzaW9uUmVxdWVzdCB2aWV3OihXS1dlYlZpZXcgKil2aWV3IHsKKyAgICBpZDxXS1VJRGVs
ZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+PihbdmlldyBVSURlbGVnYXRlXSk7CisgICAgaWYgKCFbdWlEZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yTWljcm9waG9uZTpjYW1lcmE6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6
KV0pIHsKKyAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2Fi
bGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRpbyA9
IHBlcm1pc3Npb25SZXF1ZXN0LnJlcXVpcmVzQXVkaW8oKTsKKyAgICBib29sIHJlcXVpcmVzVmlk
ZW8gPSBwZXJtaXNzaW9uUmVxdWVzdC5yZXF1aXJlc1ZpZGVvKCk7CisgICAgaWYgKCFyZXF1aXJl
c0F1ZGlvICYmICFyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRl
bnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFs
UmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZv
aWQgKF51aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKSh2b2lkKSA9IF4geworICAgICAgICBj
b25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OworICAgICAgICBVUkwgcmVxdWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAg
ICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgICAg
IFt1aURlbGVnYXRlIF93ZWJWaWV3OnZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JNaWNyb3Bob25lOnJlcXVpcmVzQXVkaW8gY2FtZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVl
c3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJP
T0wgYXV0aG9yaXplZE1pY3JvcGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkgeworICAgICAg
ICAgICAgaWYgKChyZXF1aXJlc0F1ZGlvIT0gYXV0aG9yaXplZE1pY3JvcGhvbmUpIHx8IChyZXF1
aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRDYW1lcmEpKSB7CisgICAgICAgICAgICAgICAgcGVybWlz
c2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdmlkZW9E
ZXZpY2VVSUQgPSByZXF1aXJlc1ZpZGVvID8gcGVybWlzc2lvblJlcXVlc3QudmlkZW9EZXZpY2VV
SURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBhdWRp
b0RldmljZVVJRCA9IHJlcXVpcmVzQXVkaW8gPyBwZXJtaXNzaW9uUmVxdWVzdC5hdWRpb0Rldmlj
ZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVz
dC5hbGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsKKyAg
ICB9OworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0aW9u
QmxvY2spKHZvaWQpID0gXiB7CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAg
ICAgICBbc2VsZi5fY2FwdHVyZURldmljZUF1dGhvcml6ZXIgcmVxdWVzdENhbWVyYUF1dGhvcml6
YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6
ZWQpCisgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJt
aXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsKKyAgICAgICAgICAgIH1dOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsKKyAg
ICB9OworCisgICAgaWYgKHJlcXVpcmVzQXVkaW8pIHsKKyAgICAgICAgW3NlbGYuX2NhcHR1cmVE
ZXZpY2VBdXRob3JpemVyIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0
aG9yaXplZCkgeworICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKQorICAgICAgICAgICAgICAg
IHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYW1lcmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyAg
ICAgICAgfV07CisgICAgfSBlbHNlCisgICAgICAgIGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygp
OworI2Vsc2UKKyAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZW5kaWYKK30K
KworLSAodm9pZCljaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW46KFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJil1c2VyTWVkaWFPcmlnaW4gdG9wTGV2ZWxPcmlnaW46KFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJil0b3BMZXZlbE9yaWdpbiBmcmFtZTooV2ViRnJhbWVQcm94eSYpZnJhbWUg
cmVxdWVzdDooV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpcGVybWlzc2lv
blJlcXVlc3QgdmlldzooV0tXZWJWaWV3ICopdmlldworeworICAgIGlkPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+
KFt2aWV3IFVJRGVsZWdhdGVdKTsKKyAgICBpZiAoIVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1h
aW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOildKSB7CisgICAgICAg
IHBlcm1pc3Npb25SZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKCksIGZhbHNl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1h
aW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgVVJMIHJlcXVlc3RGcmFt
ZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAgIFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1h
aW5GcmFtZS0+dXJsKCkpOworCisgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6dmlldyBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWlu
RnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6
XihOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIHBlcm1pc3Npb25S
ZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKHNhbHQpLCBhdXRob3JpemVkKTsK
KyAgICB9XTsKK30KKworLSAodm9pZCltZWRpYVN0YXRlRGlkQ2hhbmdlOihNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MpbWVkaWFTdGF0ZSBmb3JWaWV3OihXS1dlYlZpZXcgKil2aWV3Cit7
CisgICAgaWQ8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW3ZpZXcgVUlEZWxlZ2F0ZV0pOworICAgIGlmICghKFt1
aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRCZWdpbkNh
cHR1cmVTZXNzaW9uOildICYmIFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjopXSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYVN0YXRlSGFzQWN0aXZl
Q2FwdHVyZSA9IF9tZWRpYVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlTWVkaWFDYXB0
dXJlRGV2aWNlOworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdNZWRpYVN0
YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IG1lZGlhU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3Rp
dmVNZWRpYUNhcHR1cmVEZXZpY2U7CisgICAgaWYgKG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0
dXJlID09IG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICByZXR1cm47CisK
KyAgICBfbWVkaWFTdGF0ZSA9IG1lZGlhU3RhdGU7CisgICAgaWYgKCFvbGRNZWRpYVN0YXRlSGFz
QWN0aXZlQ2FwdHVyZSAmJiBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkgeworICAgICAg
ICBbdWlEZWxlZ2F0ZSBfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246dmlld107CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1
cmUgJiYgIW5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICBbdWlEZWxlZ2F0
ZSBfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOnZpZXddOworfQorCisjaWYgUExBVEZPUk0o
SU9TKQorCistIChXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICopX2NhcHR1
cmVEZXZpY2VBdXRob3JpemVyCit7CisgICAgaWYgKCFfY2FwdHVyZURldmljZUF1dGhvcml6ZXIp
CisgICAgICAgIF9jYXB0dXJlRGV2aWNlQXV0aG9yaXplciA9IFtbV0tVc2VyTWVkaWFDYXB0dXJl
RGV2aWNlQXV0aG9yaXplcklPUyBhbGxvY10gaW5pdF07CisKKyAgICByZXR1cm4gX2NhcHR1cmVE
ZXZpY2VBdXRob3JpemVyOworfQorCisjZW5kaWYKKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKaW5kZXggNTcwMDQ3Yy4uODA0NmJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlLmgiCiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKK09CSkNfQ0xBU1Mg
V0tVc2VyTWVkaWFQcm92aWRlcjsKIAogI2lmIFVTRShBUFBLSVQpCiBPQkpDX0NMQVNTIFdLVmll
dzsKQEAgLTEzOCw2ICsxMzksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCisgICAgdmlydHVhbCBXS1VzZXJNZWRpYVByb3ZpZGVyICp1c2VyTWVkaWFQcm92aWRl
cigpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIG1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpID0gMDsKIAogI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19NVUxUSVBST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAppbmRleCA4ZmZjMTgzLi43OWM3OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC0xOTIsNyArMTkzLDcgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSgKICAgICAgICAgYXV0byB0b3BMZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRp
Zmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikpOwogICAgICAgICBhdXRvIHJl
cXVlc3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlELCBhdWRpb0RldmljZVVJRHMsIHZpZGVv
RGV2aWNlVUlEcyk7CiAKLSAgICAgICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJvY2Vzcygp
LndlYkZyYW1lKGZyYW1lSUQpLCAqdXNlck1lZGlhT3JpZ2luLmdldCgpLCAqdG9wTGV2ZWxPcmln
aW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKSB7CisgICAgICAgIGlmICghbV9wYWdlLmRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCptX3BhZ2UucHJvY2VzcygpLndlYkZy
YW1lKGZyYW1lSUQpLCAqdXNlck1lZGlhT3JpZ2luLmdldCgpLCAqdG9wTGV2ZWxPcmlnaW4uZ2V0
KCksIHJlcXVlc3QuZ2V0KCkpKSB7CiAgICAgICAgICAgICBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1
ZXN0cy50YWtlKHVzZXJNZWRpYUlEKTsKICAgICAgICAgICAgIHJlcXVlc3QtPmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpV
c2VyTWVkaWFEaXNhYmxlZCk7CiAgICAgICAgIH0KQEAgLTIxNiwxMyArMjE3LDEzIEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yRnJhbWUoCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRp
ZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQogewogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQpOwotICAgIG1fcGVuZGluZ0Rl
dmljZVJlcXVlc3RzLmFkZCh1c2VyTWVkaWFJRCwgcmVxdWVzdC5wdHIoKSk7CisgICAgYXV0byBj
aGVjayA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJN
ZWRpYUlEKTsKKyAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5hZGQodXNlck1lZGlhSUQsIGNo
ZWNrLnB0cigpKTsKIAogICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVy
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllcikpOwogICAgIGF1dG8gdG9wTGV2ZWxP
cmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIodG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIp
KTsKIAotICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKG1fcGFnZSwgKm1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksICp1
c2VyTWVkaWFPcmlnaW4uZ2V0KCksICp0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQo
KSkpIHsKKyAgICBpZiAoIW1fcGFnZS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
Km1fcGFnZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksICp1c2VyTWVkaWFPcmlnaW4uZ2V0
KCksICp0b3BMZXZlbE9yaWdpbi5nZXQoKSwgY2hlY2suZ2V0KCkpKSB7CiAgICAgICAgIG1fcGVu
ZGluZ0RldmljZVJlcXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwogICAgICAgICBtX3BhZ2UucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVt
ZXJhdGlvbih1c2VyTWVkaWFJRCwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+KCksIGVt
cHR5U3RyaW5nKCksIGZhbHNlKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGUwMjFiMDMuLmNjZmQ3ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02MzY2LDYgKzYz
NjYsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5hdmlnYXRpb25HZXN0dXJlU25hcHNob3RXYXNS
ZW1vdmVkKCkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZW1vdmVOYXZpZ2F0aW9u
R2VzdHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAorYm9vbCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYkZyYW1lUHJveHkmIGZyYW1lLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
KQoreworICAgIGlmIChtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCgqdGhpcywgZnJhbWUsIHVzZXJNZWRpYU9yaWdpbiwgdG9wTGV2ZWxPcmlnaW4s
IHJlcXVlc3QpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChtX3BhZ2VDbGllbnQu
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoZnJhbWUsIHVzZXJNZWRp
YU9yaWdpbiwgdG9wTGV2ZWxPcmlnaW4sIHJlcXVlc3QpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQYWdlUHJveHk6OmNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9y
aWdpbiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIGNoZWNrKQoreworICAgIGlmICht
X3VpQ2xpZW50LT5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oKnRoaXMsIGZyYW1l
LCB1c2VyTWVkaWFPcmlnaW4sIHRvcExldmVsT3JpZ2luLCBjaGVjaykpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgaWYgKG1fcGFnZUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JPcmlnaW4oZnJhbWUsIHVzZXJNZWRpYU9yaWdpbiwgdG9wTGV2ZWxPcmlnaW4sIGNoZWNrKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgV2Vi
UGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKIHsKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTikKQEAgLTYzODQsOCArNjQwNiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0
YXRlLAogICAgIGFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxl
KTsKIAogICAgIHBsYXlpbmdNZWRpYU1hc2sgfD0gTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlTWVk
aWFDYXB0dXJlRGV2aWNlOwotICAgIGlmICgob2xkU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSAh
PSAobV9tZWRpYVN0YXRlICYgcGxheWluZ01lZGlhTWFzaykpCisgICAgaWYgKChvbGRTdGF0ZSAm
IHBsYXlpbmdNZWRpYU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkg
ewogICAgICAgICBtX3VpQ2xpZW50LT5pc1BsYXlpbmdBdWRpb0RpZENoYW5nZSgqdGhpcyk7Cisg
ICAgICAgIG1fcGFnZUNsaWVudC5tZWRpYVN0YXRlRGlkQ2hhbmdlKG1fbWVkaWFTdGF0ZSk7Cisg
ICAgfQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoKG9sZFN0YXRlICYgTWVkaWFQcm9kdWNl
cjo6SGFzQXVkaW9PclZpZGVvKSAhPSAobV9tZWRpYVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFz
QXVkaW9PclZpZGVvKSkKICAgICAgICAgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxZjk5YWFmLi5kNzEz
MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDM5LDYg
KzEwMzksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0
dXJuICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1
ZGlvKTsgfQogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCk7CiAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFTdGF0ZTsgfQorICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKKyAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbihXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkmKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHZpZGVv
Q29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CkBAIC0xMjMwLDYgKzEyMzIsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0
aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCBEb3dubG9hZElEJik7CisKICAgICB2b2lkIHVu
YWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAgdm9pZCB3aWxsU3VibWl0Rm9y
bSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8
c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA2OWI2MTM1Li5lZTk0ZTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0z
NSw2ICszNSw3IEBACiBPQkpDX0NMQVNTIFdLQ29udGVudFZpZXc7CiBPQkpDX0NMQVNTIFdLV2Vi
VmlldzsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQzsKK09CSkNfQ0xBU1MgV0tV
c2VyTWVkaWFQcm92aWRlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCkBAIC02NSw2ICs2
NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIG92ZXJyaWRlOworICAgIFdLVXNlck1lZGlhUHJvdmlk
ZXIgKnVzZXJNZWRpYVByb3ZpZGVyKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4oV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBvdmVycmlkZTsKKyAgICBi
b29sIG1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpIG92ZXJy
aWRlOwogICAgIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKQEAgLTE5Nyw2ICsyMDIsNyBAQCBwcml2YXRlOgogICAgIFdLQ29udGVu
dFZpZXcgKm1fY29udGVudFZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0
YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKKyAgICBSZXRhaW5Q
dHI8V0tVc2VyTWVkaWFQcm92aWRlcj4gbV91c2VyTWVkaWFQcm92aWRlcjsKIH07CiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KaW5kZXggY2UzNjQwNS4uZTE5OGI4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00MCw2ICs0
MCw4IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKICNpbXBvcnQgIldL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFs
LmgiCisjaW1wb3J0ICJXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgiCisj
aW1wb3J0ICJXS1VzZXJNZWRpYVByb3ZpZGVyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1
cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lz
dHJ5LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgpAQCAtMjI2LDYgKzIyOCwzMiBA
QCBib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYkZyYW1lUHJveHkmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1dLVXNlck1l
ZGlhUHJvdmlkZXIgKlBhZ2VDbGllbnRJbXBsOjp1c2VyTWVkaWFQcm92aWRlcigpCit7CisgICAg
aWYgKCFtX3VzZXJNZWRpYVByb3ZpZGVyKQorICAgICAgICBtX3VzZXJNZWRpYVByb3ZpZGVyID0g
YWRvcHROUyhbW1dLVXNlck1lZGlhUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKKworICAgIHJldHVy
biBtX3VzZXJNZWRpYVByb3ZpZGVyLmdldCgpOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjpk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiBm
cmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYg
cmVxdWVzdCkKK3sKKyAgICBbdXNlck1lZGlhUHJvdmlkZXIoKSBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFSZXF1ZXN0RnJvbU9yaWdpbjp1c2VyTWVkaWFPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSB0
b3BMZXZlbE9yaWdpbjp0b3BMZXZlbE9yaWdpbi5zZWN1cml0eU9yaWdpbigpIGZyYW1lOmZyYW1l
IHJlcXVlc3Q6cmVxdWVzdCB2aWV3Om1fd2ViVmlld107CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgUGFnZUNsaWVudEltcGw6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkmIHJlcXVlc3QpCit7CisgICAgW3VzZXJNZWRpYVByb3ZpZGVyKCkgY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOnVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdp
bigpIHRvcExldmVsT3JpZ2luOnRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkgZnJhbWU6
ZnJhbWUgcmVxdWVzdDpyZXF1ZXN0IHZpZXc6bV93ZWJWaWV3XTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKK3sKKyAgICBbdXNlck1lZGlhUHJvdmlk
ZXIoKSBtZWRpYVN0YXRlRGlkQ2hhbmdlOm1lZGlhU3RhdGUgZm9yVmlldzptX3dlYlZpZXddOwor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2Fk
Rm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKQogewogICAgIFttX3dlYlZpZXcgX3NldEhhc0N1c3RvbUNvbnRlbnRWaWV3OnVz
ZUN1c3RvbUNvbnRlbnRQcm92aWRlciBsb2FkZWRNSU1FVHlwZTptaW1lVHlwZV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjBjMDkyODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaApAQCAtMCww
ICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgor
CisjaWYgUExBVEZPUk0oSU9TKQorCitAaW50ZXJmYWNlIFdLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MgOiBOU09iamVjdAorCistICh2b2lkKXJlcXVlc3RNaWNyb3Bob25lQXV0
aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrOworLSAodm9pZCly
ZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxi
YWNrOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNmY1ZWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0KQEAgLTAsMCArMSw1NCBAQAorLy8KKy8vICBXS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm0KKy8vICBXZWJLaXQyCisvLworLy8g
IENyZWF0ZWQgYnkgQW5kcmV3IEdvbGQgb24gMTEvOC8xNi4KKy8vCisvLworCisjaWYgUExBVEZP
Uk0oSU9TKQorCisjaW1wb3J0ICJXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
LmgiCisKKyNpbXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXIuaCIKKyNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVkNhcHR1cmVEZXZpY2UuaD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhRm9y
bWF0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFN
RVdPUksoQVZGb3VuZGF0aW9uKTsKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2Fw
dHVyZURldmljZSk7CitTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlw
ZUF1ZGlvLCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFW
TWVkaWFUeXBlVmlkZW8sIE5TU3RyaW5nICopOworCitAaW1wbGVtZW50YXRpb24gV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUworCistICh2b2lkKXJlcXVlc3RNaWNyb3Bob25l
QXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAg
W3NlbGYgX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlQXVk
aW8oKSBjYWxsYmFjazpjYWxsYmFja107Cit9CisKKy0gKHZvaWQpcmVxdWVzdENhbWVyYUF1dGhv
cml6YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjaworeworICAgIFtzZWxm
IF9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkg
Y2FsbGJhY2s6Y2FsbGJhY2tdOworfQorCistICh2b2lkKV9yZXF1ZXN0QXV0aG9yaXphdGlvbkZv
ck1lZGlhVHlwZTooTlNTdHJpbmcgKiltZWRpYVR5cGUgY2FsbGJhY2s6KHZvaWQoXikoQk9PTCBh
dXRob3JpemVkKSljYWxsYmFjaworeworICAgIEFTU0VSVChbbWVkaWFUeXBlIGlzRXF1YWxUb1N0
cmluZzpnZXRBVk1lZGlhVHlwZUF1ZGlvKCldIHx8IFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5n
OmdldEFWTWVkaWFUeXBlVmlkZW8oKV0pOworCisgICAgQVZBdXRob3JpemF0aW9uU3RhdHVzIGF1
dGhvcml6YXRpb25TdGF0dXMgPSBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0
aW9uU3RhdHVzRm9yTWVkaWFUeXBlOm1lZGlhVHlwZV07CisgICAgaWYgKGF1dGhvcml6YXRpb25T
dGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzRGVuaWVkIHx8IGF1dGhvcml6YXRpb25TdGF0
dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZCkgeworICAgICAgICBjYWxsYmFj
ayhOTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGF1dGhvcml6YXRpb25TdGF0
dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzQXV0aG9yaXplZCkgeworICAgICAgICBjYWxsYmFj
ayhZRVMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW2dldEFWQ2FwdHVyZURldmlj
ZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTptZWRpYVR5cGUgY29tcGxldGlvbkhh
bmRsZXI6Y2FsbGJhY2tdOworfQorCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFhNjA2NzkuLjY5MGUy
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE3OTIsMTAgKzE3OTIsMTQgQEAKIAkJQ0VEQTEyRTIxNTJDRDFBRTAwRDlFMDhE
IC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRURBMTJERjE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmNwcCAqLzsgfTsKIAkJQ0VEQTEyRTMxNTJDRDFCMzAwRDlFMDhE
IC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdlYkFsdGVy
bmF0aXZlVGV4dENsaWVudC5oICovOyB9OwogCQlDRUU0QUUyQjFBNURDRjQzMDAwMkY0OUIgLyog
VUlLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFRTRBRTJBMUE1RENGNDMwMDAyRjQ5QiAvKiBVSUtpdFNQSS5oICovOyB9OworCQlEMzIzMkU4
NDFERDI0RkI5MDA2RUI0QTQgLyogV0tVc2VyTWVkaWFQcm92aWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDMyMzJFODMxREQyNERGMzAwNkVCNEE0
IC8qIFdLVXNlck1lZGlhUHJvdmlkZXIuaCAqLzsgfTsKKwkJRDMyMzJFODcxREQyOTRDRTAwNkVC
NEE0IC8qIFdLVXNlck1lZGlhUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMzIzMkU4NjFERDI5NENFMDA2RUI0QTQgLyogV0tVc2VyTWVk
aWFQcm92aWRlci5tbSAqLzsgfTsKIAkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBv
cHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLzsgfTsKIAkJ
RDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5
IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyog
V2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwICovOyB9OwogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9w
dXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
M0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CisJ
CUQzREIzN0FBMUREM0Y1QjQwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUy5oICovOyB9OworCQlEM0RCMzdBQjFERDNGNUI4MDA0NzM3NEMgLyogV0tVc2Vy
TWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICovOyB9OwogCQlERjU4QzYzNjEz
NzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGNThDNjM1MTM3MUFDQTAwMEY5QTM3
QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURF
MDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jhbmdl
LmggKi87IH07CiAJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBEYXRhYmFzZVByb2Nlc3NJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZF
RjM5QzE5MEY3OTFDMDA3MzE2NTggLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1tICovOyB9OwpAQCAt
Mzk0OCwxMCArMzk1MiwxNCBAQAogCQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkFsdGVybmF0aXZlVGV4dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RURBMTJERjE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFRTRBRTJBMUE1RENGNDMw
MDAyRjQ5QiAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
SUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMzIzMkU4MzFERDI0REYz
MDA2RUI0QTQgLyogV0tVc2VyTWVkaWFQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJN
ZWRpYVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMjMyRTg2MURE
Mjk0Q0UwMDZFQjRBNCAvKiBXS1VzZXJNZWRpYVByb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQcm92aWRlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVw
TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQb3B1cE1l
bnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0MzExRkY0QjY1MDAw
MzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0NDEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VhcmNoUG9w
dXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIzN0E4MUREM0Y1QTcw
MDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MuaDsgcGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIzN0E5MUREM0Y1QTcwMDQ3
Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUy5tbTsgcGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzMTEzNzFB
QzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2Vi
V2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMx
OEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ4NDgsNiArNDg1Niw4IEBACiAJCQkJMkRGQzdEQkExQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZp
ZXdJbXBsLm1tICovLAogCQkJCTFBRDAxQkNCMTkwNUQ1NDkwMEM5QzQ1RiAvKiBXS1JlbG9hZEZy
YW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5oICovLAogCQkJCTFBRDAxQkNBMTkwNUQ1NDkwMEM5
QzQ1RiAvKiBXS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbSAqLywKKwkJCQlE
MzIzMkU4MzFERDI0REYzMDA2RUI0QTQgLyogV0tVc2VyTWVkaWFQcm92aWRlci5oICovLAorCQkJ
CUQzMjMyRTg2MUREMjk0Q0UwMDZFQjRBNCAvKiBXS1VzZXJNZWRpYVByb3ZpZGVyLm1tICovLAog
CQkJCTJEN0FBRkQyMThDODY0MDYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIu
aCAqLywKIAkJCQkyREM2RDlDMTE4QzQ0QTYxMDA0M0JBRDQgLyogV0tXZWJWaWV3Q29udGVudFBy
b3ZpZGVyUmVnaXN0cnkuaCAqLywKIAkJCQkyREM2RDlDMjE4QzQ0QTYxMDA0M0JBRDQgLyogV0tX
ZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkubW0gKi8sCkBAIC01MDY5LDYgKzUwNzksOCBA
QAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCiAJ
CQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJl
UmVjb2duaXplci5oICovLAogCQkJCTI2RjEwQkU3MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRo
ZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubSAqLywKKwkJCQlEM0RCMzdBODFERDNGNUE3
MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICovLAor
CQkJCUQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VB
dXRob3JpemVySU9TLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtNzkwMyw2ICs3OTE1LDcgQEAKIAkJCQkxQTQ0Qjk1QzE2QjczRjlG
MDBCN0JCRDggLyogU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3
MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUUwMEQ2QzE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlEM0RCMzdBQTFERDNGNUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk2QkQ4NUQx
NTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UxQTBCRDYxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVhZGVycyAqLywK
QEAgLTc5MzcsNiArNzk1MCw3IEBACiAJCQkJOTk1NUE2RUMxQzc5ODBDMjAwRUI2QTkzIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzBBMTk1ODFDOTAwNjhG
MDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUMwQTE5NDcxQzhGRjFBODAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzMjMyRTg0MUREMjRGQjkwMDZFQjRBNCAvKiBXS1Vz
ZXJNZWRpYVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzBBMTk1NDFDOEZGREZCMDBG
RTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQzBBMTk1QzFDOTE2RTFCMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eVNjcmlwdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3MkJBMUUxMUU2NDkwNzAw
MUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC05NjU5LDYg
Kzk2NzMsNyBAQAogCQkJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkRGQzdEQkMxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzAzMzdERDExMjdBMjk4MDAwOEZGNEY0IC8qIFdlYldoZWVsRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRDNEQjM3QUIxREQzRjVCODAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NjgxNjBEMDE4
NzY0NTU3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyOUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdEJhc2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2OTMsNiArOTcwOCw3
IEBACiAJCQkJQkMyMDUyODIxMUM5NDI4NDAwOEYzMzc1IC8qIFdLQnVuZGxlUGFnZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3Q0Y0N0ZGNjE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdl
QmFubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRjQ3RkZFMTcyNzZBRTMwMDhBQ0I5MSAv
KiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlEMzIzMkU4NzFE
RDI5NENFMDA2RUI0QTQgLyogV0tVc2VyTWVkaWFQcm92aWRlci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDN0I2MzNFMTJBNDVEMTIwMEQxNzRBNCAvKiBXS0J1bmRsZVBhZ2VHcm91cC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFRENBNzFCNzEyOEREQThDMDAyMDFCMjYgLyogV0tCdW5kbGVQYWdl
T3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwQzU3QTEyNDBBNTQ2MDA4QzVFMjkg
LyogV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKLS0gCjIuMTAuMSAoQXBw
bGUgR2l0LTc4KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294531</attachid>
            <date>2016-11-11 14:02:39 -0800</date>
            <delta_ts>2016-11-11 14:03:40 -0800</delta_ts>
            <desc>Proposed patc v3</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>54181</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSBkNDgzMTc4NmU5YTY1NmI5YjI0ZTc4MDVkZjA4MDIyZjA3YmRlMDhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBG
cmksIDExIE5vdiAyMDE2IDEzOjU2OjQ2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8gY2hlY2svcmVxdWVzdApjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0IHBlcm1pc3Npb24gb24g
YmVoYWxmCm9mIHRoZSB3ZWJwYWdlIHRvIHVzZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxs
eSwgU2FmYXJpIG11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzCnRha2luZyBwbGFj
ZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNz
aW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLgpUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhv
ZHMgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciwKY2hlY2sgZm9yIHBlcm1pc3Npb24sIG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9u
IGhhcyBiZWd1biwgYW5kIG5vdGlmeSB0aGF0IGEgY2FwdHVyZQpzZXNzaW9uIGhhcyBlbmRlZC4g
QWRkaXRpb25hbGx5LCB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0
IGFsbG93cyBTYWZhcmkKIHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCgoqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXSk6IEFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCiogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVy
Q29jb2EuaDogQWRkZWQuCiogVUlQcm9jZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXJDb2Nv
YS5tbTogQWRkZWQuCihXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E6OmNyZWF0ZSk6IEZhY3Rvcnkg
aW5pdGlhbGl6ZXIuCihXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E6OmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVJlcXVlc3RGcm9tT3JpZ2luKToKSWYgb24gaU9TLCB3ZSBmaXJzdCBjaGVjayB0aGF0
IHRoZSB1c2VyIGhhcyBncmFudGVkIHRoZSBjbGllbnQgcGVybWlzc2lvbiB0byB1c2UgY2FwdHVy
ZSBkZXZpY2VzLAphbmQgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiwgd2UgcmVx
dWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXS1VzZXJNZWRpYVByb3ZpZGVy
Q29jb2E6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CkNoZWNrcyB0aGUgY2xp
ZW50IGZvciBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCihXS1VzZXJNZWRp
YVByb3ZpZGVyQ29jb2E6Om1lZGlhU3RhdGVEaWRDaGFuZ2UpOiAgTm90aWZpZXMgdGhlIGNsaWVu
dCBvZiBhIGNhcHR1cmUKc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgooV0tVc2VyTWVkaWFQcm92
aWRlckNvY29hOjpjYXB0dXJlRGV2aWNlQXV0aG9yaXplcik6IElmIG9uIGlPUywgdGhpcyByZXR1
cm5zIGFuIG9iamVjdCB0aGF0CmNhbiBiZSB1c2VkIHRvIGFjcXVpcmUgY2FtZXJhL21pY3JvcGhv
bmUgcGVybWlzc2lvbi4KCiogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKFdlYktpdDo6UGFnZUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgooV2ViS2l0
OjpQYWdlQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOgooV2ViS2l0
OjpQYWdlQ2xpZW50OjptZWRpYVN0YXRlRGlkQ2hhbmdlKToKCiogVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUpOgpHb2VzIHRocm91Z2ggdGhlIHdlYnBhZ2UgcHJveHkgdG8gcmVxdWVzdCBwZXJtaXNz
aW9uIHRocm91Z2ggYm90aCBBUElzLgooV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgpEaXR0by4KCiog
VUlQcm9jZXNzL1dLVXNlck1lZGlhUHJvdmlkZXIuaDogQWRkZWQuCihXZWJLaXQ6OldLVXNlck1l
ZGlhUHJvdmlkZXI6On5XS1VzZXJNZWRpYVByb3ZpZGVyKToKCiogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QpOiBSZXF1ZXN0cyBjYXB0dXJlCnBlcm1pc3Npb24gZnJvbSB0aGUg
Y2xpZW50LgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbik6IENoZWNrcyBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbQp0aGUgY2xpZW50LgooV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogTm90aWZpZXMgdGhl
IGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbgpiZWdpbm5pbmcvZW5kaW5nLgoKKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CiogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgoq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CihXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjp1c2VyTWVkaWFQcm92aWRlcik6IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgV0tVc2VyTWVk
aWFQcm92aWRlci4KKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogVXNlcyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlcgp0byBy
ZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGllbnQuCihXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBVc2VzIHRoZSBX
S1VzZXJNZWRpYVByb3ZpZGVyIHRvCmNoZWNrIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBj
bGllbnQuCihXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogVXNl
cyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlciB0byBub3RpZnkgdGhlCmNsaWVudCBvZiBhIGNhcHR1
cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgoKKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDogQWRkZWQuCiogVUlQcm9jZXNzL2lvcy9XS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOiBBZGRlZC4KKC1bV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyByZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6YXRp
b246XSk6IFVzZXMgQVZGb3VuZGF0aW9uCnRvIHJlcXVlc3QgbWljcm9waG9uZSBhY2Nlc3MgZnJv
bSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUyByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRp
b24KdG8gcmVxdWVzdCBjYW1lcmEgYWNjZXNzIGZyb20gdGhlIHVzZXIgZm9yIHRoZSBjbGllbnQu
CigtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgX3JlcXVlc3RBdXRob3Jp
emF0aW9uRm9yTWVkaWFUeXBlOmNhbGxiYWNrOl0pOgpIZWxwZXIgbWV0aG9kIGZvciByZXF1ZXN0
aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KCiogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDc5ICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmggICAgICB8ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSAgICB8ICAgNSArCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCB8ICAgMiArCiAuLi4vVUlQcm9jZXNzL0NvY29h
L1dLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oICAgICB8ICA2NyArKysrKysrKysKIC4uLi9VSVBy
b2Nlc3MvQ29jb2EvV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tICAgIHwgMTU4ICsrKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCAgICAg
ICAgICAgICAgfCAgIDYgKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRp
YVByb3ZpZGVyLmggICAgIHwgIDQ4ICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgIDI2ICsrKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCAgIHwgICA2ICsKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gIHwgIDI4ICsrKysKIC4uLi9pb3Mv
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICAgIHwgIDM3ICsrKysrCiAu
Li4vaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gICB8ICA3MiAr
KysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogICB8ICAyMCArKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDU2NCBpbnNlcnRpb25zKCspLCA2IGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92
aWRlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1
dGhvcml6ZXJJT1MubW0KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTdmZDhmMS4uZTY2NDljOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDgyIEBACisyMDE2LTExLTExICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IGZvciBIVE1MIE1lZGlhIENhcHR1cmUgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGVu
YWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91bmRh
dGlvbiBBUEkgdG8gY2hlY2svcmVxdWVzdAorICAgICAgICBjYXB0dXJlIHBlcm1pc3Npb24gZnJv
bSB0aGUgdXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0IHBlcm1pc3Np
b24gb24gYmVoYWxmCisgICAgICAgIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSBjYXB0dXJlIGRldmlj
ZXMuIEFkZGl0aW9uYWxseSwgU2FmYXJpIG11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJl
IGlzCisgICAgICAgIHRha2luZyBwbGFjZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUg
Y2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLgorICAgICAg
ICBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhvZHMgdG8gV0tVSURlbGVnYXRlUHJpdmF0
ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciwKKyAgICAgICAgY2hlY2sgZm9y
IHBlcm1pc3Npb24sIG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5k
IG5vdGlmeSB0aGF0IGEgY2FwdHVyZQorICAgICAgICBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRp
b25hbGx5LCB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93
cyBTYWZhcmkKKyAgICAgICAgIHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3N0b3BNZWRpYUNhcHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUg
c2Vzc2lvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXJD
b2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E6OmNyZWF0
ZSk6IEZhY3RvcnkgaW5pdGlhbGl6ZXIuCisgICAgICAgIChXS1VzZXJNZWRpYVByb3ZpZGVyQ29j
b2E6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVJlcXVlc3RGcm9tT3JpZ2luKTogCisgICAgICAg
IElmIG9uIGlPUywgd2UgZmlyc3QgY2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUg
Y2xpZW50IHBlcm1pc3Npb24gdG8gdXNlIGNhcHR1cmUgZGV2aWNlcywKKyAgICAgICAgYW5kIGlm
IG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRoZW4sIHdlIHJlcXVlc3QgcGVybWlzc2lvbiBm
cm9tIHRoZSB1aURlbGVnYXRlLgorICAgICAgICAoV0tVc2VyTWVkaWFQcm92aWRlckNvY29hOjpj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICBDaGVja3MgdGhlIGNs
aWVudCBmb3IgcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2VzLgorICAgICAgICAo
V0tVc2VyTWVkaWFQcm92aWRlckNvY29hOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogIE5vdGlmaWVz
IHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Npb24gYmVnaW5uaW5nL2VuZGlu
Zy4KKyAgICAgICAgKFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYTo6Y2FwdHVyZURldmljZUF1dGhv
cml6ZXIpOiBJZiBvbiBpT1MsIHRoaXMgcmV0dXJucyBhbiBvYmplY3QgdGhhdAorICAgICAgICBj
YW4gYmUgdXNlZCB0byBhY3F1aXJlIGNhbWVyYS9taWNyb3Bob25lIHBlcm1pc3Npb24uCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6Om1lZGlhU3RhdGVEaWRDaGFuZ2UpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAgICBHb2Vz
IHRocm91Z2ggdGhlIHdlYnBhZ2UgcHJveHkgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIHRocm91Z2gg
Ym90aCBBUElzLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICBEaXR0
by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXS1VzZXJNZWRpYVByb3ZpZGVyOjp+V0tVc2VyTWVkaWFQcm92aWRl
cik6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCk6IFJlcXVlc3RzIGNhcHR1cmUKKyAgICAgICAgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luKTogQ2hlY2tzIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tCisgICAgICAgIHRo
ZSBjbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uCisgICAg
ICAgIGJlZ2lubmluZy9lbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjp1c2VyTWVkaWFQcm92aWRlcik6IFJldHVybnMgYW4gaW5zdGFuY2Ug
b2YgV0tVc2VyTWVkaWFQcm92aWRlci4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogVXNlcyB0aGUgV0tV
c2VyTWVkaWFQcm92aWRlcgorICAgICAgICB0byByZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBm
cm9tIHRoZSBjbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBVc2VzIHRoZSBXS1VzZXJNZWRpYVByb3ZpZGVy
IHRvCisgICAgICAgIGNoZWNrIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGllbnQuCisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogVXNl
cyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlciB0byBub3RpZnkgdGhlCisgICAgICAgIGNsaWVudCBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MgcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRh
dGlvbgorICAgICAgICB0byByZXF1ZXN0IG1pY3JvcGhvbmUgYWNjZXNzIGZyb20gdGhlIHVzZXIg
Zm9yIHRoZSBjbGllbnQuCisgICAgICAgICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246XSk6IFVzZXMgQVZGb3VuZGF0aW9u
CisgICAgICAgIHRvIHJlcXVlc3QgY2FtZXJhIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUg
Y2xpZW50LgorICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
IF9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTpjYWxsYmFjazpdKToKKyAgICAgICAg
SGVscGVyIG1ldGhvZCBmb3IgcmVxdWVzdGluZyBtaWNyb3Bob25lL2NhbWVyYSBhY2Nlc3MuCisK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTEt
MTAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IHVudXNlZCBGb250U2VydmljZSBmcm9tIHNhbmRib3ggcHJvZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApp
bmRleCAzYzU0ZWJmLi4zMGNmNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtNjMsNiArNjMsMTAg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKill
bGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZh
dWx0QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90
SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAtIChCT09MKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRp
b25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlzTWFpbkZyYW1lIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZToo
Qk9PTCltaWNyb3Bob25lIGNhbWVyYTooQk9PTCljYW1lcmEgdXJsOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBhdXRob3JpemVkQ2FtZXJhKSlkZWNpc2lv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVklldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lv
bjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CistICh2
b2lkKV93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwg
Kil1cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250
cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4w
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1h
Z2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCA0ZjhiMzVmLi43OTJjNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDQzNSw2ICs0NDM1LDExIEBAIC0gKHZvaWQpc2V0U2Vt
YW50aWNDb250ZW50QXR0cmlidXRlOihVSVNlbWFudGljQ29udGVudEF0dHJpYnV0ZSljb250ZW50
QXR0cmlidXRlCiAgICAgX3BhZ2UtPnNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24odG9V
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKGNvbnRlbnRBdHRyaWJ1dGUpKTsKIH0KIAorLSAo
dm9pZClfc3RvcE1lZGlhQ2FwdHVyZQoreworICAgIF9wYWdlLT5zZXRNdXRlZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpDYXB0dXJlRGV2aWNlc0FyZU11dGVkKTsKK30KKwogI2Vsc2UgLy8gI2lm
IFBMQVRGT1JNKElPUykKIAogI3ByYWdtYSBtYXJrIC0gT1MgWC1zcGVjaWZpYyBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCmluZGV4IDAzZTg0YzIuLjliMGU1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNTUsNiArMjU1
LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkg
ewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikg
aWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
IAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZTsKKwogQGVuZAogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJN
ZWRpYVByb3ZpZGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1Vz
ZXJNZWRpYVByb3ZpZGVyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yOWNiNzk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXIuaCIKKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TOworT0JKQ19DTEFTUyBXS1dlYlZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTsKK2NsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKKwor
Y2xhc3MgV0tVc2VyTWVkaWFQcm92aWRlckNvY29hIGZpbmFsIDogcHVibGljIFdLVXNlck1lZGlh
UHJvdmlkZXIgeworICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8V0tVc2VyTWVkaWFQcm92aWRl
ckNvY29hPiBzdGQ6Om1ha2VfdW5pcXVlPFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYT4oKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdLVXNlck1lZGlhUHJvdmlkZXJDb2Nv
YT4gY3JlYXRlKCk7CisKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVJlcXVlc3RG
cm9tT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yZ2luLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkm
LCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBXS1dlYlZpZXcqKSBv
dmVycmlkZTsKKyAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmLCBXS1dlYlZpZXcqKSBvdmVycmlkZTsKKyAgICB2
b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzLCBXS1dlYlZpZXcqKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBXS1VzZXJNZWRp
YVByb3ZpZGVyQ29jb2EoKQorICAgIHsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAg
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqY2FwdHVyZURldmljZUF1dGhv
cml6ZXIoKTsKKyNlbmRpZgorCisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIF9tZWRpYVN0YXRlIHsgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5n
IH07CisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJldGFpblB0cjxXS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TPiBfY2FwdHVyZURldmljZUF1dGhvcml6ZXI7CisjZW5kaWYKKwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dLVXNl
ck1lZGlhUHJvdmlkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
S1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uODRkOTEyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0KQEAgLTAsMCArMSwxNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tVc2VyTWVkaWFQ
cm92aWRlckNvY29hLmgiCisKKyNpbXBvcnQgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW1wb3J0
ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2ltcG9ydCAiV0tVSURlbGVnYXRlUHJpdmF0ZS5oIgor
I2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgorI2ltcG9y
dCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBM
QVRGT1JNKElPUykKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1MuaCIKKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E+IFdL
VXNlck1lZGlhUHJvdmlkZXJDb2NvYTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E+KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVk
aWFQcm92aWRlckNvY29hOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFSZXF1ZXN0RnJvbU9yaWdp
bihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUs
IFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVl
c3QsIFdLV2ViVmlldyAqdmlldykKK3sKKyAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURl
bGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbdmlldyBVSURl
bGVnYXRlXSk7CisgICAgaWYgKCFbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpj
YW1lcmE6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgcGVy
bWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRpbyA9IHBlcm1pc3Npb25SZXF1ZXN0
LnJlcXVpcmVzQXVkaW8oKTsKKyAgICBib29sIHJlcXVpcmVzVmlkZW8gPSBwZXJtaXNzaW9uUmVx
dWVzdC5yZXF1aXJlc1ZpZGVvKCk7CisgICAgaWYgKCFyZXF1aXJlc0F1ZGlvICYmICFyZXF1aXJl
c1ZpZGVvKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0
aG9yaXphdGlvbkJsb2NrKSh2b2lkKSA9IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5
KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgICAgICBVUkwgcmVx
dWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgICAgIFVSTCBtYWluRnJhbWVV
UkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJW
aWV3OnZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJlcXVp
cmVzQXVkaW8gY2FtZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJh
bWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1pY3Jv
cGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1aXJl
c0F1ZGlvIT0gYXV0aG9yaXplZE1pY3JvcGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhv
cml6ZWRDYW1lcmEpKSB7CisgICAgICAgICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJl
c1ZpZGVvID8gcGVybWlzc2lvblJlcXVlc3QudmlkZW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0
cmluZygpOworICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCA9IHJlcXVp
cmVzQXVkaW8gPyBwZXJtaXNzaW9uUmVxdWVzdC5hdWRpb0RldmljZVVJRHMoKS5maXJzdCgpIDog
U3RyaW5nKCk7CisgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5hbGxvdyhhdWRpb0Rldmlj
ZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsKKyAgICB9OworCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0aW9uQmxvY2spKHZvaWQpID0gXiB7
CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgICAgICBbY2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIoKSByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0aG9yaXpl
ZCkgeworICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkKKyAgICAgICAgICAgICAgICAg
ICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaygpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
dWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAocmVxdWly
ZXNBdWRpbykgeworICAgICAgICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0TWlj
cm9waG9uZUF1dGhvcml6YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgIGlm
ICghYXV0aG9yaXplZCkKKyAgICAgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
Y2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgIH1dOworICAgIH0gZWxzZQorICAg
ICAgICBjYW1lcmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyNlbHNlCisgICAgdWlEZWxlZ2F0ZUF1
dGhvcml6YXRpb25CbG9jaygpOworI2VuZGlmCit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQcm92aWRl
ckNvY29hOjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExl
dmVsT3JpZ2luLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCwgV0tXZWJWaWV3ICp2aWV3
KQoreworICAgIGlkPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2Fz
dDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFt2aWV3IFVJRGVsZWdhdGVdKTsKKyAgICBpZiAo
IVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOildKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LnNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZy
YW1lKCk7CisgICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAg
IFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6dmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVz
dEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1l
LmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6XihOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3Jp
emVkKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8o
U3RyaW5nKHNhbHQpLCBhdXRob3JpemVkKTsKKyAgICB9XTsKK30KKwordm9pZCBXS1VzZXJNZWRp
YVByb3ZpZGVyQ29jb2E6Om1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUsIFdLV2ViVmlldyAqdmlldykKK3sKKyAgICBp
ZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+PihbdmlldyBVSURlbGVnYXRlXSk7CisgICAgaWYgKCEoW3VpRGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNl
c3Npb246KV0gJiYgW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOildKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJl
ID0gX21lZGlhU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZp
Y2U7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNB
Y3RpdmVDYXB0dXJlID0gbWVkaWFTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlh
Q2FwdHVyZURldmljZTsKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPT0g
bmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIHJldHVybjsKKworICAgIF9t
ZWRpYVN0YXRlID0gbWVkaWFTdGF0ZTsKKyAgICBpZiAoIW9sZE1lZGlhU3RhdGVIYXNBY3RpdmVD
YXB0dXJlICYmIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKSB7CisgICAgICAgIFt1aURl
bGVnYXRlIF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjp2aWV3XTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiAh
bmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJW
aWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246dmlld107Cit9CisKKyNpZiBQTEFURk9STShJT1MpCisK
K1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgKldLVXNlck1lZGlhUHJvdmlk
ZXJDb2NvYTo6Y2FwdHVyZURldmljZUF1dGhvcml6ZXIoKQoreworICAgIGlmICghX2NhcHR1cmVE
ZXZpY2VBdXRob3JpemVyKQorICAgICAgICBfY2FwdHVyZURldmljZUF1dGhvcml6ZXIgPSBhZG9w
dE5TKFtbV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBhbGxvY10gaW5pdF0p
OworCisgICAgcmV0dXJuIF9jYXB0dXJlRGV2aWNlQXV0aG9yaXplci5nZXQoKTsKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA1NzAwNDdjLi5lNjQ1
MGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgUGFnZUNsaWVudF9oCiAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
KyNpbmNsdWRlICJXS1VzZXJNZWRpYVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNr
ZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQ
cm94eS5oIgpAQCAtMTM4LDYgKzEzOSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIFdLVXNlck1lZGlhUHJvdmlkZXImIHVzZXJNZWRpYVBy
b3ZpZGVyKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1
cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgPSAwOwogCiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IGYwZWZiODQuLmYyYmU1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTE4NSw3ICsxODYsNyBAQCB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0gQVBJOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJ
ZGVudGlmaWVyKHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSk7CiAgICAgICAgIGF1
dG8gcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQsIGF1ZGlvRGV2aWNlVUlEcywg
dmlkZW9EZXZpY2VVSURzKTsKIAotICAgICAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFnZS5wcm9j
ZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksICp1c2VyTWVkaWFPcmlnaW4uZ2V0KCksICp0b3BMZXZl
bE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCFtX3BhZ2UuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKm1fcGFnZS5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVJRCksICp1c2VyTWVkaWFPcmlnaW4uZ2V0KCksICp0b3BMZXZlbE9yaWdp
bi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpIHsKICAgICAgICAgICAgIG1fcGVuZGluZ1VzZXJNZWRp
YVJlcXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwogICAgICAgICAgICAgcmVxdWVzdC0+ZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlVzZXJNZWRpYURpc2FibGVkKTsKICAgICAgICAgfQpAQCAtMjA5LDEzICsyMTAsMTMgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5J
ZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCk7Ci0gICAgbV9wZW5k
aW5nRGV2aWNlUmVxdWVzdHMuYWRkKHVzZXJNZWRpYUlELCByZXF1ZXN0LnB0cigpKTsKKyAgICBh
dXRvIGNoZWNrID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmNyZWF0ZSgqdGhpcywg
dXNlck1lZGlhSUQpOworICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLmFkZCh1c2VyTWVkaWFJ
RCwgY2hlY2sucHRyKCkpOwogCiAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4gPSBBUEk6OlNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50
aWZpZXIodXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSk7CiAgICAgYXV0byB0b3BM
ZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRp
ZmllcikpOwogCi0gICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlE
KSwgKnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0
LmdldCgpKSkgeworICAgIGlmICghbV9wYWdlLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbigqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgKnVzZXJNZWRpYU9yaWdp
bi5nZXQoKSwgKnRvcExldmVsT3JpZ2luLmdldCgpLCBjaGVjay5nZXQoKSkpIHsKICAgICAgICAg
bV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCk7CiAgICAgICAgIG1fcGFn
ZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRpYURldmlj
ZUVudW1lcmF0aW9uKHVzZXJNZWRpYUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4o
KSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UpLCBtX3BhZ2UucGFnZUlEKCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMGJlZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlci5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KKworT0JK
Q19DTEFTUyBXS1dlYlZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5
T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKK2Ns
YXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKKworY2xhc3MgV0tVc2Vy
TWVkaWFQcm92aWRlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V0tVc2VyTWVkaWFQcm92aWRl
cigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFSZXF1ZXN0
RnJvbU9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6V2ViRnJhbWVQcm94
eSYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYsIFdLV2ViVmlldyop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2lu
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYsIFdLV2ViVmlldyopID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MsIFdLV2ViVmlldyopID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTAyMWIwMy4uY2NmZDdlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYzNjYsNiArNjM2Niwy
OCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdhc1JlbW92
ZWQoKQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlbW92ZU5hdmlnYXRpb25HZXN0
dXJlU25hcHNob3QoKnRoaXMpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7
CisgICAgaWYgKG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KCp0aGlzLCBmcmFtZSwgdXNlck1lZGlhT3JpZ2luLCB0b3BMZXZlbE9yaWdpbiwgcmVx
dWVzdCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG1fcGFnZUNsaWVudC5kZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChmcmFtZSwgdXNlck1lZGlhT3Jp
Z2luLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlBhZ2VQcm94eTo6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2lu
LCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgY2hlY2spCit7CisgICAgaWYgKG1fdWlD
bGllbnQtPmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbigqdGhpcywgZnJhbWUsIHVz
ZXJNZWRpYU9yaWdpbiwgdG9wTGV2ZWxPcmlnaW4sIGNoZWNrKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBpZiAobV9wYWdlQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihmcmFtZSwgdXNlck1lZGlhT3JpZ2luLCB0b3BMZXZlbE9yaWdpbiwgY2hlY2spKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBXZWJQYWdl
UHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OKQpAQCAtNjM4NCw4ICs2NDA2LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUs
CiAgICAgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUpOwog
CiAgICAgcGxheWluZ01lZGlhTWFzayB8PSBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNh
cHR1cmVEZXZpY2U7Ci0gICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spICE9ICht
X21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKKyAgICBpZiAoKG9sZFN0YXRlICYgcGxh
eWluZ01lZGlhTWFzaykgIT0gKG1fbWVkaWFTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spKSB7CiAg
ICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCp0aGlzKTsKKyAgICAg
ICAgbV9wYWdlQ2xpZW50Lm1lZGlhU3RhdGVEaWRDaGFuZ2UobV9tZWRpYVN0YXRlKTsKKyAgICB9
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICgob2xkU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpI
YXNBdWRpb09yVmlkZW8pICE9IChtX21lZGlhU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBdWRp
b09yVmlkZW8pKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDFmOTlhYWYuLmQ3MTMyOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwMzksNiArMTAz
OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4g
ISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8p
OyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90KTsKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVN0YXRlOyB9CisgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3Jp
Z2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYpOworICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eSYpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgdmlkZW9Db250
cm9sc01hbmFnZXJEaWRDaGFuZ2UoKTsKQEAgLTEyMzAsNiArMTIzMiw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVN5bmMo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIERvd25sb2FkSUQmKTsKKwogICAgIHZvaWQgdW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6
OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDY5YjYxMzUuLmNhM2JjZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNp
bXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oIgogI2ltcG9ydCAiV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC02NSw2ICs2
NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIG92ZXJyaWRlOworICAgIFdLVXNlck1lZGlhUHJvdmlk
ZXImIHVzZXJNZWRpYVByb3ZpZGVyKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4oV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBvdmVycmlkZTsKKyAgICBi
b29sIG1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpIG92ZXJy
aWRlOwogICAgIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKQEAgLTE5Nyw2ICsyMDIsNyBAQCBwcml2YXRlOgogICAgIFdLQ29udGVu
dFZpZXcgKm1fY29udGVudFZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0
YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V0tVc2VyTWVkaWFQcm92aWRlckNvY29hPiBtX3VzZXJNZWRpYVByb3ZpZGVyOwog
fTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBjZTM2NDA1Li5iNjMzZWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTQwLDYgKzQwLDggQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgog
I2ltcG9ydCAiV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQ
b29sSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oIgogI2ltcG9ydCAi
V0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb250
ZW50UHJvdmlkZXJSZWdpc3RyeS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKQEAg
LTIyNiw2ICsyMjgsMzIgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JgogICAgIHJldHVybiB0cnVl
OwogfQogCitXS1VzZXJNZWRpYVByb3ZpZGVyJiBQYWdlQ2xpZW50SW1wbDo6dXNlck1lZGlhUHJv
dmlkZXIoKQoreworICAgIGlmICghbV91c2VyTWVkaWFQcm92aWRlcikKKyAgICAgICAgbV91c2Vy
TWVkaWFQcm92aWRlciA9IFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYTo6Y3JlYXRlKCk7CisKKyAg
ICByZXR1cm4gKm1fdXNlck1lZGlhUHJvdmlkZXIuZ2V0KCk7Cit9CisKK2Jvb2wgUGFnZUNsaWVu
dEltcGw6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5JiByZXF1ZXN0KQoreworICAgIHVzZXJNZWRpYVByb3ZpZGVyKCkuZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUmVxdWVzdEZyb21PcmlnaW4odXNlck1lZGlhT3JpZ2luLnNlY3VyaXR5T3Jp
Z2luKCksIHRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIGZyYW1lLCByZXF1ZXN0LCBt
X3dlYlZpZXcpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjpj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQor
eworICAgIHVzZXJNZWRpYVByb3ZpZGVyKCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKHVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCB0b3BMZXZlbE9yaWdpbi5zZWN1
cml0eU9yaWdpbigpLCBmcmFtZSwgcmVxdWVzdCwgbV93ZWJWaWV3KTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKK3sKKyAgICB1c2VyTWVkaWFQcm92
aWRlcigpLm1lZGlhU3RhdGVEaWRDaGFuZ2UobWVkaWFTdGF0ZSwgbV93ZWJWaWV3KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92
aWRlcikKIHsKICAgICBbbV93ZWJWaWV3IF9zZXRIYXNDdXN0b21Db250ZW50Vmlldzp1c2VDdXN0
b21Db250ZW50UHJvdmlkZXIgbG9hZGVkTUlNRVR5cGU6bWltZVR5cGVdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wYzA5Mjg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lm
IFBMQVRGT1JNKElPUykKKworQGludGVyZmFjZSBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TIDogTlNPYmplY3QKKworLSAodm9pZClyZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6
YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjazsKKy0gKHZvaWQpcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjazsK
KworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmU4YzkyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLm1tCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
UExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCIKKworI2ltcG9ydCAiV0tVc2VyTWVkaWFQcm92
aWRlci5oIgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZURldmljZS5oPgorI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExp
bmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBVkZvdW5kYXRpb24pOworU09GVF9MSU5L
X0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKTsKK1NPRlRfTElOS19DT05TVEFO
VChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopOworU09GVF9MSU5L
X0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVWaWRlbywgTlNTdHJpbmcgKik7CisK
K0BpbXBsZW1lbnRhdGlvbiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TCisK
Ky0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0
aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBbc2VsZiBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JN
ZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNhbGxiYWNrOmNhbGxiYWNrXTsKK30KKwor
LSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6
ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFU
eXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjYWxsYmFjazpjYWxsYmFja107Cit9CisKKy0gKHZv
aWQpX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhVHlw
ZSBjYWxsYmFjazoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgQVNT
RVJUKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBlQXVkaW8oKV0gfHwg
W21lZGlhVHlwZSBpc0VxdWFsVG9TdHJpbmc6Z2V0QVZNZWRpYVR5cGVWaWRlbygpXSk7CisKKyAg
ICBBVkF1dGhvcml6YXRpb25TdGF0dXMgYXV0aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1
cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6bWVkaWFUeXBl
XTsKKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNE
ZW5pZWQgfHwgYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0
cmljdGVkKSB7CisgICAgICAgIGNhbGxiYWNrKE5PKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRo
b3JpemVkKSB7CisgICAgICAgIGNhbGxiYWNrKFlFUyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFU
eXBlOm1lZGlhVHlwZSBjb21wbGV0aW9uSGFuZGxlcjpjYWxsYmFja107Cit9CisKK0BlbmQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjQ5MjBhNS4uZDJkYjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc5NSw2ICsxNzk1LDEwIEBACiAJ
CUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDgxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9Owor
CQlEM0MxNzY5MTFERDY0NzBDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0MxNzY4RjFE
RDYyRkJDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLmggKi87IH07CisJCUQz
QzE3NjkyMURENjQ3MTEwMEYyMDM0OCAvKiBXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0MxNzY5MDFERDYy
RkJDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tICovOyB9OworCQlEM0RC
MzdBQTFERDNGNUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNE
QjM3QTgxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MuaCAqLzsgfTsKKwkJRDNEQjM3QUIxREQzRjVCODAwNDczNzRDIC8qIFdLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0RCMzdBOTFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAqLzsgfTsKIAkJREY1OEM2MzYxMzcxQUNB
MDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyog
TmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1
N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICov
OyB9OwogCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMx
OTBGNzkxQzAwNzMxNjU4IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSAqLzsgfTsKQEAgLTMyNTgs
NyArMzI2Miw3IEBACiAJCTdDQUI5Mzc5MUQ0NTlFNEIwMDcwRjU0MCAvKiBOZXR3b3JrQ2FjaGVD
b2RlcnNDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrQ2FjaGVDb2RlcnNDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QjE2RkUyMTcyNEI5QjUwMDdBMEE5NSAvKiBjb20uYXBwbGUuaXN0LmRzLmFwcGxlY29ubmVjdC53
ZWJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLmlzdC5kcy5hcHBs
ZWNvbm5lY3Qud2VicGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Ix
NkZFMzE3MjRCOUI1MDA3QTBBOTUgLyogY29tLmFwcGxlLlF1aWNrVGltZSBQbHVnaW4ucGx1Z2lu
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJjb20uYXBwbGUuUXVpY2tUaW1lIFBsdWdpbi5w
bHVnaW4uc2IiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0IxNkZFNDE3MjRCOUI1
MDA3QTBBOTUgLyogY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9ICJjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IuaW4iOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0IxNkZFNDE3MjRCOUI1MDA3QTBBOTUgLyog
Y29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9ICJjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IuaW4iOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0IxNkZFNTE3MjRCOUI1MDA3QTBBOTUgLyogY29tLm1hY3JvbWVk
aWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY29tLm1h
Y3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDQjE2RkU2MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ubWljcm9zb2Z0LlNpbHZlcmxp
Z2h0UGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5taWNyb3NvZnQuU2lsdmVy
bGlnaHRQbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjE2RkU3MTcy
NEI5QjUwMDdBMEE5NSAvKiBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5NDcsMTAgKzM5NTEsMTUgQEAKIAkJQ0VE
QTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VEQTEyREYxNTJDQ0FFODAwRDlFMDhEIC8q
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRUU0QUUyQTFBNURDRjQzMDAwMkY0OUIgLyogVUlLaXRTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDM1OUFBNDkxREQ2MkMxOTAwNTc4OEE2IC8qIFdLVXNlck1lZGlhUHJv
dmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBvcHVwTWVu
dS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQzMTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ0MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VhcmNoUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZWFyY2hQb3B1
cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNDMTc2OEYxREQ2MkZCQzAw
RjIwMzQ4IC8qIFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDNDMTc2OTAxREQ2MkZCQzAwRjIwMzQ4IC8qIFdLVXNlck1lZGlhUHJv
dmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
VXNlck1lZGlhUHJvdmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDNEQjM3QTgxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOyBwYXRoID0gaW9zL1dLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNE
QjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBwYXRoID0gaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURGNThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5h
dGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDg0OSw2ICs0ODU4LDggQEAKIAkJCQkxQUQwMUJDQjE5MDVENTQ5
MDBDOUM0NUYgLyogV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIuaCAqLywKIAkJ
CQkxQUQwMUJDQTE5MDVENTQ5MDBDOUM0NUYgLyogV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlB
dHRlbXB0ZXIubW0gKi8sCiAJCQkJMkQ3QUFGRDIxOEM4NjQwNjAwQTdBQ0Q0IC8qIFdLV2ViVmll
d0NvbnRlbnRQcm92aWRlci5oICovLAorCQkJCUQzQzE3NjhGMURENjJGQkMwMEYyMDM0OCAvKiBX
S1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EuaCAqLywKKwkJCQlEM0MxNzY5MDFERDYyRkJDMDBGMjAz
NDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tICovLAogCQkJCTJEQzZEOUMxMThDNDRB
NjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5oICovLAogCQkJ
CTJEQzZEOUMyMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdp
c3RyeS5tbSAqLywKIAkJCSk7CkBAIC01MDY5LDYgKzUwODAsOCBAQAogCQkJCTBGQ0I0RTQ1MThC
QkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0Uy
RTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovLAog
CQkJCTI2RjEwQkU3MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVy
ZVJlY29nbml6ZXIubSAqLywKKwkJCQlEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2Vy
TWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICovLAorCQkJCUQzREIzN0E5MUREM0Y1
QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICov
LAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
NjI1OCw2ICs2MjcxLDcgQEAKIAkJCQk3QTlDRDhDMDFDNzc5ODQ5MDBEOUY2QzcgLyogV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAqLywKIAkJCQk3QTlDRDhDMTFDNzc5ODQ5MDBE
OUY2QzcgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggKi8sCiAJCQkJN0E5Q0Q4
QzIxQzc3OUFENjAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNz
YWdlcy5pbiAqLywKKwkJCQlEMzU5QUE0OTFERDYyQzE5MDA1Nzg4QTYgLyogV0tVc2VyTWVkaWFQ
cm92aWRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBVSVByb2Nlc3M7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtNzkwMyw2ICs3OTE3LDcgQEAKIAkJCQkxQTQ0Qjk1QzE2QjczRjlG
MDBCN0JCRDggLyogU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3
MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUUwMEQ2QzE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlEM0RCMzdBQTFERDNGNUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk2QkQ4NUQx
NTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UxQTBCRDYxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVhZGVycyAqLywK
QEAgLTgxODEsNiArODE5Niw3IEBACiAJCQkJQkM1RDI0QzcxNkNENzNDNTAwN0Q1NDYxIC8qIFdL
QnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0REY5RjEy
MEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0MDc1RjYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlEM0MxNzY5MTFERDY0NzBDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92
aWRlckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyNzEyNEZGMDQwMDA2OEYyMEEg
LyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTI4NEQ3MTQ5
MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUM3
NUM4MTQ5NTREQTYwMEJDNDc3NSAvKiBXS0Nvbm5lY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC05NTQwLDYgKzk1NTYsNyBAQAogCQkJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAv
KiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NTVCQTgyQzFCQTM4RTY0MDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEQTk0NEExMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJT1NFdmVudEZh
Y3RvcnkubW0gaW4gU291cmNlcyAqLywKKwkJCQlEM0MxNzY5MjFERDY0NzExMDBGMjAzNDggLyog
V0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAzMzdERDMx
MjdBMkEwRTAwOEZGNEY0IC8qIFdlYktleWJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE2MjgwRjMxOTE5OTgyQTAwNkFEOUY5IC8qIFdlYktpdC5tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM5QkE1MDQxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtOTY1OSw2ICs5Njc2LDcgQEAKIAkJCQkzRjQxOEVGQjE4ODdCRDk3MDAy
Nzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTJERkM3REJDMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3
SW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REQxMTI3QTI5ODAwMDhGRjRGNCAvKiBX
ZWJXaGVlbEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzREIzN0FCMUREM0Y1QjgwMDQ3
Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5l
Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyog
TmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlDRDU1QUIxMjhFMjk0RjAw
MTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGluIFNvdXJjZXMg
Ki8sCi0tIAoyLjEwLjEgKEFwcGxlIEdpdC03OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294532</attachid>
            <date>2016-11-11 14:03:40 -0800</date>
            <delta_ts>2016-11-14 10:48:51 -0800</delta_ts>
            <desc>Proposed patch v3</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>54181</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSBkNDgzMTc4NmU5YTY1NmI5YjI0ZTc4MDVkZjA4MDIyZjA3YmRlMDhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBG
cmksIDExIE5vdiAyMDE2IDEzOjU2OjQ2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8gY2hlY2svcmVxdWVzdApjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0IHBlcm1pc3Npb24gb24g
YmVoYWxmCm9mIHRoZSB3ZWJwYWdlIHRvIHVzZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxs
eSwgU2FmYXJpIG11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzCnRha2luZyBwbGFj
ZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNz
aW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLgpUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhv
ZHMgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciwKY2hlY2sgZm9yIHBlcm1pc3Npb24sIG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9u
IGhhcyBiZWd1biwgYW5kIG5vdGlmeSB0aGF0IGEgY2FwdHVyZQpzZXNzaW9uIGhhcyBlbmRlZC4g
QWRkaXRpb25hbGx5LCB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0
IGFsbG93cyBTYWZhcmkKIHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCgoqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXSk6IEFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCiogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVy
Q29jb2EuaDogQWRkZWQuCiogVUlQcm9jZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXJDb2Nv
YS5tbTogQWRkZWQuCihXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E6OmNyZWF0ZSk6IEZhY3Rvcnkg
aW5pdGlhbGl6ZXIuCihXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E6OmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVJlcXVlc3RGcm9tT3JpZ2luKToKSWYgb24gaU9TLCB3ZSBmaXJzdCBjaGVjayB0aGF0
IHRoZSB1c2VyIGhhcyBncmFudGVkIHRoZSBjbGllbnQgcGVybWlzc2lvbiB0byB1c2UgY2FwdHVy
ZSBkZXZpY2VzLAphbmQgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiwgd2UgcmVx
dWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXS1VzZXJNZWRpYVByb3ZpZGVy
Q29jb2E6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CkNoZWNrcyB0aGUgY2xp
ZW50IGZvciBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCihXS1VzZXJNZWRp
YVByb3ZpZGVyQ29jb2E6Om1lZGlhU3RhdGVEaWRDaGFuZ2UpOiAgTm90aWZpZXMgdGhlIGNsaWVu
dCBvZiBhIGNhcHR1cmUKc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgooV0tVc2VyTWVkaWFQcm92
aWRlckNvY29hOjpjYXB0dXJlRGV2aWNlQXV0aG9yaXplcik6IElmIG9uIGlPUywgdGhpcyByZXR1
cm5zIGFuIG9iamVjdCB0aGF0CmNhbiBiZSB1c2VkIHRvIGFjcXVpcmUgY2FtZXJhL21pY3JvcGhv
bmUgcGVybWlzc2lvbi4KCiogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKFdlYktpdDo6UGFnZUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgooV2ViS2l0
OjpQYWdlQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOgooV2ViS2l0
OjpQYWdlQ2xpZW50OjptZWRpYVN0YXRlRGlkQ2hhbmdlKToKCiogVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUpOgpHb2VzIHRocm91Z2ggdGhlIHdlYnBhZ2UgcHJveHkgdG8gcmVxdWVzdCBwZXJtaXNz
aW9uIHRocm91Z2ggYm90aCBBUElzLgooV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgpEaXR0by4KCiog
VUlQcm9jZXNzL1dLVXNlck1lZGlhUHJvdmlkZXIuaDogQWRkZWQuCihXZWJLaXQ6OldLVXNlck1l
ZGlhUHJvdmlkZXI6On5XS1VzZXJNZWRpYVByb3ZpZGVyKToKCiogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QpOiBSZXF1ZXN0cyBjYXB0dXJlCnBlcm1pc3Npb24gZnJvbSB0aGUg
Y2xpZW50LgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbik6IENoZWNrcyBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbQp0aGUgY2xpZW50LgooV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogTm90aWZpZXMgdGhl
IGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbgpiZWdpbm5pbmcvZW5kaW5nLgoKKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CiogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgoq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CihXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjp1c2VyTWVkaWFQcm92aWRlcik6IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgV0tVc2VyTWVk
aWFQcm92aWRlci4KKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogVXNlcyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlcgp0byBy
ZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGllbnQuCihXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBVc2VzIHRoZSBX
S1VzZXJNZWRpYVByb3ZpZGVyIHRvCmNoZWNrIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBj
bGllbnQuCihXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogVXNl
cyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlciB0byBub3RpZnkgdGhlCmNsaWVudCBvZiBhIGNhcHR1
cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgoKKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDogQWRkZWQuCiogVUlQcm9jZXNzL2lvcy9XS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOiBBZGRlZC4KKC1bV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyByZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6YXRp
b246XSk6IFVzZXMgQVZGb3VuZGF0aW9uCnRvIHJlcXVlc3QgbWljcm9waG9uZSBhY2Nlc3MgZnJv
bSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUyByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRp
b24KdG8gcmVxdWVzdCBjYW1lcmEgYWNjZXNzIGZyb20gdGhlIHVzZXIgZm9yIHRoZSBjbGllbnQu
CigtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgX3JlcXVlc3RBdXRob3Jp
emF0aW9uRm9yTWVkaWFUeXBlOmNhbGxiYWNrOl0pOgpIZWxwZXIgbWV0aG9kIGZvciByZXF1ZXN0
aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KCiogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDc5ICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmggICAgICB8ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSAgICB8ICAgNSArCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCB8ICAgMiArCiAuLi4vVUlQcm9jZXNzL0NvY29h
L1dLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oICAgICB8ICA2NyArKysrKysrKysKIC4uLi9VSVBy
b2Nlc3MvQ29jb2EvV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tICAgIHwgMTU4ICsrKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCAgICAg
ICAgICAgICAgfCAgIDYgKwogLi4uL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRp
YVByb3ZpZGVyLmggICAgIHwgIDQ4ICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgIDI2ICsrKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCAgIHwgICA2ICsKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gIHwgIDI4ICsrKysKIC4uLi9pb3Mv
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICAgIHwgIDM3ICsrKysrCiAu
Li4vaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gICB8ICA3MiAr
KysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogICB8ICAyMCArKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDU2NCBpbnNlcnRpb25zKCspLCA2IGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92
aWRlci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1
dGhvcml6ZXJJT1MubW0KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTdmZDhmMS4uZTY2NDljOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDgyIEBACisyMDE2LTExLTExICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IGZvciBIVE1MIE1lZGlhIENhcHR1cmUgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGVu
YWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91bmRh
dGlvbiBBUEkgdG8gY2hlY2svcmVxdWVzdAorICAgICAgICBjYXB0dXJlIHBlcm1pc3Npb24gZnJv
bSB0aGUgdXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0IHBlcm1pc3Np
b24gb24gYmVoYWxmCisgICAgICAgIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSBjYXB0dXJlIGRldmlj
ZXMuIEFkZGl0aW9uYWxseSwgU2FmYXJpIG11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJl
IGlzCisgICAgICAgIHRha2luZyBwbGFjZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUg
Y2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLgorICAgICAg
ICBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhvZHMgdG8gV0tVSURlbGVnYXRlUHJpdmF0
ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciwKKyAgICAgICAgY2hlY2sgZm9y
IHBlcm1pc3Npb24sIG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5k
IG5vdGlmeSB0aGF0IGEgY2FwdHVyZQorICAgICAgICBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRp
b25hbGx5LCB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93
cyBTYWZhcmkKKyAgICAgICAgIHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3N0b3BNZWRpYUNhcHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUg
c2Vzc2lvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dLVXNlck1lZGlhUHJvdmlkZXJD
b2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E6OmNyZWF0
ZSk6IEZhY3RvcnkgaW5pdGlhbGl6ZXIuCisgICAgICAgIChXS1VzZXJNZWRpYVByb3ZpZGVyQ29j
b2E6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVJlcXVlc3RGcm9tT3JpZ2luKTogCisgICAgICAg
IElmIG9uIGlPUywgd2UgZmlyc3QgY2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUg
Y2xpZW50IHBlcm1pc3Npb24gdG8gdXNlIGNhcHR1cmUgZGV2aWNlcywKKyAgICAgICAgYW5kIGlm
IG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRoZW4sIHdlIHJlcXVlc3QgcGVybWlzc2lvbiBm
cm9tIHRoZSB1aURlbGVnYXRlLgorICAgICAgICAoV0tVc2VyTWVkaWFQcm92aWRlckNvY29hOjpj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICBDaGVja3MgdGhlIGNs
aWVudCBmb3IgcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2VzLgorICAgICAgICAo
V0tVc2VyTWVkaWFQcm92aWRlckNvY29hOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogIE5vdGlmaWVz
IHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Npb24gYmVnaW5uaW5nL2VuZGlu
Zy4KKyAgICAgICAgKFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYTo6Y2FwdHVyZURldmljZUF1dGhv
cml6ZXIpOiBJZiBvbiBpT1MsIHRoaXMgcmV0dXJucyBhbiBvYmplY3QgdGhhdAorICAgICAgICBj
YW4gYmUgdXNlZCB0byBhY3F1aXJlIGNhbWVyYS9taWNyb3Bob25lIHBlcm1pc3Npb24uCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6Om1lZGlhU3RhdGVEaWRDaGFuZ2UpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAgICBHb2Vz
IHRocm91Z2ggdGhlIHdlYnBhZ2UgcHJveHkgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIHRocm91Z2gg
Ym90aCBBUElzLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICBEaXR0
by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXS1VzZXJNZWRpYVByb3ZpZGVyOjp+V0tVc2VyTWVkaWFQcm92aWRl
cik6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCk6IFJlcXVlc3RzIGNhcHR1cmUKKyAgICAgICAgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luKTogQ2hlY2tzIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tCisgICAgICAgIHRo
ZSBjbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uCisgICAg
ICAgIGJlZ2lubmluZy9lbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjp1c2VyTWVkaWFQcm92aWRlcik6IFJldHVybnMgYW4gaW5zdGFuY2Ug
b2YgV0tVc2VyTWVkaWFQcm92aWRlci4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTogVXNlcyB0aGUgV0tV
c2VyTWVkaWFQcm92aWRlcgorICAgICAgICB0byByZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBm
cm9tIHRoZSBjbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBVc2VzIHRoZSBXS1VzZXJNZWRpYVByb3ZpZGVy
IHRvCisgICAgICAgIGNoZWNrIGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSBjbGllbnQuCisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjptZWRpYVN0YXRlRGlkQ2hhbmdlKTogVXNl
cyB0aGUgV0tVc2VyTWVkaWFQcm92aWRlciB0byBub3RpZnkgdGhlCisgICAgICAgIGNsaWVudCBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MgcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRh
dGlvbgorICAgICAgICB0byByZXF1ZXN0IG1pY3JvcGhvbmUgYWNjZXNzIGZyb20gdGhlIHVzZXIg
Zm9yIHRoZSBjbGllbnQuCisgICAgICAgICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246XSk6IFVzZXMgQVZGb3VuZGF0aW9u
CisgICAgICAgIHRvIHJlcXVlc3QgY2FtZXJhIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUg
Y2xpZW50LgorICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
IF9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTpjYWxsYmFjazpdKToKKyAgICAgICAg
SGVscGVyIG1ldGhvZCBmb3IgcmVxdWVzdGluZyBtaWNyb3Bob25lL2NhbWVyYSBhY2Nlc3MuCisK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTEt
MTAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IHVudXNlZCBGb250U2VydmljZSBmcm9tIHNhbmRib3ggcHJvZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApp
bmRleCAzYzU0ZWJmLi4zMGNmNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtNjMsNiArNjMsMTAg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKill
bGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZh
dWx0QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90
SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAtIChCT09MKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRp
b25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlzTWFpbkZyYW1lIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZToo
Qk9PTCltaWNyb3Bob25lIGNhbWVyYTooQk9PTCljYW1lcmEgdXJsOihOU1VSTCAqKXVybCBtYWlu
RnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBhdXRob3JpemVkQ2FtZXJhKSlkZWNpc2lv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVklldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lv
bjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CistICh2
b2lkKV93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwg
Kil1cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250
cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4w
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1h
Z2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCA0ZjhiMzVmLi43OTJjNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDQzNSw2ICs0NDM1LDExIEBAIC0gKHZvaWQpc2V0U2Vt
YW50aWNDb250ZW50QXR0cmlidXRlOihVSVNlbWFudGljQ29udGVudEF0dHJpYnV0ZSljb250ZW50
QXR0cmlidXRlCiAgICAgX3BhZ2UtPnNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24odG9V
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKGNvbnRlbnRBdHRyaWJ1dGUpKTsKIH0KIAorLSAo
dm9pZClfc3RvcE1lZGlhQ2FwdHVyZQoreworICAgIF9wYWdlLT5zZXRNdXRlZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpDYXB0dXJlRGV2aWNlc0FyZU11dGVkKTsKK30KKwogI2Vsc2UgLy8gI2lm
IFBMQVRGT1JNKElPUykKIAogI3ByYWdtYSBtYXJrIC0gT1MgWC1zcGVjaWZpYyBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCmluZGV4IDAzZTg0YzIuLjliMGU1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNTUsNiArMjU1
LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkg
ewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikg
aWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
IAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZTsKKwogQGVuZAogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1VzZXJN
ZWRpYVByb3ZpZGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1Vz
ZXJNZWRpYVByb3ZpZGVyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yOWNiNzk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXIuaCIKKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TOworT0JKQ19DTEFTUyBXS1dlYlZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTsKK2NsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKKwor
Y2xhc3MgV0tVc2VyTWVkaWFQcm92aWRlckNvY29hIGZpbmFsIDogcHVibGljIFdLVXNlck1lZGlh
UHJvdmlkZXIgeworICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8V0tVc2VyTWVkaWFQcm92aWRl
ckNvY29hPiBzdGQ6Om1ha2VfdW5pcXVlPFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYT4oKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdLVXNlck1lZGlhUHJvdmlkZXJDb2Nv
YT4gY3JlYXRlKCk7CisKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVJlcXVlc3RG
cm9tT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yZ2luLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkm
LCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBXS1dlYlZpZXcqKSBv
dmVycmlkZTsKKyAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmLCBXS1dlYlZpZXcqKSBvdmVycmlkZTsKKyAgICB2
b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzLCBXS1dlYlZpZXcqKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBXS1VzZXJNZWRp
YVByb3ZpZGVyQ29jb2EoKQorICAgIHsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAg
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqY2FwdHVyZURldmljZUF1dGhv
cml6ZXIoKTsKKyNlbmRpZgorCisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIF9tZWRpYVN0YXRlIHsgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5n
IH07CisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJldGFpblB0cjxXS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TPiBfY2FwdHVyZURldmljZUF1dGhvcml6ZXI7CisjZW5kaWYKKwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dLVXNl
ck1lZGlhUHJvdmlkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
S1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uODRkOTEyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0KQEAgLTAsMCArMSwxNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tVc2VyTWVkaWFQ
cm92aWRlckNvY29hLmgiCisKKyNpbXBvcnQgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW1wb3J0
ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2ltcG9ydCAiV0tVSURlbGVnYXRlUHJpdmF0ZS5oIgor
I2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgorI2ltcG9y
dCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBM
QVRGT1JNKElPUykKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1MuaCIKKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E+IFdL
VXNlck1lZGlhUHJvdmlkZXJDb2NvYTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2E+KCk7Cit9CisKK3ZvaWQgV0tVc2VyTWVk
aWFQcm92aWRlckNvY29hOjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFSZXF1ZXN0RnJvbU9yaWdp
bihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUs
IFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVl
c3QsIFdLV2ViVmlldyAqdmlldykKK3sKKyAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURl
bGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbdmlldyBVSURl
bGVnYXRlXSk7CisgICAgaWYgKCFbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpj
YW1lcmE6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgcGVy
bWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRpbyA9IHBlcm1pc3Npb25SZXF1ZXN0
LnJlcXVpcmVzQXVkaW8oKTsKKyAgICBib29sIHJlcXVpcmVzVmlkZW8gPSBwZXJtaXNzaW9uUmVx
dWVzdC5yZXF1aXJlc1ZpZGVvKCk7CisgICAgaWYgKCFyZXF1aXJlc0F1ZGlvICYmICFyZXF1aXJl
c1ZpZGVvKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0
aG9yaXphdGlvbkJsb2NrKSh2b2lkKSA9IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5
KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgICAgICBVUkwgcmVx
dWVzdEZyYW1lVVJMKFVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgICAgIFVSTCBtYWluRnJhbWVV
UkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJW
aWV3OnZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJlcXVp
cmVzQXVkaW8gY2FtZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJh
bWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1pY3Jv
cGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1aXJl
c0F1ZGlvIT0gYXV0aG9yaXplZE1pY3JvcGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhv
cml6ZWRDYW1lcmEpKSB7CisgICAgICAgICAgICAgICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJl
c1ZpZGVvID8gcGVybWlzc2lvblJlcXVlc3QudmlkZW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0
cmluZygpOworICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCA9IHJlcXVp
cmVzQXVkaW8gPyBwZXJtaXNzaW9uUmVxdWVzdC5hdWRpb0RldmljZVVJRHMoKS5maXJzdCgpIDog
U3RyaW5nKCk7CisgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5hbGxvdyhhdWRpb0Rldmlj
ZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsKKyAgICB9OworCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0aW9uQmxvY2spKHZvaWQpID0gXiB7
CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgICAgICBbY2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIoKSByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0aG9yaXpl
ZCkgeworICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkKKyAgICAgICAgICAgICAgICAg
ICAgcGVybWlzc2lvblJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaygpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
dWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAocmVxdWly
ZXNBdWRpbykgeworICAgICAgICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0TWlj
cm9waG9uZUF1dGhvcml6YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgIGlm
ICghYXV0aG9yaXplZCkKKyAgICAgICAgICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC5kZW55KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNv
bjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
Y2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgIH1dOworICAgIH0gZWxzZQorICAg
ICAgICBjYW1lcmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyNlbHNlCisgICAgdWlEZWxlZ2F0ZUF1
dGhvcml6YXRpb25CbG9jaygpOworI2VuZGlmCit9CisKK3ZvaWQgV0tVc2VyTWVkaWFQcm92aWRl
ckNvY29hOjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExl
dmVsT3JpZ2luLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5JiBwZXJtaXNzaW9uUmVxdWVzdCwgV0tXZWJWaWV3ICp2aWV3
KQoreworICAgIGlkPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2Fz
dDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFt2aWV3IFVJRGVsZWdhdGVdKTsKKyAgICBpZiAo
IVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOildKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LnNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZy
YW1lKCk7CisgICAgVVJMIHJlcXVlc3RGcmFtZVVSTChVUkwoKSwgZnJhbWUudXJsKCkpOworICAg
IFVSTCBtYWluRnJhbWVVUkwoVVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6dmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVz
dEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1l
LmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6XihOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3Jp
emVkKSB7CisgICAgICAgIHBlcm1pc3Npb25SZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8o
U3RyaW5nKHNhbHQpLCBhdXRob3JpemVkKTsKKyAgICB9XTsKK30KKwordm9pZCBXS1VzZXJNZWRp
YVByb3ZpZGVyQ29jb2E6Om1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUsIFdLV2ViVmlldyAqdmlldykKK3sKKyAgICBp
ZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+PihbdmlldyBVSURlbGVnYXRlXSk7CisgICAgaWYgKCEoW3VpRGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNl
c3Npb246KV0gJiYgW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOildKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJl
ID0gX21lZGlhU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZp
Y2U7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNB
Y3RpdmVDYXB0dXJlID0gbWVkaWFTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlh
Q2FwdHVyZURldmljZTsKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPT0g
bmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIHJldHVybjsKKworICAgIF9t
ZWRpYVN0YXRlID0gbWVkaWFTdGF0ZTsKKyAgICBpZiAoIW9sZE1lZGlhU3RhdGVIYXNBY3RpdmVD
YXB0dXJlICYmIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKSB7CisgICAgICAgIFt1aURl
bGVnYXRlIF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjp2aWV3XTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiAh
bmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJW
aWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246dmlld107Cit9CisKKyNpZiBQTEFURk9STShJT1MpCisK
K1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgKldLVXNlck1lZGlhUHJvdmlk
ZXJDb2NvYTo6Y2FwdHVyZURldmljZUF1dGhvcml6ZXIoKQoreworICAgIGlmICghX2NhcHR1cmVE
ZXZpY2VBdXRob3JpemVyKQorICAgICAgICBfY2FwdHVyZURldmljZUF1dGhvcml6ZXIgPSBhZG9w
dE5TKFtbV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBhbGxvY10gaW5pdF0p
OworCisgICAgcmV0dXJuIF9jYXB0dXJlRGV2aWNlQXV0aG9yaXplci5nZXQoKTsKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA1NzAwNDdjLi5lNjQ1
MGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgUGFnZUNsaWVudF9oCiAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
KyNpbmNsdWRlICJXS1VzZXJNZWRpYVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNr
ZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQ
cm94eS5oIgpAQCAtMTM4LDYgKzEzOSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIFdLVXNlck1lZGlhUHJvdmlkZXImIHVzZXJNZWRpYVBy
b3ZpZGVyKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1
cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgPSAwOwogCiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IGYwZWZiODQuLmYyYmU1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTE4NSw3ICsxODYsNyBAQCB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0gQVBJOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJ
ZGVudGlmaWVyKHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSk7CiAgICAgICAgIGF1
dG8gcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQsIGF1ZGlvRGV2aWNlVUlEcywg
dmlkZW9EZXZpY2VVSURzKTsKIAotICAgICAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFnZS5wcm9j
ZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksICp1c2VyTWVkaWFPcmlnaW4uZ2V0KCksICp0b3BMZXZl
bE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCFtX3BhZ2UuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKm1fcGFnZS5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVJRCksICp1c2VyTWVkaWFPcmlnaW4uZ2V0KCksICp0b3BMZXZlbE9yaWdp
bi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpIHsKICAgICAgICAgICAgIG1fcGVuZGluZ1VzZXJNZWRp
YVJlcXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwogICAgICAgICAgICAgcmVxdWVzdC0+ZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlVzZXJNZWRpYURpc2FibGVkKTsKICAgICAgICAgfQpAQCAtMjA5LDEzICsyMTAsMTMgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5J
ZGVudGlmaWVyLCBTdHJpbmcgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCk7Ci0gICAgbV9wZW5k
aW5nRGV2aWNlUmVxdWVzdHMuYWRkKHVzZXJNZWRpYUlELCByZXF1ZXN0LnB0cigpKTsKKyAgICBh
dXRvIGNoZWNrID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmNyZWF0ZSgqdGhpcywg
dXNlck1lZGlhSUQpOworICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLmFkZCh1c2VyTWVkaWFJ
RCwgY2hlY2sucHRyKCkpOwogCiAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4gPSBBUEk6OlNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50
aWZpZXIodXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSk7CiAgICAgYXV0byB0b3BM
ZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRp
ZmllcikpOwogCi0gICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlE
KSwgKnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0
LmdldCgpKSkgeworICAgIGlmICghbV9wYWdlLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbigqbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgKnVzZXJNZWRpYU9yaWdp
bi5nZXQoKSwgKnRvcExldmVsT3JpZ2luLmdldCgpLCBjaGVjay5nZXQoKSkpIHsKICAgICAgICAg
bV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCk7CiAgICAgICAgIG1fcGFn
ZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRpYURldmlj
ZUVudW1lcmF0aW9uKHVzZXJNZWRpYUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4o
KSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UpLCBtX3BhZ2UucGFnZUlEKCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XS1VzZXJNZWRpYVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMGJlZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tVc2VyTWVkaWFQcm92aWRlci5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KKworT0JK
Q19DTEFTUyBXS1dlYlZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5
T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5OworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKK2Ns
YXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKKworY2xhc3MgV0tVc2Vy
TWVkaWFQcm92aWRlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V0tVc2VyTWVkaWFQcm92aWRl
cigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFSZXF1ZXN0
RnJvbU9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6V2ViRnJhbWVQcm94
eSYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYsIFdLV2ViVmlldyop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2lu
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYsIFdLV2ViVmlldyopID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MsIFdLV2ViVmlldyopID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTAyMWIwMy4uY2NmZDdlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYzNjYsNiArNjM2Niwy
OCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdhc1JlbW92
ZWQoKQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlbW92ZU5hdmlnYXRpb25HZXN0
dXJlU25hcHNob3QoKnRoaXMpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7
CisgICAgaWYgKG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KCp0aGlzLCBmcmFtZSwgdXNlck1lZGlhT3JpZ2luLCB0b3BMZXZlbE9yaWdpbiwgcmVx
dWVzdCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG1fcGFnZUNsaWVudC5kZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChmcmFtZSwgdXNlck1lZGlhT3Jp
Z2luLCB0b3BMZXZlbE9yaWdpbiwgcmVxdWVzdCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlBhZ2VQcm94eTo6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2lu
LCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgY2hlY2spCit7CisgICAgaWYgKG1fdWlD
bGllbnQtPmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbigqdGhpcywgZnJhbWUsIHVz
ZXJNZWRpYU9yaWdpbiwgdG9wTGV2ZWxPcmlnaW4sIGNoZWNrKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBpZiAobV9wYWdlQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihmcmFtZSwgdXNlck1lZGlhT3JpZ2luLCB0b3BMZXZlbE9yaWdpbiwgY2hlY2spKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBXZWJQYWdl
UHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OKQpAQCAtNjM4NCw4ICs2NDA2LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUs
CiAgICAgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUpOwog
CiAgICAgcGxheWluZ01lZGlhTWFzayB8PSBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNh
cHR1cmVEZXZpY2U7Ci0gICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spICE9ICht
X21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKKyAgICBpZiAoKG9sZFN0YXRlICYgcGxh
eWluZ01lZGlhTWFzaykgIT0gKG1fbWVkaWFTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spKSB7CiAg
ICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCp0aGlzKTsKKyAgICAg
ICAgbV9wYWdlQ2xpZW50Lm1lZGlhU3RhdGVEaWRDaGFuZ2UobV9tZWRpYVN0YXRlKTsKKyAgICB9
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICgob2xkU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpI
YXNBdWRpb09yVmlkZW8pICE9IChtX21lZGlhU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBdWRp
b09yVmlkZW8pKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDFmOTlhYWYuLmQ3MTMyOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwMzksNiArMTAz
OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4g
ISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8p
OyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90KTsKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVN0YXRlOyB9CisgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3Jp
Z2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYpOworICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eSYpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgdmlkZW9Db250
cm9sc01hbmFnZXJEaWRDaGFuZ2UoKTsKQEAgLTEyMzAsNiArMTIzMiw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVN5bmMo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIERvd25sb2FkSUQmKTsKKwogICAgIHZvaWQgdW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6
OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDY5YjYxMzUuLmNhM2JjZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNp
bXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oIgogI2ltcG9ydCAiV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC02NSw2ICs2
NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIG92ZXJyaWRlOworICAgIFdLVXNlck1lZGlhUHJvdmlk
ZXImIHVzZXJNZWRpYVByb3ZpZGVyKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4oV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBvdmVycmlkZTsKKyAgICBi
b29sIG1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpIG92ZXJy
aWRlOwogICAgIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKQEAgLTE5Nyw2ICsyMDIsNyBAQCBwcml2YXRlOgogICAgIFdLQ29udGVu
dFZpZXcgKm1fY29udGVudFZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0
YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V0tVc2VyTWVkaWFQcm92aWRlckNvY29hPiBtX3VzZXJNZWRpYVByb3ZpZGVyOwog
fTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBjZTM2NDA1Li5iNjMzZWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTQwLDYgKzQwLDggQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgog
I2ltcG9ydCAiV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQ
b29sSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oIgogI2ltcG9ydCAi
V0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb250
ZW50UHJvdmlkZXJSZWdpc3RyeS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKQEAg
LTIyNiw2ICsyMjgsMzIgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JgogICAgIHJldHVybiB0cnVl
OwogfQogCitXS1VzZXJNZWRpYVByb3ZpZGVyJiBQYWdlQ2xpZW50SW1wbDo6dXNlck1lZGlhUHJv
dmlkZXIoKQoreworICAgIGlmICghbV91c2VyTWVkaWFQcm92aWRlcikKKyAgICAgICAgbV91c2Vy
TWVkaWFQcm92aWRlciA9IFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYTo6Y3JlYXRlKCk7CisKKyAg
ICByZXR1cm4gKm1fdXNlck1lZGlhUHJvdmlkZXIuZ2V0KCk7Cit9CisKK2Jvb2wgUGFnZUNsaWVu
dEltcGw6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5JiByZXF1ZXN0KQoreworICAgIHVzZXJNZWRpYVByb3ZpZGVyKCkuZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUmVxdWVzdEZyb21PcmlnaW4odXNlck1lZGlhT3JpZ2luLnNlY3VyaXR5T3Jp
Z2luKCksIHRvcExldmVsT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIGZyYW1lLCByZXF1ZXN0LCBt
X3dlYlZpZXcpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjpj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQor
eworICAgIHVzZXJNZWRpYVByb3ZpZGVyKCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKHVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCB0b3BMZXZlbE9yaWdpbi5zZWN1
cml0eU9yaWdpbigpLCBmcmFtZSwgcmVxdWVzdCwgbV93ZWJWaWV3KTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKK3sKKyAgICB1c2VyTWVkaWFQcm92
aWRlcigpLm1lZGlhU3RhdGVEaWRDaGFuZ2UobWVkaWFTdGF0ZSwgbV93ZWJWaWV3KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92
aWRlcikKIHsKICAgICBbbV93ZWJWaWV3IF9zZXRIYXNDdXN0b21Db250ZW50Vmlldzp1c2VDdXN0
b21Db250ZW50UHJvdmlkZXIgbG9hZGVkTUlNRVR5cGU6bWltZVR5cGVdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wYzA5Mjg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lm
IFBMQVRGT1JNKElPUykKKworQGludGVyZmFjZSBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TIDogTlNPYmplY3QKKworLSAodm9pZClyZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6
YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjazsKKy0gKHZvaWQpcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjazsK
KworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmU4YzkyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLm1tCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
UExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCIKKworI2ltcG9ydCAiV0tVc2VyTWVkaWFQcm92
aWRlci5oIgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZURldmljZS5oPgorI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExp
bmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBVkZvdW5kYXRpb24pOworU09GVF9MSU5L
X0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKTsKK1NPRlRfTElOS19DT05TVEFO
VChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopOworU09GVF9MSU5L
X0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVWaWRlbywgTlNTdHJpbmcgKik7CisK
K0BpbXBsZW1lbnRhdGlvbiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TCisK
Ky0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0
aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBbc2VsZiBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JN
ZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNhbGxiYWNrOmNhbGxiYWNrXTsKK30KKwor
LSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6
ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFU
eXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjYWxsYmFjazpjYWxsYmFja107Cit9CisKKy0gKHZv
aWQpX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhVHlw
ZSBjYWxsYmFjazoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgQVNT
RVJUKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBlQXVkaW8oKV0gfHwg
W21lZGlhVHlwZSBpc0VxdWFsVG9TdHJpbmc6Z2V0QVZNZWRpYVR5cGVWaWRlbygpXSk7CisKKyAg
ICBBVkF1dGhvcml6YXRpb25TdGF0dXMgYXV0aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1
cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6bWVkaWFUeXBl
XTsKKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNE
ZW5pZWQgfHwgYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0
cmljdGVkKSB7CisgICAgICAgIGNhbGxiYWNrKE5PKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRo
b3JpemVkKSB7CisgICAgICAgIGNhbGxiYWNrKFlFUyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFU
eXBlOm1lZGlhVHlwZSBjb21wbGV0aW9uSGFuZGxlcjpjYWxsYmFja107Cit9CisKK0BlbmQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjQ5MjBhNS4uZDJkYjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc5NSw2ICsxNzk1LDEwIEBACiAJ
CUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDgxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9Owor
CQlEM0MxNzY5MTFERDY0NzBDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0MxNzY4RjFE
RDYyRkJDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLmggKi87IH07CisJCUQz
QzE3NjkyMURENjQ3MTEwMEYyMDM0OCAvKiBXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0MxNzY5MDFERDYy
RkJDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tICovOyB9OworCQlEM0RC
MzdBQTFERDNGNUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNE
QjM3QTgxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MuaCAqLzsgfTsKKwkJRDNEQjM3QUIxREQzRjVCODAwNDczNzRDIC8qIFdLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0RCMzdBOTFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAqLzsgfTsKIAkJREY1OEM2MzYxMzcxQUNB
MDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyog
TmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1
N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICov
OyB9OwogCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMx
OTBGNzkxQzAwNzMxNjU4IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSAqLzsgfTsKQEAgLTMyNTgs
NyArMzI2Miw3IEBACiAJCTdDQUI5Mzc5MUQ0NTlFNEIwMDcwRjU0MCAvKiBOZXR3b3JrQ2FjaGVD
b2RlcnNDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrQ2FjaGVDb2RlcnNDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QjE2RkUyMTcyNEI5QjUwMDdBMEE5NSAvKiBjb20uYXBwbGUuaXN0LmRzLmFwcGxlY29ubmVjdC53
ZWJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLmlzdC5kcy5hcHBs
ZWNvbm5lY3Qud2VicGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Ix
NkZFMzE3MjRCOUI1MDA3QTBBOTUgLyogY29tLmFwcGxlLlF1aWNrVGltZSBQbHVnaW4ucGx1Z2lu
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJjb20uYXBwbGUuUXVpY2tUaW1lIFBsdWdpbi5w
bHVnaW4uc2IiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0IxNkZFNDE3MjRCOUI1
MDA3QTBBOTUgLyogY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9ICJjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IuaW4iOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0IxNkZFNDE3MjRCOUI1MDA3QTBBOTUgLyog
Y29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9ICJjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IuaW4iOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0IxNkZFNTE3MjRCOUI1MDA3QTBBOTUgLyogY29tLm1hY3JvbWVk
aWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY29tLm1h
Y3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDQjE2RkU2MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ubWljcm9zb2Z0LlNpbHZlcmxp
Z2h0UGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5taWNyb3NvZnQuU2lsdmVy
bGlnaHRQbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjE2RkU3MTcy
NEI5QjUwMDdBMEE5NSAvKiBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5NDcsMTAgKzM5NTEsMTUgQEAKIAkJQ0VE
QTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VEQTEyREYxNTJDQ0FFODAwRDlFMDhEIC8q
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRUU0QUUyQTFBNURDRjQzMDAwMkY0OUIgLyogVUlLaXRTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDM1OUFBNDkxREQ2MkMxOTAwNTc4OEE2IC8qIFdLVXNlck1lZGlhUHJv
dmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBvcHVwTWVu
dS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQzMTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ0MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VhcmNoUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZWFyY2hQb3B1
cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNDMTc2OEYxREQ2MkZCQzAw
RjIwMzQ4IC8qIFdLVXNlck1lZGlhUHJvdmlkZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDNDMTc2OTAxREQ2MkZCQzAwRjIwMzQ4IC8qIFdLVXNlck1lZGlhUHJv
dmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
VXNlck1lZGlhUHJvdmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDNEQjM3QTgxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOyBwYXRoID0gaW9zL1dLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNE
QjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBwYXRoID0gaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURGNThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5h
dGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDg0OSw2ICs0ODU4LDggQEAKIAkJCQkxQUQwMUJDQjE5MDVENTQ5
MDBDOUM0NUYgLyogV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIuaCAqLywKIAkJ
CQkxQUQwMUJDQTE5MDVENTQ5MDBDOUM0NUYgLyogV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlB
dHRlbXB0ZXIubW0gKi8sCiAJCQkJMkQ3QUFGRDIxOEM4NjQwNjAwQTdBQ0Q0IC8qIFdLV2ViVmll
d0NvbnRlbnRQcm92aWRlci5oICovLAorCQkJCUQzQzE3NjhGMURENjJGQkMwMEYyMDM0OCAvKiBX
S1VzZXJNZWRpYVByb3ZpZGVyQ29jb2EuaCAqLywKKwkJCQlEM0MxNzY5MDFERDYyRkJDMDBGMjAz
NDggLyogV0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tICovLAogCQkJCTJEQzZEOUMxMThDNDRB
NjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5oICovLAogCQkJ
CTJEQzZEOUMyMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdp
c3RyeS5tbSAqLywKIAkJCSk7CkBAIC01MDY5LDYgKzUwODAsOCBAQAogCQkJCTBGQ0I0RTQ1MThC
QkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0Uy
RTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovLAog
CQkJCTI2RjEwQkU3MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVy
ZVJlY29nbml6ZXIubSAqLywKKwkJCQlEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2Vy
TWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICovLAorCQkJCUQzREIzN0E5MUREM0Y1
QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICov
LAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
NjI1OCw2ICs2MjcxLDcgQEAKIAkJCQk3QTlDRDhDMDFDNzc5ODQ5MDBEOUY2QzcgLyogV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAqLywKIAkJCQk3QTlDRDhDMTFDNzc5ODQ5MDBE
OUY2QzcgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggKi8sCiAJCQkJN0E5Q0Q4
QzIxQzc3OUFENjAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNz
YWdlcy5pbiAqLywKKwkJCQlEMzU5QUE0OTFERDYyQzE5MDA1Nzg4QTYgLyogV0tVc2VyTWVkaWFQ
cm92aWRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBVSVByb2Nlc3M7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtNzkwMyw2ICs3OTE3LDcgQEAKIAkJCQkxQTQ0Qjk1QzE2QjczRjlG
MDBCN0JCRDggLyogU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3
MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUUwMEQ2QzE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlEM0RCMzdBQTFERDNGNUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk2QkQ4NUQx
NTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UxQTBCRDYxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVhZGVycyAqLywK
QEAgLTgxODEsNiArODE5Niw3IEBACiAJCQkJQkM1RDI0QzcxNkNENzNDNTAwN0Q1NDYxIC8qIFdL
QnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0REY5RjEy
MEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0MDc1RjYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlEM0MxNzY5MTFERDY0NzBDMDBGMjAzNDggLyogV0tVc2VyTWVkaWFQcm92
aWRlckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyNzEyNEZGMDQwMDA2OEYyMEEg
LyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTI4NEQ3MTQ5
MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUM3
NUM4MTQ5NTREQTYwMEJDNDc3NSAvKiBXS0Nvbm5lY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC05NTQwLDYgKzk1NTYsNyBAQAogCQkJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAv
KiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NTVCQTgyQzFCQTM4RTY0MDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEQTk0NEExMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJT1NFdmVudEZh
Y3RvcnkubW0gaW4gU291cmNlcyAqLywKKwkJCQlEM0MxNzY5MjFERDY0NzExMDBGMjAzNDggLyog
V0tVc2VyTWVkaWFQcm92aWRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAzMzdERDMx
MjdBMkEwRTAwOEZGNEY0IC8qIFdlYktleWJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE2MjgwRjMxOTE5OTgyQTAwNkFEOUY5IC8qIFdlYktpdC5tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM5QkE1MDQxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtOTY1OSw2ICs5Njc2LDcgQEAKIAkJCQkzRjQxOEVGQjE4ODdCRDk3MDAy
Nzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTJERkM3REJDMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3
SW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REQxMTI3QTI5ODAwMDhGRjRGNCAvKiBX
ZWJXaGVlbEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzREIzN0FCMUREM0Y1QjgwMDQ3
Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5l
Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyog
TmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlDRDU1QUIxMjhFMjk0RjAw
MTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGluIFNvdXJjZXMg
Ki8sCi0tIAoyLjEwLjEgKEFwcGxlIEdpdC03OCkKCg==
</data>
<flag name="review"
          id="317210"
          type_id="1"
          status="-"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294713</attachid>
            <date>2016-11-14 10:48:51 -0800</date>
            <delta_ts>2016-11-14 10:53:36 -0800</delta_ts>
            <desc>Proposed Patch V4</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>30031</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA4NWE5ZmE0YWYzZTBlZTc2ZWY2NTdlNjM3ZWYwNmE3YjJkMTg3ZDg4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNyArKysrKysrCiAuLi4vaW9zL1dL
VXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gICB8ICA3MSArKysrKysrKysr
KysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwg
ICA4ICsrCiA5IGZpbGVzIGNoYW5nZWQsIDMxMyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0KCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZmEwMDM4MS4uNGJjZWJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisy
MDE2LTExLTE0ICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBw
b3J0IGZvciBIVE1MIE1lZGlhIENhcHR1cmUgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9u
IGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91bmRhdGlvbiBBUEkgdG8gCisgICAgICAg
IGNoZWNrL3JlcXVlc3QgY2FwdHVyZSBwZXJtaXNzaW9uIGZyb20gdGhlIHVzZXIgZm9yIFNhZmFy
aS4gVGhlbiwgU2FmYXJpIG11c3QgcmVxdWVzdAorICAgICAgICBwZXJtaXNzaW9uIG9uIGJlaGFs
ZiBvZiB0aGUgd2VicGFnZSB0byB1c2UgdGhlIGNhcHR1cmUgZGV2aWNlcy4gQWRkaXRpb25hbGx5
LCBTYWZhcmkKKyAgICAgICAgbXVzdCBwcmVzZW50IFVJIHdoZW4gdGhlIGNhcHR1cmUgaXMgdGFr
aW5nIHBsYWNlLCBzbyBXZWJLaXQgbmVlZHMgdG8gbm90aWZ5IHRoZSBjbGllbnQKKyAgICAgICAg
b2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5uaW5nIGFuZCBlbmRpbmcuIFRvIGRvIHRoaXMsIHdl
IGFkZGVkIGZvdXIgbWV0aG9kcyB0byAKKyAgICAgICAgV0tVSURlbGVnYXRlUHJpdmF0ZSB0byBy
ZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciwgY2hlY2sgZm9yIHBlcm1pc3Npb25zLCBu
b3RpZnkKKyAgICAgICAgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgYmVndW4sIGFuZCBub3Rp
ZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgZW5kZWQuIEFkZGl0aW9uYWxseSwKKyAgICAg
ICAgd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhvZCB0byBXS1dlYlZpZXcgdGhhdCBhbGxvd3MgdGhl
IGNsaWVudCB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFD
YXB0dXJlXSk6IEFsbG93cyB0aGUgY2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxl
Z2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjYXB0dXJlRGV2
aWNlQXV0aG9yaXplcik6IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YKKyAgICAgICAgV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTog
SWYgb24gaU9TLCB3ZQorICAgICAgICBmaXJzdCBjaGVjayB0aGF0IHRoZSB1c2VyIGhhcyBncmFu
dGVkIHRoZSBjbGllbnQgcGVybWlzc2lvbiB0byB1c2UgY2FwdHVyZSBkZXZpY2VzLCBhbmQgCisg
ICAgICAgIGlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRoZW4gd2UgcmVxdWVzdCBwZXJt
aXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBDaGVja3MgdGhl
IGNsaWVudCBmb3IKKyAgICAgICAgcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9E
aWRDaGFuZ2UpOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQorICAgICAgICBzZXNz
aW9uIGJlZ2lubmluZy9lbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1l
ZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyByZXF1ZXN0
TWljcm9waG9uZUF1dGhvcml6YXRpb246XSk6IFVzZXMgQVZGb3VuZGF0aW9uCisgICAgICAgIHRv
IHJlcXVlc3QgbWljcm9waG9uZSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4K
KyAgICAgICAgKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyByZXF1ZXN0
Q2FtZXJhQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24gdG8KKyAgICAgICAgcmVx
dWVzdCBjYW1lcmEgYWNjZXNzIGZyb20gdGhlIHVzZXIgZm9yIHRoZSBjbGllbnQuCisgICAgICAg
ICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgX3JlcXVlc3RBdXRob3Jp
emF0aW9uRm9yTWVkaWFUeXBlOmNhbGxiYWNrOl0pOiAKKyAgICAgICAgSGVscGVyIG1ldGhvZCBm
b3IgcmVxdWVzdGluZyBtaWNyb3Bob25lL2NhbWVyYSBhY2Nlc3MuCisKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTEtMTEgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4ZWREQiAyLjA6ICJjbG9zZSBw
ZW5kaW5nIGZsYWciIGFuZCBmaXJpbmcgYmxvY2tlZCBldmVudHMgYWxsIG5lZWQgZml4aW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAppbmRleCAzYzU0ZWJmLi4zMGNmNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApA
QCAtNjMsNiArNjMsMTAgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKE5TQXJyYXkgKilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRB
Y3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2Nh
dGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlz
TWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yTWljcm9waG9uZTooQk9PTCltaWNyb3Bob25lIGNhbWVyYTooQk9PTCljYW1lcmEgdXJsOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBhdXRob3JpemVk
Q2FtZXJhKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVklldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkQmVn
aW5DYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlv
cygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246KFdLV2ViVmll
dyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlWaWV3Q29udHJv
bGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxl
ckZvclVSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9s
bGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDkuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCA0ZjhiMzVmLi43OTJjNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDQzNSw2ICs0NDM1LDExIEBA
IC0gKHZvaWQpc2V0U2VtYW50aWNDb250ZW50QXR0cmlidXRlOihVSVNlbWFudGljQ29udGVudEF0
dHJpYnV0ZSljb250ZW50QXR0cmlidXRlCiAgICAgX3BhZ2UtPnNldFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24odG9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKGNvbnRlbnRBdHRyaWJ1
dGUpKTsKIH0KIAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZQoreworICAgIF9wYWdlLT5zZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpDYXB0dXJlRGV2aWNlc0FyZU11dGVkKTsKK30K
KwogI2Vsc2UgLy8gI2lmIFBMQVRGT1JNKElPUykKIAogI3ByYWdtYSBtYXJrIC0gT1MgWC1zcGVj
aWZpYyBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDAzZTg0YzIuLjliMGU1NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CkBAIC0yNTUsNiArMjU1LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRp
YXRlQWN0aW9uVHlwZSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNj
cmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVn
YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpKTsKIAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZTsKKwogQGVuZAogCiAj
aWYgIVRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCmluZGV4IGJjMTRlZjUuLjRkZWQyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMzUsNiArMzUsMTEgQEAKICNpbXBvcnQgIldl
YWtPYmpDUHRyLmgiCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShJ
T1MpCitPQkpDX0NMQVNTIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1M7Cisj
ZW5kaWYKKworQGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvOwogQGNsYXNzIFdLV2ViVmlldzsKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGU7CkBAIC04
OSw2ICs5NCw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHJ1
bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJyaWRlOwogI2VuZGlmCisgICAgICAgIGJvb2wg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSYpIG92ZXJyaWRlOworICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eSYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAgIHZv
aWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94
eSopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKICNpZiBIQVZFKEFQUF9MSU5LUykKQEAg
LTEwNCw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1
bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKIAogICAg
ICAgICBVSURlbGVnYXRlJiBtX3VpRGVsZWdhdGU7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAg
ICBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICpjYXB0dXJlRGV2aWNlQXV0
aG9yaXplcigpOworICAgICAgICBSZXRhaW5QdHI8V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUz4gbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplcjsKKyNlbmRpZgorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlIHsgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CiAgICAgfTsKIAogICAgIFdLV2Vi
VmlldyAqbV93ZWJWaWV3OwpAQCAtMTMxLDYgKzE0NCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgICAgIGJvb2wgd2ViVmlld0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA6IDE7Cisg
ICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9w
aG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJv
b2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1l
SWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEJl
Z2luQ2FwdHVyZVNlc3Npb24gOiAxOworICAgICAgICBib29sIHdlYlZpZXdEaWRFbmRDYXB0dXJl
U2Vzc2lvbiA6IDE7CiAgICAgICAgIGJvb2wgcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2Vi
VmlldyA6IDE7CiAjZW5kaWYKICAgICAgICAgYm9vbCBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldl
YlZpZXcgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQppbmRleCBlZGEzNTY1Li5lNGRiZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IgorI2ltcG9ydCAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKKyNpbXBvcnQgIlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkFjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0
ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgpAQCAtNDYsNiArNDgsMTAgQEAKICNp
bXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAorI2lmIFBM
QVRGT1JNKElPUykKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1MuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogVUlEZWxlZ2F0ZTo6VUlEZWxl
Z2F0ZShXS1dlYlZpZXcgKndlYlZpZXcpCkBAIC0xMDEsNiArMTA3LDEwIEBAIHZvaWQgVUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9u
cyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFjdGlv
bnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvck1pY3JvcGhvbmVDYW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6Y2FtZXJhOnVybDptYWluRnJhbWVV
Ukw6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNp
c2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRl
bnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KV07CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjopXTsKICAg
ICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29u
dHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRh
RGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OildOwpAQCAtMjk5LDYg
KzMwOSwxMTkgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIKIH0KICNlbmRpZgogCisjaWYgUExB
VEZPUk0oSU9TKQorV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZpY2VBdXRob3JpemVyKCkKK3sKKyAgICBpZiAoIW1f
Y2FwdHVyZURldmljZUF1dGhvcml6ZXIpCisgICAgICAgIG1fY2FwdHVyZURldmljZUF1dGhvcml6
ZXIgPSBhZG9wdE5TKFtbV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBhbGxv
Y10gaW5pdF0pOworCisgICAgcmV0dXJuIG1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIuZ2V0KCk7
Cit9CisjZW5kaWYKKworYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIGRlbGVn
YXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8
fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmVDYW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhh
bmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHJlcXVpcmVzQXVkaW8gPSBy
ZXF1ZXN0LnJlcXVpcmVzQXVkaW8oKTsKKyAgICBib29sIHJlcXVpcmVzVmlkZW8gPSByZXF1ZXN0
LnJlcXVpcmVzVmlkZW8oKTsKKyAgICBpZiAoIXJlcXVpcmVzQXVkaW8gJiYgIXJlcXVpcmVzVmlk
ZW8pIHsKKyAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIF9fYmxvY2sgV0tXZWJWaWV3ICp3ZWJWaWV3ID0g
bV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAgICB2b2lkIChedWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaykodm9pZCkgPSBeIHsKKyAgICAgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZy
YW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIHJl
cXVlc3RGcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgZnJhbWUudXJsKCkpOworICAgICAgICBXZWJD
b3JlOjpVUkwgbWFpbkZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsK
KworICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpyZXF1aXJl
c0F1ZGlvIGNhbWVyYTpyZXF1aXJlc1ZpZGVvIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWRNaWNyb3Bo
b25lLCBCT09MIGF1dGhvcml6ZWRDYW1lcmEpIHsKKyAgICAgICAgICAgIGlmICgocmVxdWlyZXNB
dWRpbyAhPSBhdXRob3JpemVkTWljcm9waG9uZSkgfHwgKHJlcXVpcmVzVmlkZW8gIT0gYXV0aG9y
aXplZENhbWVyYSkpIHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNz
aW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlEID0gcmVxdWlyZXNWaWRlbyA/IHJl
cXVlc3QudmlkZW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCA9IHJlcXVpcmVzQXVkaW8gPyByZXF1ZXN0LmF1
ZGlvRGV2aWNlVUlEcygpLmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgICAgIHJlcXVlc3Qu
YWxsb3coYXVkaW9EZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKKyAgICAgICAgfV07CisgICAg
fTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB2b2lkICheY2FtZXJhQXV0aG9yaXphdGlvbkJs
b2NrKSh2b2lkKSA9IF4geworICAgICAgICBpZiAocmVxdWlyZXNWaWRlbykgeworICAgICAgICAg
ICAgW2NhcHR1cmVEZXZpY2VBdXRob3JpemVyKCkgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246
XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpCisg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhv
cml6YXRpb25CbG9jaygpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAo
cmVxdWlyZXNBdWRpbykgeworICAgICAgICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1
ZXN0TWljcm9waG9uZUF1dGhvcml6YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAg
ICAgIGlmICghYXV0aG9yaXplZCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQ
ZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYW1l
cmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyAgICAgICAgfV07CisgICAgfSBlbHNlCisgICAgICAg
IGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygpOworI2Vsc2UKKyAgICB1aURlbGVnYXRlQXV0aG9y
aXphdGlvbkJsb2NrKCk7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1
ZXN0KQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQo
KTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRl
bnRpZmllckRlY2lzaW9uSGFuZGxlcikgeworICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFj
Y2Vzc0luZm8oU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAgICBj
b25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OworICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZyYW1l
LnVybCgpKTsKKyAgICBXZWJDb3JlOjpVUkwgbWFpbkZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBt
YWluRnJhbWUtPnVybCgpKTsKKworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVn
YXRlIF93ZWJWaWV3OndlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVl
c3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFt
ZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9y
aXplZCkgeworICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKHNh
bHQpLCBhdXRob3JpemVkKTsKKyAgICB9XTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uIHx8ICFtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uKQorICAgICAg
ICByZXR1cm47CisKKyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJW
aWV3OworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0
YXRlID0gcGFnZS5tZWRpYVN0YXRlRmxhZ3MoKTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPSBtX21lZGlh
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZp
Y2U7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlh
U3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURldmljZTsKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhh
c0FjdGl2ZUNhcHR1cmUgPT0gbmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fbWVkaWFTdGF0ZSA9IG1lZGlhU3RhdGU7CisgICAgaWYgKCFvbGRN
ZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVy
ZSkgeworICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
d0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246d2ViVmlld107CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgJiYgIW5ld01lZGlhU3Rh
dGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOndlYlZpZXddOworfQorCiB2b2lk
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBG
dW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVX
ZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YVRvdGFs
Qnl0ZXNOZWVkZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlMjY1YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUy5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxX
ZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBQTEFURk9STShJT1MpCisKK0BpbnRlcmZhY2Ug
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyA6IE5TT2JqZWN0CisKKy0gKHZv
aWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXpl
ZCkpY2FsbGJhY2s7CistICh2b2lkKXJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uOih2b2lkKF4p
KEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWMxNjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TLm1tCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oSU9T
KQorCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaCIKKworI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZURldmlj
ZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBVkZvdW5kYXRpb24p
OworU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKTsKK1NPRlRf
TElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICop
OworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVWaWRlbywgTlNT
dHJpbmcgKik7CisKK0BpbXBsZW1lbnRhdGlvbiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TCisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lk
KF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBbc2VsZiBfcmVxdWVzdEF1dGhv
cml6YXRpb25Gb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNhbGxiYWNrOmNhbGxi
YWNrXTsKK30KKworLSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShC
T09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVlc3RBdXRob3JpemF0
aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjYWxsYmFjazpjYWxsYmFja107
Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOihOU1N0cmlu
ZyAqKW1lZGlhVHlwZSBjYWxsYmFjazoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNr
Cit7CisgICAgQVNTRVJUKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBl
QXVkaW8oKV0gfHwgW21lZGlhVHlwZSBpc0VxdWFsVG9TdHJpbmc6Z2V0QVZNZWRpYVR5cGVWaWRl
bygpXSk7CisKKyAgICBBVkF1dGhvcml6YXRpb25TdGF0dXMgYXV0aG9yaXphdGlvblN0YXR1cyA9
IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5
cGU6bWVkaWFUeXBlXTsKKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6
YXRpb25TdGF0dXNEZW5pZWQgfHwgYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRp
b25TdGF0dXNSZXN0cmljdGVkKSB7CisgICAgICAgIGNhbGxiYWNrKE5PKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRp
b25TdGF0dXNBdXRob3JpemVkKSB7CisgICAgICAgIGNhbGxiYWNrKFlFUyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNj
ZXNzRm9yTWVkaWFUeXBlOm1lZGlhVHlwZSBjb21wbGV0aW9uSGFuZGxlcjpjYWxsYmFja107Cit9
CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNDkyMGE1Li40YmMyODI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNzk1LDYgKzE3OTUsOCBAQAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyog
V2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJ
CUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi87IH07CiAJCUQzQjk0ODQ5MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJRDNEQjM3QUExREQzRjVCNDAwNDczNzRDIC8q
IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAv
KiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi87IH07CisJCUQzREIz
N0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNE
QjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MubW0gKi87IH07CiAJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJX
aGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThE
N0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKIAkJRTExNUM3MTQxOTBGODlF
NDAwRUNDNTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBEYXRh
YmFzZVByb2Nlc3NJT1MubW0gKi87IH07CkBAIC0zOTUxLDYgKzM5NTMsOCBAQAogCQlEM0I5NDg0
MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIz
N0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MuaDsgcGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIzN0E5
MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbTsgcGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
RjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVX
ZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTUwNjksNiArNTA3Myw4IEBACiAJCQkJMEZDQjRFNDUxOEJCRTA0NDAwMEZD
RkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKIAkJCQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjgg
LyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJMjZGMTBC
RTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXpl
ci5tICovLAorCQkJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8sCisJCQkJRDNEQjM3QTkxREQzRjVBNzAwNDczNzRD
IC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gKi8sCiAJCQkpOwog
CQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03OTAzLDYgKzc5
MDksNyBAQAogCQkJCTFBNDRCOTVDMTZCNzNGOUYwMEI3QkJEOCAvKiBTdG9yYWdlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMzFBOTcxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTAwRDZDMTgzMjdDMTIwMDA4
N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzREIzN0FBMURE
M0Y1QjQwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyOTZCRDg1RDE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTFBMEJENjFBNDhFNkM2MDA1NEVGNzQgLyog
VENDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyog
VGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTY1OSw2ICs5NjY2LDcgQEAKIAkJCQkz
RjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERkM3REJDMUJDQ0MxOTUw
MEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REQxMTI3
QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQz
REIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8q
IFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzIxNTk1MzFE
QkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RC
YXNlLm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjEwLjEgKEFwcGxlIEdpdC03OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294716</attachid>
            <date>2016-11-14 10:53:36 -0800</date>
            <delta_ts>2016-11-14 12:11:45 -0800</delta_ts>
            <desc>Proposed Patch V4</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>30031</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSAyMjA4OGQwMzQ2ODkwOTU1OTkwNjdkMmFkMThlMjc0YmM1OGIzZTBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNyArKysrKysrCiAuLi4vaW9zL1dL
VXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gICB8ICA3MSArKysrKysrKysr
KysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwg
ICA4ICsrCiA5IGZpbGVzIGNoYW5nZWQsIDMxMyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0KCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZmEwMDM4MS4uNGJjZWJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisy
MDE2LTExLTE0ICBBbmRyZXcgR29sZCAgPGFnb2xkQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBw
b3J0IGZvciBIVE1MIE1lZGlhIENhcHR1cmUgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9u
IGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91bmRhdGlvbiBBUEkgdG8gCisgICAgICAg
IGNoZWNrL3JlcXVlc3QgY2FwdHVyZSBwZXJtaXNzaW9uIGZyb20gdGhlIHVzZXIgZm9yIFNhZmFy
aS4gVGhlbiwgU2FmYXJpIG11c3QgcmVxdWVzdAorICAgICAgICBwZXJtaXNzaW9uIG9uIGJlaGFs
ZiBvZiB0aGUgd2VicGFnZSB0byB1c2UgdGhlIGNhcHR1cmUgZGV2aWNlcy4gQWRkaXRpb25hbGx5
LCBTYWZhcmkKKyAgICAgICAgbXVzdCBwcmVzZW50IFVJIHdoZW4gdGhlIGNhcHR1cmUgaXMgdGFr
aW5nIHBsYWNlLCBzbyBXZWJLaXQgbmVlZHMgdG8gbm90aWZ5IHRoZSBjbGllbnQKKyAgICAgICAg
b2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5uaW5nIGFuZCBlbmRpbmcuIFRvIGRvIHRoaXMsIHdl
IGFkZGVkIGZvdXIgbWV0aG9kcyB0byAKKyAgICAgICAgV0tVSURlbGVnYXRlUHJpdmF0ZSB0byBy
ZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciwgY2hlY2sgZm9yIHBlcm1pc3Npb25zLCBu
b3RpZnkKKyAgICAgICAgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgYmVndW4sIGFuZCBub3Rp
ZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgZW5kZWQuIEFkZGl0aW9uYWxseSwKKyAgICAg
ICAgd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhvZCB0byBXS1dlYlZpZXcgdGhhdCBhbGxvd3MgdGhl
IGNsaWVudCB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFD
YXB0dXJlXSk6IEFsbG93cyB0aGUgY2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxl
Z2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjYXB0dXJlRGV2
aWNlQXV0aG9yaXplcik6IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YKKyAgICAgICAgV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KTog
SWYgb24gaU9TLCB3ZQorICAgICAgICBmaXJzdCBjaGVjayB0aGF0IHRoZSB1c2VyIGhhcyBncmFu
dGVkIHRoZSBjbGllbnQgcGVybWlzc2lvbiB0byB1c2UgY2FwdHVyZSBkZXZpY2VzLCBhbmQgCisg
ICAgICAgIGlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRoZW4gd2UgcmVxdWVzdCBwZXJt
aXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBDaGVja3MgdGhl
IGNsaWVudCBmb3IKKyAgICAgICAgcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9E
aWRDaGFuZ2UpOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQorICAgICAgICBzZXNz
aW9uIGJlZ2lubmluZy9lbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1l
ZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyByZXF1ZXN0
TWljcm9waG9uZUF1dGhvcml6YXRpb246XSk6IFVzZXMgQVZGb3VuZGF0aW9uCisgICAgICAgIHRv
IHJlcXVlc3QgbWljcm9waG9uZSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4K
KyAgICAgICAgKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyByZXF1ZXN0
Q2FtZXJhQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24gdG8KKyAgICAgICAgcmVx
dWVzdCBjYW1lcmEgYWNjZXNzIGZyb20gdGhlIHVzZXIgZm9yIHRoZSBjbGllbnQuCisgICAgICAg
ICgtW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgX3JlcXVlc3RBdXRob3Jp
emF0aW9uRm9yTWVkaWFUeXBlOmNhbGxiYWNrOl0pOiAKKyAgICAgICAgSGVscGVyIG1ldGhvZCBm
b3IgcmVxdWVzdGluZyBtaWNyb3Bob25lL2NhbWVyYSBhY2Nlc3MuCisKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTEtMTEgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4ZWREQiAyLjA6ICJjbG9zZSBw
ZW5kaW5nIGZsYWciIGFuZCBmaXJpbmcgYmxvY2tlZCBldmVudHMgYWxsIG5lZWQgZml4aW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAppbmRleCAzYzU0ZWJmLi4yNjhlNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApA
QCAtNjMsNiArNjMsMTAgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKE5TQXJyYXkgKilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRB
Y3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2Nh
dGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlz
TWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9u
Rm9yTWljcm9waG9uZTooQk9PTCltaWNyb3Bob25lIGNhbWVyYTooQk9PTCljYW1lcmEgdXJsOihO
U1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBhdXRob3JpemVk
Q2FtZXJhKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkQmVn
aW5DYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlv
cygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246KFdLV2ViVmll
dyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlWaWV3Q29udHJv
bGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxl
ckZvclVSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9s
bGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDkuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCA0ZjhiMzVmLi43OTJjNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDQzNSw2ICs0NDM1LDExIEBA
IC0gKHZvaWQpc2V0U2VtYW50aWNDb250ZW50QXR0cmlidXRlOihVSVNlbWFudGljQ29udGVudEF0
dHJpYnV0ZSljb250ZW50QXR0cmlidXRlCiAgICAgX3BhZ2UtPnNldFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24odG9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKGNvbnRlbnRBdHRyaWJ1
dGUpKTsKIH0KIAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZQoreworICAgIF9wYWdlLT5zZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpDYXB0dXJlRGV2aWNlc0FyZU11dGVkKTsKK30K
KwogI2Vsc2UgLy8gI2lmIFBMQVRGT1JNKElPUykKIAogI3ByYWdtYSBtYXJrIC0gT1MgWC1zcGVj
aWZpYyBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDAzZTg0YzIuLjliMGU1NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CkBAIC0yNTUsNiArMjU1LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRp
YXRlQWN0aW9uVHlwZSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNj
cmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVn
YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpKTsKIAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZTsKKwogQGVuZAogCiAj
aWYgIVRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCmluZGV4IGJjMTRlZjUuLjRkZWQyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMzUsNiArMzUsMTEgQEAKICNpbXBvcnQgIldl
YWtPYmpDUHRyLmgiCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShJ
T1MpCitPQkpDX0NMQVNTIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1M7Cisj
ZW5kaWYKKworQGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvOwogQGNsYXNzIFdLV2ViVmlldzsKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGU7CkBAIC04
OSw2ICs5NCw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHJ1
bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJyaWRlOwogI2VuZGlmCisgICAgICAgIGJvb2wg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSYpIG92ZXJyaWRlOworICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eSYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAgIHZv
aWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94
eSopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKICNpZiBIQVZFKEFQUF9MSU5LUykKQEAg
LTEwNCw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1
bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKIAogICAg
ICAgICBVSURlbGVnYXRlJiBtX3VpRGVsZWdhdGU7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAg
ICBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICpjYXB0dXJlRGV2aWNlQXV0
aG9yaXplcigpOworICAgICAgICBSZXRhaW5QdHI8V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUz4gbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplcjsKKyNlbmRpZgorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlIHsgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CiAgICAgfTsKIAogICAgIFdLV2Vi
VmlldyAqbV93ZWJWaWV3OwpAQCAtMTMxLDYgKzE0NCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgICAgIGJvb2wgd2ViVmlld0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA6IDE7Cisg
ICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9w
aG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJv
b2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1l
SWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEJl
Z2luQ2FwdHVyZVNlc3Npb24gOiAxOworICAgICAgICBib29sIHdlYlZpZXdEaWRFbmRDYXB0dXJl
U2Vzc2lvbiA6IDE7CiAgICAgICAgIGJvb2wgcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2Vi
VmlldyA6IDE7CiAjZW5kaWYKICAgICAgICAgYm9vbCBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldl
YlZpZXcgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQppbmRleCBlZGEzNTY1Li5lNGRiZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IgorI2ltcG9ydCAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKKyNpbXBvcnQgIlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkFjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0
ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgpAQCAtNDYsNiArNDgsMTAgQEAKICNp
bXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAorI2lmIFBM
QVRGT1JNKElPUykKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1MuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogVUlEZWxlZ2F0ZTo6VUlEZWxl
Z2F0ZShXS1dlYlZpZXcgKndlYlZpZXcpCkBAIC0xMDEsNiArMTA3LDEwIEBAIHZvaWQgVUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9u
cyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFjdGlv
bnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvck1pY3JvcGhvbmVDYW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6Y2FtZXJhOnVybDptYWluRnJhbWVV
Ukw6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNp
c2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRl
bnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KV07CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjopXTsKICAg
ICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29u
dHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRh
RGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OildOwpAQCAtMjk5LDYg
KzMwOSwxMTkgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIKIH0KICNlbmRpZgogCisjaWYgUExB
VEZPUk0oSU9TKQorV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZpY2VBdXRob3JpemVyKCkKK3sKKyAgICBpZiAoIW1f
Y2FwdHVyZURldmljZUF1dGhvcml6ZXIpCisgICAgICAgIG1fY2FwdHVyZURldmljZUF1dGhvcml6
ZXIgPSBhZG9wdE5TKFtbV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBhbGxv
Y10gaW5pdF0pOworCisgICAgcmV0dXJuIG1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIuZ2V0KCk7
Cit9CisjZW5kaWYKKworYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIGRlbGVn
YXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8
fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmVDYW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhh
bmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHJlcXVpcmVzQXVkaW8gPSBy
ZXF1ZXN0LnJlcXVpcmVzQXVkaW8oKTsKKyAgICBib29sIHJlcXVpcmVzVmlkZW8gPSByZXF1ZXN0
LnJlcXVpcmVzVmlkZW8oKTsKKyAgICBpZiAoIXJlcXVpcmVzQXVkaW8gJiYgIXJlcXVpcmVzVmlk
ZW8pIHsKKyAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIF9fYmxvY2sgV0tXZWJWaWV3ICp3ZWJWaWV3ID0g
bV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAgICB2b2lkIChedWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaykodm9pZCkgPSBeIHsKKyAgICAgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZy
YW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIHJl
cXVlc3RGcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgZnJhbWUudXJsKCkpOworICAgICAgICBXZWJD
b3JlOjpVUkwgbWFpbkZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsK
KworICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpyZXF1aXJl
c0F1ZGlvIGNhbWVyYTpyZXF1aXJlc1ZpZGVvIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1l
VVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWRNaWNyb3Bo
b25lLCBCT09MIGF1dGhvcml6ZWRDYW1lcmEpIHsKKyAgICAgICAgICAgIGlmICgocmVxdWlyZXNB
dWRpbyAhPSBhdXRob3JpemVkTWljcm9waG9uZSkgfHwgKHJlcXVpcmVzVmlkZW8gIT0gYXV0aG9y
aXplZENhbWVyYSkpIHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNz
aW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlEID0gcmVxdWlyZXNWaWRlbyA/IHJl
cXVlc3QudmlkZW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCA9IHJlcXVpcmVzQXVkaW8gPyByZXF1ZXN0LmF1
ZGlvRGV2aWNlVUlEcygpLmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgICAgIHJlcXVlc3Qu
YWxsb3coYXVkaW9EZXZpY2VVSUQsIHZpZGVvRGV2aWNlVUlEKTsKKyAgICAgICAgfV07CisgICAg
fTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB2b2lkICheY2FtZXJhQXV0aG9yaXphdGlvbkJs
b2NrKSh2b2lkKSA9IF4geworICAgICAgICBpZiAocmVxdWlyZXNWaWRlbykgeworICAgICAgICAg
ICAgW2NhcHR1cmVEZXZpY2VBdXRob3JpemVyKCkgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246
XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpCisg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhv
cml6YXRpb25CbG9jaygpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAo
cmVxdWlyZXNBdWRpbykgeworICAgICAgICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1
ZXN0TWljcm9waG9uZUF1dGhvcml6YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAg
ICAgIGlmICghYXV0aG9yaXplZCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQ
ZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYW1l
cmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyAgICAgICAgfV07CisgICAgfSBlbHNlCisgICAgICAg
IGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygpOworI2Vsc2UKKyAgICB1aURlbGVnYXRlQXV0aG9y
aXphdGlvbkJsb2NrKCk7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1
ZXN0KQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQo
KTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRl
bnRpZmllckRlY2lzaW9uSGFuZGxlcikgeworICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFj
Y2Vzc0luZm8oU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAgICBj
b25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgp
OworICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZyYW1l
LnVybCgpKTsKKyAgICBXZWJDb3JlOjpVUkwgbWFpbkZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBt
YWluRnJhbWUtPnVybCgpKTsKKworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVn
YXRlIF93ZWJWaWV3OndlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVl
c3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFt
ZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9y
aXplZCkgeworICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKHNh
bHQpLCBhdXRob3JpemVkKTsKKyAgICB9XTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uIHx8ICFtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uKQorICAgICAg
ICByZXR1cm47CisKKyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJW
aWV3OworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0
YXRlID0gcGFnZS5tZWRpYVN0YXRlRmxhZ3MoKTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPSBtX21lZGlh
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZp
Y2U7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlh
U3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURldmljZTsKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhh
c0FjdGl2ZUNhcHR1cmUgPT0gbmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fbWVkaWFTdGF0ZSA9IG1lZGlhU3RhdGU7CisgICAgaWYgKCFvbGRN
ZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVy
ZSkgeworICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
d0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246d2ViVmlld107CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgJiYgIW5ld01lZGlhU3Rh
dGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOndlYlZpZXddOworfQorCiB2b2lk
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBG
dW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVX
ZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YVRvdGFs
Qnl0ZXNOZWVkZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlMjY1YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUy5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxX
ZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBQTEFURk9STShJT1MpCisKK0BpbnRlcmZhY2Ug
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyA6IE5TT2JqZWN0CisKKy0gKHZv
aWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXpl
ZCkpY2FsbGJhY2s7CistICh2b2lkKXJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uOih2b2lkKF4p
KEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWMxNjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TLm1tCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oSU9T
KQorCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaCIKKworI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZURldmlj
ZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBVkZvdW5kYXRpb24p
OworU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKTsKK1NPRlRf
TElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICop
OworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVWaWRlbywgTlNT
dHJpbmcgKik7CisKK0BpbXBsZW1lbnRhdGlvbiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TCisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lk
KF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBbc2VsZiBfcmVxdWVzdEF1dGhv
cml6YXRpb25Gb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNhbGxiYWNrOmNhbGxi
YWNrXTsKK30KKworLSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShC
T09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVlc3RBdXRob3JpemF0
aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjYWxsYmFjazpjYWxsYmFja107
Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOihOU1N0cmlu
ZyAqKW1lZGlhVHlwZSBjYWxsYmFjazoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNr
Cit7CisgICAgQVNTRVJUKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBl
QXVkaW8oKV0gfHwgW21lZGlhVHlwZSBpc0VxdWFsVG9TdHJpbmc6Z2V0QVZNZWRpYVR5cGVWaWRl
bygpXSk7CisKKyAgICBBVkF1dGhvcml6YXRpb25TdGF0dXMgYXV0aG9yaXphdGlvblN0YXR1cyA9
IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5
cGU6bWVkaWFUeXBlXTsKKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6
YXRpb25TdGF0dXNEZW5pZWQgfHwgYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRp
b25TdGF0dXNSZXN0cmljdGVkKSB7CisgICAgICAgIGNhbGxiYWNrKE5PKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRp
b25TdGF0dXNBdXRob3JpemVkKSB7CisgICAgICAgIGNhbGxiYWNrKFlFUyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNj
ZXNzRm9yTWVkaWFUeXBlOm1lZGlhVHlwZSBjb21wbGV0aW9uSGFuZGxlcjpjYWxsYmFja107Cit9
CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNDkyMGE1Li40YmMyODI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNzk1LDYgKzE3OTUsOCBAQAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyog
V2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJ
CUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi87IH07CiAJCUQzQjk0ODQ5MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJRDNEQjM3QUExREQzRjVCNDAwNDczNzRDIC8q
IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAv
KiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi87IH07CisJCUQzREIz
N0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNE
QjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MubW0gKi87IH07CiAJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJX
aGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThE
N0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKIAkJRTExNUM3MTQxOTBGODlF
NDAwRUNDNTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBEYXRh
YmFzZVByb2Nlc3NJT1MubW0gKi87IH07CkBAIC0zOTUxLDYgKzM5NTMsOCBAQAogCQlEM0I5NDg0
MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIz
N0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MuaDsgcGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIzN0E5
MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbTsgcGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
RjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVX
ZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTUwNjksNiArNTA3Myw4IEBACiAJCQkJMEZDQjRFNDUxOEJCRTA0NDAwMEZD
RkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKIAkJCQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjgg
LyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJMjZGMTBC
RTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXpl
ci5tICovLAorCQkJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8sCisJCQkJRDNEQjM3QTkxREQzRjVBNzAwNDczNzRD
IC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gKi8sCiAJCQkpOwog
CQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03OTAzLDYgKzc5
MDksNyBAQAogCQkJCTFBNDRCOTVDMTZCNzNGOUYwMEI3QkJEOCAvKiBTdG9yYWdlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMzFBOTcxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTAwRDZDMTgzMjdDMTIwMDA4
N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzREIzN0FBMURE
M0Y1QjQwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyOTZCRDg1RDE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTFBMEJENjFBNDhFNkM2MDA1NEVGNzQgLyog
VENDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyog
VGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTY1OSw2ICs5NjY2LDcgQEAKIAkJCQkz
RjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERkM3REJDMUJDQ0MxOTUw
MEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REQxMTI3
QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQz
REIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3Jp
emVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8q
IFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzIxNTk1MzFE
QkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RC
YXNlLm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjEwLjEgKEFwcGxlIEdpdC03OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294726</attachid>
            <date>2016-11-14 12:11:45 -0800</date>
            <delta_ts>2016-11-14 14:20:59 -0800</delta_ts>
            <desc>Proposed Patch V4</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>29995</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA2YjEyYTZiN2M4YTM4YzAxMDE3ZTNiMzk1YzhiNzliZTE3ZjJmYjA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNSArKysrKysKIC4uLi9pb3MvV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAgIHwgIDcxICsrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAg
IDggKysKIDkgZmlsZXMgY2hhbmdlZCwgMzExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmYTAwMzgxLi40YmNlYmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MTYtMTEtMTQgIEFuZHJldyBHb2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgZm9yIEhUTUwgTWVkaWEgQ2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24g
aU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAg
Y2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJp
LiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxm
IG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHks
IFNhZmFyaQorICAgICAgICBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtp
bmcgcGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2Ug
YWRkZWQgZm91ciBtZXRob2RzIHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5v
dGlmeQorICAgICAgICB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlm
eSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAg
ICB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNh
cHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKTogUmV0dXJucyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBJ
ZiBvbiBpT1MsIHdlCisgICAgICAgIGZpcnN0IGNoZWNrIHRoYXQgdGhlIHVzZXIgaGFzIGdyYW50
ZWQgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIHVzZSBjYXB0dXJlIGRldmljZXMsIGFuZCAKKyAg
ICAgICAgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiB3ZSByZXF1ZXN0IHBlcm1p
c3Npb24gZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUg
Y2xpZW50IGZvcgorICAgICAgICBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMu
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSk6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Np
b24gYmVnaW5uaW5nL2VuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RN
aWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24KKyAgICAgICAgdG8g
cmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50Lgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bworICAgICAgICByZXF1
ZXN0IGNhbWVyYSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKyAgICAgICAg
KC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6
YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJhY2s6XSk6IAorICAgICAgICBIZWxwZXIgbWV0aG9kIGZv
ciByZXF1ZXN0aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KKworICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0xMS0xMSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW5kZXhlZERCIDIuMDogImNsb3NlIHBl
bmRpbmcgZmxhZyIgYW5kIGZpcmluZyBibG9ja2VkIGV2ZW50cyBhbGwgbmVlZCBmaXhpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjI2OGU1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBA
IC02Myw2ICs2MywxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAoTlNBcnJheSAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFj
dGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDooQ0dQb2ludClwb2ludDsKIC0g
KEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUmVxdWVzdEdlb2xvY2F0
aW9uQXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgaXNNYWluRnJhbWU6KEJPT0wpaXNN
YWluRnJhbWUgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTDsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JNaWNyb3Bob25lOihCT09MKW1pY3JvcGhvbmUgY2FtZXJhOihCT09MKWNhbWVyYSB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25lLCBCT09MIGF1dGhvcml6ZWRD
YW1lcmEpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBm
cmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRCZWdp
bkNhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiAtIChVSVZpZXdDb250cm9s
bGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVy
Rm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRyb2xs
ZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcyg5LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
d2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJM
RShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IDRmOGIzNWYuLjc5MmM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00NDM1LDYgKzQ0MzUsMTEgQEAg
LSAodm9pZClzZXRTZW1hbnRpY0NvbnRlbnRBdHRyaWJ1dGU6KFVJU2VtYW50aWNDb250ZW50QXR0
cmlidXRlKWNvbnRlbnRBdHRyaWJ1dGUKICAgICBfcGFnZS0+c2V0VXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbih0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oY29udGVudEF0dHJpYnV0
ZSkpOwogfQogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCit7CisgICAgX3BhZ2UtPnNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkNhcHR1cmVEZXZpY2VzQXJlTXV0ZWQpOworfQor
CiAjZWxzZSAvLyAjaWYgUExBVEZPUk0oSU9TKQogCiAjcHJhZ21hIG1hcmsgLSBPUyBYLXNwZWNp
ZmljIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMDNlODRjMi4uOWIwZTU0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
QEAgLTI1NSw2ICsyNTUsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlh
dGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2Ny
ZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdh
dGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSkpOwogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlOworCiBAZW5kCiAKICNp
ZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmgKaW5kZXggYmMxNGVmNS4uNGRlZDI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0zNSw2ICszNSwxMSBAQAogI2ltcG9ydCAiV2Vh
a09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAorI2lmIFBMQVRGT1JNKElP
UykKK09CSkNfQ0xBU1MgV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUzsKKyNl
bmRpZgorCitAY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBAY2xhc3MgX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm87CiBAY2xhc3MgV0tXZWJWaWV3OwogQHByb3RvY29sIFdLVUlEZWxlZ2F0ZTsKQEAgLTg5
LDYgKzk0LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wgcnVu
T3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBk
ZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
Jikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5Jikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICAgICAgICAgdm9p
ZCBwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
Kikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQogI2lmIEhBVkUoQVBQX0xJTktTKQpAQCAt
MTA0LDYgKzExMiwxMSBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGltYWdlT3JNZWRpYURvY3Vt
ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogCiAgICAg
ICAgIFVJRGVsZWdhdGUmIG1fdWlEZWxlZ2F0ZTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAg
IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgKmNhcHR1cmVEZXZpY2VBdXRo
b3JpemVyKCk7CisgICAgICAgIFJldGFpblB0cjxXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TPiBtX2NhcHR1cmVEZXZpY2VBdXRob3JpemVyOworI2VuZGlmCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKICAgICB9OwogCiAgICAgV0tXZWJW
aWV3ICptX3dlYlZpZXc7CkBAIC0xMzEsNiArMTQ0LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICAgICAgYm9vbCB3ZWJWaWV3QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9ucyA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50IDogMTsKKyAg
ICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bo
b25lQ2FtZXJhVXJsTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9v
bCB3ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJ
ZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVn
aW5DYXB0dXJlU2Vzc2lvbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEVuZENhcHR1cmVT
ZXNzaW9uIDogMTsKICAgICAgICAgYm9vbCBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJW
aWV3IDogMTsKICNlbmRpZgogICAgICAgICBib29sIGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2Vi
VmlldyA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CmluZGV4IGVkYTM1NjUuLmU0ZGJkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkNvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgi
CisjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9ydCAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRl
cm5hbC5oIgogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQg
IldLT3BlblBhbmVsUGFyYW1ldGVyc0ludGVybmFsLmgiCkBAIC00Niw2ICs0OCwxMCBAQAogI2lt
cG9ydCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCisjaWYgUExB
VEZPUk0oSU9TKQorI2ltcG9ydCAiV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVSURlbGVnYXRlOjpVSURlbGVn
YXRlKFdLV2ViVmlldyAqd2ViVmlldykKQEAgLTEwMSw2ICsxMDcsMTAgQEAgdm9pZCBVSURlbGVn
YXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNlbmRpZgogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRBY3Rpb25z
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6YWN0aW9u
c0ZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6
KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpjYW1lcmE6dXJsOm1haW5GcmFtZVVS
TDpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lz
aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVu
dGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjopXTsKKyAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOildOwogICAg
IG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2VudGluZ1ZpZXdDb250
cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFE
ZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC0yOTksNiAr
MzA5LDExOSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShJT1MpCitXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICpVSURlbGVn
YXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmljZUF1dGhvcml6ZXIoKQoreworICAgIGlmICghbV9j
YXB0dXJlRGV2aWNlQXV0aG9yaXplcikKKyAgICAgICAgbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXpl
ciA9IGFkb3B0TlMoW1tXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIGFsbG9j
XSBpbml0XSk7CisKKyAgICByZXR1cm4gbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplci5nZXQoKTsK
K30KKyNlbmRpZgorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
S2l0OjpXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQoreworICAgIGF1dG8gZGVsZWdh
dGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8
ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFu
ZGxlcikgeworICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRpbyA9IHJl
cXVlc3QucmVxdWlyZXNBdWRpbygpOworICAgIGJvb2wgcmVxdWlyZXNWaWRlbyA9IHJlcXVlc3Qu
cmVxdWlyZXNWaWRlbygpOworICAgIGlmICghcmVxdWlyZXNBdWRpbyAmJiAhcmVxdWlyZXNWaWRl
bykgeworICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgX19ibG9jayBXS1dlYlZpZXcgKndlYlZpZXcgPSBt
X3VpRGVsZWdhdGUubV93ZWJWaWV3OworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0aG9yaXphdGlv
bkJsb2NrKSh2b2lkKSA9IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJh
bWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgICAgICBXZWJDb3JlOjpVUkwgcmVx
dWVzdEZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgICAgIFdlYkNv
cmU6OlVSTCBtYWluRnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOwor
CisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Ondl
YlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJlcXVpcmVz
QXVkaW8gY2FtZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVV
Ukw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1pY3JvcGhv
bmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1aXJlc0F1
ZGlvICE9IGF1dGhvcml6ZWRNaWNyb3Bob25lKSB8fCAocmVxdWlyZXNWaWRlbyAhPSBhdXRob3Jp
emVkQ2FtZXJhKSkgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Np
b25EZW5pZWQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJlc1ZpZGVvID8gcmVx
dWVzdC52aWRlb0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEID0gcmVxdWlyZXNBdWRpbyA/IHJlcXVlc3QuYXVk
aW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgcmVxdWVzdC5h
bGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsKKyAgICB9
OworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0aW9uQmxv
Y2spKHZvaWQpID0gXiB7CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgICAg
ICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjpe
KEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkKKyAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9y
aXphdGlvbkJsb2NrKCk7CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgfTsKKworICAgIGlmIChy
ZXF1aXJlc0F1ZGlvKSB7CisgICAgICAgIFtjYXB0dXJlRGV2aWNlQXV0aG9yaXplcigpIHJlcXVl
c3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICAg
ICAgaWYgKCFhdXRob3JpemVkKQorICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBl
cm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbWVy
YUF1dGhvcml6YXRpb25CbG9jaygpOworICAgICAgICB9XTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Y2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVsZWdhdGVBdXRob3Jp
emF0aW9uQmxvY2soKTsKKyNlbmRpZgorICAgIHJldHVybiB0cnVlOworfQorCitib29sIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0
OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVl
c3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
OworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVu
dGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNj
ZXNzSW5mbyhTdHJpbmcoKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworICAgIGNv
bnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7
CisgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RGcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgZnJhbWUu
dXJsKCkpOworICAgIFdlYkNvcmU6OlVSTCBtYWluRnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIG1h
aW5GcmFtZS0+dXJsKCkpOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVz
dEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1l
LmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6XihOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3Jp
emVkKSB7CisgICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhTdHJpbmcoc2Fs
dCksIGF1dGhvcml6ZWQpOworICAgIH1dOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gfHwgIW1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisgICAgICAg
IHJldHVybjsKKworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXc7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUgPSBwYWdlLm1lZGlhU3RhdGVGbGFncygpOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IG1fbWVkaWFT
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURldmlj
ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFT
dGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPSBtZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlTWVkaWFDYXB0dXJlRGV2aWNlOworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFz
QWN0aXZlQ2FwdHVyZSA9PSBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9tZWRpYVN0YXRlID0gbWVkaWFTdGF0ZTsKKyAgICBpZiAoIW9sZE1l
ZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJl
KSB7CisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3
RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjp3ZWJWaWV3XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiAhbmV3TWVkaWFTdGF0
ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246d2ViVmlld107Cit9CisKIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
V2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1
bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVdl
YkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90YWxC
eXRlc05lZWRlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzI5NTY4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VB
dXRob3JpemVySU9TLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9S
TShJT1MpCisKK0BpbnRlcmZhY2UgV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
UyA6IE5TT2JqZWN0CisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2
b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CistICh2b2lkKXJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CisKK0BlbmQK
KworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9y
aXplcklPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWM1OTFkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWQ2FwdHVyZURldmljZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFG
b3JtYXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZS
QU1FV09SSyhBVkZvdW5kYXRpb24pOworU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZD
YXB0dXJlRGV2aWNlKTsKK1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFU
eXBlQXVkaW8sIE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwg
QVZNZWRpYVR5cGVWaWRlbywgTlNTdHJpbmcgKik7CisKK0BpbXBsZW1lbnRhdGlvbiBXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TCisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhv
bmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAg
ICBbc2VsZiBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVB
dWRpbygpIGNhbGxiYWNrOmNhbGxiYWNrXTsKK30KKworLSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0
aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgW3Nl
bGYgX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8o
KSBjYWxsYmFjazpjYWxsYmFja107Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RBdXRob3JpemF0aW9u
Rm9yTWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhVHlwZSBjYWxsYmFjazoodm9pZCheKShCT09M
IGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgQVNTRVJUKFttZWRpYVR5cGUgaXNFcXVhbFRv
U3RyaW5nOmdldEFWTWVkaWFUeXBlQXVkaW8oKV0gfHwgW21lZGlhVHlwZSBpc0VxdWFsVG9TdHJp
bmc6Z2V0QVZNZWRpYVR5cGVWaWRlbygpXSk7CisKKyAgICBBVkF1dGhvcml6YXRpb25TdGF0dXMg
YXV0aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6
YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6bWVkaWFUeXBlXTsKKyAgICBpZiAoYXV0aG9yaXphdGlv
blN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQgfHwgYXV0aG9yaXphdGlvblN0
YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkKSB7CisgICAgICAgIGNhbGxi
YWNrKE5PKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoYXV0aG9yaXphdGlvblN0
YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkKSB7CisgICAgICAgIGNhbGxi
YWNrKFlFUyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbZ2V0QVZDYXB0dXJlRGV2
aWNlQ2xhc3MoKSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlOm1lZGlhVHlwZSBjb21wbGV0aW9u
SGFuZGxlcjpjYWxsYmFja107Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmNDkyMGE1Li40YmMyODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzk1LDYgKzE3OTUsOCBAQAogCQlEM0I5NDg0
NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
UG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAg
Ki87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJRDNEQjM3
QUExREQzRjVCNDAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIz
N0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLmggKi87IH07CisJCUQzREIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNh
cHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDNEQjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gKi87IH07CiAJCURGNThDNjM2MTM3MUFDQTAw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5h
dGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdB
OCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsg
fTsKIAkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkw
Rjc5MUMwMDczMTY1OCAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gKi87IH07CkBAIC0zOTUxLDYg
KzM5NTMsOCBAQAogCQlEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNlYXJjaFBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0
ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNh
cHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDsgcGF0aCA9IGlvcy9X
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbTsgcGF0aCA9
IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2Vi
V2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJX
aGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFD
QTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRp
bmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwNjksNiArNTA3Myw4IEBACiAJCQkJ
MEZDQjRFNDUxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKIAkJCQkyNkYx
MEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25p
emVyLmggKi8sCiAJCQkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xp
Y2tUYXBHZXN0dXJlUmVjb2duaXplci5tICovLAorCQkJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0
QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8sCisJCQkJRDNE
QjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC03OTAzLDYgKzc5MDksNyBAQAogCQkJCTFBNDRCOTVDMTZCNzNGOUYwMEI3QkJE
OCAvKiBTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMzFBOTcxNkJDNjg4
MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBRTAwRDZDMTgzMjdDMTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUQzREIzN0FBMUREM0Y1QjQwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTZCRDg1RDE1MDE5QkMz
MDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTFBMEJE
NjFBNDhFNkM2MDA1NEVGNzQgLyogVENDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdD
QjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTY1
OSw2ICs5NjY2LDcgQEAKIAkJCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJERkM3REJDMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUMwMzM3REQxMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUQzREIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODY4MTYw
RDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjEwLjEgKEFw
cGxlIEdpdC03OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294743</attachid>
            <date>2016-11-14 14:20:59 -0800</date>
            <delta_ts>2016-11-14 15:03:36 -0800</delta_ts>
            <desc>Proposed Patch v5</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>30140</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSAxNjhlMGU2OGFlYjBiZDlkMTliMzMwMGE2MjRkN2NiZDNkNjhhMzdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNSArKysrKysKIC4uLi9pb3MvV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAgIHwgIDcxICsrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAg
IDggKysKIDkgZmlsZXMgY2hhbmdlZCwgMzExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBkMWE4MzEyLi4zOTRkYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MTYtMTEtMTQgIEFuZHJldyBHb2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgZm9yIEhUTUwgTWVkaWEgQ2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24g
aU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAg
Y2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJp
LiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxm
IG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHks
IFNhZmFyaQorICAgICAgICBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtp
bmcgcGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2Ug
YWRkZWQgZm91ciBtZXRob2RzIHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5v
dGlmeQorICAgICAgICB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlm
eSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAg
ICB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNh
cHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKTogUmV0dXJucyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBJ
ZiBvbiBpT1MsIHdlCisgICAgICAgIGZpcnN0IGNoZWNrIHRoYXQgdGhlIHVzZXIgaGFzIGdyYW50
ZWQgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIHVzZSBjYXB0dXJlIGRldmljZXMsIGFuZCAKKyAg
ICAgICAgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiB3ZSByZXF1ZXN0IHBlcm1p
c3Npb24gZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUg
Y2xpZW50IGZvcgorICAgICAgICBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMu
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSk6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Np
b24gYmVnaW5uaW5nL2VuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RN
aWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24KKyAgICAgICAgdG8g
cmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50Lgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bworICAgICAgICByZXF1
ZXN0IGNhbWVyYSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKyAgICAgICAg
KC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6
YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJhY2s6XSk6IAorICAgICAgICBIZWxwZXIgbWV0aG9kIGZv
ciByZXF1ZXN0aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KKworICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0xMS0xNCAgUHJhbmphbCBKdW1k
ZSAgPHBqdW1kZUBhcHBsZS5jb20+CiAKICAgICAgICAgS2V5Y2hhaW4gYWNjZXNzIGluIFdlYktp
dCBzaG91bGQgYmUgbGltaXRlZCB0byBhIHNpbmdsZSBwcm9jZXNzLiBFYXJsaWVyIHRoaXMgd2Fz
IGJsb2NrZWQgb24gdGhlIG5ldHdvcmtpbmcgZnJhbWV3b3JrIHJlcXVpcmluZyBkaXJlY3QgYWNj
ZXNzIHRvIGtleWNoYWluLCB0aGlzIHdpbGwgYmUgcmVzb2x2ZWQgaW4gdGhlIHVwY29taW5nIHZl
cnNpb24gb2YgbWFjT1MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjI2OGU1M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCkBAIC02Myw2ICs2MywxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwog
LSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVt
ZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDoo
Q0dQb2ludClwb2ludDsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hv
dWxkUmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgaXNN
YWluRnJhbWU6KEJPT0wpaXNNYWluRnJhbWUgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTDsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOihCT09MKW1pY3JvcGhvbmUgY2FtZXJhOihC
T09MKWNhbWVyYSB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25l
LCBCT09MIGF1dGhvcml6ZWRDYW1lcmEpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlm
aWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9y
aXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZv
aWQpX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmRDYXB0dXJl
U2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7
CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJl
dmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlv
cyg5LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJl
dmlld2VkVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29u
dHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VV
UkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGI2NjliNmUuLmIyZjY5OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00
NDM1LDYgKzQ0MzUsMTEgQEAgLSAodm9pZClzZXRTZW1hbnRpY0NvbnRlbnRBdHRyaWJ1dGU6KFVJ
U2VtYW50aWNDb250ZW50QXR0cmlidXRlKWNvbnRlbnRBdHRyaWJ1dGUKICAgICBfcGFnZS0+c2V0
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbih0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24oY29udGVudEF0dHJpYnV0ZSkpOwogfQogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCit7
CisgICAgX3BhZ2UtPnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkNhcHR1cmVEZXZp
Y2VzQXJlTXV0ZWQpOworfQorCiAjZWxzZSAvLyAjaWYgUExBVEZPUk0oSU9TKQogCiAjcHJhZ21h
IG1hcmsgLSBPUyBYLXNwZWNpZmljIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNjk3NjUwYS4uYTI2
MDBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKQEAgLTI1NSw2ICsyNTUsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+
IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0
dXJlOworCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggYmMxNGVmNS4uYzQ4NWEyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0zNSw2ICszNSwx
MSBAQAogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
IAorI2lmIFBMQVRGT1JNKElPUykKK09CSkNfQ0xBU1MgV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUzsKKyNlbmRpZgorCitAY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBAY2xhc3Mg
X1dLQWN0aXZhdGVkRWxlbWVudEluZm87CiBAY2xhc3MgV0tXZWJWaWV3OwogQHByb3RvY29sIFdL
VUlEZWxlZ2F0ZTsKQEAgLTg5LDYgKzk0LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFt
ZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAjZW5k
aWYKKyAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5Jikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Jikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2Vi
S2l0OjpXZWJGcmFtZVByb3h5Kikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQogI2lmIEhB
VkUoQVBQX0xJTktTKQpAQCAtMTA0LDYgKzExMiwxMSBAQCBwcml2YXRlOgogICAgICAgICB2b2lk
IGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IG92ZXJyaWRlOwogCiAgICAgICAgIFVJRGVsZWdhdGUmIG1fdWlEZWxlZ2F0ZTsKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgICAgIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1Mg
KmNhcHR1cmVEZXZpY2VBdXRob3JpemVyKCk7CisgICAgICAgIFJldGFpblB0cjxXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TPiBtX2NhcHR1cmVEZXZpY2VBdXRob3JpemVyOwor
I2VuZGlmCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBt
X21lZGlhU3RhdGUgeyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKICAg
ICB9OwogCiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CkBAIC0xMjUsNiArMTM4LDEwIEBAIHBy
aXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA6
IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3
UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJhVXJsTWFpbkZy
YW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3Q2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25I
YW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uIDogMTsKICNpZiBQ
TEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCiAgICAgICAgIGJvb2wgd2ViVmlld1No
b3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQgOiAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlZGEzNTY1Li5lNGRiZGNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzAs
NiArMzAsOCBAQAogCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAj
aW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuaCIKKyNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTmF2aWdh
dGlvbkFjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRl
cm5hbC5oIgpAQCAtNDYsNiArNDgsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tQdHIuaD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgIldLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogVUlEZWxlZ2F0ZTo6VUlEZWxlZ2F0ZShXS1dlYlZpZXcgKndlYlZpZXcpCkBA
IC0xMDEsNiArMTA3LDEwIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlE
ZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9ucyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFjdGlvbnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25z
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNr
QXRQb2ludCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50OildOworICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmVDYW1lcmFV
cmxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1p
Y3JvcGhvbmU6Y2FtZXJhOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOworICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxN
YWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07
CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2Fw
dHVyZVNlc3Npb246KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1
cmVTZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50
aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5k
aWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXcg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGF0YURldGVjdGlvbkNv
bnRleHRGb3JXZWJWaWV3OildOwpAQCAtMjk5LDYgKzMwOSwxMTkgQEAgYm9vbCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdl
YkZyYW1lUHIKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorV0tVc2VyTWVkaWFDYXB0
dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKCkKK3sKKyAgICBpZiAoIW1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIpCisg
ICAgICAgIG1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIgPSBhZG9wdE5TKFtbV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBhbGxvY10gaW5pdF0pOworCisgICAgcmV0dXJuIG1f
Y2FwdHVyZURldmljZUF1dGhvcml6ZXIuZ2V0KCk7Cit9CisjZW5kaWYKKworYm9vbCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdp
biYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdh
dGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmVD
YW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5k
ZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBib29sIHJlcXVpcmVzQXVkaW8gPSByZXF1ZXN0LnJlcXVpcmVzQXVkaW8oKTsKKyAg
ICBib29sIHJlcXVpcmVzVmlkZW8gPSByZXF1ZXN0LnJlcXVpcmVzVmlkZW8oKTsKKyAgICBpZiAo
IXJlcXVpcmVzQXVkaW8gJiYgIXJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgcmVxdWVzdC5kZW55
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJl
YXNvbjo6Tm9Db25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IF9fYmxvY2sgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAg
ICB2b2lkIChedWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaykodm9pZCkgPSBeIHsKKyAgICAg
ICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJh
bWUoKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RGcmFtZVVSTChXZWJDb3JlOjpVUkwo
KSwgZnJhbWUudXJsKCkpOworICAgICAgICBXZWJDb3JlOjpVUkwgbWFpbkZyYW1lVVJMKFdlYkNv
cmU6OlVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKworICAgICAgICBbKGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yTWljcm9waG9uZTpyZXF1aXJlc0F1ZGlvIGNhbWVyYTpyZXF1aXJlc1ZpZGVv
IHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhh
bmRsZXI6XihCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25lLCBCT09MIGF1dGhvcml6ZWRDYW1lcmEp
IHsKKyAgICAgICAgICAgIGlmICgocmVxdWlyZXNBdWRpbyAhPSBhdXRob3JpemVkTWljcm9waG9u
ZSkgfHwgKHJlcXVpcmVzVmlkZW8gIT0gYXV0aG9yaXplZENhbWVyYSkpIHsKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHZpZGVv
RGV2aWNlVUlEID0gcmVxdWlyZXNWaWRlbyA/IHJlcXVlc3QudmlkZW9EZXZpY2VVSURzKCkuZmly
c3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJ
RCA9IHJlcXVpcmVzQXVkaW8gPyByZXF1ZXN0LmF1ZGlvRGV2aWNlVUlEcygpLmZpcnN0KCkgOiBT
dHJpbmcoKTsKKyAgICAgICAgICAgIHJlcXVlc3QuYWxsb3coYXVkaW9EZXZpY2VVSUQsIHZpZGVv
RGV2aWNlVUlEKTsKKyAgICAgICAgfV07CisgICAgfTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICB2b2lkICheY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKSh2b2lkKSA9IF4geworICAgICAgICBp
ZiAocmVxdWlyZXNWaWRlbykgeworICAgICAgICAgICAgW2NhcHR1cmVEZXZpY2VBdXRob3JpemVy
KCkgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpCisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgICAgICAg
ICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAocmVxdWlyZXNBdWRpbykgeworICAgICAgICBb
Y2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6YXRpb246
XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYW1lcmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyAg
ICAgICAgfV07CisgICAgfSBlbHNlCisgICAgICAgIGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygp
OworI2Vsc2UKKyAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZW5kaWYKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFP
cmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQoreworICAgIGF1dG8gZGVsZWdhdGUg
PSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlcikgewor
ICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKCksIGZhbHNlKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0g
bV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJh
bWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0
RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICBXZWJDb3JlOjpVUkwg
bWFpbkZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKworICAgIFso
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFp
bkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVy
Ol4oTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICByZXF1ZXN0LnNl
dFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKHNhbHQpLCBhdXRob3JpemVkKTsKKyAgICB9XTsK
KworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBh
dXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFk
ZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRCZWdp
bkNhcHR1cmVTZXNzaW9uIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEVuZENhcHR1cmVTZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBXS1dlYlZpZXcg
KndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlID0gcGFnZS5tZWRpYVN0YXRlRmxhZ3Mo
KTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFT
dGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbWVk
aWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURl
dmljZTsKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPT0gbmV3TWVkaWFT
dGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWVkaWFTdGF0
ZSA9IG1lZGlhU3RhdGU7CisgICAgaWYgKCFvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAm
JiBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkgeworICAgICAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246d2Vi
Vmlld107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhh
c0FjdGl2ZUNhcHR1cmUgJiYgIW5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAg
ICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZEVuZENhcHR1
cmVTZXNzaW9uOndlYlZpZXddOworfQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgdWludDY0X3QgY3VycmVudFF1b3Rh
LCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25n
IGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YVRvdGFsQnl0ZXNOZWVkZWQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNh
cHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOGMyOTU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oCkBAIC0wLDAgKzEs
MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oSU9TKQorCitAaW50ZXJmYWNlIFdLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgOiBOU09iamVjdAorCistICh2b2lkKXJl
cXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNh
bGxiYWNrOworLSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09M
IGF1dGhvcml6ZWQpKWNhbGxiYWNrOworCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uN2FjNTkxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5tbQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgiCisKKyNpZiBQ
TEFURk9STShJT1MpCisKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVEZXZpY2UuaD4K
KyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhRm9ybWF0Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKTsKK1NP
RlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSk7CitTT0ZUX0xJTktf
Q09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKTsKK1NP
RlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlVmlkZW8sIE5TU3RyaW5n
ICopOworCitAaW1wbGVtZW50YXRpb24gV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUworCistICh2b2lkKXJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjoodm9pZCheKShC
T09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVlc3RBdXRob3JpemF0
aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlQXVkaW8oKSBjYWxsYmFjazpjYWxsYmFja107
Cit9CisKKy0gKHZvaWQpcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246KHZvaWQoXikoQk9PTCBh
dXRob3JpemVkKSljYWxsYmFjaworeworICAgIFtzZWxmIF9yZXF1ZXN0QXV0aG9yaXphdGlvbkZv
ck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY2FsbGJhY2s6Y2FsbGJhY2tdOworfQor
CistICh2b2lkKV9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTooTlNTdHJpbmcgKilt
ZWRpYVR5cGUgY2FsbGJhY2s6KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjaworewor
ICAgIEFTU0VSVChbbWVkaWFUeXBlIGlzRXF1YWxUb1N0cmluZzpnZXRBVk1lZGlhVHlwZUF1ZGlv
KCldIHx8IFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBlVmlkZW8oKV0p
OworCisgICAgQVZBdXRob3JpemF0aW9uU3RhdHVzIGF1dGhvcml6YXRpb25TdGF0dXMgPSBbZ2V0
QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBlOm1l
ZGlhVHlwZV07CisgICAgaWYgKGF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9u
U3RhdHVzRGVuaWVkIHx8IGF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3Rh
dHVzUmVzdHJpY3RlZCkgeworICAgICAgICBjYWxsYmFjayhOTyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaWYgKGF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3Rh
dHVzQXV0aG9yaXplZCkgeworICAgICAgICBjYWxsYmFjayhZRVMpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zv
ck1lZGlhVHlwZTptZWRpYVR5cGUgY29tcGxldGlvbkhhbmRsZXI6Y2FsbGJhY2tdOworfQorCitA
ZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjQ5MjBhNS4uNGJjMjgyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTc5NSw2ICsxNzk1LDggQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5
NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovOyB9OwogCQlEM0I5NDg0OTExRkY0QjY1
MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmggKi87IH07CisJCUQzREIzN0FBMUREM0Y1QjQwMDQ3Mzc0QyAvKiBXS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyogV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICovOyB9OworCQlEM0RCMzdBQjFE
RDNGNUI4MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIzN0E5
MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
Lm1tICovOyB9OwogCQlERjU4QzYzNjEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxF
dmVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICov
OyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURF
MDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CiAJCUUxMTVDNzE0MTkwRjg5RTQwMEVD
QzUxNiAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogRGF0YWJhc2VQ
cm9jZXNzSU9TLm1tICovOyB9OwpAQCAtMzk1MSw2ICszOTUzLDggQEAKIAkJRDNCOTQ4NDMxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNC
OTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
U2VhcmNoUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNl
YXJjaFBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0RCMzdBODFE
RDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLmg7IHBhdGggPSBpb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0RCMzdBOTFERDNG
NUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MubW07IHBhdGggPSBpb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2
MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hl
ZWxFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5h
dGl2ZVdlYldoZWVsRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
MDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC01MDY5LDYgKzUwNzMsOCBAQAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAv
KiBXS1Njcm9sbFZpZXcubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8qIFdL
U3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCTI2RjEwQkU3MTkx
ODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubSAq
LywKKwkJCQlEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUy5oICovLAorCQkJCUQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBX
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICovLAogCQkJKTsKIAkJCW5h
bWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzkwMyw2ICs3OTA5LDcg
QEAKIAkJCQkxQTQ0Qjk1QzE2QjczRjlGMDBCN0JCRDggLyogU3RvcmFnZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBQjMxQTk3MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUwMEQ2QzE4MzI3QzEyMDAwODdERDcg
LyogU3RyaW5nUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0RCMzdBQTFERDNGNUI0
MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjk2QkQ4NUQxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxQTBCRDYxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRD
aGVja2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTk2NTksNiArOTY2Niw3IEBACiAJCQkJM0Y0MThF
RkIxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREZDN0RCQzFCQ0NDMTk1MDBDMTU0
OEMgLyogV2ViVmlld0ltcGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDMzN0REMTEyN0EyOTgw
MDA4RkY0RjQgLyogV2ViV2hlZWxFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0RCMzdB
QjFERDNGNUI4MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg2ODE2MEQwMTg3NjQ1NTcwMDIxRTc5RCAvKiBXaW5k
b3dTZXJ2ZXJDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMyMTU5NTMxREJBRTcx
ODAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5Q0Q1
NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5t
bSBpbiBTb3VyY2VzICovLAotLSAKMi4xMC4xIChBcHBsZSBHaXQtNzgpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294754</attachid>
            <date>2016-11-14 15:03:36 -0800</date>
            <delta_ts>2016-11-14 15:34:04 -0800</delta_ts>
            <desc>Proposed Patch V6</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>29929</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA0ODE2YjQ4ZDkzZTlmNjk5MDJiNDNlZTk0NWJhYzRmZTc3MWI1NGYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNSArKysrKysKIC4uLi9pb3MvV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAgIHwgIDcxICsrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAg
IDggKysKIDkgZmlsZXMgY2hhbmdlZCwgMzExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBkMWE4MzEyLi4zOTRkYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MTYtMTEtMTQgIEFuZHJldyBHb2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgZm9yIEhUTUwgTWVkaWEgQ2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24g
aU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAg
Y2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJp
LiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxm
IG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHks
IFNhZmFyaQorICAgICAgICBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtp
bmcgcGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2Ug
YWRkZWQgZm91ciBtZXRob2RzIHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5v
dGlmeQorICAgICAgICB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlm
eSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAg
ICB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNh
cHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKTogUmV0dXJucyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBJ
ZiBvbiBpT1MsIHdlCisgICAgICAgIGZpcnN0IGNoZWNrIHRoYXQgdGhlIHVzZXIgaGFzIGdyYW50
ZWQgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIHVzZSBjYXB0dXJlIGRldmljZXMsIGFuZCAKKyAg
ICAgICAgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiB3ZSByZXF1ZXN0IHBlcm1p
c3Npb24gZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUg
Y2xpZW50IGZvcgorICAgICAgICBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMu
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSk6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Np
b24gYmVnaW5uaW5nL2VuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RN
aWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24KKyAgICAgICAgdG8g
cmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50Lgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bworICAgICAgICByZXF1
ZXN0IGNhbWVyYSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKyAgICAgICAg
KC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6
YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJhY2s6XSk6IAorICAgICAgICBIZWxwZXIgbWV0aG9kIGZv
ciByZXF1ZXN0aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KKworICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0xMS0xNCAgUHJhbmphbCBKdW1k
ZSAgPHBqdW1kZUBhcHBsZS5jb20+CiAKICAgICAgICAgS2V5Y2hhaW4gYWNjZXNzIGluIFdlYktp
dCBzaG91bGQgYmUgbGltaXRlZCB0byBhIHNpbmdsZSBwcm9jZXNzLiBFYXJsaWVyIHRoaXMgd2Fz
IGJsb2NrZWQgb24gdGhlIG5ldHdvcmtpbmcgZnJhbWV3b3JrIHJlcXVpcmluZyBkaXJlY3QgYWNj
ZXNzIHRvIGtleWNoYWluLCB0aGlzIHdpbGwgYmUgcmVzb2x2ZWQgaW4gdGhlIHVwY29taW5nIHZl
cnNpb24gb2YgbWFjT1MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjU3YWQyZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCkBAIC01OCw2ICs1OCwxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwog
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURvY3Vt
ZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZv
cldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6KEJPT0wpbWljcm9waG9u
ZSBjYW1lcmE6KEJPT0wpY2FtZXJhIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXpl
ZE1pY3JvcGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkpZGVjaXNpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJh
bWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilm
cmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwg
Qk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAu
MykpOworLSAodm9pZClfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAq
KXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworLSAodm9pZClfd2ViVmlld0Rp
ZEVuZENhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDEwLjMpKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtIChCT09MKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjAp
KTsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9y
RWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25z
OihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYjY2OWI2
ZS4uYjJmNjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTQ0MzUsNiArNDQzNSwxMSBAQCAtICh2b2lkKXNldFNlbWFudGljQ29u
dGVudEF0dHJpYnV0ZTooVUlTZW1hbnRpY0NvbnRlbnRBdHRyaWJ1dGUpY29udGVudEF0dHJpYnV0
ZQogICAgIF9wYWdlLT5zZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKHRvVXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbihjb250ZW50QXR0cmlidXRlKSk7CiB9CiAKKy0gKHZvaWQpX3N0
b3BNZWRpYUNhcHR1cmUKK3sKKyAgICBfcGFnZS0+c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6Q2FwdHVyZURldmljZXNBcmVNdXRlZCk7Cit9CisKICNlbHNlIC8vICNpZiBQTEFURk9S
TShJT1MpCiAKICNwcmFnbWEgbWFyayAtIE9TIFgtc3BlY2lmaWMgbWV0aG9kcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApp
bmRleCA2OTc2NTBhLi5hMjYwMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjU1LDYgKzI1NSw4IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxlZ2F0ZTopIGlkPF9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0lu
RnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKKy0gKHZv
aWQpX3N0b3BNZWRpYUNhcHR1cmU7CisKIEBlbmQKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBiYzE0ZWY1
Li5jNDg1YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKQEAgLTM1LDYgKzM1LDExIEBACiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorT0JKQ19DTEFTUyBXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TOworI2VuZGlmCisKK0BjbGFzcyBTZWN1cml0
eU9yaWdpbjsKIEBjbGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsKIEBjbGFzcyBXS1dlYlZp
ZXc7CiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlOwpAQCAtODksNiArOTQsOSBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5
KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEFQ
STo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkq
KSBvdmVycmlkZTsKICNlbmRpZgorICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAg
Ym9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJv
eHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViS2l0OjpX
ZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqKSBvdmVycmlkZTsKICNpZiBQTEFU
Rk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCkBAIC0xMDQsNiArMTEyLDExIEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CiAKICAgICAgICAgVUlEZWxlZ2F0ZSYgbV91aURl
bGVnYXRlOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyAqY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKTsKKyAgICAgICAgUmV0
YWluUHRyPFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1M+IG1fY2FwdHVyZURl
dmljZUF1dGhvcml6ZXI7CisjZW5kaWYKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Oklz
Tm90UGxheWluZyB9OwogICAgIH07CiAKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKQEAgLTEy
NSw2ICsxMzgsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2Ny
ZWVuIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOworICAg
ICAgICBib29sIHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhv
bmVDYW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29s
IHdlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlk
ZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdEaWRCZWdp
bkNhcHR1cmVTZXNzaW9uIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW5kQ2FwdHVyZVNl
c3Npb24gOiAxOwogI2lmIFBMQVRGT1JNKElPUykKICNpZiBIQVZFKEFQUF9MSU5LUykKICAgICAg
ICAgYm9vbCB3ZWJWaWV3U2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudCA6IDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGVk
YTM1NjUuLmU0ZGJkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVy
Q2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCisjaW1wb3J0
ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgog
I2ltcG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLT3BlblBh
bmVsUGFyYW1ldGVyc0ludGVybmFsLmgiCkBAIC00Niw2ICs0OCwxMCBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9VUkwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCisjaWYgUExBVEZPUk0oSU9T
KQorI2ltcG9ydCAiV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVSURlbGVnYXRlOjpVSURlbGVnYXRlKFdLV2Vi
VmlldyAqd2ViVmlldykKQEAgLTEwMSw2ICsxMDcsMTAgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXRE
ZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNlbmRpZgogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRBY3Rpb25zID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6YWN0aW9uc0ZvckVsZW1l
bnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5v
dEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KV07CisgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
TWljcm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpjYW1lcmE6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lv
bkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRl
Y2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9y
V2ViVmlldzopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25D
b250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC0yOTksNiArMzA5LDExOSBA
QCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1Mp
CitXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICpVSURlbGVnYXRlOjpVSUNs
aWVudDo6Y2FwdHVyZURldmljZUF1dGhvcml6ZXIoKQoreworICAgIGlmICghbV9jYXB0dXJlRGV2
aWNlQXV0aG9yaXplcikKKyAgICAgICAgbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplciA9IGFkb3B0
TlMoW1tXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIGFsbG9jXSBpbml0XSk7
CisKKyAgICByZXR1cm4gbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplci5nZXQoKTsKK30KKyNlbmRp
ZgorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0
aW9uRm9yTWljcm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlcikgewor
ICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRpbyA9IHJlcXVlc3QucmVx
dWlyZXNBdWRpbygpOworICAgIGJvb2wgcmVxdWlyZXNWaWRlbyA9IHJlcXVlc3QucmVxdWlyZXNW
aWRlbygpOworICAgIGlmICghcmVxdWlyZXNBdWRpbyAmJiAhcmVxdWlyZXNWaWRlbykgeworICAg
ICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgX19ibG9jayBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdh
dGUubV93ZWJWaWV3OworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKSh2
b2lkKSA9IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBmcmFt
ZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgICAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdEZyYW1l
VVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgICAgIFdlYkNvcmU6OlVSTCBt
YWluRnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgICAg
IFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJlcXVpcmVzQXVkaW8gY2Ft
ZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZy
YW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1pY3JvcGhvbmUsIEJPT0wg
YXV0aG9yaXplZENhbWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1aXJlc0F1ZGlvICE9IGF1
dGhvcml6ZWRNaWNyb3Bob25lKSB8fCAocmVxdWlyZXNWaWRlbyAhPSBhdXRob3JpemVkQ2FtZXJh
KSkgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJlc1ZpZGVvID8gcmVxdWVzdC52aWRl
b0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICBjb25zdCBTdHJp
bmcmIGF1ZGlvRGV2aWNlVUlEID0gcmVxdWlyZXNBdWRpbyA/IHJlcXVlc3QuYXVkaW9EZXZpY2VV
SURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgcmVxdWVzdC5hbGxvdyhhdWRp
b0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsKKyAgICB9OworCisjaWYg
UExBVEZPUk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0aW9uQmxvY2spKHZvaWQp
ID0gXiB7CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgICAgICBbY2FwdHVy
ZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0
aG9yaXplZCkgeworICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkKKyAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJs
b2NrKCk7CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB1aURl
bGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgfTsKKworICAgIGlmIChyZXF1aXJlc0F1
ZGlvKSB7CisgICAgICAgIFtjYXB0dXJlRGV2aWNlQXV0aG9yaXplcigpIHJlcXVlc3RNaWNyb3Bo
b25lQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICAgICAgaWYgKCFh
dXRob3JpemVkKQorICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbWVyYUF1dGhvcml6
YXRpb25CbG9jaygpOworICAgICAgICB9XTsKKyAgICB9IGVsc2UKKyAgICAgICAgY2FtZXJhQXV0
aG9yaXphdGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxv
Y2soKTsKKyNlbmRpZgorICAgIHJldHVybiB0cnVlOworfQorCitib29sIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmln
aW4sIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpCit7Cisg
ICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlm
ICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVj
aXNpb25IYW5kbGVyKSB7CisgICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhT
dHJpbmcoKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBXS1dl
YlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworICAgIGNvbnN0IFdlYkZy
YW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgV2Vi
Q29yZTo6VVJMIHJlcXVlc3RGcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgZnJhbWUudXJsKCkpOwor
ICAgIFdlYkNvcmU6OlVSTCBtYWluRnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIG1haW5GcmFtZS0+
dXJsKCkpOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZp
ZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJM
IG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQo
KSBkZWNpc2lvbkhhbmRsZXI6XihOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSB7Cisg
ICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhTdHJpbmcoc2FsdCksIGF1dGhv
cml6ZWQpOworICAgIH1dOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5
JiBwYWdlKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5n
ZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisgICAgICAgIHJldHVybjsK
KworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUgPSBwYWdl
Lm1lZGlhU3RhdGVGbGFncygpOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IG1fbWVkaWFTdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVyZURldmljZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFTdGF0ZUhhc0Fj
dGl2ZUNhcHR1cmUgPSBtZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0
aXZlTWVkaWFDYXB0dXJlRGV2aWNlOworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2Fw
dHVyZSA9PSBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9tZWRpYVN0YXRlID0gbWVkaWFTdGF0ZTsKKyAgICBpZiAoIW9sZE1lZGlhU3RhdGVI
YXNBY3RpdmVDYXB0dXJlICYmIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKSB7CisgICAg
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3RGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbjp3ZWJWaWV3XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiAhbmV3TWVkaWFTdGF0ZUhhc0FjdGl2
ZUNhcHR1cmUpCisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246d2ViVmlld107Cit9CisKIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVBy
b3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZv
aWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVdlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90YWxCeXRlc05lZWRl
ZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzI5NTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShJT1MpCisK
K0BpbnRlcmZhY2UgV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyA6IE5TT2Jq
ZWN0CisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJP
T0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CistICh2b2lkKXJlcXVlc3RDYW1lcmFBdXRob3JpemF0
aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CisKK0BlbmQKKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWM1OTFkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLm1tCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6
ZXJJT1MuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
Q2FwdHVyZURldmljZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhB
VkZvdW5kYXRpb24pOworU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2
aWNlKTsKK1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8s
IE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5
cGVWaWRlbywgTlNTdHJpbmcgKik7CisKK0BpbXBsZW1lbnRhdGlvbiBXS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TCisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3Jp
emF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBbc2VsZiBf
cmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNh
bGxiYWNrOmNhbGxiYWNrXTsKK30KKworLSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlv
bjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVl
c3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlVmlkZW8oKSBjYWxsYmFj
azpjYWxsYmFja107Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFU
eXBlOihOU1N0cmluZyAqKW1lZGlhVHlwZSBjYWxsYmFjazoodm9pZCheKShCT09MIGF1dGhvcml6
ZWQpKWNhbGxiYWNrCit7CisgICAgQVNTRVJUKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdl
dEFWTWVkaWFUeXBlQXVkaW8oKV0gfHwgW21lZGlhVHlwZSBpc0VxdWFsVG9TdHJpbmc6Z2V0QVZN
ZWRpYVR5cGVWaWRlbygpXSk7CisKKyAgICBBVkF1dGhvcml6YXRpb25TdGF0dXMgYXV0aG9yaXph
dGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0
dXNGb3JNZWRpYVR5cGU6bWVkaWFUeXBlXTsKKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9
PSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQgfHwgYXV0aG9yaXphdGlvblN0YXR1cyA9PSBB
VkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkKSB7CisgICAgICAgIGNhbGxiYWNrKE5PKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoYXV0aG9yaXphdGlvblN0YXR1cyA9PSBB
VkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkKSB7CisgICAgICAgIGNhbGxiYWNrKFlFUyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3Mo
KSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlOm1lZGlhVHlwZSBjb21wbGV0aW9uSGFuZGxlcjpj
YWxsYmFja107Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNDky
MGE1Li40YmMyODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNzk1LDYgKzE3OTUsOCBAQAogCQlEM0I5NDg0NzExRkY0QjY1
MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51
LmggKi87IH07CiAJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNC
OTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi87IH07CiAJ
CUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJRDNEQjM3QUExREQzRjVC
NDAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIzN0E4MUREM0Y1
QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi87
IH07CisJCUQzREIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNEQjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MubW0gKi87IH07CiAJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAv
KiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldo
ZWVsRXZlbnRNYWMubW0gKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0
aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKIAkJRTEx
NUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDcz
MTY1OCAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gKi87IH07CkBAIC0zOTUxLDYgKzM5NTMsOCBA
QAogCQlEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlYXJjaFBv
cHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ1MTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZp
Y2VBdXRob3JpemVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDsgcGF0aCA9IGlvcy9XS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VB
dXRob3JpemVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbTsgcGF0aCA9IGlvcy9XS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3
QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwNjksNiArNTA3Myw4IEBACiAJCQkJMEZDQjRFNDUx
OEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKIAkJCQkyNkYxMEJFNjE5MTg3
RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8s
CiAJCQkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0
dXJlUmVjb2duaXplci5tICovLAorCQkJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8sCisJCQkJRDNEQjM3QTkxREQz
RjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0g
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC03OTAzLDYgKzc5MDksNyBAQAogCQkJCTFBNDRCOTVDMTZCNzNGOUYwMEI3QkJEOCAvKiBTdG9y
YWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMzFBOTcxNkJDNjg4MTAwRjZEQkM5
IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTAwRDZD
MTgzMjdDMTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUQzREIzN0FBMUREM0Y1QjQwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTZCRDg1RDE1MDE5QkMzMDA3MUY0MjQg
LyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTFBMEJENjFBNDhFNkM2
MDA1NEVGNzQgLyogVENDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdDQjEyQzAwQ0NB
MDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTY1OSw2ICs5NjY2
LDcgQEAKIAkJCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERkM3
REJDMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUMwMzM3REQxMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUQzREIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODY4MTYwRDAxODc2NDU1
NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3RCYXNlLm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjEwLjEgKEFwcGxlIEdpdC03
OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294760</attachid>
            <date>2016-11-14 15:34:04 -0800</date>
            <delta_ts>2016-11-14 17:07:00 -0800</delta_ts>
            <desc>Proposed Patch V7</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>29773</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSBmYjEwZjQzMGYxYmNhM2RmZTRmODg0ODI4NjlmMzQ1OGJjMGFhMTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNSArKysrKysKIC4uLi9pb3MvV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAgIHwgIDcxICsrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAg
IDggKysKIDkgZmlsZXMgY2hhbmdlZCwgMzExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBkMWE4MzEyLi4zOTRkYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MTYtMTEtMTQgIEFuZHJldyBHb2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgZm9yIEhUTUwgTWVkaWEgQ2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24g
aU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAg
Y2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJp
LiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxm
IG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHks
IFNhZmFyaQorICAgICAgICBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtp
bmcgcGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2Ug
YWRkZWQgZm91ciBtZXRob2RzIHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5v
dGlmeQorICAgICAgICB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlm
eSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAg
ICB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNh
cHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKTogUmV0dXJucyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBJ
ZiBvbiBpT1MsIHdlCisgICAgICAgIGZpcnN0IGNoZWNrIHRoYXQgdGhlIHVzZXIgaGFzIGdyYW50
ZWQgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIHVzZSBjYXB0dXJlIGRldmljZXMsIGFuZCAKKyAg
ICAgICAgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiB3ZSByZXF1ZXN0IHBlcm1p
c3Npb24gZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUg
Y2xpZW50IGZvcgorICAgICAgICBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMu
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSk6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Np
b24gYmVnaW5uaW5nL2VuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RN
aWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24KKyAgICAgICAgdG8g
cmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50Lgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bworICAgICAgICByZXF1
ZXN0IGNhbWVyYSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKyAgICAgICAg
KC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6
YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJhY2s6XSk6IAorICAgICAgICBIZWxwZXIgbWV0aG9kIGZv
ciByZXF1ZXN0aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KKworICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0xMS0xNCAgUHJhbmphbCBKdW1k
ZSAgPHBqdW1kZUBhcHBsZS5jb20+CiAKICAgICAgICAgS2V5Y2hhaW4gYWNjZXNzIGluIFdlYktp
dCBzaG91bGQgYmUgbGltaXRlZCB0byBhIHNpbmdsZSBwcm9jZXNzLiBFYXJsaWVyIHRoaXMgd2Fz
IGJsb2NrZWQgb24gdGhlIG5ldHdvcmtpbmcgZnJhbWV3b3JrIHJlcXVpcmluZyBkaXJlY3QgYWNj
ZXNzIHRvIGtleWNoYWluLCB0aGlzIHdpbGwgYmUgcmVzb2x2ZWQgaW4gdGhlIHVwY29taW5nIHZl
cnNpb24gb2YgbWFjT1MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjU3YWQyZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCkBAIC01OCw2ICs1OCwxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwog
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURvY3Vt
ZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZv
cldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6KEJPT0wpbWljcm9waG9u
ZSBjYW1lcmE6KEJPT0wpY2FtZXJhIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXpl
ZE1pY3JvcGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkpZGVjaXNpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJh
bWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilm
cmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwg
Qk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAu
MykpOworLSAodm9pZClfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAq
KXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworLSAodm9pZClfd2ViVmlld0Rp
ZEVuZENhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDEwLjMpKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtIChCT09MKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjAp
KTsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9y
RWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25z
OihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYjY2OWI2
ZS4uN2IxYTBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTQwMDIsNiArNDAwMiwxMSBAQCAtIChCT09MKV9pc0luRnVsbHNjcmVl
bgogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3N0b3BNZWRpYUNhcHR1cmUKK3sKKyAgICBfcGFnZS0+
c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6Q2FwdHVyZURldmljZXNBcmVNdXRlZCk7
Cit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAppbmRleCA2OTc2NTBhLi5hMjYwMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjU1
LDYgKzI1NSw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlv
blR5cGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxl
Z2F0ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSk7CiAKKy0gKHZvaWQpX3N0b3BNZWRpYUNhcHR1cmU7CisKIEBlbmQKIAogI2lmICFUQVJH
RVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAppbmRleCBiYzE0ZWY1Li5jNDg1YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLmgKQEAgLTM1LDYgKzM1LDExIEBACiAjaW1wb3J0ICJXZWFrT2JqQ1B0
ci5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorT0JK
Q19DTEFTUyBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TOworI2VuZGlmCisK
K0BjbGFzcyBTZWN1cml0eU9yaWdpbjsKIEBjbGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsK
IEBjbGFzcyBXS1dlYlZpZXc7CiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlOwpAQCAtODksNiArOTQs
OSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBydW5PcGVuUGFu
ZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkqKSBvdmVycmlkZTsKICNlbmRpZgorICAgICAgICBib29sIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBvdmVy
cmlkZTsKKyAgICAgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByaW50
RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqKSBvdmVy
cmlkZTsKICNpZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCkBAIC0xMDQsNiAr
MTEyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXpl
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CiAKICAgICAgICAgVUlE
ZWxlZ2F0ZSYgbV91aURlbGVnYXRlOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgV0tVc2Vy
TWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqY2FwdHVyZURldmljZUF1dGhvcml6ZXIo
KTsKKyAgICAgICAgUmV0YWluUHRyPFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1M+IG1fY2FwdHVyZURldmljZUF1dGhvcml6ZXI7CisjZW5kaWYKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogICAgIH07CiAKICAgICBXS1dlYlZpZXcgKm1f
d2ViVmlldzsKQEAgLTEyNSw2ICsxMzgsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJW
aWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3
RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxz
Y3JlZW4gOiAxOworICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvck1pY3JvcGhvbmVDYW1lcmFVcmxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgOiAx
OworICAgICAgICBib29sIHdlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWlu
RnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29s
IHdlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3
RGlkRW5kQ2FwdHVyZVNlc3Npb24gOiAxOwogI2lmIFBMQVRGT1JNKElPUykKICNpZiBIQVZFKEFQ
UF9MSU5LUykKICAgICAgICAgYm9vbCB3ZWJWaWV3U2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25z
Rm9yRWxlbWVudCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCmluZGV4IGVkYTM1NjUuLmU0ZGJkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkNv
bXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25E
YXRhLmgiCisjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9y
dCAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2ltcG9ydCAiV0tGcmFtZUlu
Zm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwuaCIKICNp
bXBvcnQgIldLT3BlblBhbmVsUGFyYW1ldGVyc0ludGVybmFsLmgiCkBAIC00Niw2ICs0OCwxMCBA
QAogI2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCisj
aWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9y
aXplcklPUy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVSURlbGVnYXRlOjpV
SURlbGVnYXRlKFdLV2ViVmlldyAqd2ViVmlldykKQEAgLTEwMSw2ICsxMDcsMTAgQEAgdm9pZCBV
SURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNlbmRp
ZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRB
Y3Rpb25zID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
YWN0aW9uc0ZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0
UG9pbnQ6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJl
cXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpjYW1lcmE6dXJsOm1haW5G
cmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmll
ckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJh
bWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjopXTsKKyAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZp
ZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2VudGluZ1Zp
ZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LmRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC0y
OTksNiArMzA5LDExOSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwo
V2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShJT1MpCitXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TICpV
SURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmljZUF1dGhvcml6ZXIoKQoreworICAgIGlm
ICghbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplcikKKyAgICAgICAgbV9jYXB0dXJlRGV2aWNlQXV0
aG9yaXplciA9IGFkb3B0TlMoW1tXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9T
IGFsbG9jXSBpbml0XSk7CisKKyAgICByZXR1cm4gbV9jYXB0dXJlRGV2aWNlQXV0aG9yaXplci5n
ZXQoKTsKK30KKyNlbmRpZgorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQoreworICAgIGF1dG8g
ZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVn
YXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lz
aW9uSGFuZGxlcikgeworICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxl
ZCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRp
byA9IHJlcXVlc3QucmVxdWlyZXNBdWRpbygpOworICAgIGJvb2wgcmVxdWlyZXNWaWRlbyA9IHJl
cXVlc3QucmVxdWlyZXNWaWRlbygpOworICAgIGlmICghcmVxdWlyZXNBdWRpbyAmJiAhcmVxdWly
ZXNWaWRlbykgeworICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgX19ibG9jayBXS1dlYlZpZXcgKndlYlZp
ZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0aG9y
aXphdGlvbkJsb2NrKSh2b2lkKSA9IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBt
YWluRnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgICAgICBXZWJDb3JlOjpV
UkwgcmVxdWVzdEZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgICAg
IFdlYkNvcmU6OlVSTCBtYWluRnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIG1haW5GcmFtZS0+dXJs
KCkpOworCisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJW
aWV3OndlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJl
cXVpcmVzQXVkaW8gY2FtZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWlu
RnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1p
Y3JvcGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1
aXJlc0F1ZGlvICE9IGF1dGhvcml6ZWRNaWNyb3Bob25lKSB8fCAocmVxdWlyZXNWaWRlbyAhPSBh
dXRob3JpemVkQ2FtZXJhKSkgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBl
cm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJlc1ZpZGVv
ID8gcmVxdWVzdC52aWRlb0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAg
ICAgICBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEID0gcmVxdWlyZXNBdWRpbyA/IHJlcXVl
c3QuYXVkaW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgcmVx
dWVzdC5hbGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsK
KyAgICB9OworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0
aW9uQmxvY2spKHZvaWQpID0gXiB7CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAg
ICAgICAgICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0Q2FtZXJhQXV0aG9yaXph
dGlvbjpeKEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXpl
ZCkKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmll
ZCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB1aURlbGVnYXRl
QXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgfTsKKworICAg
IGlmIChyZXF1aXJlc0F1ZGlvKSB7CisgICAgICAgIFtjYXB0dXJlRGV2aWNlQXV0aG9yaXplcigp
IHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpeKEJPT0wgYXV0aG9yaXplZCkgeworICAg
ICAgICAgICAgaWYgKCFhdXRob3JpemVkKQorICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygpOworICAgICAgICB9XTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVsZWdhdGVB
dXRob3JpemF0aW9uQmxvY2soKTsKKyNlbmRpZgorICAgIHJldHVybiB0cnVlOworfQorCitib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4o
V2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdp
biYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkm
IHJlcXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
LmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJh
bWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgICAgIHJlcXVlc3Quc2V0VXNlck1l
ZGlhQWNjZXNzSW5mbyhTdHJpbmcoKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3Owor
ICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZy
YW1lKCk7CisgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RGcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwg
ZnJhbWUudXJsKCkpOworICAgIFdlYkNvcmU6OlVSTCBtYWluRnJhbWVVUkwoV2ViQ29yZTo6VVJM
KCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
ZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6
cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6XihOU1N0cmluZyAqc2FsdCwgQk9PTCBh
dXRob3JpemVkKSB7CisgICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhTdHJp
bmcoc2FsdCksIGF1dGhvcml6ZWQpOworICAgIH1dOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gfHwgIW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXc7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1l
ZGlhU3RhdGUgPSBwYWdlLm1lZGlhU3RhdGVGbGFncygpOworICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IG1f
bWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVy
ZURldmljZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPSBtZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlTWVkaWFDYXB0dXJlRGV2aWNlOworICAgIGlmIChvbGRNZWRpYVN0
YXRlSGFzQWN0aXZlQ2FwdHVyZSA9PSBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9tZWRpYVN0YXRlID0gbWVkaWFTdGF0ZTsKKyAgICBpZiAo
IW9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVD
YXB0dXJlKSB7CisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjp3ZWJWaWV3XTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiAhbmV3TWVk
aWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246d2ViVmlld107Cit9CisK
IHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVk
ZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3Rh
VG90YWxCeXRlc05lZWRlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1Mu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzI5NTY4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQ
TEFURk9STShJT1MpCisKK0BpbnRlcmZhY2UgV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9y
aXplcklPUyA6IE5TT2JqZWN0CisKKy0gKHZvaWQpcmVxdWVzdE1pY3JvcGhvbmVBdXRob3JpemF0
aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CistICh2b2lkKXJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2s7CisK
K0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWM1
OTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tCkBAIC0wLDAgKzEsNzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCA8
QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZURldmljZS5oPgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
TWVkaWFGb3JtYXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKworU09GVF9M
SU5LX0ZSQU1FV09SSyhBVkZvdW5kYXRpb24pOworU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlv
biwgQVZDYXB0dXJlRGV2aWNlKTsKK1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFW
TWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRh
dGlvbiwgQVZNZWRpYVR5cGVWaWRlbywgTlNTdHJpbmcgKik7CisKK0BpbXBsZW1lbnRhdGlvbiBX
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TCisKKy0gKHZvaWQpcmVxdWVzdE1p
Y3JvcGhvbmVBdXRob3JpemF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2sK
K3sKKyAgICBbc2VsZiBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Z2V0QVZNZWRp
YVR5cGVBdWRpbygpIGNhbGxiYWNrOmNhbGxiYWNrXTsKK30KKworLSAodm9pZClyZXF1ZXN0Q2Ft
ZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7Cisg
ICAgW3NlbGYgX3JlcXVlc3RBdXRob3JpemF0aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBl
VmlkZW8oKSBjYWxsYmFjazpjYWxsYmFja107Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RBdXRob3Jp
emF0aW9uRm9yTWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhVHlwZSBjYWxsYmFjazoodm9pZChe
KShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgQVNTRVJUKFttZWRpYVR5cGUgaXNF
cXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBlQXVkaW8oKV0gfHwgW21lZGlhVHlwZSBpc0VxdWFs
VG9TdHJpbmc6Z2V0QVZNZWRpYVR5cGVWaWRlbygpXSk7CisKKyAgICBBVkF1dGhvcml6YXRpb25T
dGF0dXMgYXV0aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1
dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6bWVkaWFUeXBlXTsKKyAgICBpZiAoYXV0aG9y
aXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQgfHwgYXV0aG9yaXph
dGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkKSB7CisgICAgICAg
IGNhbGxiYWNrKE5PKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoYXV0aG9yaXph
dGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkKSB7CisgICAgICAg
IGNhbGxiYWNrKFlFUyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbZ2V0QVZDYXB0
dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlOm1lZGlhVHlwZSBjb21w
bGV0aW9uSGFuZGxlcjpjYWxsYmFja107Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmNDkyMGE1Li40YmMyODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzk1LDYgKzE3OTUsOCBAQAogCQlE
M0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkg
LyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgKi87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
Qjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJ
RDNEQjM3QUExREQzRjVCNDAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRo
b3JpemVySU9TLmggKi87IH07CisJCUQzREIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNEQjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gKi87IH07CiAJCURGNThDNjM2MTM3
MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdD
IC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUw
MDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2Uu
aCAqLzsgfTsKIAkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lP
Uy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVG
MzlDMTkwRjc5MUMwMDczMTY1OCAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gKi87IH07CkBAIC0z
OTUxLDYgKzM5NTMsOCBAQAogCQlEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyog
V2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzREIzN0E4MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDsgcGF0aCA9
IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbTsg
cGF0aCA9IGlvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0
aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRp
dmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1
MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8q
IEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5n
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwNjksNiArNTA3Myw4IEBA
CiAJCQkJMEZDQjRFNDUxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKIAkJ
CQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVS
ZWNvZ25pemVyLmggKi8sCiAJCQkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhl
dGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5tICovLAorCQkJCUQzREIzN0E4MUREM0Y1QTcw
MDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggKi8sCisJ
CQkJRDNEQjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1
dGhvcml6ZXJJT1MubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC03OTAzLDYgKzc5MDksNyBAQAogCQkJCTFBNDRCOTVDMTZCNzNGOUYw
MEI3QkJEOCAvKiBTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMzFBOTcx
NkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRTAwRDZDMTgzMjdDMTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUQzREIzN0FBMUREM0Y1QjQwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNh
cHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTZCRDg1RDE1
MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RTFBMEJENjFBNDhFNkM2MDA1NEVGNzQgLyogVENDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtOTY1OSw2ICs5NjY2LDcgQEAKIAkJCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJERkM3REJDMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUMwMzM3REQxMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzREIzN0FCMUREM0Y1QjgwMDQ3Mzc0QyAvKiBXS1Vz
ZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjEw
LjEgKEFwcGxlIEdpdC03OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294777</attachid>
            <date>2016-11-14 17:07:00 -0800</date>
            <delta_ts>2016-11-15 13:51:49 -0800</delta_ts>
            <desc>Proposed Patch V8</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>29877</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSBkMTMwNTc0YzM3MGYwNzliMTEzNDUwYzk5MjM2NzJjNDZmZTYyYzczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNSArKysrKysKIC4uLi9pb3MvV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAgIHwgIDcxICsrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAg
IDggKysKIDkgZmlsZXMgY2hhbmdlZCwgMzExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBkMWE4MzEyLi4zOTRkYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIw
MTYtMTEtMTQgIEFuZHJldyBHb2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgZm9yIEhUTUwgTWVkaWEgQ2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24g
aU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAg
Y2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJp
LiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxm
IG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHks
IFNhZmFyaQorICAgICAgICBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtp
bmcgcGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2Ug
YWRkZWQgZm91ciBtZXRob2RzIHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5v
dGlmeQorICAgICAgICB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlm
eSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAg
ICB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNh
cHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKTogUmV0dXJucyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBJ
ZiBvbiBpT1MsIHdlCisgICAgICAgIGZpcnN0IGNoZWNrIHRoYXQgdGhlIHVzZXIgaGFzIGdyYW50
ZWQgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIHVzZSBjYXB0dXJlIGRldmljZXMsIGFuZCAKKyAg
ICAgICAgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiB3ZSByZXF1ZXN0IHBlcm1p
c3Npb24gZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUg
Y2xpZW50IGZvcgorICAgICAgICBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMu
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSk6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Np
b24gYmVnaW5uaW5nL2VuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RN
aWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24KKyAgICAgICAgdG8g
cmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50Lgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bworICAgICAgICByZXF1
ZXN0IGNhbWVyYSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKyAgICAgICAg
KC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6
YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJhY2s6XSk6IAorICAgICAgICBIZWxwZXIgbWV0aG9kIGZv
ciByZXF1ZXN0aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KKworICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0xMS0xNCAgUHJhbmphbCBKdW1k
ZSAgPHBqdW1kZUBhcHBsZS5jb20+CiAKICAgICAgICAgS2V5Y2hhaW4gYWNjZXNzIGluIFdlYktp
dCBzaG91bGQgYmUgbGltaXRlZCB0byBhIHNpbmdsZSBwcm9jZXNzLiBFYXJsaWVyIHRoaXMgd2Fz
IGJsb2NrZWQgb24gdGhlIG5ldHdvcmtpbmcgZnJhbWV3b3JrIHJlcXVpcmluZyBkaXJlY3QgYWNj
ZXNzIHRvIGtleWNoYWluLCB0aGlzIHdpbGwgYmUgcmVzb2x2ZWQgaW4gdGhlIHVwY29taW5nIHZl
cnNpb24gb2YgbWFjT1MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNjNTRlYmYuLjdlMmFhYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCkBAIC01OCw2ICs1OCwxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwog
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURvY3Vt
ZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZv
cldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6KEJPT0wpbWljcm9waG9u
ZSBjYW1lcmE6KEJPT0wpY2FtZXJhIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VS
TCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXpl
ZE1pY3JvcGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkpZGVjaXNpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJh
bWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJW
aWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAodm9pZClfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJW
aWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwogLSAoTlNB
cnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50Oihf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8
X1dLRWxlbWVudEFjdGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBiNjY5YjZlLi43YjFhMGY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtNDAwMiw2ICs0MDAyLDExIEBAIC0gKEJPT0wpX2lzSW5GdWxsc2NyZWVuCiAjZW5kaWYK
IH0KIAorLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZQoreworICAgIF9wYWdlLT5zZXRNdXRlZChX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpDYXB0dXJlRGV2aWNlc0FyZU11dGVkKTsKK30KKwogI3By
YWdtYSBtYXJrIGlPUy1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCmluZGV4IDY5NzY1MGEuLmEyNjAwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNTUsNiArMjU1LDgg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8
X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
X2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAor
LSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZTsKKwogQGVuZAogCiAjaWYgIVRBUkdFVF9PU19JUEhP
TkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGJj
MTRlZjUuLmM0ODVhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaApAQCAtMzUsNiArMzUsMTEgQEAKICNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCitPQkpDX0NMQVNTIFdL
VXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1M7CisjZW5kaWYKKworQGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOwogQGNsYXNzIFdL
V2ViVmlldzsKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGU7CkBAIC04OSw2ICs5NCw5IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdl
UHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eSopIG92ZXJyaWRlOwogI2VuZGlmCisgICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIG92ZXJyaWRlOworICAg
ICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktp
dDo6V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSopIG92ZXJyaWRlOwogI2lm
IFBMQVRGT1JNKElPUykKICNpZiBIQVZFKEFQUF9MSU5LUykKQEAgLTEwNCw2ICsxMTIsMTEgQEAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKIAogICAgICAgICBVSURlbGVnYXRlJiBt
X3VpRGVsZWdhdGU7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBXS1VzZXJNZWRpYUNhcHR1
cmVEZXZpY2VBdXRob3JpemVySU9TICpjYXB0dXJlRGV2aWNlQXV0aG9yaXplcigpOworICAgICAg
ICBSZXRhaW5QdHI8V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUz4gbV9jYXB0
dXJlRGV2aWNlQXV0aG9yaXplcjsKKyNlbmRpZgorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlIHsgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SXNOb3RQbGF5aW5nIH07CiAgICAgfTsKIAogICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3OwpA
QCAtMTI1LDYgKzEzOCwxMCBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdGdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRFbnRlckZ1
bGxzY3JlZW4gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbiA6IDE7
CisgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWlj
cm9waG9uZUNhbWVyYVVybE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAg
IGJvb2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZy
YW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0Rp
ZEJlZ2luQ2FwdHVyZVNlc3Npb24gOiAxOworICAgICAgICBib29sIHdlYlZpZXdEaWRFbmRDYXB0
dXJlU2Vzc2lvbiA6IDE7CiAjaWYgUExBVEZPUk0oSU9TKQogI2lmIEhBVkUoQVBQX0xJTktTKQog
ICAgICAgICBib29sIHdlYlZpZXdTaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50
IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5k
ZXggZWRhMzU2NS4uZTRkYmRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0KQEAgLTMwLDYgKzMwLDggQEAKIAogI2ltcG9ydCAiQ29tcGxldGlvbkhh
bmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKKyNp
bXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgiCisjaW1wb3J0ICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVybmFs
LmgiCiAjaW1wb3J0ICJXS05hdmlnYXRpb25BY3Rpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tP
cGVuUGFuZWxQYXJhbWV0ZXJzSW50ZXJuYWwuaCIKQEAgLTQ2LDYgKzQ4LDEwIEBACiAjaW1wb3J0
IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKKyNpZiBQTEFURk9S
TShJT1MpCisjaW1wb3J0ICJXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFVJRGVsZWdhdGU6OlVJRGVsZWdhdGUo
V0tXZWJWaWV3ICp3ZWJWaWV3KQpAQCAtMTAxLDYgKzEwNywxMCBAQCB2b2lkIFVJRGVsZWdhdGU6
OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogI2VuZGlmCiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzphY3Rpb25zRm9y
RWxlbWVudDpkZWZhdWx0QWN0aW9uczopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsK
KyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JNaWNyb3Bob25lQ2FtZXJhVXJsTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOmNhbWVyYTp1cmw6bWFpbkZyYW1lVVJMOmRl
Y2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25I
YW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZp
ZXI6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRC
ZWdpbkNhcHR1cmVTZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOildOworICAgIG1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246KV07CiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3OildOwogI2VuZGlmCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGF0YURldGVj
dGlvbkNvbnRleHRGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzopXTsKQEAgLTI5OSw2ICszMDks
MTE5IEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJv
eHkqLCBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KElPUykKK1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgKlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpjYXB0dXJlRGV2aWNlQXV0aG9yaXplcigpCit7CisgICAgaWYgKCFtX2NhcHR1
cmVEZXZpY2VBdXRob3JpemVyKQorICAgICAgICBtX2NhcHR1cmVEZXZpY2VBdXRob3JpemVyID0g
YWRvcHROUyhbW1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgYWxsb2NdIGlu
aXRdKTsKKworICAgIHJldHVybiBtX2NhcHR1cmVEZXZpY2VBdXRob3JpemVyLmdldCgpOworfQor
I2VuZGlmCisKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJhVXJsTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVy
KSB7CisgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCByZXF1aXJlc0F1ZGlvID0gcmVxdWVz
dC5yZXF1aXJlc0F1ZGlvKCk7CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvID0gcmVxdWVzdC5yZXF1
aXJlc1ZpZGVvKCk7CisgICAgaWYgKCFyZXF1aXJlc0F1ZGlvICYmICFyZXF1aXJlc1ZpZGVvKSB7
CisgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpV
c2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBfX2Jsb2NrIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAgdm9pZCAoXnVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxv
Y2spKHZvaWQpID0gXiB7CisgICAgICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9
IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0
RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICAgICAgV2ViQ29yZTo6
VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAg
ICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmll
dyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6cmVxdWlyZXNBdWRp
byBjYW1lcmE6cmVxdWlyZXNWaWRlbyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOl4oQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwg
Qk9PTCBhdXRob3JpemVkQ2FtZXJhKSB7CisgICAgICAgICAgICBpZiAoKHJlcXVpcmVzQXVkaW8g
IT0gYXV0aG9yaXplZE1pY3JvcGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRD
YW1lcmEpKSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRl
bmllZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCA9IHJlcXVpcmVzVmlkZW8gPyByZXF1ZXN0
LnZpZGVvRGV2aWNlVUlEcygpLmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQgPSByZXF1aXJlc0F1ZGlvID8gcmVxdWVzdC5hdWRpb0Rl
dmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICByZXF1ZXN0LmFsbG93
KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CisgICAgICAgIH1dOworICAgIH07CisK
KyNpZiBQTEFURk9STShJT1MpCisgICAgdm9pZCAoXmNhbWVyYUF1dGhvcml6YXRpb25CbG9jayko
dm9pZCkgPSBeIHsKKyAgICAgICAgaWYgKHJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgICAgIFtj
YXB0dXJlRGV2aWNlQXV0aG9yaXplcigpIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uOl4oQk9P
TCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKQorICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVBdXRob3JpemF0
aW9uQmxvY2soKTsKKyAgICAgICAgICAgIH1dOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsKKyAgICB9OworCisgICAgaWYgKHJlcXVp
cmVzQXVkaW8pIHsKKyAgICAgICAgW2NhcHR1cmVEZXZpY2VBdXRob3JpemVyKCkgcmVxdWVzdE1p
Y3JvcGhvbmVBdXRob3JpemF0aW9uOl4oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICBp
ZiAoIWF1dGhvcml6ZWQpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlz
c2lvbkRlbmllZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FtZXJhQXV0
aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgIH1dOworICAgIH0gZWxzZQorICAgICAgICBjYW1l
cmFBdXRob3JpemF0aW9uQmxvY2soKTsKKyNlbHNlCisgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaygpOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1
cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bE9yaWdpbiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkK
K3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Cisg
ICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZp
ZXJEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKFN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAgY29uc3Qg
V2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKyAg
ICBXZWJDb3JlOjpVUkwgcmVxdWVzdEZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwo
KSk7CisgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgbWFpbkZy
YW1lLT51cmwoKSk7CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJh
bWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJh
bWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQp
IHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKFN0cmluZyhzYWx0KSwg
YXV0aG9yaXplZCk7CisgICAgfV07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdl
UHJveHkmIHBhZ2UpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiB8fCAhbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsK
KyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSA9
IHBhZ2UubWVkaWFTdGF0ZUZsYWdzKCk7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbV9tZWRpYVN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlTWVkaWFDYXB0dXJlRGV2aWNlOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdNZWRpYVN0YXRl
SGFzQWN0aXZlQ2FwdHVyZSA9IG1lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZpY2U7CisgICAgaWYgKG9sZE1lZGlhU3RhdGVIYXNBY3Rp
dmVDYXB0dXJlID09IG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX21lZGlhU3RhdGUgPSBtZWRpYVN0YXRlOworICAgIGlmICghb2xkTWVkaWFT
dGF0ZUhhc0FjdGl2ZUNhcHR1cmUgJiYgbmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpIHsK
KyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdEaWRC
ZWdpbkNhcHR1cmVTZXNzaW9uOndlYlZpZXddOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmICFuZXdNZWRpYVN0YXRlSGFz
QWN0aXZlQ2FwdHVyZSkKKyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjp3ZWJWaWV3XTsKK30KKwogdm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQ
YWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgRnVuY3Rp
b248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlV2ViQXBw
bGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFUb3RhbEJ5dGVz
TmVlZGVkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMjk1NjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKElP
UykKKworQGludGVyZmFjZSBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIDog
TlNPYmplY3QKKworLSAodm9pZClyZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6YXRpb246KHZvaWQo
XikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjazsKKy0gKHZvaWQpcmVxdWVzdENhbWVyYUF1dGhv
cml6YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjazsKKworQGVuZAorCisj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhYzU5MWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0KQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0
aG9yaXplcklPUy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0IDxBVkZvdW5kYXRp
b24vQVZDYXB0dXJlRGV2aWNlLmg+CisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYUZvcm1h
dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVX
T1JLKEFWRm91bmRhdGlvbik7CitTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1
cmVEZXZpY2UpOworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVB
dWRpbywgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1l
ZGlhVHlwZVZpZGVvLCBOU1N0cmluZyAqKTsKKworQGltcGxlbWVudGF0aW9uIFdLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MKKworLSAodm9pZClyZXF1ZXN0TWljcm9waG9uZUF1
dGhvcml6YXRpb246KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjaworeworICAgIFtz
ZWxmIF9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZUF1ZGlv
KCkgY2FsbGJhY2s6Y2FsbGJhY2tdOworfQorCistICh2b2lkKXJlcXVlc3RDYW1lcmFBdXRob3Jp
emF0aW9uOih2b2lkKF4pKEJPT0wgYXV0aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBbc2VsZiBf
cmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRlbygpIGNh
bGxiYWNrOmNhbGxiYWNrXTsKK30KKworLSAodm9pZClfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JN
ZWRpYVR5cGU6KE5TU3RyaW5nICopbWVkaWFUeXBlIGNhbGxiYWNrOih2b2lkKF4pKEJPT0wgYXV0
aG9yaXplZCkpY2FsbGJhY2sKK3sKKyAgICBBU1NFUlQoW21lZGlhVHlwZSBpc0VxdWFsVG9TdHJp
bmc6Z2V0QVZNZWRpYVR5cGVBdWRpbygpXSB8fCBbbWVkaWFUeXBlIGlzRXF1YWxUb1N0cmluZzpn
ZXRBVk1lZGlhVHlwZVZpZGVvKCldKTsKKworICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBhdXRo
b3JpemF0aW9uU3RhdHVzID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXphdGlv
blN0YXR1c0Zvck1lZGlhVHlwZTptZWRpYVR5cGVdOworICAgIGlmIChhdXRob3JpemF0aW9uU3Rh
dHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZCB8fCBhdXRob3JpemF0aW9uU3RhdHVz
ID09IEFWQXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0ZWQpIHsKKyAgICAgICAgY2FsbGJhY2so
Tk8pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChhdXRob3JpemF0aW9uU3RhdHVz
ID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQpIHsKKyAgICAgICAgY2FsbGJhY2so
WUVTKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VD
bGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6bWVkaWFUeXBlIGNvbXBsZXRpb25IYW5k
bGVyOmNhbGxiYWNrXTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGY0OTIwYTUuLjRiYzI4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3OTUsNiArMTc5NSw4IEBACiAJCUQzQjk0ODQ3MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1
cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDgxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLzsg
fTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9OworCQlEM0RCMzdBQTFE
RDNGNUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNEQjM3QTgx
REQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1Mu
aCAqLzsgfTsKKwkJRDNEQjM3QUIxREQzRjVCODAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEM0RCMzdBOTFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0
dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAqLzsgfTsKIAkJREY1OEM2MzYxMzcxQUNBMDAwRjlB
MzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZl
V2ViV2hlZWxFdmVudE1hYy5tbSAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8q
IEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9Owog
CQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogRGF0YWJhc2VQcm9jZXNzSU9TLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMxOTBGNzkx
QzAwNzMxNjU4IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSAqLzsgfTsKQEAgLTM5NTEsNiArMzk1
Myw4IEBACiAJCUQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDUx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDNEQjM3QTgxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVy
ZURldmljZUF1dGhvcml6ZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOyBwYXRoID0gaW9zL1dLVXNl
ck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDNEQjM3QTkxREQzRjVBNzAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tOyBwYXRoID0gaW9z
L1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURGNThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVl
bEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVs
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAw
RjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jh
bmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA2OSw2ICs1MDczLDggQEAKIAkJCQkwRkNC
NEU0NTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lm1tICovLAogCQkJCTI2RjEwQkU2
MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIu
aCAqLywKIAkJCQkyNkYxMEJFNzE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyLm0gKi8sCisJCQkJRDNEQjM3QTgxREQzRjVBNzAwNDczNzRDIC8q
IFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAqLywKKwkJCQlEM0RCMzdB
OTFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTc5MDMsNiArNzkwOSw3IEBACiAJCQkJMUE0NEI5NUMxNkI3M0Y5RjAwQjdCQkQ4IC8q
IFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIzMUE5NzE2QkM2ODgxMDBG
NkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFF
MDBENkMxODMyN0MxMjAwMDg3REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRDNEQjM3QUExREQzRjVCNDAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5NkJEODVEMTUwMTlCQzMwMDcx
RjQyNCAvKiBTdHJpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMUEwQkQ2MUE0
OEU2QzYwMDU0RUY3NCAvKiBUQ0NTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTQxN0NCMTJD
MDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCkBAIC05NjU5LDYg
Kzk2NjYsNyBAQAogCQkJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkRGQzdEQkMxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzAzMzdERDExMjdBMjk4MDAwOEZGNEY0IC8qIFdlYldoZWVsRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRDNEQjM3QUIxREQzRjVCODAwNDczNzRDIC8qIFdLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NjgxNjBEMDE4
NzY0NTU3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyOUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdEJhc2UubW0gaW4gU291cmNlcyAqLywKLS0gCjIuMTAuMSAoQXBwbGUg
R2l0LTc4KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294874</attachid>
            <date>2016-11-15 13:51:49 -0800</date>
            <delta_ts>2016-11-17 17:00:25 -0800</delta_ts>
            <desc>Proposed Patch V9</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>29687</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA5MzhlOWFjMGZjZjhjYjEzYTY5YzEwYmYzODQwZWM4MDZmMjkzNzI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDE0IE5vdiAyMDE2IDEwOjQyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQWxs
b3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FwdHVyZURldmlj
ZUF1dGhvcml6ZXIpOiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mCldLVXNlck1lZGlhQ2FwdHVyZURl
dmljZUF1dGhvcml6ZXJJT1MuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IElmIG9uIGlPUywgd2UKZmlyc3Qg
Y2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgZ3JhbnRlZCB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8g
dXNlIGNhcHR1cmUgZGV2aWNlcywgYW5kCmlmIG5vdCB3ZSByZXF1ZXN0IHBlcm1pc3Npb24uIFRo
ZW4gd2UgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVpRGVsZWdhdGUuCihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOiBD
aGVja3MgdGhlIGNsaWVudCBmb3IKcGVybWlzc2lvbiB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2Vz
LgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2Up
OiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCgoqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhv
cml6ZXJJT1MubW06IEFkZGVkLgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TIHJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24K
dG8gcmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50
LgooLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RDYW1lcmFB
dXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bwpyZXF1ZXN0IGNhbWVyYSBhY2Nl
c3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJh
Y2s6XSk6CkhlbHBlciBtZXRob2QgZm9yIHJlcXVlc3RpbmcgbWljcm9waG9uZS9jYW1lcmEgYWNj
ZXNzLgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysrKysrKysK
IC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAgICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAgIHwg
ICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggICAg
ICAgIHwgIDE3ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCAgICB8ICAzNSArKysrKysKIC4uLi9pb3MvV0tV
c2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbSAgIHwgIDcxICsrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAg
IDggKysKIDkgZmlsZXMgY2hhbmdlZCwgMzEwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmlj
ZUF1dGhvcml6ZXJJT1MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5tbQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmYjExODBkLi41MGRiYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIw
MTYtMTEtMTUgIEFuZHJldyBHb2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgZm9yIEhUTUwgTWVkaWEgQ2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24g
aU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAg
Y2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJp
LiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxm
IG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHks
IFNhZmFyaQorICAgICAgICBtdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtp
bmcgcGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBv
ZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2Ug
YWRkZWQgZm91ciBtZXRob2RzIHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5v
dGlmeQorICAgICAgICB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlm
eSB0aGF0IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAg
ICB3ZSBhZGRlZCBhIHByaXZhdGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUg
Y2xpZW50IHRvIHN0b3AgYSBjYXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNh
cHR1cmVdKTogQWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVEZXZp
Y2VBdXRob3JpemVyKTogUmV0dXJucyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBXS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOiBJ
ZiBvbiBpT1MsIHdlCisgICAgICAgIGZpcnN0IGNoZWNrIHRoYXQgdGhlIHVzZXIgaGFzIGdyYW50
ZWQgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIHVzZSBjYXB0dXJlIGRldmljZXMsIGFuZCAKKyAg
ICAgICAgaWYgbm90IHdlIHJlcXVlc3QgcGVybWlzc2lvbi4gVGhlbiB3ZSByZXF1ZXN0IHBlcm1p
c3Npb24gZnJvbSB0aGUgdWlEZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUg
Y2xpZW50IGZvcgorICAgICAgICBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMu
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSk6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Np
b24gYmVnaW5uaW5nL2VuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RN
aWNyb3Bob25lQXV0aG9yaXphdGlvbjpdKTogVXNlcyBBVkZvdW5kYXRpb24KKyAgICAgICAgdG8g
cmVxdWVzdCBtaWNyb3Bob25lIGFjY2VzcyBmcm9tIHRoZSB1c2VyIGZvciB0aGUgY2xpZW50Lgor
ICAgICAgICAoLVtXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TIHJlcXVlc3RD
YW1lcmFBdXRob3JpemF0aW9uOl0pOiBVc2VzIEFWRm91bmRhdGlvbiB0bworICAgICAgICByZXF1
ZXN0IGNhbWVyYSBhY2Nlc3MgZnJvbSB0aGUgdXNlciBmb3IgdGhlIGNsaWVudC4KKyAgICAgICAg
KC1bV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBfcmVxdWVzdEF1dGhvcml6
YXRpb25Gb3JNZWRpYVR5cGU6Y2FsbGJhY2s6XSk6IAorICAgICAgICBIZWxwZXIgbWV0aG9kIGZv
ciByZXF1ZXN0aW5nIG1pY3JvcGhvbmUvY2FtZXJhIGFjY2Vzcy4KKworICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKIDIwMTYtMTEtMTUgIEpvbiBMZWUgIDxqb25s
ZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBIYXNNZWRpYUNhcHR1cmVEZXZpY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmgKaW5kZXggM2M1NGViZi4uN2UyYWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAg
LTU4LDYgKzU4LDEwIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZDooQ0dT
aXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAo
TlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRo
b3JpemF0aW9uRm9yTWljcm9waG9uZTooQk9PTCltaWNyb3Bob25lIGNhbWVyYTooQk9PTCljYW1l
cmEgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBh
dXRob3JpemVkQ2FtZXJhKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUlu
dGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcg
KnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlld0Rp
ZEJlZ2luQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3
RGlkRW5kQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAjaWYgVEFSR0VUX09TX0lQ
SE9ORQogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRl
QXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgYWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICopZWxlbWVudCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+
ICopZGVmYXVsdEFjdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IGI2NjliNmUuLjdiMWEwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00MDAyLDYgKzQwMDIs
MTEgQEAgLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KICNlbmRpZgogfQogCistICh2b2lkKV9zdG9w
TWVkaWFDYXB0dXJlCit7CisgICAgX3BhZ2UtPnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6OkNhcHR1cmVEZXZpY2VzQXJlTXV0ZWQpOworfQorCiAjcHJhZ21hIG1hcmsgaU9TLXNwZWNp
ZmljIG1ldGhvZHMKIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNjk3NjUwYS4u
YTI2MDBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI1NSw2ICsyNTUsOCBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdh
dGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCistICh2b2lkKV9zdG9wTWVkaWFD
YXB0dXJlOworCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggYmMxNGVmNS4uYmQ1OGJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0zNSw2ICsz
NSwxMSBAQAogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAorI2lmIFBMQVRGT1JNKElPUykKK09CSkNfQ0xBU1MgV0tVc2VyTWVkaWFDYXB0dXJlRGV2
aWNlQXV0aG9yaXplcklPUzsKKyNlbmRpZgorCitAY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBAY2xh
c3MgX1dLQWN0aXZhdGVkRWxlbWVudEluZm87CiBAY2xhc3MgV0tXZWJWaWV3OwogQHByb3RvY29s
IFdLVUlEZWxlZ2F0ZTsKQEAgLTg5LDYgKzk0LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShN
QUMpCiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJv
eHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBh
cmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAj
ZW5kaWYKKyAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Jikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpX
ZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
LCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Jikgb3ZlcnJpZGU7CisgICAg
ICAgIHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSBv
dmVycmlkZTsKICAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5Kikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQogI2lm
IEhBVkUoQVBQX0xJTktTKQpAQCAtMTA0LDYgKzExMiwxMSBAQCBwcml2YXRlOgogICAgICAgICB2
b2lkIGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpIG92ZXJyaWRlOwogCiAgICAgICAgIFVJRGVsZWdhdGUmIG1fdWlEZWxlZ2F0ZTsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgICAgIFdLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJ
T1MgKmNhcHR1cmVEZXZpY2VBdXRob3JpemVyKCk7CisgICAgICAgIFJldGFpblB0cjxXS1VzZXJN
ZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TPiBtX2NhcHR1cmVEZXZpY2VBdXRob3JpemVy
OworI2VuZGlmCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtX21lZGlhU3RhdGUgeyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsK
ICAgICB9OwogCiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CkBAIC0xMjUsNiArMTM4LDEwIEBA
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJW
aWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJhVVJMTWFp
bkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3Q2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNp
b25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lv
biA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uIDogMTsKICNp
ZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCiAgICAgICAgIGJvb2wgd2ViVmll
d1Nob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQgOiAxOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlZGEzNTY1Li5jNWUzZjQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAt
MzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgi
CiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuaCIKKyNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTmF2
aWdhdGlvbkFjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJ
bnRlcm5hbC5oIgpAQCAtNDYsNiArNDgsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAj
aW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgIldL
VXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogVUlEZWxlZ2F0ZTo6VUlEZWxlZ2F0ZShXS1dlYlZpZXcgKndlYlZpZXcp
CkBAIC0xMDEsNiArMTA3LDEwIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdL
VUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9ucyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFjdGlvbnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rp
b25zOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0Ns
aWNrQXRQb2ludCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50OildOworICAgIG1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmVDYW1l
cmFVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ck1pY3JvcGhvbmU6Y2FtZXJhOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOwor
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JV
UkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6
KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24g
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2lu
Q2FwdHVyZVNlc3Npb246KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuZENh
cHR1cmVTZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVz
ZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAj
ZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZp
ZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGF0YURldGVjdGlv
bkNvbnRleHRGb3JXZWJWaWV3OildOwpAQCAtMjk5LDYgKzMwOSwxMTkgQEAgYm9vbCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
IHdlYkZyYW1lUHIKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorV0tVc2VyTWVkaWFD
YXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyAqVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhcHR1cmVE
ZXZpY2VBdXRob3JpemVyKCkKK3sKKyAgICBpZiAoIW1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIp
CisgICAgICAgIG1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIgPSBhZG9wdE5TKFtbV0tVc2VyTWVk
aWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUyBhbGxvY10gaW5pdF0pOworCisgICAgcmV0dXJu
IG1fY2FwdHVyZURldmljZUF1dGhvcml6ZXIuZ2V0KCk7Cit9CisjZW5kaWYKKworYm9vbCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJh
bWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhv
bmVDYW1lcmFVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVz
dC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBib29sIHJlcXVpcmVzQXVkaW8gPSByZXF1ZXN0LnJlcXVpcmVzQXVkaW8oKTsK
KyAgICBib29sIHJlcXVpcmVzVmlkZW8gPSByZXF1ZXN0LnJlcXVpcmVzVmlkZW8oKTsKKyAgICBp
ZiAoIXJlcXVpcmVzQXVkaW8gJiYgIXJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgcmVxdWVzdC5k
ZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIF9fYmxvY2sgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsK
KyAgICB2b2lkIChedWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaykodm9pZCkgPSBeIHsKKyAg
ICAgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWlu
RnJhbWUoKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RGcmFtZVVSTChXZWJDb3JlOjpV
UkwoKSwgZnJhbWUudXJsKCkpOworICAgICAgICBXZWJDb3JlOjpVUkwgbWFpbkZyYW1lVVJMKFdl
YkNvcmU6OlVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKworICAgICAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpyZXF1aXJlc0F1ZGlvIGNhbWVyYTpyZXF1aXJlc1Zp
ZGVvIHVybDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lv
bkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25lLCBCT09MIGF1dGhvcml6ZWRDYW1l
cmEpIHsKKyAgICAgICAgICAgIGlmICgocmVxdWlyZXNBdWRpbyAhPSBhdXRob3JpemVkTWljcm9w
aG9uZSkgfHwgKHJlcXVpcmVzVmlkZW8gIT0gYXV0aG9yaXplZENhbWVyYSkpIHsKKyAgICAgICAg
ICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlEID0gcmVxdWlyZXNWaWRlbyA/IHJlcXVlc3QudmlkZW9EZXZpY2VVSURzKCku
Zmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZVVJRCA9IHJlcXVpcmVzQXVkaW8gPyByZXF1ZXN0LmF1ZGlvRGV2aWNlVUlEcygpLmZpcnN0KCkg
OiBTdHJpbmcoKTsKKyAgICAgICAgICAgIHJlcXVlc3QuYWxsb3coYXVkaW9EZXZpY2VVSUQsIHZp
ZGVvRGV2aWNlVUlEKTsKKyAgICAgICAgfV07CisgICAgfTsKKworI2lmIFBMQVRGT1JNKElPUykK
KyAgICB2b2lkICheY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKSh2b2lkKSA9IF4geworICAgICAg
ICBpZiAocmVxdWlyZXNWaWRlbykgeworICAgICAgICAgICAgW2NhcHR1cmVEZXZpY2VBdXRob3Jp
emVyKCkgcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpCisgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgICAg
ICAgICAgfV07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6
YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAocmVxdWlyZXNBdWRpbykgeworICAgICAg
ICBbY2FwdHVyZURldmljZUF1dGhvcml6ZXIoKSByZXF1ZXN0TWljcm9waG9uZUF1dGhvcml6YXRp
b246XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgIGlmICghYXV0aG9yaXplZCkKKyAg
ICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYW1lcmFBdXRob3JpemF0aW9uQmxvY2soKTsK
KyAgICAgICAgfV07CisgICAgfSBlbHNlCisgICAgICAgIGNhbWVyYUF1dGhvcml6YXRpb25CbG9j
aygpOworI2Vsc2UKKyAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZW5kaWYK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVk
aWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KQoreworICAgIGF1dG8gZGVsZWdh
dGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8
ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlcikg
eworICAgICAgICByZXF1ZXN0LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKCksIGZhbHNl
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgV0tXZWJWaWV3ICp3ZWJWaWV3
ID0gbV91aURlbGVnYXRlLm1fd2ViVmlldzsKKyAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWlu
RnJhbWUgPSBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgIFdlYkNvcmU6OlVSTCByZXF1
ZXN0RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICBXZWJDb3JlOjpV
UkwgbWFpbkZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBtYWluRnJhbWUtPnVybCgpKTsKKworICAg
IFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6
bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5k
bGVyOl4oTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkgeworICAgICAgICByZXF1ZXN0
LnNldFVzZXJNZWRpYUFjY2Vzc0luZm8oU3RyaW5nKHNhbHQpLCBhdXRob3JpemVkKTsKKyAgICB9
XTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpp
c1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAg
ICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYg
KCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRC
ZWdpbkNhcHR1cmVTZXNzaW9uIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEVuZENhcHR1cmVTZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBXS1dlYlZp
ZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJWaWV3OworICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlID0gcGFnZS5tZWRpYVN0YXRlRmxh
Z3MoKTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVk
aWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpIYXNBY3RpdmVNZWRpYUNhcHR1cmVEZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0g
bWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZU1lZGlhQ2FwdHVy
ZURldmljZTsKKyAgICBpZiAob2xkTWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUgPT0gbmV3TWVk
aWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWVkaWFT
dGF0ZSA9IG1lZGlhU3RhdGU7CisgICAgaWYgKCFvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVy
ZSAmJiBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkgeworICAgICAgICBbKGlkIDxXS1VJ
RGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246
d2ViVmlld107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAob2xkTWVkaWFTdGF0
ZUhhc0FjdGl2ZUNhcHR1cmUgJiYgIW5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKQorICAg
ICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZEVuZENh
cHR1cmVTZXNzaW9uOndlYlZpZXddOworfQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBs
b25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV91aURlbGVnYXRl
Lm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFG
b3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YVRvdGFsQnl0ZXNOZWVkZWQpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1VzZXJNZWRp
YUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOGMyOTU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oSU9TKQorCitAaW50ZXJmYWNlIFdL
VXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MgOiBOU09iamVjdAorCistICh2b2lk
KXJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjoodm9pZCheKShCT09MIGF1dGhvcml6ZWQp
KWNhbGxiYWNrOworLSAodm9pZClyZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbjoodm9pZCheKShC
T09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrOworCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLVXNlck1lZGlh
Q2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLVXNlck1lZGlhQ2FwdHVyZURldmljZUF1dGhvcml6ZXJJT1MubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FjNTkxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUy5tbQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmgiCisKKyNp
ZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVEZXZpY2Uu
aD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhRm9ybWF0Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKTsK
K1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSk7CitTT0ZUX0xJ
TktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKTsK
K1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlVmlkZW8sIE5TU3Ry
aW5nICopOworCitAaW1wbGVtZW50YXRpb24gV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9y
aXplcklPUworCistICh2b2lkKXJlcXVlc3RNaWNyb3Bob25lQXV0aG9yaXphdGlvbjoodm9pZChe
KShCT09MIGF1dGhvcml6ZWQpKWNhbGxiYWNrCit7CisgICAgW3NlbGYgX3JlcXVlc3RBdXRob3Jp
emF0aW9uRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlQXVkaW8oKSBjYWxsYmFjazpjYWxsYmFj
a107Cit9CisKKy0gKHZvaWQpcmVxdWVzdENhbWVyYUF1dGhvcml6YXRpb246KHZvaWQoXikoQk9P
TCBhdXRob3JpemVkKSljYWxsYmFjaworeworICAgIFtzZWxmIF9yZXF1ZXN0QXV0aG9yaXphdGlv
bkZvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY2FsbGJhY2s6Y2FsbGJhY2tdOwor
fQorCistICh2b2lkKV9yZXF1ZXN0QXV0aG9yaXphdGlvbkZvck1lZGlhVHlwZTooTlNTdHJpbmcg
KiltZWRpYVR5cGUgY2FsbGJhY2s6KHZvaWQoXikoQk9PTCBhdXRob3JpemVkKSljYWxsYmFjawor
eworICAgIEFTU0VSVChbbWVkaWFUeXBlIGlzRXF1YWxUb1N0cmluZzpnZXRBVk1lZGlhVHlwZUF1
ZGlvKCldIHx8IFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOmdldEFWTWVkaWFUeXBlVmlkZW8o
KV0pOworCisgICAgQVZBdXRob3JpemF0aW9uU3RhdHVzIGF1dGhvcml6YXRpb25TdGF0dXMgPSBb
Z2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0aW9uU3RhdHVzRm9yTWVkaWFUeXBl
Om1lZGlhVHlwZV07CisgICAgaWYgKGF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0
aW9uU3RhdHVzRGVuaWVkIHx8IGF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9u
U3RhdHVzUmVzdHJpY3RlZCkgeworICAgICAgICBjYWxsYmFjayhOTyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKGF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9u
U3RhdHVzQXV0aG9yaXplZCkgeworICAgICAgICBjYWxsYmFjayhZRVMpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vz
c0Zvck1lZGlhVHlwZTptZWRpYVR5cGUgY29tcGxldGlvbkhhbmRsZXI6Y2FsbGJhY2tdOworfQor
CitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjQ5MjBhNS4uNGJjMjgyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTc5NSw2ICsxNzk1LDggQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlE
M0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovOyB9OwogCQlEM0I5NDg0OTExRkY0
QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
U2VhcmNoUG9wdXBNZW51LmggKi87IH07CisJCUQzREIzN0FBMUREM0Y1QjQwMDQ3Mzc0QyAvKiBX
S1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyog
V0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oICovOyB9OworCQlEM0RCMzdB
QjFERDNGNUI4MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzREIz
N0E5MUREM0Y1QTcwMDQ3Mzc0QyAvKiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVy
SU9TLm1tICovOyB9OwogCQlERjU4QzYzNjEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hl
ZWxFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1t
ICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CiAJCUUxMTVDNzE0MTkwRjg5RTQw
MEVDQzUxNiAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogRGF0YWJh
c2VQcm9jZXNzSU9TLm1tICovOyB9OwpAQCAtMzk1MSw2ICszOTUzLDggQEAKIAkJRDNCOTQ4NDMx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyog
V2ViU2VhcmNoUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNlYXJjaFBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0RCMzdB
ODFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklP
Uy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1VzZXJNZWRpYUNhcHR1cmVE
ZXZpY2VBdXRob3JpemVySU9TLmg7IHBhdGggPSBpb3MvV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNl
QXV0aG9yaXplcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0RCMzdBOTFE
RDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVXNlck1lZGlhQ2Fw
dHVyZURldmljZUF1dGhvcml6ZXJJT1MubW07IHBhdGggPSBpb3MvV0tVc2VyTWVkaWFDYXB0dXJl
RGV2aWNlQXV0aG9yaXplcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1
OEM2MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2Vi
V2hlZWxFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01MDY5LDYgKzUwNzMsOCBAQAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZD
OSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8q
IFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCTI2RjEwQkU3
MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIu
bSAqLywKKwkJCQlEM0RCMzdBODFERDNGNUE3MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJl
RGV2aWNlQXV0aG9yaXplcklPUy5oICovLAorCQkJCUQzREIzN0E5MUREM0Y1QTcwMDQ3Mzc0QyAv
KiBXS1VzZXJNZWRpYUNhcHR1cmVEZXZpY2VBdXRob3JpemVySU9TLm1tICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzkwMyw2ICs3OTA5
LDcgQEAKIAkJCQkxQTQ0Qjk1QzE2QjczRjlGMDBCN0JCRDggLyogU3RvcmFnZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUwMEQ2QzE4MzI3QzEyMDAwODdE
RDcgLyogU3RyaW5nUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlEM0RCMzdBQTFERDNG
NUI0MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXplcklPUy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjk2QkQ4NUQxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxQTBCRDYxQTQ4RTZDNjAwNTRFRjc0IC8qIFRD
Q1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRl
eHRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTk2NTksNiArOTY2Niw3IEBACiAJCQkJM0Y0
MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREZDN0RCQzFCQ0NDMTk1MDBD
MTU0OEMgLyogV2ViVmlld0ltcGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDMzN0REMTEyN0Ey
OTgwMDA4RkY0RjQgLyogV2ViV2hlZWxFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0RC
MzdBQjFERDNGNUI4MDA0NzM3NEMgLyogV0tVc2VyTWVkaWFDYXB0dXJlRGV2aWNlQXV0aG9yaXpl
cklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg2ODE2MEQwMTg3NjQ1NTcwMDIxRTc5RCAvKiBX
aW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMyMTU5NTMxREJB
RTcxODAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5
Q0Q1NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFz
ZS5tbSBpbiBTb3VyY2VzICovLAotLSAKMi4xMC4xIChBcHBsZSBHaXQtNzgpCgo=
</data>
<flag name="review"
          id="317528"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295111</attachid>
            <date>2016-11-17 17:00:25 -0800</date>
            <delta_ts>2016-11-18 06:45:58 -0800</delta_ts>
            <desc>Proposed Patch v10</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>20913</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA3MjYyNWJlNjNiODc5MmFjZDQ5NDY5YmFlYTA4NDYzZGZjOGVmOWRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDE3IE5vdiAyMDE2IDE2OjU1OjIxIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIG9yZGVyIHRv
IGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhlIEFWRm91
bmRhdGlvbiBBUEkgdG8KY2hlY2svcmVxdWVzdCBjYXB0dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVzdCByZXF1ZXN0CnBlcm1pc3Npb24gb24g
YmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRvIHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlv
bmFsbHksIFNhZmFyaQptdXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcg
cGxhY2UsIHNvIFdlYktpdCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudApvZiBhIGNhcHR1cmUg
c2Vzc2lvbiBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBt
ZXRob2RzIHRvCldLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CnRoYXQgYSBjYXB0dXJlIHNl
c3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGVu
ZGVkLiBBZGRpdGlvbmFsbHksCndlIGFkZGVkIGEgcHJpdmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3
IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1cmUgc2Vzc2lvbi4KCiogVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgooQVBJOjpVSUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJl
U2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5u
aW5nLgooQVBJOjpVSUNsaWVudDo6ZGlkRW5kQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0aGUg
Y2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGVuZGluZy4KCiogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IEFkZGVkIG5ldyBkZWxlZ2F0ZSBtZXRob2RzIHRvIHJl
cXVlc3QgcGVybWlzc2lvbiwKY2hlY2sgZm9yIHBlcm1pc3Npb24sIG5vdGlmeSBvZiBhIGNhcHR1
cmUgc2Vzc2lvbiBiZWdpbm5pbmcsIGFuZCBub3RpZnkgb2YgYSBjYXB0dXJlIHNlc3Npb24KZW5k
aW5nLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKC1bV0tXZWJWaWV3IF9z
dG9wTWVkaWFDYXB0dXJlXSk6IENhbmNlbHMgYSBtZWRpYSBjYXB0dXJlIHNlc3Npb24uCiogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CgoqIFVJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLmg6CiogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CihXZWJLaXQ6OlVJ
RGVsZWdhdGU6OnNldERlbGVnYXRlKTogQWRkZWQgdGhlIG5ldyBkZWxlZ2F0ZSBtZXRob2RzLgoo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOgpGaXJzdCBjaGVja3MgaWYgdGhlIHVzZXIgaGFzIGF1dGhvcml6ZWQg
dGhlIGNsaWVudCBhcHBsaWNhdGlvbiBhY2Nlc3MgY2FwdHVyZSBkZXZpY2VzLAp0aGVuIHVzZXMg
dGhlIFdLVUlEZWxlZ2F0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZm9yIGEgc2l0ZSBmcm9tIHRo
ZSB1c2VyLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yT3JpZ2luKTogQ2hlY2tzIHRoZSBjbGllbnQKZm9yIHBlcm1pc3Npb24gdG8gYWNj
ZXNzIGNhcHR1cmUgZGV2aWNlcy4KKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZEJl
Z2luQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNz
aW9uIGJlZ2lubmluZy4KKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZEVuZENhcHR1
cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUKc2Vzc2lvbiBlbmRp
bmcuCgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogQ2FsbHMgVUlEZWxlZ2F0ZSBtZXRob2QgdG8gbm90
aWZ5IHRoZQpjbGllbnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5uaW5nL2VuZGluZy4KLS0t
CiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0
NSArKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggICAg
ICAgICB8ICAgMiArCiAuLi4vVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmggICAgICB8ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSAgICB8ICAgNSArCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaCB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oICAgICAgICB8ICAgOCArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0gICAgICAgfCAxNDAgKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAgNyArKwogOCBm
aWxlcyBjaGFuZ2VkLCAyMTMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmYjExODBkLi5j
YmMyNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTYtMTEtMTcgIEFuZHJldyBH
b2xkICA8YWdvbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUwgTWVkaWEg
Q2FwdHVyZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gZW5hYmxlIG1lZGlhIGNhcHR1cmUgb24gaU9TLCB3ZSBtdXN0IGZpcnN0
IHVzZSB0aGUgQVZGb3VuZGF0aW9uIEFQSSB0byAKKyAgICAgICAgY2hlY2svcmVxdWVzdCBjYXB0
dXJlIHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciBmb3IgU2FmYXJpLiBUaGVuLCBTYWZhcmkgbXVz
dCByZXF1ZXN0CisgICAgICAgIHBlcm1pc3Npb24gb24gYmVoYWxmIG9mIHRoZSB3ZWJwYWdlIHRv
IHVzZSB0aGUgY2FwdHVyZSBkZXZpY2VzLiBBZGRpdGlvbmFsbHksIFNhZmFyaQorICAgICAgICBt
dXN0IHByZXNlbnQgVUkgd2hlbiB0aGUgY2FwdHVyZSBpcyB0YWtpbmcgcGxhY2UsIHNvIFdlYktp
dCBuZWVkcyB0byBub3RpZnkgdGhlIGNsaWVudAorICAgICAgICBvZiBhIGNhcHR1cmUgc2Vzc2lv
biBiZWdpbm5pbmcgYW5kIGVuZGluZy4gVG8gZG8gdGhpcywgd2UgYWRkZWQgZm91ciBtZXRob2Rz
IHRvIAorICAgICAgICBXS1VJRGVsZWdhdGVQcml2YXRlIHRvIHJlcXVlc3QgcGVybWlzc2lvbiBm
cm9tIHRoZSB1c2VyLCBjaGVjayBmb3IgcGVybWlzc2lvbnMsIG5vdGlmeQorICAgICAgICB0aGF0
IGEgY2FwdHVyZSBzZXNzaW9uIGhhcyBiZWd1biwgYW5kIG5vdGlmeSB0aGF0IGEgY2FwdHVyZSBz
ZXNzaW9uIGhhcyBlbmRlZC4gQWRkaXRpb25hbGx5LAorICAgICAgICB3ZSBhZGRlZCBhIHByaXZh
dGUgbWV0aG9kIHRvIFdLV2ViVmlldyB0aGF0IGFsbG93cyB0aGUgY2xpZW50IHRvIHN0b3AgYSBj
YXB0dXJlIHNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNzaW9uKTogTm90aWZp
ZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcuCisgICAgICAgIChB
UEk6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGllbnQg
b2YgYSBjYXB0dXJlIHNlc3Npb24gZW5kaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IEFkZGVkIG5ldyBkZWxlZ2F0ZSBtZXRob2RzIHRv
IHJlcXVlc3QgcGVybWlzc2lvbiwKKyAgICAgICAgY2hlY2sgZm9yIHBlcm1pc3Npb24sIG5vdGlm
eSBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcsIGFuZCBub3RpZnkgb2YgYSBjYXB0dXJl
IHNlc3Npb24KKyAgICAgICAgZW5kaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0p
OiBDYW5jZWxzIGEgbWVkaWEgY2FwdHVyZSBzZXNzaW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOiBBZGRlZCB0aGUgbmV3
IGRlbGVnYXRlIG1ldGhvZHMuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIEZp
cnN0IGNoZWNrcyBpZiB0aGUgdXNlciBoYXMgYXV0aG9yaXplZCB0aGUgY2xpZW50IGFwcGxpY2F0
aW9uIGFjY2VzcyBjYXB0dXJlIGRldmljZXMsCisgICAgICAgIHRoZW4gdXNlcyB0aGUgV0tVSURl
bGVnYXRlIHRvIHJlcXVlc3QgcGVybWlzc2lvbiBmb3IgYSBzaXRlIGZyb20gdGhlIHVzZXIuCisg
ICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JPcmlnaW4pOiBDaGVja3MgdGhlIGNsaWVudAorICAgICAgICBmb3IgcGVybWlzc2lv
biB0byBhY2Nlc3MgY2FwdHVyZSBkZXZpY2VzLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGllbnQg
b2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Npb24gYmVnaW5uaW5nLgorICAgICAgICAoV2ViS2l0
OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkRW5kQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0
aGUgY2xpZW50IG9mIGEgY2FwdHVyZQorICAgICAgICBzZXNzaW9uIGVuZGluZy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogQ2FsbHMgVUlEZWxlZ2F0ZSBtZXRob2Qg
dG8gbm90aWZ5IHRoZQorICAgICAgICBjbGllbnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5u
aW5nL2VuZGluZy4KKwogMjAxNi0xMS0xNSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIEhhc01lZGlhQ2FwdHVyZURldmljZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDA3MzljYmUuLjBmZGZiNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE1MCw2ICsxNTAsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0YXRlRGlkQ2hhbmdlKFdlYktpdDo6
V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRD
aGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVn
aW5DYXB0dXJlU2Vzc2lvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDYXB0dXJlU2Vz
c2lvbigpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgdmlydHVhbCB2b2lk
IG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2Vi
S2l0OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCAz
YzU0ZWJmLi43ZTJhYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtNTgsNiArNTgsMTAgQEAgc3Ry
dWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAtIChOU0RpY3Rpb25hcnkgKilfZGF0
YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bo
b25lOihCT09MKW1pY3JvcGhvbmUgY2FtZXJhOihCT09MKWNhbWVyYSB1cmw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25lLCBCT09MIGF1dGhvcml6ZWRDYW1lcmEpKWRl
Y2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJM
ICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZp
ZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lv
bjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lv
bjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtIChCT09MKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVs
ZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxF
KGlvcyg5LjApKTsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBh
Y3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1
bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggYjY2OWI2ZS4uN2IxYTBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQwMDIsNiArNDAwMiwxMSBAQCAtIChCT09MKV9pc0lu
RnVsbHNjcmVlbgogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3N0b3BNZWRpYUNhcHR1cmUKK3sKKyAg
ICBfcGFnZS0+c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6Q2FwdHVyZURldmljZXNB
cmVNdXRlZCk7Cit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA2OTc2NTBhLi5hMjYwMGI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aApAQCAtMjU1LDYgKzI1NSw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVk
aWF0ZUFjdGlvblR5cGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxz
Y3JlZW5EZWxlZ2F0ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxl
Z2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CiAKKy0gKHZvaWQpX3N0b3BNZWRpYUNhcHR1cmU7CisKIEBlbmQKIAog
I2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAppbmRleCBiYzE0ZWY1Li4yN2RiZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTg5LDYgKzg5LDEwIEBAIHByaXZhdGU6CiAj
aWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJ
OjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSop
IG92ZXJyaWRlOwogI2VuZGlmCisgICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1l
UHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIG92ZXJyaWRlOworICAgICAgICBi
b29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIG92
ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEJlZ2luQ2FwdHVyZVNlc3Npb24oKSBvdmVycmlkZTsK
KyAgICAgICAgdm9pZCBkaWRFbmRDYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwogICAgICAgICB2
b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCkBA
IC0xMjUsNiArMTI5LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVs
bHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsK
KyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNy
b3Bob25lQ2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAg
Ym9vbCB3ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJh
bWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlk
QmVnaW5DYXB0dXJlU2Vzc2lvbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEVuZENhcHR1
cmVTZXNzaW9uIDogMTsKICNpZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCiAg
ICAgICAgIGJvb2wgd2ViVmlld1Nob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQg
OiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRl
eCBlZGEzNTY1Li4yZWRjZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFu
ZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2lt
cG9ydCAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKKyNpbXBvcnQgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkFjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS09w
ZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgpAQCAtNDYsNiArNDgsMTcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAorI2lmIFBMQVRGT1JN
KElPUykKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVEZXZpY2UuaD4KKyNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVk1lZGlhRm9ybWF0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5r
aW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKTsKK1NPRlRfTElOS19D
TEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSk7CitTT0ZUX0xJTktfQ09OU1RBTlQo
QVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19D
T05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlVmlkZW8sIE5TU3RyaW5nICopOworI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVSURlbGVnYXRlOjpVSURlbGVnYXRlKFdLV2Vi
VmlldyAqd2ViVmlldykKQEAgLTEwMSw2ICsxMTQsMTAgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXRE
ZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNlbmRpZgogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRBY3Rpb25zID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6YWN0aW9uc0ZvckVsZW1l
bnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5v
dEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KV07CisgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9y
TWljcm9waG9uZUNhbWVyYVVSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpjYW1lcmE6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lv
bkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRl
Y2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9y
V2ViVmlldzopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25D
b250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07CkBAIC0yOTksNiArMzE2LDEyOSBA
QCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKK2Jvb2wgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJl
cXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdl
dCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJh
VVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyKSB7CisgICAgICAgIHJlcXVlc3QuZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgYm9vbCByZXF1aXJlc0F1ZGlvID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlvKCk7CisgICAgYm9v
bCByZXF1aXJlc1ZpZGVvID0gcmVxdWVzdC5yZXF1aXJlc1ZpZGVvKCk7CisgICAgaWYgKCFyZXF1
aXJlc0F1ZGlvICYmICFyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgIHJlcXVlc3QuZGVueShVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
Ok5vQ29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBfX2Js
b2NrIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAgdm9p
ZCAoXnVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2spKHZvaWQpID0gXiB7CisgICAgICAgIGNv
bnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7
CisgICAgICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZy
YW1lLnVybCgpKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpV
UkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvck1pY3JvcGhvbmU6cmVxdWlyZXNBdWRpbyBjYW1lcmE6cmVxdWlyZXNWaWRlbyB1cmw6
cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVy
Ol4oQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBhdXRob3JpemVkQ2FtZXJhKSB7Cisg
ICAgICAgICAgICBpZiAoKHJlcXVpcmVzQXVkaW8gIT0gYXV0aG9yaXplZE1pY3JvcGhvbmUpIHx8
IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRDYW1lcmEpKSB7CisgICAgICAgICAgICAgICAg
cmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB2aWRlb0Rldmlj
ZVVJRCA9IHJlcXVpcmVzVmlkZW8gPyByZXF1ZXN0LnZpZGVvRGV2aWNlVUlEcygpLmZpcnN0KCkg
OiBTdHJpbmcoKTsKKyAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQgPSBy
ZXF1aXJlc0F1ZGlvID8gcmVxdWVzdC5hdWRpb0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5n
KCk7CisgICAgICAgICAgICByZXF1ZXN0LmFsbG93KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0Rldmlj
ZVVJRCk7CisgICAgICAgIH1dOworICAgIH07CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgdm9p
ZCAoXmNhbWVyYUF1dGhvcml6YXRpb25CbG9jaykodm9pZCkgPSBeIHsKKyAgICAgICAgaWYgKHJl
cXVpcmVzVmlkZW8pIHsKKyAgICAgICAgICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBjYW1lcmFB
dXRob3JpemF0aW9uU3RhdHVzID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXph
dGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCldOworICAgICAgICAg
ICAgc3dpdGNoIChjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzKSB7CisgICAgICAgICAgICBjYXNl
IEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKKyAgICAgICAgICAgIGNhc2UgQVZBdXRob3Jp
emF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
OjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c05vdERldGVybWluZWQ6CisgICAgICAgICAgICAg
ICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpn
ZXRBVk1lZGlhVHlwZVZpZGVvKCkgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWQp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgICAgICAg
ICAgfV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJs
b2NrKCk7CisgICAgfTsKKworICAgIGlmIChyZXF1aXJlc0F1ZGlvKSB7CisgICAgICAgIEFWQXV0
aG9yaXphdGlvblN0YXR1cyBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNh
cHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6Z2V0QVZN
ZWRpYVR5cGVBdWRpbygpXTsKKyAgICAgICAgc3dpdGNoIChtaWNyb3Bob25lQXV0aG9yaXphdGlv
blN0YXR1cykgeworICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKKyAg
ICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkOgorICAgICAgICAgICAg
cmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgor
ICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1l
ZGlhVHlwZTpnZXRBVk1lZGlhVHlwZUF1ZGlvKCkgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGF1
dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
Y2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgICAgICB9XTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY2FtZXJhQXV0aG9yaXphdGlv
bkJsb2NrKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgY2FtZXJhQXV0aG9yaXph
dGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsK
KyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwg
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBh
dXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFk
ZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lv
bkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKFN0cmlu
ZygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIFdLV2ViVmll
dyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAgY29uc3QgV2ViRnJhbWVQ
cm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKyAgICBXZWJDb3Jl
OjpVUkwgcmVxdWVzdEZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAg
V2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgbWFpbkZyYW1lLT51cmwo
KSk7CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFp
bkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRl
Y2lzaW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAg
ICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKFN0cmluZyhzYWx0KSwgYXV0aG9yaXpl
ZCk7CisgICAgfV07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbigpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVs
ZWdhdGUgX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOm1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXddOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lv
bigpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
OworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIFsoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Np
b246bV91aURlbGVnYXRlLm1fd2ViVmlld107Cit9CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBjdXJy
ZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2ln
bmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVR
dW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90YWxCeXRlc05lZWRlZCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlMDEyYzY4Li5kNDRh
NDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjM4
Miw2ICs2MzgyLDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsCiAgICAgaWYgKHN0YXRlID09
IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbV9t
ZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlTWVkaWFDYXB0dXJl
RGV2aWNlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdN
ZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlTWVkaWFDYXB0dXJlRGV2aWNlOworICAgIGlmICghb2xkTWVkaWFTdGF0ZUhh
c0FjdGl2ZUNhcHR1cmUgJiYgbmV3TWVkaWFTdGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAg
IG1fdWlDbGllbnQtPmRpZEJlZ2luQ2FwdHVyZVNlc3Npb24oKTsKKyAgICBpZiAob2xkTWVkaWFT
dGF0ZUhhc0FjdGl2ZUNhcHR1cmUgJiYgIW5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlKQor
ICAgICAgICBtX3VpQ2xpZW50LT5kaWRFbmRDYXB0dXJlU2Vzc2lvbigpOworCiAgICAgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sgPSBNZWRpYVByb2R1Y2Vy
OjpJc1BsYXlpbmdBdWRpbyB8IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvOwogICAgIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVkaWFTdGF0ZTsKICAg
ICBtX21lZGlhU3RhdGUgPSBzdGF0ZTsKLS0gCjIuMTAuMSAoQXBwbGUgR2l0LTc4KQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295147</attachid>
            <date>2016-11-18 06:45:58 -0800</date>
            <delta_ts>2016-11-18 14:08:23 -0800</delta_ts>
            <desc>Rebased patch.</desc>
            <filename>andrew_webkit_patch_11.txt</filename>
            <type>text/plain</type>
            <size>19670</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODg3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTExLTE3ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
MDg2MDY/KTogTGF5b3V0VGVzdCBmYXN0L21lZGlhc3RyZWFtL2VudW1lcmF0aW5nLWNyYXNoLmh0
bWwgaXMgYSBmbGFreSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NzE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3NzE4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIGZpeGVzIGFuIGV4aXN0aW5nIHRlc3QgY3Jhc2guCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCk6IENhbGwgYmFzZSBjbGFzcyBtZXRob2QgYmVm
b3JlIGNsZWFyaW5nIG1fY29udHJvbGxlcgorICAgICAgICAgIGJlY2F1c2UgaXQgbnVsbGlmaWVz
IHRoZSBzZWN1cml0eSBjb250ZXh0LgorCiAyMDE2LTExLTE3ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkIGFm
dGVyIHIyMDg3NDAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjA4ODcxKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjI4LDE0ICsyMjgsMTMgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojpk
ZW55KE1lZGlhQWNjZXNzRAogCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnRleHREZXN0cm95
ZWQoKQogeworICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVk
KCk7CiAgICAgUmVmPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAg
ICAgaWYgKG1fY29udHJvbGxlcikgewogICAgICAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFVzZXJN
ZWRpYUFjY2Vzc1JlcXVlc3QoKnRoaXMpOwogICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRy
OwogICAgIH0KLQotICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJv
eWVkKCk7CiB9CiAKIERvY3VtZW50KiBVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDg4NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0OCBAQAorMjAxNi0xMS0xOCAgQW5kcmV3
IEdvbGQgIDxhZ29sZEBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTCBNZWRp
YSBDYXB0dXJlIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbiBvcmRlciB0byBlbmFibGUgbWVkaWEgY2FwdHVyZSBvbiBpT1MsIHdlIG11c3QgZmly
c3QgdXNlIHRoZSBBVkZvdW5kYXRpb24gQVBJIHRvIAorICAgICAgICBjaGVjay9yZXF1ZXN0IGNh
cHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIGZvciBTYWZhcmkuIFRoZW4sIFNhZmFyaSBt
dXN0IHJlcXVlc3QKKyAgICAgICAgcGVybWlzc2lvbiBvbiBiZWhhbGYgb2YgdGhlIHdlYnBhZ2Ug
dG8gdXNlIHRoZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxseSwgU2FmYXJpCisgICAgICAg
IG11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzIHRha2luZyBwbGFjZSwgc28gV2Vi
S2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50CisgICAgICAgIG9mIGEgY2FwdHVyZSBzZXNz
aW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLiBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhv
ZHMgdG8gCisgICAgICAgIFdLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9u
IGZyb20gdGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CisgICAgICAgIHRo
YXQgYSBjYXB0dXJlIHNlc3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJl
IHNlc3Npb24gaGFzIGVuZGVkLiBBZGRpdGlvbmFsbHksCisgICAgICAgIHdlIGFkZGVkIGEgcHJp
dmF0ZSBtZXRob2QgdG8gV0tXZWJWaWV3IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBh
IGNhcHR1cmUgc2Vzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRpZEJlZ2luQ2FwdHVyZVNlc3Npb24pOiBOb3Rp
ZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZy4KKyAgICAgICAg
KEFQSTo6VUlDbGllbnQ6OmRpZEVuZENhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVu
dCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBlbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQgbmV3IGRlbGVnYXRlIG1ldGhvZHMg
dG8gcmVxdWVzdCBwZXJtaXNzaW9uLAorICAgICAgICBjaGVjayBmb3IgcGVybWlzc2lvbiwgbm90
aWZ5IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZywgYW5kIG5vdGlmeSBvZiBhIGNhcHR1
cmUgc2Vzc2lvbgorICAgICAgICBlbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJl
XSk6IENhbmNlbHMgYSBtZWRpYSBjYXB0dXJlIHNlc3Npb24uCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
OgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6IEFkZGVkIHRoZSBu
ZXcgZGVsZWdhdGUgbWV0aG9kcy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
Rmlyc3QgY2hlY2tzIGlmIHRoZSB1c2VyIGhhcyBhdXRob3JpemVkIHRoZSBjbGllbnQgYXBwbGlj
YXRpb24gYWNjZXNzIGNhcHR1cmUgZGV2aWNlcywKKyAgICAgICAgdGhlbiB1c2VzIHRoZSBXS1VJ
RGVsZWdhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZvciBhIHNpdGUgZnJvbSB0aGUgdXNlci4K
KyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbik6IENoZWNrcyB0aGUgY2xpZW50CisgICAgICAgIGZvciBwZXJtaXNz
aW9uIHRvIGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVu
dCBvZiBhIGNhcHR1cmUKKyAgICAgICAgc2Vzc2lvbiBiZWdpbm5pbmcuCisgICAgICAgIChXZWJL
aXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVz
IHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Npb24gZW5kaW5nLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOiBDYWxscyBVSURlbGVnYXRlIG1ldGhv
ZCB0byBub3RpZnkgdGhlCisgICAgICAgIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdp
bm5pbmcvZW5kaW5nLgorCiAyMDE2LTExLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZSBTUEkuCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjA4ODcx
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYzOTcsNiArNjM5NywxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1l
ZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbV9tZWRpYVN0YXRlICYgKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSB8IFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7CisgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0g
c3RhdGUgJiAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlIHwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
KTsKKyAgICBpZiAoIW9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmIG5ld01lZGlhU3Rh
dGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICBtX3VpQ2xpZW50LT5kaWRCZWdpbkNhcHR1cmVT
ZXNzaW9uKCk7CisgICAgaWYgKG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmICFuZXdN
ZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkKKyAgICAgICAgbV91aUNsaWVudC0+ZGlkRW5kQ2Fw
dHVyZVNlc3Npb24oKTsKKwogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nTWVkaWFNYXNrID0gTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8gfCBNZWRpYVByb2R1
Y2VyOjpJc1BsYXlpbmdWaWRlbzsKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
b2xkU3RhdGUgPSBtX21lZGlhU3RhdGU7CiAgICAgbV9tZWRpYVN0YXRlID0gc3RhdGU7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCShyZXZpc2lvbiAy
MDg4NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHBpbm5lZFN0YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbigpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRFbmRDYXB0dXJlU2Vzc2lvbigpIHsgfQogCiAjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT04pCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hh
bmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0
YSopIHsgfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIwODg3MSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCwxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURvY3VtZW50U2l6
ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6KEJPT0wpbWljcm9waG9uZSBjYW1l
cmE6KEJPT0wpY2FtZXJhIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZE1pY3Jv
cGhvbmUsIEJPT0wgYXV0aG9yaXplZENhbWVyYSkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6
KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVu
dGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogI2lm
IFRBUkdFVF9PU19JUEhPTkUKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
c2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwogLSAoTlNBcnJheSAq
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxl
bWVudEFjdGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIwODg3MSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00MDI4LDYgKzQwMjgsMTEgQEAgLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KICNl
bmRpZgogfQogCistICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCit7CisgICAgX3BhZ2UtPnNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkNhcHR1cmVEZXZpY2VzQXJlTXV0ZWQpOworfQor
CiAjcHJhZ21hIG1hcmsgaU9TLXNwZWNpZmljIG1ldGhvZHMKIAogI2lmIFBMQVRGT1JNKElPUykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMDg4NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjU4
LDYgKzI1OCw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxlZ2F0ZTopIGlkPF9X
S0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9p
c0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKKy0g
KHZvaWQpX3N0b3BNZWRpYUNhcHR1cmU7CisKIEBlbmQKIAogI2lmICFUQVJHRVRfT1NfSVBIT05F
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHJl
dmlzaW9uIDIwODg3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDEwIEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICAgICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJG
cmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVu
UGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJy
aWRlOwogI2VuZGlmCisgICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkm
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIG92ZXJyaWRlOworICAgICAgICBib29sIGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdl
YktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIG92ZXJyaWRl
OworICAgICAgICB2b2lkIGRpZEJlZ2luQ2FwdHVyZVNlc3Npb24oKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBkaWRFbmRDYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHBy
aW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqKSBv
dmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCkBAIC0xMjUs
NiArMTI5LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVl
biA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAg
ICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25l
Q2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3
ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVu
dGlmaWVyRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEVuZENhcHR1cmVTZXNz
aW9uIDogMTsKICNpZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCiAgICAgICAg
IGJvb2wgd2ViVmlld1Nob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQgOiAxOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHJl
dmlzaW9uIDIwODg3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkNvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25EYXRh
LmgiCisjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgorI2ltcG9ydCAi
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9J
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLT3BlblBhbmVsUGFyYW1ldGVyc0ludGVybmFsLmgiCkBAIC00Niw2ICs0OCwxNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCisjaWYg
UExBVEZPUk0oSU9TKQorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZURldmljZS5oPgor
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
U29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBVkZvdW5kYXRpb24pOworU09G
VF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKTsKK1NPRlRfTElOS19D
T05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopOworU09G
VF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVWaWRlbywgTlNTdHJpbmcg
Kik7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFVJRGVsZWdhdGU6OlVJRGVsZWdh
dGUoV0tXZWJWaWV3ICp3ZWJWaWV3KQpAQCAtMTAxLDYgKzExNCwxMCBAQCB2b2lkIFVJRGVsZWdh
dGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9ucyA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFjdGlvbnNGb3JFbGVtZW50OmRlZmF1
bHRBY3Rpb25zOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVU
YXBBc0NsaWNrQXRQb2ludCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50OildOworICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhv
bmVDYW1lcmFVUkxNYWluRnJhbWVVUkxEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvck1pY3JvcGhvbmU6Y2FtZXJhOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVy
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhh
bmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNl
c3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Rp
ZEJlZ2luQ2FwdHVyZVNlc3Npb246KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZEVuZENhcHR1cmVTZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6
KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5kYXRhRGV0ZWN0aW9uQ29udGV4dEZv
cldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGF0YURl
dGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OildOwpAQCAtMjk5LDYgKzMxNiwxMjkgQEAgYm9vbCBV
SURlbGVnYXRlOjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKAogfQogI2VuZGlmCiAKK2Jvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZy
YW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmIHJlcXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bo
b25lQ2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyKSB7CisgICAgICAgIHJlcXVl
c3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgYm9vbCByZXF1aXJlc0F1ZGlvID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlvKCk7
CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvID0gcmVxdWVzdC5yZXF1aXJlc1ZpZGVvKCk7CisgICAg
aWYgKCFyZXF1aXJlc0F1ZGlvICYmICFyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgIHJlcXVlc3Qu
ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246Ok5vQ29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBfX2Jsb2NrIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7
CisgICAgdm9pZCAoXnVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2spKHZvaWQpID0gXiB7Cisg
ICAgICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+bWFp
bkZyYW1lKCk7CisgICAgICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0RnJhbWVVUkwoV2ViQ29yZTo6
VVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChX
ZWJDb3JlOjpVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAgICAgICAgWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6cmVxdWlyZXNBdWRpbyBjYW1lcmE6cmVxdWlyZXNW
aWRlbyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZGVjaXNp
b25IYW5kbGVyOl4oQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBhdXRob3JpemVkQ2Ft
ZXJhKSB7CisgICAgICAgICAgICBpZiAoKHJlcXVpcmVzQXVkaW8gIT0gYXV0aG9yaXplZE1pY3Jv
cGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRDYW1lcmEpKSB7CisgICAgICAg
ICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCA9IHJlcXVpcmVzVmlkZW8gPyByZXF1ZXN0LnZpZGVvRGV2aWNlVUlEcygp
LmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZp
Y2VVSUQgPSByZXF1aXJlc0F1ZGlvID8gcmVxdWVzdC5hdWRpb0RldmljZVVJRHMoKS5maXJzdCgp
IDogU3RyaW5nKCk7CisgICAgICAgICAgICByZXF1ZXN0LmFsbG93KGF1ZGlvRGV2aWNlVUlELCB2
aWRlb0RldmljZVVJRCk7CisgICAgICAgIH1dOworICAgIH07CisKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgdm9pZCAoXmNhbWVyYUF1dGhvcml6YXRpb25CbG9jaykodm9pZCkgPSBeIHsKKyAgICAg
ICAgaWYgKHJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgICAgIEFWQXV0aG9yaXphdGlvblN0YXR1
cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkg
YXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCldOwor
ICAgICAgICAgICAgc3dpdGNoIChjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzKSB7CisgICAgICAg
ICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKKyAgICAgICAgICAgIGNhc2Ug
QVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKKyAgICAgICAgICAgICAgICByZXF1ZXN0
LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c05vdERldGVybWluZWQ6CisgICAg
ICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1l
ZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGF1
dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAg
ICAgICAgICAgICAgfV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9y
aXphdGlvbkJsb2NrKCk7CisgICAgfTsKKworICAgIGlmIChyZXF1aXJlc0F1ZGlvKSB7CisgICAg
ICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9
IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5
cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpXTsKKyAgICAgICAgc3dpdGNoIChtaWNyb3Bob25lQXV0
aG9yaXphdGlvblN0YXR1cykgeworICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0Rl
bmllZDoKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0cmljdGVkOgorICAg
ICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3REZXRl
cm1pbmVkOgorICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFj
Y2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZUF1ZGlvKCkgY29tcGxldGlvbkhhbmRsZXI6
XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWF1dGhvcml6ZWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgICAgICB9XTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY2FtZXJhQXV0
aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgY2FtZXJh
QXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9u
QmxvY2soKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1
cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bE9yaWdpbiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkK
K3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Cisg
ICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFtZUlkZW50aWZp
ZXJEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKFN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAgY29uc3Qg
V2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKTsKKyAg
ICBXZWJDb3JlOjpVUkwgcmVxdWVzdEZyYW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwo
KSk7CisgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgbWFpbkZy
YW1lLT51cmwoKSk7CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJh
bWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJh
bWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQp
IHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKFN0cmluZyhzYWx0KSwg
YXV0aG9yaXplZCk7CisgICAgfV07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbigpCit7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdh
dGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQmVnaW5DYXB0
dXJlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9uOm1fdWlEZWxlZ2F0
ZS5tX3dlYlZpZXddOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmRDYXB0
dXJlU2Vzc2lvbigpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3RGlkRW5kQ2Fw
dHVyZVNlc3Npb246bV91aURlbGVnYXRlLm1fd2ViVmlld107Cit9CisKIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVBy
b3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZv
aWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVdlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90YWxCeXRlc05lZWRl
ZCkgewo=
</data>
<flag name="review"
          id="317772"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295504</attachid>
            <date>2016-11-28 11:04:39 -0800</date>
            <delta_ts>2017-06-18 23:58:29 -0700</delta_ts>
            <desc>Fixed Patch.</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>21058</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA5MGFjMDNmZTg5ODkzMDQ2MGIyZWExMjAwNDFmZDI2ZjRiODc2YTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDI4IE5vdiAyMDE2IDEwOjU4OjM0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgoKSW4gb3JkZXIgdG8gZW5h
YmxlIG1lZGlhIGNhcHR1cmUgb24gaU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0
aW9uIEFQSSB0bwpjaGVjay9yZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2Vy
IGZvciBTYWZhcmkuIFRoZW4sIFNhZmFyaSBtdXN0IHJlcXVlc3QKcGVybWlzc2lvbiBvbiBiZWhh
bGYgb2YgdGhlIHdlYnBhZ2UgdG8gdXNlIHRoZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxs
eSwgU2FmYXJpCm11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzIHRha2luZyBwbGFj
ZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50Cm9mIGEgY2FwdHVyZSBzZXNz
aW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLiBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhv
ZHMgdG8KV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciwgY2hlY2sgZm9yIHBlcm1pc3Npb25zLCBub3RpZnkKdGhhdCBhIGNhcHR1cmUgc2Vzc2lv
biBoYXMgYmVndW4sIGFuZCBub3RpZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgZW5kZWQu
IEFkZGl0aW9uYWxseSwKd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhvZCB0byBXS1dlYlZpZXcgdGhh
dCBhbGxvd3MgdGhlIGNsaWVudCB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgoKKiBVSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50Lmg6CihBUEk6OlVJQ2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNz
aW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcu
CihBUEk6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGll
bnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gZW5kaW5nLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQgbmV3IGRlbGVnYXRlIG1ldGhvZHMgdG8gcmVxdWVz
dCBwZXJtaXNzaW9uLApjaGVjayBmb3IgcGVybWlzc2lvbiwgbm90aWZ5IG9mIGEgY2FwdHVyZSBz
ZXNzaW9uIGJlZ2lubmluZywgYW5kIG5vdGlmeSBvZiBhIGNhcHR1cmUgc2Vzc2lvbgplbmRpbmcu
CgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BN
ZWRpYUNhcHR1cmVdKTogQ2FuY2VscyBhIG1lZGlhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUpOiBBZGRlZCB0aGUgbmV3IGRlbGVnYXRlIG1ldGhvZHMuCihXZWJL
aXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CkZpcnN0IGNoZWNrcyBpZiB0aGUgdXNlciBoYXMgYXV0aG9yaXplZCB0aGUg
Y2xpZW50IGFwcGxpY2F0aW9uIGFjY2VzcyBjYXB0dXJlIGRldmljZXMsCnRoZW4gdXNlcyB0aGUg
V0tVSURlbGVnYXRlIHRvIHJlcXVlc3QgcGVybWlzc2lvbiBmb3IgYSBzaXRlIGZyb20gdGhlIHVz
ZXIuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4pOiBDaGVja3MgdGhlIGNsaWVudApmb3IgcGVybWlzc2lvbiB0byBhY2Nlc3Mg
Y2FwdHVyZSBkZXZpY2VzLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCnNlc3Npb24g
YmVnaW5uaW5nLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkRW5kQ2FwdHVyZVNl
c3Npb24pOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGVuZGluZy4K
CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UpOiBDYWxscyBVSURlbGVnYXRlIG1ldGhvZCB0byBub3RpZnkg
dGhlCmNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgotLS0KIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCAgICAgICAg
IHwgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAg
ICAgIHwgICA0ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tICAgIHwgICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmggICAgICAgIHwgICA4ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSAgICAgICB8IDE0MCArKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICA4ICsrCiA4IGZpbGVz
IGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQxOTNjNzAuLjQyZWEw
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxNi0xMS0yOCAgQW5kcmV3IEdvbGQg
IDxhZ29sZEBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0
dXJlIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biBvcmRlciB0byBlbmFibGUgbWVkaWEgY2FwdHVyZSBvbiBpT1MsIHdlIG11c3QgZmlyc3QgdXNl
IHRoZSBBVkZvdW5kYXRpb24gQVBJIHRvIAorICAgICAgICBjaGVjay9yZXF1ZXN0IGNhcHR1cmUg
cGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIGZvciBTYWZhcmkuIFRoZW4sIFNhZmFyaSBtdXN0IHJl
cXVlc3QKKyAgICAgICAgcGVybWlzc2lvbiBvbiBiZWhhbGYgb2YgdGhlIHdlYnBhZ2UgdG8gdXNl
IHRoZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxseSwgU2FmYXJpCisgICAgICAgIG11c3Qg
cHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzIHRha2luZyBwbGFjZSwgc28gV2ViS2l0IG5l
ZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50CisgICAgICAgIG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJl
Z2lubmluZyBhbmQgZW5kaW5nLiBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhvZHMgdG8g
CisgICAgICAgIFdLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CisgICAgICAgIHRoYXQgYSBj
YXB0dXJlIHNlc3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Np
b24gaGFzIGVuZGVkLiBBZGRpdGlvbmFsbHksCisgICAgICAgIHdlIGFkZGVkIGEgcHJpdmF0ZSBt
ZXRob2QgdG8gV0tXZWJWaWV3IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1
cmUgc2Vzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAg
ICAgICAgKEFQSTo6VUlDbGllbnQ6OmRpZEJlZ2luQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0
aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZy4KKyAgICAgICAgKEFQSTo6
VUlDbGllbnQ6OmRpZEVuZENhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBh
IGNhcHR1cmUgc2Vzc2lvbiBlbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQgbmV3IGRlbGVnYXRlIG1ldGhvZHMgdG8gcmVx
dWVzdCBwZXJtaXNzaW9uLAorICAgICAgICBjaGVjayBmb3IgcGVybWlzc2lvbiwgbm90aWZ5IG9m
IGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZywgYW5kIG5vdGlmeSBvZiBhIGNhcHR1cmUgc2Vz
c2lvbgorICAgICAgICBlbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXSk6IENh
bmNlbHMgYSBtZWRpYSBjYXB0dXJlIHNlc3Npb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAg
ICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6IEFkZGVkIHRoZSBuZXcgZGVs
ZWdhdGUgbWV0aG9kcy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgRmlyc3Qg
Y2hlY2tzIGlmIHRoZSB1c2VyIGhhcyBhdXRob3JpemVkIHRoZSBjbGllbnQgYXBwbGljYXRpb24g
YWNjZXNzIGNhcHR1cmUgZGV2aWNlcywKKyAgICAgICAgdGhlbiB1c2VzIHRoZSBXS1VJRGVsZWdh
dGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZvciBhIHNpdGUgZnJvbSB0aGUgdXNlci4KKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbik6IENoZWNrcyB0aGUgY2xpZW50CisgICAgICAgIGZvciBwZXJtaXNzaW9uIHRv
IGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBh
IGNhcHR1cmUKKyAgICAgICAgc2Vzc2lvbiBiZWdpbm5pbmcuCisgICAgICAgIChXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBj
bGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Npb24gZW5kaW5nLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOiBDYWxscyBVSURlbGVnYXRlIG1ldGhvZCB0byBu
b3RpZnkgdGhlCisgICAgICAgIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcv
ZW5kaW5nLgorCQkKIDIwMTYtMTEtMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZWQgYSBXVEZMb2dBbHdheXMgSSBsZWZ0IGluIHdpdGggYSByZWNlbnQg
Y29tbWl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4
IGZmNThlZTguLjkxODZkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBp
bm5lZFN0YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbigpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRFbmRDYXB0dXJlU2Vzc2lvbigpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT04pCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdl
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSop
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCAzZjNiMGY5Li45YjM0MTNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaApAQCAtNjAsNiArNjAsMTAgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFu
Z2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7CiAtIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOihCT09MKW1pY3JvcGhvbmUgY2FtZXJhOihC
T09MKWNhbWVyYSB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25l
LCBCT09MIGF1dGhvcml6ZWRDYW1lcmEpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmll
cjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93
ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3dlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKICNpZiBUQVJH
RVRfT1NfSVBIT05FCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3Vs
ZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
ICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKE5TQXJyYXkgKilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRB
Y3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOWU5MGFiYS4uZjgzMjIyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQwNDAs
NiArNDA0MCwxMSBAQCAtIChCT09MKV9pc0luRnVsbHNjcmVlbgogI2VuZGlmCiB9CiAKKy0gKHZv
aWQpX3N0b3BNZWRpYUNhcHR1cmUKK3sKKyAgICBfcGFnZS0+c2V0TXV0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6Q2FwdHVyZURldmljZXNBcmVNdXRlZCk7Cit9CisKICNwcmFnbWEgbWFyayBp
T1Mtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBh
NGE4YjUxLi45ZDk1YTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjU4LDYgKzI1OCw4IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxlZ2F0ZTopIGlkPF9XS0Z1bGxzY3Jl
ZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNj
cmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKKy0gKHZvaWQpX3N0
b3BNZWRpYUNhcHR1cmU7CisKIEBlbmQKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBkNDlkZTJiLi4yMGMy
MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAg
LTg5LDYgKzg5LDEwIEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29s
IHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJyaWRlOwogI2VuZGlmCisgICAgICAgIGJv
b2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSYpIG92ZXJyaWRlOworICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEJlZ2lu
Q2FwdHVyZVNlc3Npb24oKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRFbmRDYXB0dXJlU2Vz
c2lvbigpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdl
UHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJ
T1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCkBAIC0xMzAsNiArMTM0LDEwIEBAIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RpZEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVj
aXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyIDog
MTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA6IDE7CisgICAg
ICAgIGJvb2wgd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uIDogMTsKICNpZiBQTEFURk9STShJ
T1MpCiAjaWYgSEFWRShBUFBfTElOS1MpCiAgICAgICAgIGJvb2wgd2ViVmlld1Nob3VsZEluY2x1
ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCAwYWJlODg5Li5hMDhlOTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzAsNiArMzAsOCBA
QAogCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJO
YXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaCIKKyNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNp
bXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkFjdGlv
bkludGVybmFsLmgiCiAjaW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgpA
QCAtNDYsNiArNDgsMTcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9B
VkNhcHR1cmVEZXZpY2UuaD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhRm9ybWF0Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUkso
QVZGb3VuZGF0aW9uKTsKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURl
dmljZSk7CitTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlv
LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFU
eXBlVmlkZW8sIE5TU3RyaW5nICopOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBV
SURlbGVnYXRlOjpVSURlbGVnYXRlKFdLV2ViVmlldyAqd2ViVmlldykKQEAgLTEwMSw2ICsxMTQs
MTAgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxl
Z2F0ZSkKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxl
bWVudERlZmF1bHRBY3Rpb25zID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6YWN0aW9uc0ZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxl
VGFwQXNDbGlja0F0UG9pbnQ6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVSTE1haW5GcmFtZVVS
TERlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpjYW1l
cmE6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZy
YW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWlu
RnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjop
XTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24gPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1
cmVTZXNzaW9uOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJv
bGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRpZgogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLmRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZp
ZXc6KV07CkBAIC0zMDMsNiArMzIwLDEyOSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpy
dW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQog
I2VuZGlmCiAKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVy
KSB7CisgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCByZXF1aXJlc0F1ZGlvID0gcmVxdWVz
dC5yZXF1aXJlc0F1ZGlvKCk7CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvID0gcmVxdWVzdC5yZXF1
aXJlc1ZpZGVvKCk7CisgICAgaWYgKCFyZXF1aXJlc0F1ZGlvICYmICFyZXF1aXJlc1ZpZGVvKSB7
CisgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpV
c2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBfX2Jsb2NrIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXc7CisgICAgdm9pZCAoXnVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxv
Y2spKHZvaWQpID0gXiB7CisgICAgICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9
IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0
RnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICAgICAgV2ViQ29yZTo6
VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAg
ICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmll
dyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6cmVxdWlyZXNBdWRp
byBjYW1lcmE6cmVxdWlyZXNWaWRlbyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOl4oQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwg
Qk9PTCBhdXRob3JpemVkQ2FtZXJhKSB7CisgICAgICAgICAgICBpZiAoKHJlcXVpcmVzQXVkaW8g
IT0gYXV0aG9yaXplZE1pY3JvcGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRD
YW1lcmEpKSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRl
bmllZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCA9IHJlcXVpcmVzVmlkZW8gPyByZXF1ZXN0
LnZpZGVvRGV2aWNlVUlEcygpLmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQgPSByZXF1aXJlc0F1ZGlvID8gcmVxdWVzdC5hdWRpb0Rl
dmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICByZXF1ZXN0LmFsbG93
KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CisgICAgICAgIH1dOworICAgIH07CisK
KyNpZiBQTEFURk9STShJT1MpCisgICAgdm9pZCAoXmNhbWVyYUF1dGhvcml6YXRpb25CbG9jayko
dm9pZCkgPSBeIHsKKyAgICAgICAgaWYgKHJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgICAgIEFW
QXV0aG9yaXphdGlvblN0YXR1cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gW2dldEFWQ2Fw
dHVyZURldmljZUNsYXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1l
ZGlhVHlwZVZpZGVvKCldOworICAgICAgICAgICAgc3dpdGNoIChjYW1lcmFBdXRob3JpemF0aW9u
U3RhdHVzKSB7CisgICAgICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoK
KyAgICAgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c05v
dERldGVybWluZWQ6CisgICAgICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkg
cmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY29tcGxldGlv
bkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFh
dXRob3JpemVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQ
ZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXph
dGlvbkJsb2NrKCk7CisgICAgICAgICAgICAgICAgfV07CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVBdXRob3Jp
emF0aW9uQmxvY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgfTsKKworICAgIGlmIChyZXF1
aXJlc0F1ZGlvKSB7CisgICAgICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBtaWNyb3Bob25lQXV0
aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRp
b25TdGF0dXNGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpXTsKKyAgICAgICAgc3dp
dGNoIChtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cykgeworICAgICAgICBjYXNlIEFWQXV0
aG9yaXphdGlvblN0YXR1c0RlbmllZDoKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0
dXNSZXN0cmljdGVkOgorICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRl
bmllZCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6
YXRpb25TdGF0dXNOb3REZXRlcm1pbmVkOgorICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmlj
ZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZUF1ZGlvKCkg
Y29tcGxldGlvbkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIWF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6
UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7Cisg
ICAgICAgICAgICB9XTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgIH0KKyAgICB9IGVs
c2UKKyAgICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVs
ZWdhdGVBdXRob3JpemF0aW9uQmxvY2soKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJh
bWVVUkxGcmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5z
ZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKFN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dl
YlZpZXc7CisgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgp
LT5tYWluRnJhbWUoKTsKKyAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdEZyYW1lVVJMKFdlYkNvcmU6
OlVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJD
b3JlOjpVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzYWx0
LCBCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKFN0cmluZyhzYWx0KSwgYXV0aG9yaXplZCk7CisgICAgfV07CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJlU2Vzc2lv
bigpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
OworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgWyhp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVT
ZXNzaW9uOm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXddOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbigpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRl
IF93ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246bV91aURlbGVnYXRlLm1fd2ViVmlld107Cit9
CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNl
Y3VyaXR5T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNO
ZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1
b3RhVG90YWxCeXRlc05lZWRlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCA2Nzc1OWRiLi5lM2M5NDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjQwOSw2ICs2NDA5LDE0IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUsCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlh
U3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gbV9tZWRpYVN0YXRlICYgKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSB8IFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICA7CisgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJl
ID0gc3RhdGUgJiAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlIHwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKTsKKyAgICBpZiAoIW9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmIG5ld01lZGlh
U3RhdGVIYXNBY3RpdmVDYXB0dXJlKQorICAgICAgICBtX3VpQ2xpZW50LT5kaWRCZWdpbkNhcHR1
cmVTZXNzaW9uKCk7CisgICAgaWYgKG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmICFu
ZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSkKKyAgICAgICAgbV91aUNsaWVudC0+ZGlkRW5k
Q2FwdHVyZVNlc3Npb24oKTsKKwogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBw
bGF5aW5nTWVkaWFNYXNrID0gTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8gfCBNZWRpYVBy
b2R1Y2VyOjpJc1BsYXlpbmdWaWRlbzsKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgb2xkU3RhdGUgPSBtX21lZGlhU3RhdGU7CiAgICAgbV9tZWRpYVN0YXRlID0gc3RhdGU7Ci0t
IAoyLjEwLjEgKEFwcGxlIEdpdC03OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295508</attachid>
            <date>2016-11-28 12:01:33 -0800</date>
            <delta_ts>2016-11-28 12:07:57 -0800</delta_ts>
            <desc>Fixed Patch.</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>21050</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA2MTMyMDRmZTVkZTFkMjM2ODE5N2E0ZTE4YWU5MTRlOGNlOWMzYTJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDI4IE5vdiAyMDE2IDEwOjU4OjM0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgoKSW4gb3JkZXIgdG8gZW5h
YmxlIG1lZGlhIGNhcHR1cmUgb24gaU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0
aW9uIEFQSSB0bwpjaGVjay9yZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2Vy
IGZvciBTYWZhcmkuIFRoZW4sIFNhZmFyaSBtdXN0IHJlcXVlc3QKcGVybWlzc2lvbiBvbiBiZWhh
bGYgb2YgdGhlIHdlYnBhZ2UgdG8gdXNlIHRoZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxs
eSwgU2FmYXJpCm11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzIHRha2luZyBwbGFj
ZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50Cm9mIGEgY2FwdHVyZSBzZXNz
aW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLiBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhv
ZHMgdG8KV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciwgY2hlY2sgZm9yIHBlcm1pc3Npb25zLCBub3RpZnkKdGhhdCBhIGNhcHR1cmUgc2Vzc2lv
biBoYXMgYmVndW4sIGFuZCBub3RpZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgZW5kZWQu
IEFkZGl0aW9uYWxseSwKd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhvZCB0byBXS1dlYlZpZXcgdGhh
dCBhbGxvd3MgdGhlIGNsaWVudCB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgoKKiBVSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50Lmg6CihBUEk6OlVJQ2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNz
aW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcu
CihBUEk6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGll
bnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gZW5kaW5nLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQgbmV3IGRlbGVnYXRlIG1ldGhvZHMgdG8gcmVxdWVz
dCBwZXJtaXNzaW9uLApjaGVjayBmb3IgcGVybWlzc2lvbiwgbm90aWZ5IG9mIGEgY2FwdHVyZSBz
ZXNzaW9uIGJlZ2lubmluZywgYW5kIG5vdGlmeSBvZiBhIGNhcHR1cmUgc2Vzc2lvbgplbmRpbmcu
CgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BN
ZWRpYUNhcHR1cmVdKTogQ2FuY2VscyBhIG1lZGlhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUpOiBBZGRlZCB0aGUgbmV3IGRlbGVnYXRlIG1ldGhvZHMuCihXZWJL
aXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CkZpcnN0IGNoZWNrcyBpZiB0aGUgdXNlciBoYXMgYXV0aG9yaXplZCB0aGUg
Y2xpZW50IGFwcGxpY2F0aW9uIGFjY2VzcyBjYXB0dXJlIGRldmljZXMsCnRoZW4gdXNlcyB0aGUg
V0tVSURlbGVnYXRlIHRvIHJlcXVlc3QgcGVybWlzc2lvbiBmb3IgYSBzaXRlIGZyb20gdGhlIHVz
ZXIuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4pOiBDaGVja3MgdGhlIGNsaWVudApmb3IgcGVybWlzc2lvbiB0byBhY2Nlc3Mg
Y2FwdHVyZSBkZXZpY2VzLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCnNlc3Npb24g
YmVnaW5uaW5nLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkRW5kQ2FwdHVyZVNl
c3Npb24pOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGVuZGluZy4K
CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UpOiBDYWxscyBVSURlbGVnYXRlIG1ldGhvZCB0byBub3RpZnkg
dGhlCmNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgotLS0KIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCAgICAgICAg
IHwgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAg
ICAgIHwgICA0ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tICAgIHwgICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmggICAgICAgIHwgICA4ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSAgICAgICB8IDE0MCArKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICA3ICsrCiA4IGZpbGVz
IGNoYW5nZWQsIDIxMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQxOTNjNzAuLjM2ZWNj
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxNi0xMS0yOCAgQW5kcmV3IEdvbGQg
IDxhZ29sZEBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0
dXJlIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biBvcmRlciB0byBlbmFibGUgbWVkaWEgY2FwdHVyZSBvbiBpT1MsIHdlIG11c3QgZmlyc3QgdXNl
IHRoZSBBVkZvdW5kYXRpb24gQVBJIHRvIAorICAgICAgICBjaGVjay9yZXF1ZXN0IGNhcHR1cmUg
cGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIGZvciBTYWZhcmkuIFRoZW4sIFNhZmFyaSBtdXN0IHJl
cXVlc3QKKyAgICAgICAgcGVybWlzc2lvbiBvbiBiZWhhbGYgb2YgdGhlIHdlYnBhZ2UgdG8gdXNl
IHRoZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxseSwgU2FmYXJpCisgICAgICAgIG11c3Qg
cHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzIHRha2luZyBwbGFjZSwgc28gV2ViS2l0IG5l
ZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50CisgICAgICAgIG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJl
Z2lubmluZyBhbmQgZW5kaW5nLiBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhvZHMgdG8g
CisgICAgICAgIFdLVUlEZWxlZ2F0ZVByaXZhdGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20g
dGhlIHVzZXIsIGNoZWNrIGZvciBwZXJtaXNzaW9ucywgbm90aWZ5CisgICAgICAgIHRoYXQgYSBj
YXB0dXJlIHNlc3Npb24gaGFzIGJlZ3VuLCBhbmQgbm90aWZ5IHRoYXQgYSBjYXB0dXJlIHNlc3Np
b24gaGFzIGVuZGVkLiBBZGRpdGlvbmFsbHksCisgICAgICAgIHdlIGFkZGVkIGEgcHJpdmF0ZSBt
ZXRob2QgdG8gV0tXZWJWaWV3IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQgdG8gc3RvcCBhIGNhcHR1
cmUgc2Vzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAg
ICAgICAgKEFQSTo6VUlDbGllbnQ6OmRpZEJlZ2luQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0
aGUgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZy4KKyAgICAgICAgKEFQSTo6
VUlDbGllbnQ6OmRpZEVuZENhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBh
IGNhcHR1cmUgc2Vzc2lvbiBlbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQgbmV3IGRlbGVnYXRlIG1ldGhvZHMgdG8gcmVx
dWVzdCBwZXJtaXNzaW9uLAorICAgICAgICBjaGVjayBmb3IgcGVybWlzc2lvbiwgbm90aWZ5IG9m
IGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZywgYW5kIG5vdGlmeSBvZiBhIGNhcHR1cmUgc2Vz
c2lvbgorICAgICAgICBlbmRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXSk6IENh
bmNlbHMgYSBtZWRpYSBjYXB0dXJlIHNlc3Npb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAg
ICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6IEFkZGVkIHRoZSBuZXcgZGVs
ZWdhdGUgbWV0aG9kcy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgRmlyc3Qg
Y2hlY2tzIGlmIHRoZSB1c2VyIGhhcyBhdXRob3JpemVkIHRoZSBjbGllbnQgYXBwbGljYXRpb24g
YWNjZXNzIGNhcHR1cmUgZGV2aWNlcywKKyAgICAgICAgdGhlbiB1c2VzIHRoZSBXS1VJRGVsZWdh
dGUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIGZvciBhIHNpdGUgZnJvbSB0aGUgdXNlci4KKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbik6IENoZWNrcyB0aGUgY2xpZW50CisgICAgICAgIGZvciBwZXJtaXNzaW9uIHRv
IGFjY2VzcyBjYXB0dXJlIGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBh
IGNhcHR1cmUKKyAgICAgICAgc2Vzc2lvbiBiZWdpbm5pbmcuCisgICAgICAgIChXZWJLaXQ6OlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBj
bGllbnQgb2YgYSBjYXB0dXJlCisgICAgICAgIHNlc3Npb24gZW5kaW5nLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOiBDYWxscyBVSURlbGVnYXRlIG1ldGhvZCB0byBu
b3RpZnkgdGhlCisgICAgICAgIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcv
ZW5kaW5nLgorCiAyMDE2LTExLTI3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmVkIGEgV1RGTG9nQWx3YXlzIEkgbGVmdCBpbiB3aXRoIGEgcmVjZW50IGNv
bW1pdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBm
ZjU4ZWU4Li45MTg2ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCkBAIC0xNTAsNiArMTUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwaW5u
ZWRTdGF0ZURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVh
bCB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luQ2FwdHVyZVNlc3Npb24oKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kQ2FwdHVyZVNlc3Npb24oKSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEqKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmgKaW5kZXggM2YzYjBmOS4uOWIzNDEzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmgKQEAgLTYwLDYgKzYwLDEwIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdl
ZDooQ0dTaXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwogLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVk
aWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTooQk9PTCltaWNyb3Bob25lIGNhbWVyYTooQk9P
TCljYW1lcmEgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1l
VVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwg
Qk9PTCBhdXRob3JpemVkQ2FtZXJhKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwg
Kil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6
KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNT
dHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2Vi
Vmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93
ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAjaWYgVEFSR0VU
X09TX0lQSE9ORQogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJ
bmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CiAtIChOU0FycmF5ICopX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICopZWxlbWVudCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0
aW9uICo+ICopZGVmYXVsdEFjdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDllOTBhYmEuLmY4MzIyMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00MDQwLDYg
KzQwNDAsMTEgQEAgLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KICNlbmRpZgogfQogCistICh2b2lk
KV9zdG9wTWVkaWFDYXB0dXJlCit7CisgICAgX3BhZ2UtPnNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6OkNhcHR1cmVEZXZpY2VzQXJlTXV0ZWQpOworfQorCiAjcHJhZ21hIG1hcmsgaU9T
LXNwZWNpZmljIG1ldGhvZHMKIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYTRh
OGI1MS4uOWQ5NWE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI1OCw2ICsyNTgsOCBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVu
RGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3Jl
ZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCistICh2b2lkKV9zdG9w
TWVkaWFDYXB0dXJlOworCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggZDQ5ZGUyYi4uMjBjMjEw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC04
OSw2ICs4OSwxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBy
dW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSBvdmVycmlkZTsKICNlbmRpZgorICAgICAgICBib29s
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkmKSBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRCZWdpbkNh
cHR1cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRW5kQ2FwdHVyZVNlc3Np
b24oKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVBy
b3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Kikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9T
KQogI2lmIEhBVkUoQVBQX0xJTktTKQpAQCAtMTMwLDYgKzEzNCwxMCBAQCBwcml2YXRlOgogICAg
ICAgICBib29sIHdlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwogICAgICAg
ICBib29sIHdlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4gOiAxOwogICAgICAgICBib29sIHdlYlZp
ZXdEaWRFeGl0RnVsbHNjcmVlbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVSTE1haW5GcmFtZVVSTERlY2lz
aW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRlbnRpZmllckRlY2lzaW9uSGFuZGxlciA6IDE7
CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gOiAxOworICAgICAg
ICBib29sIHdlYlZpZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbiA6IDE7CiAjaWYgUExBVEZPUk0oSU9T
KQogI2lmIEhBVkUoQVBQX0xJTktTKQogICAgICAgICBib29sIHdlYlZpZXdTaG91bGRJbmNsdWRl
QXBwTGlua0FjdGlvbnNGb3JFbGVtZW50IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMGFiZTg4OS4uYTA4ZTk5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTMwLDYgKzMwLDggQEAK
IAogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaCIKKyNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgiCisjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW1w
b3J0ICJXS0ZyYW1lSW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS05hdmlnYXRpb25BY3Rpb25J
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tPcGVuUGFuZWxQYXJhbWV0ZXJzSW50ZXJuYWwuaCIKQEAg
LTQ2LDYgKzQ4LDE3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8d3RmL0Js
b2NrUHRyLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZD
YXB0dXJlRGV2aWNlLmg+CisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYUZvcm1hdC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKEFW
Rm91bmRhdGlvbik7CitTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZp
Y2UpOworU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVBdWRpbywg
TlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlw
ZVZpZGVvLCBOU1N0cmluZyAqKTsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogVUlE
ZWxlZ2F0ZTo6VUlEZWxlZ2F0ZShXS1dlYlZpZXcgKndlYlZpZXcpCkBAIC0xMDEsNiArMTE0LDEw
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdh
dGUpCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QWN0aW9uc0ZvckVsZW1l
bnREZWZhdWx0QWN0aW9ucyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmFjdGlvbnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhhbmRsZVRh
cEFzQ2xpY2tBdFBvaW50OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmVDYW1lcmFVUkxNYWluRnJhbWVVUkxE
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6Y2FtZXJh
OnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxGcmFt
ZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZy
YW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb246KV07
CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFbmRDYXB0dXJl
U2Vzc2lvbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAjZW5kaWYKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy5kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3
OildOwpAQCAtMzAzLDYgKzMyMCwxMjkgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVu
T3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIKIH0KICNl
bmRpZgogCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2lu
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2VyTWVkaWFBdXRob3Jp
emF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVSTE1haW5GcmFtZVVSTERlY2lzaW9uSGFuZGxlcikg
eworICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNBdWRpbyA9IHJlcXVlc3Qu
cmVxdWlyZXNBdWRpbygpOworICAgIGJvb2wgcmVxdWlyZXNWaWRlbyA9IHJlcXVlc3QucmVxdWly
ZXNWaWRlbygpOworICAgIGlmICghcmVxdWlyZXNBdWRpbyAmJiAhcmVxdWlyZXNWaWRlbykgewor
ICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgX19ibG9jayBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVs
ZWdhdGUubV93ZWJWaWV3OworICAgIHZvaWQgKF51aURlbGVnYXRlQXV0aG9yaXphdGlvbkJsb2Nr
KSh2b2lkKSA9IF4geworICAgICAgICBjb25zdCBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBm
cmFtZS5wYWdlKCktPm1haW5GcmFtZSgpOworICAgICAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdEZy
YW1lVVJMKFdlYkNvcmU6OlVSTCgpLCBmcmFtZS51cmwoKSk7CisgICAgICAgIFdlYkNvcmU6OlVS
TCBtYWluRnJhbWVVUkwoV2ViQ29yZTo6VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAg
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOnJlcXVpcmVzQXVkaW8g
Y2FtZXJhOnJlcXVpcmVzVmlkZW8gdXJsOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFp
bkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpeKEJPT0wgYXV0aG9yaXplZE1pY3JvcGhvbmUsIEJP
T0wgYXV0aG9yaXplZENhbWVyYSkgeworICAgICAgICAgICAgaWYgKChyZXF1aXJlc0F1ZGlvICE9
IGF1dGhvcml6ZWRNaWNyb3Bob25lKSB8fCAocmVxdWlyZXNWaWRlbyAhPSBhdXRob3JpemVkQ2Ft
ZXJhKSkgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5p
ZWQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQgPSByZXF1aXJlc1ZpZGVvID8gcmVxdWVzdC52
aWRlb0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICBjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlVUlEID0gcmVxdWlyZXNBdWRpbyA/IHJlcXVlc3QuYXVkaW9EZXZp
Y2VVSURzKCkuZmlyc3QoKSA6IFN0cmluZygpOworICAgICAgICAgICAgcmVxdWVzdC5hbGxvdyhh
dWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOworICAgICAgICB9XTsKKyAgICB9OworCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgKF5jYW1lcmFBdXRob3JpemF0aW9uQmxvY2spKHZv
aWQpID0gXiB7CisgICAgICAgIGlmIChyZXF1aXJlc1ZpZGVvKSB7CisgICAgICAgICAgICBBVkF1
dGhvcml6YXRpb25TdGF0dXMgY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1
cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6Z2V0QVZNZWRp
YVR5cGVWaWRlbygpXTsKKyAgICAgICAgICAgIHN3aXRjaCAoY2FtZXJhQXV0aG9yaXphdGlvblN0
YXR1cykgeworICAgICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNEZW5pZWQ6Cisg
ICAgICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c1Jlc3RyaWN0ZWQ6CisgICAgICAg
ICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNOb3RE
ZXRlcm1pbmVkOgorICAgICAgICAgICAgICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJl
cXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVWaWRlbygpIGNvbXBsZXRpb25I
YW5kbGVyOl4oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghYXV0
aG9yaXplZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVy
bWlzc2lvbkRlbmllZCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdWlEZWxlZ2F0ZUF1dGhvcml6YXRp
b25CbG9jaygpOworICAgICAgICAgICAgICAgIH1dOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXph
dGlvbkJsb2NrKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
dWlEZWxlZ2F0ZUF1dGhvcml6YXRpb25CbG9jaygpOworICAgIH07CisKKyAgICBpZiAocmVxdWly
ZXNBdWRpbykgeworICAgICAgICBBVkF1dGhvcml6YXRpb25TdGF0dXMgbWljcm9waG9uZUF1dGhv
cml6YXRpb25TdGF0dXMgPSBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBhdXRob3JpemF0aW9u
U3RhdHVzRm9yTWVkaWFUeXBlOmdldEFWTWVkaWFUeXBlQXVkaW8oKV07CisgICAgICAgIHN3aXRj
aCAobWljcm9waG9uZUF1dGhvcml6YXRpb25TdGF0dXMpIHsKKyAgICAgICAgY2FzZSBBVkF1dGhv
cml6YXRpb25TdGF0dXNEZW5pZWQ6CisgICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVz
UmVzdHJpY3RlZDoKKyAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5p
ZWQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQVZBdXRob3JpemF0
aW9uU3RhdHVzTm90RGV0ZXJtaW5lZDoKKyAgICAgICAgICAgIFtnZXRBVkNhcHR1cmVEZXZpY2VD
bGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpIGNv
bXBsZXRpb25IYW5kbGVyOl4oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFhdXRob3JpemVkKSB7CisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBl
cm1pc3Npb25EZW5pZWQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygpOworICAg
ICAgICAgICAgfV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygpOworICAgICAgICB9CisgICAgfSBlbHNl
CisgICAgICAgIGNhbWVyYUF1dGhvcml6YXRpb25CbG9jaygpOworI2Vsc2UKKyAgICB1aURlbGVn
YXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYg
ZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkmIHJlcXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2Rl
bGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMTWFpbkZyYW1l
VVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyKSB7CisgICAgICAgIHJlcXVlc3Quc2V0
VXNlck1lZGlhQWNjZXNzSW5mbyhTdHJpbmcoKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSBtX3VpRGVsZWdhdGUubV93ZWJW
aWV3OworICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKS0+
bWFpbkZyYW1lKCk7CisgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RGcmFtZVVSTChXZWJDb3JlOjpV
UkwoKSwgZnJhbWUudXJsKCkpOworICAgIFdlYkNvcmU6OlVSTCBtYWluRnJhbWVVUkwoV2ViQ29y
ZTo6VVJMKCksIG1haW5GcmFtZS0+dXJsKCkpOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVu
dGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6XihOU1N0cmluZyAqc2FsdCwg
Qk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgIHJlcXVlc3Quc2V0VXNlck1lZGlhQWNjZXNzSW5m
byhTdHJpbmcoc2FsdCksIGF1dGhvcml6ZWQpOworICAgIH1dOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZEJlZ2luQ2FwdHVyZVNlc3Npb24o
KQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsK
KyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEJlZ2luQ2FwdHVyZVNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIFsoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vz
c2lvbjptX3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKK30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6ZGlkRW5kQ2FwdHVyZVNlc3Npb24oKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVs
ZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uOm1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXddOworfQor
CiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1
cml0eU9yaWdpbiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVl
ZGVkLCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90
YVRvdGFsQnl0ZXNOZWVkZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggNjc3NTlkYi4uMmM3OWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY0MDksNiArNjQwOSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHN0YXRlLAogICAgIGlmIChzdGF0ZSA9PSBtX21lZGlhU3RhdGUpCiAgICAgICAgIHJldHVybjsK
IAorICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYVN0
YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IG1fbWVkaWFTdGF0ZSAmIChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgfCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSA9IHN0YXRl
ICYgKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSB8
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7Cisg
ICAgaWYgKCFvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiBuZXdNZWRpYVN0YXRlSGFz
QWN0aXZlQ2FwdHVyZSkKKyAgICAgICAgbV91aUNsaWVudC0+ZGlkQmVnaW5DYXB0dXJlU2Vzc2lv
bigpOworICAgIGlmIChvbGRNZWRpYVN0YXRlSGFzQWN0aXZlQ2FwdHVyZSAmJiAhbmV3TWVkaWFT
dGF0ZUhhc0FjdGl2ZUNhcHR1cmUpCisgICAgICAgIG1fdWlDbGllbnQtPmRpZEVuZENhcHR1cmVT
ZXNzaW9uKCk7CisKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01l
ZGlhTWFzayA9IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvIHwgTWVkaWFQcm9kdWNlcjo6
SXNQbGF5aW5nVmlkZW87CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0
YXRlID0gbV9tZWRpYVN0YXRlOwogICAgIG1fbWVkaWFTdGF0ZSA9IHN0YXRlOwotLSAKMi4xMC4x
IChBcHBsZSBHaXQtNzgpCgo=
</data>
<flag name="commit-queue"
          id="318070"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295510</attachid>
            <date>2016-11-28 12:07:57 -0800</date>
            <delta_ts>2016-11-28 12:47:02 -0800</delta_ts>
            <desc>Fixed Patch.</desc>
            <filename>0001-Support-for-HTML-Media-Capture-API.patch</filename>
            <type>text/plain</type>
            <size>21046</size>
            <attacher name="Andrew Gold">agold</attacher>
            
              <data encoding="base64">RnJvbSA1N2I0MjgwZjRkZjE3ZTg2NTYwMTNmOGQ4NmE5ODdlYjkyNDkxMjVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgR29sZCA8YWdvbGRAYXBwbGUuY29tPgpEYXRlOiBN
b24sIDI4IE5vdiAyMDE2IDEwOjU4OjM0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBm
b3IgSFRNTCBNZWRpYSBDYXB0dXJlIEFQSQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMjM5CgpSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgoKSW4gb3JkZXIgdG8gZW5h
YmxlIG1lZGlhIGNhcHR1cmUgb24gaU9TLCB3ZSBtdXN0IGZpcnN0IHVzZSB0aGUgQVZGb3VuZGF0
aW9uIEFQSSB0bwpjaGVjay9yZXF1ZXN0IGNhcHR1cmUgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2Vy
IGZvciBTYWZhcmkuIFRoZW4sIFNhZmFyaSBtdXN0IHJlcXVlc3QKcGVybWlzc2lvbiBvbiBiZWhh
bGYgb2YgdGhlIHdlYnBhZ2UgdG8gdXNlIHRoZSBjYXB0dXJlIGRldmljZXMuIEFkZGl0aW9uYWxs
eSwgU2FmYXJpCm11c3QgcHJlc2VudCBVSSB3aGVuIHRoZSBjYXB0dXJlIGlzIHRha2luZyBwbGFj
ZSwgc28gV2ViS2l0IG5lZWRzIHRvIG5vdGlmeSB0aGUgY2xpZW50Cm9mIGEgY2FwdHVyZSBzZXNz
aW9uIGJlZ2lubmluZyBhbmQgZW5kaW5nLiBUbyBkbyB0aGlzLCB3ZSBhZGRlZCBmb3VyIG1ldGhv
ZHMgdG8KV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciwgY2hlY2sgZm9yIHBlcm1pc3Npb25zLCBub3RpZnkKdGhhdCBhIGNhcHR1cmUgc2Vzc2lv
biBoYXMgYmVndW4sIGFuZCBub3RpZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBoYXMgZW5kZWQu
IEFkZGl0aW9uYWxseSwKd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhvZCB0byBXS1dlYlZpZXcgdGhh
dCBhbGxvd3MgdGhlIGNsaWVudCB0byBzdG9wIGEgY2FwdHVyZSBzZXNzaW9uLgoKKiBVSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50Lmg6CihBUEk6OlVJQ2xpZW50OjpkaWRCZWdpbkNhcHR1cmVTZXNz
aW9uKTogTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcu
CihBUEk6OlVJQ2xpZW50OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGll
bnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gZW5kaW5nLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaDogQWRkZWQgbmV3IGRlbGVnYXRlIG1ldGhvZHMgdG8gcmVxdWVz
dCBwZXJtaXNzaW9uLApjaGVjayBmb3IgcGVybWlzc2lvbiwgbm90aWZ5IG9mIGEgY2FwdHVyZSBz
ZXNzaW9uIGJlZ2lubmluZywgYW5kIG5vdGlmeSBvZiBhIGNhcHR1cmUgc2Vzc2lvbgplbmRpbmcu
CgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgooLVtXS1dlYlZpZXcgX3N0b3BN
ZWRpYUNhcHR1cmVdKTogQ2FuY2VscyBhIG1lZGlhIGNhcHR1cmUgc2Vzc2lvbi4KKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKCiogVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaDoKKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUpOiBBZGRlZCB0aGUgbmV3IGRlbGVnYXRlIG1ldGhvZHMuCihXZWJL
aXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CkZpcnN0IGNoZWNrcyBpZiB0aGUgdXNlciBoYXMgYXV0aG9yaXplZCB0aGUg
Y2xpZW50IGFwcGxpY2F0aW9uIGFjY2VzcyBjYXB0dXJlIGRldmljZXMsCnRoZW4gdXNlcyB0aGUg
V0tVSURlbGVnYXRlIHRvIHJlcXVlc3QgcGVybWlzc2lvbiBmb3IgYSBzaXRlIGZyb20gdGhlIHVz
ZXIuCihXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4pOiBDaGVja3MgdGhlIGNsaWVudApmb3IgcGVybWlzc2lvbiB0byBhY2Nlc3Mg
Y2FwdHVyZSBkZXZpY2VzLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQmVnaW5D
YXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBjYXB0dXJlCnNlc3Npb24g
YmVnaW5uaW5nLgooV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkRW5kQ2FwdHVyZVNl
c3Npb24pOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2FwdHVyZQpzZXNzaW9uIGVuZGluZy4K
CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UpOiBDYWxscyBVSURlbGVnYXRlIG1ldGhvZCB0byBub3RpZnkg
dGhlCmNsaWVudCBvZiBhIGNhcHR1cmUgc2Vzc2lvbiBiZWdpbm5pbmcvZW5kaW5nLgotLS0KIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCAgICAgICAg
IHwgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCAg
ICAgIHwgICA0ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tICAgIHwgICA1ICsKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmggICAgICAgIHwgICA4ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSAgICAgICB8IDE0MCArKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICA3ICsrCiA4IGZpbGVz
IGNoYW5nZWQsIDIxMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQxOTNjNzAuLjE2NThh
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxNi0xMS0yOCAgQW5kcmV3IEdvbGQg
IDxhZ29sZEBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTCBNZWRpYSBDYXB0
dXJlIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEluIG9y
ZGVyIHRvIGVuYWJsZSBtZWRpYSBjYXB0dXJlIG9uIGlPUywgd2UgbXVzdCBmaXJzdCB1c2UgdGhl
IEFWRm91bmRhdGlvbiBBUEkgdG8gCisgICAgICAgIGNoZWNrL3JlcXVlc3QgY2FwdHVyZSBwZXJt
aXNzaW9uIGZyb20gdGhlIHVzZXIgZm9yIFNhZmFyaS4gVGhlbiwgU2FmYXJpIG11c3QgcmVxdWVz
dAorICAgICAgICBwZXJtaXNzaW9uIG9uIGJlaGFsZiBvZiB0aGUgd2VicGFnZSB0byB1c2UgdGhl
IGNhcHR1cmUgZGV2aWNlcy4gQWRkaXRpb25hbGx5LCBTYWZhcmkKKyAgICAgICAgbXVzdCBwcmVz
ZW50IFVJIHdoZW4gdGhlIGNhcHR1cmUgaXMgdGFraW5nIHBsYWNlLCBzbyBXZWJLaXQgbmVlZHMg
dG8gbm90aWZ5IHRoZSBjbGllbnQKKyAgICAgICAgb2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5u
aW5nIGFuZCBlbmRpbmcuIFRvIGRvIHRoaXMsIHdlIGFkZGVkIGZvdXIgbWV0aG9kcyB0byAKKyAg
ICAgICAgV0tVSURlbGVnYXRlUHJpdmF0ZSB0byByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUg
dXNlciwgY2hlY2sgZm9yIHBlcm1pc3Npb25zLCBub3RpZnkKKyAgICAgICAgdGhhdCBhIGNhcHR1
cmUgc2Vzc2lvbiBoYXMgYmVndW4sIGFuZCBub3RpZnkgdGhhdCBhIGNhcHR1cmUgc2Vzc2lvbiBo
YXMgZW5kZWQuIEFkZGl0aW9uYWxseSwKKyAgICAgICAgd2UgYWRkZWQgYSBwcml2YXRlIG1ldGhv
ZCB0byBXS1dlYlZpZXcgdGhhdCBhbGxvd3MgdGhlIGNsaWVudCB0byBzdG9wIGEgY2FwdHVyZSBz
ZXNzaW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpVSUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbik6IE5vdGlmaWVzIHRoZSBj
bGllbnQgb2YgYSBjYXB0dXJlIHNlc3Npb24gYmVnaW5uaW5nLgorICAgICAgICAoQVBJOjpVSUNs
aWVudDo6ZGlkRW5kQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2Fw
dHVyZSBzZXNzaW9uIGVuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oOiBBZGRlZCBuZXcgZGVsZWdhdGUgbWV0aG9kcyB0byByZXF1ZXN0
IHBlcm1pc3Npb24sCisgICAgICAgIGNoZWNrIGZvciBwZXJtaXNzaW9uLCBub3RpZnkgb2YgYSBj
YXB0dXJlIHNlc3Npb24gYmVnaW5uaW5nLCBhbmQgbm90aWZ5IG9mIGEgY2FwdHVyZSBzZXNzaW9u
CisgICAgICAgIGVuZGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdKTogQ2FuY2Vs
cyBhIG1lZGlhIGNhcHR1cmUgc2Vzc2lvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAg
IChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKTogQWRkZWQgdGhlIG5ldyBkZWxlZ2F0
ZSBtZXRob2RzLgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICBGaXJzdCBjaGVj
a3MgaWYgdGhlIHVzZXIgaGFzIGF1dGhvcml6ZWQgdGhlIGNsaWVudCBhcHBsaWNhdGlvbiBhY2Nl
c3MgY2FwdHVyZSBkZXZpY2VzLAorICAgICAgICB0aGVuIHVzZXMgdGhlIFdLVUlEZWxlZ2F0ZSB0
byByZXF1ZXN0IHBlcm1pc3Npb24gZm9yIGEgc2l0ZSBmcm9tIHRoZSB1c2VyLgorICAgICAgICAo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luKTogQ2hlY2tzIHRoZSBjbGllbnQKKyAgICAgICAgZm9yIHBlcm1pc3Npb24gdG8gYWNj
ZXNzIGNhcHR1cmUgZGV2aWNlcy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRpZEJlZ2luQ2FwdHVyZVNlc3Npb24pOiBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgY2Fw
dHVyZQorICAgICAgICBzZXNzaW9uIGJlZ2lubmluZy4KKyAgICAgICAgKFdlYktpdDo6VUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmRpZEVuZENhcHR1cmVTZXNzaW9uKTogTm90aWZpZXMgdGhlIGNsaWVu
dCBvZiBhIGNhcHR1cmUKKyAgICAgICAgc2Vzc2lvbiBlbmRpbmcuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZSk6IENhbGxzIFVJRGVsZWdhdGUgbWV0aG9kIHRvIG5vdGlm
eSB0aGUKKyAgICAgICAgY2xpZW50IG9mIGEgY2FwdHVyZSBzZXNzaW9uIGJlZ2lubmluZy9lbmRp
bmcuCisKIDIwMTYtMTEtMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZWQgYSBXVEZMb2dBbHdheXMgSSBsZWZ0IGluIHdpdGggYSByZWNlbnQgY29tbWl0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGZmNThl
ZTguLjkxODZkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0
YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbigpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRFbmRDYXB0dXJlU2Vzc2lvbigpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T04pCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSopIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAppbmRleCAzZjNiMGY5Li45YjM0MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApA
QCAtNjAsNiArNjAsMTAgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihD
R1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAt
IChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lOihCT09MKW1pY3JvcGhvbmUgY2FtZXJhOihCT09MKWNh
bWVyYSB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWRNaWNyb3Bob25lLCBCT09M
IGF1dGhvcml6ZWRDYW1lcmEpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVy
bCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNV
SW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3
RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXdEaWRFbmRDYXB0dXJlU2Vzc2lvbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1Nf
SVBIT05FCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1
ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxl
bWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24g
Kj4gKilkZWZhdWx0QWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOWU5MGFiYS4uZjgzMjIyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQwNDAsNiArNDA0
MCwxMSBAQCAtIChCT09MKV9pc0luRnVsbHNjcmVlbgogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3N0
b3BNZWRpYUNhcHR1cmUKK3sKKyAgICBfcGFnZS0+c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6Q2FwdHVyZURldmljZXNBcmVNdXRlZCk7Cit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3Bl
Y2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhNGE4YjUx
Li45ZDk1YTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjU4LDYgKzI1OCw4IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEZ1bGxzY3JlZW5EZWxlZ2F0ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxl
Z2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKKy0gKHZvaWQpX3N0b3BNZWRp
YUNhcHR1cmU7CisKIEBlbmQKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBkNDlkZTJiLi4yMGMyMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTg5LDYg
Kzg5LDEwIEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHJ1bk9w
ZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJyaWRlOwogI2VuZGlmCisgICAgICAgIGJvb2wgZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYp
IG92ZXJyaWRlOworICAgICAgICBib29sIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEJlZ2luQ2FwdHVy
ZVNlc3Npb24oKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRFbmRDYXB0dXJlU2Vzc2lvbigp
IG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkq
LCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCiAj
aWYgSEFWRShBUFBfTElOS1MpCkBAIC0xMzAsNiArMTM0LDEwIEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA6IDE7CiAgICAgICAgIGJv
b2wgd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0Rp
ZEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFVzZXJNZWRp
YUF1dGhvcml6YXRpb25Gb3JNaWNyb3Bob25lQ2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25I
YW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3Q2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMTWFpbkZyYW1lVVJMRnJhbWVJZGVudGlmaWVyRGVjaXNpb25IYW5kbGVyIDogMTsKKyAg
ICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA6IDE7CisgICAgICAgIGJv
b2wgd2ViVmlld0RpZEVuZENhcHR1cmVTZXNzaW9uIDogMTsKICNpZiBQTEFURk9STShJT1MpCiAj
aWYgSEFWRShBUFBfTElOS1MpCiAgICAgICAgIGJvb2wgd2ViVmlld1Nob3VsZEluY2x1ZGVBcHBM
aW5rQWN0aW9uc0ZvckVsZW1lbnQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQppbmRleCAwYWJlODg5Li5hMDhlOTkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAj
aW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJOYXZpZ2F0
aW9uQWN0aW9uRGF0YS5oIgorI2ltcG9ydCAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aCIKKyNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbXBvcnQg
IldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkFjdGlvbkludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgpAQCAtNDYs
NiArNDgsMTcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQ
dHIuaD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1
cmVEZXZpY2UuaD4KKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhRm9ybWF0Lmg+CisjaW1w
b3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQVZGb3Vu
ZGF0aW9uKTsKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSk7
CitTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0
cmluZyAqKTsKK1NPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlVmlk
ZW8sIE5TU3RyaW5nICopOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVSURlbGVn
YXRlOjpVSURlbGVnYXRlKFdLV2ViVmlldyAqd2ViVmlldykKQEAgLTEwMSw2ICsxMTQsMTAgQEAg
dm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkK
ICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERl
ZmF1bHRBY3Rpb25zID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6YWN0aW9uc0ZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXND
bGlja0F0UG9pbnQ6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RVc2Vy
TWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZUNhbWVyYVVSTE1haW5GcmFtZVVSTERlY2lz
aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yTWljcm9waG9uZTpjYW1lcmE6dXJs
Om1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTE1haW5GcmFtZVVSTEZyYW1lSWRl
bnRpZmllckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVV
Ukw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbjopXTsKKyAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24gPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVuZENhcHR1cmVTZXNz
aW9uOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZv
cldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2Vu
dGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLmRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KV07
CkBAIC0zMDMsNiArMzIwLDEyOSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVu
UGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlm
CiAKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxl
Z2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JNaWNyb3Bob25lQ2FtZXJhVVJMTWFpbkZyYW1lVVJMRGVjaXNpb25IYW5kbGVyKSB7Cisg
ICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVkKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCByZXF1aXJlc0F1ZGlvID0gcmVxdWVzdC5yZXF1
aXJlc0F1ZGlvKCk7CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvID0gcmVxdWVzdC5yZXF1aXJlc1Zp
ZGVvKCk7CisgICAgaWYgKCFyZXF1aXJlc0F1ZGlvICYmICFyZXF1aXJlc1ZpZGVvKSB7CisgICAg
ICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBfX2Jsb2NrIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0
ZS5tX3dlYlZpZXc7CisgICAgdm9pZCAoXnVpRGVsZWdhdGVBdXRob3JpemF0aW9uQmxvY2spKHZv
aWQpID0gXiB7CisgICAgICAgIGNvbnN0IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGZyYW1l
LnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0RnJhbWVV
UkwoV2ViQ29yZTo6VVJMKCksIGZyYW1lLnVybCgpKTsKKyAgICAgICAgV2ViQ29yZTo6VVJMIG1h
aW5GcmFtZVVSTChXZWJDb3JlOjpVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAgICAgICAg
WyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvck1pY3JvcGhvbmU6cmVxdWlyZXNBdWRpbyBjYW1l
cmE6cmVxdWlyZXNWaWRlbyB1cmw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOl4oQk9PTCBhdXRob3JpemVkTWljcm9waG9uZSwgQk9PTCBh
dXRob3JpemVkQ2FtZXJhKSB7CisgICAgICAgICAgICBpZiAoKHJlcXVpcmVzQXVkaW8gIT0gYXV0
aG9yaXplZE1pY3JvcGhvbmUpIHx8IChyZXF1aXJlc1ZpZGVvICE9IGF1dGhvcml6ZWRDYW1lcmEp
KSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29u
c3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCA9IHJlcXVpcmVzVmlkZW8gPyByZXF1ZXN0LnZpZGVv
RGV2aWNlVUlEcygpLmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgYXVkaW9EZXZpY2VVSUQgPSByZXF1aXJlc0F1ZGlvID8gcmVxdWVzdC5hdWRpb0RldmljZVVJ
RHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICByZXF1ZXN0LmFsbG93KGF1ZGlv
RGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CisgICAgICAgIH1dOworICAgIH07CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgdm9pZCAoXmNhbWVyYUF1dGhvcml6YXRpb25CbG9jaykodm9pZCkg
PSBeIHsKKyAgICAgICAgaWYgKHJlcXVpcmVzVmlkZW8pIHsKKyAgICAgICAgICAgIEFWQXV0aG9y
aXphdGlvblN0YXR1cyBjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVzID0gW2dldEFWQ2FwdHVyZURl
dmljZUNsYXNzKCkgYXV0aG9yaXphdGlvblN0YXR1c0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlw
ZVZpZGVvKCldOworICAgICAgICAgICAgc3dpdGNoIChjYW1lcmFBdXRob3JpemF0aW9uU3RhdHVz
KSB7CisgICAgICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c0RlbmllZDoKKyAgICAg
ICAgICAgIGNhc2UgQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZDoKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICBjYXNlIEFWQXV0aG9yaXphdGlvblN0YXR1c05vdERldGVy
bWluZWQ6CisgICAgICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVz
dEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZVZpZGVvKCkgY29tcGxldGlvbkhhbmRs
ZXI6XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhdXRob3Jp
emVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNz
aW9uRGVuaWVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1aURlbGVnYXRlQXV0aG9yaXphdGlvbkJs
b2NrKCk7CisgICAgICAgICAgICAgICAgfV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHVpRGVsZWdhdGVBdXRob3JpemF0aW9u
QmxvY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB1aURl
bGVnYXRlQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgfTsKKworICAgIGlmIChyZXF1aXJlc0F1
ZGlvKSB7CisgICAgICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBtaWNyb3Bob25lQXV0aG9yaXph
dGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0
dXNGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpXTsKKyAgICAgICAgc3dpdGNoICht
aWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cykgeworICAgICAgICBjYXNlIEFWQXV0aG9yaXph
dGlvblN0YXR1c0RlbmllZDoKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25TdGF0dXNSZXN0
cmljdGVkOgorICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBVkF1dGhvcml6YXRpb25T
dGF0dXNOb3REZXRlcm1pbmVkOgorICAgICAgICAgICAgW2dldEFWQ2FwdHVyZURldmljZUNsYXNz
KCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTpnZXRBVk1lZGlhVHlwZUF1ZGlvKCkgY29tcGxl
dGlvbkhhbmRsZXI6XihCT09MIGF1dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWF1
dGhvcml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlz
c2lvbkRlbmllZCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAg
ICAgICB9XTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAg
ICAgICAgY2FtZXJhQXV0aG9yaXphdGlvbkJsb2NrKCk7CisjZWxzZQorICAgIHVpRGVsZWdhdGVB
dXRob3JpemF0aW9uQmxvY2soKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiBmcmFt
ZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhT3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbE9yaWdpbiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdh
dGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLm1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkxNYWluRnJhbWVVUkxG
cmFtZUlkZW50aWZpZXJEZWNpc2lvbkhhbmRsZXIpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2Vy
TWVkaWFBY2Nlc3NJbmZvKFN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXc7
CisgICAgY29uc3QgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gZnJhbWUucGFnZSgpLT5tYWlu
RnJhbWUoKTsKKyAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdEZyYW1lVVJMKFdlYkNvcmU6OlVSTCgp
LCBmcmFtZS51cmwoKSk7CisgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJDb3JlOjpV
UkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CisKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilkZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVS
TDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZp
ZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzYWx0LCBCT09M
IGF1dGhvcml6ZWQpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKFN0
cmluZyhzYWx0KSwgYXV0aG9yaXplZCk7CisgICAgfV07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQmVnaW5DYXB0dXJlU2Vzc2lvbigpCit7
CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAg
IGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkQmVnaW5DYXB0dXJlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgWyhpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXdEaWRCZWdpbkNhcHR1cmVTZXNzaW9u
Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXddOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpkaWRFbmRDYXB0dXJlU2Vzc2lvbigpCit7CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxl
Z2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW5kQ2FwdHVyZVNlc3Npb24pCisgICAgICAg
IHJldHVybjsKKworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJW
aWV3RGlkRW5kQ2FwdHVyZVNlc3Npb246bV91aURlbGVnYXRlLm1fd2ViVmlld107Cit9CisKIHZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQs
IEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lk
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90
YWxCeXRlc05lZWRlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA2Nzc1OWRiLi4yYzc5ZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNjQwOSw2ICs2NDA5LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3Rh
dGUsCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhU3RhdGVI
YXNBY3RpdmVDYXB0dXJlID0gbV9tZWRpYVN0YXRlICYgKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSB8IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhh
c0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlID0gc3RhdGUgJiAo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlIHwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsKKyAgICBp
ZiAoIW9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmIG5ld01lZGlhU3RhdGVIYXNBY3Rp
dmVDYXB0dXJlKQorICAgICAgICBtX3VpQ2xpZW50LT5kaWRCZWdpbkNhcHR1cmVTZXNzaW9uKCk7
CisgICAgaWYgKG9sZE1lZGlhU3RhdGVIYXNBY3RpdmVDYXB0dXJlICYmICFuZXdNZWRpYVN0YXRl
SGFzQWN0aXZlQ2FwdHVyZSkKKyAgICAgICAgbV91aUNsaWVudC0+ZGlkRW5kQ2FwdHVyZVNlc3Np
b24oKTsKKwogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5aW5nTWVkaWFN
YXNrID0gTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8gfCBNZWRpYVByb2R1Y2VyOjpJc1Bs
YXlpbmdWaWRlbzsKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUg
PSBtX21lZGlhU3RhdGU7CiAgICAgbV9tZWRpYVN0YXRlID0gc3RhdGU7Ci0tIAoyLjEwLjEgKEFw
cGxlIEdpdC03OCkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>