<?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>139137</bug_id>
          
          <creation_ts>2014-12-01 11:09:43 -0800</creation_ts>
          <short_desc>Enable activating optimized fullscreen mode from standard fullscreen mode.</short_desc>
          <delta_ts>2014-12-09 03:15:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1051495</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-01 11:09:43 -0800</bug_when>
    <thetext>Enable activating optimized fullscreen mode from standard fulscreen mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051498</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-01 11:10:59 -0800</bug_when>
    <thetext>rdar://problem/18518346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051521</commentid>
    <comment_count>2</comment_count>
      <attachid>242326</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-01 12:12:51 -0800</bug_when>
    <thetext>Created attachment 242326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051522</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-01 12:14:43 -0800</bug_when>
    <thetext>Attachment 242326 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:970:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 17 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>1052540</commentid>
    <comment_count>4</comment_count>
      <attachid>242326</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-12-04 12:49:49 -0800</bug_when>
    <thetext>Comment on attachment 242326
Patch

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

r=me, with nits. This will need a 👍 from a WK2 owner before landing.

&gt; Source/WebCore/html/HTMLMediaElement.h:395
&gt; -    enum VideoFullscreenMode { VideoFullscreenModeNone, VideoFullscreenModeStandard, VideoFullscreenModeOptimized };
&gt; +    enum VideoFullscreenMode { VideoFullscreenModeNone, VideoFullscreenModeStandard, VideoFullscreenModeOptimized, VideoFullscreenModeStandardAndOptimized };

Seems like this could be turned into a bitfield:

enum {
    VideoFullscreenModeNone = 0,
    VideoFullscreenModeStandard = 1 &lt;&lt; 0,
    VideoFullscreenModeOptimized = 1 &lt;&lt; 1,
};

typedef VideoFullscreenMode uint32_t;

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1044
&gt; +    if (m_mode == HTMLMediaElement::VideoFullscreenModeOptimized || m_mode == HTMLMediaElement::VideoFullscreenModeStandardAndOptimized)
&gt;          [m_playerViewController stopOptimizedFullscreen];
&gt; -    else
&gt; +    if (m_mode == HTMLMediaElement::VideoFullscreenModeStandard || m_mode == HTMLMediaElement::VideoFullscreenModeStandardAndOptimized)

These if() statements argue for the bitfield approach.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:238
&gt; -    return _page-&gt;videoFullscreenManager() &amp;&amp; _page-&gt;videoFullscreenManager()-&gt;mode() == WebCore::HTMLMediaElement::HTMLMediaElement::VideoFullscreenModeOptimized;
&gt; +    return _page-&gt;videoFullscreenManager() &amp;&amp; (_page-&gt;videoFullscreenManager()-&gt;mode() == WebCore::HTMLMediaElement::HTMLMediaElement::VideoFullscreenModeOptimized || _page-&gt;videoFullscreenManager()-&gt;mode() == WebCore::HTMLMediaElement::HTMLMediaElement::VideoFullscreenModeStandardAndOptimized);

This return statement has become sufficiently complicated so as to justify breaking it up into multiple statements.

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:89
&gt; +    void setFullscreenModeChanged(uint32_t videoFullscreenMode);

Since this file includes HTMLMediaElement.h, you can just use HTMLMediaElement::VideoFullscreenMode here, rather than uint32_t, with the bitfield change above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053497</commentid>
    <comment_count>5</comment_count>
      <attachid>242326</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-08 13:29:27 -0800</bug_when>
    <thetext>Comment on attachment 242326
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:92
&gt; +    void setOptimizedActive(bool);

This is a confusing name. Is it &quot;set the current optimized state to active&quot; or &quot;set optimized and active&quot; or something else?

Maybe setIsOptimized()?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:525
&gt; +    NSString* propertyName = NSStringFromSelector(@selector(optimizedFullscreenActive));

Will the property name ever be different from @&quot;optimizedFullscreenActive&quot;?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:531
&gt; +    if (_avPlayerViewController)
&gt; +        [_avPlayerViewController removeObserver:self forKeyPath:propertyName];
&gt;      _avPlayerViewController = playerViewController;
&gt; +    if (_avPlayerViewController)
&gt; +        [_avPlayerViewController addObserver:self forKeyPath:propertyName options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:nil];

Messaging nil is safe.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1092
&gt; +    if (!active &amp;&amp; m_mode == HTMLMediaElement::VideoFullscreenModeStandardAndOptimized)
&gt; +        m_mode = HTMLMediaElement::VideoFullscreenModeStandard;
&gt; +    else if (active &amp;&amp; m_mode == HTMLMediaElement::VideoFullscreenModeStandard)
&gt; +        m_mode = HTMLMediaElement::VideoFullscreenModeStandardAndOptimized;

Bitfields would help here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053633</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-08 20:44:54 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 242326 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=242326&amp;action=review
&gt; 
&gt; r=me, with nits. This will need a 👍 from a WK2 owner before landing.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.h:395
&gt; &gt; -    enum VideoFullscreenMode { VideoFullscreenModeNone, VideoFullscreenModeStandard, VideoFullscreenModeOptimized };
&gt; &gt; +    enum VideoFullscreenMode { VideoFullscreenModeNone, VideoFullscreenModeStandard, VideoFullscreenModeOptimized, VideoFullscreenModeStandardAndOptimized };
&gt; 
&gt; Seems like this could be turned into a bitfield:
&gt; 
&gt; enum {
&gt;     VideoFullscreenModeNone = 0,
&gt;     VideoFullscreenModeStandard = 1 &lt;&lt; 0,
&gt;     VideoFullscreenModeOptimized = 1 &lt;&lt; 1,
&gt; };
&gt; 
&gt; typedef VideoFullscreenMode uint32_t;

done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1044
&gt; &gt; +    if (m_mode == HTMLMediaElement::VideoFullscreenModeOptimized || m_mode == HTMLMediaElement::VideoFullscreenModeStandardAndOptimized)
&gt; &gt;          [m_playerViewController stopOptimizedFullscreen];
&gt; &gt; -    else
&gt; &gt; +    if (m_mode == HTMLMediaElement::VideoFullscreenModeStandard || m_mode == HTMLMediaElement::VideoFullscreenModeStandardAndOptimized)
&gt; 
&gt; These if() statements argue for the bitfield approach.

done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:238
&gt; &gt; -    return _page-&gt;videoFullscreenManager() &amp;&amp; _page-&gt;videoFullscreenManager()-&gt;mode() == WebCore::HTMLMediaElement::HTMLMediaElement::VideoFullscreenModeOptimized;
&gt; &gt; +    return _page-&gt;videoFullscreenManager() &amp;&amp; (_page-&gt;videoFullscreenManager()-&gt;mode() == WebCore::HTMLMediaElement::HTMLMediaElement::VideoFullscreenModeOptimized || _page-&gt;videoFullscreenManager()-&gt;mode() == WebCore::HTMLMediaElement::HTMLMediaElement::VideoFullscreenModeStandardAndOptimized);
&gt; 
&gt; This return statement has become sufficiently complicated so as to justify
&gt; breaking it up into multiple statements.

done.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:89
&gt; &gt; +    void setFullscreenModeChanged(uint32_t videoFullscreenMode);
&gt; 
&gt; Since this file includes HTMLMediaElement.h, you can just use
&gt; HTMLMediaElement::VideoFullscreenMode here, rather than uint32_t, with the
&gt; bitfield change above.

done. Also updated WebVideoFullscreenManager.messages.in, and the other use of this enum in WebVideoFullscreenManagerProxy.messages.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053634</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-08 20:46:36 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 242326 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=242326&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:92
&gt; &gt; +    void setOptimizedActive(bool);
&gt; 
&gt; This is a confusing name. Is it &quot;set the current optimized state to active&quot;
&gt; or &quot;set optimized and active&quot; or something else?
&gt; 
&gt; Maybe setIsOptimized()?

Changed.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:525
&gt; &gt; +    NSString* propertyName = NSStringFromSelector(@selector(optimizedFullscreenActive));
&gt; 
&gt; Will the property name ever be different from @&quot;optimizedFullscreenActive&quot;?

No.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:531
&gt; &gt; +    if (_avPlayerViewController)
&gt; &gt; +        [_avPlayerViewController removeObserver:self forKeyPath:propertyName];
&gt; &gt;      _avPlayerViewController = playerViewController;
&gt; &gt; +    if (_avPlayerViewController)
&gt; &gt; +        [_avPlayerViewController addObserver:self forKeyPath:propertyName options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:nil];
&gt; 
&gt; Messaging nil is safe.

Removed conditions.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1092
&gt; &gt; +    if (!active &amp;&amp; m_mode == HTMLMediaElement::VideoFullscreenModeStandardAndOptimized)
&gt; &gt; +        m_mode = HTMLMediaElement::VideoFullscreenModeStandard;
&gt; &gt; +    else if (active &amp;&amp; m_mode == HTMLMediaElement::VideoFullscreenModeStandard)
&gt; &gt; +        m_mode = HTMLMediaElement::VideoFullscreenModeStandardAndOptimized;
&gt; 
&gt; Bitfields would help here too.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053648</commentid>
    <comment_count>8</comment_count>
      <attachid>242880</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-08 21:41:50 -0800</bug_when>
    <thetext>Created attachment 242880
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053659</commentid>
    <comment_count>9</comment_count>
      <attachid>242884</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-08 22:19:04 -0800</bug_when>
    <thetext>Created attachment 242884
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053660</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-08 22:26:16 -0800</bug_when>
    <thetext>rdar://problem/18914569</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053662</commentid>
    <comment_count>11</comment_count>
      <attachid>242885</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-12-08 22:51:18 -0800</bug_when>
    <thetext>Created attachment 242885
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053663</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-08 22:53:08 -0800</bug_when>
    <thetext>Attachment 242885 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:971:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 17 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>1053680</commentid>
    <comment_count>13</comment_count>
      <attachid>242885</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-09 00:24:40 -0800</bug_when>
    <thetext>Comment on attachment 242885
Patch for landing.

Clearing flags on attachment: 242885

Committed r177012: &lt;http://trac.webkit.org/changeset/177012&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242326</attachid>
            <date>2014-12-01 12:12:51 -0800</date>
            <delta_ts>2014-12-04 12:49:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139137-20141201121320.patch</filename>
            <type>text/plain</type>
            <size>26158</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk5ZGQ1YjRlMjNkMzJk
ZTg3NGE5OTAyZTk2NjY1MGYxNGI5Mjg0My4uNmEyZjIxYzE4ZWM1YzE3ZGIyZWEwNDQ5NWUyMjFi
Yjc5MWU3YTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTEyLTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgYWN0aXZhdGlu
ZyBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtb2RlIGZyb20gc3RhbmRhcmQgZnVsc2NyZWVuIG1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxMzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHb2luZyBm
cm9tIHN0YW5kYXJkIGZ1bGxzY3JlZW4gbW9kZSB0byBvcHRpbW5pemVkIGZ1bGxzY3JlZW4gbW9k
ZSByZXF1aXJlcyB0aGUgYWJpbGl0eSB0bworICAgICAgICB1cGRhdGUgdGhlIGZ1bGxzY3JlZW4g
bW9kZSBpbiBIVE1MTWVkaWFFbGVtZW50IGFuZCBhIG5ldyBzdGFuZGFyZC1hbmQtb3B0aW1pemVk
LWZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICBUaGlzIGNoYW5nZSBLVk8gb2JzZXJ2ZXMgQVZL
aXQncyBvcHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlIGFuZCBmb3J3YXJkcyB0aGUgY2hhbmdlIGRv
d24gdG8gSFRNTE1lZGlhRWxlbWVudCBzbyBpdCBjYW4gYWRqdXN0IGJlaGF2aW9yIGFwcHJvcHJp
YXRlbHkuCisgICAgICAgIEl0IGFsc28gaGlkZXMgdGhlIHN0YW5kYXJkIGZ1bGxzY3JlZW4gd2lu
ZG93IHdoZW4gZ29pbmcgaW50byB0aGlzIG1vZGUuCisgICAgICAgIFdoZW4gZXhpdGluZyBmdWxs
c2NyZWVuIGZyb20gc3RhbmRhcmQtYW5kLW9wdGltaXplZCwgZmlyc3QgZXhpdCBmdWxsc2NyZWVu
IGltbWVkaWF0ZWx5LCB0aGVuIHN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuLCBhbmQgbm90aWZ5IG9m
IGNvbXBsZXRpb24gd2hlbgorICAgICAgICBvcHRpbWl6ZWRGdWxsc2NyZWVuIGdvZXMgaW5hY3Rp
dmUuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1bGxzY3JlZW5Nb2Rl
KToKKyAgICAgICAgICAgIFRyZWF0IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGlt
aXplZCBhcyBhIGtpbmQgb2Ygb3B0aW1pemVkIG1vZGUuCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46IE5ldyBleHBvcnQgZm9yIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojpm
dWxsc2NyZWVuTW9kZUNoYW5nZWQKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGxheVR5cGUpOgorICAg
ICAgICAgICAgVHJlYXQgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkIGFz
IGEga2luZCBvZiBvcHRpbWl6ZWQgbW9kZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDogQWRkIG5ldyBmdWxsc2NyZWVuIG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBVcGRhdGUgZnVsbHNjcmVlbiBtb2Rl
IHNvIGl0IGRvZXMgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSBiZWhhdmlvcnMgd2hlbiBhcHBs
aWNhYmxlLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5oOiBEZWNsYXJlIHNldE9wdGltaXplZEFjdGl2ZQorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2Vi
QVZWaWRlb0xheWVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOl0pOiBvYnNlcnZlIG9wdGltaXpl
ZEZ1bGxzY3JlZW5BY3RpdmUKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIG9ic2VydmVWYWx1
ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IHJlc3BvbmQgdG8gY2hhbmdl
cyB0byBvcHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQpOiBJbml0
IG1lbWJlcnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cGxh
eWVyQ29udHJvbGxlcik6IAorICAgICAgICAgICAgR2l2ZSBwbGF5ZXIgY29udHJvbGxlciBhIHJl
ZmVyZW5jZSB0byB0aGUgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlIHNvIGl0IGNhbiBwYXNz
IGFsb25nIG1vZGUgY2hhbmdlIHN0YXRlLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6IEhhbmRsZSBuZXcgZnVsbHNjcmVlbiBtb2Rl
cy4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNj
cmVlbik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
aW52YWxpZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0T3B0aW1pemVkQWN0aXZlKTogSGFuZGxl
IGNoYW5nZXMgdG8gZnVsbHNjcmVlbiBtb2RlLgorICAgICAgICAgICAgQWxzbyBoYW5kbGUgdGhl
IGNhc2UgdGhhdCBleGl0aW5nIGZ1bGxzY3JlZW4gaGFwcGVuZCB3aGVuIG9wdGltaXplZCBtb2Rl
IGVuZHMuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6
IGRlY2xhcmUgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDogZGVjbGFyZSBmdWxsc2NyZWVu
TW9kZUNoYW5nZWQoKQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudC5tbTogYWRkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpCisgICAgICAg
IChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6V2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQpOiBJbml0IG1lbWJlcnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKTogQWRkZWQuIFVw
ZGF0ZSB2aWRlbyBlbGVtZW50IGZ1bGxzY3JlZW4gbW9kZS4KKwogMjAxNC0xMS0yOSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCBhIGJ1aWxk
IHdhcm5pbmcgd2hlbiBDU1NfU0NST0xMX1NOQVAgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDUy
ODAzZmI1MzZhZjlhZTQzM2VkMjBjYmNiNjRlY2VjZDlhNWQxNGUuLjIzZGM4MTY1NmE2NTM4N2I2
ODlmNWQxOTdkY2YxMTFlMjgxNDhlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
NC0xMi0wMSAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIGFjdGl2YXRpbmcgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSBmcm9tIHN0YW5kYXJkIGZ1
bHNjcmVlbiBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM5MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgR29pbmcgZnJvbSBzdGFuZGFyZCBmdWxsc2NyZWVuIG1vZGUgdG8gb3B0aW1uaXplZCBm
dWxsc2NyZWVuIG1vZGUgcmVxdWlyZXMgdGhlIGFiaWxpdHkgdG8KKyAgICAgICAgdXBkYXRlIHRo
ZSBmdWxsc2NyZWVuIG1vZGUgYW5kIGEgbmV3IHN0YW5kYXJkLWFuZC1vcHRpbWl6ZWQtZnVsbHNj
cmVlbiBtb2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBfaXNQbGF5aW5nRnVsbHNjcmVlbk9wdGltaXplZFZpZGVv
XSk6IAorICAgICAgICBUcmVhdCBuZXcgc3RhbmRhcmQtYW5kLW9wdGltaXplZCBhcyBhIGtpbmQg
b2Ygb3B0aW1pemVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lmg6IElQQyBmdWxsc2NyZWVuIG1vZGUgY2hhbmdlcworICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOiBkaXR0bworICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZCk6IGRpdG8KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6IGRpdHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogZGl0dG8KKyAgICAgICAgKiBXZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOiBkaXRvCisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOiBk
aXR0bworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRGdWxs
c2NyZWVuTW9kZUNoYW5nZWQpOiBkaXR0bworCiAyMDE0LTExLTI5ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiBjYWxsaW5nIFdLUGFn
ZUNsb3NlIG9uIHRoZSBvcmlnaW5hdGVkIHBhZ2UgZnJvbSB3aXRoaW4gY3JlYXRlTmV3UGFnZSBj
YWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggYTBjYzRkNzZkMjhkNmY3YjY3NzZiNzQ4
YTQ0NWU0MzUzMDM3MGUzOC4uOTEwMWRlYTk2NzUyMDQ3ZTkwYjI1Y2Y1NDg1ZWEyODIyNWU2ZjEz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC0zMDYsNiArMzA2LDkgQEAgU3RyaW5nIE1lZGlh
Q29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9kZSgpIGNvbnN0CiAgICAgY2FzZSBIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOgogICAgICAgICBtb2RlID0gb3B0
aW1pemVkOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGltaXplZDoKKyAgICAgICAgbW9kZSA9IG9wdGlt
aXplZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAogICAgIExPRyhNZWRpYSwgIk1lZGlh
Q29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9kZSAtIHJldHVybmluZyBcIiVzXCIiLCBtb2RlLnV0
ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBlNDUxMWFmNzA0MzlkZWIwYmY5
ZTAwMjVkNDRlOTQ4NDI0NTY4YjUxLi43MGE4MzRhZTIyMzVmYzI3MzQ0Y2Q0ODI4MzI3MDU3ZjMw
ZjgxZDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzQ3NCw2ICszNDc0LDcgQEAgX19aTjdX
ZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDE4c2V0VmlkZW9MYXll
ckZyYW1lRU5TXzlGbG9hdFIKIF9fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQyMGJlZ2luU2Nhbm5pbmdGb3J3YXJkRXYKIF9fWk43V2ViQ29yZTM1V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQyMHNldFZpZGVvTGF5ZXJHcmF2aXR5RU5TXzIz
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwxMlZpZGVvR3Jhdml0eUUKIF9fWk43V2ViQ29yZTM1V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQyMWJlZ2luU2Nhbm5pbmdCYWNrd2FyZEV2
CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjFmdWxs
c2NyZWVuTW9kZUNoYW5nZWRFTlNfMTZIVE1MTWVkaWFFbGVtZW50MTlWaWRlb0Z1bGxzY3JlZW5N
b2RlRQogX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDIx
cmVxdWVzdEV4aXRGdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQyMnNlbGVjdEF1ZGlvTWVkaWFPcHRpb25FeQogX19aTjdXZWJDb3Jl
MzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDIzc2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXJFUDdDQUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCAxZTc1ZTViNTVkNDhlZmE0OWU3MTg5NjQ2NmM1MDVhNWFkNGYzNTMyLi5hYmFhOTMyNmFk
YzUyMWJhNWFiNWEyODY2N2UzNThhNzk2Y2QxN2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTYwMDIsNiArNjAwMiw4IEBAIE1lZGlhU2Vzc2lvbjo6RGlz
cGxheVR5cGUgSFRNTE1lZGlhRWxlbWVudDo6ZGlzcGxheVR5cGUoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gTWVkaWFTZXNzaW9uOjpGdWxsc2NyZWVuOwogICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVu
TW9kZU9wdGltaXplZDoKICAgICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6T3B0aW1pemVkOwor
ICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkOgorICAgICAg
ICByZXR1cm4gTWVkaWFTZXNzaW9uOjpPcHRpbWl6ZWQ7CiAgICAgY2FzZSBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlTm9uZToKICAgICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6Tm9ybWFsOwogICAgIGRl
ZmF1bHQ6CkBAIC02MDc2LDcgKzYwNzgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om92ZXJy
aWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oKSBjb25zdAogICAgIGlmIChtX3BsYXll
ciAmJiBtX3BsYXllci0+aXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0g
VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5N
b2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQgfHwgbV92aWRlb0Z1bGxzY3JlZW5N
b2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGltaXplZCkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCA0ODI5ZTBkNTVjMzE5ZGFhMTY3MzdmMDhkMmRjOGRhNzJj
ZTU3YmRiLi5hMjRhZWY1MjEyYzE0NjQxOTgwZDJjMGZlM2I1YWQ4ZjQ2YzQ1NTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzkyLDggKzM5Miw5IEBAIHB1Ymxp
YzoKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUoKTsKLSAgICBl
bnVtIFZpZGVvRnVsbHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07Cisg
ICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIFZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCwg
VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkIH07CiAgICAgVmlkZW9GdWxs
c2NyZWVuTW9kZSBmdWxsc2NyZWVuTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZTsgfQorICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFZpZGVvRnVsbHNjcmVl
bk1vZGUgbW9kZSkgeyBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBtb2RlOyB9CiAKICAgICB2b2lk
IGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmlu
ZGV4IDgzYzU1MWM1ODlkZDJiYmMzMmQxM2ZmMjhiYzA4MTQ2Mjk4ZTdjMzMuLjE1NDlmYWI5ODBm
NTdiOGRmYWNhODY2YTEyMmM1Y2Y5NGFjNWE5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oCkBAIC04OSw3ICs4OSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwogCiAgICAgSFRNTE1lZGlhRWxl
bWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9
Ci0KKyAgICB2b2lkIHNldE9wdGltaXplZEFjdGl2ZShib29sKTsKKyAgICAgICAgCiBwcm90ZWN0
ZWQ6CiAgICAgICAgIAogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xsZXI+IG1fcGxh
eWVyQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAxMDkyZjlh
NDdmZDY5YWE0YjY3NzM5NWNkODQ0MTEzZDkzMjdmNGFhLi5kMDVlZWQ2OTZlYTBmM2YyNDljZTc2
MWE5OGUyMDhlZGI1NTQwYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC04
NSw4ICs4NSw5IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmlu
aXRlLCBDTVRpbWUpCiAgICAgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiAqX2N1cnJlbnRMZWdp
YmxlTWVkaWFTZWxlY3Rpb25PcHRpb247CiB9CiAKLUBwcm9wZXJ0eShyZXRhaW4pIEFWUGxheWVy
Q29udHJvbGxlciogcGxheWVyQ29udHJvbGxlclByb3h5OwotQHByb3BlcnR5KGFzc2lnbikgV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWwqIGRlbGVnYXRlOworQHByb3BlcnR5IChyZXRhaW4pIEFWUGxh
eWVyQ29udHJvbGxlciogcGxheWVyQ29udHJvbGxlclByb3h5OworQHByb3BlcnR5IChhc3NpZ24p
IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBkZWxlZ2F0ZTsKK0Bwcm9wZXJ0eSAoYXNzaWduKSBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogZnVsbHNjcmVlbkludGVyZmFjZTsKIAog
QHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBjYW5TY2FuRm9yd2FyZDsKIEBwcm9wZXJ0eSBCT09M
IGNhblNjYW5CYWNrd2FyZDsKQEAgLTk0LDcgKzk1LDcgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENv
cmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAocmVhZG9ubHkp
IEJPT0wgY2FuU2Vla1RvRW5kOwogCiBAcHJvcGVydHkgQk9PTCBjYW5QbGF5OwotQHByb3BlcnR5
KGdldHRlcj1pc1BsYXlpbmcpIEJPT0wgcGxheWluZzsKK0Bwcm9wZXJ0eSAoZ2V0dGVyPWlzUGxh
eWluZykgQk9PTCBwbGF5aW5nOwogQHByb3BlcnR5IEJPT0wgY2FuUGF1c2U7CiBAcHJvcGVydHkg
Qk9PTCBjYW5Ub2dnbGVQbGF5YmFjazsKIEBwcm9wZXJ0eSBkb3VibGUgcmF0ZTsKQEAgLTEwNiwx
MCArMTA3LDEwIEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmlu
aXRlLCBDTVRpbWUpCiBAcHJvcGVydHkgTlNUaW1lSW50ZXJ2YWwgbWluVGltZTsKIEBwcm9wZXJ0
eSBOU1RpbWVJbnRlcnZhbCBtYXhUaW1lOwogQHByb3BlcnR5IE5TVGltZUludGVydmFsIGNvbnRl
bnREdXJhdGlvbldpdGhpbkVuZFRpbWVzOwotQHByb3BlcnR5KHJldGFpbikgTlNBcnJheSAqbG9h
ZGVkVGltZVJhbmdlczsKK0Bwcm9wZXJ0eSAocmV0YWluKSBOU0FycmF5ICpsb2FkZWRUaW1lUmFu
Z2VzOwogQHByb3BlcnR5IEFWUGxheWVyQ29udHJvbGxlclN0YXR1cyBzdGF0dXM7Ci1AcHJvcGVy
dHkocmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7Ci1AcHJvcGVydHkocmV0YWluKSBOU0Fy
cmF5ICpzZWVrYWJsZVRpbWVSYW5nZXM7CitAcHJvcGVydHkgKHJldGFpbikgQVZWYWx1ZVRpbWlu
ZyAqdGltaW5nOworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdl
czsKIAogQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNNZWRpYVNlbGVjdGlvbk9wdGlvbnM7
CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
OwpAQCAtNTIxLDkgKzUyMiwzMSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01U
aW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogCiAtICh2b2lkKXNldFBsYXllclZpZXdDb250cm9sbGVy
OihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIKIHsKKyAgICBO
U1N0cmluZyogcHJvcGVydHlOYW1lID0gTlNTdHJpbmdGcm9tU2VsZWN0b3IoQHNlbGVjdG9yKG9w
dGltaXplZEZ1bGxzY3JlZW5BY3RpdmUpKTsKKyAgICAKKyAgICBpZiAoX2F2UGxheWVyVmlld0Nv
bnRyb2xsZXIpCisgICAgICAgIFtfYXZQbGF5ZXJWaWV3Q29udHJvbGxlciByZW1vdmVPYnNlcnZl
cjpzZWxmIGZvcktleVBhdGg6cHJvcGVydHlOYW1lXTsKICAgICBfYXZQbGF5ZXJWaWV3Q29udHJv
bGxlciA9IHBsYXllclZpZXdDb250cm9sbGVyOworICAgIGlmIChfYXZQbGF5ZXJWaWV3Q29udHJv
bGxlcikKKyAgICAgICAgW19hdlBsYXllclZpZXdDb250cm9sbGVyIGFkZE9ic2VydmVyOnNlbGYg
Zm9yS2V5UGF0aDpwcm9wZXJ0eU5hbWUgb3B0aW9uczooTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQpIGNvbnRleHQ6bmlsXTsKIH0KIAor
LSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmpl
Y3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lk
ICopY29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFS
QU0ob2JqZWN0KTsKKyAgICAKKyAgICBOU1N0cmluZyogcHJvcGVydHlOYW1lID0gTlNTdHJpbmdG
cm9tU2VsZWN0b3IoQHNlbGVjdG9yKG9wdGltaXplZEZ1bGxzY3JlZW5BY3RpdmUpKTsKKworICAg
IGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6cHJvcGVydHlOYW1lXSAmJiBjaGFuZ2VbTlNL
ZXlWYWx1ZUNoYW5nZU5ld0tleV0pIHsKKyAgICAgICAgQk9PTCBvbGRBY3RpdmUgPSBbY2hhbmdl
W05TS2V5VmFsdWVDaGFuZ2VPbGRLZXldIGJvb2xWYWx1ZV07CisgICAgICAgIEJPT0wgYWN0aXZl
ID0gW2NoYW5nZVtOU0tleVZhbHVlQ2hhbmdlTmV3S2V5XSBib29sVmFsdWVdOworICAgICAgICBp
ZiAob2xkQWN0aXZlICE9IGFjdGl2ZSAmJiBbX2F2UGxheWVyQ29udHJvbGxlciBmdWxsc2NyZWVu
SW50ZXJmYWNlXSkKKyAgICAgICAgICAgIFtfYXZQbGF5ZXJDb250cm9sbGVyIGZ1bGxzY3JlZW5J
bnRlcmZhY2VdLT5zZXRPcHRpbWl6ZWRBY3RpdmUoYWN0aXZlKTsKKyAgICB9Cit9CisKKwogLSAo
dm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyICopdmlkZW9TdWJsYXllcgogewogICAgIF92
aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKQEAgLTU5Miw2ICs2MTUsMTEgQEAgU09GVF9M
SU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKIAogV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0KCkKICAgICA6IG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwobnVsbHB0cikKKyAgICAsIG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKG51bGxwdHIpCisgICAgLCBtX21vZGUoSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpCisgICAgLCBtX2V4aXRSZXF1ZXN0ZWQo
ZmFsc2UpCisgICAgLCBtX2V4aXRDb21wbGV0ZWQoZmFsc2UpCisgICAgLCBtX2VudGVyUmVxdWVz
dGVkKGZhbHNlKQogewogfQogCkBAIC02MDIsNiArNjMwLDcgQEAgV2ViQVZQbGF5ZXJDb250cm9s
bGVyICpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cGxheWVyQ29udHJvbGxlcigp
CiAgICAgICAgIG1fcGxheWVyQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXZWJBVlBsYXllckNvbnRy
b2xsZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwp
CiAgICAgICAgICAgICBbbV9wbGF5ZXJDb250cm9sbGVyIHNldERlbGVnYXRlOm1fdmlkZW9GdWxs
c2NyZWVuTW9kZWxdOworICAgICAgICBbbV9wbGF5ZXJDb250cm9sbGVyIHNldEZ1bGxzY3JlZW5J
bnRlcmZhY2U6dGhpc107CiAgICAgfQogICAgIHJldHVybiBtX3BsYXllckNvbnRyb2xsZXIuZ2V0
KCk7CiB9CkBAIC04OTEsOCArOTIwLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH1dOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgaWYgKG1fbW9k
ZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpIHsKKyAg
ICAgICAgfSBlbHNlIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkKSB7CiAgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBl
bnRlckZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vycm9yKikKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRT
aG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKQEAgLTkzOCw4ICs5NjYsMTIgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCBmaW5hbFJlY3QKICAgICAgICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKSB7CiAgICAgICAgICAgICBbbV93aW5kb3cgc2V0
SGlkZGVuOk5PXTsKICAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHN0b3BPcHRp
bWl6ZWRGdWxsc2NyZWVuXTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgIGlmIChtX21vZGUgPT0g
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAgICAg
IH0gZWxzZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVTdGFuZGFyZEFuZE9wdGltaXplZCkgeworICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRy
b2xsZXIgZXhpdEZ1bGxTY3JlZW5BbmltYXRlZDpOTyBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wg
LCBOU0Vycm9yICopIHsKKyAgICAgICAgICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsK
KyAgICAgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1pemVkRnVs
bHNjcmVlbl07CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfSBlbHNlIGlmIChtX21vZGUgPT0g
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CiAgICAgICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9u
SGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKSB7CiAgICAgICAgICAgICAgICAgbV9leGl0Q29tcGxl
dGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldEJh
Y2tncm91bmRDb2xvcjpbW2dldFVJQ29sb3JDbGFzcygpIGNsZWFyQ29sb3JdIENHQ29sb3JdXTsK
QEAgLTEwMDUsOSArMTAzNywxMSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjppbnZhbGlkYXRlKCkKIHsKICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAg
W21fd2luZG93IHNldFJvb3RWaWV3Q29udHJvbGxlcjpuaWxdOwotICAgIGlmIChtX21vZGUgPT0g
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKKyAgICBtX3dp
bmRvdyA9IG5pbDsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsID0gbmlsOworICAgIGlmICht
X21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCB8
fCBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJk
QW5kT3B0aW1pemVkKQogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1p
emVkRnVsbHNjcmVlbl07Ci0gICAgZWxzZQorICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxl
bWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkIHx8IG1fbW9kZSA9PSBIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmRBbmRPcHRpbWl6ZWQpCiAgICAgICAg
IFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6Tk8gY29tcGxl
dGlvbkhhbmRsZXI6bmlsXTsKICAgICBtX3BsYXllckNvbnRyb2xsZXIgPSBuaWw7CiAgICAgW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKQEAgLTEwMjIsOCArMTA1Niw4
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmludmFsaWRhdGUoKQog
ICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6bmlsXTsK
ICAgICBtX3ZpZGVvTGF5ZXJDb250YWluZXIgPSBuaWw7CiAgICAgW1ttX3ZpZXdDb250cm9sbGVy
IHZpZXddIHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgIFttX3BsYXllckNvbnRyb2xsZXIgc2V0
RnVsbHNjcmVlbkludGVyZmFjZTpuaWxdOwogICAgIG1fdmlld0NvbnRyb2xsZXIgPSBuaWw7Ci0g
ICAgbV93aW5kb3cgPSBuaWw7CiAgICAgbV9wYXJlbnRWaWV3ID0gbmlsOwogICAgIG1fcGFyZW50
V2luZG93ID0gbmlsOwogfQpAQCAtMTAzMyw3ICsxMDY3LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpCiAgICAg
aWYgKCFtX2VudGVyUmVxdWVzdGVkKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKG1f
bW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQor
ICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9w
dGltaXplZCB8fCBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZVN0YW5kYXJkQW5kT3B0aW1pemVkKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgX19ibG9j
ayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7
CkBAIC0xMDUwLDUgKzEwODQsMzEgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpCiAgICAgICAgIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwtPnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpOwogfQogCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRPcHRpbWl6ZWRBY3RpdmUoYm9vbCBhY3RpdmUp
Cit7CisgICAgaWYgKCFhY3RpdmUgJiYgbV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGltaXplZCkKKyAgICAgICAgbV9tb2RlID0gSFRN
TE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkOworICAgIGVsc2UgaWYg
KGFjdGl2ZSAmJiBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZVN0YW5kYXJkKQorICAgICAgICBtX21vZGUgPSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmRBbmRPcHRpbWl6ZWQ7CisgICAgCisgICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwpCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZChtX21vZGUpOworCisgICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgW21fd2luZG93IHNldEhpZGRlbjptX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkXTsKKyAgICAKKyAgICBpZiAoIW1fZXhp
dFJlcXVlc3RlZCB8fCBhY3RpdmUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2V4aXRD
b21wbGV0ZWQgPSB0cnVlOworICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3Vu
ZENvbG9yOltbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl0gQ0dDb2xvcl1dOworICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29s
b3JDbGFzcygpIGNsZWFyQ29sb3JdXTsKKyAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgaWYg
KG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgfSk7Cit9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWwuaAppbmRleCAyOWVlYTE1ZDAzNjZhNTI4MDFiNzRkNWU0ZWY0MWViMmJhZDlhNTMxLi42
ZGQwYjBkZjY5NjFhZTM3Zjg1YWUzN2I4YTEyNDEyYmFkYjNiOWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaApAQCAt
NTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2
aXR5KFZpZGVvR3Jhdml0eSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlh
T3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdExlZ2li
bGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmdWxs
c2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkg
PSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAppbmRleCAwNTkw
YTBkOWEzNGQyNjliZWQ5YTUzYjhmMjQ2MmFlMjMwMTM4NjQyLi4xNmUxYTU2YjExOWNlYmIwZDMz
ODEwNjMyYzRkMDk3YzM3ODM1YTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxN
ZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgpAQCAtNzAsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpW
aWRlb0dyYXZpdHkpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBz
ZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBvdmVycmlkZTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90
IGluZGV4KSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZnVsbHNj
cmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8V1RGOjpBdG9taWNT
dHJpbmc+JiBvYnNlcnZlZEV2ZW50TmFtZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbQppbmRleCA4YzQ2MTdhNDE3MDE5NjBjNzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyLi5k
YjlkOTQ2OWY4YWExYzhiNDBmMmRiNDZkYjAwZDAzMmIwOTRmOGIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50Lm1tCkBAIC01NCw2ICs1NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OldlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50KCkKICAgICA6IEV2ZW50TGlzdGVuZXIoRXZlbnRMaXN0
ZW5lcjo6Q1BQRXZlbnRMaXN0ZW5lclR5cGUpCiAgICAgLCBtX2lzTGlzdGVuaW5nKGZhbHNlKQor
ICAgICwgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UobnVsbHB0cikKIHsKIH0KIApAQCAtMzc4
LDQgKzM3OSwxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQogICAgIHJldHVybiBzRXZlbnROYW1lQWxsOwog
fQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVu
TW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1
bGxzY3JlZW5Nb2RlKQoreworICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50PiBwcm90ZWN0KHRoaXMpOworICAgIFdlYlRocmVhZFJ1biheeworICAg
ICAgICBpZiAobV92aWRlb0VsZW1lbnQpCisgICAgICAgICAgICBtX3ZpZGVvRWxlbWVudC0+ZnVs
bHNjcmVlbk1vZGVDaGFuZ2VkKHZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgICAgICBwcm90ZWN0
LmNsZWFyKCk7CisgICAgfSk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA3ZDMxYjM4ODhjMzBhODI4YmFkYjYx
OTYwMTRjOTUzNjhhMWY4YTEyLi40MzYyYWQ4ZmMxNmQ1OGUwNmY2NDc2YWI3YWU2MDA5OTJkNzNk
MjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQpAQCAtMjM1LDcgKzIzNSw3IEBAIHN0YXRpYyBpbnQzMl90IGRldmljZU9yaWVudGF0aW9u
KCkKIAogLSAoQk9PTClfaXNQbGF5aW5nRnVsbHNjcmVlbk9wdGltaXplZFZpZGVvCiB7Ci0gICAg
cmV0dXJuIF9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkgJiYgX3BhZ2UtPnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKS0+bW9kZSgpID09IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQ7CisgICAgcmV0dXJu
IF9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkgJiYgKF9wYWdlLT52aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKCktPm1vZGUoKSA9PSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIHx8IF9wYWdlLT52aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyKCktPm1vZGUoKSA9PSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmRBbmRPcHRpbWl6ZWQp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDJiN2IxZjRmNGQz
MzljMTBiYzlmNmVlNTM4NTQwMjU4YjcxMGE4ZDguLjIyZTZhNDY2NDg5N2UzNTIwNzc4Y2UxNzVk
MDk0MmJkMzU3YmFiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTgsNiArNTgs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBX
ZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0
b3IsIHVpbnQzMl90IHZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZvaWQgc2V0U2Vla2FibGVS
YW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9p
ZCBzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRh
cmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKKyAgICB2b2lkIGZ1bGxzY3Jl
ZW5Nb2RlQ2hhbmdlZChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKTsKICAgICAKICAgICAvLyBGdWxsc2NyZWVuIE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lk
IGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bQppbmRleCBjZjdmYzFmMWEwMWYzMDgyOWFmMWJhYjJmMTFmZTQyMTYxODcwZTVhLi40MWNmOWMx
M2Y2YzUxMGE2OGVjYmQxYjZmZDAwZTgzZDNiNmYzYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbQpAQCAtOTksNiArOTksMTEgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQKICAgICBz
ZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCwgcGFyZW50Vmll
dywgbW9kZSk7CiB9CiAgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OlNldEZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChtb2RlKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vl
a2FibGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+JiByYW5n
ZXMpCiB7CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpj
cmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBjMWExNGJlZDFhNDM1YmVhNDI5NjM5MmJk
MDI3NjIyZTFmNzAxZDY1Li44ODc1YTg1YzRjMGRjM2VhMzA0OTQ2NWM3MGNiYmE2N2M3N2Q3OWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Niw3ICs4Niw4IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJG
cmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVu
Y2VQb3J0KTsKLSAgICAKKyAgICB2b2lkIHNldEZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50MzJf
dCB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKwogICAgIFdlYlBhZ2UqIG1fcGFnZTsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4gbV92aWRlb0VsZW1lbnQ7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDM5MzYxMjI5MjZkZmM1NTc4
MjM0ODU0Y2U4MzljZWFkOGE4ZGFhNjQuLjViMzU2Mjk1ZTA2NjVmMWRmN2QyMzczMTg4YTNmNDQ2
YmU0ZmJiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtNDEs
NSArNDEsNiBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBT
ZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkKICAgICBTZWxlY3RBdWRp
b01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIFNlbGVjdExlZ2libGVNZWRpYU9wdGlv
bih1aW50NjRfdCBpbmRleCkKKyAgICBTZXRGdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDMyX3Qg
dmlkZW9GdWxsc2NyZWVuTW9kZSkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXgg
Njc4YzAwOWI0NTVkYzUxYjhiYWFkODRiZDBiZWQ5NWExYzM1ODgwNS4uMjhjMGM5NDgwZTM4YjA0
MjU4MWIxMDVlOTFiNjNiYzc2NjAzMWRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC02OSw2
ICs2OSw3IEBAIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoUGFzc1JlZlB0cjxXZWJQYWdlPiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UuZ2V0KCkp
CiAgICAgLCBtX2lzQW5pbWF0aW5nKGZhbHNlKQogICAgICwgbV90YXJnZXRJc0Z1bGxzY3JlZW4o
ZmFsc2UpCisgICAgLCBtX2Z1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVs
bHNjcmVlbk1vZGVOb25lKQogICAgICwgbV9pc0Z1bGxzY3JlZW4oZmFsc2UpCiB7CiAgICAgc2V0
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKHRoaXMpOwpAQCAtMjU0LDYgKzI1NSwxMSBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChX
ZWJDb3JlOjpGbG9hdFJlY3QgYm91bgogICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwog
ICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0
KCkpOwogfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRGdWxsc2Ny
ZWVuTW9kZUNoYW5nZWQodWludDMyX3QgdmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sKKyAgICBmdWxs
c2NyZWVuTW9kZUNoYW5nZWQoKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
dmlkZW9GdWxsc2NyZWVuTW9kZSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCg==
</data>
<flag name="review"
          id="267204"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242880</attachid>
            <date>2014-12-08 21:41:50 -0800</date>
            <delta_ts>2014-12-08 21:41:50 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-139137-20141208214230.patch</filename>
            <type>text/plain</type>
            <size>29454</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2Nzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyYmU2NmU1M2I4YmZl
Y2RkYmY4YjFiZmVlMWZmMWU5ZDllZmM0OS4uODU1YTBmMTZhMzI3ZDQxZWU5NzU1NjlhN2VlNTU2
ZTFiYjVlZWNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTEyLTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgYWN0aXZhdGlu
ZyBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtb2RlIGZyb20gc3RhbmRhcmQgZnVsc2NyZWVuIG1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxMzcK
KworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgR29pbmcgZnJvbSBz
dGFuZGFyZCBmdWxsc2NyZWVuIG1vZGUgdG8gb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSByZXF1
aXJlcyB0aGUgYWJpbGl0eSB0bworICAgICAgICB1cGRhdGUgdGhlIGZ1bGxzY3JlZW4gbW9kZSBp
biBIVE1MTWVkaWFFbGVtZW50IGFuZCBhIG5ldyBzdGFuZGFyZC1hbmQtb3B0aW1pemVkLWZ1bGxz
Y3JlZW4gbW9kZS4KKworICAgICAgICBUaGlzIGNoYW5nZSBLVk8gb2JzZXJ2ZXMgQVZLaXQncyBv
cHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlIGFuZCBmb3J3YXJkcyB0aGUgY2hhbmdlIGRvd24gdG8g
SFRNTE1lZGlhRWxlbWVudCBzbyBpdCBjYW4gYWRqdXN0IGJlaGF2aW9yIGFwcHJvcHJpYXRlbHku
CisgICAgICAgIEl0IGFsc28gaGlkZXMgdGhlIHN0YW5kYXJkIGZ1bGxzY3JlZW4gd2luZG93IHdo
ZW4gZ29pbmcgaW50byB0aGlzIG1vZGUuCisgICAgICAgIFdoZW4gZXhpdGluZyBmdWxsc2NyZWVu
IGZyb20gc3RhbmRhcmQtYW5kLW9wdGltaXplZCwgZmlyc3QgZXhpdCBmdWxsc2NyZWVuIGltbWVk
aWF0ZWx5LCB0aGVuIHN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuLCBhbmQgbm90aWZ5IG9mIGNvbXBs
ZXRpb24gd2hlbgorICAgICAgICBvcHRpbWl6ZWRGdWxsc2NyZWVuIGdvZXMgaW5hY3RpdmUuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1bGxzY3JlZW5Nb2RlKToKKyAg
ICAgICAgICAgIFRyZWF0IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGltaXplZCBh
cyBhIGtpbmQgb2Ygb3B0aW1pemVkIG1vZGUuCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IE5l
dyBleHBvcnQgZm9yIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2Ny
ZWVuTW9kZUNoYW5nZWQKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGxheVR5cGUpOgorICAgICAgICAg
ICAgVHJlYXQgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkIGFzIGEga2lu
ZCBvZiBvcHRpbWl6ZWQgbW9kZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDog
QWRkIG5ldyBmdWxsc2NyZWVuIG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBVcGRhdGUgZnVsbHNjcmVlbiBtb2RlIHNvIGl0
IGRvZXMgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSBiZWhhdmlvcnMgd2hlbiBhcHBsaWNhYmxl
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oOiBEZWNsYXJlIHNldE9wdGltaXplZEFjdGl2ZQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2ViQVZWaWRl
b0xheWVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOl0pOiBvYnNlcnZlIG9wdGltaXplZEZ1bGxz
Y3JlZW5BY3RpdmUKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIG9ic2VydmVWYWx1ZUZvcktl
eVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IHJlc3BvbmQgdG8gY2hhbmdlcyB0byBv
cHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQpOiBJbml0IG1lbWJl
cnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cGxheWVyQ29u
dHJvbGxlcik6IAorICAgICAgICAgICAgR2l2ZSBwbGF5ZXIgY29udHJvbGxlciBhIHJlZmVyZW5j
ZSB0byB0aGUgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlIHNvIGl0IGNhbiBwYXNzIGFsb25n
IG1vZGUgY2hhbmdlIHN0YXRlLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6IEhhbmRsZSBuZXcgZnVsbHNjcmVlbiBtb2Rlcy4KKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6
IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxp
ZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0T3B0aW1pemVkQWN0aXZlKTogSGFuZGxlIGNoYW5n
ZXMgdG8gZnVsbHNjcmVlbiBtb2RlLgorICAgICAgICAgICAgQWxzbyBoYW5kbGUgdGhlIGNhc2Ug
dGhhdCBleGl0aW5nIGZ1bGxzY3JlZW4gaGFwcGVuZCB3aGVuIG9wdGltaXplZCBtb2RlIGVuZHMu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6IGRlY2xh
cmUgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDogZGVjbGFyZSBmdWxsc2NyZWVuTW9kZUNo
YW5nZWQoKQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbTogYWRkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQpOiBJbml0IG1lbWJlcnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKTogQWRkZWQuIFVwZGF0ZSB2
aWRlbyBlbGVtZW50IGZ1bGxzY3JlZW4gbW9kZS4KKwogMjAxNC0xMi0wMyAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIEZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxSZXF1ZXN0UmVzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlYTlk
NGQ4NWFhNmIxMjQ5YzM3ZTExYjgzYTA1MTVjYjExNDIwOWQzLi4xOWNkODA1ZThmZmQzNGM0OWU0
MjQ1NjkzMTUxYWQyYjRmYzg5M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQt
MTItMDEgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJs
ZSBhY3RpdmF0aW5nIG9wdGltaXplZCBmdWxsc2NyZWVuIG1vZGUgZnJvbSBzdGFuZGFyZCBmdWxz
Y3JlZW4gbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzOTEzNworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICBHb2luZyBmcm9tIHN0YW5kYXJkIGZ1bGxzY3JlZW4gbW9kZSB0byBvcHRpbWl6ZWQgZnVsbHNj
cmVlbiBtb2RlIHJlcXVpcmVzIHRoZSBhYmlsaXR5IHRvCisgICAgICAgIHVwZGF0ZSB0aGUgZnVs
bHNjcmVlbiBtb2RlIGFuZCBhIG5ldyBzdGFuZGFyZC1hbmQtb3B0aW1pemVkLWZ1bGxzY3JlZW4g
bW9kZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0Z1bGxzY3JlZW5PcHRpbWl6ZWRWaWRlb10pOiAK
KyAgICAgICAgVHJlYXQgbmV3IHN0YW5kYXJkLWFuZC1vcHRpbWl6ZWQgYXMgYSBraW5kIG9mIG9w
dGltaXplZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oOiBJUEMgZnVsbHNjcmVlbiBtb2RlIGNoYW5nZXMKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTogZGl0dG8KKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTW9kZUNo
YW5nZWQpOiBkaXRvCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oOiBkaXR0bworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IGRpdHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbTogZGl0bworICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKTogZGl0dG8K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0RnVsbHNjcmVl
bk1vZGVDaGFuZ2VkKTogZGl0dG8KKwogMjAxNC0xMi0wMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3
NjQ1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9N
ZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGEwY2M0ZDc2ZDI4ZDZmN2I2Nzc2Yjc0OGE0
NDVlNDM1MzAzNzBlMzguLjZkMzFhOTZjN2JlZWNmNWY1ODIzOWJlMTIwNDJiZDFmNjIyY2UyOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtMjk0LDE5ICsyOTQsMTIgQEAgU3RyaW5nIE1lZGlh
Q29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9kZSgpIGNvbnN0CiAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0aW1pemVkLCAoQVNDSUlMaXRlcmFsKCJvcHRpbWl6
ZWQiKSkpOwogICAgIFN0cmluZyBtb2RlID0gbm9uZTsKIAotICAgIGVudW0gVmlkZW9GdWxsc2Ny
ZWVuTW9kZSB7IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQsIFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQgfTsKLQotICAgIHN3aXRjaCAobV9t
ZWRpYUVsZW1lbnQtPmZ1bGxzY3JlZW5Nb2RlKCkpIHsKLSAgICBjYXNlIEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lOgorICAgIGlmIChtX21lZGlhRWxlbWVudC0+ZnVs
bHNjcmVlbk1vZGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSkKICAgICAgICAgbW9kZSA9IG5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkOgorICAgIGVsc2UgaWYgKG1f
bWVkaWFFbGVtZW50LT5mdWxsc2NyZWVuTW9kZSgpID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKICAgICAgICAgbW9kZSA9IHN0YW5kYXJkOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVP
cHRpbWl6ZWQ6CisgICAgZWxzZSBpZiAobV9tZWRpYUVsZW1lbnQtPmZ1bGxzY3JlZW5Nb2RlKCkg
JiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQogICAgICAg
ICBtb2RlID0gb3B0aW1pemVkOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgCiAgICAgTE9H
KE1lZGlhLCAiTWVkaWFDb250cm9sc0hvc3Q6OmZ1bGxzY3JlZW5Nb2RlIC0gcmV0dXJuaW5nIFwi
JXNcIiIsIG1vZGUudXRmOCgpLmRhdGEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzgz
NzIxMmZlYjRlZDVjMjUyYzZlZWQ2NmNkYjI1NDNkMjFlNDNmNy4uZjhlY2UyMmU3Y2JjNjRlOGYx
Y2RiMDdkOTg2YjMxNmQzNzE1N2I2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0NjksNiAr
MzQ2OSw3IEBAIF9fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQxOHNldFZpZGVvTGF5ZXJGcmFtZUVOU185RmxvYXRSCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjBiZWdpblNjYW5uaW5nRm9yd2FyZEV2CiBfX1pO
N1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjBzZXRWaWRlb0xh
eWVyR3Jhdml0eUVOU18yM1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsMTJWaWRlb0dyYXZpdHlFCiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjFiZWdpblNj
YW5uaW5nQmFja3dhcmRFdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudDIxZnVsbHNjcmVlbk1vZGVDaGFuZ2VkRWoKIF9fWk43V2ViQ29yZTM1V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQyMXJlcXVlc3RFeGl0RnVsbHNjcmVlbkV2CiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjJzZWxlY3RB
dWRpb01lZGlhT3B0aW9uRXkKIF9fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQyM3NldFZpZGVvRnVsbHNjcmVlbkxheWVyRVA3Q0FMYXllcgpAQCAtMzQ4OSw3
ICszNDkwLDcgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDExc2V0RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUzMldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTRzZXRDdXJyZW50VGltZUVkZAogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRXYK
LV9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNXNldHVwRnVs
bHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJVmlld05TXzE2SFRNTE1lZGlhRWxlbWVu
dDE5VmlkZW9GdWxsc2NyZWVuTW9kZUUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxNXNldHVwRnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJ
Vmlld2oKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2Ns
ZWFudXBGdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQxN3NldFNlZWthYmxlUmFuZ2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25z
RWJmZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNzQ1OTEx
NTg3MTVhMDYwOTZlOTA2MjYwNWMwOWU5ZDllNzhjNWJkNi4uMzFlMzk1ZjFiZTFlNTFmZTQyMzk3
NzA0ZGYwNDMxMzljODMwZjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC01OTk2LDE4ICs1OTk2LDE0IEBAIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIEhU
TUxNZWRpYUVsZW1lbnQ6OnByZXNlbnRhdGlvblR5cGUoKSBjb25zdAogCiBNZWRpYVNlc3Npb246
OkRpc3BsYXlUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSkgewotICAgIGNhc2UgVmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkOgorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkKQogICAgICAgICByZXR1cm4gTWVkaWFTZXNzaW9uOjpGdWxs
c2NyZWVuOwotICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZDoKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlICYgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAg
ICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6T3B0aW1pemVkOwotICAgIGNhc2UgVmlkZW9GdWxs
c2NyZWVuTW9kZU5vbmU6CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1
bGxzY3JlZW5Nb2RlTm9uZSkKICAgICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6Tm9ybWFsOwot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVh
azsKLSAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTWVkaWFT
ZXNzaW9uOjpOb3JtYWw7CiB9CiAKQEAgLTYwNzUsNyArNjA3MSw3IEBAIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6b3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbigpIGNvbnN0CiAg
ICAgaWYgKG1fcGxheWVyICYmIG1fcGxheWVyLT5pc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVs
ZXNzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGUgJiBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDMyZmEzOTE4OWFlYWRhMWM4ZTBlMWNjMDkyOTIxZGM3
N2NkZmFjNWIuLjNmZTQ0NTIyMDYwZWY3ZDhkN2I2ZDdlZWQ0ODY3ZDQzNDE2ZDAzMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOTIsOCArMzkyLDE2IEBAIHB1
YmxpYzoKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVu
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUoKTsKLSAg
ICBlbnVtIFZpZGVvRnVsbHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlk
ZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07
CisKKyAgICBlbnVtIHsKKyAgICAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgPSAwLAorICAg
ICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAsCisgICAgICAgIFZpZGVv
RnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQgPSAxIDw8IDEsCisgICAgfTsKKyAgICB0eXBlZGVmIHVp
bnQzMl90IFZpZGVvRnVsbHNjcmVlbk1vZGU7CisKICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1
bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOyB9Cisg
ICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSB7
IG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9IG1vZGU7IH0KIAogICAgIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggODNjNTUxYzU4
OWRkMmJiYzMyZDEzZmYyOGJjMDgxNDYyOThlN2MzMy4uZDY1MmE3N2Q2NTY5Mjc1N2YyYmI5OGM5
ZTg3MmJkMmE5OTdlNTg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg5LDYg
Kzg5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXF1ZXN0
SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCk7CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICB2b2lkIHNl
dElzT3B0aW1pemVkKGJvb2wpOwogCiBwcm90ZWN0ZWQ6CiAgICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tCmluZGV4IGIxZDMzYTk2MzU0ZGVlMTQ4MDRlY2EwYjkzM2E0MWYzYzJh
NDVkYzQuLmFiMDJjNWQ0Mzg1MDEyMWY5YWNkYzNiN2NiN2NkNDY3YTMyNjVkY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTg1LDggKzg1LDkgQEAgU09GVF9MSU5LX0NPTlNU
QU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBXZWJBVk1lZGlh
U2VsZWN0aW9uT3B0aW9uICpfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKIH0K
IAotQHByb3BlcnR5KHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVy
UHJveHk7Ci1AcHJvcGVydHkoYXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdh
dGU7CitAcHJvcGVydHkgKHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9s
bGVyUHJveHk7CitAcHJvcGVydHkgKGFzc2lnbikgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIGRl
bGVnYXRlOworQHByb3BlcnR5IChhc3NpZ24pIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0KiBmdWxsc2NyZWVuSW50ZXJmYWNlOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGNh
blNjYW5Gb3J3YXJkOwogQHByb3BlcnR5IEJPT0wgY2FuU2NhbkJhY2t3YXJkOwpAQCAtOTQsNyAr
OTUsNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwg
Q01UaW1lKQogQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBjYW5TZWVrVG9FbmQ7CiAKIEBwcm9w
ZXJ0eSBCT09MIGNhblBsYXk7Ci1AcHJvcGVydHkoZ2V0dGVyPWlzUGxheWluZykgQk9PTCBwbGF5
aW5nOworQHByb3BlcnR5IChnZXR0ZXI9aXNQbGF5aW5nKSBCT09MIHBsYXlpbmc7CiBAcHJvcGVy
dHkgQk9PTCBjYW5QYXVzZTsKIEBwcm9wZXJ0eSBCT09MIGNhblRvZ2dsZVBsYXliYWNrOwogQHBy
b3BlcnR5IGRvdWJsZSByYXRlOwpAQCAtMTA2LDEwICsxMDcsMTAgQEAgU09GVF9MSU5LX0NPTlNU
QU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSBOU1Rp
bWVJbnRlcnZhbCBtaW5UaW1lOwogQHByb3BlcnR5IE5TVGltZUludGVydmFsIG1heFRpbWU7CiBA
cHJvcGVydHkgTlNUaW1lSW50ZXJ2YWwgY29udGVudER1cmF0aW9uV2l0aGluRW5kVGltZXM7Ci1A
cHJvcGVydHkocmV0YWluKSBOU0FycmF5ICpsb2FkZWRUaW1lUmFuZ2VzOworQHByb3BlcnR5IChy
ZXRhaW4pIE5TQXJyYXkgKmxvYWRlZFRpbWVSYW5nZXM7CiBAcHJvcGVydHkgQVZQbGF5ZXJDb250
cm9sbGVyU3RhdHVzIHN0YXR1czsKLUBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRp
bWluZzsKLUBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdlczsKK0Bw
cm9wZXJ0eSAocmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7CitAcHJvcGVydHkgKHJldGFp
bikgTlNBcnJheSAqc2Vla2FibGVUaW1lUmFuZ2VzOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIGhhc01lZGlhU2VsZWN0aW9uT3B0aW9uczsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
aGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnM7CkBAIC01MjIsOSArNTIzLDI5IEBAIFNPRlRf
TElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAKIC0g
KHZvaWQpc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilw
bGF5ZXJWaWV3Q29udHJvbGxlcgogeworICAgIE5TU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0
cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3Iob3B0aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOwor
CisgICAgW19hdlBsYXllclZpZXdDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5
UGF0aDpwcm9wZXJ0eU5hbWVdOwogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVyID0gcGxheWVy
Vmlld0NvbnRyb2xsZXI7CisgICAgW19hdlBsYXllclZpZXdDb250cm9sbGVyIGFkZE9ic2VydmVy
OnNlbGYgZm9yS2V5UGF0aDpwcm9wZXJ0eU5hbWUgb3B0aW9uczooTlNLZXlWYWx1ZU9ic2Vydmlu
Z09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQpIGNvbnRleHQ6bmlsXTsK
IH0KIAorLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGgg
b2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0
Oih2b2lkICopY29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVT
RURfUEFSQU0ob2JqZWN0KTsKKworICAgIE5TU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0cmlu
Z0Zyb21TZWxlY3RvcihAc2VsZWN0b3Iob3B0aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOworCisg
ICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpwcm9wZXJ0eU5hbWVdICYmIGNoYW5nZVtO
U0tleVZhbHVlQ2hhbmdlTmV3S2V5XSkgeworICAgICAgICBCT09MIG9sZEFjdGl2ZSA9IFtjaGFu
Z2VbTlNLZXlWYWx1ZUNoYW5nZU9sZEtleV0gYm9vbFZhbHVlXTsKKyAgICAgICAgQk9PTCBhY3Rp
dmUgPSBbY2hhbmdlW05TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGJvb2xWYWx1ZV07CisgICAgICAg
IGlmIChvbGRBY3RpdmUgIT0gYWN0aXZlICYmIFtfYXZQbGF5ZXJDb250cm9sbGVyIGZ1bGxzY3Jl
ZW5JbnRlcmZhY2VdKQorICAgICAgICAgICAgW19hdlBsYXllckNvbnRyb2xsZXIgZnVsbHNjcmVl
bkludGVyZmFjZV0tPnNldElzT3B0aW1pemVkKGFjdGl2ZSk7CisgICAgfQorfQorCisKIC0gKHZv
aWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKIHsKICAgICBfdmlk
ZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7CkBAIC01OTMsNiArNjE0LDExIEBAIFNPRlRfTElO
S19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAKIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdCgpCiAgICAgOiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKG51bGxwdHIpCisgICAgLCBtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihudWxscHRyKQorICAgICwgbV9tb2RlKEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQorICAgICwgbV9leGl0UmVxdWVzdGVkKGZh
bHNlKQorICAgICwgbV9leGl0Q29tcGxldGVkKGZhbHNlKQorICAgICwgbV9lbnRlclJlcXVlc3Rl
ZChmYWxzZSkKIHsKIH0KIApAQCAtNjAzLDYgKzYyOSw3IEBAIFdlYkFWUGxheWVyQ29udHJvbGxl
ciAqV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnBsYXllckNvbnRyb2xsZXIoKQog
ICAgICAgICBtX3BsYXllckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQog
ICAgICAgICAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXREZWxlZ2F0ZTptX3ZpZGVvRnVsbHNj
cmVlbk1vZGVsXTsKKyAgICAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXRGdWxsc2NyZWVuSW50
ZXJmYWNlOnRoaXNdOwogICAgIH0KICAgICByZXR1cm4gbV9wbGF5ZXJDb250cm9sbGVyLmdldCgp
OwogfQpAQCAtODkyLDggKzkxOSw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbigpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9XTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgIGlmIChtX21vZGUg
PT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAg
ICAgIH0gZWxzZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGVTdGFuZGFyZCkgewogICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZW50
ZXJGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hv
d3NQbGF5YmFja0NvbnRyb2xzOllFU107CkBAIC05MzksOCArOTY1LDEyIEBAIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJl
Y3QgZmluYWxSZWN0CiAgICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkgewogICAgICAgICAgICAgW21fd2luZG93IHNldEhp
ZGRlbjpOT107CiAgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1p
emVkRnVsbHNjcmVlbl07Ci0gICAgICAgIH0gZWxzZQotICAgICAgICBpZiAobV9tb2RlID09IEhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgeworICAgICAgICB9
IGVsc2UgaWYgKG1fbW9kZSA9PSAoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU9wdGltaXplZCB8IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFy
ZCkpIHsKKyAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVu
QW5pbWF0ZWQ6Tk8gY29tcGxldGlvbkhhbmRsZXI6XihCT09MICwgTlNFcnJvciAqKSB7CisgICAg
ICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CisgICAgICAgICAgICAgICAgW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOworICAgICAgICAg
ICAgfV07CisgICAgICAgIH0gZWxzZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICAgICAgW21fcGxheWVyVmlld0Nv
bnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vy
cm9yKikgewogICAgICAgICAgICAgICAgIG1fZXhpdENvbXBsZXRlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRV
SUNvbG9yQ2xhc3MoKSBjbGVhckNvbG9yXSBDR0NvbG9yXV07CkBAIC0xMDA2LDkgKzEwMzYsMTEg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7
CiAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwogICAgIFttX3dpbmRvdyBzZXRSb290Vmll
d0NvbnRyb2xsZXI6bmlsXTsKLSAgICBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpCisgICAgbV93aW5kb3cgPSBuaWw7CisgICAgbV92
aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG5pbDsKKyAgICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxl
bWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAgICAgICAgW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOwotICAgIGVsc2UKKyAgICBpZiAo
bV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKQog
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5P
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAgICAgbV9wbGF5ZXJDb250cm9sbGVyID0gbmlsOwog
ICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CkBAIC0xMDIzLDgg
KzEwNTUsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjppbnZhbGlk
YXRlKCkKICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVy
Om5pbF07CiAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0gbmlsOwogICAgIFtbbV92aWV3Q29u
dHJvbGxlciB2aWV3XSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICBbbV9wbGF5ZXJDb250cm9s
bGVyIHNldEZ1bGxzY3JlZW5JbnRlcmZhY2U6bmlsXTsKICAgICBtX3ZpZXdDb250cm9sbGVyID0g
bmlsOwotICAgIG1fd2luZG93ID0gbmlsOwogICAgIG1fcGFyZW50VmlldyA9IG5pbDsKICAgICBt
X3BhcmVudFdpbmRvdyA9IG5pbDsKIH0KQEAgLTEwMzQsNyArMTA2Niw3IEBAIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4o
KQogICAgIGlmICghbV9lbnRlclJlcXVlc3RlZCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAg
IGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCkKKyAgICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVu
TW9kZU9wdGltaXplZCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIF9fYmxvY2sgUmVmUHRy
PFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwpAQCAtMTA1
MSw1ICsxMDgzLDMzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJl
cXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0SXNPcHRpbWl6ZWQoYm9vbCBhY3RpdmUpCit7CisgICAgaWYg
KG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkg
eworICAgICAgICBpZiAoIWFjdGl2ZSAmJiBtX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgICAgICAgICAgbV9tb2RlICY9IH5IVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQ7CisgICAgICAgIGVsc2UgaWYg
KGFjdGl2ZSAmJiB+bV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU9wdGltaXplZCkKKyAgICAgICAgICAgIG1fbW9kZSB8PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQ7CisgICAgfQorICAgIAorICAgIGlmIChtX3ZpZGVvRnVs
bHNjcmVlbk1vZGVsKQorICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVu
TW9kZUNoYW5nZWQobV9tb2RlKTsKKworICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIFttX3dpbmRvdyBzZXRIaWRkZW46bV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZU9wdGltaXplZF07CisgICAgCisgICAgaWYgKCFtX2V4aXRSZXF1ZXN0ZWQg
fHwgYWN0aXZlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9leGl0Q29tcGxldGVkID0g
dHJ1ZTsKKyAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldEJhY2tncm91bmRDb2xvcjpbW2dl
dFVJQ29sb3JDbGFzcygpIGNsZWFyQ29sb3JdIENHQ29sb3JdXTsKKyAgICBbW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgdmlld10gc2V0QmFja2dyb3VuZENvbG9yOltnZXRVSUNvbG9yQ2xhc3MoKSBj
bGVhckNvbG9yXV07CisgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgIGlmIChtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LT5kaWRFeGl0RnVsbHNjcmVlbigpOworICAgIH0pOworfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKaW5k
ZXggMjllZWExNWQwMzY2YTUyODAxYjc0ZDVlNGVmNDFlYjJiYWQ5YTUzMS4uNmRkMGIwZGY2OTYx
YWUzN2Y4NWFlMzdiOGExMjQxMmJhZGIzYjlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKQEAgLTUyLDYgKzUyLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShWaWRlb0dy
YXZpdHkpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50
NjRfdCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRp
b24odWludDY0X3QgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVD
aGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKaW5kZXggMDU5MGEwZDlhMzRkMjY5
YmVkOWE1M2I4ZjI0NjJhZTIzMDEzODY0Mi4uMTZlMWE1NmIxMTljZWJiMGQzMzgxMDYzMmM0ZDA5
N2MzNzgzNWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKQEAgLTMxLDYg
KzMxLDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0ZW5lci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAg
LTcwLDYgKzcxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBz
ZXRWaWRlb0xheWVyR3Jhdml0eShXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5
KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9N
ZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgb3Zl
cnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hh
bmdlZChIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdURjo6QXRvbWljU3RyaW5nPiYgb2Jz
ZXJ2ZWRFdmVudE5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5k
ZXggOGM0NjE3YTQxNzAxOTYwYzc5MzJiY2U5ODU5NGUzNDY1ODQxOTAwMi4uZGI5ZDk0NjlmOGFh
MWM4YjQwZjJkYjQ2ZGIwMGQwMzJiMDk0ZjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5tbQpAQCAtNTQsNiArNTQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudCgpCiAgICAgOiBFdmVudExpc3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2
ZW50TGlzdGVuZXJUeXBlKQogICAgICwgbV9pc0xpc3RlbmluZyhmYWxzZSkKKyAgICAsIG1fdmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlKG51bGxwdHIpCiB7CiB9CiAKQEAgLTM3OCw0ICszNzksMTQg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dDo6ZXZlbnROYW1lQWxsKCkKICAgICByZXR1cm4gc0V2ZW50TmFtZUFsbDsKIH0KIAordm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2Vk
KEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9k
ZSkKK3sKKyAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudD4gcHJvdGVjdCh0aGlzKTsKKyAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgaWYgKG1f
dmlkZW9FbGVtZW50KQorICAgICAgICAgICAgbV92aWRlb0VsZW1lbnQtPmZ1bGxzY3JlZW5Nb2Rl
Q2hhbmdlZCh2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICAgICAgcHJvdGVjdC5jbGVhcigpOwor
ICAgIH0pOworfQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYWI0YzU1MDg4NWQ4MDhiYTAzNzg0MTcwOGY5Yzg3MTFh
NjM3YWZjYi4uNzFkMzY4NTRkOWRjZTBjNDZiYThkMTgyNTY0MDljOTQxNDkzOTYwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIz
NSw3ICsyMzUsMTMgQEAgc3RhdGljIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24oKQogCiAtIChC
T09MKV9pc1BsYXlpbmdGdWxsc2NyZWVuT3B0aW1pemVkVmlkZW8KIHsKLSAgICByZXR1cm4gX3Bh
Z2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKSAmJiBfcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFu
YWdlcigpLT5tb2RlKCkgPT0gV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxl
bWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZDsKKyAgICBpZiAoIV9wYWdlLT52aWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBp
ZiAoX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+bW9kZSgpICYgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgcmV0dXJuIGZhbHNlOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDJiN2IxZjRmNGQzMzljMTBi
YzlmNmVlNTM4NTQwMjU4YjcxMGE4ZDguLmNjNDNkMzBmYjdlNmM0MjE4ZmUxZWEzYWFiNmU5ZmQ0
MmRhMmM4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTUsOSArNTUsMTAgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gVHJhbnNsYXRl
IHRvIEZ1bGxzY3JlZW5JbnRlcmZhY2UKLSAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1
aW50MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0Rldmlj
ZVNjYWxlRmFjdG9yLCB1aW50MzJfdCB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICB2b2lkIHNl
dHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVj
dCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVj
dG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiYpOwogICAgIHZvaWQgc2V0RXh0
ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBl
LCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CisgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNo
YW5nZWQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAg
ICAgCiAgICAgLy8gRnVsbHNjcmVlbiBPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1
cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggOWM0NTY3ZTQxNWZkNDZiYzA2NWZiOTkwMjA1NjFlM2Y5NzZlZDRh
YS4uZTFhMjcyZTIyYjFlMGFlYjY3MjNkMmZmNGQzNjRkMmJjMWUwNWMyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxLDcgKzMxLDcgQEAgbWVz
c2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRFeHRlcm5h
bFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0
cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICBTZXREdXJhdGlvbihkb3VibGUgZHVyYXRp
b24pCiAgICAgU2V0UmF0ZShib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCi0gICAgU2V0dXBG
dWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBp
bml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCB1aW50MzJfdCB2aWRlb0Z1bGxz
Y3JlZW5Nb2RlKQorICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVy
SUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3Rv
ciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1
bGxzY3JlZW5Nb2RlKQogICAgIEVudGVyRnVsbHNjcmVlbigpCiAgICAgRXhpdEZ1bGxzY3JlZW4o
V2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBjZjdmYzFmMWEwMWYzMDgyOWFmMWJhYjJmMTFm
ZTQyMTYxODcwZTVhLi5kOTEzMjdkZGE5MzViZTExOWJhY2E2ZmRlOTI0Y2RiOGU1YzYwZmEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAgICAgbV9sYXllckhvc3Qu
Y2xlYXIoKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVw
RnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3Qg
aW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgdWludDMyX3Qgdmlk
ZW9GdWxsc2NyZWVuTW9kZSkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRS
ZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIEhUTUxNZWRp
YUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICAg
ICBBU1NFUlQodmlkZW9MYXllcklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRlckxh
eWVyKHZpZGVvTGF5ZXJJRCk7CkBAIC05NSw4ICs5NSwxMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5
ZXJJRAogICAgIH0KIAogICAgIFVJVmlldyAqcGFyZW50VmlldyA9IGRvd25jYXN0PFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCptX3BhZ2UtPmRyYXdpbmdBcmVhKCkpLnJlbW90ZUxh
eWVyVHJlZUhvc3QoKS5yb290TGF5ZXIoKTsKLSAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlPih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICBzZXR1cEZ1bGxzY3JlZW4o
Km1fbGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCwgcGFyZW50VmlldywgbW9kZSk7CisgICAg
c2V0dXBGdWxsc2NyZWVuKCptX2xheWVySG9zdC5nZXQoKSwgaW5pdGlhbFJlY3QsIHBhcmVudFZp
ZXcsIHZpZGVvRnVsbHNjcmVlbk1vZGUpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQobW9kZSksIG1f
cGFnZS0+cGFnZUlEKCkpOwogfQogICAgIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBk
b3VibGU+PiYgcmFuZ2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGMxYTE0YmVkMWE0MzViZWE0
Mjk2MzkyYmQwMjc2MjJlMWY3MDFkNjUuLmUyNWQyNDczY2MyOWE5MzRhM2M1NjM5OTI5YjkzZDky
NTI4NzlkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQpOwogICAgIHZvaWQgc2V0Vmlk
ZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNo
bWVudCBmZW5jZVBvcnQpOwotICAgIAorCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIFJlZlB0
cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50PiBtX3ZpZGVvRWxlbWVudDsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMzkzNjEyMjkyNmRmYzU1Nzgy
MzQ4NTRjZTgzOWNlYWQ4YThkYWE2NC4uYTk4ODZmYmQ0ZWQ3NTlkMmRlN2Y5MjI5Nzg2ZjNkZmI3
YjBlNWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC00MSw1
ICs0MSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFNl
dFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5KQogICAgIFNlbGVjdEF1ZGlv
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgU2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9u
KHVpbnQ2NF90IGluZGV4KQorICAgIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDY3OGMwMDliNDU1ZGM1MWI4YmFhZDg0
YmQwYmVkOTVhMWMzNTg4MDUuLmIyNGUyMmYxOTM5MDg5YjUwOTgzYThhYTA5YmZmYTk5NjFkZjQx
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtNjksNiArNjksNyBAQCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKFBhc3NSZWZQdHI8V2ViUGFn
ZT4gcGFnZSkKICAgICA6IG1fcGFnZShwYWdlLmdldCgpKQogICAgICwgbV9pc0FuaW1hdGluZyhm
YWxzZSkKICAgICAsIG1fdGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKQorICAgICwgbV9mdWxsc2Ny
ZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKICAgICAs
IG1faXNGdWxsc2NyZWVuKGZhbHNlKQogewogICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSh0aGlzKTsKQEAgLTI1NCw3ICsyNTUsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bgog
ICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwogICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0KCkpOwogfQotCisgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242884</attachid>
            <date>2014-12-08 22:19:04 -0800</date>
            <delta_ts>2014-12-08 22:19:04 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-139137-20141208221943.patch</filename>
            <type>text/plain</type>
            <size>28478</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2Nzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyYmU2NmU1M2I4YmZl
Y2RkYmY4YjFiZmVlMWZmMWU5ZDllZmM0OS4uODU1YTBmMTZhMzI3ZDQxZWU5NzU1NjlhN2VlNTU2
ZTFiYjVlZWNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTEyLTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgYWN0aXZhdGlu
ZyBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtb2RlIGZyb20gc3RhbmRhcmQgZnVsc2NyZWVuIG1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxMzcK
KworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgR29pbmcgZnJvbSBz
dGFuZGFyZCBmdWxsc2NyZWVuIG1vZGUgdG8gb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSByZXF1
aXJlcyB0aGUgYWJpbGl0eSB0bworICAgICAgICB1cGRhdGUgdGhlIGZ1bGxzY3JlZW4gbW9kZSBp
biBIVE1MTWVkaWFFbGVtZW50IGFuZCBhIG5ldyBzdGFuZGFyZC1hbmQtb3B0aW1pemVkLWZ1bGxz
Y3JlZW4gbW9kZS4KKworICAgICAgICBUaGlzIGNoYW5nZSBLVk8gb2JzZXJ2ZXMgQVZLaXQncyBv
cHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlIGFuZCBmb3J3YXJkcyB0aGUgY2hhbmdlIGRvd24gdG8g
SFRNTE1lZGlhRWxlbWVudCBzbyBpdCBjYW4gYWRqdXN0IGJlaGF2aW9yIGFwcHJvcHJpYXRlbHku
CisgICAgICAgIEl0IGFsc28gaGlkZXMgdGhlIHN0YW5kYXJkIGZ1bGxzY3JlZW4gd2luZG93IHdo
ZW4gZ29pbmcgaW50byB0aGlzIG1vZGUuCisgICAgICAgIFdoZW4gZXhpdGluZyBmdWxsc2NyZWVu
IGZyb20gc3RhbmRhcmQtYW5kLW9wdGltaXplZCwgZmlyc3QgZXhpdCBmdWxsc2NyZWVuIGltbWVk
aWF0ZWx5LCB0aGVuIHN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuLCBhbmQgbm90aWZ5IG9mIGNvbXBs
ZXRpb24gd2hlbgorICAgICAgICBvcHRpbWl6ZWRGdWxsc2NyZWVuIGdvZXMgaW5hY3RpdmUuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1bGxzY3JlZW5Nb2RlKToKKyAg
ICAgICAgICAgIFRyZWF0IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGltaXplZCBh
cyBhIGtpbmQgb2Ygb3B0aW1pemVkIG1vZGUuCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IE5l
dyBleHBvcnQgZm9yIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2Ny
ZWVuTW9kZUNoYW5nZWQKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGxheVR5cGUpOgorICAgICAgICAg
ICAgVHJlYXQgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkIGFzIGEga2lu
ZCBvZiBvcHRpbWl6ZWQgbW9kZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDog
QWRkIG5ldyBmdWxsc2NyZWVuIG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBVcGRhdGUgZnVsbHNjcmVlbiBtb2RlIHNvIGl0
IGRvZXMgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSBiZWhhdmlvcnMgd2hlbiBhcHBsaWNhYmxl
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oOiBEZWNsYXJlIHNldE9wdGltaXplZEFjdGl2ZQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2ViQVZWaWRl
b0xheWVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOl0pOiBvYnNlcnZlIG9wdGltaXplZEZ1bGxz
Y3JlZW5BY3RpdmUKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIG9ic2VydmVWYWx1ZUZvcktl
eVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IHJlc3BvbmQgdG8gY2hhbmdlcyB0byBv
cHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQpOiBJbml0IG1lbWJl
cnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cGxheWVyQ29u
dHJvbGxlcik6IAorICAgICAgICAgICAgR2l2ZSBwbGF5ZXIgY29udHJvbGxlciBhIHJlZmVyZW5j
ZSB0byB0aGUgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlIHNvIGl0IGNhbiBwYXNzIGFsb25n
IG1vZGUgY2hhbmdlIHN0YXRlLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6IEhhbmRsZSBuZXcgZnVsbHNjcmVlbiBtb2Rlcy4KKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6
IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxp
ZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0T3B0aW1pemVkQWN0aXZlKTogSGFuZGxlIGNoYW5n
ZXMgdG8gZnVsbHNjcmVlbiBtb2RlLgorICAgICAgICAgICAgQWxzbyBoYW5kbGUgdGhlIGNhc2Ug
dGhhdCBleGl0aW5nIGZ1bGxzY3JlZW4gaGFwcGVuZCB3aGVuIG9wdGltaXplZCBtb2RlIGVuZHMu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6IGRlY2xh
cmUgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDogZGVjbGFyZSBmdWxsc2NyZWVuTW9kZUNo
YW5nZWQoKQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbTogYWRkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQpOiBJbml0IG1lbWJlcnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKTogQWRkZWQuIFVwZGF0ZSB2
aWRlbyBlbGVtZW50IGZ1bGxzY3JlZW4gbW9kZS4KKwogMjAxNC0xMi0wMyAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIEZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxSZXF1ZXN0UmVzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlYTlk
NGQ4NWFhNmIxMjQ5YzM3ZTExYjgzYTA1MTVjYjExNDIwOWQzLi4xOWNkODA1ZThmZmQzNGM0OWU0
MjQ1NjkzMTUxYWQyYjRmYzg5M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQt
MTItMDEgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJs
ZSBhY3RpdmF0aW5nIG9wdGltaXplZCBmdWxsc2NyZWVuIG1vZGUgZnJvbSBzdGFuZGFyZCBmdWxz
Y3JlZW4gbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzOTEzNworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICBHb2luZyBmcm9tIHN0YW5kYXJkIGZ1bGxzY3JlZW4gbW9kZSB0byBvcHRpbWl6ZWQgZnVsbHNj
cmVlbiBtb2RlIHJlcXVpcmVzIHRoZSBhYmlsaXR5IHRvCisgICAgICAgIHVwZGF0ZSB0aGUgZnVs
bHNjcmVlbiBtb2RlIGFuZCBhIG5ldyBzdGFuZGFyZC1hbmQtb3B0aW1pemVkLWZ1bGxzY3JlZW4g
bW9kZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0Z1bGxzY3JlZW5PcHRpbWl6ZWRWaWRlb10pOiAK
KyAgICAgICAgVHJlYXQgbmV3IHN0YW5kYXJkLWFuZC1vcHRpbWl6ZWQgYXMgYSBraW5kIG9mIG9w
dGltaXplZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oOiBJUEMgZnVsbHNjcmVlbiBtb2RlIGNoYW5nZXMKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTogZGl0dG8KKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTW9kZUNo
YW5nZWQpOiBkaXRvCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oOiBkaXR0bworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IGRpdHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbTogZGl0bworICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKTogZGl0dG8K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0RnVsbHNjcmVl
bk1vZGVDaGFuZ2VkKTogZGl0dG8KKwogMjAxNC0xMi0wMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3
NjQ1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9N
ZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGEwY2M0ZDc2ZDI4ZDZmN2I2Nzc2Yjc0OGE0
NDVlNDM1MzAzNzBlMzguLjZkMzFhOTZjN2JlZWNmNWY1ODIzOWJlMTIwNDJiZDFmNjIyY2UyOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtMjk0LDE5ICsyOTQsMTIgQEAgU3RyaW5nIE1lZGlh
Q29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9kZSgpIGNvbnN0CiAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0aW1pemVkLCAoQVNDSUlMaXRlcmFsKCJvcHRpbWl6
ZWQiKSkpOwogICAgIFN0cmluZyBtb2RlID0gbm9uZTsKIAotICAgIGVudW0gVmlkZW9GdWxsc2Ny
ZWVuTW9kZSB7IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQsIFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQgfTsKLQotICAgIHN3aXRjaCAobV9t
ZWRpYUVsZW1lbnQtPmZ1bGxzY3JlZW5Nb2RlKCkpIHsKLSAgICBjYXNlIEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lOgorICAgIGlmIChtX21lZGlhRWxlbWVudC0+ZnVs
bHNjcmVlbk1vZGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSkKICAgICAgICAgbW9kZSA9IG5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkOgorICAgIGVsc2UgaWYgKG1f
bWVkaWFFbGVtZW50LT5mdWxsc2NyZWVuTW9kZSgpID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKICAgICAgICAgbW9kZSA9IHN0YW5kYXJkOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVP
cHRpbWl6ZWQ6CisgICAgZWxzZSBpZiAobV9tZWRpYUVsZW1lbnQtPmZ1bGxzY3JlZW5Nb2RlKCkg
JiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQogICAgICAg
ICBtb2RlID0gb3B0aW1pemVkOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgCiAgICAgTE9H
KE1lZGlhLCAiTWVkaWFDb250cm9sc0hvc3Q6OmZ1bGxzY3JlZW5Nb2RlIC0gcmV0dXJuaW5nIFwi
JXNcIiIsIG1vZGUudXRmOCgpLmRhdGEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzgz
NzIxMmZlYjRlZDVjMjUyYzZlZWQ2NmNkYjI1NDNkMjFlNDNmNy4uZjhlY2UyMmU3Y2JjNjRlOGYx
Y2RiMDdkOTg2YjMxNmQzNzE1N2I2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0NjksNiAr
MzQ2OSw3IEBAIF9fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQxOHNldFZpZGVvTGF5ZXJGcmFtZUVOU185RmxvYXRSCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjBiZWdpblNjYW5uaW5nRm9yd2FyZEV2CiBfX1pO
N1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjBzZXRWaWRlb0xh
eWVyR3Jhdml0eUVOU18yM1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsMTJWaWRlb0dyYXZpdHlFCiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjFiZWdpblNj
YW5uaW5nQmFja3dhcmRFdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudDIxZnVsbHNjcmVlbk1vZGVDaGFuZ2VkRWoKIF9fWk43V2ViQ29yZTM1V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQyMXJlcXVlc3RFeGl0RnVsbHNjcmVlbkV2CiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MjJzZWxlY3RB
dWRpb01lZGlhT3B0aW9uRXkKIF9fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQyM3NldFZpZGVvRnVsbHNjcmVlbkxheWVyRVA3Q0FMYXllcgpAQCAtMzQ4OSw3
ICszNDkwLDcgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDExc2V0RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUzMldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTRzZXRDdXJyZW50VGltZUVkZAogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRXYK
LV9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNXNldHVwRnVs
bHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJVmlld05TXzE2SFRNTE1lZGlhRWxlbWVu
dDE5VmlkZW9GdWxsc2NyZWVuTW9kZUUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxNXNldHVwRnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJ
Vmlld2oKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2Ns
ZWFudXBGdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQxN3NldFNlZWthYmxlUmFuZ2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25z
RWJmZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNzQ1OTEx
NTg3MTVhMDYwOTZlOTA2MjYwNWMwOWU5ZDllNzhjNWJkNi4uMzFlMzk1ZjFiZTFlNTFmZTQyMzk3
NzA0ZGYwNDMxMzljODMwZjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC01OTk2LDE4ICs1OTk2LDE0IEBAIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIEhU
TUxNZWRpYUVsZW1lbnQ6OnByZXNlbnRhdGlvblR5cGUoKSBjb25zdAogCiBNZWRpYVNlc3Npb246
OkRpc3BsYXlUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSkgewotICAgIGNhc2UgVmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkOgorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkKQogICAgICAgICByZXR1cm4gTWVkaWFTZXNzaW9uOjpGdWxs
c2NyZWVuOwotICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZDoKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlICYgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAg
ICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6T3B0aW1pemVkOwotICAgIGNhc2UgVmlkZW9GdWxs
c2NyZWVuTW9kZU5vbmU6CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1
bGxzY3JlZW5Nb2RlTm9uZSkKICAgICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6Tm9ybWFsOwot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVh
azsKLSAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTWVkaWFT
ZXNzaW9uOjpOb3JtYWw7CiB9CiAKQEAgLTYwNzUsNyArNjA3MSw3IEBAIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6b3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbigpIGNvbnN0CiAg
ICAgaWYgKG1fcGxheWVyICYmIG1fcGxheWVyLT5pc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVs
ZXNzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGUgJiBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDMyZmEzOTE4OWFlYWRhMWM4ZTBlMWNjMDkyOTIxZGM3
N2NkZmFjNWIuLjNmZTQ0NTIyMDYwZWY3ZDhkN2I2ZDdlZWQ0ODY3ZDQzNDE2ZDAzMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOTIsOCArMzkyLDE2IEBAIHB1
YmxpYzoKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVu
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUoKTsKLSAg
ICBlbnVtIFZpZGVvRnVsbHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlk
ZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07
CisKKyAgICBlbnVtIHsKKyAgICAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgPSAwLAorICAg
ICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAsCisgICAgICAgIFZpZGVv
RnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQgPSAxIDw8IDEsCisgICAgfTsKKyAgICB0eXBlZGVmIHVp
bnQzMl90IFZpZGVvRnVsbHNjcmVlbk1vZGU7CisKICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1
bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOyB9Cisg
ICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSB7
IG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9IG1vZGU7IH0KIAogICAgIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggODNjNTUxYzU4
OWRkMmJiYzMyZDEzZmYyOGJjMDgxNDYyOThlN2MzMy4uZDY1MmE3N2Q2NTY5Mjc1N2YyYmI5OGM5
ZTg3MmJkMmE5OTdlNTg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg5LDYg
Kzg5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXF1ZXN0
SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCk7CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICB2b2lkIHNl
dElzT3B0aW1pemVkKGJvb2wpOwogCiBwcm90ZWN0ZWQ6CiAgICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tCmluZGV4IGIxZDMzYTk2MzU0ZGVlMTQ4MDRlY2EwYjkzM2E0MWYzYzJh
NDVkYzQuLmI3ZTQ2MzFjYjczY2FkMGZiMGE2ZWE1MjMzODg5MTc0MTZkN2M4NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTg1LDggKzg1LDkgQEAgU09GVF9MSU5LX0NPTlNU
QU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBXZWJBVk1lZGlh
U2VsZWN0aW9uT3B0aW9uICpfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKIH0K
IAotQHByb3BlcnR5KHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVy
UHJveHk7Ci1AcHJvcGVydHkoYXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdh
dGU7CitAcHJvcGVydHkgKHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9s
bGVyUHJveHk7CitAcHJvcGVydHkgKGFzc2lnbikgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIGRl
bGVnYXRlOworQHByb3BlcnR5IChhc3NpZ24pIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0KiBmdWxsc2NyZWVuSW50ZXJmYWNlOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGNh
blNjYW5Gb3J3YXJkOwogQHByb3BlcnR5IEJPT0wgY2FuU2NhbkJhY2t3YXJkOwpAQCAtOTQsNyAr
OTUsNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwg
Q01UaW1lKQogQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBjYW5TZWVrVG9FbmQ7CiAKIEBwcm9w
ZXJ0eSBCT09MIGNhblBsYXk7Ci1AcHJvcGVydHkoZ2V0dGVyPWlzUGxheWluZykgQk9PTCBwbGF5
aW5nOworQHByb3BlcnR5IChnZXR0ZXI9aXNQbGF5aW5nKSBCT09MIHBsYXlpbmc7CiBAcHJvcGVy
dHkgQk9PTCBjYW5QYXVzZTsKIEBwcm9wZXJ0eSBCT09MIGNhblRvZ2dsZVBsYXliYWNrOwogQHBy
b3BlcnR5IGRvdWJsZSByYXRlOwpAQCAtMTA2LDEwICsxMDcsMTAgQEAgU09GVF9MSU5LX0NPTlNU
QU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSBOU1Rp
bWVJbnRlcnZhbCBtaW5UaW1lOwogQHByb3BlcnR5IE5TVGltZUludGVydmFsIG1heFRpbWU7CiBA
cHJvcGVydHkgTlNUaW1lSW50ZXJ2YWwgY29udGVudER1cmF0aW9uV2l0aGluRW5kVGltZXM7Ci1A
cHJvcGVydHkocmV0YWluKSBOU0FycmF5ICpsb2FkZWRUaW1lUmFuZ2VzOworQHByb3BlcnR5IChy
ZXRhaW4pIE5TQXJyYXkgKmxvYWRlZFRpbWVSYW5nZXM7CiBAcHJvcGVydHkgQVZQbGF5ZXJDb250
cm9sbGVyU3RhdHVzIHN0YXR1czsKLUBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRp
bWluZzsKLUBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdlczsKK0Bw
cm9wZXJ0eSAocmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7CitAcHJvcGVydHkgKHJldGFp
bikgTlNBcnJheSAqc2Vla2FibGVUaW1lUmFuZ2VzOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIGhhc01lZGlhU2VsZWN0aW9uT3B0aW9uczsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
aGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnM7CkBAIC01MjIsOSArNTIzLDI5IEBAIFNPRlRf
TElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAKIC0g
KHZvaWQpc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilw
bGF5ZXJWaWV3Q29udHJvbGxlcgogeworICAgIE5TU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0
cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3Iob3B0aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOwor
CisgICAgW19hdlBsYXllclZpZXdDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5
UGF0aDpwcm9wZXJ0eU5hbWVdOwogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVyID0gcGxheWVy
Vmlld0NvbnRyb2xsZXI7CisgICAgW19hdlBsYXllclZpZXdDb250cm9sbGVyIGFkZE9ic2VydmVy
OnNlbGYgZm9yS2V5UGF0aDpwcm9wZXJ0eU5hbWUgb3B0aW9uczooTlNLZXlWYWx1ZU9ic2Vydmlu
Z09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQpIGNvbnRleHQ6bmlsXTsK
IH0KIAorLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGgg
b2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0
Oih2b2lkICopY29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVT
RURfUEFSQU0ob2JqZWN0KTsKKworICAgIE5TU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0cmlu
Z0Zyb21TZWxlY3RvcihAc2VsZWN0b3Iob3B0aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOworCisg
ICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpwcm9wZXJ0eU5hbWVdICYmIGNoYW5nZVtO
U0tleVZhbHVlQ2hhbmdlTmV3S2V5XSkgeworICAgICAgICBCT09MIG9sZEFjdGl2ZSA9IFtjaGFu
Z2VbTlNLZXlWYWx1ZUNoYW5nZU9sZEtleV0gYm9vbFZhbHVlXTsKKyAgICAgICAgQk9PTCBhY3Rp
dmUgPSBbY2hhbmdlW05TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGJvb2xWYWx1ZV07CisgICAgICAg
IGlmIChvbGRBY3RpdmUgIT0gYWN0aXZlICYmIFtfYXZQbGF5ZXJDb250cm9sbGVyIGZ1bGxzY3Jl
ZW5JbnRlcmZhY2VdKQorICAgICAgICAgICAgW19hdlBsYXllckNvbnRyb2xsZXIgZnVsbHNjcmVl
bkludGVyZmFjZV0tPnNldElzT3B0aW1pemVkKGFjdGl2ZSk7CisgICAgfQorfQorCisKIC0gKHZv
aWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKIHsKICAgICBfdmlk
ZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7CkBAIC01OTMsNiArNjE0LDExIEBAIFNPRlRfTElO
S19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAKIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdCgpCiAgICAgOiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKG51bGxwdHIpCisgICAgLCBtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihudWxscHRyKQorICAgICwgbV9tb2RlKEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQorICAgICwgbV9leGl0UmVxdWVzdGVkKGZh
bHNlKQorICAgICwgbV9leGl0Q29tcGxldGVkKGZhbHNlKQorICAgICwgbV9lbnRlclJlcXVlc3Rl
ZChmYWxzZSkKIHsKIH0KIApAQCAtNjAzLDYgKzYyOSw3IEBAIFdlYkFWUGxheWVyQ29udHJvbGxl
ciAqV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnBsYXllckNvbnRyb2xsZXIoKQog
ICAgICAgICBtX3BsYXllckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQog
ICAgICAgICAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXREZWxlZ2F0ZTptX3ZpZGVvRnVsbHNj
cmVlbk1vZGVsXTsKKyAgICAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXRGdWxsc2NyZWVuSW50
ZXJmYWNlOnRoaXNdOwogICAgIH0KICAgICByZXR1cm4gbV9wbGF5ZXJDb250cm9sbGVyLmdldCgp
OwogfQpAQCAtODkyLDggKzkxOSw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbigpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9XTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgIGlmIChtX21vZGUg
PT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAg
ICAgIH0gZWxzZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGVTdGFuZGFyZCkgewogICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZW50
ZXJGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hv
d3NQbGF5YmFja0NvbnRyb2xzOllFU107CkBAIC05MzksOCArOTY1LDEyIEBAIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJl
Y3QgZmluYWxSZWN0CiAgICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkgewogICAgICAgICAgICAgW21fd2luZG93IHNldEhp
ZGRlbjpOT107CiAgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1p
emVkRnVsbHNjcmVlbl07Ci0gICAgICAgIH0gZWxzZQotICAgICAgICBpZiAobV9tb2RlID09IEhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgeworICAgICAgICB9
IGVsc2UgaWYgKG1fbW9kZSA9PSAoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU9wdGltaXplZCB8IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFy
ZCkpIHsKKyAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVu
QW5pbWF0ZWQ6Tk8gY29tcGxldGlvbkhhbmRsZXI6XihCT09MICwgTlNFcnJvciAqKSB7CisgICAg
ICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CisgICAgICAgICAgICAgICAgW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOworICAgICAgICAg
ICAgfV07CisgICAgICAgIH0gZWxzZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICAgICAgW21fcGxheWVyVmlld0Nv
bnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vy
cm9yKikgewogICAgICAgICAgICAgICAgIG1fZXhpdENvbXBsZXRlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRV
SUNvbG9yQ2xhc3MoKSBjbGVhckNvbG9yXSBDR0NvbG9yXV07CkBAIC0xMDA2LDkgKzEwMzYsMTEg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7
CiAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwogICAgIFttX3dpbmRvdyBzZXRSb290Vmll
d0NvbnRyb2xsZXI6bmlsXTsKLSAgICBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpCisgICAgbV93aW5kb3cgPSBuaWw7CisgICAgbV92
aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG5pbDsKKyAgICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxl
bWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAgICAgICAgW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOwotICAgIGVsc2UKKyAgICBpZiAo
bV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKQog
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5P
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAgICAgbV9wbGF5ZXJDb250cm9sbGVyID0gbmlsOwog
ICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CkBAIC0xMDIzLDgg
KzEwNTUsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjppbnZhbGlk
YXRlKCkKICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVy
Om5pbF07CiAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0gbmlsOwogICAgIFtbbV92aWV3Q29u
dHJvbGxlciB2aWV3XSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICBbbV9wbGF5ZXJDb250cm9s
bGVyIHNldEZ1bGxzY3JlZW5JbnRlcmZhY2U6bmlsXTsKICAgICBtX3ZpZXdDb250cm9sbGVyID0g
bmlsOwotICAgIG1fd2luZG93ID0gbmlsOwogICAgIG1fcGFyZW50VmlldyA9IG5pbDsKICAgICBt
X3BhcmVudFdpbmRvdyA9IG5pbDsKIH0KQEAgLTEwMzQsNyArMTA2Niw3IEBAIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4o
KQogICAgIGlmICghbV9lbnRlclJlcXVlc3RlZCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAg
IGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCkKKyAgICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVu
TW9kZU9wdGltaXplZCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIF9fYmxvY2sgUmVmUHRy
PFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwpAQCAtMTA1
MSw1ICsxMDgzLDMzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJl
cXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0SXNPcHRpbWl6ZWQoYm9vbCBhY3RpdmUpCit7CisgICAgaWYg
KG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkg
eworICAgICAgICBpZiAoIWFjdGl2ZSAmJiBtX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgICAgICAgICAgbV9tb2RlICY9IH5IVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOworICAgICAgICBlbHNlIGlm
IChhY3RpdmUgJiYgfm1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVPcHRpbWl6ZWQpCisgICAgICAgICAgICBtX21vZGUgfD0gSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZDsKKyAgICB9CisgICAgCisgICAgaWYgKG1fdmlkZW9G
dWxsc2NyZWVuTW9kZWwpCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmZ1bGxzY3Jl
ZW5Nb2RlQ2hhbmdlZChtX21vZGUpOworCisgICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgW21fd2luZG93IHNldEhpZGRlbjptX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkXTsKKyAgICAKKyAgICBpZiAoIW1fZXhpdFJlcXVlc3Rl
ZCB8fCBhY3RpdmUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2V4aXRDb21wbGV0ZWQg
PSB0cnVlOworICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltb
Z2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl0gQ0dDb2xvcl1dOworICAgIFtbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29sb3JDbGFzcygp
IGNsZWFyQ29sb3JdXTsKKyAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgaWYgKG1fZnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgfSk7Cit9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaApp
bmRleCAyOWVlYTE1ZDAzNjZhNTI4MDFiNzRkNWU0ZWY0MWViMmJhZDlhNTMxLi42ZGQwYjBkZjY5
NjFhZTM3Zjg1YWUzN2I4YTEyNDEyYmFkYjNiOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaApAQCAtNTIsNiArNTIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFZpZGVv
R3Jhdml0eSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVp
bnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9w
dGlvbih1aW50NjRfdCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9k
ZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgPSAwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAppbmRleCAwNTkwYTBkOWEzNGQy
NjliZWQ5YTUzYjhmMjQ2MmFlMjMwMTM4NjQyLi4xNmUxYTU2YjExOWNlYmIwZDMzODEwNjMyYzRk
MDk3YzM3ODM1YTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtMzEs
NiArMzEsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpA
QCAtNzAsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lk
IHNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZp
dHkpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRp
b01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBv
dmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVD
aGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwog
CiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8V1RGOjpBdG9taWNTdHJpbmc+JiBv
YnNlcnZlZEV2ZW50TmFtZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpp
bmRleCA4YzQ2MTdhNDE3MDE5NjBjNzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyLi5kYjlkOTQ2OWY4
YWExYzhiNDBmMmRiNDZkYjAwZDAzMmIwOTRmOGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlk
ZW9FbGVtZW50Lm1tCkBAIC01NCw2ICs1NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OldlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50KCkKICAgICA6IEV2ZW50TGlzdGVuZXIoRXZlbnRMaXN0ZW5lcjo6Q1BQ
RXZlbnRMaXN0ZW5lclR5cGUpCiAgICAgLCBtX2lzTGlzdGVuaW5nKGZhbHNlKQorICAgICwgbV92
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UobnVsbHB0cikKIHsKIH0KIApAQCAtMzc4LDQgKzM3OSwx
NCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50OjpldmVudE5hbWVBbGwoKQogICAgIHJldHVybiBzRXZlbnROYW1lQWxsOwogfQogCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5n
ZWQoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5N
b2RlKQoreworICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50PiBwcm90ZWN0KHRoaXMpOworICAgIFdlYlRocmVhZFJ1biheeworICAgICAgICBpZiAo
bV92aWRlb0VsZW1lbnQpCisgICAgICAgICAgICBtX3ZpZGVvRWxlbWVudC0+ZnVsbHNjcmVlbk1v
ZGVDaGFuZ2VkKHZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgICAgICBwcm90ZWN0LmNsZWFyKCk7
CisgICAgfSk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBhYjRjNTUwODg1ZDgwOGJhMDM3ODQxNzA4ZjljODcx
MWE2MzdhZmNiLi43MWQzNjg1NGQ5ZGNlMGM0NmJhOGQxODI1NjQwOWM5NDE0OTM5NjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MjM1LDcgKzIzNSwxMyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAKIC0g
KEJPT0wpX2lzUGxheWluZ0Z1bGxzY3JlZW5PcHRpbWl6ZWRWaWRlbwogewotICAgIHJldHVybiBf
cGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpICYmIF9wYWdlLT52aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKCktPm1vZGUoKSA9PSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOworICAgIGlmICghX3BhZ2UtPnZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IGlmIChfcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLT5tb2RlKCkgJiBXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0
aW1pemVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMmI3YjFmNGY0ZDMzOWMx
MGJjOWY2ZWU1Mzg1NDAyNThiNzEwYThkOC4uY2M0M2QzMGZiN2U2YzQyMThmZTFlYTNhYWI2ZTlm
ZDQyZGEyYzhlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC01NSw5ICs1NSwxMCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBUcmFuc2xh
dGUgdG8gRnVsbHNjcmVlbkludGVyZmFjZQotICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElE
KHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2
aWNlU2NhbGVGYWN0b3IsIHVpbnQzMl90IHZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIHZvaWQg
c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNW
ZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRF
eHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5
cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKKyAgICB2b2lkIGZ1bGxzY3JlZW5Nb2Rl
Q2hhbmdlZChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
ICAgICAKICAgICAvLyBGdWxsc2NyZWVuIE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFNl
dHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA5YzQ1NjdlNDE1ZmQ0NmJjMDY1ZmI5OTAyMDU2MWUzZjk3NmVk
NGFhLi5lMWEyNzJlMjJiMWUwYWViNjcyM2QyZmY0ZDM2NGQyYmMxZTA1YzJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEsNyArMzEsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEV4dGVy
bmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwg
U3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpOwogICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJh
dGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkKLSAgICBTZXR1
cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0
IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIHVpbnQzMl90IHZpZGVvRnVs
bHNjcmVlbk1vZGUpCisgICAgU2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5
ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFj
dG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVv
RnVsbHNjcmVlbk1vZGUpCiAgICAgRW50ZXJGdWxsc2NyZWVuKCkKICAgICBFeGl0RnVsbHNjcmVl
bihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBDbGVhbnVwRnVsbHNjcmVlbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IGNmN2ZjMWYxYTAxZjMwODI5YWYxYmFiMmYx
MWZlNDIxNjE4NzBlNWEuLmQ5MTMyN2RkYTkzNWJlMTE5YmFjYTZmZGU5MjRjZGI4ZTVjNjBmYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKICAgICBtX2xheWVySG9z
dC5jbGVhcigpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVj
dCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCB1aW50MzJfdCB2
aWRlb0Z1bGxzY3JlZW5Nb2RlKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6Oklu
dFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQogewog
ICAgIEFTU0VSVCh2aWRlb0xheWVySUQpOwogICAgIG1fbGF5ZXJIb3N0ID0gV0tNYWtlUmVuZGVy
TGF5ZXIodmlkZW9MYXllcklEKTsKQEAgLTk1LDggKzk1LDEyIEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9M
YXllcklECiAgICAgfQogCiAgICAgVUlWaWV3ICpwYXJlbnRWaWV3ID0gZG93bmNhc3Q8UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4oKm1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkucmVtb3Rl
TGF5ZXJUcmVlSG9zdCgpLnJvb3RMYXllcigpOwotICAgIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGUgbW9kZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGU+KHZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHNldHVwRnVsbHNjcmVl
bigqbV9sYXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0LCBwYXJlbnRWaWV3LCBtb2RlKTsKKyAg
ICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCwgcGFyZW50
VmlldywgdmlkZW9GdWxsc2NyZWVuTW9kZSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChtb2RlKSwg
bV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6c2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUs
IGRvdWJsZT4+JiByYW5nZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpp
bmRleCAzOTM2MTIyOTI2ZGZjNTU3ODIzNDg1NGNlODM5Y2VhZDhhOGRhYTY0Li5hOTg4NmZiZDRl
ZDc1OWQyZGU3ZjkyMjk3ODZmM2RmYjdiMGU1ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTQxLDUgKzQxLDYgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlciB7CiAgICAgU2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdy
YXZpdHkpCiAgICAgU2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKICAgICBT
ZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCisgICAgZnVsbHNjcmVlbk1v
ZGVDaGFuZ2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUg
dmlkZW9GdWxsc2NyZWVuTW9kZSkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXgg
Njc4YzAwOWI0NTVkYzUxYjhiYWFkODRiZDBiZWQ5NWExYzM1ODgwNS4uNjg0YjRiNTlhMDE0Yzll
Yzg4MmUyNzYwYjY4MDExYzU3MWY3MTVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC02OSw2
ICs2OSw3IEBAIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoUGFzc1JlZlB0cjxXZWJQYWdlPiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UuZ2V0KCkp
CiAgICAgLCBtX2lzQW5pbWF0aW5nKGZhbHNlKQogICAgICwgbV90YXJnZXRJc0Z1bGxzY3JlZW4o
ZmFsc2UpCisgICAgLCBtX2Z1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVs
bHNjcmVlbk1vZGVOb25lKQogICAgICwgbV9pc0Z1bGxzY3JlZW4oZmFsc2UpCiB7CiAgICAgc2V0
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKHRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242885</attachid>
            <date>2014-12-08 22:51:18 -0800</date>
            <delta_ts>2014-12-09 00:24:40 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-139137-20141208225158.patch</filename>
            <type>text/plain</type>
            <size>28707</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhN2U0OTkxODZmYWIy
YmI3YTY2ZjY4ZWZlZWM4MzlhZWEwZGNkMS4uMGM3MTAxNTRmNjFjMDQ2NzgyM2JmYzJkNDFlNjhh
MGY3NDMwODEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTEyLTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgYWN0aXZhdGlu
ZyBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtb2RlIGZyb20gc3RhbmRhcmQgZnVsc2NyZWVuIG1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxMzcK
KworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgR29pbmcgZnJvbSBz
dGFuZGFyZCBmdWxsc2NyZWVuIG1vZGUgdG8gb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSByZXF1
aXJlcyB0aGUgYWJpbGl0eSB0bworICAgICAgICB1cGRhdGUgdGhlIGZ1bGxzY3JlZW4gbW9kZSBp
biBIVE1MTWVkaWFFbGVtZW50IGFuZCBhIG5ldyBzdGFuZGFyZC1hbmQtb3B0aW1pemVkLWZ1bGxz
Y3JlZW4gbW9kZS4KKworICAgICAgICBUaGlzIGNoYW5nZSBLVk8gb2JzZXJ2ZXMgQVZLaXQncyBv
cHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlIGFuZCBmb3J3YXJkcyB0aGUgY2hhbmdlIGRvd24gdG8g
SFRNTE1lZGlhRWxlbWVudCBzbyBpdCBjYW4gYWRqdXN0IGJlaGF2aW9yIGFwcHJvcHJpYXRlbHku
CisgICAgICAgIEl0IGFsc28gaGlkZXMgdGhlIHN0YW5kYXJkIGZ1bGxzY3JlZW4gd2luZG93IHdo
ZW4gZ29pbmcgaW50byB0aGlzIG1vZGUuCisgICAgICAgIFdoZW4gZXhpdGluZyBmdWxsc2NyZWVu
IGZyb20gc3RhbmRhcmQtYW5kLW9wdGltaXplZCwgZmlyc3QgZXhpdCBmdWxsc2NyZWVuIGltbWVk
aWF0ZWx5LCB0aGVuIHN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuLCBhbmQgbm90aWZ5IG9mIGNvbXBs
ZXRpb24gd2hlbgorICAgICAgICBvcHRpbWl6ZWRGdWxsc2NyZWVuIGdvZXMgaW5hY3RpdmUuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1bGxzY3JlZW5Nb2RlKToKKyAg
ICAgICAgICAgIFRyZWF0IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZEFuZE9wdGltaXplZCBh
cyBhIGtpbmQgb2Ygb3B0aW1pemVkIG1vZGUuCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IE5l
dyBleHBvcnQgZm9yIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2Ny
ZWVuTW9kZUNoYW5nZWQKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGxheVR5cGUpOgorICAgICAgICAg
ICAgVHJlYXQgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkQW5kT3B0aW1pemVkIGFzIGEga2lu
ZCBvZiBvcHRpbWl6ZWQgbW9kZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDog
QWRkIG5ldyBmdWxsc2NyZWVuIG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBVcGRhdGUgZnVsbHNjcmVlbiBtb2RlIHNvIGl0
IGRvZXMgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSBiZWhhdmlvcnMgd2hlbiBhcHBsaWNhYmxl
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oOiBEZWNsYXJlIHNldE9wdGltaXplZEFjdGl2ZQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2ViQVZWaWRl
b0xheWVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOl0pOiBvYnNlcnZlIG9wdGltaXplZEZ1bGxz
Y3JlZW5BY3RpdmUKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIG9ic2VydmVWYWx1ZUZvcktl
eVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IHJlc3BvbmQgdG8gY2hhbmdlcyB0byBv
cHRpbWl6ZWRGdWxsc2NyZWVuQWN0aXZlCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQpOiBJbml0IG1lbWJl
cnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cGxheWVyQ29u
dHJvbGxlcik6IAorICAgICAgICAgICAgR2l2ZSBwbGF5ZXIgY29udHJvbGxlciBhIHJlZmVyZW5j
ZSB0byB0aGUgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlIHNvIGl0IGNhbiBwYXNzIGFsb25n
IG1vZGUgY2hhbmdlIHN0YXRlLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6IEhhbmRsZSBuZXcgZnVsbHNjcmVlbiBtb2Rlcy4KKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6
IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxp
ZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0T3B0aW1pemVkQWN0aXZlKTogSGFuZGxlIGNoYW5n
ZXMgdG8gZnVsbHNjcmVlbiBtb2RlLgorICAgICAgICAgICAgQWxzbyBoYW5kbGUgdGhlIGNhc2Ug
dGhhdCBleGl0aW5nIGZ1bGxzY3JlZW4gaGFwcGVuZCB3aGVuIG9wdGltaXplZCBtb2RlIGVuZHMu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6IGRlY2xh
cmUgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDogZGVjbGFyZSBmdWxsc2NyZWVuTW9kZUNo
YW5nZWQoKQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbTogYWRkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQpOiBJbml0IG1lbWJlcnMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKTogQWRkZWQuIFVwZGF0ZSB2
aWRlbyBlbGVtZW50IGZ1bGxzY3JlZW4gbW9kZS4KKwogMjAxNC0xMi0wOCAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBidWlsZCBh
ZnRlciByMTc3MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTY5MTdmNTliMzAwMGRiM2RmOGE1NzU5OTFkYTdj
YjNmMTJhY2YxOS4uM2E3MjYwZjE0NzdlYzI5MWI2OWEwZTkxZGFkOWYzMTVlZTA5YjJkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTEyLTAxICBKZXJlbXkgSm9uZXMgIDxqZXJl
bXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgYWN0aXZhdGluZyBvcHRpbWl6ZWQgZnVs
bHNjcmVlbiBtb2RlIGZyb20gc3RhbmRhcmQgZnVsc2NyZWVuIG1vZGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgR29pbmcgZnJvbSBzdGFuZGFyZCBmdWxs
c2NyZWVuIG1vZGUgdG8gb3B0aW1pemVkIGZ1bGxzY3JlZW4gbW9kZSByZXF1aXJlcyB0aGUgYWJp
bGl0eSB0bworICAgICAgICB1cGRhdGUgdGhlIGZ1bGxzY3JlZW4gbW9kZSBhbmQgYSBuZXcgc3Rh
bmRhcmQtYW5kLW9wdGltaXplZC1mdWxsc2NyZWVuIG1vZGUuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pc1BsYXlp
bmdGdWxsc2NyZWVuT3B0aW1pemVkVmlkZW9dKTogCisgICAgICAgIFRyZWF0IG5ldyBzdGFuZGFy
ZC1hbmQtb3B0aW1pemVkIGFzIGEga2luZCBvZiBvcHRpbWl6ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDogSVBDIGZ1bGxzY3JlZW4g
bW9kZSBjaGFuZ2VzCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW06IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKTogZGl0bworICAgICAgICAqIFdl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDogZGl0dG8KKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOiBk
aXR0bworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW06IGRpdG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcik6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OnNldEZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCk6IGRpdHRvCisKIDIw
MTQtMTItMDggIEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXSBVc2UgRGVwZW5kZW5jaWVzRUZMIGluc3RlYWQgb2YgRGVwZW5kZW5jaWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmNwcAppbmRleCBhMGNjNGQ3NmQyOGQ2ZjdiNjc3NmI3NDhhNDQ1ZTQzNTMwMzcw
ZTM4Li42ZDMxYTk2YzdiZWVjZjVmNTgyMzliZTEyMDQyYmQxZjYyMmNlMjk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5jcHAKQEAgLTI5NCwxOSArMjk0LDEyIEBAIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9z
dDo6ZnVsbHNjcmVlbk1vZGUoKSBjb25zdAogICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIG9wdGltaXplZCwgKEFTQ0lJTGl0ZXJhbCgib3B0aW1pemVkIikpKTsKICAg
ICBTdHJpbmcgbW9kZSA9IG5vbmU7CiAKLSAgICBlbnVtIFZpZGVvRnVsbHNjcmVlbk1vZGUgeyBW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBWaWRl
b0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07Ci0KLSAgICBzd2l0Y2ggKG1fbWVkaWFFbGVtZW50
LT5mdWxsc2NyZWVuTW9kZSgpKSB7Ci0gICAgY2FzZSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlTm9uZToKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQtPmZ1bGxzY3JlZW5Nb2Rl
KCkgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpCiAgICAgICAg
IG1vZGUgPSBub25lOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZDoKKyAgICBlbHNlIGlmIChtX21lZGlhRWxlbWVu
dC0+ZnVsbHNjcmVlbk1vZGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlU3RhbmRhcmQpCiAgICAgICAgIG1vZGUgPSBzdGFuZGFyZDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOgor
ICAgIGVsc2UgaWYgKG1fbWVkaWFFbGVtZW50LT5mdWxsc2NyZWVuTW9kZSgpICYgSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAgICAgICAgbW9kZSA9IG9w
dGltaXplZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgIAogICAgIExPRyhNZWRpYSwgIk1l
ZGlhQ29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9kZSAtIHJldHVybmluZyBcIiVzXCIiLCBtb2Rl
LnV0ZjgoKS5kYXRhKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDhiYTFjYWQwYzBmZWJl
MjMyODI4MzYyYjFkYWJkYWU2N2I5NjJlOTEuLmQ5MDE4NWZjMDIxNGQzYjZmNTZhNzcyMmU2M2I1
ZDA4MTYwNzhlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zNDc0LDYgKzM0NzQsNyBAQCBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50MThzZXRWaWRl
b0xheWVyRnJhbWVFTlNfOUZsb2F0UgogX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudDIwYmVnaW5TY2FubmluZ0ZvcndhcmRFdgogX19aTjdXZWJDb3JlMzVX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDIwc2V0VmlkZW9MYXllckdyYXZpdHlF
TlNfMjNXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDEyVmlkZW9HcmF2aXR5RQogX19aTjdXZWJDb3Jl
MzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDIxYmVnaW5TY2FubmluZ0JhY2t3
YXJkRXYKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQy
MWZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZEVqCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50MjFyZXF1ZXN0RXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3Jl
MzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDIyc2VsZWN0QXVkaW9NZWRpYU9w
dGlvbkV5CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
MjNzZXRWaWRlb0Z1bGxzY3JlZW5MYXllckVQN0NBTGF5ZXIKQEAgLTM0OTUsNyArMzQ5Niw3IEBA
IF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNldER1cmF0
aW9uRWQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNGV4
aXRGdWxsc2NyZWVuRU5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMyV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2Ci1fX1pON1dlYkNv
cmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdD
QUxheWVyTlNfN0ludFJlY3RFUDZVSVZpZXdOU18xNkhUTUxNZWRpYUVsZW1lbnQxOVZpZGVvRnVs
bHNjcmVlbk1vZGVFYgorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDE1c2V0dXBGdWxsc2NyZWVuRVI3Q0FMYXllck5TXzdJbnRSZWN0RVA2VUlWaWV3amIKIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2NsZWFudXBGdWxs
c2NyZWVuRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQx
N3NldFNlZWthYmxlUmFuZ2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNzQ1OTExNTg3MTVhMDYw
OTZlOTA2MjYwNWMwOWU5ZDllNzhjNWJkNi4uMzFlMzk1ZjFiZTFlNTFmZTQyMzk3NzA0ZGYwNDMx
MzljODMwZjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC01OTk2LDE4ICs1OTk2LDE0IEBAIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIEhUTUxNZWRpYUVs
ZW1lbnQ6OnByZXNlbnRhdGlvblR5cGUoKSBjb25zdAogCiBNZWRpYVNlc3Npb246OkRpc3BsYXlU
eXBlIEhUTUxNZWRpYUVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmlkZW9GdWxsc2NyZWVuTW9kZSkgewotICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVuTW9kZVN0
YW5kYXJkOgorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVu
TW9kZVN0YW5kYXJkKQogICAgICAgICByZXR1cm4gTWVkaWFTZXNzaW9uOjpGdWxsc2NyZWVuOwot
ICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZDoKKyAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5Nb2RlICYgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAgICAgICAgcmV0
dXJuIE1lZGlhU2Vzc2lvbjo6T3B0aW1pemVkOwotICAgIGNhc2UgVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmU6CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSkKICAgICAgICAgcmV0dXJuIE1lZGlhU2Vzc2lvbjo6Tm9ybWFsOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9
CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTWVkaWFTZXNzaW9uOjpO
b3JtYWw7CiB9CiAKQEAgLTYwNzUsNyArNjA3MSw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
b3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbigpIGNvbnN0CiAgICAgaWYgKG1f
cGxheWVyICYmIG1fcGxheWVyLT5pc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9k
ZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgIGlmIChtX3ZpZGVvRnVsbHNj
cmVlbk1vZGUgJiBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCmluZGV4IGZhZWIzYWExMTYzNmJiZTIwYjllOTFlYjVlY2YzOGFkMzBhOWYxMDEu
LmEwM2Y4NjJhODljMzYwNWJjNGRjYTY5MTM5NzhkZWE3ZTA1OTM3MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOTIsOCArMzkyLDE2IEBAIHB1YmxpYzoKICAg
ICAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUoKTsKLSAgICBlbnVtIFZp
ZGVvRnVsbHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07CisKKyAgICBl
bnVtIHsKKyAgICAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgPSAwLAorICAgICAgICBWaWRl
b0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAsCisgICAgICAgIFZpZGVvRnVsbHNjcmVl
bk1vZGVPcHRpbWl6ZWQgPSAxIDw8IDEsCisgICAgfTsKKyAgICB0eXBlZGVmIHVpbnQzMl90IFZp
ZGVvRnVsbHNjcmVlbk1vZGU7CisKICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5N
b2RlKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOyB9CisgICAgdm9pZCBm
dWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSB7IG1fdmlkZW9G
dWxsc2NyZWVuTW9kZSA9IG1vZGU7IH0KIAogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFZpZGVv
RnVsbHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggZGFhMGI3YjcwNWM2MDVlYWVm
OGU0NWMxNDE5NDFiOGZkYzQwOTYyYy4uMjAzMjA1YTFkYzI5ZWJkODhjNGNiMmUxNjYyNmQwOWVl
ZTAwODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg5LDYgKzg5LDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXF1ZXN0SGlkZUFuZEV4
aXRGdWxsc2NyZWVuKCk7CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICB2b2lkIHNldElzT3B0aW1p
emVkKGJvb2wpOwogCiBwcm90ZWN0ZWQ6CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCmluZGV4IGIzMjNhNGY1ZDA3YWMzZTZjZGQzN2IxMmQ0NDEwMWFiMTRmMTE3NDcuLjMw
ZjBhOWVkZTFhMGM2ZmU5MDQ1N2JkNzkyMTgzYzg0ZTU4ODBhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KQEAgLTg1LDggKzg1LDkgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVN
ZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBXZWJBVk1lZGlhU2VsZWN0aW9u
T3B0aW9uICpfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKIH0KIAotQHByb3Bl
cnR5KHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7Ci1A
cHJvcGVydHkoYXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdhdGU7CitAcHJv
cGVydHkgKHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7
CitAcHJvcGVydHkgKGFzc2lnbikgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIGRlbGVnYXRlOwor
QHByb3BlcnR5IChhc3NpZ24pIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBmdWxs
c2NyZWVuSW50ZXJmYWNlOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGNhblNjYW5Gb3J3
YXJkOwogQHByb3BlcnR5IEJPT0wgY2FuU2NhbkJhY2t3YXJkOwpAQCAtOTQsNyArOTUsNyBAQCBT
T0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQog
QHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBjYW5TZWVrVG9FbmQ7CiAKIEBwcm9wZXJ0eSBCT09M
IGNhblBsYXk7Ci1AcHJvcGVydHkoZ2V0dGVyPWlzUGxheWluZykgQk9PTCBwbGF5aW5nOworQHBy
b3BlcnR5IChnZXR0ZXI9aXNQbGF5aW5nKSBCT09MIHBsYXlpbmc7CiBAcHJvcGVydHkgQk9PTCBj
YW5QYXVzZTsKIEBwcm9wZXJ0eSBCT09MIGNhblRvZ2dsZVBsYXliYWNrOwogQHByb3BlcnR5IGRv
dWJsZSByYXRlOwpAQCAtMTA2LDEwICsxMDcsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVN
ZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSBOU1RpbWVJbnRlcnZh
bCBtaW5UaW1lOwogQHByb3BlcnR5IE5TVGltZUludGVydmFsIG1heFRpbWU7CiBAcHJvcGVydHkg
TlNUaW1lSW50ZXJ2YWwgY29udGVudER1cmF0aW9uV2l0aGluRW5kVGltZXM7Ci1AcHJvcGVydHko
cmV0YWluKSBOU0FycmF5ICpsb2FkZWRUaW1lUmFuZ2VzOworQHByb3BlcnR5IChyZXRhaW4pIE5T
QXJyYXkgKmxvYWRlZFRpbWVSYW5nZXM7CiBAcHJvcGVydHkgQVZQbGF5ZXJDb250cm9sbGVyU3Rh
dHVzIHN0YXR1czsKLUBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRpbWluZzsKLUBw
cm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdlczsKK0Bwcm9wZXJ0eSAo
cmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7CitAcHJvcGVydHkgKHJldGFpbikgTlNBcnJh
eSAqc2Vla2FibGVUaW1lUmFuZ2VzOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc01l
ZGlhU2VsZWN0aW9uT3B0aW9uczsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgaGFzQXVkaW9N
ZWRpYVNlbGVjdGlvbk9wdGlvbnM7CkBAIC01MjIsOSArNTIzLDI5IEBAIFNPRlRfTElOS19DT05T
VEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAKIC0gKHZvaWQpc2V0
UGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3
Q29udHJvbGxlcgogeworICAgIE5TU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0cmluZ0Zyb21T
ZWxlY3RvcihAc2VsZWN0b3Iob3B0aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOworCisgICAgW19h
dlBsYXllclZpZXdDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpwcm9w
ZXJ0eU5hbWVdOwogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVyID0gcGxheWVyVmlld0NvbnRy
b2xsZXI7CisgICAgW19hdlBsYXllclZpZXdDb250cm9sbGVyIGFkZE9ic2VydmVyOnNlbGYgZm9y
S2V5UGF0aDpwcm9wZXJ0eU5hbWUgb3B0aW9uczooTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5l
dyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQpIGNvbnRleHQ6bmlsXTsKIH0KIAorLSAo
dm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6
KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICop
Y29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0o
b2JqZWN0KTsKKworICAgIE5TU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0cmluZ0Zyb21TZWxl
Y3RvcihAc2VsZWN0b3Iob3B0aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOworCisgICAgaWYgKFtr
ZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpwcm9wZXJ0eU5hbWVdICYmIGNoYW5nZVtOU0tleVZhbHVl
Q2hhbmdlTmV3S2V5XSkgeworICAgICAgICBCT09MIG9sZEFjdGl2ZSA9IFtjaGFuZ2VbTlNLZXlW
YWx1ZUNoYW5nZU9sZEtleV0gYm9vbFZhbHVlXTsKKyAgICAgICAgQk9PTCBhY3RpdmUgPSBbY2hh
bmdlW05TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGJvb2xWYWx1ZV07CisgICAgICAgIGlmIChvbGRB
Y3RpdmUgIT0gYWN0aXZlICYmIFtfYXZQbGF5ZXJDb250cm9sbGVyIGZ1bGxzY3JlZW5JbnRlcmZh
Y2VdKQorICAgICAgICAgICAgW19hdlBsYXllckNvbnRyb2xsZXIgZnVsbHNjcmVlbkludGVyZmFj
ZV0tPnNldElzT3B0aW1pemVkKGFjdGl2ZSk7CisgICAgfQorfQorCisKIC0gKHZvaWQpc2V0Vmlk
ZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKIHsKICAgICBfdmlkZW9TdWJsYXll
ciA9IHZpZGVvU3VibGF5ZXI7CkBAIC01OTMsNiArNjE0LDExIEBAIFNPRlRfTElOS19DT05TVEFO
VChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAKIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCgpCiAg
ICAgOiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKG51bGxwdHIpCisgICAgLCBtX2Z1bGxzY3JlZW5D
aGFuZ2VPYnNlcnZlcihudWxscHRyKQorICAgICwgbV9tb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lKQorICAgICwgbV9leGl0UmVxdWVzdGVkKGZhbHNlKQorICAg
ICwgbV9leGl0Q29tcGxldGVkKGZhbHNlKQorICAgICwgbV9lbnRlclJlcXVlc3RlZChmYWxzZSkK
IHsKIH0KIApAQCAtNjAzLDYgKzYyOSw3IEBAIFdlYkFWUGxheWVyQ29udHJvbGxlciAqV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnBsYXllckNvbnRyb2xsZXIoKQogICAgICAgICBt
X3BsYXllckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9sbGVyIGFsbG9j
XSBpbml0XSk7CiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQogICAgICAgICAg
ICAgW21fcGxheWVyQ29udHJvbGxlciBzZXREZWxlZ2F0ZTptX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
XTsKKyAgICAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXRGdWxsc2NyZWVuSW50ZXJmYWNlOnRo
aXNdOwogICAgIH0KICAgICByZXR1cm4gbV9wbGF5ZXJDb250cm9sbGVyLmdldCgpOwogfQpAQCAt
ODk0LDggKzkyMSw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVu
dGVyRnVsbHNjcmVlbigpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZpZGVvRnVsbHNjcmVl
bk1vZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9XTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAgICAgIH0gZWxz
ZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkgewogICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZW50ZXJGdWxsU2Ny
ZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFj
a0NvbnRyb2xzOllFU107CkBAIC05NDEsOCArOTY3LDEyIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxS
ZWN0CiAgICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZU9wdGltaXplZCkgewogICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107
CiAgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1pemVkRnVsbHNj
cmVlbl07Ci0gICAgICAgIH0gZWxzZQotICAgICAgICBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgeworICAgICAgICB9IGVsc2UgaWYg
KG1fbW9kZSA9PSAoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXpl
ZCB8IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkpIHsKKyAg
ICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6
Tk8gY29tcGxldGlvbkhhbmRsZXI6XihCT09MICwgTlNFcnJvciAqKSB7CisgICAgICAgICAgICAg
ICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CisgICAgICAgICAgICAgICAgW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOworICAgICAgICAgICAgfV07Cisg
ICAgICAgIH0gZWxzZSBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIg
ZXhpdEZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vycm9yKikgewog
ICAgICAgICAgICAgICAgIG1fZXhpdENvbXBsZXRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
W21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9yQ2xh
c3MoKSBjbGVhckNvbG9yXSBDR0NvbG9yXV07CkBAIC0xMDA4LDkgKzEwMzgsMTEgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgW21f
d2luZG93IHNldEhpZGRlbjpZRVNdOwogICAgIFttX3dpbmRvdyBzZXRSb290Vmlld0NvbnRyb2xs
ZXI6bmlsXTsKLSAgICBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGVPcHRpbWl6ZWQpCisgICAgbV93aW5kb3cgPSBuaWw7CisgICAgbV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlbCA9IG5pbDsKKyAgICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOwotICAgIGVsc2UKKyAgICBpZiAobV9tb2RlICYg
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKQogICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07CiAgICAgbV9wbGF5ZXJDb250cm9sbGVyID0gbmlsOwogICAgIFttX3Bs
YXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CkBAIC0xMDI1LDggKzEwNTcsOCBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjppbnZhbGlkYXRlKCkKICAg
ICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm5pbF07CiAg
ICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0gbmlsOwogICAgIFtbbV92aWV3Q29udHJvbGxlciB2
aWV3XSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICBbbV9wbGF5ZXJDb250cm9sbGVyIHNldEZ1
bGxzY3JlZW5JbnRlcmZhY2U6bmlsXTsKICAgICBtX3ZpZXdDb250cm9sbGVyID0gbmlsOwotICAg
IG1fd2luZG93ID0gbmlsOwogICAgIG1fcGFyZW50VmlldyA9IG5pbDsKICAgICBtX3BhcmVudFdp
bmRvdyA9IG5pbDsKIH0KQEAgLTEwMzYsNyArMTA2OCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgIGlm
ICghbV9lbnRlclJlcXVlc3RlZCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChtX21v
ZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKKyAg
ICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwpAQCAtMTA1Myw1ICsxMDg1
LDMzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRl
QW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1
ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6c2V0SXNPcHRpbWl6ZWQoYm9vbCBhY3RpdmUpCit7CisgICAgaWYgKG1fbW9kZSAm
IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgeworICAgICAg
ICBpZiAoIWFjdGl2ZSAmJiBtX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlT3B0aW1pemVkKQorICAgICAgICAgICAgbV9tb2RlICY9IH5IVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOworICAgICAgICBlbHNlIGlmIChhY3RpdmUg
JiYgfm1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6
ZWQpCisgICAgICAgICAgICBtX21vZGUgfD0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZU9wdGltaXplZDsKKyAgICB9CisgICAgCisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVu
TW9kZWwpCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmZ1bGxzY3JlZW5Nb2RlQ2hh
bmdlZChtX21vZGUpOworCisgICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW21f
d2luZG93IHNldEhpZGRlbjptX21vZGUgJiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlT3B0aW1pemVkXTsKKyAgICAKKyAgICBpZiAoIW1fZXhpdFJlcXVlc3RlZCB8fCBhY3Rp
dmUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2V4aXRDb21wbGV0ZWQgPSB0cnVlOwor
ICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltbZ2V0VUlDb2xv
ckNsYXNzKCkgY2xlYXJDb2xvcl0gQ0dDb2xvcl1dOworICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJv
bGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29sb3JDbGFzcygpIGNsZWFyQ29s
b3JdXTsKKyAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyKQorICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4
aXRGdWxsc2NyZWVuKCk7CisgICAgfSk7Cit9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAppbmRleCAyOWVl
YTE1ZDAzNjZhNTI4MDFiNzRkNWU0ZWY0MWViMmJhZDlhNTMxLi42ZGQwYjBkZjY5NjFhZTM3Zjg1
YWUzN2I4YTEyNDEyYmFkYjNiOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFZpZGVvR3Jhdml0eSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGlu
ZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50
NjRfdCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQo
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAppbmRleCAwNTkwYTBkOWEzNGQyNjliZWQ5YTUz
YjhmMjQ2MmFlMjMwMTM4NjQyLi4xNmUxYTU2YjExOWNlYmIwZDMzODEwNjMyYzRkMDk3YzM3ODM1
YTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBA
QAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNzAsNiAr
NzEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldFZpZGVv
TGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpIG92ZXJy
aWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0
aW9uKHVpbnQ2NF90IGluZGV4KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBvdmVycmlkZTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwogCiBwcml2YXRl
OgogICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8V1RGOjpBdG9taWNTdHJpbmc+JiBvYnNlcnZlZEV2
ZW50TmFtZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCA4YzQ2
MTdhNDE3MDE5NjBjNzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyLi5kYjlkOTQ2OWY4YWExYzhiNDBm
MmRiNDZkYjAwZDAzMmIwOTRmOGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lm1tCkBAIC01NCw2ICs1NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50KCkKICAgICA6IEV2ZW50TGlzdGVuZXIoRXZlbnRMaXN0ZW5lcjo6Q1BQRXZlbnRMaXN0
ZW5lclR5cGUpCiAgICAgLCBtX2lzTGlzdGVuaW5nKGZhbHNlKQorICAgICwgbV92aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UobnVsbHB0cikKIHsKIH0KIApAQCAtMzc4LDQgKzM3OSwxNCBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpldmVu
dE5hbWVBbGwoKQogICAgIHJldHVybiBzRXZlbnROYW1lQWxsOwogfQogCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQorewor
ICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50PiBw
cm90ZWN0KHRoaXMpOworICAgIFdlYlRocmVhZFJ1biheeworICAgICAgICBpZiAobV92aWRlb0Vs
ZW1lbnQpCisgICAgICAgICAgICBtX3ZpZGVvRWxlbWVudC0+ZnVsbHNjcmVlbk1vZGVDaGFuZ2Vk
KHZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgfSk7
Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCBjMTRlMmQ5Y2Q2MzdlNzQwNzBkMjM2NjQyNTUwMjVmYTcwM2U0MTRi
Li4wODE2NmM1YzRkODRmOWNkMjdkOWI5ZjBiZWJkYTczY2UwYjhjMjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjM1LDcgKzIz
NSwxMyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAKIC0gKEJPT0wpX2lz
UGxheWluZ0Z1bGxzY3JlZW5PcHRpbWl6ZWRWaWRlbwogewotICAgIHJldHVybiBfcGFnZS0+dmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcigpICYmIF9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkt
Pm1vZGUoKSA9PSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOworICAgIGlmICghX3BhZ2UtPnZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChfcGFn
ZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLT5tb2RlKCkgJiBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggNGRkNjI4M2M0OWZjMGY4ODI2NWQwNzA2
YjNlMjAwY2I3MWU5YTJhYi4uMzEyNGI2MjcwMzI5ZmU2ZjlhMjM0MjI5YzUxZDIyNTkwOWJkNDY3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC01NSw5ICs1NSwxMCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBUcmFuc2xhdGUgdG8gRnVs
bHNjcmVlbkludGVyZmFjZQotICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90
LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVG
YWN0b3IsIHVpbnQzMl90IHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRG
dWxsc2NyZWVuKTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2Vi
Q29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9y
LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFs
bG93T3B0aW1pemVkRnVsbHNjcmVlbik7CiAgICAgdm9pZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3Rv
cihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mKTsKICAgICB2b2lkIHNldEV4dGVy
bmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwg
U3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpOworICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFu
Z2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAg
IAogICAgIC8vIEZ1bGxzY3JlZW4gT2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0dXBG
dWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IGE1NDIzNzliOTg0Njc1YWU5ZWI1OWU5NzMyNWVjNDRhZjc0MTFhMGEu
LjU3OGUwYzM3NDc4OTU0ZjlmNjExMDIxY2ZkMjU2ZTMwNmQxZDE2MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0RXh0ZXJuYWxQ
bGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJp
bmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9u
KQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQotICAgIFNldHVwRnVs
bHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5p
dGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgdWludDMyX3QgdmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCisgICAgU2V0dXBGdWxsc2Ny
ZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFs
UmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dPcHRp
bWl6ZWRGdWxsc2NyZWVuKQogICAgIEVudGVyRnVsbHNjcmVlbigpCiAgICAgRXhpdEZ1bGxzY3Jl
ZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBkYjUyZjk2OWQzNTY1Y2MyYjNlMWI2ZDVl
ZDZmODY0MjNmNWU2MWEwLi41ZjQ3NDQ1YTdlZWI0NTdjYmQwMzQ1MmFmZjc2YzhhYjliZDgzMDA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAgICAgbV9sYXllckhv
c3QuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJl
Y3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgdWludDMyX3Qg
dmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVp
bnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQg
aG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVu
KQogewogICAgIEFTU0VSVCh2aWRlb0xheWVySUQpOwogICAgIG1fbGF5ZXJIb3N0ID0gV0tNYWtl
UmVuZGVyTGF5ZXIodmlkZW9MYXllcklEKTsKQEAgLTk1LDggKzk1LDEyIEBAIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3Qg
dmlkZW9MYXllcklECiAgICAgfQogCiAgICAgVUlWaWV3ICpwYXJlbnRWaWV3ID0gZG93bmNhc3Q8
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4oKm1fcGFnZS0+ZHJhd2luZ0FyZWEoKSku
cmVtb3RlTGF5ZXJUcmVlSG9zdCgpLnJvb3RMYXllcigpOwotICAgIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGU+KHZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHNldHVwRnVs
bHNjcmVlbigqbV9sYXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0LCBwYXJlbnRWaWV3LCBtb2Rl
LCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOworICAgIHNldHVwRnVsbHNjcmVlbigqbV9sYXll
ckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0LCBwYXJlbnRWaWV3LCB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQobW9kZSks
IG1fcGFnZS0+cGFnZUlEKCkpOwogfQogICAgIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91Ymxl
LCBkb3VibGU+PiYgcmFuZ2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4K
aW5kZXggMzkzNjEyMjkyNmRmYzU1NzgyMzQ4NTRjZTgzOWNlYWQ4YThkYWE2NC4uYTk4ODZmYmQ0
ZWQ3NTlkMmRlN2Y5MjI5Nzg2ZjNkZmI3YjBlNWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC00MSw1ICs0MSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIgewogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBn
cmF2aXR5KQogICAgIFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAg
U2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQorICAgIGZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
IHZpZGVvRnVsbHNjcmVlbk1vZGUpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4
IGYyNmY1ZWNmNjQzMmJkOTI5NDU1M2NlM2E1YTBjOWZiZTViYTI5NmIuLmMxM2EwNmQ2NTFkNGE0
ZDZiNTlkYjIwODk0ODg5MWIyZDJjNTI2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtNjks
NiArNjksNyBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkKICAgICA6IG1fcGFnZShwYWdlLmdldCgp
KQogICAgICwgbV9pc0FuaW1hdGluZyhmYWxzZSkKICAgICAsIG1fdGFyZ2V0SXNGdWxsc2NyZWVu
KGZhbHNlKQorICAgICwgbV9mdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlTm9uZSkKICAgICAsIG1faXNGdWxsc2NyZWVuKGZhbHNlKQogewogICAgIHNl
dFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSh0aGlzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>